diff --git a/.gitignore b/.gitignore
index 0154ed4..7063b7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
 Android.mk
 lib/
 wget-log*
+permissions/
diff --git a/README.md b/README.md
index ef07993..bff1c8b 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,10 @@
 
  - Supports F-Droid Mirrors - So if main repo fails, it will try the 
    rest of the mirrors from the F-Droid mirror list
- - Supports both arm64-v8a & x86_64 ABI through the use of Options
+ - Supports both arm64-v8a, x86 & x86_64 ABIs through the use of Options
+ - Generates foss-permissions.xml for including into AOSP based builds
  
-	##### Options Usage:
+##### Options Usage:
 	 
 	**If no option is passed, it will prompt you to make a choice**
 	 
@@ -19,27 +20,32 @@
 	- 2 = arm64-v8a ABI
 	- 3 = x86 ABI
 
+##### AOSP Build Instructions:
+
+To include the FOSS apps into your device specific builds. Please clone 
+this repo into vendor/foss:
+
+	$ git clone https://github.com/BlissRoms-x86/vendor_foss vendor/foss
+	
+Then add this inherit to your device tree:
+
+	# foss apps
+	$(call inherit-product-if-exists, vendor/foss/foss.mk)
+
 ## Included Apps:
 
 #### From F-Droid Repo:
 
-- Terminal Emulator - com.termoneplus
-- Navigation - net.osmand.plus
 - Calendar - ws.xsoh.etar
-- Pdf viewer - com.artifex.mupdf.viewer.app
 - Aurora App Store - com.aurora.store
 - Aurora Fdroid - com.aurora.adroid
-- K9 Mail client - com.fsck.k9
 - Calendar/Contacts sync - com.etesync.syncadapter
-- Todo lists - org.tasks
 - Fake assistant that uses duckduckgo - co.pxhouse.sas
 - Gallery App - com.simplemobiletools.gallery.pro
 - fdroid extension - org.fdroid.fdroid.privileged
-- Phonograph - com.kabouzeid.gramophone
 - Alarmio - me.jfenn.alarmio
 - Mozilla Nlp - org.microg.nlp.backend.ichnaea
 - Nominatim Nlp - org.microg.nlp.backend.nominatim
-- EtchDroid USB Writer - eu.depau.etchdroid
 - NewPipe - org.schabi.newpipe
 - Midori Browser - org.midorinext.android
 
diff --git a/foss.mk b/foss.mk
index 61737f9..771a78a 100644
--- a/foss.mk
+++ b/foss.mk
@@ -3,3 +3,7 @@
 PRODUCT_PACKAGES += \
 	FDroidPrivilegedExtension \
 	Provision
+
+# Copy any Permissions files, overriding anything if needed
+$(foreach f,$(wildcard $(LOCAL_PATH)/permissions/*.xml),\
+    $(eval PRODUCT_COPY_FILES += $(f):$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/$(notdir $f)))
diff --git a/generate_perms.sh b/generate_perms.sh
new file mode 100755
index 0000000..efb29b7
--- /dev/null
+++ b/generate_perms.sh
@@ -0,0 +1,74 @@
+#!/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"
diff --git a/update.sh b/update.sh
index ba57cf9..ea336d8 100755
--- a/update.sh
+++ b/update.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-#~ set -e
+# set -e
 
 RED='\033[0;31m'
 GREEN='\033[0;32m'
@@ -122,7 +122,7 @@
 }
 
 echo -e "${LT_BLUE}# Setting Up${NC}"
-rm -Rf apps.mk lib
+rm -Rf apps.mk lib bin 
 cat > Android.mk <<EOF
 LOCAL_PATH := \$(my-dir)
 
@@ -161,7 +161,9 @@
 			
 		done
 		echo -e "${Yellow}# Total mirrors: ${#array[@]} ${NC}"
-		echo -e "${RED}# Failed $failed_count mirrors ${NC}"
+		if [ "$failed_count" >= 1 ]; then
+			echo -e "${RED}# Failed $failed_count mirrors ${NC}"
+		fi
 		if [ "$failed_count" == "${#array[@]}" ]; then
 			echo -e "${RED}# Failed too many mirrors: $failed_count ${NC}"
 			exit
@@ -239,7 +241,7 @@
 		mkdir -p "$repo_dir"
 	if [ ! -f "$repo_dir"/index.xml ];then
 		downloadStuff "$repo"/index.jar "$repo_dir"/index.jar
-		unzip -p "$repo_dir"/index.jar index.xml > "$repo_dir"/index.xml
+		unzip -po "$repo_dir"/index.jar index.xml > "$repo_dir"/index.xml
 	fi
 	
 		marketvercode="$(xmlstarlet sel -t -m '//application[id="'"$package"'"]' -v ./marketvercode "$repo_dir"/index.xml || true)"
@@ -333,4 +335,6 @@
 echo -e "${YELLOW}# Cleaning up${NC}"
 rm -Rf tmp
 
+bash generate_perms.sh 
+
 echo -e "${GREEN}# DONE${NC}"
