Merge "Adds @hide permission granting API for ImsServices" am: 390ec27f9d
am: 6734275c2f
Change-Id: I6d502db3362aafcfed426b6598be0bd39dd38890
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user