Merge "Adds @hide permission granting API for ImsServices" am: 390ec27f9d

am: 6734275c2f

Change-Id: I6d502db3362aafcfed426b6598be0bd39dd38890
This commit is contained in:
Brad Ebinger
2017-02-01 19:35:56 +00:00
committed by android-build-merger
3 changed files with 32 additions and 0 deletions

View File

@@ -563,6 +563,7 @@ interface IPackageManager {
void addOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); void addOnPermissionsChangeListener(in IOnPermissionsChangeListener listener);
void removeOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); void removeOnPermissionsChangeListener(in IOnPermissionsChangeListener listener);
void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId); void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId);
void grantDefaultPermissionsToEnabledImsServices(in String[] packageNames, int userId);
boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId);

View File

@@ -777,6 +777,23 @@ final class DefaultPermissionGrantPolicy {
} }
} }
public void grantDefaultPermissionsToEnabledImsServicesLPr(String[] packageNames, int userId) {
Log.i(TAG, "Granting permissions to enabled ImsServices for user:" + userId);
if (packageNames == null) {
return;
}
for (String packageName : packageNames) {
PackageParser.Package imsServicePackage = getSystemPackageLPr(packageName);
if (imsServicePackage != null
&& doesPackageSupportRuntimePermissions(imsServicePackage)) {
grantRuntimePermissionsLPw(imsServicePackage, PHONE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(imsServicePackage, MICROPHONE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(imsServicePackage, LOCATION_PERMISSIONS, userId);
grantRuntimePermissionsLPw(imsServicePackage, CAMERA_PERMISSIONS, userId);
}
}
}
public void grantDefaultPermissionsToDefaultBrowserLPr(String packageName, int userId) { public void grantDefaultPermissionsToDefaultBrowserLPr(String packageName, int userId) {
Log.i(TAG, "Granting permissions to default browser for user:" + userId); Log.i(TAG, "Granting permissions to default browser for user:" + userId);
if (packageName == null) { if (packageName == null) {

View File

@@ -21191,6 +21191,20 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
} }
} }
@Override
public void grantDefaultPermissionsToEnabledImsServices(String[] packageNames, int userId) {
enforceSystemOrPhoneCaller("grantDefaultPermissionsToEnabledImsServices");
synchronized (mPackages) {
final long identity = Binder.clearCallingIdentity();
try {
mDefaultPermissionPolicy.grantDefaultPermissionsToEnabledImsServicesLPr(
packageNames, userId);
} finally {
Binder.restoreCallingIdentity(identity);
}
}
}
private static void enforceSystemOrPhoneCaller(String tag) { private static void enforceSystemOrPhoneCaller(String tag) {
int callingUid = Binder.getCallingUid(); int callingUid = Binder.getCallingUid();
if (callingUid != Process.PHONE_UID && callingUid != Process.SYSTEM_UID) { if (callingUid != Process.PHONE_UID && callingUid != Process.SYSTEM_UID) {