在开发的时候经常会有预置第三方apk,并且给apk添加默认权限,代码位置
framework/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
在grantDefaultSystemHandlerPermissions 方法中添加
//com.qingniu.sharescale.production
String productionPkgStr = "com.qingniu.sharescale.production"; //应用包名
PackageParser.Package productionPkg = getPackageLPr(productionPkgStr);
if(productionPkg!=null){ //应用需要添加的权限
grantRuntimePermissionsLPw(productionPkg, PHONE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(productionPkg, STORAGE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(productionPkg, LOCATION_PERMISSIONS, userId);
grantRuntimePermissionsLPw(productionPkg, CAMERA_PERMISSIONS, userId);
grantRuntimePermissionsLPw(productionPkg, MICROPHONE_PERMISSIONS, userId);
}
//com.qingniu.majorscale
String majorscalePkgStr = "com.qingniu.majorscale";
PackageParser.Package majorscalePkg = getPackageLPr(majorscalePkgStr);
if(majorscalePkg!=null){
grantRuntimePermissionsLPw(majorscalePkg, PHONE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(majorscalePkg, STORAGE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(majorscalePkg, LOCATION_PERMISSIONS, userId);
grantRuntimePermissionsLPw(majorscalePkg, CAMERA_PERMISSIONS, userId);
grantRuntimePermissionsLPw(majorscalePkg, MICROPHONE_PERMISSIONS, userId);
}