diff --git a/revanced-magisk/common.sh b/revanced-magisk/common.sh new file mode 100644 index 0000000..6d3f268 --- /dev/null +++ b/revanced-magisk/common.sh @@ -0,0 +1,20 @@ +#!/system/bin/sh + +if type nsenter >/dev/null 2>/dev/null; then + ZPID=$(pidof zygote) + Z64PID=$(pidof zygote64) + + mm() { + if [ "$ZPID" ]; then nsenter -t "$ZPID" -m -- "$@" || return $?; fi + if [ "$Z64PID" ]; then nsenter -t "$Z64PID" -m -- "$@" || return $?; fi + } +else + mm() { "$@"; } +fi + +pmex() { + OP=$(pm "$@" 2>&1 /dev/null 2>/dev/null; then - alias mm='su -M -c' -else alias mm='nsenter -t1 -m'; fi - mm grep -F "$PKG_NAME" /proc/mounts | while read -r line; do ui_print "* Un-mount" mp=${line#* } mp=${mp%% *} @@ -30,13 +27,6 @@ mm grep -F "$PKG_NAME" /proc/mounts | while read -r line; do done am force-stop "$PKG_NAME" -pmex() { - OP=$(pm "$@" 2>&1 &2; then if pmex install-existing "$PKG_NAME" >&2; then BASEPATH=$(pmex path "$PKG_NAME") || abort "ERROR: pm path failed $BASEPATH" diff --git a/revanced-magisk/service.sh b/revanced-magisk/service.sh index aa40f26..7d88870 100755 --- a/revanced-magisk/service.sh +++ b/revanced-magisk/service.sh @@ -2,6 +2,7 @@ MODDIR=${0%/*} RVPATH=/data/adb/rvhc/${MODDIR##*/}.apk . "$MODDIR/config" +. "$MODDIR/common.sh" err() { [ ! -f "$MODDIR/err" ] && cp "$MODDIR/module.prop" "$MODDIR/err" @@ -11,7 +12,7 @@ err() { until [ "$(getprop sys.boot_completed)" = 1 ]; do sleep 1; done until [ -d "/sdcard/Android" ]; do sleep 1; done while - BASEPATH=$(pm path "$PKG_NAME" 2>&1 "$MODDIR/log.txt" ls -Zla "$BASEPATH/lib" >>"$MODDIR/log.txt" else rm "$MODDIR/log.txt" >/dev/null 2>&1; fi @@ -33,15 +34,15 @@ run() { err "version mismatch (installed:${VERSION}, module:$PKG_VER)" return fi - grep "$PKG_NAME" /proc/mounts | while read -r line; do + mm grep "$PKG_NAME" /proc/mounts | while read -r line; do mp=${line#* } mp=${mp%% *} - umount -l "${mp%%\\*}" + mm umount -l "${mp%%\\*}" done if ! chcon u:object_r:apk_data_file:s0 "$RVPATH"; then err "apk not found" return fi - mount -o bind "$RVPATH" "$BASEPATH/base.apk" + mm mount -o bind "$RVPATH" "$BASEPATH/base.apk" am force-stop "$PKG_NAME" [ -f "$MODDIR/err" ] && mv -f "$MODDIR/err" "$MODDIR/module.prop" }