├── .github └── FUNDING.yml ├── LICENSE ├── META-INF └── com │ └── google │ └── android │ ├── update-binary │ └── updater-script ├── README.md ├── action.sh ├── arm64-v8a └── libmagiskpolicy.so ├── armeabi-v7a └── libmagiskpolicy.so ├── cleaner.sh ├── customize.sh ├── function.sh ├── module.prop ├── package.txt ├── post-fs-data.sh ├── sepolicy.rule ├── service.sh ├── system.prop ├── system ├── etc │ ├── default-permissions │ │ └── default-com.miui.gallery.xml │ ├── permissions │ │ └── privapp-com.miui.gallery.xml │ └── sysconfig │ │ └── config-com.miui.gallery.xml └── priv-app │ └── MiuiGallery │ ├── MiuiGallery.apk │ ├── AndroidManifest.xml │ ├── classes.dex │ ├── classes2.dex │ ├── classes3.dex │ └── resources.arsc │ └── extract ├── uninstall.sh ├── update.sh ├── x86 └── libmagiskpolicy.so └── x86_64 └── libmagiskpolicy.so /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: reiryuki # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: reiryuki # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: reiryuki # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: https://www.paypal.me/reiryuki # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Rei Ryuki 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /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 34 | -------------------------------------------------------------------------------- /META-INF/com/google/android/updater-script: -------------------------------------------------------------------------------- 1 | #MAGISK 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Miui Gallery Magisk Module 2 | 3 | ## DISCLAIMER 4 | - Miui apps are owned by Xiaomi™. 5 | - The MIT license specified here is for the Magisk Module only, not for Miui apps. 6 | 7 | ## Descriptions 8 | - Gallery app by Xiaomi Inc. ported and integrated as a Magisk Module for all supported and rooted devices with Magisk 9 | 10 | ## Sources 11 | - https://apkmirror.com com.miui.gallery by Xiaomi Inc. 12 | - libmagiskpolicy.so: Kitsune Mask R6687BB53 13 | 14 | ## Screenshots 15 | - https://t.me/androidryukimods/180 16 | 17 | ## Requirements 18 | - NOT in Miui ROM 19 | - Android 5 (SDK 21) and up 20 | - Magisk or KernelSU installed 21 | 22 | ## Installation Guide & Download Link 23 | - Install Miui Core Magisk Module first: https://github.com/reiryuki/Miui-Core-Magisk-Module 24 | - Install this module global version https://www.pling.com/p/1537529/ or CN version https://www.pling.com/p/1572183/ via Magisk app or KernelSU app or Recovery if Magisk installed 25 | - If you are using KernelSU, you need to disable Unmount Modules by Default in KernelSU app settings 26 | - Reboot 27 | - If you are using KernelSU, you need to allow superuser list manually all package name listed in package.txt (and your home launcher app also) (enable show system apps) and reboot afterwards 28 | - If you are using SUList, you need to allow list manually your home launcher app (enable show system apps) and reboot afterwards 29 | - Go to app info of Gallery app and allow the network access to be able to download the online features 30 | 31 | ## Optionals 32 | - https://t.me/ryukinotes/42 33 | - Global: https://t.me/ryukinotes/35 34 | 35 | ## Troubleshootings 36 | - https://t.me/ryukinotes/19 37 | - Global: https://t.me/ryukinotes/34 38 | 39 | ## Support & Bug Report 40 | - https://t.me/ryukinotes/54 41 | - If you don't do above, issues will be closed immediately 42 | 43 | ## Credits and Contributors 44 | - https://t.me/androidryukimodsdiscussions 45 | - You can contribute ideas about this Magisk Module here: https://t.me/androidappsportdevelopment 46 | - ANXCamera VIP Edition Team 47 | 48 | ## Sponsors 49 | - https://t.me/ryukinotes/25 50 | 51 | 52 | -------------------------------------------------------------------------------- /action.sh: -------------------------------------------------------------------------------- 1 | MODPATH=${0%/*} 2 | 3 | # info 4 | echo "- Apps caches from this module will be re-cleaned" 5 | echo " at the next boot." 6 | echo " " 7 | 8 | # rename 9 | FILE=$MODPATH/cleaner.sh 10 | if [ -f $FILE.txt ]; then 11 | mv -f $FILE.txt $FILE 12 | fi 13 | 14 | 15 | -------------------------------------------------------------------------------- /arm64-v8a/libmagiskpolicy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/arm64-v8a/libmagiskpolicy.so -------------------------------------------------------------------------------- /armeabi-v7a/libmagiskpolicy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/armeabi-v7a/libmagiskpolicy.so -------------------------------------------------------------------------------- /cleaner.sh: -------------------------------------------------------------------------------- 1 | [ ! "$MODPATH" ] && MODPATH=${0%/*} 2 | UID=`id -u` 3 | 4 | # run 5 | . $MODPATH/function.sh 6 | 7 | # cleaning 8 | remove_cache 9 | PKGS=`cat $MODPATH/package.txt` 10 | for PKG in $PKGS; do 11 | rm -rf /data/user*/"$UID"/$PKG/cache/* 12 | done 13 | 14 | 15 | -------------------------------------------------------------------------------- /customize.sh: -------------------------------------------------------------------------------- 1 | # space 2 | ui_print " " 3 | 4 | # var 5 | UID=`id -u` 6 | [ ! "$UID" ] && UID=0 7 | FIRARCH=`grep_get_prop ro.bionic.arch` 8 | SECARCH=`grep_get_prop ro.bionic.2nd_arch` 9 | ABILIST=`grep_get_prop ro.product.cpu.abilist` 10 | if [ ! "$ABILIST" ]; then 11 | ABILIST=`grep_get_prop ro.system.product.cpu.abilist` 12 | fi 13 | if [ "$FIRARCH" == arm64 ]\ 14 | && ! echo "$ABILIST" | grep -q arm64-v8a; then 15 | if [ "$ABILIST" ]; then 16 | ABILIST="$ABILIST,arm64-v8a" 17 | else 18 | ABILIST=arm64-v8a 19 | fi 20 | fi 21 | if [ "$FIRARCH" == x64 ]\ 22 | && ! echo "$ABILIST" | grep -q x86_64; then 23 | if [ "$ABILIST" ]; then 24 | ABILIST="$ABILIST,x86_64" 25 | else 26 | ABILIST=x86_64 27 | fi 28 | fi 29 | if [ "$SECARCH" == arm ]\ 30 | && ! echo "$ABILIST" | grep -q armeabi; then 31 | if [ "$ABILIST" ]; then 32 | ABILIST="$ABILIST,armeabi" 33 | else 34 | ABILIST=armeabi 35 | fi 36 | fi 37 | if [ "$SECARCH" == arm ]\ 38 | && ! echo "$ABILIST" | grep -q armeabi-v7a; then 39 | if [ "$ABILIST" ]; then 40 | ABILIST="$ABILIST,armeabi-v7a" 41 | else 42 | ABILIST=armeabi-v7a 43 | fi 44 | fi 45 | if [ "$SECARCH" == x86 ]\ 46 | && ! echo "$ABILIST" | grep -q x86; then 47 | if [ "$ABILIST" ]; then 48 | ABILIST="$ABILIST,x86" 49 | else 50 | ABILIST=x86 51 | fi 52 | fi 53 | ABILIST32=`grep_get_prop ro.product.cpu.abilist32` 54 | if [ ! "$ABILIST32" ]; then 55 | ABILIST32=`grep_get_prop ro.system.product.cpu.abilist32` 56 | fi 57 | if [ "$SECARCH" == arm ]\ 58 | && ! echo "$ABILIST32" | grep -q armeabi; then 59 | if [ "$ABILIST32" ]; then 60 | ABILIST32="$ABILIST32,armeabi" 61 | else 62 | ABILIST32=armeabi 63 | fi 64 | fi 65 | if [ "$SECARCH" == arm ]\ 66 | && ! echo "$ABILIST32" | grep -q armeabi-v7a; then 67 | if [ "$ABILIST32" ]; then 68 | ABILIST32="$ABILIST32,armeabi-v7a" 69 | else 70 | ABILIST32=armeabi-v7a 71 | fi 72 | fi 73 | if [ "$SECARCH" == x86 ]\ 74 | && ! echo "$ABILIST32" | grep -q x86; then 75 | if [ "$ABILIST32" ]; then 76 | ABILIST32="$ABILIST32,x86" 77 | else 78 | ABILIST32=x86 79 | fi 80 | fi 81 | if [ ! "$ABILIST32" ]; then 82 | [ -f /system/lib/libandroid.so ] && ABILIST32=true 83 | fi 84 | 85 | # log 86 | if [ "$BOOTMODE" != true ]; then 87 | FILE=/data/media/"$UID"/$MODID\_recovery.log 88 | ui_print "- Log will be saved at $FILE" 89 | exec 2>$FILE 90 | ui_print " " 91 | fi 92 | 93 | # optionals 94 | OPTIONALS=/data/media/"$UID"/optionals.prop 95 | if [ ! -f $OPTIONALS ]; then 96 | touch $OPTIONALS 97 | fi 98 | 99 | # debug 100 | if [ "`grep_prop debug.log $OPTIONALS`" == 1 ]; then 101 | ui_print "- The install log will contain detailed information" 102 | set -x 103 | ui_print " " 104 | fi 105 | 106 | # recovery 107 | if [ "$BOOTMODE" != true ]; then 108 | MODPATH_UPDATE=`echo $MODPATH | sed 's|modules/|modules_update/|g'` 109 | rm -f $MODPATH/update 110 | rm -rf $MODPATH_UPDATE 111 | fi 112 | 113 | # run 114 | . $MODPATH/function.sh 115 | 116 | # info 117 | MODVER=`grep_prop version $MODPATH/module.prop` 118 | MODVERCODE=`grep_prop versionCode $MODPATH/module.prop` 119 | ui_print " ID=$MODID" 120 | ui_print " Version=$MODVER" 121 | ui_print " VersionCode=$MODVERCODE" 122 | if [ "$KSU" == true ]; then 123 | ui_print " KSUVersion=$KSU_VER" 124 | ui_print " KSUVersionCode=$KSU_VER_CODE" 125 | ui_print " KSUKernelVersionCode=$KSU_KERNEL_VER_CODE" 126 | sed -i 's|#k||g' $MODPATH/post-fs-data.sh 127 | else 128 | ui_print " MagiskVersion=$MAGISK_VER" 129 | ui_print " MagiskVersionCode=$MAGISK_VER_CODE" 130 | fi 131 | ui_print " " 132 | 133 | # sdk 134 | NUM=21 135 | if [ "$API" -lt $NUM ]; then 136 | ui_print "! Unsupported SDK $API." 137 | ui_print " You have to upgrade your Android version" 138 | ui_print " at least SDK $NUM to use this module." 139 | abort 140 | else 141 | ui_print "- SDK $API" 142 | ui_print " " 143 | fi 144 | 145 | # miuicore 146 | if [ ! -d /data/adb/modules/MiuiCore ]; then 147 | ui_print "! Miui Core Magisk Module is not installed." 148 | ui_print " Please read github installation guide!" 149 | abort 150 | else 151 | rm -f /data/adb/modules/MiuiCore/remove 152 | rm -f /data/adb/modules/MiuiCore/disable 153 | fi 154 | 155 | # sepolicy 156 | FILE=$MODPATH/sepolicy.rule 157 | DES=$MODPATH/sepolicy.pfsd 158 | if [ "`grep_prop sepolicy.sh $OPTIONALS`" == 1 ]\ 159 | && [ -f $FILE ]; then 160 | mv -f $FILE $DES 161 | fi 162 | 163 | # cleaning 164 | ui_print "- Cleaning..." 165 | PKGS=`cat $MODPATH/package.txt` 166 | if [ "$BOOTMODE" == true ]; then 167 | for PKG in $PKGS; do 168 | FILE=`find /data/app -name *$PKG*` 169 | if [ "$FILE" ]; then 170 | RES=`pm uninstall $PKG 2>/dev/null` 171 | fi 172 | done 173 | fi 174 | remove_sepolicy_rule 175 | ui_print " " 176 | # power save 177 | FILE=$MODPATH/system/etc/sysconfig/* 178 | if [ "`grep_prop power.save $OPTIONALS`" == 1 ]; then 179 | ui_print "- $MODNAME will not be allowed in power save." 180 | ui_print " It may save your battery but decreasing $MODNAME performance." 181 | for PKG in $PKGS; do 182 | sed -i "s|||g" $FILE 183 | sed -i "s|||g" $FILE 184 | done 185 | ui_print " " 186 | fi 187 | 188 | # function 189 | conflict() { 190 | for NAME in $NAMES; do 191 | DIR=/data/adb/modules_update/$NAME 192 | if [ -f $DIR/uninstall.sh ]; then 193 | sh $DIR/uninstall.sh 194 | fi 195 | rm -rf $DIR 196 | DIR=/data/adb/modules/$NAME 197 | rm -f $DIR/update 198 | touch $DIR/remove 199 | FILE=/data/adb/modules/$NAME/uninstall.sh 200 | if [ -f $FILE ]; then 201 | sh $FILE 202 | rm -f $FILE 203 | fi 204 | rm -rf /metadata/magisk/$NAME\ 205 | /mnt/vendor/persist/magisk/$NAME\ 206 | /persist/magisk/$NAME\ 207 | /data/unencrypted/magisk/$NAME\ 208 | /cache/magisk/$NAME\ 209 | /cust/magisk/$NAME 210 | done 211 | } 212 | 213 | # conflict 214 | NAMES=MIUIGallery 215 | conflict 216 | 217 | # function 218 | cleanup() { 219 | if [ -f $DIR/uninstall.sh ]; then 220 | sh $DIR/uninstall.sh 221 | fi 222 | DIR=/data/adb/modules_update/$MODID 223 | if [ -f $DIR/uninstall.sh ]; then 224 | sh $DIR/uninstall.sh 225 | fi 226 | } 227 | 228 | # cleanup 229 | DIR=/data/adb/modules/$MODID 230 | FILE=$DIR/module.prop 231 | PREVMODNAME=`grep_prop name $FILE` 232 | if [ "`grep_prop data.cleanup $OPTIONALS`" == 1 ]; then 233 | sed -i 's|^data.cleanup=1|data.cleanup=0|g' $OPTIONALS 234 | ui_print "- Cleaning-up $MODID data..." 235 | cleanup 236 | ui_print " " 237 | #elif [ -d $DIR ]\ 238 | #&& [ "$PREVMODNAME" != "$MODNAME" ]; then 239 | # ui_print "- Different module name is detected" 240 | # ui_print " Cleaning-up $MODID data..." 241 | # cleanup 242 | # ui_print " " 243 | fi 244 | 245 | # function 246 | permissive_2() { 247 | sed -i 's|#2||g' $MODPATH/post-fs-data.sh 248 | } 249 | permissive() { 250 | FILE=/sys/fs/selinux/enforce 251 | SELINUX=`cat $FILE` 252 | if [ "$SELINUX" == 1 ]; then 253 | if ! setenforce 0; then 254 | echo 0 > $FILE 255 | fi 256 | SELINUX=`cat $FILE` 257 | if [ "$SELINUX" == 1 ]; then 258 | ui_print " Your device can't be turned to Permissive state." 259 | ui_print " Using Magisk Permissive mode instead." 260 | permissive_2 261 | else 262 | if ! setenforce 1; then 263 | echo 1 > $FILE 264 | fi 265 | sed -i 's|#1||g' $MODPATH/post-fs-data.sh 266 | fi 267 | else 268 | sed -i 's|#1||g' $MODPATH/post-fs-data.sh 269 | fi 270 | } 271 | 272 | # permissive 273 | if [ "`grep_prop permissive.mode $OPTIONALS`" == 1 ]; then 274 | ui_print "- Using device Permissive mode." 275 | rm -f $MODPATH/sepolicy.rule 276 | permissive 277 | ui_print " " 278 | elif [ "`grep_prop permissive.mode $OPTIONALS`" == 2 ]; then 279 | ui_print "- Using Magisk Permissive mode." 280 | rm -f $MODPATH/sepolicy.rule 281 | permissive_2 282 | ui_print " " 283 | fi 284 | 285 | # function 286 | extract_lib() { 287 | for APP in $APPS; do 288 | FILE=`find $MODPATH/system -type f -name $APP.apk` 289 | if [ -f `dirname $FILE`/extract ]; then 290 | ui_print "- Extracting..." 291 | DIR=`dirname $FILE`/lib/"$ARCHLIB" 292 | mkdir -p $DIR 293 | rm -rf $TMPDIR/* 294 | DES=lib/"$ABILIB"/* 295 | unzip -d $TMPDIR -o $FILE $DES 296 | cp -f $TMPDIR/$DES $DIR 297 | ui_print " " 298 | fi 299 | done 300 | } 301 | hide_oat() { 302 | for APP in $APPS; do 303 | REPLACE="$REPLACE 304 | `find $MODPATH/system -type d -name $APP | sed "s|$MODPATH||g"`/oat" 305 | done 306 | } 307 | 308 | # extract 309 | APPS="`ls $MODPATH/system/priv-app` 310 | `ls $MODPATH/system/app`" 311 | ARCHLIB=arm64 312 | ABILIB=arm64-v8a 313 | extract_lib 314 | ARCHLIB=arm 315 | if echo "$ABILIST" | grep -q armeabi-v7a; then 316 | ABILIB=armeabi-v7a 317 | extract_lib 318 | elif echo "$ABILIST" | grep -q armeabi; then 319 | ABILIB=armeabi 320 | extract_lib 321 | else 322 | ABILIB=armeabi-v7a 323 | extract_lib 324 | fi 325 | ARCHLIB=x64 326 | ABILIB=x86_64 327 | extract_lib 328 | ARCHLIB=x86 329 | ABILIB=x86 330 | extract_lib 331 | rm -f `find $MODPATH/system -type f -name extract` 332 | # hide 333 | hide_oat 334 | 335 | # function 336 | change_name() { 337 | if grep -q $NAME $FILE; then 338 | ui_print "- Changing $NAME to $NAME2 at" 339 | ui_print "$FILE" 340 | ui_print " Please wait..." 341 | sed -i "s|$NAME|$NAME2|g" $FILE 342 | ui_print " " 343 | fi 344 | } 345 | 346 | # features 347 | PROP=`grep_prop miui.features $OPTIONALS` 348 | FILE=$MODPATH/service.sh 349 | if [ "$PROP" != 0 ]; then 350 | FILE=`find $MODPATH/system -type f -name libnexeditorsdk.so` 351 | NAME=ro.product.device 352 | NAME2=ro.gallery.device 353 | change_name 354 | FILE=`find $MODPATH -type f -name libnex*.so` 355 | NAME=ro.product.manufacturer 356 | NAME2=ro.gallery.manufacturer 357 | change_name 358 | fi 359 | if [ "$PROP" == 0 ]; then 360 | ui_print "- Removing ro.gallery.device and ro.gallery.manufacturer" 361 | ui_print " changes..." 362 | sed -i 's|resetprop -n ro.gallery.device cepheus||g' $FILE 363 | sed -i 's|resetprop -n ro.gallery.manufacturer Xiaomi||g' $FILE 364 | ui_print " " 365 | elif [ "$PROP" ] && [ "$PROP" != 1 ]; then 366 | ui_print "- ro.gallery.device will set to $PROP" 367 | sed -i "s|cepheus|$PROP|g" $FILE 368 | ui_print " " 369 | fi 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | -------------------------------------------------------------------------------- /function.sh: -------------------------------------------------------------------------------- 1 | # function 2 | remove_cache() { 3 | FILES=`find $MODPATH -type f -name *.apk | sed 's|.apk||g'` 4 | APPS=`for FILE in $FILES; do basename $FILE; done` 5 | for APP in $APPS; do 6 | rm -f `find /data/system/package_cache\ 7 | /data/dalvik-cache /data/resource-cache\ 8 | -type f -name *$APP*` 9 | done 10 | } 11 | remove_sepolicy_rule() { 12 | rm -rf /metadata/magisk/"$MODID"\ 13 | /mnt/vendor/persist/magisk/"$MODID"\ 14 | /persist/magisk/"$MODID"\ 15 | /data/unencrypted/magisk/"$MODID"\ 16 | /cache/magisk/"$MODID"\ 17 | /cust/magisk/"$MODID" 18 | } 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /module.prop: -------------------------------------------------------------------------------- 1 | id=MiuiGallery 2 | name=Miui Gallery CN 3 | version=v2.14 4 | versionCode=24 5 | author=Rei Ryuki the Fixer 6 | description=Gallery app by Xiaomi Inc. ported for any Android 5 (SDK 21) and up non-Miui ROM. 7 | 8 | 9 | -------------------------------------------------------------------------------- /package.txt: -------------------------------------------------------------------------------- 1 | com.miui.gallery 2 | -------------------------------------------------------------------------------- /post-fs-data.sh: -------------------------------------------------------------------------------- 1 | mount -o rw,remount /data 2 | MODPATH=${0%/*} 3 | 4 | # log 5 | exec 2>$MODPATH/debug-pfsd.log 6 | set -x 7 | 8 | # var 9 | ABI=`getprop ro.product.cpu.abi` 10 | 11 | # function 12 | permissive() { 13 | if [ "$SELINUX" == Enforcing ]; then 14 | if ! setenforce 0; then 15 | echo 0 > /sys/fs/selinux/enforce 16 | fi 17 | fi 18 | } 19 | magisk_permissive() { 20 | if [ "$SELINUX" == Enforcing ]; then 21 | if [ -x "`command -v magiskpolicy`" ]; then 22 | magiskpolicy --live "permissive *" 23 | else 24 | $MODPATH/$ABI/libmagiskpolicy.so --live "permissive *" 25 | fi 26 | fi 27 | } 28 | sepolicy_sh() { 29 | if [ -f $FILE ]; then 30 | if [ -x "`command -v magiskpolicy`" ]; then 31 | magiskpolicy --live --apply $FILE 2>/dev/null 32 | else 33 | $MODPATH/$ABI/libmagiskpolicy.so --live --apply $FILE 2>/dev/null 34 | fi 35 | fi 36 | } 37 | 38 | # selinux 39 | SELINUX=`getenforce` 40 | chmod 0755 $MODPATH/*/libmagiskpolicy.so 41 | #1permissive 42 | #2magisk_permissive 43 | #kFILE=$MODPATH/sepolicy.rule 44 | #ksepolicy_sh 45 | FILE=$MODPATH/sepolicy.pfsd 46 | sepolicy_sh 47 | 48 | # dependency 49 | #rm -f /data/adb/modules/MiuiCore/remove 50 | #rm -f /data/adb/modules/MiuiCore/disable 51 | 52 | # cleaning 53 | FILE=$MODPATH/cleaner.sh 54 | if [ -f $FILE ]; then 55 | . $FILE 56 | mv -f $FILE $FILE.txt 57 | fi 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /sepolicy.rule: -------------------------------------------------------------------------------- 1 | # debug 2 | allow system_server system_file file write 3 | 4 | # context 5 | create { system_lib_file vendor_file vendor_configs_file } 6 | allow { system_file system_lib_file vendor_file vendor_configs_file } labeledfs filesystem associate 7 | allow init { system_file system_lib_file vendor_file vendor_configs_file } { dir file } relabelfrom 8 | 9 | # file 10 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } vendor_display_prop file { read open getattr map } 11 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } sysfs file { open getattr } 12 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } app_data_file file execute 13 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } proc_stat file { open read } 14 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } { qemu_hw_prop vendor_camera_prop } file { read open getattr } 15 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } { vendor_default_prop qemu_hw_prop } file map 16 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } userdebug_or_eng_prop file read 17 | allow zygote device file { write open } 18 | allow magisk system_lib_file file ioctl 19 | allow crash_dump packagemanager_config_prop file { open getattr map } 20 | allow crash_dump media_variant_prop file { open getattr } 21 | 22 | # dir 23 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } blkio_dev dir search 24 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } app_data_file dir { getattr search } 25 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } system_data_file dir read 26 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } privapp_data_file dir map 27 | 28 | # service_manager 29 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } default_android_service service_manager find 30 | 31 | # binder 32 | allow { system_app priv_app platform_app untrusted_app_29 untrusted_app_27 untrusted_app } hal_memtrack_default binder call 33 | 34 | 35 | -------------------------------------------------------------------------------- /service.sh: -------------------------------------------------------------------------------- 1 | MODPATH=${0%/*} 2 | 3 | # log 4 | exec 2>$MODPATH/debug.log 5 | set -x 6 | 7 | # var 8 | API=`getprop ro.build.version.sdk` 9 | 10 | # property 11 | resetprop -n ro.gallery.device cepheus 12 | resetprop -n ro.gallery.manufacturer Xiaomi 13 | 14 | # wait 15 | until [ "`getprop sys.boot_completed`" == 1 ]; do 16 | sleep 10 17 | done 18 | 19 | # list 20 | PKGS="`cat $MODPATH/package.txt` 21 | com.miui.gallery:photo_editor 22 | com.miui.gallery:widgetProvider 23 | com.miui.gallery:remote 24 | com.miui.gallery:pushservice" 25 | for PKG in $PKGS; do 26 | magisk --denylist rm $PKG 2>/dev/null 27 | magisk --sulist add $PKG 2>/dev/null 28 | done 29 | if magisk magiskhide sulist; then 30 | for PKG in $PKGS; do 31 | magisk magiskhide add $PKG 32 | done 33 | else 34 | for PKG in $PKGS; do 35 | magisk magiskhide rm $PKG 36 | done 37 | fi 38 | 39 | # function 40 | appops_set() { 41 | appops set $PKG LEGACY_STORAGE allow 42 | appops set $PKG READ_EXTERNAL_STORAGE allow 43 | appops set $PKG WRITE_EXTERNAL_STORAGE allow 44 | appops set $PKG READ_MEDIA_AUDIO allow 45 | appops set $PKG READ_MEDIA_VIDEO allow 46 | appops set $PKG READ_MEDIA_IMAGES allow 47 | appops set $PKG WRITE_MEDIA_AUDIO allow 48 | appops set $PKG WRITE_MEDIA_VIDEO allow 49 | appops set $PKG WRITE_MEDIA_IMAGES allow 50 | if [ "$API" -ge 29 ]; then 51 | appops set $PKG ACCESS_MEDIA_LOCATION allow 52 | fi 53 | if [ "$API" -ge 30 ]; then 54 | appops set $PKG MANAGE_EXTERNAL_STORAGE allow 55 | appops set $PKG NO_ISOLATED_STORAGE allow 56 | appops set $PKG AUTO_REVOKE_PERMISSIONS_IF_UNUSED ignore 57 | fi 58 | if [ "$API" -ge 31 ]; then 59 | appops set $PKG MANAGE_MEDIA allow 60 | fi 61 | if [ "$API" -ge 33 ]; then 62 | appops set $PKG ACCESS_RESTRICTED_SETTINGS allow 63 | fi 64 | if [ "$API" -ge 34 ]; then 65 | appops set $PKG READ_MEDIA_VISUAL_USER_SELECTED allow 66 | fi 67 | PKGOPS=`appops get $PKG` 68 | UID=`dumpsys package $PKG 2>/dev/null | grep -m 1 Id= | sed -e 's| userId=||g' -e 's| appId=||g'` 69 | if [ "$UID" ] && [ "$UID" -gt 9999 ]; then 70 | appops set --uid "$UID" LEGACY_STORAGE allow 71 | appops set --uid "$UID" READ_EXTERNAL_STORAGE allow 72 | appops set --uid "$UID" WRITE_EXTERNAL_STORAGE allow 73 | if [ "$API" -ge 29 ]; then 74 | appops set --uid "$UID" ACCESS_MEDIA_LOCATION allow 75 | fi 76 | if [ "$API" -ge 34 ]; then 77 | appops set --uid "$UID" READ_MEDIA_VISUAL_USER_SELECTED allow 78 | fi 79 | UIDOPS=`appops get --uid "$UID"` 80 | fi 81 | } 82 | 83 | # grant 84 | PKG=com.miui.gallery 85 | if appops get $PKG > /dev/null 2>&1; then 86 | pm grant --all-permissions $PKG 87 | appops set $PKG SYSTEM_ALERT_WINDOW allow 88 | appops_set 89 | fi 90 | 91 | # grant 92 | PKG=cn.wps.moffice_eng.xiaomi.lite 93 | if appops get $PKG > /dev/null 2>&1; then 94 | pm grant --all-permissions $PKG 95 | appops_set 96 | fi 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /system.prop: -------------------------------------------------------------------------------- 1 | # prevent bootloop 2 | ro.control_privapp_permissions=log 3 | -------------------------------------------------------------------------------- /system/etc/default-permissions/default-com.miui.gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /system/etc/permissions/privapp-com.miui.gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /system/etc/sysconfig/config-com.miui.gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /system/priv-app/MiuiGallery/MiuiGallery.apk/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 16 | 17 | 20 | 21 | 24 | 25 | 28 | 29 | 32 | 33 | 36 | 37 | 40 | 41 | 44 | 45 | 48 | 49 | 52 | 53 | 56 | 57 | 60 | 61 | 64 | 65 | 68 | 69 | 72 | 73 | 76 | 77 | 80 | 81 | 84 | 85 | 88 | 89 | 92 | 93 | 96 | 97 | 100 | 101 | 104 | 105 | 108 | 109 | 112 | 113 | 116 | 117 | 120 | 121 | 124 | 125 | 128 | 129 | 132 | 133 | 136 | 137 | 140 | 141 | 144 | 145 | 148 | 149 | 152 | 153 | 156 | 157 | 160 | 161 | 164 | 165 | 168 | 169 | 172 | 173 | 176 | 177 | 180 | 181 | 184 | 185 | 188 | 189 | 192 | 193 | 196 | 197 | 200 | 201 | 204 | 205 | 208 | 209 | 212 | 213 | 216 | 217 | 220 | 221 | 224 | 225 | 228 | 229 | 232 | 233 | 236 | 237 | 240 | 241 | 244 | 245 | 248 | 249 | 252 | 253 | 256 | 257 | 260 | 261 | 264 | 265 | 268 | 269 | 272 | 273 | 276 | 277 | 280 | 281 | 284 | 285 | 288 | 289 | 292 | 293 | 295 | 298 | 299 | 302 | 303 | 306 | 307 | 308 | 311 | 312 | 315 | 316 | 319 | 320 | 323 | 324 | 327 | 328 | 331 | 332 | 350 | 354 | 355 | 359 | 360 | 364 | 365 | 369 | 370 | 374 | 375 | 379 | 380 | 384 | 385 | 389 | 390 | 394 | 395 | 399 | 400 | 404 | 405 | 409 | 410 | 414 | 415 | 419 | 420 | 424 | 425 | 429 | 430 | 434 | 435 | 441 | 445 | 446 | 447 | 456 | 458 | 461 | 462 | 465 | 466 | 469 | 470 | 473 | 474 | 475 | 477 | 480 | 481 | 484 | 485 | 486 | 488 | 491 | 492 | 495 | 496 | 497 | 499 | 502 | 503 | 506 | 507 | 508 | 510 | 513 | 514 | 517 | 518 | 519 | 521 | 524 | 525 | 528 | 529 | 532 | 533 | 538 | 539 | 544 | 545 | 546 | 550 | 551 | 552 | 558 | 559 | 564 | 565 | 572 | 573 | 582 | 583 | 591 | 594 | 597 | 598 | 601 | 602 | 605 | 606 | 609 | 610 | 613 | 614 | 617 | 618 | 621 | 622 | 625 | 626 | 629 | 630 | 631 | 633 | 636 | 637 | 640 | 641 | 644 | 645 | 648 | 649 | 652 | 653 | 656 | 657 | 660 | 661 | 664 | 665 | 668 | 669 | 672 | 673 | 676 | 677 | 680 | 681 | 684 | 685 | 686 | 687 | 695 | 698 | 701 | 702 | 705 | 706 | 709 | 710 | 713 | 714 | 715 | 718 | 721 | 722 | 725 | 726 | 729 | 730 | 733 | 734 | 737 | 738 | 741 | 742 | 745 | 746 | 749 | 750 | 753 | 754 | 755 | 757 | 760 | 761 | 764 | 765 | 768 | 769 | 772 | 773 | 776 | 777 | 780 | 781 | 784 | 785 | 788 | 789 | 792 | 793 | 796 | 797 | 800 | 801 | 804 | 805 | 808 | 809 | 810 | 811 | 820 | 823 | 826 | 827 | 830 | 831 | 834 | 835 | 838 | 839 | 842 | 843 | 846 | 847 | 850 | 851 | 854 | 855 | 856 | 858 | 861 | 862 | 865 | 866 | 869 | 870 | 873 | 874 | 877 | 878 | 881 | 882 | 885 | 886 | 889 | 890 | 893 | 894 | 897 | 898 | 901 | 902 | 905 | 906 | 909 | 910 | 911 | 912 | 921 | 922 | 930 | 933 | 936 | 937 | 940 | 941 | 942 | 943 | 955 | 957 | 960 | 961 | 964 | 965 | 968 | 969 | 970 | 971 | 983 | 984 | 987 | 989 | 992 | 993 | 996 | 997 | 998 | 999 | 1010 | 1012 | 1015 | 1016 | 1019 | 1020 | 1023 | 1024 | 1025 | 1027 | 1030 | 1031 | 1034 | 1035 | 1038 | 1039 | 1040 | 1041 | 1050 | 1052 | 1055 | 1056 | 1060 | 1061 | 1064 | 1065 | 1066 | 1068 | 1071 | 1072 | 1076 | 1077 | 1080 | 1081 | 1082 | 1083 | 1089 | 1091 | 1094 | 1095 | 1098 | 1099 | 1100 | 1102 | 1105 | 1106 | 1109 | 1110 | 1111 | 1113 | 1116 | 1117 | 1120 | 1121 | 1124 | 1125 | 1130 | 1131 | 1136 | 1137 | 1138 | 1139 | 1146 | 1148 | 1151 | 1152 | 1155 | 1156 | 1157 | 1158 | 1164 | 1166 | 1169 | 1170 | 1173 | 1174 | 1175 | 1177 | 1180 | 1181 | 1184 | 1185 | 1188 | 1189 | 1194 | 1195 | 1200 | 1201 | 1202 | 1204 | 1207 | 1208 | 1211 | 1212 | 1215 | 1216 | 1221 | 1222 | 1227 | 1228 | 1229 | 1230 | 1238 | 1239 | 1245 | 1247 | 1250 | 1251 | 1252 | 1253 | 1259 | 1261 | 1264 | 1265 | 1266 | 1268 | 1271 | 1272 | 1275 | 1276 | 1279 | 1280 | 1285 | 1286 | 1291 | 1292 | 1293 | 1294 | 1300 | 1302 | 1305 | 1306 | 1309 | 1310 | 1311 | 1312 | 1318 | 1320 | 1323 | 1324 | 1327 | 1328 | 1329 | 1330 | 1336 | 1338 | 1341 | 1342 | 1345 | 1346 | 1349 | 1350 | 1355 | 1356 | 1357 | 1358 | 1364 | 1365 | 1372 | 1373 | 1379 | 1380 | 1386 | 1388 | 1391 | 1392 | 1395 | 1396 | 1397 | 1399 | 1402 | 1403 | 1406 | 1407 | 1410 | 1411 | 1416 | 1417 | 1422 | 1423 | 1424 | 1425 | 1430 | 1432 | 1435 | 1436 | 1439 | 1440 | 1441 | 1442 | 1450 | 1453 | 1456 | 1457 | 1460 | 1461 | 1462 | 1465 | 1468 | 1469 | 1472 | 1473 | 1474 | 1477 | 1480 | 1481 | 1484 | 1485 | 1486 | 1489 | 1492 | 1493 | 1496 | 1497 | 1500 | 1501 | 1506 | 1507 | 1512 | 1513 | 1518 | 1519 | 1524 | 1525 | 1526 | 1529 | 1532 | 1533 | 1536 | 1537 | 1542 | 1543 | 1548 | 1549 | 1550 | 1553 | 1556 | 1557 | 1560 | 1561 | 1562 | 1565 | 1568 | 1569 | 1572 | 1573 | 1574 | 1575 | 1583 | 1585 | 1588 | 1589 | 1592 | 1593 | 1596 | 1597 | 1602 | 1603 | 1608 | 1609 | 1614 | 1615 | 1620 | 1621 | 1626 | 1627 | 1632 | 1633 | 1638 | 1639 | 1644 | 1645 | 1646 | 1647 | 1653 | 1654 | 1660 | 1661 | 1667 | 1669 | 1672 | 1673 | 1676 | 1677 | 1680 | 1681 | 1686 | 1687 | 1692 | 1693 | 1698 | 1699 | 1704 | 1705 | 1710 | 1711 | 1716 | 1717 | 1722 | 1723 | 1728 | 1729 | 1734 | 1735 | 1740 | 1741 | 1746 | 1747 | 1752 | 1753 | 1758 | 1759 | 1764 | 1765 | 1770 | 1771 | 1776 | 1777 | 1778 | 1779 | 1785 | 1787 | 1790 | 1791 | 1794 | 1795 | 1796 | 1797 | 1800 | 1801 | 1804 | 1805 | 1811 | 1813 | 1816 | 1817 | 1820 | 1821 | 1824 | 1825 | 1828 | 1829 | 1832 | 1833 | 1834 | 1836 | 1839 | 1840 | 1843 | 1844 | 1847 | 1848 | 1851 | 1852 | 1853 | 1855 | 1858 | 1859 | 1862 | 1863 | 1866 | 1867 | 1870 | 1871 | 1872 | 1874 | 1877 | 1878 | 1881 | 1882 | 1885 | 1886 | 1889 | 1890 | 1893 | 1894 | 1895 | 1896 | 1903 | 1906 | 1909 | 1910 | 1913 | 1914 | 1917 | 1918 | 1921 | 1922 | 1925 | 1926 | 1927 | 1928 | 1933 | 1934 | 1939 | 1941 | 1944 | 1945 | 1948 | 1949 | 1950 | 1951 | 1956 | 1957 | 1962 | 1963 | 1968 | 1970 | 1973 | 1974 | 1977 | 1978 | 1979 | 1980 | 1985 | 1986 | 1992 | 1993 | 1999 | 2000 | 2006 | 2008 | 2011 | 2012 | 2015 | 2016 | 2019 | 2020 | 2025 | 2026 | 2031 | 2032 | 2033 | 2034 | 2039 | 2040 | 2046 | 2047 | 2051 | 2052 | 2058 | 2059 | 2063 | 2064 | 2071 | 2072 | 2080 | 2081 | 2087 | 2088 | 2095 | 2096 | 2101 | 2105 | 2106 | 2110 | 2111 | 2115 | 2116 | 2117 | 2123 | 2124 | 2130 | 2131 | 2135 | 2137 | 2140 | 2141 | 2144 | 2145 | 2146 | 2147 | 2152 | 2154 | 2157 | 2158 | 2159 | 2160 | 2165 | 2167 | 2170 | 2171 | 2174 | 2175 | 2176 | 2177 | 2181 | 2183 | 2186 | 2187 | 2188 | 2189 | 2195 | 2196 | 2202 | 2205 | 2208 | 2209 | 2212 | 2213 | 2214 | 2215 | 2222 | 2223 | 2230 | 2231 | 2239 | 2240 | 2246 | 2247 | 2253 | 2255 | 2258 | 2259 | 2262 | 2263 | 2264 | 2265 | 2270 | 2271 | 2276 | 2277 | 2284 | 2285 | 2292 | 2293 | 2299 | 2300 | 2306 | 2307 | 2314 | 2315 | 2321 | 2322 | 2328 | 2329 | 2337 | 2338 | 2345 | 2346 | 2352 | 2353 | 2360 | 2361 | 2366 | 2367 | 2376 | 2377 | 2384 | 2386 | 2389 | 2390 | 2393 | 2394 | 2399 | 2400 | 2405 | 2406 | 2407 | 2409 | 2412 | 2413 | 2416 | 2417 | 2418 | 2419 | 2423 | 2425 | 2428 | 2429 | 2430 | 2431 | 2437 | 2439 | 2442 | 2443 | 2446 | 2447 | 2448 | 2449 | 2453 | 2455 | 2458 | 2459 | 2460 | 2461 | 2466 | 2468 | 2471 | 2472 | 2475 | 2476 | 2477 | 2478 | 2483 | 2485 | 2488 | 2489 | 2492 | 2493 | 2494 | 2496 | 2499 | 2500 | 2503 | 2504 | 2507 | 2508 | 2513 | 2514 | 2519 | 2520 | 2525 | 2526 | 2527 | 2528 | 2534 | 2535 | 2541 | 2542 | 2548 | 2550 | 2553 | 2554 | 2557 | 2558 | 2559 | 2560 | 2565 | 2567 | 2570 | 2571 | 2574 | 2575 | 2576 | 2577 | 2582 | 2584 | 2587 | 2588 | 2589 | 2590 | 2595 | 2597 | 2600 | 2601 | 2602 | 2603 | 2610 | 2612 | 2615 | 2616 | 2617 | 2618 | 2622 | 2624 | 2627 | 2628 | 2629 | 2633 | 2634 | 2638 | 2639 | 2640 | 2644 | 2646 | 2649 | 2650 | 2651 | 2652 | 2656 | 2658 | 2661 | 2662 | 2663 | 2667 | 2668 | 2669 | 2672 | 2673 | 2677 | 2679 | 2682 | 2683 | 2686 | 2687 | 2688 | 2689 | 2692 | 2693 | 2697 | 2698 | 2701 | 2703 | 2706 | 2707 | 2708 | 2709 | 2712 | 2714 | 2717 | 2718 | 2719 | 2720 | 2723 | 2724 | 2729 | 2731 | 2734 | 2735 | 2736 | 2737 | 2741 | 2743 | 2746 | 2747 | 2750 | 2751 | 2752 | 2753 | 2757 | 2759 | 2762 | 2763 | 2764 | 2765 | 2770 | 2772 | 2775 | 2776 | 2779 | 2780 | 2781 | 2782 | 2787 | 2789 | 2792 | 2793 | 2794 | 2795 | 2800 | 2802 | 2805 | 2806 | 2807 | 2808 | 2812 | 2813 | 2816 | 2817 | 2821 | 2823 | 2826 | 2827 | 2828 | 2829 | 2833 | 2834 | 2839 | 2841 | 2844 | 2845 | 2846 | 2848 | 2851 | 2852 | 2853 | 2855 | 2858 | 2859 | 2860 | 2861 | 2866 | 2867 | 2874 | 2875 | 2880 | 2881 | 2885 | 2886 | 2890 | 2892 | 2895 | 2896 | 2899 | 2900 | 2901 | 2902 | 2907 | 2909 | 2912 | 2913 | 2914 | 2915 | 2919 | 2921 | 2924 | 2925 | 2926 | 2928 | 2931 | 2932 | 2933 | 2935 | 2938 | 2939 | 2940 | 2941 | 2946 | 2948 | 2951 | 2952 | 2953 | 2954 | 2959 | 2960 | 2967 | 2969 | 2972 | 2973 | 2974 | 2975 | 2978 | 2980 | 2983 | 2984 | 2987 | 2988 | 2989 | 2993 | 2994 | 2995 | 2999 | 3001 | 3004 | 3005 | 3006 | 3007 | 3013 | 3014 | 3022 | 3023 | 3031 | 3032 | 3036 | 3037 | 3041 | 3042 | 3048 | 3049 | 3055 | 3057 | 3060 | 3061 | 3064 | 3065 | 3070 | 3071 | 3072 | 3073 | 3081 | 3082 | 3087 | 3091 | 3092 | 3096 | 3097 | 3101 | 3102 | 3106 | 3107 | 3109 | 3112 | 3113 | 3116 | 3117 | 3118 | 3119 | 3124 | 3128 | 3129 | 3133 | 3134 | 3138 | 3139 | 3143 | 3144 | 3146 | 3149 | 3150 | 3153 | 3154 | 3155 | 3156 | 3161 | 3165 | 3166 | 3170 | 3171 | 3175 | 3176 | 3180 | 3181 | 3183 | 3186 | 3187 | 3190 | 3191 | 3192 | 3193 | 3198 | 3202 | 3203 | 3207 | 3208 | 3212 | 3213 | 3217 | 3218 | 3220 | 3223 | 3224 | 3227 | 3228 | 3229 | 3230 | 3236 | 3240 | 3241 | 3245 | 3246 | 3250 | 3251 | 3255 | 3256 | 3258 | 3261 | 3262 | 3265 | 3266 | 3267 | 3268 | 3274 | 3278 | 3279 | 3283 | 3284 | 3288 | 3289 | 3293 | 3294 | 3296 | 3299 | 3300 | 3303 | 3304 | 3305 | 3306 | 3312 | 3316 | 3317 | 3321 | 3322 | 3326 | 3327 | 3331 | 3332 | 3334 | 3337 | 3338 | 3341 | 3342 | 3343 | 3344 | 3350 | 3354 | 3355 | 3359 | 3360 | 3364 | 3365 | 3369 | 3370 | 3372 | 3375 | 3376 | 3379 | 3380 | 3381 | 3382 | 3386 | 3387 | 3391 | 3392 | 3399 | 3400 | 3406 | 3407 | 3411 | 3412 | 3416 | 3417 | 3422 | 3423 | 3428 | 3429 | 3434 | 3435 | 3440 | 3441 | 3445 | 3446 | 3450 | 3451 | 3456 | 3457 | 3463 | 3464 | 3470 | 3471 | 3475 | 3476 | 3479 | 3481 | 3484 | 3485 | 3486 | 3487 | 3493 | 3497 | 3498 | 3499 | 3503 | 3504 | 3508 | 3509 | 3513 | 3514 | 3518 | 3519 | 3525 | 3527 | 3530 | 3531 | 3532 | 3533 | 3537 | 3539 | 3542 | 3543 | 3546 | 3547 | 3548 | 3549 | 3553 | 3554 | 3558 | 3559 | 3563 | 3564 | 3568 | 3569 | 3573 | 3574 | 3580 | 3581 | 3588 | 3589 | 3595 | 3596 | 3602 | 3603 | 3609 | 3611 | 3614 | 3615 | 3618 | 3619 | 3620 | 3621 | 3627 | 3629 | 3632 | 3633 | 3636 | 3637 | 3638 | 3639 | 3645 | 3647 | 3650 | 3651 | 3654 | 3655 | 3656 | 3657 | 3663 | 3665 | 3668 | 3669 | 3670 | 3671 | 3677 | 3679 | 3682 | 3683 | 3686 | 3687 | 3690 | 3691 | 3692 | 3693 | 3699 | 3701 | 3704 | 3705 | 3706 | 3707 | 3714 | 3716 | 3719 | 3720 | 3721 | 3722 | 3726 | 3727 | 3731 | 3732 | 3736 | 3737 | 3741 | 3742 | 3746 | 3747 | 3751 | 3752 | 3756 | 3757 | 3761 | 3762 | 3766 | 3767 | 3771 | 3772 | 3779 | 3780 | 3784 | 3785 | 3789 | 3790 | 3794 | 3795 | 3800 | 3801 | 3805 | 3806 | 3810 | 3811 | 3815 | 3816 | 3820 | 3821 | 3822 | 3823 | -------------------------------------------------------------------------------- /system/priv-app/MiuiGallery/MiuiGallery.apk/classes.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/system/priv-app/MiuiGallery/MiuiGallery.apk/classes.dex -------------------------------------------------------------------------------- /system/priv-app/MiuiGallery/MiuiGallery.apk/classes2.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/system/priv-app/MiuiGallery/MiuiGallery.apk/classes2.dex -------------------------------------------------------------------------------- /system/priv-app/MiuiGallery/MiuiGallery.apk/classes3.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/system/priv-app/MiuiGallery/MiuiGallery.apk/classes3.dex -------------------------------------------------------------------------------- /system/priv-app/MiuiGallery/MiuiGallery.apk/resources.arsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/system/priv-app/MiuiGallery/MiuiGallery.apk/resources.arsc -------------------------------------------------------------------------------- /system/priv-app/MiuiGallery/extract: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/system/priv-app/MiuiGallery/extract -------------------------------------------------------------------------------- /uninstall.sh: -------------------------------------------------------------------------------- 1 | mount -o rw,remount /data 2 | [ ! "$MODPATH" ] && MODPATH=${0%/*} 3 | [ ! "$MODID" ] && MODID=`basename "$MODPATH"` 4 | UID=`id -u` 5 | [ ! "$UID" ] && UID=0 6 | 7 | # log 8 | exec 2>/data/adb/$MODID\_uninstall.log 9 | set -x 10 | 11 | # run 12 | . $MODPATH/function.sh 13 | 14 | # cleaning 15 | remove_cache 16 | PKGS=`cat $MODPATH/package.txt` 17 | for PKG in $PKGS; do 18 | rm -rf /data/user*/"$UID"/$PKG 19 | done 20 | remove_sepolicy_rule 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | copy_library() { 2 | if echo "$ABI" | grep 64; then 3 | DES="`find /data/app -type d -name *$PKG*`/lib/*64" 4 | if echo $DES | grep $PKG; then 5 | for NAMES in $NAME; do 6 | if [ -f /system/lib64/$NAMES ]; then 7 | cp -f /system/lib64/$NAMES $DES 8 | else 9 | cp -f /system/apex/*/lib64/$NAMES $DES 10 | cp -f /apex/*/lib64/$NAMES $DES 11 | fi 12 | done 13 | chmod 0755 $DES/* 14 | chown 1000.1000 $DES/* 15 | fi 16 | else 17 | DES="`find /data/app -type d -name *$PKG*`/lib/*" 18 | if echo $DES | grep $PKG; then 19 | for NAMES in $NAME; do 20 | if [ -f /system/lib/$NAMES ]; then 21 | cp -f /system/lib/$NAMES $DES 22 | else 23 | cp -f /system/apex/*/lib/$NAMES $DES 24 | cp -f /apex/*/lib/$NAMES $DES 25 | fi 26 | done 27 | chmod 0755 $DES/* 28 | chown 1000.1000 $DES/* 29 | fi 30 | fi 31 | } 32 | 33 | ABI=`getprop ro.product.cpu.abi` 34 | PKG=com.miui.gallery 35 | NAME="libnativehelper.so libmiuinative.so libmiuiblur.so 36 | libimage_arcsoft_4plus.so libstlport_shared.so" 37 | copy_library 38 | 39 | 40 | -------------------------------------------------------------------------------- /x86/libmagiskpolicy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/x86/libmagiskpolicy.so -------------------------------------------------------------------------------- /x86_64/libmagiskpolicy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Miui-Gallery-Magisk-Module/af15d1acd467d43d4fbce62b1f42ea66cebbd3dd/x86_64/libmagiskpolicy.so --------------------------------------------------------------------------------