50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
#!/usr/bin/bash
|
|
|
|
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
|
source "${SCRIPT_DIR}/setup.sh"
|
|
|
|
PLATFORM_DIR=$(mktemp -d)
|
|
unzip "${PLATFORM_ZIP}" -d "${PLATFORM_DIR}"
|
|
|
|
for ad in "${PLATFORM_DIR}"/**/{platform,sdk}; do
|
|
cd ${ad}
|
|
for jar in "${ad}"/*.jar; do
|
|
java -Xmx8G -jar ${APKTOOL} d "${jar}"
|
|
done
|
|
done
|
|
cd "${WD}"
|
|
|
|
if [ -d "${OUT_SMALI_CHECK}" ]; then
|
|
rm -r "${OUT_SMALI_CHECK}"
|
|
fi
|
|
mkdir -p "${OUT_SMALI_CHECK}"
|
|
|
|
sqlite3 ${DB} 'SELECT sha256 FROM data WHERE nb_def_platform_32_classes >= 1 OR nb_def_platform_33_classes >= 1 OR nb_def_platform_34_classes >= 1 OR nb_duplicate_classes >= 1;' > "${OUT_DIR}/list_apks_shadow"
|
|
|
|
if [ ! -d "${OUT_DIR}/list_apks_shadow" ]; then
|
|
mkdir -p "${OUT_DIR}/apks_shadow"
|
|
split -a 2 -d -l "${N_CHUNK}" "${OUT_DIR}/list_apks_shadow" "${OUT_DIR}/apks_shadow/"
|
|
fi
|
|
|
|
|
|
worker () {
|
|
for sha in $(cat "${1}"); do
|
|
"${VENV}/bin/check-smali" \
|
|
--sha256 "${sha}" \
|
|
--output-dir "${OUT_SMALI_CHECK}" \
|
|
--apktool-jar "${APKTOOL}" \
|
|
--path-platform-smali "${PLATFORM_DIR}" \
|
|
--api-key-file "${ANDROZOO_KEY}"
|
|
done
|
|
echo "Finished ${1}"
|
|
}
|
|
|
|
for lst in ${app_lst[@]}; do
|
|
if [ -f "${OUT_DIR}/apks_shadow/${lst}" ]; then
|
|
echo start "${OUT_DIR}/apks_shadow/${lst}"
|
|
worker "${OUT_DIR}/apks_shadow/${lst}" &
|
|
sleep 1
|
|
fi
|
|
done
|
|
|
|
echo 'PROCESS LAUNCHED'
|