diff options
-rw-r--r-- | services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index 83fe1c9eed5c..ad32ed3a2b01 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -264,13 +264,9 @@ public final class DefaultPermissionGrantPolicy { } public void grantDefaultPermissions(int userId) { - if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_EMBEDDED, 0)) { - grantAllRuntimePermissions(userId); - } else { - grantPermissionsToSysComponentsAndPrivApps(userId); - grantDefaultSystemHandlerPermissions(userId); - grantDefaultPermissionExceptions(userId); - } + grantPermissionsToSysComponentsAndPrivApps(userId); + grantDefaultSystemHandlerPermissions(userId); + grantDefaultPermissionExceptions(userId); } private void grantRuntimePermissionsForPackage(int userId, PackageParser.Package pkg) { @@ -1247,6 +1243,13 @@ public final class DefaultPermissionGrantPolicy { if (dir.isDirectory() && dir.canRead()) { Collections.addAll(ret, dir.listFiles()); } + // For IoT devices, we check the oem partition for default permissions for each app. + if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_EMBEDDED, 0)) { + dir = new File(Environment.getOemDirectory(), "etc/default-permissions"); + if (dir.isDirectory() && dir.canRead()) { + Collections.addAll(ret, dir.listFiles()); + } + } return ret.isEmpty() ? null : ret.toArray(new File[0]); } |