Compare commits

...

3 Commits

19 changed files with 4211 additions and 4046 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ alias DIALOG='dialog --backtitle "$(backtitle)" --colors --aspect 50'
# lock
exec 304>"${WORK_PATH}/menu.lock"
flock -n 304 || {
DIALOG --title "$(TEXT "Error")" \
dialog --colors --aspect 50 --title "$(TEXT "Error")" \
--msgbox "$(TEXT "The menu.sh instance is already running in another terminal. To avoid conflicts, please operate in one instance only.")" 0 0
exit 1
}
@ -2431,21 +2431,45 @@ function savemodrr() {
RDXZ_PATH="${TMP_PATH}/rdxz_tmp"
rm -rf "${RDXZ_PATH}"
mkdir -p "${RDXZ_PATH}"
INITRD_FORMAT=$(file -b --mime-type "${RR_RAMDISK_FILE}")
(
cd "${RDXZ_PATH}"
xz -dc <"${RR_RAMDISK_FILE}" | cpio -idm
case "${INITRD_FORMAT}" in
*'x-cpio'*) cpio -idm <"${RR_RAMDISK_FILE}" ;;
*'x-xz'*) xz -dc "${RR_RAMDISK_FILE}" | cpio -idm ;;
*'x-lz4'*) lz4 -dc "${RR_RAMDISK_FILE}" | cpio -idm ;;
*'x-lzma'*) lzma -dc "${RR_RAMDISK_FILE}" | cpio -idm ;;
*'x-bzip2'*) bzip2 -dc "${RR_RAMDISK_FILE}" | cpio -idm ;;
*'gzip'*) gzip -dc "${RR_RAMDISK_FILE}" | cpio -idm ;;
*'zstd'*) zstd -dc "${RR_RAMDISK_FILE}" | cpio -idm ;;
*) ;;
esac
) >/dev/null 2>&1 || true
if [ -z "$(ls -A "$RDXZ_PATH")" ]; then
DIALOG --title "$(TEXT "Settings")" \
--msgbox "$(TEXT "initrd-rr file format error!")" 0 0
return
fi
rm -rf "${RDXZ_PATH}/opt/rr"
cp -rf "$(dirname ${WORK_PATH})" "${RDXZ_PATH}/"
(
cd "${RDXZ_PATH}"
RDSIZE=$(du -sb ${RDXZ_PATH} 2>/dev/null | awk '{print $1}')
find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 --check=crc32 >"${RR_RAMDISK_FILE}"
case "${INITRD_FORMAT}" in
*'x-cpio'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} >"${RR_RAMDISK_FILE}" ;;
*'x-xz'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 -C crc32 -c - >"${RR_RAMDISK_FILE}" ;;
*'x-lz4'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | lz4 -9 -l -c - >"${RR_RAMDISK_FILE}" ;;
*'x-lzma'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | lzma -9 -c - >"${RR_RAMDISK_FILE}" ;;
*'x-bzip2'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | bzip2 -9 -c - >"${RR_RAMDISK_FILE}" ;;
*'gzip'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | gzip -9 -c - >"${RR_RAMDISK_FILE}" ;;
*'zstd'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | zstd -19 -T0 -f -c - >"${RR_RAMDISK_FILE}" ;;
*) ;;
esac
) 2>&1 | DIALOG --title "$(TEXT "Settings")" \
--gauge "$(TEXT "Saving ...\n(It usually takes 5-10 minutes, please be patient and wait.)")" 8 100
rm -rf "${RDXZ_PATH}"
DIALOG --title "$(TEXT "Settings")" \
--msgbox ""$(TEXT "Save is complete.")"" 0 0
--msgbox "$(TEXT "Save is complete.")" 0 0
return
}
@ -2624,10 +2648,24 @@ function changePassword() {
RDXZ_PATH="${TMP_PATH}/rdxz_tmp"
rm -rf "${RDXZ_PATH}"
mkdir -p "${RDXZ_PATH}"
[ -f "${RR_RAMUSER_FILE}" ] && (
cd "${RDXZ_PATH}"
xz -dc <"${RR_RAMUSER_FILE}" | cpio -idm
) >/dev/null 2>&1 || true
if [ -f "${RR_RAMUSER_FILE}" ]; then
INITRD_FORMAT=$(file -b --mime-type "${RR_RAMUSER_FILE}")
(
cd "${RDXZ_PATH}"
case "${INITRD_FORMAT}" in
*'x-cpio'*) cpio -idm <"${RR_RAMUSER_FILE}" ;;
*'x-xz'*) xz -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'x-lz4'*) lz4 -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'x-lzma'*) lzma -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'x-bzip2'*) bzip2 -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'gzip'*) gzip -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'zstd'*) zstd -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*) ;;
esac
) >/dev/null 2>&1 || true
else
INITRD_FORMAT="application/zstd"
fi
if [ "${STRPASSWD:-rr}" = "rr" ]; then
rm -f ${RDXZ_PATH}/etc/shadow* 2>/dev/null
else
@ -2638,7 +2676,16 @@ function changePassword() {
(
cd "${RDXZ_PATH}"
RDSIZE=$(du -sb ${RDXZ_PATH} 2>/dev/null | awk '{print $1}')
find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 --check=crc32 >"${RR_RAMUSER_FILE}"
case "${INITRD_FORMAT}" in
*'x-cpio'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} >"${RR_RAMUSER_FILE}" ;;
*'x-xz'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 -C crc32 -c - >"${RR_RAMUSER_FILE}" ;;
*'x-lz4'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | lz4 -9 -l -c - >"${RR_RAMUSER_FILE}" ;;
*'x-lzma'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | lzma -9 -c - >"${RR_RAMUSER_FILE}" ;;
*'x-bzip2'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | bzip2 -9 -c - >"${RR_RAMUSER_FILE}" ;;
*'gzip'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | gzip -9 -c - >"${RR_RAMUSER_FILE}" ;;
*'zstd'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | zstd -19 -T0 -f -c - >"${RR_RAMUSER_FILE}" ;;
*) ;;
esac
) 2>&1 | DIALOG --title "$(TEXT "Settings")"
else
rm -f "${RR_RAMUSER_FILE}"
@ -2688,17 +2735,31 @@ function changePorts() {
fi
# save to rrorg.conf
rm -f "/etc/rrorg.conf"
[ ! "${HTTP:-7080}" = "7080" ] && echo "HTTP_PORT=${HTTP}" >>"/etc/rrorg.conf" && /etc/init.d/S90thttpd restart >/dev/null 2>&1
[ ! "${DUFS:-7304}" = "7304" ] && echo "DUFS_PORT=${DUFS}" >>"/etc/rrorg.conf" && /etc/init.d/S99dufs restart >/dev/null 2>&1
[ ! "${TTYD:-7681}" = "7681" ] && echo "TTYD_PORT=${TTYD}" >>"/etc/rrorg.conf" && /etc/init.d/S99ttyd restart >/dev/null 2>&1
[ ! "${HTTP:-7080}" = "7080" ] && (echo "HTTP_PORT=${HTTP}" >>"/etc/rrorg.conf" && /etc/init.d/S90thttpd restart >/dev/null 2>&1)
[ ! "${DUFS:-7304}" = "7304" ] && (echo "DUFS_PORT=${DUFS}" >>"/etc/rrorg.conf" && /etc/init.d/S99dufs restart >/dev/null 2>&1)
[ ! "${TTYD:-7681}" = "7681" ] && (echo "TTYD_PORT=${TTYD}" >>"/etc/rrorg.conf" && /etc/init.d/S99ttyd restart >/dev/null 2>&1)
# save to rru
RDXZ_PATH="${TMP_PATH}/rdxz_tmp"
rm -rf "${RDXZ_PATH}"
mkdir -p "${RDXZ_PATH}"
[ -f "${RR_RAMUSER_FILE}" ] && (
cd "${RDXZ_PATH}"
xz -dc <"${RR_RAMUSER_FILE}" | cpio -idm
) >/dev/null 2>&1 || true
if [ -f "${RR_RAMUSER_FILE}" ]; then
INITRD_FORMAT=$(file -b --mime-type "${RR_RAMUSER_FILE}")
(
cd "${RDXZ_PATH}"
case "${INITRD_FORMAT}" in
*'x-cpio'*) cpio -idm <"${RR_RAMUSER_FILE}" ;;
*'x-xz'*) xz -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'x-lz4'*) lz4 -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'x-lzma'*) lzma -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'x-bzip2'*) bzip2 -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'gzip'*) gzip -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*'zstd'*) zstd -dc "${RR_RAMUSER_FILE}" | cpio -idm ;;
*) ;;
esac
) >/dev/null 2>&1 || true
else
INITRD_FORMAT="application/zstd"
fi
if [ ! -f "/etc/rrorg.conf" ]; then
rm -f "${RDXZ_PATH}/etc/rrorg.conf" 2>/dev/null
else
@ -2709,7 +2770,16 @@ function changePorts() {
(
cd "${RDXZ_PATH}"
RDSIZE=$(du -sb ${RDXZ_PATH} 2>/dev/null | awk '{print $1}')
find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 --check=crc32 >"${RR_RAMUSER_FILE}"
case "${INITRD_FORMAT}" in
*'x-cpio'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} >"${RR_RAMUSER_FILE}" ;;
*'x-xz'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 -C crc32 -c - >"${RR_RAMUSER_FILE}" ;;
*'x-lz4'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | lz4 -9 -l -c - >"${RR_RAMUSER_FILE}" ;;
*'x-lzma'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | lzma -9 -c - >"${RR_RAMUSER_FILE}" ;;
*'x-bzip2'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | bzip2 -9 -c - >"${RR_RAMUSER_FILE}" ;;
*'gzip'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | gzip -9 -c - >"${RR_RAMUSER_FILE}" ;;
*'zstd'*) find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | zstd -19 -T0 -f -c - >"${RR_RAMUSER_FILE}" ;;
*) ;;
esac
) 2>&1 | DIALOG --title "$(TEXT "Settings")"
else
rm -f "${RR_RAMUSER_FILE}"

View File

@ -75,9 +75,21 @@ function create() {
cp -rf "/tmp/mnt/p1" "${WORKSPACE}/mnt/p1"
cp -rf "/tmp/mnt/p2" "${WORKSPACE}/mnt/p2"
cp -rf "/tmp/mnt/p3" "${WORKSPACE}/mnt/p3"
INITRD_FILE="${WORKSPACE}/mnt/p3/initrd-rr"
INITRD_FORMAT=$(file -b --mime-type "${INITRD_FILE}")
(
cd "${WORKSPACE}/initrd"
xz -dc <"${WORKSPACE}/mnt/p3/initrd-rr" | cpio -idm
case "${INITRD_FORMAT}" in
*'x-cpio'*) sudo cpio -idm <"${INITRD_FILE}" ;;
*'x-xz'*) xz -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'x-lz4'*) lz4 -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'x-lzma'*) lzma -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'x-bzip2'*) bzip2 -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'gzip'*) gzip -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'zstd'*) zstd -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*) ;;
esac
) 2>/dev/null
sudo sync
sudo umount "/tmp/mnt/p1"

View File

@ -244,15 +244,34 @@ function repackInitrd() {
RDXZ_PATH="rdxz_tmp"
mkdir -p "${RDXZ_PATH}"
INITRD_FORMAT=$(file -b --mime-type "${INITRD_FILE}")
(
cd "${RDXZ_PATH}"
sudo xz -dc <"${INITRD_FILE}" | sudo cpio -idm
case "${INITRD_FORMAT}" in
*'x-cpio'*) sudo cpio -idm <"${INITRD_FILE}" ;;
*'x-xz'*) xz -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'x-lz4'*) lz4 -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'x-lzma'*) lzma -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'x-bzip2'*) bzip2 -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'gzip'*) gzip -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*'zstd'*) zstd -dc "${INITRD_FILE}" | sudo cpio -idm ;;
*) ;;
esac
) || true
sudo cp -rf "${PLUGIN_PATH}/"* "${RDXZ_PATH}/"
[ -f "${OUTPUT_PATH}" ] && rm -rf "${OUTPUT_PATH}"
(
cd "${RDXZ_PATH}"
sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | xz -9 --check=crc32 >"${OUTPUT_PATH}"
case "${INITRD_FORMAT}" in
*'x-cpio'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root >"${OUTPUT_PATH}" ;;
*'x-xz'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | xz -9 -C crc32 -c - >"${OUTPUT_PATH}" ;;
*'x-lz4'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | lz4 -9 -l -c - >"${OUTPUT_PATH}" ;;
*'x-lzma'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | lzma -9 -c - >"${OUTPUT_PATH}" ;;
*'x-bzip2'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | bzip2 -9 -c - >"${OUTPUT_PATH}" ;;
*'gzip'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | gzip -9 -c - >"${OUTPUT_PATH}" ;;
*'zstd'*) sudo find . 2>/dev/null | sudo cpio -o -H newc -R root:root | zstd -19 -T0 -f -c - >"${OUTPUT_PATH}" ;;
*) ;;
esac
) || true
sudo rm -rf "${RDXZ_PATH}"
}