update module scripts

This commit is contained in:
j-hc 2022-09-08 15:35:14 +03:00
parent 82f4a09015
commit 1b338c0e3a
No known key found for this signature in database
GPG Key ID: 242B44D16774A2ED
3 changed files with 26 additions and 23 deletions

View File

@ -1,10 +1,10 @@
# shellcheck disable=SC2148,SC2086,SC2115 # shellcheck disable=SC2148,SC2086,SC2115
ui_print "" ui_print ""
grep __PKGNAME /proc/mounts | while read -r line; do
ui_print "* Un-mount" grep __PKGNAME /proc/self/mountinfo | while read -r line; do
line=${line#*' '} mount_path=$(echo "$line" | cut -d' ' -f5)
line=${line%%' '*} ui_print "* Un-mount $mount_path"
umount -l ${line%%\\*} # trims \040(deleted) umount -l "$mount_path"
done done
if [ $ARCH = "arm" ]; then if [ $ARCH = "arm" ]; then
@ -26,21 +26,24 @@ basepath() {
} }
BASEPATH=$(basepath) BASEPATH=$(basepath)
if [ -n "$BASEPATH" ] && cmpr $BASEPATH $MODPATH/stock.apk; then if [ -n "$BASEPATH" ] && cmpr $BASEPATH $MODPATH/__PKGNAME.apk; then
ui_print "* Installed __PKGNAME and module stock.apk are identical" ui_print "* Installed __PKGNAME and module APKs are identical"
ui_print "* Skipping stock APK installation" ui_print "* Skipping stock APK installation"
else else
ui_print "* Installing/Updating stock __PKGNAME" ui_print "* Updating stock __PKGNAME"
set_perm $MODPATH/stock.apk 1000 1000 644 u:object_r:apk_data_file:s0 set_perm $MODPATH/__PKGNAME.apk 1000 1000 644 u:object_r:apk_data_file:s0
if ! op=$(pm install -r -d $MODPATH/stock.apk 2>&1); then if ! op=$(pm install -i com.android.vending -r -d $MODPATH/__PKGNAME.apk 2>&1); then
ui_print "ERROR: APK installation failed!" ui_print "ERROR: APK installation failed!"
abort "${op}" abort "${op}"
fi fi
BASEPATH=$(basepath) BASEPATH=$(basepath)
if [ -z "$BASEPATH" ]; then
abort "ERROR: install __PKGNAME manually and reflash the module"
fi
fi fi
ui_print "* Patching __PKGNAME (v__MDVRSN) on the fly" ui_print "* Patching __PKGNAME (v__MDVRSN)"
if ! op=$(LD_LIBRARY_PATH=$XDELTA_PRELOAD xdelta -d -f -s $BASEPATH $MODPATH/rvc.xdelta $MODPATH/base.apk 2>&1); then if ! op=$(LD_LIBRARY_PATH=$XDELTA_PRELOAD xdelta -d -f -s $BASEPATH $MODPATH/rv.patch $MODPATH/base.apk 2>&1); then
ui_print "ERROR: Patching failed!" ui_print "ERROR: Patching failed!"
abort "$op" abort "$op"
fi fi
@ -53,8 +56,9 @@ if ! op=$(mount -o bind $MODPATH/base.apk $BASEPATH 2>&1); then
ui_print "ERROR: Mount failed!" ui_print "ERROR: Mount failed!"
abort "$op" abort "$op"
fi fi
rm -r $MODPATH/bin $MODPATH/lib $MODPATH/rv.patch $MODPATH/__PKGNAME.apk
am force-stop __PKGNAME
ui_print "* Done"
ui_print " by j-hc (github.com/j-hc)" ui_print " by j-hc (github.com/j-hc)"
ui_print " " ui_print " "
rm -r $MODPATH/bin $MODPATH/lib $MODPATH/rvc.xdelta $MODPATH/stock.apk
am force-stop __PKGNAME

View File

@ -1,6 +1,5 @@
#!/system/bin/sh #!/system/bin/sh
grep __PKGNAME /proc/mounts | while read -r line; do grep __PKGNAME /proc/self/mountinfo | while read -r line; do
line=${line#*' '} mount_path=$(echo "$line" | cut -d' ' -f5)
line=${line%%' '*} umount -l "$mount_path"
umount -l ${line%%\\*}
done done

View File

@ -85,7 +85,7 @@ reset_template() {
echo "# utils" >"${MODULE_TEMPLATE_DIR}/post-fs-data.sh" echo "# utils" >"${MODULE_TEMPLATE_DIR}/post-fs-data.sh"
echo "# utils" >"${MODULE_TEMPLATE_DIR}/customize.sh" echo "# utils" >"${MODULE_TEMPLATE_DIR}/customize.sh"
echo "# utils" >"${MODULE_TEMPLATE_DIR}/module.prop" echo "# utils" >"${MODULE_TEMPLATE_DIR}/module.prop"
rm -rf ${MODULE_TEMPLATE_DIR}/rvc.xdelta ${MODULE_TEMPLATE_DIR}/*.apk rm -rf ${MODULE_TEMPLATE_DIR}/rv.patch ${MODULE_TEMPLATE_DIR}/*.apk
mkdir -p ${MODULE_TEMPLATE_DIR}/lib/arm ${MODULE_TEMPLATE_DIR}/lib/arm64 ${MODULE_TEMPLATE_DIR}/bin/arm ${MODULE_TEMPLATE_DIR}/bin/arm64 mkdir -p ${MODULE_TEMPLATE_DIR}/lib/arm ${MODULE_TEMPLATE_DIR}/lib/arm64 ${MODULE_TEMPLATE_DIR}/bin/arm ${MODULE_TEMPLATE_DIR}/bin/arm64
} }
@ -133,9 +133,9 @@ patch_apk() {
} }
zip_module() { zip_module() {
local xdelta_patch=$1 module_name=$2 stock_apk=$3 local xdelta_patch=$1 module_name=$2 stock_apk=$3 pkg_name=$4
cp -f "$xdelta_patch" "${MODULE_TEMPLATE_DIR}/rvc.xdelta" cp -f "$xdelta_patch" "${MODULE_TEMPLATE_DIR}/rv.patch"
cp -f "$stock_apk" "${MODULE_TEMPLATE_DIR}/stock.apk" cp -f "$stock_apk" "${MODULE_TEMPLATE_DIR}/${pkg_name}.apk"
cd "$MODULE_TEMPLATE_DIR" || exit 1 cd "$MODULE_TEMPLATE_DIR" || exit 1
zip -FSr "../${BUILD_DIR}/${module_name}" . zip -FSr "../${BUILD_DIR}/${module_name}" .
cd .. cd ..
@ -221,7 +221,7 @@ build_rv() {
local module_output="${args[app_name],,}-revanced-magisk-v${version}-${args[arch]}.zip" local module_output="${args[app_name],,}-revanced-magisk-v${version}-${args[arch]}.zip"
local xdelta="${TEMP_DIR}/${args[app_name],,}-revanced-v${version}-${args[arch]}.xdelta" local xdelta="${TEMP_DIR}/${args[app_name],,}-revanced-v${version}-${args[arch]}.xdelta"
xdelta_patch "$stock_apk" "$patched_apk" "$xdelta" xdelta_patch "$stock_apk" "$patched_apk" "$xdelta"
zip_module "$xdelta" "$module_output" "$stock_apk" zip_module "$xdelta" "$module_output" "$stock_apk" "${args[pkg_name]}"
echo "Built ${args[app_name]}: '${BUILD_DIR}/${module_output}'" echo "Built ${args[app_name]}: '${BUILD_DIR}/${module_output}'"
} }