diff --git a/insmod/insmod.sh b/insmod/insmod.sh index 8cac37e..f15ebbc 100755 --- a/insmod/insmod.sh +++ b/insmod/insmod.sh @@ -11,6 +11,17 @@ modules_dir= system_modules_dir= vendor_modules_dir= +pagesize=$(getconf PAGESIZE) +bootoption=$(getprop ro.product.build.16k_page.enabled) +if [ "$pagesize" != "4096" ] && [ "$bootoption" == "true" ]; then + echo "Device has page size $pagesize , skip loading modules from vendor_dlkm/system_dlkm because all modules are stored on vendor_boot" + setprop vendor.common.modules.ready 1 + setprop vendor.device.modules.ready 1 + setprop vendor.all.modules.ready 1 + setprop vendor.all.devices.ready 1 + return 0 +fi + for dir in system vendor; do for f in /${dir}/lib/modules/*/modules.dep /${dir}/lib/modules/modules.dep; do if [[ -f "$f" ]]; then @@ -52,10 +63,10 @@ if [ $# -eq 1 ]; then else # Set property even if there is no insmod config # to unblock early-boot trigger - setprop vendor.common.modules.ready - setprop vendor.device.modules.ready - setprop vendor.all.modules.ready - setprop vendor.all.devices.ready + setprop vendor.common.modules.ready 1 + setprop vendor.device.modules.ready 1 + setprop vendor.all.modules.ready 1 + setprop vendor.all.devices.ready 1 exit 1 fi diff --git a/insmod/sepolicy/insmod-sh.te b/insmod/sepolicy/insmod-sh.te index ba82b0a..3c1adde 100644 --- a/insmod/sepolicy/insmod-sh.te +++ b/insmod/sepolicy/insmod-sh.te @@ -10,5 +10,9 @@ allow insmod-sh vendor_kernel_modules:system module_load; allow insmod-sh vendor_toolbox_exec:file execute_no_trans; set_prop(insmod-sh, vendor_device_prop) +get_prop(insmod-sh, enable_16k_pages_prop) + +allow insmod-sh kmsg_debug_device:chr_file { w_file_perms ioctl getattr }; dontaudit insmod-sh proc_cmdline:file r_file_perms; +