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

目录

相关问题

具体实现


相关问题

安装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;
            }
        }
        ...
    }
相关推荐
a31582380615 小时前
Android13隐藏某个App需要关注的源码文件
android·java·framework·launcher3·隐藏app
私人珍藏库15 小时前
【安卓】Lightroom摄影师版PS滤镜免费
android·app·安卓·工具·软件
a3158238062 天前
Android Framework开发知识点整理
android·java·linux·服务器·framework·android源码开发
帅得不敢出门3 天前
Android8 Framework实现Ntp服务器多域名轮询同步时间
android·java·服务器·python·framework·github
帅得不敢出门3 天前
Android11~13 Framework实现Ntp服务器多域名轮询同步时间
android·服务器·python·framework·github
RollingPin4 天前
iOS 动态库与静态库的区别
ios·framework·动态库·静态库·符号表·三方库·dyld
阿桂有点桂4 天前
Flutter使用VS Code打包app
vscode·flutter·安卓
私人珍藏库5 天前
[Android] 轻小说文库(1.23)
android·app·安卓·工具
做cv的小昊5 天前
在NanoPC-T6开发板上通过USB串口通信实现光源控制功能
java·后端·嵌入式硬件·边缘计算·安卓·信息与通信·开发
Smart-佀5 天前
Android初学必备:选Kotlin 还是Java ?
android·android studio·安卓