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

目录

相关问题

具体实现


相关问题

安装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;
            }
        }
        ...
    }
相关推荐
麻辣璐璐1 天前
EditText属性运用之适配RTL语言和LTR语言的输入习惯
android·xml·java·开发语言·安卓
北京自在科技2 天前
谷歌 Find Hub 网页端全面升级:电脑可直接管理追踪器与耳机
android·ios·安卓·findmy
su_ym81102 天前
Android 系统源码阅读与编译构建实战指南
android·framework
ROLL.73 天前
Git和Repo
java·git·安卓
su_ym81103 天前
Android 与 Linux 对比
android·linux·framework
lI-_-Il4 天前
OpenClaw Termux:手机端一键部署 OpenClaw,把大模型装进口袋
人工智能·安卓
千里马学框架4 天前
Ubuntu 24 搭建aosp源码环境详细笔记
android·linux·ubuntu·framework·安卓·aosp·源码环境
SY.ZHOU6 天前
移动端架构体系(五):终篇总结
flutter·ios·系统架构·安卓·鸿蒙
Lsk_Smion6 天前
Sability安卓(三)_基础开发知识扫盲,开学XML......
android·java·android studio·安卓
weixin_408099677 天前
【实战教程】EasyClick 调用 OCR 文字识别 API(自动识别屏幕文字 + 完整示例代码)
前端·人工智能·后端·ocr·api·安卓·easyclick