Wait for installd to start to perform dexopt operation

If there are any system_server jars that need dexopt then
we need to make sure that installd is started.

Issue: 160911601
Test: Manual - see issue
Change-Id: Iefcaf708b695504353f664b91017c9cd3a094f8e
This commit is contained in:
Sebastian Achim
2020-07-02 10:03:42 +02:00
committed by Edward Savage-Jones
parent 0292235a96
commit 7adcb4f170

View File

@@ -648,8 +648,6 @@ public class ZygoteInit {
*/
private static void performSystemServerDexOpt(String classPath) {
final String[] classPathElements = classPath.split(":");
final IInstalld installd = IInstalld.Stub
.asInterface(ServiceManager.getService("installd"));
final String instructionSet = VMRuntime.getRuntime().vmInstructionSet();
String classPathForElement = "";
@@ -686,6 +684,10 @@ public class ZygoteInit {
final String uuid = StorageManager.UUID_PRIVATE_INTERNAL;
final String seInfo = null;
final int targetSdkVersion = 0; // SystemServer targets the system's SDK version
// Wait for installd to be made available
IInstalld installd = IInstalld.Stub.asInterface(
ServiceManager.waitForService("installd"));
try {
installd.dexopt(classPathElement, Process.SYSTEM_UID, packageName,
instructionSet, dexoptNeeded, outputPath, dexFlags, systemServerFilter,