diff options
-rw-r--r-- | device.mk | 4 | ||||
-rw-r--r-- | init.angler.qseecomd.sh | 1 | ||||
-rwxr-xr-x | init.angler.rc | 14 | ||||
-rwxr-xr-x | init.qcom.devstart.sh | 4 | ||||
-rwxr-xr-x | init.qcom.devwait.sh | 8 | ||||
-rw-r--r-- | sepolicy/file_contexts | 3 | ||||
-rw-r--r-- | sepolicy/init-devstart-sh.te | 15 | ||||
-rw-r--r-- | sepolicy/init-devwait-sh.te | 9 |
8 files changed, 55 insertions, 3 deletions
@@ -42,7 +42,9 @@ PRODUCT_COPY_FILES += \ device/huawei/angler/ueventd.angler.rc:root/ueventd.angler.rc \ device/huawei/angler/init.recovery.angler.rc:root/init.recovery.angler.rc \ device/huawei/angler/init.angler.power.sh:system/bin/init.angler.power.sh \ - device/huawei/angler/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl + device/huawei/angler/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl \ + device/huawei/angler/init.qcom.devwait.sh:system/bin/init.qcom.devwait.sh \ + device/huawei/angler/init.qcom.devstart.sh:system/bin/init.qcom.devstart.sh ifeq ($(TARGET_USES_CHINOOK_SENSORHUB),true) PRODUCT_COPY_FILES += \ diff --git a/init.angler.qseecomd.sh b/init.angler.qseecomd.sh index f126a77..25a477d 100644 --- a/init.angler.qseecomd.sh +++ b/init.angler.qseecomd.sh @@ -1,5 +1,6 @@ #!/system/bin/sh +registered="`getprop sys.listeners.registered`" while [ "$registered" != "true" ] do sleep 0.1 diff --git a/init.angler.rc b/init.angler.rc index 0d6bdd8..afa73e0 100755 --- a/init.angler.rc +++ b/init.angler.rc @@ -60,6 +60,9 @@ on early-boot # Update dm-verity state and set partition.*.verified properties verity_update_state + # Busy loop to wait for devices booted by devstart_sh just in case device not ready + exec - root root system -- /system/bin/init.qcom.devwait.sh + on boot # execute script to set initial CPU settings # don't run as a service to avoid race conditions @@ -150,7 +153,10 @@ on post-fs symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice start qseecomd + # Busy loop to wait for qseecomd started exec - root root system -- /system/bin/init.angler.qseecomd.sh + # Start devices by sysfs trigger + start devstart_sh on post-fs-data # boot time fs tune @@ -163,8 +169,6 @@ on post-fs-data write /sys/block/dm-1/queue/read_ahead_kb 2048 write /sys/block/dm-2/queue/read_ahead_kb 2048 - write /sys/kernel/boot_adsp/boot 1 - # Ecc_Handler qcril.db mkdir /data/misc/radio 0770 system radio @@ -499,3 +503,9 @@ service diag_test_server /vendor/bin/diag_test_server on property:ro.boot.mode=hw-factory start diag_test_server +service devstart_sh /system/bin/init.qcom.devstart.sh + class main + user root + group root system + disabled + oneshot diff --git a/init.qcom.devstart.sh b/init.qcom.devstart.sh new file mode 100755 index 0000000..8e8cff5 --- /dev/null +++ b/init.qcom.devstart.sh @@ -0,0 +1,4 @@ +#!/system/bin/sh + +echo 1 > /sys/kernel/boot_adsp/boot +setprop sys.qcom.devup 1 diff --git a/init.qcom.devwait.sh b/init.qcom.devwait.sh new file mode 100755 index 0000000..aeee1d4 --- /dev/null +++ b/init.qcom.devwait.sh @@ -0,0 +1,8 @@ +#!/system/bin/sh + +up="`getprop sys.qcom.devup`" +while [ "$up" != "1" ] +do + sleep 0.1 + up="`getprop sys.qcom.devup`" +done diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts index cee6202..bf39d52 100644 --- a/sepolicy/file_contexts +++ b/sepolicy/file_contexts @@ -79,6 +79,7 @@ /persist/sensors(/.*)? u:object_r:persist_sensors_file:s0 /sys/bus/msm_subsys(/.*)? u:object_r:sysfs_msm_subsys:s0 +/sys/kernel/boot_adsp/boot u:object_r:sysfs_msm_subsys:s0 /sys/devices/bt_bcm4358\.[0-9]+/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0 /sys/devices/soc\.0/\w+\.qcom,\w+/subsys[0-9]/restart_level u:object_r:sysfs_msm_subsys_toggle:s0 /sys/devices/soc\.0/fd900000\.qcom,mdss_mdp/qcom,mdss_fb_primary\.[0-9]+/leds(/.*)? u:object_r:sysfs_led:s0 @@ -126,6 +127,8 @@ /vendor/bin/ims_rtp_daemon u:object_r:ims_exec:s0 /system/bin/init\.angler\.power\.sh u:object_r:init-power-sh_exec:s0 /system/bin/init\.angler\.qseecomd\.sh u:object_r:init-angler-qseecomd-sh_exec:s0 +/system/bin/init\.qcom\.devstart\.sh u:object_r:init-qcom-devstart-sh_exec:s0 +/system/bin/init\.qcom\.devwait\.sh u:object_r:init-qcom-devwait-sh_exec:s0 /system/bin/init\.mcfg\.sh u:object_r:init-mcfg-sh_exec:s0 /vendor/bin/irsc_util u:object_r:irsc_util_exec:s0 /vendor/bin/loc_launcher u:object_r:location_exec:s0 diff --git a/sepolicy/init-devstart-sh.te b/sepolicy/init-devstart-sh.te new file mode 100644 index 0000000..24004d2 --- /dev/null +++ b/sepolicy/init-devstart-sh.te @@ -0,0 +1,15 @@ +type init-qcom-devstart-sh, domain; +type init-qcom-devstart-sh_exec, exec_type, file_type; + +init_daemon_domain(init-qcom-devstart-sh) + +allow init-qcom-devstart-sh shell_exec:file rx_file_perms; + +# execute toybox/toolbox +allow init-qcom-devstart-sh toolbox_exec:file rx_file_perms; + +# Set the sys.qcom.devup property +set_prop(init-qcom-devstart-sh, system_prop) + +# Set boot_adsp and boot_slpi to 1 +allow init-qcom-devstart-sh sysfs_msm_subsys:file w_file_perms; diff --git a/sepolicy/init-devwait-sh.te b/sepolicy/init-devwait-sh.te new file mode 100644 index 0000000..1529536 --- /dev/null +++ b/sepolicy/init-devwait-sh.te @@ -0,0 +1,9 @@ +type init-qcom-devwait-sh, domain; +type init-qcom-devwait-sh_exec, exec_type, file_type; + +init_daemon_domain(init-qcom-devwait-sh) + +allow init-qcom-devwait-sh shell_exec:file rx_file_perms; + +# execute toybox/toolbox +allow init-qcom-devwait-sh toolbox_exec:file rx_file_perms; |