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

目录

相关问题

具体实现


相关问题

安装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;
            }
        }
        ...
    }
相关推荐
Android小码家2 小时前
Android8.0+Camera2编译&烧录&源码研习
android·framework
shandianchengzi1 天前
【工具】Scrcpy|安卓投屏电脑的开源工具Scrcpy的安装及看电视注意事项
安卓·1024程序员节·投屏·电视·scrcpy
lzc_a3 天前
Android Studio模拟器无法联网(能打开IP网页,但不能打开域名,DNS解析错误)问题2025年10月22日
服务器·android studio·安卓
Touch&4 天前
Spring5.3.10源码编译和调试(IDEA+Gradle)的过程
spring·framework·gradle·idea·spring源码编译
千里马学框架4 天前
安卓系统中线程优先级Priority查看方式汇总
android·framework·线程·安卓framework开发·优先级·priority
AirDroid_cn5 天前
明知手机忘带却不着急回去拿,因为可以远程控制
智能手机·安卓·远程工作·远程控制·远程控制手机
起个名字费劲死了10 天前
Pytorch Yolov11目标检测+Android部署 留贴记录
pytorch·yolo·目标检测·安卓
画个太阳作晴天16 天前
Android13自定义服务提供给第三方使用权限约束问题
framework
路上^_^24 天前
安卓基础组件019-引导页布局001
android·安卓
路上^_^24 天前
安卓基础组件015--textinput
安卓