#!/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'