Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +7 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); } Loading services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java +12 −13 Original line number Diff line number Diff line Loading @@ -146,7 +146,7 @@ public class AccessibilitySecurityPolicyTest { @Mock private PolicyWarningUIController mPolicyWarningUIController; @Mock private PackageManagerInternal mMockPackageManagerInternal; private PackageManagerInternal mPackageManagerInternal; @Before public void setUp() { Loading @@ -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); Loading Loading @@ -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), Loading @@ -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), Loading @@ -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( Loading @@ -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( Loading @@ -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( Loading Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +7 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); } Loading
services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java +12 −13 Original line number Diff line number Diff line Loading @@ -146,7 +146,7 @@ public class AccessibilitySecurityPolicyTest { @Mock private PolicyWarningUIController mPolicyWarningUIController; @Mock private PackageManagerInternal mMockPackageManagerInternal; private PackageManagerInternal mPackageManagerInternal; @Before public void setUp() { Loading @@ -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); Loading Loading @@ -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), Loading @@ -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), Loading @@ -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( Loading @@ -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( Loading @@ -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( Loading