From 2b493f8e746e91623de747371431f6f4937643f8 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Tue, 30 Aug 2022 21:59:26 +0800 Subject: [PATCH 1/6] Fix offline mode --- scripts/build.sh | 126 +++++++++++++++++++++++++---------------------- scripts/run.sh | 4 +- 2 files changed, 69 insertions(+), 61 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index d5dbe8f636..04780d6359 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -34,12 +34,6 @@ DOWNLOAD_DIR=../download DOWNLOAD_CONF_NAME=download.list OUTPUT_DIR=../output MOUNT_DIR="$WORK_DIR"/system -CLEAN_DOWNLOAD_WSA=0 -CLEAN_DOWNLOAD_MAGISK=0 -CLEAN_DOWNLOAD_GAPPS=0 -REMOVE_AMAZON="keep" -COMPRESS_OUTPUT="no" -OFFLINE=0 umount_clean(){ echo "Cleanup Work Directory" if [ -d "$MOUNT_DIR" ]; then @@ -59,13 +53,13 @@ umount_clean(){ clean_download(){ if [ -d "$DOWNLOAD_DIR" ]; then echo "Cleanup Download Directory" - if [ "$CLEAN_DOWNLOAD_WSA" = "1" ]; then + if [ "$CLEAN_DOWNLOAD_WSA" ]; then rm -f "${WSA_ZIP_PATH:?}" fi - if [ "$CLEAN_DOWNLOAD_MAGISK" = "1" ]; then + if [ "$CLEAN_DOWNLOAD_MAGISK" ]; then rm -f "${MAGISK_PATH:?}" fi - if [ "$CLEAN_DOWNLOAD_GAPPS" = "1" ]; then + if [ "$CLEAN_DOWNLOAD_GAPPS" ]; then rm -f "${GAPPS_PATH:?}" fi fi @@ -84,22 +78,33 @@ function Gen_Rand_Str { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "$1" | head -n 1 } + +default(){ + ARCH=x64 + RELEASE_TYPE=retail + MAGISK_VER=stable + GAPPS_BRAND=OpenGApps + GAPPS_VARIANT=pico + ROOT_SOL=magisk +} + usage(){ - if [ -n "$1" ]; then + default + if [ "$1" ]; then echo "Unknown parameter: $1" fi echo "Usage: - --arch - --release-type - --magisk-ver - --gapps-brand - --gapps-variant - --root-sol - --remove-amazon - --compress - --offline - --magisk-custom - --debug + --arch Architecture of WSA, x64 or arm64, default: $ARCH + --release-type Release type of WSA, retail or debug, default: $RELEASE_TYPE + --magisk-ver Magisk version, stable or canary, default: $MAGISK_VER + --gapps-brand GApps brand, OpenGApps or MindTheGApps, default: $GAPPS_BRAND + --gapps-variant GApps variant, pico or full, etc...., default: $GAPPS_VARIANT + --root-sol Root solution, magisk or null, default: $ROOT_SOL + --remove-amazon Remove Amazon from the system, default: false + --compress Compress the WSA, default: false + --offline Build WSA offline, default: false + --magisk-custom Install custom Magisk, default: false + --debug Debug build mode, default: false " exit 1 } @@ -116,8 +121,11 @@ ARGUMENT_LIST=( "offline" "magisk-custom" "debug" + "help" ) +default + opts=$(getopt \ --longoptions "$(printf "%s," "${ARGUMENT_LIST[@]}")" \ --name "$(basename "$0")" \ @@ -128,38 +136,37 @@ opts=$(getopt \ eval set --"$opts" while [[ $# -gt 0 ]]; do case "$1" in - --arch ) ARCH="$2"; shift 2 ;; - --release-type ) RELEASE_TYPE="$2"; shift 2 ;; - --magisk-ver ) MAGISK_VER="$2"; shift 2 ;; - --gapps-brand ) GAPPS_BRAND="$2"; shift 2 ;; - --gapps-variant ) GAPPS_VARIANT="$2"; shift 2 ;; - --remove-amazon ) REMOVE_AMAZON="remove"; shift ;; - --root-sol ) ROOT_SOL="$2"; shift 2 ;; - --compress ) COMPRESS_OUTPUT="yes"; shift ;; - --offline ) OFFLINE="1"; shift ;; - --debug ) DEBUG="1"; shift ;; - --magisk-custom ) CUSTOM_MAGISK="1"; shift ;; - -- ) shift; break;; - ? ) usage "$2"; shift ;; - * ) break ;; + --arch ) ARCH="$2"; shift 2 ;; + --release-type ) RELEASE_TYPE="$2"; shift 2 ;; + --magisk-ver ) MAGISK_VER="$2"; shift 2 ;; + --gapps-brand ) GAPPS_BRAND="$2"; shift 2 ;; + --gapps-variant ) GAPPS_VARIANT="$2"; shift 2 ;; + --root-sol ) ROOT_SOL="$2"; shift 2 ;; + --remove-amazon ) REMOVE_AMAZON="remove"; shift ;; + --compress ) COMPRESS_OUTPUT="yes"; shift ;; + --offline ) OFFLINE="on"; shift ;; + --magisk-custom ) CUSTOM_MAGISK="debug"; MAGISK_VER=$CUSTOM_MAGISK shift ;; + --debug ) DEBUG="on"; shift ;; + --help ) usage; shift ;; + -- ) shift; break;; + ? ) usage "$2"; break ;; esac done -declare -A PARA_CHECK_LIST=([ARCH]="$ARCH" [RELEASE_TYPE]="$RELEASE_TYPE" [MAGISK_VER]="$MAGISK_VER" [GAPPS_VARIANT]="$GAPPS_VARIANT" [REMOVE_AMAZON]="$REMOVE_AMAZON" [ROOT_SOL]="$ROOT_SOL") -for i in "${PARA_CHECK_LIST[@]}"; -do - if [ -z "$i" ]; then +declare -A PARA_CHECK_LIST=([ARCH]="$ARCH" [RELEASE_TYPE]="$RELEASE_TYPE" [MAGISK_VER]="$MAGISK_VER" [GAPPS_VARIANT]="$GAPPS_VARIANT" [ROOT_SOL]="$ROOT_SOL") +for i in "${PARA_CHECK_LIST[@]}"; do + if [ -z "${i+x}" ]; then usage fi done -echo -e "build: ARCH=$ARCH\nRELEASE_TYPE=$RELEASE_TYPE\nMAGISK_VER=$MAGISK_VER\nGAPPS_VARIANT=$GAPPS_VARIANT\nREMOVE_AMAZON=$REMOVE_AMAZON\nROOT_SOL=$ROOT_SOL\nCOMPRESS_OUTPUT=$COMPRESS_OUTPUT" +echo -e "build: ARCH=$ARCH\nRELEASE_TYPE=$RELEASE_TYPE\nMAGISK_VER=$MAGISK_VER\nGAPPS_VARIANT=$GAPPS_VARIANT\nROOT_SOL=$ROOT_SOL" declare -A RELEASE_TYPE_MAP=(["retail"]="Retail" ["release preview"]="RP" ["insider slow"]="WIS" ["insider fast"]="WIF") WSA_ZIP_PATH=$DOWNLOAD_DIR/wsa-$ARCH-${RELEASE_TYPE_MAP[$RELEASE_TYPE]}.zip -vclibs_PATH=vclibs-"$ARCH".appx -xaml_PATH=xaml-"$ARCH".appx +vclibs_PATH=$DOWNLOAD_DIR/vclibs-"$ARCH".appx +xaml_PATH=$DOWNLOAD_DIR/xaml-"$ARCH".appx MAGISK_PATH=$DOWNLOAD_DIR/magisk-$MAGISK_VER.zip if [ "$GAPPS_BRAND" = "OpenGApps" ]; then GAPPS_PATH="$DOWNLOAD_DIR"/OpenGApps-$ARCH-$GAPPS_VARIANT.zip @@ -167,11 +174,11 @@ else GAPPS_PATH="$DOWNLOAD_DIR"/MindTheGapps-"$ARCH".zip fi -if [ "$OFFLINE" != "1" ]; then +if [ -z "${OFFLINE+x}" ]; then trap 'rm -f -- "${DOWNLOAD_DIR:?}/${DOWNLOAD_CONF_NAME}"' EXIT echo "Generate Download Links" python3 generateWSALinks.py "$ARCH" "$RELEASE_TYPE" "$DOWNLOAD_DIR" "$DOWNLOAD_CONF_NAME" || abort - if [ "$CUSTOM_MAGISK" != "1" ]; then + if [ -z "${CUSTOM_MAGISK+x}" ]; then python3 generateMagiskLink.py "$MAGISK_VER" "$DOWNLOAD_DIR" "$DOWNLOAD_CONF_NAME" || abort fi if [ "$GAPPS_VARIANT" != 'none' ] && [ "$GAPPS_VARIANT" != '' ]; then @@ -186,21 +193,20 @@ if [ "$OFFLINE" != "1" ]; then exit 1 fi else - if [ ! -f "$WSA_ZIP_PATH" ] || [ ! -f "$xaml_PATH" ] || [ ! -f "$vclibs_PATH" ]; then - echo "Offline mode: missing WSA files." - OFFLINE_ERR="1" - fi - if [ ! -f "$MAGISK_PATH" ]; then - echo "Offline mode: missing Magisk $MAGISK_VER file." - OFFLINE_ERR="1" - fi + declare -A FILES_CHECK_LIST=([WSA_ZIP_PATH]="$WSA_ZIP_PATH" [xaml_PATH]="$xaml_PATH" [vclibs_PATH]="$vclibs_PATH" [MAGISK_PATH]="$MAGISK_PATH") + for i in "${FILES_CHECK_LIST[@]}"; do + if [ ! -f "$i" ]; then + echo "Offline mode: missing [$i]." + OFFLINE_ERR="1" + fi + done if [ "$GAPPS_VARIANT" != 'none' ] && [ "$GAPPS_VARIANT" != '' ]; then if [ ! -f "$GAPPS_PATH" ]; then - echo "Offline mode: missing $GAPPS_BRAND file." + echo "Offline mode: missing [$GAPPS_PATH]." OFFLINE_ERR="1" fi fi - if [ -n "$OFFLINE_ERR" ]; then + if [ "$OFFLINE_ERR" ]; then echo "Offline mode: Some files are missing, please disable offline mode." exit 1 fi @@ -231,7 +237,7 @@ if [ -f "$MAGISK_PATH" ]; then CLEAN_DOWNLOAD_MAGISK=1 abort fi -elif [ "$CUSTOM_MAGISK" != "1" ]; then +elif [ -z "${CUSTOM_MAGISK+x}" ]; then echo "The Magisk zip package does not exist, is the download incomplete?" exit 1 else @@ -318,7 +324,7 @@ sudo mount -o loop "$WORK_DIR"/wsa/"$ARCH"/product.img "$MOUNT_DIR"/product || a sudo mount -o loop "$WORK_DIR"/wsa/"$ARCH"/system_ext.img "$MOUNT_DIR"/system_ext || abort echo -e "done\n" -if [ "$REMOVE_AMAZON" = 'remove' ]; then +if [ "$REMOVE_AMAZON" ]; then echo "Remove Amazon AppStore" find "${MOUNT_DIR:?}"/product/{etc/permissions,etc/sysconfig,framework,priv-app} | grep -e amazon -e venezia | sudo xargs rm -rf echo -e "done\n" @@ -531,7 +537,7 @@ echo -e "Shrink images done\n" echo "Remove signature and add scripts" sudo rm -rf "${WORK_DIR:?}"/wsa/"$ARCH"/\[Content_Types\].xml "$WORK_DIR"/wsa/"$ARCH"/AppxBlockMap.xml "$WORK_DIR"/wsa/"$ARCH"/AppxSignature.p7x "$WORK_DIR"/wsa/"$ARCH"/AppxMetadata || abort -cp "$DOWNLOAD_DIR"/"$vclibs_PATH" "$DOWNLOAD_DIR"/"$xaml_PATH" "$WORK_DIR"/wsa/"$ARCH" || abort +cp "$vclibs_PATH" "$xaml_PATH" "$WORK_DIR"/wsa/"$ARCH" || abort tee "$WORK_DIR"/wsa/"$ARCH"/Install.ps1 <&2 exit 1 @@ -68,7 +69,8 @@ RELEASE_TYPE=$( 'insider slow' "Beta Channel" 'off' \ 'insider fast' "Dev Channel" 'off' ) -if [ "$CUSTOM_MAGISK" != "1" ]; then + +if [ -z "${CUSTOM_MAGISK+x}" ]; then MAGISK_VER=$( Radiolist '([title]="Magisk version" [default]="stable")' \ From 73cb428d1bb97b36c701e3631ff06c80abb88721 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Tue, 30 Aug 2022 23:47:09 +0800 Subject: [PATCH 2/6] Check input --- scripts/build.sh | 99 +++++++++++++++++++++++++++++++------ scripts/generateWSALinks.py | 9 ++-- 2 files changed, 88 insertions(+), 20 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 04780d6359..10b487aed3 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -47,8 +47,10 @@ umount_clean(){ sudo umount "$MOUNT_DIR"/system_ext fi sudo umount "$MOUNT_DIR" + sudo rm -rf "${WORK_DIR:?}" + else + rm -rf "${WORK_DIR:?}" fi - sudo rm -rf "${WORK_DIR:?}" } clean_download(){ if [ -d "$DOWNLOAD_DIR" ]; then @@ -91,22 +93,22 @@ default(){ usage(){ default if [ "$1" ]; then - echo "Unknown parameter: $1" + echo "ERROR: $1" fi echo "Usage: --arch Architecture of WSA, x64 or arm64, default: $ARCH - --release-type Release type of WSA, retail or debug, default: $RELEASE_TYPE + --release-type Release type of WSA, retail, RP (Release Preview), WIS (Insider Slow) or WIF (Insider Fast), default: $RELEASE_TYPE --magisk-ver Magisk version, stable or canary, default: $MAGISK_VER --gapps-brand GApps brand, OpenGApps or MindTheGApps, default: $GAPPS_BRAND --gapps-variant GApps variant, pico or full, etc...., default: $GAPPS_VARIANT - --root-sol Root solution, magisk or null, default: $ROOT_SOL + --root-sol Root solution, magisk or none, default: $ROOT_SOL --remove-amazon Remove Amazon from the system, default: false --compress Compress the WSA, default: false --offline Build WSA offline, default: false --magisk-custom Install custom Magisk, default: false --debug Debug build mode, default: false " - exit 1 + abort } ARGUMENT_LIST=( @@ -131,7 +133,7 @@ opts=$(getopt \ --name "$(basename "$0")" \ --options "" \ -- "$@" -) +) || abort eval set --"$opts" while [[ $# -gt 0 ]]; do @@ -149,22 +151,87 @@ while [[ $# -gt 0 ]]; do --debug ) DEBUG="on"; shift ;; --help ) usage; shift ;; -- ) shift; break;; - ? ) usage "$2"; break ;; + ? ) usage "Unknown parameter: $2"; break ;; esac done -declare -A PARA_CHECK_LIST=([ARCH]="$ARCH" [RELEASE_TYPE]="$RELEASE_TYPE" [MAGISK_VER]="$MAGISK_VER" [GAPPS_VARIANT]="$GAPPS_VARIANT" [ROOT_SOL]="$ROOT_SOL") -for i in "${PARA_CHECK_LIST[@]}"; do - if [ -z "${i+x}" ]; then - usage - fi -done +ARCH_MAP=( + "x64" + "arm64" +) + +RELEASE_TYPE_MAP=( + "retail" + "RP" + "WIS" + "WIF" +) + +MAGISK_VER_MAP=( + "stable" + "beta" + "canary" + "debug" +) + +GAPPS_BRAND_MAP=( + "OpenGApps" + "MindTheGApps" +) -echo -e "build: ARCH=$ARCH\nRELEASE_TYPE=$RELEASE_TYPE\nMAGISK_VER=$MAGISK_VER\nGAPPS_VARIANT=$GAPPS_VARIANT\nROOT_SOL=$ROOT_SOL" +GAPPS_VARIANT_MAP=( + "super" + "stock" + "full" + "mini" + "micro" + "nano" + "pico" + "tvstock" + "tvmini" +) + +ROOT_SOL_MAP=( + "magisk" + "none" +) + +check_list(){ + local input=$1 + local name=$2 + shift + local arr=("$@") + local list_count=${#arr[@]} + for i in "${arr[@]}"; do + if [ "$input" == "$i" ]; then + break + fi + ((list_count--)) + if (( "$list_count" <= 0 )); then + usage "Invalid $name: $input" + fi + done +} + +check_list "$ARCH" "Architecture" "${ARCH_MAP[@]}" +check_list "$RELEASE_TYPE" "Release Type" "${RELEASE_TYPE_MAP[@]}" +check_list "$MAGISK_VER" "Magisk Version" "${MAGISK_VER_MAP[@]}" +check_list "$GAPPS_BRAND" "GApps Brand" "${GAPPS_BRAND_MAP[@]}" +check_list "$GAPPS_VARIANT" "GApps Variant" "${GAPPS_VARIANT_MAP[@]}" +check_list "$ROOT_SOL" "Root Solution" "${ROOT_SOL_MAP[@]}" -declare -A RELEASE_TYPE_MAP=(["retail"]="Retail" ["release preview"]="RP" ["insider slow"]="WIS" ["insider fast"]="WIF") +if [ "$DEBUG" ]; then + set -x +fi + +declare -A RELEASE_NAME_MAP=(["retail"]="Retail" ["RP"]="Release Preview" ["WIS"]="Insider Slow" ["WIF"]="Insider Fast") +RELEASE_NAME=${RELEASE_NAME_MAP[$RELEASE_TYPE]} || abort -WSA_ZIP_PATH=$DOWNLOAD_DIR/wsa-$ARCH-${RELEASE_TYPE_MAP[$RELEASE_TYPE]}.zip +echo -e "build: ARCH=$ARCH\nRELEASE_TYPE=$RELEASE_NAME\nMAGISK_VER=$MAGISK_VER\nGAPPS_VARIANT=$GAPPS_VARIANT\nROOT_SOL=$ROOT_SOL" +if [ "$(sudo whoami)" != "root" ]; then + sudo echo "" +fi +WSA_ZIP_PATH=$DOWNLOAD_DIR/wsa-$ARCH-$RELEASE_TYPE.zip vclibs_PATH=$DOWNLOAD_DIR/vclibs-"$ARCH".appx xaml_PATH=$DOWNLOAD_DIR/xaml-"$ARCH".appx MAGISK_PATH=$DOWNLOAD_DIR/magisk-$MAGISK_VER.zip diff --git a/scripts/generateWSALinks.py b/scripts/generateWSALinks.py index 2c2038ab64..95ac2f9556 100644 --- a/scripts/generateWSALinks.py +++ b/scripts/generateWSALinks.py @@ -32,13 +32,14 @@ arch = sys.argv[1] -release_type_map = {"retail": "Retail", "release preview": "RP", - "insider slow": "WIS", "insider fast": "WIF"} -release_type = release_type_map[sys.argv[2]] if sys.argv[2] != "" else "Retail" +release_name_map = {"retail": "Retail", "RP": "Release Preview", + "WIS": "Insider Slow", "WIF": "Insider Fast"} +release_type = sys.argv[2] if sys.argv[2] != "" else "Retail" +release_name = release_name_map[release_type] download_dir = Path.cwd().parent / "download" if sys.argv[3] == "" else Path(sys.argv[3]).resolve() tempScript = sys.argv[4] cat_id = '858014f3-3934-4abe-8078-4aa193e74ca8' -print(f"Generating WSA download link: arch={arch} release_type={release_type}", flush=True) +print(f"Generating WSA download link: arch={arch} release_type={release_name}", flush=True) with open(Path.cwd().parent / ("xml/GetCookie.xml"), "r") as f: cookie_content = f.read() From 5d608e3a8624f07eb85d9f3bc40aec1cb6dcb2f4 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Tue, 30 Aug 2022 23:57:26 +0800 Subject: [PATCH 3/6] Fix release type selector --- scripts/build.sh | 1 - scripts/run.sh | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 10b487aed3..372a1ec0f1 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -151,7 +151,6 @@ while [[ $# -gt 0 ]]; do --debug ) DEBUG="on"; shift ;; --help ) usage; shift ;; -- ) shift; break;; - ? ) usage "Unknown parameter: $2"; break ;; esac done diff --git a/scripts/run.sh b/scripts/run.sh index 8ff1da8673..0cf84dce0e 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -150,7 +150,7 @@ fi # fi # OFFLINE="--offline" clear - -COMMAND_LINE=(--arch "$ARCH" --release-type "$RELEASE_TYPE" --magisk-ver "$MAGISK_VER" --gapps-brand "$GAPPS_BRAND" --gapps-variant "$GAPPS_VARIANT" "$REMOVE_AMAZON" --root-sol "$ROOT_SOL" "$COMPRESS_OUTPUT" "$OFFLINE" "$DEBUG" "$CUSTOM_MAGISK") +declare -A RELEASE_TYPE_MAP=(["retail"]="retail" ["release preview"]="RP" ["insider slow"]="WIS" ["insider fast"]="WIF") +COMMAND_LINE=(--arch "$ARCH" --release-type "${RELEASE_TYPE_MAP[$RELEASE_TYPE]}" --magisk-ver "$MAGISK_VER" --gapps-brand "$GAPPS_BRAND" --gapps-variant "$GAPPS_VARIANT" "$REMOVE_AMAZON" --root-sol "$ROOT_SOL" "$COMPRESS_OUTPUT" "$OFFLINE" "$DEBUG" "$CUSTOM_MAGISK") echo "COMMAND_LINE=${COMMAND_LINE[*]}" ./build.sh "${COMMAND_LINE[@]}" From c0fb8f1d2b5352219100eac7fa6be8bd73599a8a Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Wed, 31 Aug 2022 00:23:41 +0800 Subject: [PATCH 4/6] Show help without reporting errors. --- scripts/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build.sh b/scripts/build.sh index 372a1ec0f1..0eb46e8743 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -94,6 +94,7 @@ usage(){ default if [ "$1" ]; then echo "ERROR: $1" + abort fi echo "Usage: --arch Architecture of WSA, x64 or arm64, default: $ARCH @@ -108,7 +109,7 @@ usage(){ --magisk-custom Install custom Magisk, default: false --debug Debug build mode, default: false " - abort + exit 0 } ARGUMENT_LIST=( From cfe108f47c80140d7536c9a5f3ba4654d11c38f6 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Wed, 31 Aug 2022 00:50:21 +0800 Subject: [PATCH 5/6] Fix custom Magisk install --- scripts/build.sh | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 0eb46e8743..280fb8a16a 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -35,8 +35,8 @@ DOWNLOAD_CONF_NAME=download.list OUTPUT_DIR=../output MOUNT_DIR="$WORK_DIR"/system umount_clean(){ - echo "Cleanup Work Directory" if [ -d "$MOUNT_DIR" ]; then + echo "Cleanup Work Directory" if [ -d "$MOUNT_DIR/vendor" ]; then sudo umount "$MOUNT_DIR"/vendor fi @@ -90,12 +90,14 @@ default(){ ROOT_SOL=magisk } +exit_with_message(){ + echo "ERROR: $1" + usage + abort +} + usage(){ default - if [ "$1" ]; then - echo "ERROR: $1" - abort - fi echo "Usage: --arch Architecture of WSA, x64 or arm64, default: $ARCH --release-type Release type of WSA, retail, RP (Release Preview), WIS (Insider Slow) or WIF (Insider Fast), default: $RELEASE_TYPE @@ -108,8 +110,12 @@ usage(){ --offline Build WSA offline, default: false --magisk-custom Install custom Magisk, default: false --debug Debug build mode, default: false + --help Show this help message and exit + + Example: + ./build.sh --arch x64 --release-type retail --magisk-ver stable --gapps-brand OpenGApps --gapps-variant pico --remove-amazon + ./build.sh --arch x64 --release-type retail --remove-amazon --magisk-custom --offline " - exit 0 } ARGUMENT_LIST=( @@ -148,9 +154,9 @@ while [[ $# -gt 0 ]]; do --remove-amazon ) REMOVE_AMAZON="remove"; shift ;; --compress ) COMPRESS_OUTPUT="yes"; shift ;; --offline ) OFFLINE="on"; shift ;; - --magisk-custom ) CUSTOM_MAGISK="debug"; MAGISK_VER=$CUSTOM_MAGISK shift ;; + --magisk-custom ) CUSTOM_MAGISK="debug"; MAGISK_VER=$CUSTOM_MAGISK; shift ;; --debug ) DEBUG="on"; shift ;; - --help ) usage; shift ;; + --help ) usage; exit 0 ;; -- ) shift; break;; esac done @@ -208,7 +214,7 @@ check_list(){ fi ((list_count--)) if (( "$list_count" <= 0 )); then - usage "Invalid $name: $input" + exit_with_message "Invalid $name: $input" fi done } From 9908c9a90961a5e4d0ef9905a1cc8e82b2fac6c6 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Wed, 31 Aug 2022 01:10:20 +0800 Subject: [PATCH 6/6] Check if custom Magisk exists --- scripts/build.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 280fb8a16a..7f8c7c2116 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -234,19 +234,25 @@ declare -A RELEASE_NAME_MAP=(["retail"]="Retail" ["RP"]="Release Preview" ["WIS" RELEASE_NAME=${RELEASE_NAME_MAP[$RELEASE_TYPE]} || abort echo -e "build: ARCH=$ARCH\nRELEASE_TYPE=$RELEASE_NAME\nMAGISK_VER=$MAGISK_VER\nGAPPS_VARIANT=$GAPPS_VARIANT\nROOT_SOL=$ROOT_SOL" -if [ "$(sudo whoami)" != "root" ]; then - sudo echo "" -fi + WSA_ZIP_PATH=$DOWNLOAD_DIR/wsa-$ARCH-$RELEASE_TYPE.zip vclibs_PATH=$DOWNLOAD_DIR/vclibs-"$ARCH".appx xaml_PATH=$DOWNLOAD_DIR/xaml-"$ARCH".appx MAGISK_PATH=$DOWNLOAD_DIR/magisk-$MAGISK_VER.zip +if [ "$CUSTOM_MAGISK" ]; then + if [ ! -f "$MAGISK_PATH" ]; then + echo "Custom Magisk not found, please rename it to magisk-debug.zip and put it in $DOWNLOAD_DIR" + abort + fi +fi if [ "$GAPPS_BRAND" = "OpenGApps" ]; then GAPPS_PATH="$DOWNLOAD_DIR"/OpenGApps-$ARCH-$GAPPS_VARIANT.zip else GAPPS_PATH="$DOWNLOAD_DIR"/MindTheGapps-"$ARCH".zip fi - +if [ "$(sudo whoami)" != "root" ]; then + sudo echo "sudo is required to run this script" +fi if [ -z "${OFFLINE+x}" ]; then trap 'rm -f -- "${DOWNLOAD_DIR:?}/${DOWNLOAD_CONF_NAME}"' EXIT echo "Generate Download Links"