#!/bin/bash
# Generate AOSP Premisisons.xml from folder of .apk files

# Change these if using outside this project
APK_FOLDER="bin"
PERMS_LOCATION="permissions"
PERMS_FILENAME="foss-permissions.xml"

# NO MORE EDITING BELOW HERE
PARSED_PERMS_PATH="$PERMS_LOCATION/$PERMS_FILENAME"
FILES="$APK_FOLDER/*.apk"

addPerms() {
perms_list=""
cat >> $PARSED_PERMS_PATH <<EOF
	<privapp-permissions package="$2">
EOF
for i in "$@" ; do
	perms_list+="$i "
done
echo ""
#~ echo -e "Prems List: $perms_list"
#~ echo ""
for i in $perms_list ; do
if [ "$i" == "uses-permission:" ]; then
	echo -e "skipping meaningless line"
elif [[ "$i" == *"package:"* ]]; then
	echo -e "skipping meaningless line"
elif [[ "$i" == *"name="* ]]; then
temp_str=$(echo "$i" | sed -e "s/'/\"/g")
cat >> $PARSED_PERMS_PATH <<EOF
		<permission $temp_str/>
EOF
fi
done
cat >> $PARSED_PERMS_PATH <<EOF
    </privapp-permissions>

EOF
}

echo -e "${LT_BLUE}# Generating Permissions XML ${NC}"
rm -Rf $PARSED_PERMS_PATH
mkdir -p permissions
cat > $PARSED_PERMS_PATH <<EOF
<permissions>

EOF

for f in $FILES
do
  echo -e ""
  echo "Processing $f file..."
  cmd_list=""
  argumentqa=$(aapt d permissions "$f")
  echo ""
  echo -e "Permissions for $argumentqa"
  echo ""
  for line in $argumentqa; do 
    read -a array <<< $line
    echo ${array[index]}  
    cmd_list+="${array[index]} "
  done
  #~ echo -e "CMD_LIST: $cmd_list"
  addPerms $cmd_list
done

cat >> $PARSED_PERMS_PATH <<EOF
</permissions>

EOF

echo ""
echo -e "All Set, permissions xml generated"
