[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 on early-init
start set_permissive 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/msm_drm.ko
insmod /vendor/lib/modules/mmi_annotate.ko insmod /vendor/lib/modules/mmi_annotate.ko
insmod /vendor/lib/modules/mmi_info.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/gpr_dlkm.ko
insmod /vendor/lib/modules/spf_core_dlkm.ko insmod /vendor/lib/modules/spf_core_dlkm.ko
insmod /vendor/lib/modules/adsp_loader_dlkm.ko insmod /vendor/lib/modules/adsp_loader_dlkm.ko
setprop twrp.modules.loaded true
on fs on post-fs && property:init.svc.fastbootd=stopped
wait /dev/block/platform/soc/${ro.boot.bootdevice} # Trigger loading kernel modules in normal mode
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice 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 start runatboot
wait /sys/class/power_supply/battery wait /sys/class/power_supply/battery

View file

@ -1,4 +1,29 @@
#!/system/bin/sh #!/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 mkdir /firmware
SLOT=$(getprop ro.boot.slot_suffix) SLOT=$(getprop ro.boot.slot_suffix)
mount /dev/block/bootdevice/by-name/modem$SLOT /firmware -O ro mount /dev/block/bootdevice/by-name/modem$SLOT /firmware -O ro