测试平台
Platform: RK3288
OS: Android9
需求:
客户需要将他们自己的apk预装到可卸载可恢复位置(preinstall_del 目录),需要默认授权apk所需的普通权限,网上很多方法都是通过PackageManagerService.java授权,其实PackageManagerService.java只对手动安装的apk有用,对预置可卸载位置的apk权限不起作用的,具体修改方法如下
解决方法:
代码路径:packages/apps/PackageInstaller/AndroidManifest.xml
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.packageinstaller" coreApp="true">
<provider android:name=".wear.WearPackageIconProvider"
android:authorities="com.google.android.packageinstaller.wear.provider"
@@ -189,6 +194,9 @@
<activity android:name=".permission.ui.wear.WarningConfirmationActivity"
android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS"
android:theme="@style/Settings"/>
+ <service
+ android:name=".PackagePermissionGrantService"
+ android:persistent = "true"/>
</application>
</manifest>
代码路径:packages/apps/PackageInstaller/src/com/android/packageinstaller/PackagePermissionGrantService.java
--- /dev/null
+++ b/src/com/android/packageinstaller/PackagePermissionGrantService.java
+/*
+**
+** Copyright 2007, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (t