. "$MODPATH/config" ui_print "" if [ -n "$MODULE_ARCH" ] && [ "$MODULE_ARCH" != "$ARCH" ]; then abort "ERROR: Wrong arch Your device: $ARCH Module: $MODULE_ARCH" fi alias cmpr="$MODPATH/bin/$ARCH/cmpr" if [ "$ARCH" = "arm" ]; then ARCH_LIB=armeabi-v7a elif [ "$ARCH" = "arm64" ]; then ARCH_LIB=arm64-v8a elif [ "$ARCH" = "x86" ]; then ARCH_LIB=x86 elif [ "$ARCH" = "x64" ]; then ARCH_LIB=x86_64 else abort "ERROR: unreachable: ${ARCH}"; fi RVPATH=/data/adb/rvhc/${MODPATH##*/}.apk set_perm_recursive "$MODPATH/bin" 0 0 0755 0777 if su -M -c true >/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%% *} mm umount -l "${mp%%\\*}" done am force-stop "$PKG_NAME" if ! (pm path "$PKG_NAME" >/dev/null 2>&1 &1 &1 &1 &1 &1 &1 &1 &1 &1); then ui_print "ERROR: extracting native libs failed" abort "$op" fi set_perm_recursive "${BASEPATH}/lib" 1000 1000 755 755 u:object_r:apk_data_file:s0 fi if [ "$IS_SYS" = false ]; then mkdir -p "/data/adb/rvhc"; fi mv -f "$MODPATH/base.apk" "$RVPATH" ui_print "* Setting Permissions" set_perm "$RVPATH" 1000 1000 644 u:object_r:apk_data_file:s0 if [ "$IS_SYS" = false ]; then ui_print "* Mounting $PKG_NAME" if ! op=$(mm mount -o bind "$RVPATH" "$BASEPATH/base.apk" 2>&1); then ui_print "ERROR: Mount failed!" ui_print "$op" fi am force-stop "$PKG_NAME" ui_print "* Optimizing $PKG_NAME" nohup cmd package compile --reset "$PKG_NAME" >/dev/null 2>&1 & fi ui_print "* Cleanup" rm -rf "${MODPATH:?}/bin" "$MODPATH/$PKG_NAME.apk" if [ -d "/data/adb/modules/zygisk-assistant" ]; then ui_print "* If you are using zygisk-assistant, you need to" ui_print " give root permissions to $PKG_NAME" fi ui_print "* Done" ui_print " by j-hc (github.com/j-hc)" ui_print " "