[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 <reg.fm4@gmail.com>
This commit is contained in:
7Soldier 2023-06-18 22:18:34 +03:00
parent bec02b8edb
commit 0eca42009d
2 changed files with 38 additions and 5 deletions

View file

@ -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

View file

@ -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