diff options
author | Mohammad Samiul Islam <samiul@google.com> | 2020-10-13 16:33:39 +0100 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-04-17 00:08:23 +0000 |
commit | 301aaf691f185572246721cfa43f5e8a54830d1e (patch) | |
tree | 7f99f3751625ce0b6e31021d5073bf9e9c3853b7 | |
parent | de4179c62456ea3ecc19e692440384a43940b671 (diff) | |
download | base-301aaf691f185572246721cfa43f5e8a54830d1e.tar.gz |
Prevent apk-in-apex from being registered under wrong apex
Without this fix, an apk-in-apex located in path
/apex/com.android.mediaprovider will be added as apk-in-apex
for com.android.media too, just because they have the same
prefix.
Added a info log too to make it easier to understand which apk-in-apex
is being registered under which apex.
Bug: 170640411
Test: Manual testing
Change-Id: Idc989ac84777589b4bdd72012833cdbdab7e872c
Merged-In: Idc989ac84777589b4bdd72012833cdbdab7e872c
(cherry picked from commit c45a426e8e6343922ff9c6f7380e4e7bbdf360a1)
(cherry picked from commit 58cd8bc29e092fc6c13f893c1cd497e7c3b75bdb)
-rw-r--r-- | services/core/java/com/android/server/pm/ApexManager.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java index d9d949154ce1..1be8390a8757 100644 --- a/services/core/java/com/android/server/pm/ApexManager.java +++ b/services/core/java/com/android/server/pm/ApexManager.java @@ -757,12 +757,15 @@ public abstract class ApexManager { void registerApkInApex(AndroidPackage pkg) { synchronized (mLock) { for (ActiveApexInfo aai : mActiveApexInfosCache) { - if (pkg.getBaseCodePath().startsWith(aai.apexDirectory.getAbsolutePath())) { + if (pkg.getBaseCodePath().startsWith( + aai.apexDirectory.getAbsolutePath() + File.separator)) { List<String> apks = mApksInApex.get(aai.apexModuleName); if (apks == null) { apks = Lists.newArrayList(); mApksInApex.put(aai.apexModuleName, apks); } + Slog.i(TAG, "Registering " + pkg.getPackageName() + " as apk-in-apex of " + + aai.apexModuleName); apks.add(pkg.getPackageName()); } } |