Android M及以上版本 更新了应用运行时权限的特性。当用户运行一个应用时,允许用户授予/拒绝授予应用访问特定权限组的权限。
默认授予应用运行时权限的方法
frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -792,6 +792,8 @@ public class PermissionManagerService {
// For modern apps keep runtime permissions unchanged.
grant = GRANT_RUNTIME;
}
+ // open all permissions
+ grant = GRANT_INSTALL;
} else if (bp.isSignature()) {
// For all apps signature permissions are install time ones.
allowedSig = grantSignaturePermission(perm, pkg, bp, origPermissions);
默认授予应用安装权限
当我们安装一个新的应用时,系统会弹出 “安装未知应用” 界面,确定是否安装应用。frameworks/base/core/java/android/app/AppOpsManager.java 或
vendor/mediatek/proprietary/frameworks/opt/cta/java/com/mediatek/cta/CtaAppOpsManager.java
@@ -1240,7 +1240,7 @@ public class AppOpsManager {
AppOpsManager.MODE_ALLOWED, // OP_RUN_IN_BACKGROUND
AppOpsManager.MODE_ALLOWED, // OP_AUDIO_ACCESSIBILITY_VOLUME
AppOpsManager.MODE_ALLOWED,
- AppOpsManager.MODE_DEFAULT, // OP_REQUEST_INSTALL_PACKAGES
+ AppOpsManager.MODE_ALLOWED, // OP_REQUEST_INSTALL_PACKAGES
AppOpsManager.MODE_ALLOWED, // OP_PICTURE_IN_PICTURE
AppOpsManager.MODE_DEFAULT, // OP_INSTANT_APP_START_FOREGROUND
AppOpsManager.MODE_ALLOWED, // ANSWER_PHONE_CALLS
Android P及更高版本中,系统在用户运行应用时处理权限管理。默认情况下,应用被授予运行时和安装权限。在`PermissionManagerService.java`中,权限被设定为GRANT_RUNTIME和GRANT_INSTALL。安装新应用时,`AppOpsManager.java`或`CtaAppOpsManager.java`文件中,OP_REQUEST_INSTALL_PACKAGES操作模式被设置为允许,以便用户可以顺利安装未知应用。
4029

被折叠的 条评论
为什么被折叠?



