mirror of
https://github.com/j-hc/revanced-magisk-module.git
synced 2025-04-29 22:24:34 +02:00
update apkmirror parsing
This commit is contained in:
parent
ee7e02a3a3
commit
e5b7f4789b
@ -24,7 +24,7 @@ yes "" | pkg update -y && pkg install -y git wget openssl jq openjdk-17 zip
|
||||
|
||||
pr "Cloning revanced-magisk-module repository..."
|
||||
if [ -d revanced-magisk-module ]; then
|
||||
if ask "Directory revanced-magisk-module already exists. Do you want to clone the repo again? [y/n]"; then
|
||||
if ask "Directory revanced-magisk-module already exists. Do you want to clone the repo again and overwrite your config? [y/n]"; then
|
||||
rm -rf revanced-magisk-module
|
||||
git clone https://github.com/j-hc/revanced-magisk-module --recurse --depth 1
|
||||
sed -i '/^enabled.*/d; /^\[.*\]/a enabled = false' revanced-magisk-module/config.toml
|
||||
@ -33,7 +33,10 @@ else
|
||||
git clone https://github.com/j-hc/revanced-magisk-module --recurse --depth 1
|
||||
sed -i '/^enabled.*/d; /^\[.*\]/a enabled = false' revanced-magisk-module/config.toml
|
||||
fi
|
||||
cd revanced-magisk-module
|
||||
|
||||
if [ ! -f build.sh ]; then
|
||||
cd revanced-magisk-module
|
||||
fi
|
||||
|
||||
if ask "Do you want to open the config.toml for customizations? [y/n]"; then
|
||||
nano config.toml
|
||||
@ -47,8 +50,10 @@ fi
|
||||
|
||||
cd build
|
||||
pr "Ask for storage permission"
|
||||
until ls /sdcard >/dev/null 2>&1; do
|
||||
until
|
||||
yes | termux-setup-storage >/dev/null 2>&1
|
||||
ls /sdcard >/dev/null 2>&1
|
||||
do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
@ -59,7 +64,7 @@ for op in *; do
|
||||
cp -f "${PWD}/${op}" ~/storage/downloads/revanced-magisk-module/"${op}"
|
||||
done
|
||||
|
||||
pr "Outputs are available in /sdcard/Download folder"
|
||||
pr "Outputs are available in /sdcard/Download/revanced-magisk-module folder"
|
||||
am start -a android.intent.action.VIEW -d file:///sdcard/Download/revanced-magisk-module -t resource/folder
|
||||
sleep 2
|
||||
am start -a android.intent.action.VIEW -d file:///sdcard/Download/revanced-magisk-module -t resource/folder
|
||||
|
@ -65,6 +65,7 @@ uptodown-dlurl = "https://spotify.en.uptodown.com/android"
|
||||
[Citra]
|
||||
enabled = false
|
||||
apkmirror-dlurl = "https://www.apkmirror.com/apk/citra-emulator/citra-emulator/"
|
||||
arch = "arm64-v8a"
|
||||
|
||||
[Backdrops]
|
||||
enabled = false
|
||||
|
46
utils.sh
46
utils.sh
@ -82,6 +82,13 @@ get_prebuilts() {
|
||||
mkdir -p ${MODULE_TEMPLATE_DIR}/bin/arm64 ${MODULE_TEMPLATE_DIR}/bin/arm
|
||||
dl_if_dne "${MODULE_TEMPLATE_DIR}/bin/arm64/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-arm64-v8a"
|
||||
dl_if_dne "${MODULE_TEMPLATE_DIR}/bin/arm/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-armeabi-v7a"
|
||||
|
||||
HTMLQ="${TEMP_DIR}/htmlq"
|
||||
if [ ! -f "${TEMP_DIR}/htmlq" ]; then
|
||||
req "https://github.com/mgdm/htmlq/releases/latest/download/htmlq-x86_64-linux.tar.gz" "${TEMP_DIR}/htmlq.tar.gz"
|
||||
tar -xf "${TEMP_DIR}/htmlq.tar.gz" -C "$TEMP_DIR"
|
||||
rm "${TEMP_DIR}/htmlq.tar.gz"
|
||||
fi
|
||||
}
|
||||
|
||||
abort() { echo >&2 -e "\033[0;31mABORT: $1\033[0m" && exit 1; }
|
||||
@ -99,6 +106,7 @@ set_prebuilts() {
|
||||
log "Patches: ${RV_PATCHES_JAR#"$PREBUILTS_DIR/"}"
|
||||
RV_PATCHES_JSON=$(find "$PREBUILTS_DIR" -maxdepth 1 -name "patches-*.json" | tail -n1)
|
||||
[ "$RV_PATCHES_JSON" ] || abort "patches.json not found"
|
||||
HTMLQ="${TEMP_DIR}/htmlq"
|
||||
}
|
||||
|
||||
req() { wget -nv -O "$2" --header="$WGET_HEADER" "$1"; }
|
||||
@ -148,17 +156,24 @@ dl_if_dne() {
|
||||
|
||||
# -------------------- apkmirror --------------------
|
||||
dl_apkmirror() {
|
||||
local url=$1 version=${2// /-} regexp=$3 output=$4
|
||||
if [ "${DRYRUN:-}" = true ]; then
|
||||
echo "#" >"$output"
|
||||
return
|
||||
fi
|
||||
local resp
|
||||
local url=$1 version=${2// /-} output=$3 arch=$4
|
||||
local resp node app_table archalt dlurl=""
|
||||
[ "$arch" = universal ] && archalt="arm64-v8a + armeabi-v7a" || archalt=$arch
|
||||
url="${url}/${url##*/}-${version//./-}-release/"
|
||||
resp=$(req "$url" -) || return 1
|
||||
url="https://www.apkmirror.com$(echo "$resp" | tr '\n' ' ' | sed -n "s/href=\"/@/g; s;.*${regexp}.*;\1;p")"
|
||||
[ "$url" != https://www.apkmirror.com ] || return 1
|
||||
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
|
||||
for ((n = 2; n < 50; n++)); do
|
||||
node=$($HTMLQ "div.table-row:nth-child($n)" -r "span.signature:nth-child(n)" <<<"$resp")
|
||||
if [ -z "$node" ]; then break; fi
|
||||
app_table=$($HTMLQ --text --ignore-whitespace <<<"$node")
|
||||
if [[ "$(sed -n 8p <<<"$app_table")" = nodpi &&
|
||||
"$(sed -n 3p <<<"$app_table")" = APK &&
|
||||
("$(sed -n 6p <<<"$app_table")" = "$arch" || "$(sed -n 6p <<<"$app_table")" = "$archalt") ]]; then
|
||||
dlurl=https://www.apkmirror.com$($HTMLQ --attribute href "div:nth-child(1) > a:nth-child(1)" <<<"$node")
|
||||
break
|
||||
fi
|
||||
done
|
||||
[ -z "$dlurl" ] && return 1
|
||||
url="https://www.apkmirror.com$(req "$dlurl" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
|
||||
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
|
||||
req "$url" "$output"
|
||||
}
|
||||
@ -186,7 +201,7 @@ get_apkmirror_pkg_name() { req "$1" - | sed -n 's;.*id=\(.*\)" class="accent_col
|
||||
|
||||
# -------------------- uptodown --------------------
|
||||
get_uptodown_resp() { req "${1}/versions" -; }
|
||||
get_uptodown_vers() { sed -n 's;.*version>\(.*\)<\/span>$;\1;p' <<<"$1"; }
|
||||
get_uptodown_vers() { sed -n 's;.*version">\(.*\)</span>$;\1;p' <<<"$1"; }
|
||||
dl_uptodown() {
|
||||
local uptwod_resp=$1 version=$2 output=$3
|
||||
local url
|
||||
@ -276,15 +291,16 @@ build_rv() {
|
||||
if [ ! -f "$stock_apk" ]; then
|
||||
if [ "$dl_from" = apkmirror ]; then
|
||||
pr "Downloading '${app_name}' from APKMirror"
|
||||
local apkm_arch
|
||||
if [ "$arch" = "all" ]; then
|
||||
apkmirror_regex="APK</span>[^@]*@\([^#]*\)"
|
||||
apkm_arch="universal"
|
||||
elif [ "$arch" = "arm64-v8a" ]; then
|
||||
apkmirror_regex='arm64-v8a</div>[^@]*@\([^"]*\)'
|
||||
apkm_arch="arm64-v8a"
|
||||
elif [ "$arch" = "arm-v7a" ]; then
|
||||
apkmirror_regex='armeabi-v7a</div>[^@]*@\([^"]*\)'
|
||||
apkm_arch="armeabi-v7a"
|
||||
fi
|
||||
if ! dl_apkmirror "${args[apkmirror_dlurl]}" "$version" "$apkmirror_regex" "$stock_apk"; then
|
||||
abort "ERROR: Could not find any release of '${app_name}' with version '${version}' from APKMirror"
|
||||
if ! dl_apkmirror "${args[apkmirror_dlurl]}" "$version" "$stock_apk" "$apkm_arch"; then
|
||||
abort "ERROR: Could not find any release of '${app_name}' with version '${version}' and arch '${apkm_arch}' from APKMirror"
|
||||
fi
|
||||
elif [ "$dl_from" = uptodown ]; then
|
||||
pr "Downloading '${app_name}' from Uptodown"
|
||||
|
Loading…
x
Reference in New Issue
Block a user