From 0eca42009d569df124c527904d4c46902c4b3642 Mon Sep 17 00:00:00 2001 From: 7Soldier Date: Sun, 18 Jun 2023 22:18:34 +0300 Subject: [PATCH] [FIXME] hiphi: recovery/root: Implement proper modules loading * On different versions of ROM can be used different kernel modules, loading prebuilds can cause issues with battery, touchscreen and OTG for some users. * However, in fastbootd mode not possible to load kernel modules from current ROM, so we forced to use prebuilds for it. Of course, its not proper solution, but at least it keep situation in same state, and fixes issues for some users in normal recovery mode. Signed-off-by: 7Soldier --- recovery/root/init.recovery.qcom.rc | 18 +++++++++++++----- recovery/root/system/bin/runatboot.sh | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 5 deletions(-) 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