#!/bin/bash if [ "$#" -ne 1 ]; then echo "[x] Incorrect arguments!" echo " Using: $0 " exit 1 fi TMP_DIR=$1 APPS_DIR="$TMP_DIR/res/apks" PERMISSIONS_APPS_DIR="$TMP_DIR/res/permissions" mkdir -p "$TMP_DIR/res/permissions" \ "$TMP_DIR/res/permissions/apps" \ "$TMP_DIR/res/permissions/priv-apps" obtain_permissions() { local type_app=$1 for apk in "${APPS_DIR}"/$type_app/*.apk; do package_name=$(aapt dump badging ${apk} | awk '/package:/{gsub("name=|'"'"'",""); print $2}') permissions=$(aapt dump badging ${apk} | awk '/uses-permission:/{gsub("name=|'"'"'",""); print $2}') if [[ $type_app == "apps" ]]; then out_file="${PERMISSIONS_APPS_DIR}/$type_app/default-permissions-${package_name}.xml" echo -e '\n\n\t' > "$out_file" for p in $permissions; do echo -e '\t\t' >> "$out_file" done echo -e '\t\n' >> "$out_file" echo -e "\t[+] $out_file" else out_file="${PERMISSIONS_APPS_DIR}/$type_app/privapp-permissions-${package_name}.xml" echo -e '\n\n\t' > "$out_file" for p in $permissions; do echo -e '\t\t' >> "$out_file" done echo -e '\t\n' >> "$out_file" echo -e "\t[+] $out_file" fi done } echo -e "[*] Obtaining permissions from APKs." obtain_permissions "apps" obtain_permissions "priv-apps"