Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fec52547 authored by Daniel Norman's avatar Daniel Norman Committed by Automerger Merge Worker
Browse files

Merge "Revert "Use PM#isSameApp instead of getPackageUidAsUser."" into udc-dev am: c287392e

parents 98aed7af c287392e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+7 −6
Original line number Diff line number Diff line
@@ -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);
        }
+12 −13
Original line number Diff line number Diff line
@@ -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(