Merge "Revert "Use PM#isSameApp instead of getPackageUidAsUser."" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c287392e1e
@@ -490,7 +490,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
mMainHandler, context,
|
||||
new PolicyWarningUIController.NotificationController(context));
|
||||
mSecurityPolicy = new AccessibilitySecurityPolicy(policyWarningUIController, mContext,
|
||||
this, LocalServices.getService(PackageManagerInternal.class));
|
||||
this);
|
||||
mA11yWindowManager = new AccessibilityWindowManager(mLock, mMainHandler,
|
||||
mWindowManagerService, this, mSecurityPolicy, this, mTraceManager);
|
||||
mA11yDisplayListener = new AccessibilityDisplayListener(mContext, mMainHandler);
|
||||
|
||||
@@ -29,7 +29,6 @@ import android.appwidget.AppWidgetManagerInternal;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManagerInternal;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
@@ -100,7 +99,6 @@ public class AccessibilitySecurityPolicy {
|
||||
|
||||
private final Context mContext;
|
||||
private final PackageManager mPackageManager;
|
||||
private final PackageManagerInternal mPackageManagerInternal;
|
||||
private final UserManager mUserManager;
|
||||
private final AppOpsManager mAppOpsManager;
|
||||
private final AccessibilityUserManager mAccessibilityUserManager;
|
||||
@@ -118,12 +116,10 @@ public class AccessibilitySecurityPolicy {
|
||||
*/
|
||||
public AccessibilitySecurityPolicy(PolicyWarningUIController policyWarningUIController,
|
||||
@NonNull Context context,
|
||||
@NonNull AccessibilityUserManager a11yUserManager,
|
||||
@NonNull PackageManagerInternal packageManagerInternal) {
|
||||
@NonNull AccessibilityUserManager a11yUserManager) {
|
||||
mContext = context;
|
||||
mAccessibilityUserManager = a11yUserManager;
|
||||
mPackageManager = mContext.getPackageManager();
|
||||
mPackageManagerInternal = packageManagerInternal;
|
||||
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
||||
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
||||
mPolicyWarningUIController = policyWarningUIController;
|
||||
@@ -517,7 +513,12 @@ public class AccessibilitySecurityPolicy {
|
||||
private boolean isValidPackageForUid(String packageName, int uid) {
|
||||
final long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
return mPackageManagerInternal.isSameApp(packageName, uid, UserHandle.getUserId(uid));
|
||||
// Since we treat calls from a profile as if made by its parent, using
|
||||
// MATCH_ANY_USER to query the uid of the given package name.
|
||||
return uid == mPackageManager.getPackageUidAsUser(
|
||||
packageName, PackageManager.MATCH_ANY_USER, UserHandle.getUserId(uid));
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
return false;
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(token);
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@ public class AccessibilitySecurityPolicyTest {
|
||||
@Mock
|
||||
private PolicyWarningUIController mPolicyWarningUIController;
|
||||
@Mock
|
||||
private PackageManagerInternal mMockPackageManagerInternal;
|
||||
private PackageManagerInternal mPackageManagerInternal;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -158,8 +158,7 @@ public class AccessibilitySecurityPolicyTest {
|
||||
R.dimen.accessibility_focus_highlight_stroke_width, 1);
|
||||
|
||||
mA11ySecurityPolicy = new AccessibilitySecurityPolicy(
|
||||
mPolicyWarningUIController, mContext, mMockA11yUserManager,
|
||||
mMockPackageManagerInternal);
|
||||
mPolicyWarningUIController, mContext, mMockA11yUserManager);
|
||||
mA11ySecurityPolicy.setSendingNonA11yToolNotificationLocked(true);
|
||||
mA11ySecurityPolicy.setAccessibilityWindowManager(mMockA11yWindowManager);
|
||||
mA11ySecurityPolicy.setAppWidgetManager(mMockAppWidgetManager);
|
||||
@@ -238,8 +237,8 @@ public class AccessibilitySecurityPolicyTest {
|
||||
@Test
|
||||
public void resolveValidReportedPackage_uidAndPkgNameMatched_returnPkgName()
|
||||
throws PackageManager.NameNotFoundException {
|
||||
when(mMockPackageManagerInternal.isSameApp(PACKAGE_NAME, APP_UID, TEST_USER_ID))
|
||||
.thenReturn(true);
|
||||
when(mMockPackageManager.getPackageUidAsUser(PACKAGE_NAME,
|
||||
PackageManager.MATCH_ANY_USER, TEST_USER_ID)).thenReturn(APP_UID);
|
||||
|
||||
assertEquals(mA11ySecurityPolicy.resolveValidReportedPackageLocked(
|
||||
PACKAGE_NAME, APP_UID, TEST_USER_ID, APP_PID),
|
||||
@@ -258,8 +257,8 @@ public class AccessibilitySecurityPolicyTest {
|
||||
|
||||
when(mMockAppWidgetManager.getHostedWidgetPackages(widgetHostUid))
|
||||
.thenReturn(widgetPackages);
|
||||
when(mMockPackageManagerInternal.isSameApp(hostPackageName, widgetHostUid, TEST_USER_ID))
|
||||
.thenReturn(true);
|
||||
when(mMockPackageManager.getPackageUidAsUser(hostPackageName, TEST_USER_ID))
|
||||
.thenReturn(widgetHostUid);
|
||||
|
||||
assertEquals(mA11ySecurityPolicy.resolveValidReportedPackageLocked(
|
||||
widgetPackageName, widgetHostUid, TEST_USER_ID, widgetHostPid),
|
||||
@@ -273,8 +272,8 @@ public class AccessibilitySecurityPolicyTest {
|
||||
final String[] uidPackages = {PACKAGE_NAME, PACKAGE_NAME2};
|
||||
when(mMockPackageManager.getPackagesForUid(APP_UID))
|
||||
.thenReturn(uidPackages);
|
||||
when(mMockPackageManagerInternal.isSameApp(invalidPackageName, APP_UID, TEST_USER_ID))
|
||||
.thenReturn(false);
|
||||
when(mMockPackageManager.getPackageUidAsUser(invalidPackageName, TEST_USER_ID))
|
||||
.thenThrow(PackageManager.NameNotFoundException.class);
|
||||
when(mMockAppWidgetManager.getHostedWidgetPackages(APP_UID))
|
||||
.thenReturn(new ArraySet<>());
|
||||
mContext.getTestablePermissions().setPermission(
|
||||
@@ -293,8 +292,8 @@ public class AccessibilitySecurityPolicyTest {
|
||||
final String[] uidPackages = {PACKAGE_NAME};
|
||||
when(mMockPackageManager.getPackagesForUid(APP_UID))
|
||||
.thenReturn(uidPackages);
|
||||
when(mMockPackageManagerInternal.isSameApp(wantedPackageName, wantedUid, TEST_USER_ID))
|
||||
.thenReturn(true);
|
||||
when(mMockPackageManager.getPackageUidAsUser(wantedPackageName, TEST_USER_ID))
|
||||
.thenReturn(wantedUid);
|
||||
when(mMockAppWidgetManager.getHostedWidgetPackages(APP_UID))
|
||||
.thenReturn(new ArraySet<>());
|
||||
mContext.getTestablePermissions().setPermission(
|
||||
@@ -313,8 +312,8 @@ public class AccessibilitySecurityPolicyTest {
|
||||
final String[] uidPackages = {PACKAGE_NAME};
|
||||
when(mMockPackageManager.getPackagesForUid(APP_UID))
|
||||
.thenReturn(uidPackages);
|
||||
when(mMockPackageManagerInternal.isSameApp(wantedPackageName, wantedUid, TEST_USER_ID))
|
||||
.thenReturn(true);
|
||||
when(mMockPackageManager.getPackageUidAsUser(wantedPackageName, TEST_USER_ID))
|
||||
.thenReturn(wantedUid);
|
||||
when(mMockAppWidgetManager.getHostedWidgetPackages(APP_UID))
|
||||
.thenReturn(new ArraySet<>());
|
||||
mContext.getTestablePermissions().setPermission(
|
||||
|
||||
Reference in New Issue
Block a user