From c9e8c546f8a300b3bcb9402bcc84585fa8e4a46e Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Mon, 14 Aug 2023 11:17:01 +0200 Subject: [PATCH] Add build-apps patch Signed-off-by: Nikolaos Karaolidis --- Dockerfile | 6 +-- patches/0001-build-apps.patch | 82 +++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 patches/0001-build-apps.patch diff --git a/Dockerfile b/Dockerfile index 5c0023d..b4e4e30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,10 +7,8 @@ WORKDIR /app COPY config.toml config.toml COPY options.json options.json -RUN sed -i 's/j-hc\/revanced-cli/revanced\/revanced-cli/' utils.sh -RUN sed -i 's/--keystore=ks\.keystore/--keystore=ks\.keystore --options=options.json/' utils.sh -RUN sed -i 's/--rip-lib x86_64 --rip-lib x86 //' utils.sh -RUN sed -i 's/$(nproc)/2/g' build.sh +COPY patches/ patches/ +RUN patch -p1 < patches/0001-build-apps.patch RUN groupadd -g 1000 revanced RUN useradd -u 1000 -g revanced revanced diff --git a/patches/0001-build-apps.patch b/patches/0001-build-apps.patch new file mode 100644 index 0000000..6d227b2 --- /dev/null +++ b/patches/0001-build-apps.patch @@ -0,0 +1,82 @@ +diff --git a/build.sh b/build.sh +index b4e09f0..14cc185 100755 +--- a/build.sh ++++ b/build.sh +@@ -28,7 +28,7 @@ if [ "$BUILD_MINDETACH_MODULE" = true ] && [ ! -f "mindetach-magisk/mindetach/de + BUILD_MINDETACH_MODULE=false + fi + if ! PARALLEL_JOBS=$(toml_get "$main_config_t" parallel-jobs); then +- if [ "$OS" = Android ]; then PARALLEL_JOBS=1; else PARALLEL_JOBS=$(nproc); fi ++ if [ "$OS" = Android ]; then PARALLEL_JOBS=1; else PARALLEL_JOBS=2; fi + fi + LOGGING_F=$(toml_get "$main_config_t" logging-to-file) && vtf "$LOGGING_F" "logging-to-file" || LOGGING_F=false + DEF_PATCHES_VER=$(toml_get "$main_config_t" patches-version) || DEF_PATCHES_VER="" +diff --git a/utils.sh b/utils.sh +index dec04d5..4052600 100755 +--- a/utils.sh ++++ b/utils.sh +@@ -53,7 +53,7 @@ get_rv_prebuilts() { + pr "Getting prebuilts (${patches_src%/*})" >&2 + local rv_cli_url rv_integrations_url rv_patches rv_patches_changelog rv_patches_dl rv_patches_url rv_patches_json + +- rv_cli_url=$(gh_req "https://api.github.com/repos/j-hc/revanced-cli/releases/latest" - | json_get 'browser_download_url') || return 1 ++ rv_cli_url=$(gh_req "https://api.github.com/repos/revanced/revanced-cli/releases/latest" - | json_get 'browser_download_url') || return 1 + local rv_cli_jar="${TEMP_DIR}/jhc-rv/${rv_cli_url##*/}" + echo "CLI: $(cut -d/ -f4 <<<"$rv_cli_url")/$(cut -d/ -f9 <<<"$rv_cli_url") " >"$patches_dir/changelog.md" + +@@ -115,7 +115,7 @@ get_prebuilts() { + + _req() { + if [ "$2" = - ]; then +- wget -nv -O "$2" --header="$3" "$1" ++ wget -nv -O "$2" --header="$3" "$1" || return 1 + else + local dlp + dlp="$(dirname "$2")/tmp.$(basename "$2")" +@@ -123,7 +123,7 @@ _req() { + while [ -f "$dlp" ]; do sleep 1; done + return + fi +- wget -nv -O "$dlp" --header="$3" "$1" ++ wget -nv -O "$dlp" --header="$3" "$1" || return 1 + mv -f "$dlp" "$2" + fi + } +@@ -182,7 +182,9 @@ dl_apkmirror() { + return 0 + } + local resp node app_table dlurl="" +- [ "$arch" = universal ] && apparch=(universal noarch 'arm64-v8a + armeabi-v7a') || apparch=("$arch") ++ if [ "$arch" = universal ]; then apparch=(universal noarch 'arm64-v8a + armeabi-v7a'); ++ elif [ "$arch" = arm64-v8a ]; then apparch=(arm64-v8a 'arm64-v8a + x86_64'); ++ else apparch=("$arch"); fi + url="${url}/${url##*/}-${version//./-}-release/" + resp=$(req "$url" -) || return 1 + for ((n = 1; n < 40; n++)); do +@@ -192,14 +194,14 @@ dl_apkmirror() { + if [ "$(sed -n 3p <<<"$app_table")" = "$apkorbundle" ] && { [ "$apkorbundle" = BUNDLE ] || + { [ "$apkorbundle" = APK ] && [ "$(sed -n 6p <<<"$app_table")" = "$dpi" ] && + isoneof "$(sed -n 4p <<<"$app_table")" "${apparch[@]}"; }; }; then +- dlurl=https://www.apkmirror.com$($HTMLQ --attribute href "div:nth-child(1) > a:nth-child(1)" <<<"$node") ++ dlurl=$($HTMLQ --base https://www.apkmirror.com --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" - | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p' | tail -1)" ++ url=$(req "$dlurl" - | $HTMLQ --base https://www.apkmirror.com --attribute href "a.btn") + if [ "$apkorbundle" = BUNDLE ] && [[ "$url" != *"&forcebaseapk=true" ]]; then url="${url}&forcebaseapk=true"; fi +- url="https://www.apkmirror.com$(req "$url" - | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')" ++ url=$(req "$url" - | $HTMLQ --base https://www.apkmirror.com --attribute href "span > a[rel = nofollow]") + req "$url" "$output" + } + get_apkmirror_vers() { +@@ -252,7 +254,7 @@ get_apkmonk_pkg_name() { grep -oP '.*apkmonk\.com\/app\/\K([,\w,\.]*)' <<<"$1"; + patch_apk() { + local stock_input=$1 patched_apk=$2 patcher_args=$3 rv_cli_jar=$4 rv_patches_jar=$5 + declare -r tdir=$(mktemp -d -p $TEMP_DIR) +- local cmd="java -jar $rv_cli_jar --rip-lib x86_64 --rip-lib x86 --temp-dir=$tdir -c -a $stock_input -o $patched_apk -b $rv_patches_jar --keystore=ks.keystore $patcher_args" ++ local cmd="java -jar $rv_cli_jar --temp-dir=$tdir -c -a $stock_input -o $patched_apk -b $rv_patches_jar --keystore=ks.keystore --options=options.json $patcher_args" + if [ "$OS" = Android ]; then cmd+=" --custom-aapt2-binary=${TEMP_DIR}/aapt2"; fi + pr "$cmd" + if [ "${DRYRUN:-}" = true ]; then