From da94c7f6501158de734171c0f62a486ac69ac8a9 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Fri, 8 Apr 2022 15:08:48 -0700 Subject: [PATCH] Add support for only starting 64 bit zygote. This is part of the changes that will allow creating a single system image but a different set of properties will either start or not start the secondary zygote. Bug: 227482437 Test: Verified that secondary doesn't start with same system image Test: with ro.zygote set to zygote64 and abilists set appropriately. Test: Verified that secondary does not start when restarting netd. Test: Verified that secondary does start with same system image Test: with ro.zygote set to zygote64_32 and abilists set appropriately. Test: Verified that secondary does start when restarting netd. Test: Verified that a 64 bit device only starts the primary. Test: Verified that a 32 bit device only starts the primary. Change-Id: Id37a223c73f9a61868b2e26450ef4b6964f7b496 --- rootdir/init.rc | 16 +++++++++++----- rootdir/init.zygote64_32.rc | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc index 135accef0..e59f6b155 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -827,7 +827,6 @@ on post-fs-data mkdir /data/misc/odsign 0710 root system # directory used for odsign metrics mkdir /data/misc/odsign/metrics 0770 root system - # Directory for VirtualizationService temporary image files. mkdir /data/misc/virtualizationservice 0700 virtualizationservice virtualizationservice @@ -1031,8 +1030,7 @@ on zygote-start && property:ro.crypto.state=unencrypted exec_start update_verifier_nonencrypted start statsd start netd - start zygote - start zygote_secondary + trigger zygote-run on zygote-start && property:ro.crypto.state=unsupported wait_for_prop odsign.verification.done 1 @@ -1040,8 +1038,7 @@ on zygote-start && property:ro.crypto.state=unsupported exec_start update_verifier_nonencrypted start statsd start netd - start zygote - start zygote_secondary + trigger zygote-run on zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type=file wait_for_prop odsign.verification.done 1 @@ -1049,6 +1046,15 @@ on zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type exec_start update_verifier_nonencrypted start statsd start netd + trigger zygote-run + +on zygote-run && property:ro.zygote=zygote32 + start zygote + +on zygote-run && property:ro.zygote=zygote64 + start zygote + +on zygote-run && property:ro.zygote=zygote64_32 start zygote start zygote_secondary diff --git a/rootdir/init.zygote64_32.rc b/rootdir/init.zygote64_32.rc index efb30d664..dfe16454c 100644 --- a/rootdir/init.zygote64_32.rc +++ b/rootdir/init.zygote64_32.rc @@ -25,3 +25,4 @@ service zygote_secondary /system/bin/app_process32 -Xzygote /system/bin --zygote socket usap_pool_secondary stream 660 root system onrestart restart zygote task_profiles ProcessCapacityHigh MaxPerformance + disabled