From c260c96b5cfe6b6d0cafb8d94b103b5c573e7feb Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 17 Sep 2018 17:49:41 -0700 Subject: [PATCH 1/2] OTA Dexopt: Remove old '&' path Expect that package state is up-to-date, so that shared system apps are correctly recognized by themselves. Bug: 115853663 Test: m Test: OTA tests Test: manual A/B OTA Change-Id: Ia223bd48c4c5849b441bd4c5f0a87768aee5582d --- .../java/com/android/server/pm/OtaDexoptService.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index 77ef63dd5aadb..3fe47c43b5dd0 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -53,10 +53,6 @@ public class OtaDexoptService extends IOtaDexopt.Stub { private final static String TAG = "OTADexopt"; private final static boolean DEBUG_DEXOPT = true; - // The synthetic library dependencies denoting "no checks." - private final static String[] NO_LIBRARIES = - new String[] { PackageDexOptimizer.SKIP_SHARED_LIBRARY_CHECK }; - // The amount of "available" (free - low threshold) space necessary at the start of an OTA to // not bulk-delete unused apps' odex files. private final static long BULK_DELETE_THRESHOLD = 1024 * 1024 * 1024; // 1GB. @@ -338,11 +334,6 @@ public class OtaDexoptService extends IOtaDexopt.Stub { collectingInstaller, mPackageManagerService.mInstallLock, mContext); String[] libraryDependencies = pkg.usesLibraryFiles; - if (pkg.isSystem()) { - // For system apps, we want to avoid classpaths checks. - libraryDependencies = NO_LIBRARIES; - } - optimizer.performDexOpt(pkg, libraryDependencies, null /* ISAs */, From e164b18c2097c4bd40da0cf559b0339d697896ef Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Tue, 18 Sep 2018 10:37:59 -0700 Subject: [PATCH 2/2] OTA Dexopt: Use protocol version 10 In version 10, we no longer assume '&' for shared libraries of system packages, instead expecting the package manager state to be precise and correct. Bug: 115993344 Test: m Test: OTA tests Test: manual OTA Change-Id: I0d7942db14b247a83a506e5d45b44ff3a65ad90e --- .../core/java/com/android/server/pm/OtaDexoptService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index 3fe47c43b5dd0..dea78630e4fe1 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -284,8 +284,8 @@ public class OtaDexoptService extends IOtaDexopt.Stub { throws InstallerException { final StringBuilder builder = new StringBuilder(); - // The current version. - builder.append("9 "); + // The current version. For v10, see b/115993344. + builder.append("10 "); builder.append("dexopt");