| #!/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/t4fw-1.16.63.0.bin' | 
 |                 'cxgb4/t4fw.bin' | 
 |                 'cxgb3/' | 
 |                 'e100/' | 
 |                 'ql2500_fw.bin' | 
 |                 '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 |