Loading services/core/java/com/android/server/pm/OtaDexoptService.java +13 −3 Original line number Original line Diff line number Diff line Loading @@ -95,9 +95,6 @@ public class OtaDexoptService extends IOtaDexopt.Stub { public OtaDexoptService(Context context, PackageManagerService packageManagerService) { public OtaDexoptService(Context context, PackageManagerService packageManagerService) { this.mContext = context; this.mContext = context; this.mPackageManagerService = packageManagerService; this.mPackageManagerService = packageManagerService; // Now it's time to check whether we need to move any A/B artifacts. moveAbArtifacts(packageManagerService.mInstaller); } } public static OtaDexoptService main(Context context, public static OtaDexoptService main(Context context, Loading @@ -105,6 +102,9 @@ public class OtaDexoptService extends IOtaDexopt.Stub { OtaDexoptService ota = new OtaDexoptService(context, packageManagerService); OtaDexoptService ota = new OtaDexoptService(context, packageManagerService); ServiceManager.addService("otadexopt", ota); ServiceManager.addService("otadexopt", ota); // Now it's time to check whether we need to move any A/B artifacts. ota.moveAbArtifacts(packageManagerService.mInstaller); return ota; return ota; } } Loading Loading @@ -323,8 +323,15 @@ public class OtaDexoptService extends IOtaDexopt.Stub { throw new IllegalStateException("Should not be ota-dexopting when trying to move."); throw new IllegalStateException("Should not be ota-dexopting when trying to move."); } } if (!mPackageManagerService.isUpgrade()) { Slog.d(TAG, "No upgrade, skipping A/B artifacts check."); return; } // Look into all packages. // Look into all packages. Collection<PackageParser.Package> pkgs = mPackageManagerService.getPackages(); Collection<PackageParser.Package> pkgs = mPackageManagerService.getPackages(); int packagePaths = 0; int pathsSuccessful = 0; for (PackageParser.Package pkg : pkgs) { for (PackageParser.Package pkg : pkgs) { if (pkg == null) { if (pkg == null) { continue; continue; Loading Loading @@ -355,13 +362,16 @@ public class OtaDexoptService extends IOtaDexopt.Stub { // TODO: Check first whether there is an artifact, to save the roundtrip time. // TODO: Check first whether there is an artifact, to save the roundtrip time. packagePaths++; try { try { installer.moveAb(path, dexCodeInstructionSet, oatDir); installer.moveAb(path, dexCodeInstructionSet, oatDir); pathsSuccessful++; } catch (InstallerException e) { } catch (InstallerException e) { } } } } } } } } Slog.i(TAG, "Moved " + pathsSuccessful + "/" + packagePaths); } } /** /** Loading Loading
services/core/java/com/android/server/pm/OtaDexoptService.java +13 −3 Original line number Original line Diff line number Diff line Loading @@ -95,9 +95,6 @@ public class OtaDexoptService extends IOtaDexopt.Stub { public OtaDexoptService(Context context, PackageManagerService packageManagerService) { public OtaDexoptService(Context context, PackageManagerService packageManagerService) { this.mContext = context; this.mContext = context; this.mPackageManagerService = packageManagerService; this.mPackageManagerService = packageManagerService; // Now it's time to check whether we need to move any A/B artifacts. moveAbArtifacts(packageManagerService.mInstaller); } } public static OtaDexoptService main(Context context, public static OtaDexoptService main(Context context, Loading @@ -105,6 +102,9 @@ public class OtaDexoptService extends IOtaDexopt.Stub { OtaDexoptService ota = new OtaDexoptService(context, packageManagerService); OtaDexoptService ota = new OtaDexoptService(context, packageManagerService); ServiceManager.addService("otadexopt", ota); ServiceManager.addService("otadexopt", ota); // Now it's time to check whether we need to move any A/B artifacts. ota.moveAbArtifacts(packageManagerService.mInstaller); return ota; return ota; } } Loading Loading @@ -323,8 +323,15 @@ public class OtaDexoptService extends IOtaDexopt.Stub { throw new IllegalStateException("Should not be ota-dexopting when trying to move."); throw new IllegalStateException("Should not be ota-dexopting when trying to move."); } } if (!mPackageManagerService.isUpgrade()) { Slog.d(TAG, "No upgrade, skipping A/B artifacts check."); return; } // Look into all packages. // Look into all packages. Collection<PackageParser.Package> pkgs = mPackageManagerService.getPackages(); Collection<PackageParser.Package> pkgs = mPackageManagerService.getPackages(); int packagePaths = 0; int pathsSuccessful = 0; for (PackageParser.Package pkg : pkgs) { for (PackageParser.Package pkg : pkgs) { if (pkg == null) { if (pkg == null) { continue; continue; Loading Loading @@ -355,13 +362,16 @@ public class OtaDexoptService extends IOtaDexopt.Stub { // TODO: Check first whether there is an artifact, to save the roundtrip time. // TODO: Check first whether there is an artifact, to save the roundtrip time. packagePaths++; try { try { installer.moveAb(path, dexCodeInstructionSet, oatDir); installer.moveAb(path, dexCodeInstructionSet, oatDir); pathsSuccessful++; } catch (InstallerException e) { } catch (InstallerException e) { } } } } } } } } Slog.i(TAG, "Moved " + pathsSuccessful + "/" + packagePaths); } } /** /** Loading