aboutsummaryrefslogtreecommitdiff
path: root/scripts/apk_obtain_permissions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/apk_obtain_permissions.sh')
-rwxr-xr-xscripts/apk_obtain_permissions.sh49
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"