system_dlkm: gki modules white list [1/2]
PD#SWPL-122842
Problem:
support gki modules white list
Solution:
support gki modules white list
Verify:
sc2
Change-Id: Iaea1035136a4000189d2aac4316e01884d8d2d0e
Signed-off-by: Wanwei Jiang <wanwei.jiang@amlogic.com>
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
index aa8fc11..6e60b15 100644
--- a/amlogic_utils.sh
+++ b/amlogic_utils.sh
@@ -275,6 +275,7 @@
echo "MKBOOTIMG_STAGING_DIR=${MKBOOTIMG_STAGING_DIR}" >> ${KERNEL_BUILD_VAR_FILE}
echo "DIST_GKI_DIR=${DIST_GKI_DIR}" >> ${KERNEL_BUILD_VAR_FILE}
echo "FULL_KERNEL_VERSION=${FULL_KERNEL_VERSION}" >> ${KERNEL_BUILD_VAR_FILE}
+ echo "GKI_MODULES_LOAD_BLACK_LIST=\"${GKI_MODULES_LOAD_BLACK_LIST[*]}\"" >> ${KERNEL_BUILD_VAR_FILE}
fi
for module_path in ${PREBUILT_MODULES_PATH}; do
@@ -293,6 +294,7 @@
echo "COMMON_OUT_DIR=${COMMON_OUT_DIR}" >> ${KERNEL_BUILD_VAR_FILE}
echo "DIST_DIR=${DIST_DIR}" >> ${KERNEL_BUILD_VAR_FILE}
echo "OUT_AMLOGIC_DIR=${OUT_AMLOGIC_DIR}" >> ${KERNEL_BUILD_VAR_FILE}
+ echo "GKI_MODULES_LOAD_BLACK_LIST=\"${GKI_MODULES_LOAD_BLACK_LIST[*]}\"" >> ${KERNEL_BUILD_VAR_FILE}
fi
if [[ ${GKI_CONFIG} != gki_20 ]]; then
@@ -303,7 +305,7 @@
pushd ${DIST_DIR}/system_dlkm_gki10
tar zxf ${DIST_DIR}/system_dlkm_staging_archive_back.tar.gz
find -name "*.ko" | while read module; do
- module_name=`echo ${module} | rev | cut -d '/' -f 1 | rev`
+ module_name=${module##*/}
if [[ ! `grep "/${module_name}" ${DIST_DIR}/system_dlkm.modules.load` ]]; then
rm -f ${module}
fi
@@ -461,8 +463,30 @@
done
fi
+ GKI_MODULES_LOAD_BLACK_LIST=()
+ if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" ]]; then
+ gki_modules_temp_file=`mktemp /tmp/config.XXXXXXXXXXXX`
+ cp ${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules ${gki_modules_temp_file}
+
+ for module in ${GKI_MODULES_LOAD_WHITE_LIST[@]}; do
+ sed -i "/\/${module}/d" ${gki_modules_temp_file}
+ done
+
+ for module in `cat ${gki_modules_temp_file}`; do
+ module=${module##*/}
+ GKI_MODULES_LOAD_BLACK_LIST[${#GKI_MODULES_LOAD_BLACK_LIST[*]}]=${module}
+ done
+ rm -f ${gki_modules_temp_file}
+
+ for module in ${GKI_MODULES_LOAD_BLACK_LIST[@]}; do
+ echo Delete module: ${module}
+ sed -n "/${module}:/p" modules.dep.temp
+ sed -i "/${module}:/d" modules.dep.temp
+ done
+ fi
+
cat modules.dep.temp | cut -d ':' -f 2 > modules.dep.temp1
- delete_modules=(${delete_soc_module[@]} ${delete_clk_soc_modules[@]} ${delete_pinctrl_soc_modules[@]} ${delete_type_modules[@]} ${black_modules[@]})
+ delete_modules=(${delete_soc_module[@]} ${delete_clk_soc_modules[@]} ${delete_pinctrl_soc_modules[@]} ${delete_type_modules[@]} ${black_modules[@]} ${GKI_MODULES_LOAD_BLACK_LIST[@]})
for module in ${delete_modules[@]}; do
if [[ ! `ls $module` ]]; then
continue
@@ -654,7 +678,7 @@
while read module
do
- module_name=`echo ${module} | rev | cut -d '/' -f 1 | rev`
+ module_name=${module##*/}
if [[ `echo ${module} | grep "^kernel\/"` ]]; then
if [[ -f ${DIST_DIR}/${module_name} ]]; then
cp ${DIST_DIR}/${module_name} ${OUT_AMLOGIC_DIR}/modules