From 04ab694b0f93eda0102daa348f05e2f24230919f Mon Sep 17 00:00:00 2001 From: Ing Date: Sat, 4 Nov 2023 17:20:57 +0800 Subject: [PATCH] fix something --- .github/workflows/main.yml | 17 +++++++++++++++-- files/initrd/opt/rr/init.sh | 2 +- files/initrd/opt/rr/menu.sh | 37 ++++++++++++++++++++----------------- scripts/func.sh | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index afd488d6..bc5e391c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,6 +27,10 @@ on: description: "pre release" default: false type: boolean + br_version: + description: "buildroot version" + default: "2023.02.x" + type: string jobs: build: @@ -104,7 +108,7 @@ jobs: - name: Build image run: | . scripts/func.sh - + echo "Create RR image" gzip -dc "files/grub.img.gz" >"rr.img" fdisk -l "rr.img" @@ -118,7 +122,9 @@ jobs: sudo mount ${LOOPX}p3 "/tmp/p3" echo "Get Buildroot" - getBuildroot "2023.02.x" "br" + br_version="${{ inputs.br_version }}" + [ -z "${br_version}" ] && br_version="2023.02.x" + getBuildroot "${br_version}" "br" [ ! -f "br/bzImage-rr" -o ! -f "br/initrd-rr" ] && return 1 echo "Repack initrd" @@ -138,6 +144,9 @@ jobs: sudo losetup --detach ${LOOPX} + echo "Create RR_4GB image" + resizeImg "rr.img" "+3072M" "rr_4GB.img" + # echo "Image Converter" # qemu-img convert -O vmdk rr.img rr-dyn.vmdk # qemu-img convert -O vmdk -o adapter_type=lsilogic rr.img -o subformat=monolithicFlat rr.vmdk @@ -147,10 +156,12 @@ jobs: run: | if [ -n "${{ env.VERSION }}" ]; then zip -9 "rr-${{ env.VERSION }}.img.zip" rr.img + zip -9 "rr_4GB-${{ env.VERSION }}.img.zip" rr_4GB.img # zip -9 "rr-${{ env.VERSION }}.vmdk-dyn.zip" rr-dyn.vmdk # zip -9 "rr-${{ env.VERSION }}.vmdk-flat.zip" rr.vmdk rr-flat.vmdk else zip -9 "rr.img.zip" rr.img + zip -9 "rr_4GB.img.zip" rr_4GB.img fi sha256sum update-list.yml update-check.sh > sha256sum zip -9j update.zip update-list.yml update-check.sh @@ -175,6 +186,7 @@ jobs: name: Images path: | rr.img.zip + rr_4GB.img.zip update.zip retention-days: 5 @@ -187,6 +199,7 @@ jobs: prerelease: ${{ inputs.prerelease }} files: | rr-${{ env.VERSION }}.img.zip + rr_4GB-${{ env.VERSION }}.img.zip # rr-${{ env.VERSION }}.vmdk-dyn.zip # rr-${{ env.VERSION }}.vmdk-flat.zip update.zip diff --git a/files/initrd/opt/rr/init.sh b/files/initrd/opt/rr/init.sh index 7f8be141..7d29f4c0 100755 --- a/files/initrd/opt/rr/init.sh +++ b/files/initrd/opt/rr/init.sh @@ -35,7 +35,7 @@ initConfigKey "bootipwait" "10" "${USER_CONFIG_FILE}" initConfigKey "kernelway" "power" "${USER_CONFIG_FILE}" initConfigKey "kernelpanic" "5" "${USER_CONFIG_FILE}" initConfigKey "odp" "false" "${USER_CONFIG_FILE}" -initConfigKey "hddsort" "true" "${USER_CONFIG_FILE}" +initConfigKey "hddsort" "false" "${USER_CONFIG_FILE}" initConfigKey "model" "" "${USER_CONFIG_FILE}" initConfigKey "productver" "" "${USER_CONFIG_FILE}" initConfigKey "buildnum" "" "${USER_CONFIG_FILE}" diff --git a/files/initrd/opt/rr/menu.sh b/files/initrd/opt/rr/menu.sh index 8bd76665..abc60218 100755 --- a/files/initrd/opt/rr/menu.sh +++ b/files/initrd/opt/rr/menu.sh @@ -420,7 +420,7 @@ function addonMenu() { rm -rf ${TMP_UP_PATH} mkdir -p ${TMP_UP_PATH} pushd ${TMP_UP_PATH} - rz -be + rz -be -B 536870912 for F in $(ls -A); do USER_FILE=${F} break @@ -553,7 +553,7 @@ function moduleMenu() { rm -rf ${TMP_UP_PATH} mkdir -p ${TMP_UP_PATH} pushd ${TMP_UP_PATH} - rz -be + rz -be -B 536870912 for F in $(ls -A); do USER_FILE=${F} break @@ -1313,31 +1313,32 @@ function advancedMenu() { --msgbox "$(TEXT "Formatting is complete.")" 0 0 ;; x) - SHADOW_FILE="" + rm -f "${TMP_PATH}/menu" mkdir -p "${TMP_PATH}/sdX1" for I in $(ls /dev/sd*1 2>/dev/null | grep -v "${LOADER_DISK_PART1}"); do mount ${I} "${TMP_PATH}/sdX1" if [ -f "${TMP_PATH}/sdX1/etc/shadow" ]; then - cp -f "${TMP_PATH}/sdX1/etc/shadow" "${TMP_PATH}/shadow_bak" - SHADOW_FILE="${TMP_PATH}/shadow_bak" + for U in $(cat "${TMP_PATH}/sdX1/etc/shadow" | awk -F ':' '{if ($2 != "*" && $2 != "!!") {print $1;}}'); do + grep -q "status=on" "${TMP_PATH}//usr/syno/etc/packages/SecureSignIn/preference/${U}/method.config" 2>/dev/null + [ $? -eq 0 ] && SS="SecureSignIn" || SS=" " + printf "\"%-36s %-16s\"\n" "${U}" "${SS}" >>"${TMP_PATH}/menu" + done fi umount "${I}" - [ -n "${SHADOW_FILE}" ] && break + [ -f "${TMP_PATH}/menu" ] && break done rm -rf "${TMP_PATH}/sdX1" - if [ -z "${SHADOW_FILE}" ]; then + if [ ! -f "${TMP_PATH}/menu" ]; then DIALOG --title "$(TEXT "Advanced")" \ --msgbox "$(TEXT "The installed Syno system not found in the currently inserted disks!")" 0 0 return fi - ITEMS="$(cat "${SHADOW_FILE}" | awk -F ':' '{if ($2 != "*" && $2 != "!!") {print $1;}}')" DIALOG --title "$(TEXT "Advanced")" \ - --no-items --menu "$(TEXT "Choose a user name")" 0 0 0 ${ITEMS} \ + --no-items --menu "$(TEXT "Choose a user name")" 0 0 0 --file "${TMP_PATH}/menu" \ 2>${TMP_PATH}/resp [ $? -ne 0 ] && return - USER="$(<${TMP_PATH}/resp)" + USER="$(cat "${TMP_PATH}/resp" | awk '{print $1}')" [ -z "${USER}" ] && return - OLDPASSWD="$(cat "${SHADOW_FILE}" | grep "^${USER}:" | awk -F ':' '{print $2}')" while true; do DIALOG --title "$(TEXT "Advanced")" \ --inputbox "$(printf "$(TEXT "Type a new password for user '%s'")" "${USER}")" 0 70 "${CMDLINE[${NAME}]}" \ @@ -1353,7 +1354,9 @@ function advancedMenu() { mkdir -p "${TMP_PATH}/sdX1" for I in $(ls /dev/sd.*1 2>/dev/null | grep -v ${LOADER_DISK_PART1}); do mount "${I}" "${TMP_PATH}/sdX1" - sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/sdX1/etc/shadow" + OLDPASSWD="$(cat "${TMP_PATH}/sdX1/etc/shadow" | grep "^${USER}:" | awk -F ':' '{print $2}')" + [ -n "${OLDPASSWD}" ] && sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/sdX1/etc/shadow" + sed -i "s|status=on|status=off|g" "${TMP_PATH}//usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null sync umount "${I}" done @@ -1398,7 +1401,7 @@ function advancedMenu() { rm -rf "${TMP_UP_PATH}" mkdir -p "${TMP_UP_PATH}" pushd "${TMP_UP_PATH}" - rz -be + rz -be -B 536870912 for F in $(ls -A); do USER_FILE="${TMP_UP_PATH}/${F}" dtc -q -I dts -O dtb "${F}" >"test.dtb" @@ -1444,7 +1447,7 @@ function advancedMenu() { DIALOG --title "$(TEXT "Advanced")" \ --editbox "${TMP_PATH}/resp" 10 100 else # ssh - sz -be /var/www/data/backup.img.gz + sz -be -B 536870912 /var/www/data/backup.img.gz fi DIALOG --title "$(TEXT "Advanced")" \ --msgbox "$(TEXT "backup is complete.")" 0 0 @@ -1464,7 +1467,7 @@ function advancedMenu() { rm -rf "${TMP_UP_PATH}" mkdir -p "${TMP_UP_PATH}" pushd "${TMP_UP_PATH}" - rz -be + rz -be -B 536870912 for F in $(ls -A); do USER_FILE="${F}" [ "${F##*.}" = "zip" -a $(unzip -l "${TMP_UP_PATH}/${USER_FILE}" | grep -c "\.img$") -eq 1 ] && IFTOOL="zip" @@ -1507,7 +1510,7 @@ function advancedMenu() { DIALOG --title "$(TEXT "Advanced")" \ --msgbox "$(printf "$(TEXT "Please via %s to download the logs,\nAnd go to github to create an issue and upload the logs.")" "${URL}")" 0 0 else - sz -be "${TMP_PATH}/logs.tar.gz" + sz -be -B 536870912 "${TMP_PATH}/logs.tar.gz" DIALOG --title "$(TEXT "Advanced")" \ --msgbox "$(TEXT "Please go to github to create an issue and upload the logs.")" 0 0 fi @@ -1961,7 +1964,7 @@ function updateMenu() { rm -rf "${TMP_UP_PATH}" mkdir -p "${TMP_UP_PATH}" pushd "${TMP_UP_PATH}" - rz -be + rz -be -B 536870912 for F in $(ls -A); do for I in ${EXTS[@]}; do [[ "${I}" == "${F}" ]] && USER_FILE="${F}" diff --git a/scripts/func.sh b/scripts/func.sh index e4e4a1ad..d642b0ff 100755 --- a/scripts/func.sh +++ b/scripts/func.sh @@ -202,4 +202,36 @@ function repackInitrd() { sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | xz --check=crc32 >"${OUTPUT_PATH}" ) || true sudo rm -rf "${RDXZ_PATH}" +} + +# resizeimg +# $1 input file +# $2 changsize MB eg: +50M -50M +# $3 output file +function resizeImg() { + INPUT_FILE="${1}" + CHANGE_SIZE="${2}" + OUTPUT_FILE="${3:-${INPUT_FILE}}" + + [ -z "${INPUT_FILE}" -o ! -f "${INPUT_FILE}" ] && exit 1 + [ -z "${CHANGE_SIZE}" ] && exit 1 + + INPUT_FILE="$(readlink -f "${INPUT_FILE}")" + OUTPUT_FILE="$(readlink -f "${OUTPUT_FILE}")" + + + SIZE=$(($(du -m "${INPUT_FILE}" | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g'))) + [ -z "${SIZE}" -o "${SIZE}" -lt 0 ] && exit 1 + + if [ ! "${INPUT_FILE}" = "${OUTPUT_FILE}" ]; then + sudo cp -f "${INPUT_FILE}" "${OUTPUT_FILE}" + fi + + sudo truncate -s ${SIZE}M "${OUTPUT_FILE}" + echo -e "d\n\nn\n\n\n\n\nn\nw" | sudo fdisk "${OUTPUT_FILE}" + LOOPX=$(sudo losetup -f) + sudo losetup -P ${LOOPX} "${OUTPUT_FILE}" + sudo e2fsck -fp $(ls ${LOOPX}* | sort -n | tail -1) + sudo resize2fs $(ls ${LOOPX}* | sort -n | tail -1) + sudo losetup -d ${LOOPX} } \ No newline at end of file