From f81f54166221fa68492e4c3a19b26047d31741b9 Mon Sep 17 00:00:00 2001 From: Calin Juravle Date: Thu, 6 May 2021 15:25:32 -0700 Subject: [master] Enforce system/root/shell for dexopt operation. Dexopt acquires system level locks (e.g. installd locks) so it should not be called by artbitrary apps via `adb shell` commands. Test: manual Bug: 180652564 Change-Id: I385d5346df7721d95edf40c45d06b969870e4bda --- services/core/java/com/android/server/pm/PackageManagerService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2a47d14370a3..36f4ac9414ac 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -10017,6 +10017,8 @@ public class PackageManagerService extends IPackageManager.Stub public boolean performDexOptMode(String packageName, boolean checkProfiles, String targetCompilerFilter, boolean force, boolean bootComplete, String splitName) { + enforceSystemOrRootOrShell("performDexOptMode"); + int flags = (checkProfiles ? DexoptOptions.DEXOPT_CHECK_FOR_PROFILES_UPDATES : 0) | (force ? DexoptOptions.DEXOPT_FORCE : 0) | (bootComplete ? DexoptOptions.DEXOPT_BOOT_COMPLETE : 0); -- cgit v1.2.3