summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Song Chun Fan <schfan@google.com> 2024-05-14 14:33:21 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2024-05-14 14:33:21 +0000
commit0d5cb38b3b2c347183b57d70ffee4a9af9848e7d (patch)
tree1aea50e83ea670058eeea082f2a3e4a1361f614e
parentd95cbf18743e9757bace716d6be9f4fdbc2bae59 (diff)
parent98bb2ee4d5f1caf40810f33f6ff6dedfd8c2b15b (diff)
Merge "AppDataHelper:fix ArrayIndexOutOfBoundsException happen in fixAppsDataOnBoot method due to forget add lock." into main am: 91ed58744f am: 98bb2ee4d5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3075184 Change-Id: I76c619877ae376314ad744b8d0588962865cba00 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/pm/AppDataHelper.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/AppDataHelper.java b/services/core/java/com/android/server/pm/AppDataHelper.java
index 9ba88aa18ce6..fe774aa75efc 100644
--- a/services/core/java/com/android/server/pm/AppDataHelper.java
+++ b/services/core/java/com/android/server/pm/AppDataHelper.java
@@ -504,9 +504,12 @@ public class AppDataHelper {
} else {
storageFlags = StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE;
}
- List<String> deferPackages = reconcileAppsDataLI(StorageManager.UUID_PRIVATE_INTERNAL,
- UserHandle.USER_SYSTEM, storageFlags, true /* migrateAppData */,
- true /* onlyCoreApps */);
+ final List<String> deferPackages;
+ synchronized (mPm.mInstallLock) {
+ deferPackages = reconcileAppsDataLI(StorageManager.UUID_PRIVATE_INTERNAL,
+ UserHandle.USER_SYSTEM, storageFlags, true /* migrateAppData */,
+ true /* onlyCoreApps */);
+ }
Future<?> prepareAppDataFuture = SystemServerInitThreadPool.submit(() -> {
TimingsTraceLog traceLog = new TimingsTraceLog("SystemServerTimingAsync",
Trace.TRACE_TAG_PACKAGE_MANAGER);