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

目录

相关问题

具体实现


相关问题

安装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;
            }
        }
        ...
    }
相关推荐
ItJavawfc4 天前
Android13-包安装器PackageInstaller-之apk安装流程
framework·pms·packageinstal·包安装器·安装流程
犬大犬小4 天前
安卓burp抓包,bypass ssl pinning
安卓·安全性测试
JabamiLight5 天前
Lineageos 22.1(Android 15) 编译隐藏API的 android.jar
android·java·framework·jar·android 15·lineageos 22.1
庆 、7 天前
Django REST framework 源码剖析-渲染器图解(Renderers)
django·framework·restful·drf·rest·renders
画个太阳作晴天8 天前
Android10 音频参数导出合并
android·framework·音频
a31582380611 天前
Android设置个性化按钮按键的快捷启动应用
android·开发语言·framework·源码·android13
蜘蛛侠不会飞12 天前
init的service 启动顺序
framework·安卓源码·service·init·稳定性
代码背包客1 个月前
一文掌握ADB的安装及使用
linux·adb·安卓·安卓开发
hardWork_yulu1 个月前
Android RTMP直播练习实践
网络·安卓
刘争Stanley1 个月前
Android系统开发(八):从麦克风到扬声器,音频HAL框架的奇妙之旅
android·c语言·framework·音视频·框架·c·hal