Use PM instead of PMI in DefGrantPolicy for simple cases
This is a step wowards eventually moving DPGP to a mainline module Test: gts-tradefed run singleCommand gts -m GtsPermissionTestCases -t com.google.android.permission.gts.DefaultPermissionGrantPolicyTest Change-Id: I81118bcad7faed8d72343cb81300d3478ee13838
This commit is contained in:
@@ -40,7 +40,6 @@ import android.content.pm.ProviderInfo;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.media.RingtoneManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
@@ -880,9 +879,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
}
|
||||
|
||||
private String getDefaultSystemHandlerActivityPackage(Intent intent, int userId) {
|
||||
ResolveInfo handler = mServiceInternal.resolveIntent(intent,
|
||||
intent.resolveType(mContext.getContentResolver()), DEFAULT_INTENT_QUERY_FLAGS,
|
||||
userId, false, Binder.getCallingUid());
|
||||
ResolveInfo handler = mContext.getPackageManager().resolveActivityAsUser(
|
||||
intent, DEFAULT_INTENT_QUERY_FLAGS, userId);
|
||||
if (handler == null || handler.activityInfo == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -899,8 +897,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
|
||||
private String getDefaultSystemHandlerServicePackage(
|
||||
Intent intent, int userId) {
|
||||
List<ResolveInfo> handlers = mServiceInternal.queryIntentServices(
|
||||
intent, DEFAULT_INTENT_QUERY_FLAGS, Binder.getCallingUid(), userId);
|
||||
List<ResolveInfo> handlers = mContext.getPackageManager().queryIntentServicesAsUser(
|
||||
intent, DEFAULT_INTENT_QUERY_FLAGS, userId);
|
||||
if (handlers == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -924,10 +922,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
for (String syncAdapterPackageName : syncAdapterPackageNames) {
|
||||
homeIntent.setPackage(syncAdapterPackageName);
|
||||
|
||||
ResolveInfo homeActivity = mServiceInternal.resolveIntent(homeIntent,
|
||||
homeIntent.resolveType(mContext.getContentResolver()),
|
||||
DEFAULT_INTENT_QUERY_FLAGS,
|
||||
userId, false, Binder.getCallingUid());
|
||||
ResolveInfo homeActivity = mContext.getPackageManager().resolveActivityAsUser(
|
||||
homeIntent, DEFAULT_INTENT_QUERY_FLAGS, userId);
|
||||
if (homeActivity != null) {
|
||||
continue;
|
||||
}
|
||||
@@ -941,7 +937,7 @@ public final class DefaultPermissionGrantPolicy {
|
||||
}
|
||||
|
||||
private String getDefaultProviderAuthorityPackage(String authority, int userId) {
|
||||
ProviderInfo provider = mServiceInternal.resolveContentProvider(
|
||||
ProviderInfo provider = mContext.getPackageManager().resolveContentProviderAsUser(
|
||||
authority, DEFAULT_INTENT_QUERY_FLAGS, userId);
|
||||
if (provider != null) {
|
||||
return provider.packageName;
|
||||
@@ -980,8 +976,9 @@ public final class DefaultPermissionGrantPolicy {
|
||||
continue;
|
||||
}
|
||||
|
||||
final int flags = mServiceInternal.getPermissionFlagsTEMP(
|
||||
permission, packageName, userId);
|
||||
UserHandle user = UserHandle.of(userId);
|
||||
final int flags = mContext.getPackageManager()
|
||||
.getPermissionFlags(permission, packageName, user);
|
||||
|
||||
// We didn't get this through the default grant policy. Move along.
|
||||
if ((flags & PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT) == 0) {
|
||||
@@ -997,7 +994,7 @@ public final class DefaultPermissionGrantPolicy {
|
||||
if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0 && !systemFixed) {
|
||||
continue;
|
||||
}
|
||||
mServiceInternal.revokeRuntimePermission(packageName, permission, userId, false);
|
||||
mContext.getPackageManager().revokeRuntimePermission(packageName, permission, user);
|
||||
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "revoked " + (systemFixed ? "fixed " : "not fixed ")
|
||||
@@ -1007,8 +1004,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
// Remove the GRANTED_BY_DEFAULT flag without touching the others.
|
||||
// Note that we do not revoke FLAG_PERMISSION_SYSTEM_FIXED. That bit remains
|
||||
// sticky once set.
|
||||
mServiceInternal.updatePermissionFlagsTEMP(permission, packageName,
|
||||
PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, 0, userId);
|
||||
mContext.getPackageManager().updatePermissionFlags(permission, packageName,
|
||||
PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, 0, user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1077,8 +1074,9 @@ public final class DefaultPermissionGrantPolicy {
|
||||
}
|
||||
|
||||
if (permissions.contains(permission)) {
|
||||
final int flags = mServiceInternal.getPermissionFlagsTEMP(
|
||||
permission, pkg.packageName, userId);
|
||||
UserHandle user = UserHandle.of(userId);
|
||||
final int flags = mContext.getPackageManager().getPermissionFlags(
|
||||
permission, pkg.packageName, user);
|
||||
|
||||
// If any flags are set to the permission, then it is either set in
|
||||
// its current state by the system or device/profile owner or the user.
|
||||
@@ -1094,8 +1092,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
continue;
|
||||
}
|
||||
|
||||
mServiceInternal.grantRuntimePermission(
|
||||
pkg.packageName, permission, userId, false);
|
||||
mContext.getPackageManager()
|
||||
.grantRuntimePermission(pkg.packageName, permission, user);
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "Granted " + (systemFixed ? "fixed " : "not fixed ")
|
||||
+ permission + " to default handler " + pkg);
|
||||
@@ -1106,8 +1104,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
newFlags |= PackageManager.FLAG_PERMISSION_SYSTEM_FIXED;
|
||||
}
|
||||
|
||||
mServiceInternal.updatePermissionFlagsTEMP(permission, pkg.packageName,
|
||||
newFlags, newFlags, userId);
|
||||
mContext.getPackageManager().updatePermissionFlags(permission, pkg.packageName,
|
||||
newFlags, newFlags, user);
|
||||
}
|
||||
|
||||
// If a component gets a permission for being the default handler A
|
||||
@@ -1119,8 +1117,8 @@ public final class DefaultPermissionGrantPolicy {
|
||||
Log.i(TAG, "Granted not fixed " + permission + " to default handler "
|
||||
+ pkg);
|
||||
}
|
||||
mServiceInternal.updatePermissionFlagsTEMP(permission, pkg.packageName,
|
||||
PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, 0, userId);
|
||||
mContext.getPackageManager().updatePermissionFlags(permission, pkg.packageName,
|
||||
PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, 0, user);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1137,10 +1135,12 @@ public final class DefaultPermissionGrantPolicy {
|
||||
|
||||
private PackageInfo getPackageInfo(String pkg,
|
||||
@PackageManager.PackageInfoFlags int extraFlags) {
|
||||
return mServiceInternal.getPackageInfo(pkg,
|
||||
DEFAULT_PACKAGE_INFO_QUERY_FLAGS | extraFlags,
|
||||
//TODO is this the right filterCallingUid?
|
||||
UserHandle.USER_SYSTEM, UserHandle.USER_SYSTEM);
|
||||
try {
|
||||
return mContext.getPackageManager().getPackageInfo(pkg,
|
||||
DEFAULT_PACKAGE_INFO_QUERY_FLAGS | extraFlags);
|
||||
} catch (NameNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isSysComponentOrPersistentPlatformSignedPrivApp(PackageInfo pkg) {
|
||||
|
||||
Reference in New Issue
Block a user