68 lines
1.4 KiB
Bash
68 lines
1.4 KiB
Bash
#!/usr/bin/bash
|
|
|
|
WD=$(pwd)
|
|
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
|
PLATFORM_DIR=$(mktemp -d)
|
|
APKTOOL="${WD}/apktool.jar"
|
|
DB="${SCRIPT_DIR}/data/app-2023-xp4.db"
|
|
LIST=$(mktemp)
|
|
CHUNK_FOLDER="./app-2023-exp6"
|
|
APKTOOL="${SCRIPT_DIR}/apktool.jar"
|
|
ANDROZOO_KEY="${SCRIPT_DIR}/.ZOO_KEY"
|
|
OUT_DIR="app-2023-xp6.out"
|
|
|
|
app_lst=(
|
|
'00'
|
|
'01'
|
|
'02'
|
|
'03'
|
|
'04'
|
|
'05'
|
|
'06'
|
|
'07'
|
|
'08'
|
|
'09'
|
|
'10'
|
|
'11'
|
|
'12'
|
|
'13'
|
|
'14'
|
|
'15'
|
|
'16'
|
|
'17'
|
|
'18'
|
|
'19'
|
|
)
|
|
|
|
mkdir -p "${OUT_DIR}"
|
|
unzip platforms.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}"
|
|
|
|
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;' > "${LIST}"
|
|
|
|
N_CHUNK=$(python3 -c "print($(cat ${LIST} | wc -l)//20 + 1)")
|
|
rm -r "${CHUNK_FOLDER}"
|
|
mkdir "${CHUNK_FOLDER}"
|
|
split -a 2 -d -l "${N_CHUNK}" "${LIST}" "${CHUNK_FOLDER}/"
|
|
|
|
worker () {
|
|
for sha in $(cat "${1}"); do
|
|
"${SCRIPT_DIR}"/venv/bin/check-platf-reder --api-key-file "${ANDROZOO_KEY}" --sha256 "${sha}" --path-platform-smali "${PLATFORM_DIR}" --apktool-jar "${APKTOOL}" --output-dir "${OUT_DIR}"
|
|
done
|
|
echo "Finished ${1}"
|
|
}
|
|
|
|
for lst in ${app_lst[@]}; do
|
|
worker "${CHUNK_FOLDER}/${lst}" &
|
|
sleep 1
|
|
done
|
|
|
|
echo 'PROCESS LAUNCHED'
|