Loading core/java/android/content/pm/IPackageManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -619,6 +619,8 @@ interface IPackageManager { in String[] packageNames, int userId); void revokeDefaultPermissionsFromDisabledTelephonyDataServices( in String[] packageNames, int userId); void grantDefaultPermissionsToActiveLuiApp(in String packageName, int userId); void revokeDefaultPermissionsFromLuiApps(in String[] packageNames, int userId); boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); Loading services/core/java/com/android/server/pm/PackageManagerService.java +27 −0 Original line number Diff line number Diff line Loading @@ -24094,6 +24094,33 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } @Override public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) { enforceSystemOrPhoneCaller("grantDefaultPermissionsToActiveLuiApp"); synchronized (mPackages) { final long identity = Binder.clearCallingIdentity(); try { mDefaultPermissionPolicy.grantDefaultPermissionsToActiveLuiApp( packageName, userId); } finally { Binder.restoreCallingIdentity(identity); } } } @Override public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) { enforceSystemOrPhoneCaller("revokeDefaultPermissionsFromLuiApps"); synchronized (mPackages) { final long identity = Binder.clearCallingIdentity(); try { mDefaultPermissionPolicy.revokeDefaultPermissionsFromLuiApps(packageNames, userId); } finally { Binder.restoreCallingIdentity(identity); } } } private static void enforceSystemOrPhoneCaller(String tag) { int callingUid = Binder.getCallingUid(); if (callingUid != Process.PHONE_UID && callingUid != Process.SYSTEM_UID) { services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +26 −0 Original line number Diff line number Diff line Loading @@ -1010,6 +1010,32 @@ public final class DefaultPermissionGrantPolicy { } } public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) { Log.i(TAG, "Granting permissions to active LUI app for user:" + userId); if (packageName == null) { return; } PackageParser.Package luiAppPackage = getSystemPackage(packageName); if (luiAppPackage != null && doesPackageSupportRuntimePermissions(luiAppPackage)) { grantRuntimePermissions(luiAppPackage, CAMERA_PERMISSIONS, true, userId); } } public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) { Log.i(TAG, "Revoke permissions from LUI apps for user:" + userId); if (packageNames == null) { return; } for (String packageName : packageNames) { PackageParser.Package luiAppPackage = getSystemPackage(packageName); if (luiAppPackage != null && doesPackageSupportRuntimePermissions(luiAppPackage)) { revokeRuntimePermissions(luiAppPackage, CAMERA_PERMISSIONS, true, userId); } } } public void grantDefaultPermissionsToDefaultBrowser(String packageName, int userId) { Log.i(TAG, "Granting permissions to default browser for user:" + userId); if (packageName == null) { Loading Loading
core/java/android/content/pm/IPackageManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -619,6 +619,8 @@ interface IPackageManager { in String[] packageNames, int userId); void revokeDefaultPermissionsFromDisabledTelephonyDataServices( in String[] packageNames, int userId); void grantDefaultPermissionsToActiveLuiApp(in String packageName, int userId); void revokeDefaultPermissionsFromLuiApps(in String[] packageNames, int userId); boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); Loading
services/core/java/com/android/server/pm/PackageManagerService.java +27 −0 Original line number Diff line number Diff line Loading @@ -24094,6 +24094,33 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } @Override public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) { enforceSystemOrPhoneCaller("grantDefaultPermissionsToActiveLuiApp"); synchronized (mPackages) { final long identity = Binder.clearCallingIdentity(); try { mDefaultPermissionPolicy.grantDefaultPermissionsToActiveLuiApp( packageName, userId); } finally { Binder.restoreCallingIdentity(identity); } } } @Override public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) { enforceSystemOrPhoneCaller("revokeDefaultPermissionsFromLuiApps"); synchronized (mPackages) { final long identity = Binder.clearCallingIdentity(); try { mDefaultPermissionPolicy.revokeDefaultPermissionsFromLuiApps(packageNames, userId); } finally { Binder.restoreCallingIdentity(identity); } } } private static void enforceSystemOrPhoneCaller(String tag) { int callingUid = Binder.getCallingUid(); if (callingUid != Process.PHONE_UID && callingUid != Process.SYSTEM_UID) {
services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +26 −0 Original line number Diff line number Diff line Loading @@ -1010,6 +1010,32 @@ public final class DefaultPermissionGrantPolicy { } } public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) { Log.i(TAG, "Granting permissions to active LUI app for user:" + userId); if (packageName == null) { return; } PackageParser.Package luiAppPackage = getSystemPackage(packageName); if (luiAppPackage != null && doesPackageSupportRuntimePermissions(luiAppPackage)) { grantRuntimePermissions(luiAppPackage, CAMERA_PERMISSIONS, true, userId); } } public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) { Log.i(TAG, "Revoke permissions from LUI apps for user:" + userId); if (packageNames == null) { return; } for (String packageName : packageNames) { PackageParser.Package luiAppPackage = getSystemPackage(packageName); if (luiAppPackage != null && doesPackageSupportRuntimePermissions(luiAppPackage)) { revokeRuntimePermissions(luiAppPackage, CAMERA_PERMISSIONS, true, userId); } } } public void grantDefaultPermissionsToDefaultBrowser(String packageName, int userId) { Log.i(TAG, "Granting permissions to default browser for user:" + userId); if (packageName == null) { Loading