前言
在Android 12源码升级适配时, 内置sogou输入法64位版本, Android.mk已经编译进了系统, 启动的时候会报错,并且机器无法启动, 发现会报错。
出错日志:
08-23 10:06:09.599 8581 8581 D AndroidRuntime: Shutting down VM
08-23 10:06:09.599 8581 8581 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main
08-23 10:06:09.599 8581 8581 E AndroidRuntime: java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {com.sohu.inputmethod.sogou.xiaomi (/system/priv-app/SogouInputMi): android.permission.CLEAR_APP_CACHE}
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.pm.permission.PermissionManagerService.systemReady(PermissionManagerService.java:4703)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.pm.permission.PermissionManagerService.access$500(PermissionManagerService.java:178)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.pm.permission.PermissionManagerService$PermissionManagerServiceInternalImpl.systemReady(PermissionManagerService.java:4786)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.pm.PackageManagerService.systemReady(PackageManagerService.java:21666)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.SystemServer.startOtherServices(SystemServer.java:2317)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.SystemServer.run(SystemServer.java:676)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.server.SystemServer.main(SystemServer.java:491)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
08-23 10:06:09.599 8581 8581 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:984)
解决:
通过上面的显示, 是因为内置特权app申请的权限没有放入到白名单中, 做如下修改:
vim frameworks/base/data/etc/privapp-permissions-platform.xml
495 <privapp-permissions package="com.sohu.inputmethod.sogou.xiaomi">
496 <permission name="android.permission.READ_LOGS" />
497 <permission name="android.permission.CLEAR_APP_CACHE" />
498 </privapp-permissions>
如下所示:
保存后,重新编译即可。