#!/bin/bash | |
# Scan the /lib/firmware directory of the target and delete any firmware | |
# binaries that are not in our whitelist | |
# A whitelist of entire directories or specific binary files. The trailing | |
# slash is required. | |
whitelist=( 'acenic/' | |
'bnx2/' | |
'bnx2x/bnx2x-e2-7.13.1.0.fw' | |
'cxgb4/' | |
'cxgb3/' | |
'e100/' | |
'radeon/CEDAR_rlc.bin' | |
'radeon/CEDAR_pfp.bin' | |
'radeon/CEDAR_smc.bin' | |
'radeon/CEDAR_me.bin' | |
'radeon/CYPRESS_uvd.bin') | |
if [ -z "${TARGET_DIR}" ] ; then | |
echo "TARGET_DIR not defined, setting to $1" | |
TARGET_DIR=$1 | |
fi | |
files=$(find ${TARGET_DIR}/lib/firmware/*) | |
for file in ${files}; | |
do | |
if [ -d $file ] ; then | |
continue | |
fi | |
found=0 | |
for item in ${whitelist[@]}; | |
do | |
if [ "${file/${item}}" != "${file}" ] ; then | |
found=1 | |
break | |
fi | |
done | |
if [ "${found}" -ne "1" ] ; then | |
rm -v ${file} | |
fi | |
done |