新增白名单赋予应用安装权限

目录

相关问题

具体实现


相关问题

安装app到/data/分区时,如何在安装阶段就赋予权限,无需请求权限

具体实现

frameworks/base/core/res/res/values/config.xml

XML 复制代码
    <!-- For whitelis apk -->
    <string-array translatable="false" name="apk_whitelist" >
         <item>"com.cmss.cloudcomputer"</item>
    </string-array>

frameworks/base/core/res/res/values/symbols.xml

XML 复制代码
  <!-- For whitelist apk -->
  <java-symbol type="array" name="apk_whitelist" />

frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java

java 复制代码
private List<String> mAPkWhitelist = new ArrayList<String>();

private boolean isInApkWhitelist(String pkgName) {
    for (String token : mAPkWhitelist) {
        if (pkgName.equals(token)) {
            return true;
        }
    }
    return false;
}
private void initApkWhitelist() {
    String[] apkWhitelist = Resources.getSystem().getStringArray(
            com.android.internal.R.array.apk_whitelist);
    mAPkWhitelist = Arrays.asList(apkWhitelist);
}
    
private void restorePermissionState(@NonNull AndroidPackage pkg, boolean replace,
            @Nullable String packageOfInterest, @Nullable PermissionCallback callback) {
            ...
                
        if (isInApkWhitelist(pkg.getPackageName())) {  // 增加的调用处理逻辑
                    grant = GRANT_INSTALL;
                }
            }
        } else if (bp.isSignature()) {
            // For all apps signature permissions are install time ones.
            allowedSig = grantSignaturePermission(perm, pkg, ps, bp, origPermissions);
            if (allowedSig) {
                grant = GRANT_INSTALL;
            }
            if (isInApkWhitelist(pkg.getPackageName())) {  // 增加的调用处理逻辑
                grant = GRANT_INSTALL;
            }
        }
        ...
    }
相关推荐
koeda1 小时前
android17系统兼容
android·安卓
孑小白3 天前
AutoGod:安卓5-16全兼容!一站式自动化框架,开发效率直接拉满
自动化·安卓·脚本·autogod
suki_lynn3 天前
星界云手机APP,在线玩游戏挂机
智能手机·云计算·安卓·玩游戏
碎梦人4 天前
ADB(Android Debug Bridge,安卓调试桥)介绍及常用命令
安卓
孑小白4 天前
AutoGod:一款拥有AI视觉的安卓自动化框架
自动化·安卓·脚本·auto.js·autogod
冬奇Lab5 天前
应用异常退出实战分析:一次“幽灵杀手“引发的车载系统故障排查
车载系统·安卓
SY.ZHOU5 天前
大型工程跨全平台实践总结
flutter·ios·安卓·鸿蒙
孑小白5 天前
我用300天开发了一个自动化助手,让手机自己"工作"
自动化·安卓·脚本·autogod
seaside20036 天前
ggml交叉编译安卓部署大模型
安卓·交叉编译·ggml
阿拉斯攀登8 天前
【瑞芯微 RK 系列 + 安卓驱动全栈教程】博客系列
嵌入式硬件·安卓·瑞芯微·rk3576·嵌入式安卓·安卓驱动