From 9a9a3d15c48474dd0fa2df396b461fca61cf5d58 Mon Sep 17 00:00:00 2001 From: solohsu Date: Wed, 1 May 2019 23:10:40 +0800 Subject: [PATCH] Add uninstaller shell script --- .../EdXposedUninstaller_rec-v2.zip | Bin 0 -> 2543 bytes .../META-INF/com/google/android/update-binary | 195 ++++++++++++++++++ .../com/google/android/updater-script | 1 + 3 files changed, 196 insertions(+) create mode 100644 edxp-core/misc/EdXposedUninstaller/EdXposedUninstaller_rec-v2.zip create mode 100644 edxp-core/misc/EdXposedUninstaller/META-INF/com/google/android/update-binary create mode 100644 edxp-core/misc/EdXposedUninstaller/META-INF/com/google/android/updater-script diff --git a/edxp-core/misc/EdXposedUninstaller/EdXposedUninstaller_rec-v2.zip b/edxp-core/misc/EdXposedUninstaller/EdXposedUninstaller_rec-v2.zip new file mode 100644 index 0000000000000000000000000000000000000000..ac54535634ccdcdfd1e0f1d9a7eb5bb7ee3e48f5 GIT binary patch literal 2543 zcmai02{@G7AO0vLWC>x!Sjt!%v<%ml#2uu`D8&3PX3&VCu{9z~D5uP_PZu713 z{l(A3LkI2lYr<{JcOia+QPzbCafYFNeK0PYeWx1x=Vciqs3kOfC$yLL*v zu=5`)u?q%!*+R_jF0=Y!WYiDnqL~)%Kv|(!wv9yIm5v-t3$nI!|Ed|j7p7< zEuu#+6`e}am>+>&QVQN6f-y0yP)!(fe}$DK$q9Pt>YSr7gr1ezVQi zEcCE~xb>B-#8_T=97R-%F-r@ZS>`K2Yo+JkXp|BN%h&s(qIb!5x9%?U1AUf{f@K1B z+$Rpisr*4wp-kR3Sf#59)3$dy<_D;M4s4?*5ggT)6_67Q{HXd43#~-A&zZONlhaYp z?IH}FZS7r!yl*vkG|Wyze3L7T-Gf6aP%)t~u6s}pZ;Bj^j)W@G+fr@f&xXT{Qkb_>1JK$ z7uw~04ro2l9LamQxYT}=lD@UI(a55`bCQcQOIKPi-<#yRmW^x*K@LBs z+Q7OEZa83t&(Tui8_t$W4O{B!LUuGP_@*7J3;ncd`E}pm)5|sc8#_o#3=hX3EKO~X zv)#mO6R$V6zP2!^??gVNJ!8NrcU9TFYOhg>ATcq(RBOdKWF>VLJ^{CXK8VoP^{mY@pN(xw!67hm~DW&9V4b31WpLyx0XZrZ8imP6xK2$Iq za+^I?_`i3f^=L`x(~NUs)ba7GgNbgp>?FM0dC#?T@9a;??j@~Ij?+*?!K(T4-&Mo+ zAE}JnQvFi#qszp^5(R{muC*wwlNt70xyWBtdXL~Y)_UT@q=^cyR^Q40!pv3B^)|fu zKEi3lZ{gWAeMk@Hr5aK4?RZgD1cZoqTQhjSooILI+CtLGMaxdL_UKdT>1A#($Ib_l zH?zkQpr*Lx{+OH=Rf&!aY7`|8R(3(ID}v54nfpfE>-lJF(u-VOi)Tsuau-iG%@H@m&GDStC*bP){%lT8&Do%1m@93A zbHirELZIcBxD1=Euhe6KL`!^xPK)|^9m4&5$d0dBNU^DcZpE>X!dTGdw9J4?yG|{* z0qJq>V|cfaeq5k+bzbT;$r|l2+8e)Zm%Q-c6*(b3v%ni6_8*eA4Dkzw8BA3S@9fvv zCVWs>GiTG?lJ26hVvi$b&&+P$#febj3W/dev/null | grep /tmp >/dev/null +if [ "$?" -eq "0" ]; then + OUTFD=0 + + for FD in `ls /proc/$$/fd`; do + readlink /proc/$$/fd/$FD 2>/dev/null | grep pipe >/dev/null + if [ "$?" -eq "0" ]; then + ps | grep " 3 $FD " | grep -v grep >/dev/null + if [ "$?" -eq "0" ]; then + OUTFD=$FD + break + fi + fi + done +fi + +mkdir -p $INSTALLER +cd $INSTALLER +unzip -o "$ZIP" common/* replace.txt + +########################################################################################## +# Functions +########################################################################################## + +ui_print() { + echo -n -e "ui_print $1\n" >> /proc/self/fd/$OUTFD + echo -n -e "ui_print\n" >> /proc/self/fd/$OUTFD +} + +grep_prop() { + REGEX="s/^$1=//p" + shift + FILES=$@ + if [ -z "$FILES" ]; then + FILES='/system/build.prop' + fi + cat $FILES 2>/dev/null | sed -n $REGEX | head -n 1 +} + +is_mounted() { + if [ ! -z "$2" ]; then + cat /proc/mounts | grep $1 | grep $2, >/dev/null + else + cat /proc/mounts | grep $1 >/dev/null + fi + return $? +} + +set_perm() { + chown $2:$3 $1 || exit 1 + chmod $4 $1 || exit 1 + if [ "$5" ]; then + chcon $5 $1 2>/dev/null + else + chcon 'u:object_r:system_file:s0' $1 2>/dev/null + fi +} + +set_perm_recursive() { + find $1 -type d 2>/dev/null | while read dir; do + set_perm $dir $2 $3 $4 $6 + done + find $1 -type f 2>/dev/null | while read file; do + set_perm $file $2 $3 $5 $6 + done +} + +mktouch() { + mkdir -p ${1%/*} + if [ -z "$2" ]; then + touch $1 + else + echo $2 > $1 + fi +} + +payload_size_check() { + reqSizeM=0; + for entry in $(unzip -l "$@" 2>/dev/null | tail -n +4 | awk '{ print $1 }'); do + test $entry != "--------" && reqSizeM=$((reqSizeM + entry)) || break; + done; + test $reqSizeM -lt 1048576 && reqSizeM=1 || reqSizeM=$((reqSizeM / 1048576)); +} + +target_size_check() { + e2fsck -p -f $1 + curBlocks=`e2fsck -n $1 2>/dev/null | cut -d, -f3 | cut -d\ -f2`; + curUsedM=$((`echo "$curBlocks" | cut -d/ -f1` * 4 / 1024)); + curSizeM=$((`echo "$curBlocks" | cut -d/ -f2` * 4 / 1024)); + curFreeM=$((curSizeM - curUsedM)); +} + +########################################################################################## +# Preparation +########################################################################################## + +# Print your mod name +ui_print "*******************************" +ui_print " EdXposed Uninstaller " +ui_print "*******************************" + +mount /data 2>/dev/null + +if [ -d "/data/adb/magisk/" ]; then + +ui_print "- Deleting EdXposed..." +rm -r -f /data/adb/modules/riru_edxposed/ +rm -r -f /data/misc/riru/modules/edxposed/ +rm -r -f /data/misc/riru/modules/edxp/ +ui_print "- Done" +exit 0 + +fi + +mount /cache 2>/dev/null +umount /magisk 2>/dev/null +mkdir /magisk 2>/dev/null +IMG= + +if (is_mounted /data); then + IMG=/data/adb/magisk.img + if [ ! -f "$IMG" ]; then + ui_print "! Magisk is not installed!" + ui_print "! Magisk is required for this mod!" + exit 1 + fi +else + IMG=/cache/magisk.img + if [ ! -f "$IMG" ]; then + ui_print " " + ui_print "***********************************" + ui_print "* !! Data unavalible !! *" + ui_print "* Magisk detection is impossible *" + ui_print "* Installation will still proceed *" + ui_print "* But please make sure you have *" + ui_print "* Magisk installed!! *" + ui_print "***********************************" + ui_print " " + fi +fi + +if [ -f "$IMG" ]; then + ui_print "- $IMG detected!" + target_size_check $IMG + if [ "$reqSizeM" -gt "$curFreeM" ]; then + SIZE=$((((reqSizeM + curUsedM) / 32 + 2) * 32)) + ui_print "- Resizing $IMG to ${SIZE}M..." + resize2fs $IMG ${SIZE}M + fi +else + ui_print "! $IMG not detected!" + ui_print "! Abort" + exit 1 +fi + +ui_print "- Mounting $IMG to /magisk" +LOOPDEVICE= +for LOOP in 0 1 2 3 4 5 6 7; do + if (! is_mounted /magisk); then + LOOPDEVICE=/dev/block/loop$LOOP + if [ ! -f "$LOOPDEVICE" ]; then + mknod $LOOPDEVICE b 7 $LOOP + fi + losetup $LOOPDEVICE $IMG + if [ "$?" -eq "0" ]; then + mount -t ext4 -o loop $LOOPDEVICE /magisk + if (! is_mounted /magisk); then + /system/bin/toolbox mount -t ext4 -o loop $LOOPDEVICE /magisk + fi + if (! is_mounted /magisk); then + /system/bin/toybox mount -t ext4 -o loop $LOOPDEVICE /magisk + fi + fi + if (is_mounted /magisk); then + break; + fi + fi +done + +ui_print "- Deleting EdXposed..." +rm -r -f /magisk/riru_edxposed/ +rm -r -f /data/misc/riru/modules/edxposed/ +rm -r -f /data/misc/riru/modules/edxp/ + +ui_print "- Done" +exit 0 diff --git a/edxp-core/misc/EdXposedUninstaller/META-INF/com/google/android/updater-script b/edxp-core/misc/EdXposedUninstaller/META-INF/com/google/android/updater-script new file mode 100644 index 00000000..67d29028 --- /dev/null +++ b/edxp-core/misc/EdXposedUninstaller/META-INF/com/google/android/updater-script @@ -0,0 +1 @@ +# this is a dummy file, the magic is in update-binary \ No newline at end of file