APP安装后,自动将运行时权限赋予指定APP,不需要APP申请,打开
/frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
找到 private void onPackageInstalledInternal(@NonNull AndroidPackage pkg, int previousAppId,
@NonNull PermissionManagerServiceInternal.PackageInstalledParams params,
@UserIdInt int[] userIds)
方法,在方法最后增加代码:
private void onPackageInstalledInternal(@NonNull AndroidPackage pkg, int previousAppId,
@NonNull PermissionManagerServiceInternal.PackageInstalledParams params,
@UserIdInt int[] userIds) {
if (previousAppId != INVALID_UID) {
handleAppIdMigration(pkg, previousAppId);
}
//
updatePermissions(pkg.getPackageName(), pkg);
for (final int userId : userIds) {
Log.d(TAG,"getAllowlistedRestrictedPermissions list:"+params.getAllowlistedRestrictedPermissions().toString());
addAllowlistedRestrictedPermissionsInternal(pkg,
params.getAllowlistedRestrictedPermissions(),
FLAG_PERMISSION_WHITELIST_INSTALLER, userId);
Log.d(TAG,"getGrantedPermissions list:"+params.getGrantedPermissions().toString());
grantRequestedRuntimePermissionsInternal(pkg, params.getGrantedPermissions(), userId);
//add code
if(pkg.getPackageName().equals("xx.xx.xx")){
grantRequestedRuntimePermissionsInternal(
pkg,params.getAllowlistedRestrictedPermissions(), userId);
}
//add end
}
}
根据实际需求,调整if处理