android 安装第三方apk自动赋予运行时权限
摘要:行业机使用场景点击运行时权限很麻烦,而随着android的演进,对于权限的管控越发严格。故本文通过对系统的修改实现第三方app在运行时直接获取全部权限。
通过属性ro.perms.force_grant控制功能开关。
Index: frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java
===================================================================
--- frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java (版本 4724)
+++ frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java (版本 4725)
@@ -25,6 +25,7 @@
import android.content.pm.PermissionInfo;
import com.android.server.pm.pkg.component.ParsedPermission;
import android.os.Build;
+import android.os.SystemProperties;
import android.os.UserHandle;
import android.util.Log;
import android.util.Slog;
@@ -206,10 +207,16 @@
}
public boolean isNormal() {
+ if (SystemProperties.getBoolean("ro.perms.force_grant", false)) { // @ +
+ return true;
+ }
return (mPermissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
== PermissionInfo.PROTECTION_NORMAL;
}
public boolean isRuntime() {
+ if (SystemProperties.getBoolean("ro.perms.force_grant", false)) { // @ +
+ return false;
+ }
return (mPermissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
== PermissionInfo.PROTECTION_DANGEROUS;
}