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
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 135acce..e59f6b1 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -827,7 +827,6 @@
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 @@
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 @@
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 @@
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 efb30d6..dfe1645 100644
--- a/rootdir/init.zygote64_32.rc
+++ b/rootdir/init.zygote64_32.rc
@@ -25,3 +25,4 @@
socket usap_pool_secondary stream 660 root system
onrestart restart zygote
task_profiles ProcessCapacityHigh MaxPerformance
+ disabled