Skip loading kernel modules for 16K mode
For boot options, 16K kernel modules are all stored under vendor_boot. So we can skip loading modules from vendor_dlkm/system_dlkm if device is in 16K mode and boot option is enabled. Bug: 293313353 Change-Id: I46c440a7ce67dfbd0cce83dadbd908dff144c583
This commit is contained in:
parent
d5028db7e3
commit
959ba11426
@ -11,6 +11,17 @@ modules_dir=
|
|||||||
system_modules_dir=
|
system_modules_dir=
|
||||||
vendor_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 dir in system vendor; do
|
||||||
for f in /${dir}/lib/modules/*/modules.dep /${dir}/lib/modules/modules.dep; do
|
for f in /${dir}/lib/modules/*/modules.dep /${dir}/lib/modules/modules.dep; do
|
||||||
if [[ -f "$f" ]]; then
|
if [[ -f "$f" ]]; then
|
||||||
@ -52,10 +63,10 @@ if [ $# -eq 1 ]; then
|
|||||||
else
|
else
|
||||||
# Set property even if there is no insmod config
|
# Set property even if there is no insmod config
|
||||||
# to unblock early-boot trigger
|
# to unblock early-boot trigger
|
||||||
setprop vendor.common.modules.ready
|
setprop vendor.common.modules.ready 1
|
||||||
setprop vendor.device.modules.ready
|
setprop vendor.device.modules.ready 1
|
||||||
setprop vendor.all.modules.ready
|
setprop vendor.all.modules.ready 1
|
||||||
setprop vendor.all.devices.ready
|
setprop vendor.all.devices.ready 1
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -10,5 +10,9 @@ allow insmod-sh vendor_kernel_modules:system module_load;
|
|||||||
allow insmod-sh vendor_toolbox_exec:file execute_no_trans;
|
allow insmod-sh vendor_toolbox_exec:file execute_no_trans;
|
||||||
|
|
||||||
set_prop(insmod-sh, vendor_device_prop)
|
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;
|
dontaudit insmod-sh proc_cmdline:file r_file_perms;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user