mbbpatch/MBCPApp/parse.sh
Cuynu e4c15802b0 feat: partially move to apkeditor (1/2)
MB server-side now enforcing checksum checks, omehow it also make app doesn't work with GW934 error when logging in after compiled with apktool

Signed-off-by: Cuynu <cuynu@proton.me>
2026-03-16 02:11:24 +07:00

74 lines
1.7 KiB
Shell

#!/usr/bin/env bash
# shellcheck disable=SC2295
# vim: expandtab tabstop=4 shiftwidth=4
[ -n "$DIRPATH" ] || {
echo 'ERROR : $DIRPATH not set, script ran standalone?'
exit 1
}
. "$DIRPATH/common.sh"
echo '#!/usr/bin/env bash
[ -n "$DIRPATH" ] || {
err "DIRPATH not set, script ran standalone?"
exit 1
}
[ -d "$DIRPATH"/mbapk/mbapk_unpacked ] || {
err "[mbapk_unpacked] folder not found, please unpack APK first !"
exit 127
}
. "$DIRPATH/common.sh"
applyPatch() {
good "Applying patch [$opt]"
if bash "$2" ; then
good "Patch [$opt] applied successfully"
echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/root/assets/mbcp_info/$1.inf"
else
err "Patch [$opt] failed"
fi
}
echo "--------------------------
Patch list for MBCPApp :"
PS3="Select patch options : "' > patch.sh
for f in patches/*.sh ; do
# name without suffix and prefix
n="$(rstrip "$f" '.sh')"
n="$(lstrip "$n" 'patches/')"
# patch infos
pname="$(getvar "2" "# PATCHNAME: " "$f")"
maxver="$(getvar "3" "# MAXVER: " "$f")"
minver="$(getvar "4" "# MINVER: " "$f")"
pname=${pname//[^a-zA-Z0-9_& ]/}
minver="${minver//[^0-9.]/}"
maxver="${maxver//[^0-9.]/}"
#echo "$f|$pname|$minver|$maxver"
[ -n "$pname" ] || {
warn "[parser] $f missing PATCHNAME, not adding"
continue
}
opts_arr+=" '$pname'"
append+=" '$pname') applyPatch $n $f ;;
"
done
opts_arr+=" 'Exit'"
#echo "$opts_arr"
echo "select opt in $opts_arr" >> patch.sh
echo 'do
case "$opt" in' >> patch.sh
echo "$append
'Exit' ) exit ;;
esac
done" >> patch.sh