Change-Id: Ib5f383c3c800567d8884a37ebfb5a956e7400e2b Signed-off-by: Ido <dev.xyzuniverse@gmail.com>
58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/vendor/bin/sh
|
|
|
|
########################################################
|
|
### init.insmod.cfg format: ###
|
|
### ----------------------------------------------- ###
|
|
### [insmod|setprop|enable/moprobe] [path|prop name] ###
|
|
### ... ###
|
|
########################################################
|
|
|
|
if [ $# -eq 1 ]; then
|
|
cfg_file=$1
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
if [ -f $cfg_file ]; then
|
|
while IFS="|" read -r action arg
|
|
do
|
|
case $action in
|
|
"insmod") insmod $arg ;;
|
|
"setprop")
|
|
times=1
|
|
setprop $arg 1
|
|
while [ "$?" -ne 0 ]
|
|
do
|
|
if [ $times -gt 128 ]; then
|
|
break
|
|
fi
|
|
let times++
|
|
setprop $arg 1
|
|
done ;;
|
|
"enable") echo 1 > $arg ;;
|
|
"modprobe")
|
|
insmod_arg=${arg}
|
|
for partition in system_dlkm vendor
|
|
do
|
|
modules_dir_base="/${partition}/lib/modules"
|
|
for modules_dir in ${modules_dir_base}/*/ ${modules_dir_base}
|
|
do
|
|
if [ ! -f "${modules_dir}/modules.load" ]; then
|
|
continue
|
|
fi
|
|
case ${insmod_arg} in
|
|
"-b *" | "-b")
|
|
arg="-b $(cat ${modules_dir}/modules.load)" ;;
|
|
"*" | "")
|
|
arg="$(cat ${modules_dir}/modules.load)" ;;
|
|
esac
|
|
modprobe -a -d ${modules_dir} $arg
|
|
done
|
|
done
|
|
esac
|
|
done < $cfg_file
|
|
else
|
|
exit 2
|
|
fi
|
|
|