diff --git a/recovery/root/init.recovery.qcom.rc b/recovery/root/init.recovery.qcom.rc index 5137314..cbaf97d 100644 --- a/recovery/root/init.recovery.qcom.rc +++ b/recovery/root/init.recovery.qcom.rc @@ -30,7 +30,12 @@ import /init.recovery.qcom_decrypt.rc on early-init start set_permissive - # Kernel modules +on fs + wait /dev/block/platform/soc/${ro.boot.bootdevice} + symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice + +on property:init.svc.fastbootd=running + # Load prebuild kernel modules in fastboot mode insmod /vendor/lib/modules/msm_drm.ko insmod /vendor/lib/modules/mmi_annotate.ko insmod /vendor/lib/modules/mmi_info.ko @@ -51,12 +56,15 @@ on early-init insmod /vendor/lib/modules/gpr_dlkm.ko insmod /vendor/lib/modules/spf_core_dlkm.ko insmod /vendor/lib/modules/adsp_loader_dlkm.ko + setprop twrp.modules.loaded true -on fs - wait /dev/block/platform/soc/${ro.boot.bootdevice} - symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice +on post-fs && property:init.svc.fastbootd=stopped + # Trigger loading kernel modules in normal mode + setprop twrp.modules.loaded true - # Load ADSP firmware for PMIC +on property:twrp.modules.loaded=true + # Load kernel modules and ADSP firmware for PMIC + wait /sys/kernel/boot_adsp/boot start runatboot wait /sys/class/power_supply/battery diff --git a/recovery/root/system/bin/runatboot.sh b/recovery/root/system/bin/runatboot.sh index 6dc1d95..d337adb 100755 --- a/recovery/root/system/bin/runatboot.sh +++ b/recovery/root/system/bin/runatboot.sh @@ -1,4 +1,29 @@ #!/system/bin/sh +is_fastboot=$(getprop init.svc.fastbootd) +if [ "$is_fastboot" != "running" ]; then + mount /vendor_dlkm + insmod /vendor_dlkm/lib/modules/msm_drm.ko + insmod /vendor_dlkm/lib/modules/mmi_annotate.ko + insmod /vendor_dlkm/lib/modules/mmi_info.ko + insmod /vendor_dlkm/lib/modules/mmi_relay.ko + insmod /vendor_dlkm/lib/modules/mmi_charger.ko + insmod /vendor_dlkm/lib/modules/mmi_sys_temp.ko + insmod /vendor_dlkm/lib/modules/sensors_class.ko + insmod /vendor_dlkm/lib/modules/touchscreen_mmi.ko + insmod /vendor_dlkm/lib/modules/stmicro_mmi.ko + insmod /vendor_dlkm/lib/modules/goodix_brl_mmi.ko + insmod /vendor_dlkm/lib/modules/sx937x_sar.ko + insmod /vendor_dlkm/lib/modules/bm_adsp_ulog.ko + insmod /vendor_dlkm/lib/modules/qti_glink_charger.ko + insmod /vendor_dlkm/lib/modules/qpnp_adaptive_charge.ko + insmod /vendor_dlkm/lib/modules/q6_pdr_dlkm.ko + insmod /vendor_dlkm/lib/modules/q6_notifier_dlkm.ko + insmod /vendor_dlkm/lib/modules/snd_event_dlkm.ko + insmod /vendor_dlkm/lib/modules/gpr_dlkm.ko + insmod /vendor_dlkm/lib/modules/spf_core_dlkm.ko + insmod /vendor_dlkm/lib/modules/adsp_loader_dlkm.ko +fi + mkdir /firmware SLOT=$(getprop ro.boot.slot_suffix) mount /dev/block/bootdevice/by-name/modem$SLOT /firmware -O ro