fix netif_num and fix reset passwd

This commit is contained in:
Ing 2023-11-06 16:06:09 +08:00
parent c15fad8ae5
commit 9e8bd1ca02
5 changed files with 56 additions and 39 deletions

View File

@ -167,13 +167,13 @@ jobs:
zip -9j update.zip update-list.yml update-check.sh
while read F; do
if [ -d "${F}" ]; then
FTGZ="`basename "${F}"`.tgz"
FTGZ="$(basename "${F}").tgz"
tar -czf "${FTGZ}" -C "${F}" .
sha256sum "${FTGZ}" >> sha256sum
zip -9j update.zip "${FTGZ}"
rm "${FTGZ}"
rm -f "${FTGZ}"
else
(cd `dirname ${F}` && sha256sum `basename ${F}`) >> sha256sum
(cd $(dirname "${F}") && sha256sum $(basename "${F}")) >> sha256sum
zip -9j update.zip "${F}"
fi
done < <(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)

1
.gitignore vendored
View File

@ -12,3 +12,4 @@ files/initrd/opt/rr/lang/*.mo
tests
/extractor
/br
/rdxz_tmp

View File

@ -33,7 +33,7 @@ if [ -f ${PART1_PATH}/.build -o "$(sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$
echo -e "\033[1;43m$(TEXT "DSM zImage changed")\033[0m"
${WORK_PATH}/zimage-patch.sh
if [ $? -ne 0 ]; then
echo -e "\033[1;43m$(TEXT "zImage not patched,\nPlease upgrade the bootloader version and try again.\nPatch error:\n")$(<"${LOG_FILE}")\033[0m"
echo -e "\033[1;43m$(TEXT "zImage not patched,\nPlease upgrade the bootloader version and try again.\nPatch error:\n")$(<"${LOG_FILE}")\033[0m"
exit 1
fi
fi
@ -93,8 +93,6 @@ MAC1="$(readConfigKey "mac1" "${USER_CONFIG_FILE}")"
MAC2="$(readConfigKey "mac2" "${USER_CONFIG_FILE}")"
KERNELPANIC="$(readConfigKey "kernelpanic" "${USER_CONFIG_FILE}")"
NETIFNUM=$(ls /sys/class/net/ | grep eth | wc -l); [ ${NETIFNUM} -lt 2 ] && NETIFNUM=2
declare -A CMDLINE
# Automatic values
@ -104,9 +102,11 @@ CMDLINE['syno_hw_version']="${MODEL}"
CMDLINE['vid']="${VID}"
CMDLINE['pid']="${PID}"
CMDLINE['sn']="${SN}"
[ -n "${MAC1}" ] && CMDLINE['mac1']="${MAC1}"
[ -n "${MAC2}" ] && CMDLINE['mac2']="${MAC2}"
CMDLINE['netif_num']="${NETIFNUM}"
CMDLINE['netif_num']="0"
[ -z "${MAC1}" -a -n "${MAC2}" ] && MAC1=${MAC2} && MAC2="" # Sanity check
[ -n "${MAC1}" ] && CMDLINE['mac1']="${MAC1}" && CMDLINE['netif_num']="1"
[ -n "${MAC2}" ] && CMDLINE['mac2']="${MAC2}" && CMDLINE['netif_num']="2"
# set fixed cmdline
if grep -q "force_junior" /proc/cmdline; then

View File

@ -1265,7 +1265,7 @@ function advancedMenu() {
[ $? -ne 0 ] && return
(
mkdir -p "${TMP_PATH}/sdX1"
for I in $(ls /dev/sd.*1 2>/dev/null | grep -v "${LOADER_DISK_PART1}"); do
for I in $(ls /dev/sd*1 2>/dev/null | grep -v "${LOADER_DISK_PART1}"); do
mount "${I}" "${TMP_PATH}/sdX1"
[ -f "${TMP_PATH}/sdX1/etc/VERSION" ] && rm -f "${TMP_PATH}/sdX1/etc/VERSION"
[ -f "${TMP_PATH}/sdX1/etc.defaults/VERSION" ] && rm -f "${TMP_PATH}/sdX1/etc.defaults/VERSION"
@ -1319,7 +1319,7 @@ function advancedMenu() {
mount ${I} "${TMP_PATH}/sdX1"
if [ -f "${TMP_PATH}/sdX1/etc/shadow" ]; then
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
grep -q "status=on" "${TMP_PATH}/sdX1/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
@ -1349,21 +1349,20 @@ function advancedMenu() {
DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "Invalid password")" 0 0
done
NEWPASSWD="$(python -c "import crypt,getpass;pw=\"${VALUE}\";print(crypt.crypt(pw))")"
NEWPASSWD="$(python -c "from passlib.hash import sha512_crypt;pw=\"${VALUE}\";print(sha512_crypt.using(rounds=5000).hash(pw))")"
(
mkdir -p "${TMP_PATH}/sdX1"
for I in $(ls /dev/sd.*1 2>/dev/null | grep -v ${LOADER_DISK_PART1}); do
for I in $(ls /dev/sd*1 2>/dev/null | grep -v "${LOADER_DISK_PART1}"); do
mount "${I}" "${TMP_PATH}/sdX1"
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
[ -n "${NEWPASSWD}" -a -n "${OLDPASSWD}" ] && sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/sdX1/etc/shadow"
sed -i "s|status=on|status=off|g" "${TMP_PATH}/sdX1/usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null
sync
umount "${I}"
done
rm -rf "${TMP_PATH}/sdX1"
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
--progressbox "$(TEXT "Resetting ...")" 20 100
[ -f "${SHADOW_FILE}" ] && rm -rf "${SHADOW_FILE}"
DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "Password reset completed.")" 0 0
;;

View File

@ -15,37 +15,54 @@ LOOPX=$(sudo losetup -f)
sudo losetup -P "${LOOPX}" "${IMAGE_FILE}"
echo "Mounting image file"
mkdir -p "/tmp/p1"
mkdir -p "/tmp/p3"
sudo mount ${LOOPX}p1 "/tmp/p1"
sudo mount ${LOOPX}p3 "/tmp/p3"
sudo rm -rf "/tmp/files/p1"
sudo rm -rf "/tmp/files/p3"
sudo mkdir -p "/tmp/files/p1"
sudo mkdir -p "/tmp/files/p3"
sudo mount ${LOOPX}p1 "/tmp/files/p1"
sudo mount ${LOOPX}p3 "/tmp/files/p3"
echo "Get Buildroot"
getBuildroot "2023.02.x" "br"
[ ! -f "br/bzImage-rr" -o ! -f "br/initrd-rr" ] && getBuildroot "2023.02.x" "br"
[ ! -f "br/bzImage-rr" -o ! -f "br/initrd-rr" ] && return 1
echo "Repack initrd"
cp -f "br/bzImage-rr" "/tmp/p3/bzImage-rr"
repackInitrd "br/initrd-rr" "files/initrd" "/tmp/p3/initrd-rr"
echo "Copying files"
sudo cp -Rf "files/p1/"* "/tmp/p1"
sudo cp -Rf "files/p3/"* "/tmp/p3"
# Get extractor, LKM, addons and Modules
getLKMs "/tmp/p3/lkms" true
getAddons "/tmp/p3/addons" true
getModules "/tmp/p3/modules" true
getExtractor "/tmp/p3/extractor"
read -p "Press enter to continue"
echo "Repack initrd"
sudo cp -f "br/bzImage-rr" "/tmp/files/p3/bzImage-rr"
repackInitrd "br/initrd-rr" "files/initrd" "/tmp/files/p3/initrd-rr"
echo "Copying files"
sudo cp -Rf "files/p1/"* "/tmp/files/p1"
sudo cp -Rf "files/p3/"* "/tmp/files/p3"
# Get extractor, LKM, addons and Modules
getLKMs "/tmp/files/p3/lkms" true
getAddons "/tmp/files/p3/addons" true
getModules "/tmp/files/p3/modules" true
getExtractor "/tmp/files/p3/extractor"
sync
# update.zip
sha256sum update-list.yml update-check.sh >sha256sum
zip -9j update.zip update-list.yml update-check.sh
while read F; do
if [ -d "/tmp/${F}" ]; then
FTGZ="$(basename "/tmp/${F}").tgz"
tar -czf "${FTGZ}" -C "/tmp/${F}" .
sha256sum "${FTGZ}" >>sha256sum
zip -9j update.zip "${FTGZ}"
sudo rm -f "${FTGZ}"
else
(cd $(dirname "/tmp/${F}") && sha256sum $(basename "/tmp/${F}")) >>sha256sum
zip -9j update.zip "/tmp/${F}"
fi
done < <(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)
zip -9j update.zip sha256sum
echo "Unmount image file"
sudo umount "/tmp/p1"
sudo umount "/tmp/p3"
rmdir "/tmp/p1"
rmdir "/tmp/p3"
sudo umount "/tmp/files/p1"
sudo umount "/tmp/files/p3"
sudo losetup --detach ${LOOPX}