授权方式比较多根据需要进行修改:
1、安装应用时默认授权
应用安装过程中,系统会检查应用申请的各个权限情况,针对安装时权限和运行时权限分别记录。我们可以修改将运行权限也默认授予。代码如下
//frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
private void restorePermissionState(@NonNull AndroidPackage pkg, boolean replace,
@Nullable String packageOfInterest, @Nullable PermissionCallback callback) {
... ...
final String perm = bp.getName();
boolean allowedSig = false;
int grant = GRANT_DENIED;
// Keep track of app op permissions.
if (bp.isAppOp()) {
mSettings.addAppOpPackage(perm, pkg.getPackageName());
}
//可以根据指定包名,将所有权限都判为安装时权限,自动授权
if ("com.xxxx.xxxx".equals(pkg.getPackageName())) {
grant = GRANT_INSTALL;
} else if (bp.isNormal()) {
//END
// For all apps normal permissions are install time ones.
grant = GRANT_INSTALL;
} else if (bp.isRuntime()) {
if (origPermissions.hasInstallPermission(bp.getName())
|| upgradedActivityRecognitionPermission != null) {
// Before Q we represented some runtime permissions as install permissions,
// in Q we cannot do this anymore. Hence upgrade them all.
grant = GRANT_UPGRADE;
} else {
// For modern apps keep r