2023-02-09 00:44:16 +03:00

41 lines
1.1 KiB
Bash
Executable File

#!/system/bin/sh
# shellcheck disable=SC2086
MODDIR=${0%/*}
RVPATH=${NVBASE}/rvhc/__PKGNAME_rv.apk
until [ "$(getprop sys.boot_completed)" = 1 ]; do sleep 1; done
until [ "$(getprop init.svc.bootanim)" = stopped ]; do sleep 1; done
sleep 3
err() {
cp -n $MODDIR/module.prop $MODDIR/err
sed -i "s/^des.*/description=⚠️ Module is inactive: ${1}/g" $MODDIR/module.prop
}
BASEPATH=$(pm path __PKGNAME | grep base)
BASEPATH=${BASEPATH#*:}
if [ $BASEPATH ]; then
if [ -d ${BASEPATH%base.apk}lib ]; then
VERSION=$(dumpsys package __PKGNAME | grep -m1 versionName)
if [ ${VERSION#*=} = __PKGVER ]; then
grep __PKGNAME /proc/mounts | while read -r line; do
mp=${line#* }
mp=${mp%% *}
umount -l ${mp%%\\*}
done
if chcon u:object_r:apk_data_file:s0 $RVPATH; then
mount -o bind $RVPATH $BASEPATH
am force-stop __PKGNAME
[ -f $MODDIR/err ] && mv -f $MODDIR/err $MODDIR/module.prop
else
err "mount failed"
fi
else
err "version mismatch (${VERSION#*=})"
fi
else
err "invalid installation"
fi
else
err "app not installed"
fi