Fix parameter parsing

This commit is contained in:
Howard Wu 2024-02-10 03:46:33 +08:00
parent a3efd6dab1
commit 4f7d3c1951
3 changed files with 44 additions and 61 deletions

View file

@ -92,6 +92,7 @@ default() {
RELEASE_TYPE=retail RELEASE_TYPE=retail
MAGISK_VER=stable MAGISK_VER=stable
ROOT_SOL=magisk ROOT_SOL=magisk
COMPRESS_FORMAT=none
} }
exit_with_message() { exit_with_message() {
@ -129,6 +130,7 @@ ROOT_SOL_MAP=(
COMPRESS_FORMAT_MAP=( COMPRESS_FORMAT_MAP=(
"7z" "7z"
"zip" "zip"
"none"
) )
ARR_TO_STR() { ARR_TO_STR() {
@ -164,18 +166,15 @@ Usage:
Possible values: $(ARR_TO_STR "${ROOT_SOL_MAP[@]}") Possible values: $(ARR_TO_STR "${ROOT_SOL_MAP[@]}")
Default: $ROOT_SOL Default: $ROOT_SOL
--compress-format --compress-format Compress format of output file.
Compress format of output file.
If this option is not specified and --compress is not specified, the generated file will not be compressed
Possible values: $(ARR_TO_STR "${COMPRESS_FORMAT_MAP[@]}") Possible values: $(ARR_TO_STR "${COMPRESS_FORMAT_MAP[@]}")
Default: $COMPRESS_FORMAT
Additional Options: Additional Options:
--compress Compress the WSA, The default format is 7z, you can use the format specified by --compress-format
--offline Build WSA offline --offline Build WSA offline
--magisk-custom Install custom Magisk --magisk-custom Install custom Magisk
--skip-download-wsa Skip download WSA --skip-download-wsa Skip download WSA
--debug Debug build mode
--help Show this help message and exit --help Show this help message and exit
Example: Example:
@ -188,20 +187,17 @@ Example:
} }
ARGUMENT_LIST=( ARGUMENT_LIST=(
"compress-format:"
"arch:" "arch:"
"release-type:" "release-type:"
"magisk-ver:"
"nofix-props"
"root-sol:" "root-sol:"
"compress-format:" "magisk-ver:"
"remove-amazon"
"compress"
"offline"
"magisk-custom" "magisk-custom"
"debug"
"help"
"skip-download-wsa"
"install-gapps" "install-gapps"
"offline"
"skip-download-wsa"
"help"
"debug"
) )
default default
@ -217,6 +213,10 @@ opts=$(
eval set --"$opts" eval set --"$opts"
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
case "$1" in case "$1" in
--compress-format)
COMPRESS_FORMAT="$2"
shift 2
;;
--arch) --arch)
ARCH="$2" ARCH="$2"
shift 2 shift 2
@ -225,36 +225,24 @@ while [[ $# -gt 0 ]]; do
RELEASE_TYPE="$2" RELEASE_TYPE="$2"
shift 2 shift 2
;; ;;
--install-gapps)
HAS_GAPPS=true
shift 2
;;
--root-sol) --root-sol)
ROOT_SOL="$2" ROOT_SOL="$2"
shift 2 shift 2
;; ;;
--compress-format)
COMPRESS_FORMAT="$2"
shift 2
;;
--compress)
COMPRESS_OUTPUT="yes"
shift
;;
--offline)
OFFLINE="on"
shift
;;
--magisk-custom)
CUSTOM_MAGISK=true
shift
;;
--magisk-ver) --magisk-ver)
MAGISK_VER="$2" MAGISK_VER="$2"
shift 2 shift 2
;; ;;
--debug) --magisk-custom)
DEBUG="on" CUSTOM_MAGISK=true
shift
;;
--install-gapps)
HAS_GAPPS=true
shift
;;
--offline)
OFFLINE=true
shift shift
;; ;;
--skip-download-wsa) --skip-download-wsa)
@ -265,6 +253,10 @@ while [[ $# -gt 0 ]]; do
usage usage
exit 0 exit 0
;; ;;
--debug)
DEBUG=true
shift
;;
--) --)
shift shift
break break
@ -309,9 +301,7 @@ fi
declare -A RELEASE_NAME_MAP=(["retail"]="Retail" ["RP"]="Release Preview" ["WIS"]="Insider Slow" ["WIF"]="Insider Fast") declare -A RELEASE_NAME_MAP=(["retail"]="Retail" ["RP"]="Release Preview" ["WIS"]="Insider Slow" ["WIF"]="Insider Fast")
declare -A ANDROID_API_MAP=(["30"]="11.0" ["32"]="12.1" ["33"]="13.0") declare -A ANDROID_API_MAP=(["30"]="11.0" ["32"]="12.1" ["33"]="13.0")
RELEASE_NAME=${RELEASE_NAME_MAP[$RELEASE_TYPE]} || abort RELEASE_NAME=${RELEASE_NAME_MAP[$RELEASE_TYPE]} || abort
echo -e "INFO: Release Name: $RELEASE_NAME\n"
echo -e "Build: RELEASE_TYPE=$RELEASE_NAME"
WSA_ZIP_PATH=$DOWNLOAD_DIR/wsa-$RELEASE_TYPE.zip WSA_ZIP_PATH=$DOWNLOAD_DIR/wsa-$RELEASE_TYPE.zip
vclibs_PATH="$DOWNLOAD_DIR/Microsoft.VCLibs.140.00_$ARCH.appx" vclibs_PATH="$DOWNLOAD_DIR/Microsoft.VCLibs.140.00_$ARCH.appx"
UWPVCLibs_PATH="$DOWNLOAD_DIR/Microsoft.VCLibs.140.00.UWPDesktop_$ARCH.appx" UWPVCLibs_PATH="$DOWNLOAD_DIR/Microsoft.VCLibs.140.00.UWPDesktop_$ARCH.appx"
@ -322,7 +312,7 @@ if [ "$CUSTOM_MAGISK" ]; then
if [ ! -f "$MAGISK_PATH" ]; then if [ ! -f "$MAGISK_PATH" ]; then
echo "Custom Magisk $MAGISK_ZIP not found" echo "Custom Magisk $MAGISK_ZIP not found"
MAGISK_ZIP=app-$MAGISK_VER.apk MAGISK_ZIP=app-$MAGISK_VER.apk
echo "Fallback to $MAGISK_ZIP" echo -e "Fallback to $MAGISK_ZIP\n"
MAGISK_PATH=$DOWNLOAD_DIR/$MAGISK_ZIP MAGISK_PATH=$DOWNLOAD_DIR/$MAGISK_ZIP
if [ ! -f "$MAGISK_PATH" ]; then if [ ! -f "$MAGISK_PATH" ]; then
abort "Custom Magisk $MAGISK_ZIP not found\nPlease put custom Magisk in $DOWNLOAD_DIR" abort "Custom Magisk $MAGISK_ZIP not found\nPlease put custom Magisk in $DOWNLOAD_DIR"
@ -388,7 +378,7 @@ if [ -f "$WSA_ZIP_PATH" ]; then
CLEAN_DOWNLOAD_WSA=1 CLEAN_DOWNLOAD_WSA=1
abort "Unzip WSA failed, is the download incomplete?" abort "Unzip WSA failed, is the download incomplete?"
fi fi
echo -e "Extract done\n" echo -e "done\n"
# shellcheck disable=SC1090 # shellcheck disable=SC1090
source "$WSA_WORK_ENV" || abort source "$WSA_WORK_ENV" || abort
else else
@ -494,7 +484,6 @@ if [ "$HAS_GAPPS" ] || [ "$ROOT_SOL" = "magisk" ]; then
"add 0750 overlay.d/sbin/post-fs-data.sh post-fs-data.sh" \ "add 0750 overlay.d/sbin/post-fs-data.sh post-fs-data.sh" \
"add 000 overlay.d/init.lsp.se.rc init.lsp.se.rc" \ "add 000 overlay.d/init.lsp.se.rc init.lsp.se.rc" \
|| abort "Unable to patch initrd" || abort "Unable to patch initrd"
echo -e "Integrate Magisk done\n"
elif [ "$ROOT_SOL" = "kernelsu" ]; then elif [ "$ROOT_SOL" = "kernelsu" ]; then
echo "Extracting KernelSU" echo "Extracting KernelSU"
# shellcheck disable=SC1090 # shellcheck disable=SC1090
@ -513,9 +502,8 @@ elif [ "$ROOT_SOL" = "kernelsu" ]; then
echo "Integrate KernelSU" echo "Integrate KernelSU"
mv "$WORK_DIR/wsa/$ARCH/Tools/kernel" "$WORK_DIR/wsa/$ARCH/Tools/kernel_origin" mv "$WORK_DIR/wsa/$ARCH/Tools/kernel" "$WORK_DIR/wsa/$ARCH/Tools/kernel_origin"
cp "$WORK_DIR/kernelsu/kernel" "$WORK_DIR/wsa/$ARCH/Tools/kernel" cp "$WORK_DIR/kernelsu/kernel" "$WORK_DIR/wsa/$ARCH/Tools/kernel"
echo -e "done\n"
fi fi
echo -e "done\n"
if [ "$HAS_GAPPS" ]; then if [ "$HAS_GAPPS" ]; then
update_gapps_file_name update_gapps_file_name
if [ -f "$GAPPS_PATH" ]; then if [ -f "$GAPPS_PATH" ]; then
@ -541,9 +529,8 @@ cp ../installer/MakePri.ps1 "$WORK_DIR/wsa/$ARCH" || abort
cp ../installer/Install.ps1 "$WORK_DIR/wsa/$ARCH" || abort cp ../installer/Install.ps1 "$WORK_DIR/wsa/$ARCH" || abort
cp ../installer/Run.bat "$WORK_DIR/wsa/$ARCH" || abort cp ../installer/Run.bat "$WORK_DIR/wsa/$ARCH" || abort
find "$WORK_DIR/wsa/$ARCH" -maxdepth 1 -mindepth 1 -printf "%P\n" >"$WORK_DIR/wsa/$ARCH/filelist.txt" || abort find "$WORK_DIR/wsa/$ARCH" -maxdepth 1 -mindepth 1 -printf "%P\n" >"$WORK_DIR/wsa/$ARCH/filelist.txt" || abort
echo -e "Remove signature and add scripts done\n" echo -e "done\n"
echo "Generating info"
if [[ "$ROOT_SOL" = "none" ]]; then if [[ "$ROOT_SOL" = "none" ]]; then
name1="" name1=""
elif [ "$ROOT_SOL" = "magisk" ]; then elif [ "$ROOT_SOL" = "magisk" ]; then
@ -558,8 +545,6 @@ else
fi fi
artifact_name=WSA_${WSA_VER}_${ARCH}_${WSA_REL}${name1}${name2} artifact_name=WSA_${WSA_VER}_${ARCH}_${WSA_REL}${name1}${name2}
echo "$artifact_name"
echo -e "\nFinishing building...."
if [ -f "$OUTPUT_DIR" ]; then if [ -f "$OUTPUT_DIR" ]; then
rm -rf ${OUTPUT_DIR:?} rm -rf ${OUTPUT_DIR:?}
fi fi
@ -567,25 +552,22 @@ if [ ! -d "$OUTPUT_DIR" ]; then
mkdir -p "$OUTPUT_DIR" mkdir -p "$OUTPUT_DIR"
fi fi
OUTPUT_PATH="${OUTPUT_DIR:?}/$artifact_name" OUTPUT_PATH="${OUTPUT_DIR:?}/$artifact_name"
if [ "$COMPRESS_OUTPUT" ] || [ -n "$COMPRESS_FORMAT" ]; then if [ "$COMPRESS_FORMAT" != "none" ]; then
mv "$WORK_DIR/wsa/$ARCH" "$WORK_DIR/wsa/$artifact_name" mv "$WORK_DIR/wsa/$ARCH" "$WORK_DIR/wsa/$artifact_name"
if [ -z "$COMPRESS_FORMAT" ]; then
COMPRESS_FORMAT="7z"
fi
if [ -n "$COMPRESS_FORMAT" ]; then if [ -n "$COMPRESS_FORMAT" ]; then
FILE_EXT=".$COMPRESS_FORMAT" FILE_EXT=".$COMPRESS_FORMAT"
OUTPUT_PATH="$OUTPUT_PATH$FILE_EXT" OUTPUT_PATH="$OUTPUT_PATH$FILE_EXT"
fi fi
rm -f "${OUTPUT_PATH:?}" || abort rm -f "${OUTPUT_PATH:?}" || abort
if [ "$COMPRESS_FORMAT" = "7z" ]; then if [ "$COMPRESS_FORMAT" = "7z" ]; then
echo "Compressing with 7z" echo "Compressing with 7z to $OUTPUT_PATH"
7z a "${OUTPUT_PATH:?}" "$WORK_DIR/wsa/$artifact_name" || abort 7z a "${OUTPUT_PATH:?}" "$WORK_DIR/wsa/$artifact_name" || abort
elif [ "$COMPRESS_FORMAT" = "zip" ]; then elif [ "$COMPRESS_FORMAT" = "zip" ]; then
echo "Compressing with zip" echo "Compressing with zip to $OUTPUT_PATH"
7z -tzip a "$OUTPUT_PATH" "$WORK_DIR/wsa/$artifact_name" || abort 7z -tzip a "$OUTPUT_PATH" "$WORK_DIR/wsa/$artifact_name" || abort
fi fi
else else
rm -rf "${OUTPUT_PATH:?}" || abort rm -rf "${OUTPUT_PATH:?}" || abort
echo "Copying to $OUTPUT_PATH"
cp -r "$WORK_DIR/wsa/$ARCH" "$OUTPUT_PATH" || abort cp -r "$WORK_DIR/wsa/$ARCH" "$OUTPUT_PATH" || abort
fi fi
echo "done"

View file

@ -1,8 +1,11 @@
on post-fs on post-fs
mkdir /mnt/cust 0775 system system mkdir /mnt/cust 0775 system system
mount erofs loop@${MAGISKTMP}/cust.img /mnt/cust ro,seclabel mount erofs loop@${MAGISKTMP}/cust.img /mnt/cust ro,seclabel
wait /system wait /system_ext
mount overlay overlay /system_ext lowerdir=/mnt/cust/system_ext:/system_ext,seclabel mount overlay overlay /system_ext lowerdir=/mnt/cust/system_ext:/system_ext,seclabel
wait /product
mount overlay overlay /product lowerdir=/mnt/cust/product:/product,seclabel mount overlay overlay /product lowerdir=/mnt/cust/product:/product,seclabel
wait /vendor
mount overlay overlay /vendor lowerdir=/mnt/cust/vendor:/vendor,seclabel
wait /system
mount overlay overlay /system/priv-app lowerdir=/mnt/cust/system/priv-app:/system/priv-app,seclabel mount overlay overlay /system/priv-app lowerdir=/mnt/cust/system/priv-app:/system/priv-app,seclabel

View file

@ -2,8 +2,6 @@ allow gmscore_app gmscore_app vsock_socket { create connect write read }
allow gmscore_app device_config_runtime_native_boot_prop file read allow gmscore_app device_config_runtime_native_boot_prop file read
allow gmscore_app system_server_tmpfs dir search allow gmscore_app system_server_tmpfs dir search
allow gmscore_app system_server_tmpfs file open allow gmscore_app system_server_tmpfs file open
allow gmscore_app system_server_tmpfs filesystem getattr allow gmscore_app { system_server_tmpfs media_rw_data_file } filesystem getattr
allow gmscore_app media_rw_data_file filesystem getattr allow { platform_app system_app } default_android_service service_manager { find add }
allow platform_app default_android_service service_manager { find add }
allow system_app default_android_service service_manager { find add }
allow system_server default_android_service service_manager add allow system_server default_android_service service_manager add