├── system ├── framework │ └── xmlpak_re.jar └── etc │ └── permissions │ └── xmlpak_re.xml ├── META-INF └── com │ └── google │ └── android │ ├── updater-script │ └── update-binary ├── .gitattributes ├── update.json ├── module.prop ├── uninstall.sh ├── README.md ├── .github └── workflows │ └── build.yml ├── changelog.md ├── customize.sh └── common └── functions.sh /system/framework/xmlpak_re.jar: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /META-INF/com/google/android/updater-script: -------------------------------------------------------------------------------- 1 | #MAGISK 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Declare files that will always have LF line endings on checkout. 2 | META-INF/** text eol=lf 3 | *.prop text eol=lf 4 | *.sh text eol=lf 5 | *.md text eol=lf 6 | 7 | # Denote all files that are truly binary and should not be modified. 8 | system/** binary 9 | -------------------------------------------------------------------------------- /update.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "9.0", 3 | "versionCode": 90, 4 | "zipUrl": "https://github.com/rushiranpise/xmlpak-RE/releases/download/v9.0/xmlpak-re_module_v9.0.zip", 5 | "changelog": "https://raw.githubusercontent.com/rushiranpise/xmlpak-RE/RE/changelog.md" 6 | } 7 | -------------------------------------------------------------------------------- /module.prop: -------------------------------------------------------------------------------- 1 | id=xmlpak-RE 2 | name=xmlpak-RE – a road to vendor apps 3 | version=v9.0 4 | versionCode=90 5 | author=Rushi Ranpise ,RKBDI, Tadi (j1505243 at xda) 6 | description=This module enables you to download and install vendor apps from Google Play. Compatibility is not guaranteed. 7 | updateJson=https://raw.githubusercontent.com/rushiranpise/xmlpak-RE/RE/update.json -------------------------------------------------------------------------------- /uninstall.sh: -------------------------------------------------------------------------------- 1 | # Don't modify anything after this 2 | if [ -f $INFO ]; then 3 | while read LINE; do 4 | if [ "$(echo -n $LINE | tail -c 1)" == "~" ]; then 5 | continue 6 | elif [ -f "$LINE~" ]; then 7 | mv -f $LINE~ $LINE 8 | else 9 | rm -f $LINE 10 | while true; do 11 | LINE=$(dirname $LINE) 12 | [ "$(ls -A $LINE 2>/dev/null)" ] && break 1 || rm -rf $LINE 13 | done 14 | fi 15 | done < $INFO 16 | rm -f $INFO 17 | fi -------------------------------------------------------------------------------- /META-INF/com/google/android/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | ################# 4 | # Initialization 5 | ################# 6 | 7 | umask 022 8 | 9 | # echo before loading util_functions 10 | ui_print() { echo "$1"; } 11 | 12 | require_new_magisk() { 13 | ui_print "*******************************" 14 | ui_print " Please install Magisk v20.4+! " 15 | ui_print "*******************************" 16 | exit 1 17 | } 18 | 19 | ######################### 20 | # Load util_functions.sh 21 | ######################### 22 | 23 | OUTFD=$2 24 | ZIPFILE=$3 25 | 26 | mount /data 2>/dev/null 27 | 28 | [ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk 29 | . /data/adb/magisk/util_functions.sh 30 | [ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk 31 | 32 | install_module 33 | exit 0 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # **xmlpak-RE – a road to vendor apps** 2 | 3 | ## What is RE ??? 4 | REincarnated or Maybe REvived ?? Or Something Else :P 5 | 6 | ## Description 7 | This module enables you to download and install vendor apps from Google Play. Their compatibility is not guaranteed. 8 | 9 | What vendors are supported? 10 | 11 | HTC, OnePlus, Essential, Asus, Nokia/HMD Global, Nothing, Google , Motorola, BlackBerry, Nextbit, BQ, Sony, Samsung, Cyanogen, Razer, NVIDIA, Acer, Microsoft. 12 | 13 | ## Requirements 14 | - Magisk 15 | - KernelSU 16 | 17 | ## Instructions 18 | **First installation of the module will result in Play Store data reset.** If you disabled automtic app updates, keep this in mind. 19 | 20 | After reboot, wait. Or not. Play Store often isn't too hasty in terms of compatibility detection. If you want to be quicker and don't want to say something about not working module, Turn on Airplane Mode , reset Play Store and Play Store Services data + reboot again. And if you are somehow on Marshmallow, you may even need to wipe the whole data. 21 | 22 | ## Credits 23 | Based on [Original](https://github.com/Magisk-Modules-Repo/xmlpak) xmlpak module. 24 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Create Release Zip 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - name: Checkout repository 13 | uses: actions/checkout@v2 14 | 15 | - name: Set version variable 16 | id: version 17 | run: echo "::set-output name=version::$(grep -oP 'version=\K[^ ]+' module.prop)" 18 | 19 | - name: Create release zip 20 | run: zip -r9 "xmlpak-RE_module_${{ steps.version.outputs.version }}.zip" . -x "*.git*" -x "*.github*" -x ".gitattributes" 21 | 22 | - name: Create Release 23 | id: create_release 24 | uses: actions/create-release@v1 25 | env: 26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | with: 28 | tag_name: ${{ steps.version.outputs.version }} 29 | release_name: xmlpak-RE ${{ steps.version.outputs.version }} 30 | draft: false 31 | prerelease: false 32 | 33 | - name: Upload Release Asset 34 | id: upload_release_asset 35 | uses: actions/upload-release-asset@v1 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | with: 39 | upload_url: ${{ steps.create_release.outputs.upload_url }} 40 | asset_path: ./xmlpak-RE_module_${{ steps.version.outputs.version }}.zip 41 | asset_name: xmlpak-RE_module_${{ steps.version.outputs.version }}.zip 42 | asset_content_type: application/zip 43 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | **9.0** 2 | - Fix Samsung apps crash 3 | - Fix conflicts with other google spoof modules 4 | 5 | **8.0** 6 | - Fixed issue with some apps 7 | - Add multi window,pin app 8 | 9 | **7.5** 10 | - Update Nothing 11 | 12 | 13 | **7.0** 14 | - Add more features based on @reiryuki 's Device Features Enabler Magisk Module 15 | 16 | **6.5** 17 | - Update Google 18 | 19 | **6.0** 20 | - Fixed Google Dailer Call Rec 21 | 22 | **5.5** 23 | - Fixed module not working for A13 24 | - Unified Xmls 25 | 26 | **5.0** 27 | - Fixed Google Spoof 28 | - Updated Samsung, Sony 29 | - Updated Module Installer 30 | 31 | **4.5** 32 | - Fixed some Asus things 33 | - Added more features 34 | - Fixed update loop 35 | 36 | 4.2: 37 | - Fixed GMS crash 38 | - Fixed UWB crash 39 | - Added DELL features 40 | - Added HTC features 41 | - Added some misc features for Alexa etc. 42 | 43 | 4.1: fix of features that cause crash in some apps 44 | 45 | 4.0: updated Google, Motorola, Sony, OPPO/OnePlus xmls and added new Microsoft xml 46 | 47 | 3.6: add self-made Pixel 4 feature xml 48 | 49 | 3.5: replace Pixel 3a xmls to original 50 | 51 | 3.4: update the template 52 | 53 | 3.3: add self-made Pixel 3a feature xml 54 | 55 | 3.2: update main Samsung xml 56 | 57 | 3.1: possibly added ARCore apps support 58 | 59 | 3.0: add Razer Phone 2 xml 60 | 61 | 2.9: add Pixel 3 goodies 62 | 63 | 2.8: readded BQ Camera support 64 | 65 | 2.7: few xmls updated, what else? 66 | 67 | 2.6: initial version for repo -------------------------------------------------------------------------------- /customize.sh: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # 3 | # MMT Extended Config Script 4 | # 5 | ########################################################################################## 6 | 7 | ########################################################################################## 8 | # Config Flags 9 | ########################################################################################## 10 | 11 | # Uncomment and change 'MINAPI' and 'MAXAPI' to the minimum and maximum android version for your mod 12 | # Uncomment DYNLIB if you want libs installed to vendor for oreo+ and system for anything older 13 | # Uncomment PARTITIONS and list additional partitions you will be modifying (other than system and vendor), for example: PARTITIONS="/odm /product /system_ext" 14 | #MINAPI=21 15 | #MAXAPI=25 16 | #DYNLIB=true 17 | #PARTITIONS="" 18 | 19 | ########################################################################################## 20 | # Replace list 21 | ########################################################################################## 22 | 23 | # List all directories you want to directly replace in the system 24 | # Check the documentations for more info why you would need this 25 | 26 | # Construct your list in the following format 27 | # This is an example 28 | REPLACE_EXAMPLE=" 29 | /system/app/Youtube 30 | /system/priv-app/SystemUI 31 | /system/priv-app/Settings 32 | /system/framework 33 | " 34 | 35 | # Construct your own list here 36 | REPLACE=" 37 | " 38 | 39 | ########################################################################################## 40 | # Permissions 41 | ########################################################################################## 42 | 43 | set_permissions() { 44 | : # Remove this if adding to this function 45 | 46 | # Note that all files/folders in magisk module directory have the $MODPATH prefix - keep this prefix on all of your files/folders 47 | # Some examples: 48 | 49 | # For directories (includes files in them): 50 | # set_perm_recursive (default: u:object_r:system_file:s0) 51 | 52 | # set_perm_recursive $MODPATH/system/lib 0 0 0755 0644 53 | # set_perm_recursive $MODPATH/system/vendor/lib/soundfx 0 0 0755 0644 54 | 55 | # For files (not in directories taken care of above) 56 | # set_perm (default: u:object_r:system_file:s0) 57 | 58 | # set_perm $MODPATH/system/lib/libart.so 0 0 0644 59 | # set_perm /data/local/tmp/file.txt 0 0 644 60 | } 61 | 62 | ########################################################################################## 63 | # MMT Extended Logic - Don't modify anything after this 64 | ########################################################################################## 65 | 66 | SKIPUNZIP=1 67 | unzip -qjo "$ZIPFILE" 'common/functions.sh' -d $TMPDIR >&2 68 | . $TMPDIR/functions.sh -------------------------------------------------------------------------------- /common/functions.sh: -------------------------------------------------------------------------------- 1 | ########################################################################################## 2 | # 3 | # MMT Extended Utility Functions 4 | # 5 | ########################################################################################## 6 | 7 | umount_mirrors() { 8 | [ -d $ORIGDIR ] || return 0 9 | for i in $ORIGDIR/*; do 10 | umount -l $i 2>/dev/null 11 | done 12 | rm -rf $ORIGDIR 2>/dev/null 13 | mount -o ro,remount $MAGISKTMP 14 | } 15 | 16 | cleanup() { 17 | $KSU && umount_mirrors 18 | rm -rf $MODPATH/common $MODPATH/install.zip 2>/dev/null 19 | } 20 | 21 | abort() { 22 | ui_print "$1" 23 | rm -rf $MODPATH 2>/dev/null 24 | cleanup 25 | rm -rf $TMPDIR 2>/dev/null 26 | exit 1 27 | } 28 | 29 | device_check() { 30 | local opt=`getopt -o dm -- "$@"` type=device 31 | eval set -- "$opt" 32 | while true; do 33 | case "$1" in 34 | -d) local type=device; shift;; 35 | -m) local type=manufacturer; shift;; 36 | --) shift; break;; 37 | *) abort "Invalid device_check argument $1! Aborting!";; 38 | esac 39 | done 40 | local prop=$(echo "$1" | tr '[:upper:]' '[:lower:]') 41 | for i in /system /vendor /odm /product; do 42 | if [ -f $i/build.prop ]; then 43 | for j in "ro.product.$type" "ro.build.$type" "ro.product.vendor.$type" "ro.vendor.product.$type"; do 44 | [ "$(sed -n "s/^$j=//p" $i/build.prop 2>/dev/null | head -n 1 | tr '[:upper:]' '[:lower:]')" == "$prop" ] && return 0 45 | done 46 | [ "$type" == "device" ] && [ "$(sed -n "s/^"ro.build.product"=//p" $i/build.prop 2>/dev/null | head -n 1 | tr '[:upper:]' '[:lower:]')" == "$prop" ] && return 0 47 | fi 48 | done 49 | return 1 50 | } 51 | 52 | cp_ch() { 53 | local opt=`getopt -o nr -- "$@"` BAK=true UBAK=true FOL=false 54 | eval set -- "$opt" 55 | while true; do 56 | case "$1" in 57 | -n) UBAK=false; shift;; 58 | -r) FOL=true; shift;; 59 | --) shift; break;; 60 | *) abort "Invalid cp_ch argument $1! Aborting!";; 61 | esac 62 | done 63 | local SRC="$1" DEST="$2" OFILES="$1" 64 | $FOL && local OFILES=$(find $SRC -type f 2>/dev/null) 65 | [ -z $3 ] && PERM=0644 || PERM=$3 66 | case "$DEST" in 67 | $TMPDIR/*|$MODULEROOT/*|$NVBASE/modules/$MODID/*) BAK=false;; 68 | esac 69 | for OFILE in ${OFILES}; do 70 | if $FOL; then 71 | if [ "$(basename $SRC)" == "$(basename $DEST)" ]; then 72 | local FILE=$(echo $OFILE | sed "s|$SRC|$DEST|") 73 | else 74 | local FILE=$(echo $OFILE | sed "s|$SRC|$DEST/$(basename $SRC)|") 75 | fi 76 | else 77 | [ -d "$DEST" ] && local FILE="$DEST/$(basename $SRC)" || local FILE="$DEST" 78 | fi 79 | if $BAK && $UBAK; then 80 | [ ! "$(grep "$FILE$" $INFO 2>/dev/null)" ] && echo "$FILE" >> $INFO 81 | [ -f "$FILE" -a ! -f "$FILE~" ] && { mv -f $FILE $FILE~; echo "$FILE~" >> $INFO; } 82 | elif $BAK; then 83 | [ ! "$(grep "$FILE$" $INFO 2>/dev/null)" ] && echo "$FILE" >> $INFO 84 | fi 85 | install -D -m $PERM "$OFILE" "$FILE" 86 | done 87 | } 88 | 89 | install_script() { 90 | case "$1" in 91 | -l) shift; local INPATH=$NVBASE/service.d;; 92 | -p) shift; local INPATH=$NVBASE/post-fs-data.d;; 93 | *) local INPATH=$NVBASE/service.d;; 94 | esac 95 | [ "$(grep "#!/system/bin/sh" $1)" ] || sed -i "1i #!/system/bin/sh" $1 96 | local i; for i in "MODPATH" "LIBDIR" "MODID" "INFO" "MODDIR"; do 97 | case $i in 98 | "MODPATH") sed -i "1a $i=$NVBASE/modules/$MODID" $1;; 99 | "MODDIR") sed -i "1a $i=\${0%/*}" $1;; 100 | *) sed -i "1a $i=$(eval echo \$$i)" $1;; 101 | esac 102 | done 103 | case $1 in 104 | "$MODPATH/post-fs-data.sh"|"$MODPATH/service.sh"|"$MODPATH/uninstall.sh") sed -i "s|^MODPATH=.*|MODPATH=\$MODDIR|" $1;; # MODPATH=MODDIR for these scripts (located in module directory) 105 | *) cp_ch -n $1 $INPATH/$(basename $1) 0755;; 106 | esac 107 | } 108 | 109 | prop_process() { 110 | sed -i -e "/^#/d" -e "/^ *$/d" $1 111 | [ -f $MODPATH/system.prop ] || mktouch $MODPATH/system.prop 112 | while read LINE; do 113 | echo "$LINE" >> $MODPATH/system.prop 114 | done < $1 115 | } 116 | 117 | mount_mirrors() { 118 | mount -o rw,remount $MAGISKTMP 119 | mkdir -p $ORIGDIR/system 120 | if $SYSTEM_ROOT; then 121 | mkdir -p $ORIGDIR/system_root 122 | mount -o ro / $ORIGDIR/system_root 123 | mount -o bind $ORIGDIR/system_root/system $ORIGDIR/system 124 | else 125 | mount -o ro /system $ORIGDIR/system 126 | fi 127 | for i in vendor $PARTITIONS; do 128 | [ ! -d /$i -o -d $ORIGDIR/$i ] && continue 129 | mkdir -p $ORIGDIR/$i 130 | mount -o ro /$i $ORIGDIR/$i 131 | done 132 | } 133 | 134 | # Credits 135 | ui_print "**************************************" 136 | ui_print "* xmlpak-RE *" 137 | ui_print "**************************************" 138 | ui_print "**************************************" 139 | ui_print "* MMT Extended by Zackptg5 @ XDA *" 140 | ui_print "**************************************" 141 | ui_print " " 142 | 143 | # Check for min/max api version 144 | [ -z $MINAPI ] || { [ $API -lt $MINAPI ] && abort "! Your system API of $API is less than the minimum api of $MINAPI! Aborting!"; } 145 | [ -z $MAXAPI ] || { [ $API -gt $MAXAPI ] && abort "! Your system API of $API is greater than the maximum api of $MAXAPI! Aborting!"; } 146 | 147 | 148 | # Start debug 149 | [ -z $KSU ] && KSU=false || exec 2>/sdcard/Download/$MODID-debug.log 150 | set -x 151 | 152 | # Set variables 153 | [ -z $ARCH32 ] && ARCH32="$(echo $ABI32 | cut -c-3)" 154 | [ $API -lt 26 ] && DYNLIB=false 155 | [ -z $DYNLIB ] && DYNLIB=false 156 | INFO=$NVBASE/modules/.$MODID-files 157 | if $KSU; then 158 | MAGISKTMP="/mnt" 159 | ORIGDIR="$MAGISKTMP/mirror" 160 | mount_mirrors 161 | elif [ "$(magisk --path 2>/dev/null)" ]; then 162 | ORIGDIR="$(magisk --path 2>/dev/null)/.magisk/mirror" 163 | elif [ "$(echo $MAGISKTMP | awk -F/ '{ print $NF}')" == ".magisk" ]; then 164 | ORIGDIR="$MAGISKTMP/mirror" 165 | else 166 | ORIGDIR="$MAGISKTMP/.magisk/mirror" 167 | fi 168 | if $DYNLIB; then 169 | LIBPATCH="\/vendor" 170 | LIBDIR=/system/vendor 171 | else 172 | LIBPATCH="\/system" 173 | LIBDIR=/system 174 | fi 175 | # Detect extra partition compatibility (KernelSU or Magisk Delta) 176 | if $KSU || [ "$(echo $MAGISK_VER | awk -F- '{ print $NF}')" == "delta" ]; then 177 | EXTRAPART=true 178 | else 179 | EXTRAPART=false 180 | unset PARTITIONS 181 | fi 182 | 183 | if ! $BOOTMODE; then 184 | ui_print "- Only uninstall is supported in recovery" 185 | ui_print " Uninstalling!" 186 | touch $MODPATH/remove 187 | [ -s $INFO ] && install_script $MODPATH/uninstall.sh || rm -f $INFO $MODPATH/uninstall.sh 188 | recovery_cleanup 189 | cleanup 190 | rm -rf $NVBASE/modules_update/$MODID $TMPDIR 2>/dev/null 191 | exit 0 192 | fi 193 | 194 | # Extract files 195 | ui_print "- Extracting module files" 196 | unzip -o "$ZIPFILE" -x 'META-INF/*' 'common/functions.sh' -d $MODPATH >&2 197 | [ -f "$MODPATH/common/addon.tar.xz" ] && tar -xf $MODPATH/common/addon.tar.xz -C $MODPATH/common 2>/dev/null 198 | 199 | # Run addons 200 | if [ "$(ls -A $MODPATH/common/addon/*/install.sh 2>/dev/null)" ]; then 201 | ui_print " "; ui_print "- Running Addons -" 202 | for i in $MODPATH/common/addon/*/install.sh; do 203 | ui_print " Running $(echo $i | sed -r "s|$MODPATH/common/addon/(.*)/install.sh|\1|")..." 204 | . $i 205 | done 206 | fi 207 | 208 | # Remove files outside of module directory 209 | ui_print "- Removing old files" 210 | 211 | if [ -f $INFO ]; then 212 | while read LINE; do 213 | if [ "$(echo -n $LINE | tail -c 1)" == "~" ]; then 214 | continue 215 | elif [ -f "$LINE~" ]; then 216 | mv -f $LINE~ $LINE 217 | else 218 | rm -f $LINE 219 | while true; do 220 | LINE=$(dirname $LINE) 221 | [ "$(ls -A $LINE 2>/dev/null)" ] && break 1 || rm -rf $LINE 222 | done 223 | fi 224 | done < $INFO 225 | rm -f $INFO 226 | fi 227 | 228 | ### Install 229 | ui_print "- Installing" 230 | 231 | [ -f "$MODPATH/common/install.sh" ] && . $MODPATH/common/install.sh 232 | 233 | ui_print " Installing for $ARCH SDK $API device..." 234 | # Remove comments from files and place them, add blank line to end if not already present 235 | for i in $(find $MODPATH -type f -name "*.sh" -o -name "*.prop" -o -name "*.rule"); do 236 | [ -f $i ] && { sed -i -e "/^#/d" -e "/^ *$/d" $i; [ "$(tail -1 $i)" ] && echo "" >> $i; } || continue 237 | case $i in 238 | "$MODPATH/service.sh") install_script -l $i;; 239 | "$MODPATH/post-fs-data.sh") install_script -p $i;; 240 | "$MODPATH/uninstall.sh") if [ -s $INFO ] || [ "$(head -n1 $MODPATH/uninstall.sh)" != "# Don't modify anything after this" ]; then 241 | cp -f $MODPATH/uninstall.sh $MODPATH/$MODID-uninstall.sh # Fallback script in case module manually deleted 242 | sed -i "1i[ -d \"\$MODPATH\" ] && exit 0" $MODPATH/$MODID-uninstall.sh 243 | echo 'rm -f $0' >> $MODPATH/$MODID-uninstall.sh 244 | install_script -l $MODPATH/$MODID-uninstall.sh 245 | rm -f $MODPATH/$MODID-uninstall.sh 246 | install_script $MODPATH/uninstall.sh 247 | else 248 | rm -f $INFO $MODPATH/uninstall.sh 249 | fi;; 250 | esac 251 | done 252 | 253 | $IS64BIT || for i in $(find $MODPATH/system -type d -name "lib64"); do rm -rf $i 2>/dev/null; done 254 | [ -d "/system/priv-app" ] || mv -f $MODPATH/system/priv-app $MODPATH/system/app 2>/dev/null 255 | [ -d "/system/xbin" ] || mv -f $MODPATH/system/xbin $MODPATH/system/bin 2>/dev/null 256 | if $DYNLIB; then 257 | for FILE in $(find $MODPATH/system/lib* -type f 2>/dev/null | sed "s|$MODPATH/system/||"); do 258 | [ -s $MODPATH/system/$FILE ] || continue 259 | case $FILE in 260 | lib*/modules/*) continue;; 261 | esac 262 | mkdir -p $(dirname $MODPATH/system/vendor/$FILE) 263 | mv -f $MODPATH/system/$FILE $MODPATH/system/vendor/$FILE 264 | [ "$(ls -A `dirname $MODPATH/system/$FILE`)" ] || rm -rf `dirname $MODPATH/system/$FILE` 265 | done 266 | # Delete empty lib folders (busybox find doesn't have this capability) 267 | toybox find $MODPATH/system/lib* -type d -empty -delete >/dev/null 2>&1 268 | fi 269 | 270 | # Set permissions 271 | ui_print " " 272 | ui_print "- Setting Permissions" 273 | set_perm_recursive $MODPATH 0 0 0755 0644 274 | for i in /system/vendor /vendor /system/vendor/app /vendor/app /system/vendor/etc /vendor/etc /system/odm/etc /system/vendor/odm/etc /vendor/odm/etc /system/vendor/overlay /vendor/overlay; do 275 | if [ -d "$MODPATH$i" ] && [ ! -L "$MODPATH$i" ]; then 276 | case $i in 277 | *"/vendor") set_perm_recursive $MODPATH$i 0 0 0755 0644 u:object_r:vendor_file:s0;; 278 | *"/app") set_perm_recursive $MODPATH$i 0 0 0755 0644 u:object_r:vendor_app_file:s0;; 279 | *"/overlay") set_perm_recursive $MODPATH$i 0 0 0755 0644 u:object_r:vendor_overlay_file:s0;; 280 | *"/etc") set_perm_recursive $MODPATH$i 0 2000 0755 0644 u:object_r:vendor_configs_file:s0;; 281 | esac 282 | fi 283 | done 284 | for i in $(find $MODPATH/system/vendor $MODPATH/vendor -type f -name *".apk" 2>/dev/null); do 285 | chcon u:object_r:vendor_app_file:s0 $i 286 | done 287 | set_permissions 288 | 289 | # Complete install 290 | cleanup -------------------------------------------------------------------------------- /system/etc/permissions/xmlpak_re.xml: -------------------------------------------------------------------------------- 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 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | 1271 | 1272 | 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | 1353 | 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | 1372 | 1373 | 1374 | 1375 | 1376 | 1377 | 1378 | 1379 | 1380 | 1381 | 1382 | 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1389 | 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | 1458 | 1459 | 1460 | 1461 | 1462 | 1463 | 1464 | --------------------------------------------------------------------------------