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

目录

相关问题

具体实现


相关问题

安装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;
            }
        }
        ...
    }
相关推荐
星鹿XINGLOO5 天前
畅享Mac桌面版TikTok!
macos·安卓·iphone·mac·web·web app
庆 、5 天前
Django REST framework 源码剖析-认证器详解(Authentication)
后端·python·django·framework·restful·authentication
我命由我123458 天前
Android 项目缓存问题,某些依赖中的类会报错:Cannot resolve symbol
android·java·java-ee·android studio·安卓·android-studio·android runtime
千里马学框架9 天前
安卓15/aosp15/lineage21使用brunch编译老是报错OOM内存不足
android·车载系统·framework·系统开发·aosp·lineage
氦客12 天前
Kotlin知识体系(二) : Kotlin的七个关键特性
android·开发语言·kotlin·安卓·特性·data class·密封类
EasyControl移动设备管理19 天前
安卓Android与iOS设备管理对比:企业选择指南
android·运维·ios·安卓·it·企业管理·企业设备管理
亚瑟-灰太狼23 天前
preloaded-classes裁剪
framework
dr李四维24 天前
Java在小米SU7 Ultra汽车中的技术赋能
java·人工智能·安卓·智能驾驶·互联·小米su7ultra·hdfs架构
JasonAndChen24 天前
Android Studio 一直 Loading devices
android·安卓
Android小码家1 个月前
Android Framework startServices 流程
android·framework