Ensure update_verifier run before zygote

Currently zygote is started early for FBE device but update_verifier is run later
which creates a potential risk. This CL ensures update_verifier run before
zygote touches anything within data/ partition. With this change, we also start zygote
early for unencrypted/unsupported encryption state device.

Bug: 37543411
Test: marlin boots
Change-Id: I95daa73bc1a503eecb70d7be78251b74b773abf8
This commit is contained in:
Wei Wang 2017-04-20 14:37:55 -07:00
parent a0bf415cad
commit 5dc05effec
1 changed files with 21 additions and 8 deletions

View File

@ -495,13 +495,28 @@ on post-fs-data
# Set indication (checked by vold) that we have finished this action
#setprop vold.post_fs_data_done 1
# This trigger will be triggered before 'zygote-start' since there is no zygote-start defined in
# current init.rc. It is recommended to put unnecessary data/ initialization from post-fs-data
# to start-zygote to unblock zygote start.
# It is recommended to put unnecessary data/ initialization from post-fs-data
# to start-zygote in device's init.rc to unblock zygote start.
on zygote-start && property:ro.crypto.state=unencrypted
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
start netd
start zygote
start zygote_secondary
on zygote-start && property:ro.crypto.state=unsupported
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
start netd
start zygote
start zygote_secondary
on zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type=file
start netd
start zygote
start zygote_secondary
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
start netd
start zygote
start zygote_secondary
on boot
# basic network init
@ -600,8 +615,6 @@ on boot
class_start core
on nonencrypted
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
class_start main
class_start late_start