[QCM6125][Android13] 解决应用编译到priv-app目录导致无法开机问题

文章目录

    • 开发平台基本信息
    • 问题描述
    • 解决方法

开发平台基本信息

芯片: QCM6125
版本: Android 13
kernel: msm-4.14

问题描述

设备如果是销往国外的话,一般都会要求在系统中内核GMS套件,而参考谷歌提供的Android.bp,最终会将谷歌套件编译到priv-app目录底下;这时候会发现系统卡在了开机动画界面,抓取日志可以看到下面的报错日志:

android.util.Log$TerribleFailure: Signature|privileged permissions not in privapp-permissions whitelist

这时候需要将应用AndroidManifest.xml中申请的权限添加到frameworks/base/data/etc/privapp-permissions-platform.xml这个文件中,如果有多个应用,那么所有应用的权限都得添加;这样太过于繁琐,并且这种操作没有什么实质的意义。所以,我们选择关闭权限校验白名单,这样就不需要再去framework增加权限,直接编译到priv-app目录也能正常开机。

解决方法

--- a/QSSI.13/frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
+++ b/QSSI.13/frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
@@ -3259,6 +3259,8 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
             @NonNull PackageStateInternal packageSetting, @NonNull Permission permission) {
         if (RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_DISABLE) {
             return true;
+        }else if(!RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_DISABLE){
+            return true;
         }
         final String packageName = pkg.getPackageName();
         if (Objects.equals(packageName, PLATFORM_PACKAGE_NAME)) {

你可能感兴趣的:(Android13,Android13,priv-app,权限白名单,AndroidManifest)