summaryrefslogtreecommitdiff
path: root/rootdir
diff options
context:
space:
mode:
authorWei Wang <wvw@google.com>2018-04-04 13:45:33 -0700
committerBruno Martins <bgcngm@gmail.com>2020-10-25 21:44:15 +0000
commit4cdbee076e7a961aec60ac862d86e66e15ab220c (patch)
tree06499930e909381b06811ecf0c9c71a6564debbe /rootdir
parent79f0593950fb69a1e40309a03eba40b8546c0997 (diff)
pro1: Wait for hwservicemanager ready before running fsck
As property service is part of init, and if init is busy with built-in command e.g. fsck, the propety_set() won't go through until the built-in command is finished. Move the start of hwservicemanager earlier and wait for its done after launches bootanim and its dependencies (there is not wait time during boot but the command is as a safeguard). Bug: 74437368 Test: boot with simulated long fsck and bootanim shown early Test: boot see 'start_waiting_for_property("hwservicemanager.ready", "true"): already set' Change-Id: Iab4b857a51e0e6b8b059d063c1f0d65a0e987622
Diffstat (limited to 'rootdir')
-rw-r--r--rootdir/etc/init.qcom.rc11
1 files changed, 8 insertions, 3 deletions
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
index 9932ce0..210ef52 100644
--- a/rootdir/etc/init.qcom.rc
+++ b/rootdir/etc/init.qcom.rc
@@ -138,6 +138,9 @@ on init
write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED
on fs
+ # Start HW service manager early
+ start hwservicemanager
+
wait /dev/block/platform/soc/1da4000.ufshc
symlink /dev/block/platform/soc/1da4000.ufshc /dev/block/bootdevice
@@ -171,9 +174,6 @@ on fs
chmod 0664 /mnt/vendor/persist/sensors/sensors_settings
- # Start HW service manager early
- start hwservicemanager
-
# qseecomd needs /dev/block/bootdevice
# vold needs keymaster that needs qseecomd
start vendor.qseecomd
@@ -193,6 +193,11 @@ on late-fs
start vendor.configstore-hal
start vendor.gralloc-2-0
+ # Wait for hwservicemanager ready since fsck might be triggered in mount_all --late
+ # In such case, init won't responce the property_set from hwservicemanager and then
+ # cause services for bootanim not running.
+ wait_for_prop hwservicemanager.ready true
+
# Mount RW partitions which need run fsck
mount_all /vendor/etc/fstab.qcom --late