blob: c40c3b3ab51f2e21e5a99e8fef075357e46d2011 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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"
|