Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +3 −5 Original line number Diff line number Diff line Loading @@ -13326,12 +13326,10 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { final CallerIdentity caller = getCallerIdentity(); final long ident = mInjector.binderClearCallingIdentity(); try { final int uidForPackage = mInjector.getPackageManager().getPackageUidAsUser( packageName, caller.getUserId()); Preconditions.checkArgument(caller.getUid() == uidForPackage, final List<String> callerUidPackageNames = Arrays.asList( mInjector.getPackageManager().getPackagesForUid(caller.getUid())); Preconditions.checkArgument(callerUidPackageNames.contains(packageName), "Caller uid doesn't match the one for the provided package."); } catch (NameNotFoundException e) { throw new IllegalArgumentException("Invalid package provided " + packageName, e); } finally { mInjector.binderRestoreCallingIdentity(ident); } services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java +2 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,8 @@ public abstract class DpmTestBase { doReturn(new String[] {admin.getPackageName()}).when(mServices.ipackageManager) .getPackagesForUid(eq(packageUid)); doReturn(new String[] {admin.getPackageName()}).when(mServices.packageManager) .getPackagesForUid(eq(packageUid)); // Set up getPackageInfo(). markPackageAsInstalled(admin.getPackageName(), ai, UserHandle.getUserId(packageUid)); } Loading Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +3 −5 Original line number Diff line number Diff line Loading @@ -13326,12 +13326,10 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { final CallerIdentity caller = getCallerIdentity(); final long ident = mInjector.binderClearCallingIdentity(); try { final int uidForPackage = mInjector.getPackageManager().getPackageUidAsUser( packageName, caller.getUserId()); Preconditions.checkArgument(caller.getUid() == uidForPackage, final List<String> callerUidPackageNames = Arrays.asList( mInjector.getPackageManager().getPackagesForUid(caller.getUid())); Preconditions.checkArgument(callerUidPackageNames.contains(packageName), "Caller uid doesn't match the one for the provided package."); } catch (NameNotFoundException e) { throw new IllegalArgumentException("Invalid package provided " + packageName, e); } finally { mInjector.binderRestoreCallingIdentity(ident); }
services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java +2 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,8 @@ public abstract class DpmTestBase { doReturn(new String[] {admin.getPackageName()}).when(mServices.ipackageManager) .getPackagesForUid(eq(packageUid)); doReturn(new String[] {admin.getPackageName()}).when(mServices.packageManager) .getPackagesForUid(eq(packageUid)); // Set up getPackageInfo(). markPackageAsInstalled(admin.getPackageName(), ai, UserHandle.getUserId(packageUid)); } Loading