diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 8 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerShellCommand.java | 5 |
2 files changed, 5 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 6557ec565343..de5f0c4d523f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -6675,15 +6675,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService @Deprecated public void legacyDumpProfiles(String packageName, boolean dumpClassesAndMethods) throws LegacyDexoptDisabledException { - /* Only the shell, root, or the app user should be able to dump profiles. */ - final int callingUid = Binder.getCallingUid(); final Computer snapshot = snapshotComputer(); - final String[] callerPackageNames = snapshot.getPackagesForUid(callingUid); - if (!PackageManagerServiceUtils.isRootOrShell(callingUid) - && !ArrayUtils.contains(callerPackageNames, packageName)) { - throw new SecurityException("dumpProfiles"); - } - AndroidPackage pkg = snapshot.getPackage(packageName); if (pkg == null) { throw new IllegalArgumentException("Unknown package: " + packageName); diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index 41592bd3b7be..586e1123fdc4 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -391,6 +391,11 @@ class PackageManagerShellCommand extends ShellCommand { private int runLegacyDexoptCommand(@NonNull String cmd) throws RemoteException, LegacyDexoptDisabledException { Installer.checkLegacyDexoptDisabled(); + + if (!PackageManagerServiceUtils.isRootOrShell(Binder.getCallingUid())) { + throw new SecurityException("Dexopt shell commands need root or shell access"); + } + switch (cmd) { case "compile": return runCompile(); |