diff options
| author | Kacper Sagalara <mail@kasesag.me> | 2026-06-19 19:08:11 +0200 |
|---|---|---|
| committer | Kacper Sagalara <mail@kasesag.me> | 2026-06-19 19:08:11 +0200 |
| commit | 7821c02171d77229797e3a57edd0502e942373cc (patch) | |
| tree | 2856fdb7f36144c6e539cfedacd475bf10458ce1 /scripts/apk_obtain_permissions.sh | |
| parent | 0339c6b9e1cafffc2e37c47df4277157fc678041 (diff) | |
Diffstat (limited to 'scripts/apk_obtain_permissions.sh')
| -rwxr-xr-x | scripts/apk_obtain_permissions.sh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/apk_obtain_permissions.sh b/scripts/apk_obtain_permissions.sh new file mode 100755 index 0000000..c40c3b3 --- /dev/null +++ b/scripts/apk_obtain_permissions.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +if [ "$#" -ne 1 ]; then + echo "[x] Incorrect arguments!" + echo " Using: $0 <TMP_DIR>" + 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 '<?xml version="1.0" encoding="utf-8"?>\n<exceptions>\n\t<exception package="'$package_name'">' > "$out_file" + for p in $permissions; do + echo -e '\t\t<permission name="'$p'" fixed="false"/>' >> "$out_file" + done + echo -e '\t</exception>\n</exceptions>' >> "$out_file" + + echo -e "\t[+] $out_file" + else + out_file="${PERMISSIONS_APPS_DIR}/$type_app/privapp-permissions-${package_name}.xml" + echo -e '<?xml version="1.0" encoding="utf-8"?>\n<permissions>\n\t<privapp-permissions package="'$package_name'">' > "$out_file" + for p in $permissions; do + echo -e '\t\t<permission name="'$p'" />' >> "$out_file" + done + echo -e '\t</privapp-permissions>\n</permissions>' >> "$out_file" + + echo -e "\t[+] $out_file" + fi + + done +} + +echo -e "[*] Obtaining permissions from APKs." +obtain_permissions "apps" +obtain_permissions "priv-apps" |
