android10 根据包名默认通过“未知应用”安装权限

aosp29系统开发,某些内置三方应用要求默认授予安装权限用于升级,但是Android10出于安全考虑,默认安装升级包需要用户授权。出现如下提示:

 设置通过后还会提示确认框

 

方案一:将所有app默认授予权限

源码路径android>frameworks>base>core>java>android>app>AppOpsManager.java

  注释掉// AppOpsManager.MODE_DEFAULT, // REQUEST_INSTALL_PACKAGES

   改为 AppOpsManager.MODE_ALLOWED, 

 方案二:根据包名给予权限(推荐)

源码路径android/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java

 /**
     * Create a new dialog.

     * @param id The id of the dialog (determines dialog type)
     *
     * @return The dialog
     */
    private DialogFragment createDialog(int id) {
        switch (id) {
           ....省略代码...
            case DLG_EXTERNAL_SOURCE_BLOCKED:
                 // add begin
                //在184行。去掉弹出对应报名对话框
                if(mPkgInfo!=null&&"net.***".equals(mPkgInfo.packageName)){
                    mAllowUnknownSources = true;
                    //initiateInstall(); 显示确认对话框
                    startInstall();//直接升级
                    return null;
                }
                // add end
                return ExternalSourcesBlockedDialog.newInstance(mOriginatingPackage);
            case DLG_ANONYMOUS_SOURCE:
                return AnonymousSourceDialog.newInstance();
        }
        return null;
    }

这种方法可以根据包名过滤授权,相对更加安全。并且可以根据实际情况选择initiateInstall()或者startInstall()来决定是否显示确认安装提示框。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写点啥呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值