mirror of
https://github.com/RROrg/rr.git
synced 2025-09-25 21:28:35 +08:00
Compare commits
No commits in common. "main" and "25.9.5" have entirely different histories.
31
.github/workflows/data.yml
vendored
31
.github/workflows/data.yml
vendored
@ -38,7 +38,7 @@ jobs:
|
||||
echo "Delaying for 1 minutes..."
|
||||
sleep 60
|
||||
|
||||
- name: Get Data
|
||||
- name: Get Release RR
|
||||
run: |
|
||||
REPO="${{ github.server_url }}/${{ github.repository }}"
|
||||
PRERELEASE="true"
|
||||
@ -57,17 +57,18 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unzip rr-${TAG}.img.zip -d rr rr.img
|
||||
unzip rr-${TAG}.img.zip -d "rr"
|
||||
|
||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
||||
export TERM=xterm
|
||||
|
||||
LOOPX=$(sudo losetup -f)
|
||||
sudo losetup -P "${LOOPX}" "rr/rr.img"
|
||||
rm -rf "/tmp/mnt/p3"
|
||||
mkdir -p "/tmp/mnt/p3"
|
||||
mount "${LOOPX}p3" "/tmp/mnt/p3"
|
||||
unpackInitrd /tmp/mnt/p3/initrd-rr "rr/initrd"
|
||||
sudo ./localbuild.sh create rr/ws rr/rr.img
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "create failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Get data
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y locales busybox dialog gettext sed gawk jq curl
|
||||
sudo apt install -y python-is-python3 python3-pip libelf-dev qemu-utils cpio xz-utils lz4 lzma bzip2 gzip zstd
|
||||
@ -77,14 +78,10 @@ jobs:
|
||||
sudo mv -f "$(realpath $(which python3))/EXTERNALLY-MANAGED" "$(realpath $(which python3))/EXTERNALLY-MANAGED.bak" 2>/dev/null || true
|
||||
sudo pip3 install -U -r scripts/requirements.txt
|
||||
|
||||
python3 scripts/func.py getmodels -w "rr/initrd" -j "docs/models.json" -x "docs/models.xlsx"
|
||||
python3 scripts/func.py getpats -w "rr/initrd" -j "docs/pats.json" -x "docs/pats.xlsx"
|
||||
python3 scripts/func.py getaddons -w "/tmp" -j "docs/addons.json" -x "docs/addons.xlsx"
|
||||
python3 scripts/func.py getmodules -w "/tmp" -j "docs/modules.json" -x "docs/modules.xlsx"
|
||||
|
||||
sudo umount "/tmp/mnt/p3"
|
||||
sudo losetup -d "${LOOPX}"
|
||||
rm -rf "/tmp/mnt/p3"
|
||||
python3 scripts/func.py getmodels -w "rr/ws/initrd" -j "docs/models.json" -x "docs/models.xlsx"
|
||||
python3 scripts/func.py getpats -w "rr/ws/initrd" -j "docs/pats.json" -x "docs/pats.xlsx"
|
||||
python3 scripts/func.py getaddons -w "rr/ws" -j "docs/addons.json" -x "docs/addons.xlsx"
|
||||
python3 scripts/func.py getmodules -w "rr/ws" -j "docs/modules.json" -x "docs/modules.xlsx"
|
||||
|
||||
- name: Upload to Artifacts
|
||||
if: success()
|
||||
|
28
.github/workflows/issues.yml
vendored
28
.github/workflows/issues.yml
vendored
@ -148,8 +148,6 @@ jobs:
|
||||
run: |
|
||||
# 累了, 毁灭吧!
|
||||
|
||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
||||
|
||||
REPO="${{ github.server_url }}/${{ github.repository }}"
|
||||
PRERELEASE="true"
|
||||
|
||||
@ -169,7 +167,6 @@ jobs:
|
||||
|
||||
unzip rr-${TAG}.img.zip -d rr rr.img
|
||||
|
||||
echo "TAG=${TAG}" >> $GITHUB_ENV
|
||||
|
||||
case "${{ env.size }}" in
|
||||
2GB)
|
||||
@ -177,11 +174,11 @@ jobs:
|
||||
;;
|
||||
4GB)
|
||||
echo "4GB"
|
||||
resizeImg rr/rr.img +2048M
|
||||
sudo ./localbuild.sh resize rr/rr.img +2048M
|
||||
;;
|
||||
8GB)
|
||||
echo "8GB"
|
||||
resizeImg rr/rr.img +6144M
|
||||
sudo ./localbuild.sh resize rr/rr.img +6144M
|
||||
;;
|
||||
*)
|
||||
echo "unknown size"
|
||||
@ -233,7 +230,7 @@ jobs:
|
||||
chmod +x build.sh
|
||||
|
||||
docker pull wjz304/rr:${TAG}
|
||||
docker run --rm --privileged -p 7681:7681 -p 7304:7304 -p 7080:7080 -p 7022:22 -v ${PWD}/build.sh:/opt/rr/build.sh wjz304/rr:${TAG} bash build.sh
|
||||
docker run -it --rm --privileged -p 7681:7681 -p 7304:7304 -p 7080:7080 -p 7022:22 -v ${PWD}/build.sh:/opt/rr/build.sh wjz304/rr:${TAG} bash build.sh
|
||||
|
||||
sudo losetup --detach "${LOOPX}"
|
||||
|
||||
@ -251,47 +248,52 @@ jobs:
|
||||
case "${{ env.format }}" in
|
||||
ova)
|
||||
echo "OVA"
|
||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
||||
convertova "rr/rr.img" "rr/rr.ova"
|
||||
(cd rr && sha256sum rr.ova >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova sha256sum README.txt
|
||||
;;
|
||||
vmx)
|
||||
echo "VMX"
|
||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
||||
convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory
|
||||
(cd rr.vmx && sha256sum * >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx sha256sum README.txt
|
||||
;;
|
||||
vmdk)
|
||||
echo "VMDK"
|
||||
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk
|
||||
(cd rr && sha256sum rr.vmdk >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk sha256sum README.txt
|
||||
;;
|
||||
flat)
|
||||
echo "FLAT"
|
||||
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk
|
||||
(cd rr && sha256sum rr*.vmdk >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk sha256sum README.txt
|
||||
;;
|
||||
vhd)
|
||||
echo "VHD"
|
||||
. scripts/func.sh "${{ secrets.RRORG }}"
|
||||
qemu-img convert rr/rr.img -O vpc rr/rr.vhd
|
||||
createvmc "rr/rr.vhd" "rr/rr.vmc"
|
||||
(cd rr && sha256sum rr.vhd >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd sha256sum README.txt
|
||||
;;
|
||||
vhdx)
|
||||
echo "VHDX"
|
||||
qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx
|
||||
(cd rr && sha256sum rr.vhdx >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx sha256sum README.txt
|
||||
;;
|
||||
*)
|
||||
echo "IMG"
|
||||
(cd rr && sha256sum rr.img >../sha256sum)
|
||||
zip -9 "rr-${{ env.model }}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img sha256sum README.txt
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img sha256sum README.txt
|
||||
esac
|
||||
|
||||
echo "TAG=${TAG}" >> $GITHUB_ENV
|
||||
|
||||
- name: Upload to Artifacts
|
||||
if: env.iscustom == 'true' && success()
|
||||
uses: actions/upload-artifact@v4
|
||||
|
@ -779,26 +779,6 @@
|
||||
"zh_TW": "作者: GXNAS. 強制將 UPS 供電時的待機模式修改為關機. 參數: -f - 關機前觸發關機任務; -e - 待機模式前發關機任務(不修改為關機)."
|
||||
}
|
||||
},
|
||||
"virtiofs": {
|
||||
"system": false,
|
||||
"description": {
|
||||
"en_US": "Auto mount virtio9p and virtiofs file systems (effective after rebooting the system after creating the storage space for the first time since it is mounted to the first storage space by default).",
|
||||
"ar_SA": "تلقائيا تركيب أنظمة ملفات virtio9p و virtiofs (تدخل حيز التنفيذ بعد إعادة تشغيل النظام بعد إنشاء مساحة التخزين لأول مرة حيث يتم تركيبها في مساحة التخزين الأولى بشكل افتراضي).",
|
||||
"de_DE": "Installiert virtio9p und virtiofs automatisch (da sie standardmäßig im ersten Speicherplatz gemountet werden, werden sie wirksam, nachdem das System zum ersten Mal installiert und der Speicherplatz erstellt und neu gestartet wurde).",
|
||||
"es_ES": "Installs virtio9p and virtiofs automatically (effective after rebooting the system after creating the storage space for the first time since it is mounted to the first storage space by default).",
|
||||
"fr_FR": "Monte automatiquement les systèmes de fichiers virtio9p et virtiofs (efficace après le redémarrage du système après la création de l'espace de stockage pour la première fois car il est monté sur le premier espace de stockage par défaut).",
|
||||
"ja_JP": "virtio9pおよびvirtiofsファイルシステムを自動的にマウントします(デフォルトで最初のストレージスペースにマウントされるため、システムを再起動して最初にストレージスペースを作成した後に有効になります)。",
|
||||
"ko_KR": "virtio9p 및 virtiofs 파일 시스템을 자동으로 마운트합니다(기본적으로 첫 번째 스토리지 공간에 마운트되므로 시스템을 재부팅한 후 처음으로 스토리지 공간을 만든 후에 적용됨).",
|
||||
"ru_RU": "Автоматически монтирует файловые системы virtio9p и virtiofs (вступает в силу после перезагрузки системы после создания хранилища в первый раз, так как по умолчанию оно монтируется в первое хранилище).",
|
||||
"th_TH": "ติดตั้งระบบไฟล์ virtio9p และ virtiofs โดยอัตโนมัติ (มีผลหลังจากรีบูตระบบหลังจากสร้างพื้นที่จัดเก็บข้อมูลเป็นครั้งแรกเนื่องจากจะถูกเมานต์ไปยังพื้นที่จัดเก็บข้อมูลแรกโดยค่าเริ่มต้น)",
|
||||
"tr_TR": "virtio9p ve virtiofs dosya sistemlerini otomatik olarak bağlar (varsayılan olarak ilk depolama alanına bağlandığından, depolama alanı ilk kez oluşturulduktan sonra sistemi yeniden başlattıktan sonra geçerlidir).",
|
||||
"uk_UA": "Автоматично монтує файлові системи virtio9p та virtiofs (вступає в силу після перезавантаження системи після створення сховища у перший раз, оскільки за замовчуванням воно монтується у перший сховище).",
|
||||
"vi_VN": "Tự động gắn hệ thống tệp virtio9p và virtiofs (có hiệu lực sau khi khởi động lại hệ thống sau khi tạo không gian lưu trữ lần đầu tiên vì nó được gắn vào không gian lưu trữ đầu tiên theo mặc định).",
|
||||
"zh_CN": "自动挂载 virtio9p 和 virtiofs 文件系统(由于默认挂载到第一个存储空间,所以首次安装系统创建存储空间后重启生效).",
|
||||
"zh_HK": "自動掛載 virtio9p 和 virtiofs 文件系統(由於默認掛載到第一個存儲空間,所以首次安裝系統創建存儲空間後重启生效).",
|
||||
"zh_TW": "自動掛載 virtio9p 和 virtiofs 檔案系統(由於預設掛載到第一個儲存空間,所以首次安裝系統建立儲存空間後重新啟動生效)."
|
||||
}
|
||||
},
|
||||
"vmtools": {
|
||||
"system": false,
|
||||
"description": {
|
||||
|
BIN
docs/addons.xlsx
BIN
docs/addons.xlsx
Binary file not shown.
BIN
docs/models.xlsx
BIN
docs/models.xlsx
Binary file not shown.
Binary file not shown.
735
docs/pats.json
735
docs/pats.json
@ -251,25 +251,444 @@
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS220+": {},
|
||||
"DS224+": {},
|
||||
"DS2419+": {},
|
||||
"DS2419+II": {},
|
||||
"DS2422+": {},
|
||||
"DS3622xs+": {},
|
||||
"DS420+": {},
|
||||
"DS423+": {},
|
||||
"DS620slim": {},
|
||||
"DS720+": {},
|
||||
"DS723+": {},
|
||||
"DS920+": {},
|
||||
"DS923+": {},
|
||||
"DVA1622": {},
|
||||
"DVA3219": {},
|
||||
"DVA3221": {},
|
||||
"FS2500": {},
|
||||
"FS3400": {},
|
||||
"FS3410": {},
|
||||
"DS220+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS220%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS220%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS220%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS220%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS220%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS220%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS224+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS224%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS224%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS2419+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS2419%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS2419%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS2419%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS2419%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS2419%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS2419%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS2419+II": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS2419%2BII_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS2419%2BII_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS2419%2BII_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS2419%2BII_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS2419%2BII_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS2419%2BII_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS2422+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS2422%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS2422%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS2422%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS2422%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS2422%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS2422%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS3622xs+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS3622xs%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS3622xs%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS3622xs%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS3622xs%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS3622xs%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS3622xs%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS420+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS420%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS420%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS420%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS420%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS420%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS420%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS423+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS423%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS423%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS423%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_DS423%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS620slim": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS620slim_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS620slim_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057/DSM_DS620slim_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS620slim_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS620slim_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS620slim_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS720+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS720%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS720%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS720%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS720%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS720%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS720%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS723+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS723%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS723%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS723%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_DS723%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS920+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS920%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DS920%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS920%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS920%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DS920%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DS920%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DS923+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS923%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DS923%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DS923%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_DS923%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DVA1622": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DVA1622_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DVA1622_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DVA1622_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DVA1622_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DVA3219": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DVA3219_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DVA3219_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DVA3219_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DVA3219_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DVA3219_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DVA3219_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"DVA3221": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DVA3221_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_DVA3221_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_DVA3221_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_DVA3221_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_DVA3221_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_DVA3221_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"FS2500": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS2500_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_FS2500_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS2500_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS2500_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_FS2500_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_FS2500_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"FS3400": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3400_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_FS3400_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_FS3400_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS3400_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS3400_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_FS3400_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"FS3410": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3410_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_FS3410_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS3410_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS3410_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"FS3600": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_FS3600_72806.pat",
|
||||
@ -652,6 +1071,14 @@
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS820%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS820%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS820%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS820RP+": {
|
||||
@ -732,11 +1159,78 @@
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3200D_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_SA3200D_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_SA3200D_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"SA3400": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3400_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_SA3400_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_SA3400_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3400_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_SA3400_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_SA3400_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"SA3400D": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3400D_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_SA3400D_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3400D_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_SA3400D_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"SA3410": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3410_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057/DSM_SA3410_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_SA3410_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962/DSM_SA3410_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"SA3400": {},
|
||||
"SA3400D": {},
|
||||
"SA3410": {},
|
||||
"SA3600": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_SA3600_72806.pat",
|
||||
@ -1049,13 +1543,196 @@
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_FS2017_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_FS2017_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_FS2017_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS18017xs+": {},
|
||||
"RS2418+": {},
|
||||
"RS2418RP+": {},
|
||||
"RS2818RP+": {},
|
||||
"RS3617RPxs": {},
|
||||
"RS3617xs+": {},
|
||||
"RS4017xs+": {}
|
||||
"RS18017xs+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS18017xs%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS18017xs%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS18017xs%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS18017xs%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS18017xs%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS18017xs%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS2418+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2418%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS2418%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS2418%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS2418%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS2418%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS2418%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS2418RP+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2418RP%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS2418RP%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS2418RP%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS2418RP%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS2418RP%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS2418RP%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS2818RP+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2818RP%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS2818RP%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS2818RP%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS2818RP%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS2818RP%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS2818RP%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS3617RPxs": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS3617RPxs_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS3617RPxs_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS3617RPxs_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS3617RPxs_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS3617RPxs_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS3617RPxs_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS3617xs+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS3617xs%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS3617xs%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS3617xs%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS3617xs%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS3617xs%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS3617xs%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"RS4017xs+": {
|
||||
"7.2.2-72806-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS4017xs%2B_72806.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.0.1-42218-0": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_RS4017xs%2B_42218.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.1-69057-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2.1/69057-1/DSM_RS4017xs%2B_69057.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.2.0-64570-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.2/64570-1/DSM_RS4017xs%2B_64570.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.1-42962-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1.1/42962-1/DSM_RS4017xs%2B_42962.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
},
|
||||
"7.1.0-42661-1": {
|
||||
"url": "https://global.synologydownload.com/download/DSM/release/7.1/42661-1/DSM_RS4017xs%2B_42661.pat",
|
||||
"sum": "00000000000000000000000000000000"
|
||||
}
|
||||
}
|
||||
}
|
BIN
docs/pats.xlsx
BIN
docs/pats.xlsx
Binary file not shown.
@ -363,7 +363,7 @@ if [ "${DIRECT}" = "true" ] || [ "${MEV:-physical}" = "parallels" ]; then
|
||||
_bootwait || exit 0
|
||||
|
||||
printf "\033[1;33m%s\033[0m\n" "$(TEXT "Reboot to boot directly in DSM")"
|
||||
[ ! -f "/.dockerenv" ] && reboot
|
||||
[ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ] && reboot
|
||||
exit 0
|
||||
else
|
||||
rm -f "${USER_RSYSENVFILE}" 2>/dev/null || true
|
||||
@ -390,7 +390,7 @@ else
|
||||
printf "."
|
||||
sleep 1
|
||||
done
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
[ ! -f /var/run/dhcpcd/pid ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
||||
fi
|
||||
printf "$(TEXT "Waiting IP.\n")"
|
||||
@ -464,7 +464,7 @@ else
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
# Disconnect wireless
|
||||
lsmod | grep -q iwlwifi && for F in /sys/class/net/wlan*; do
|
||||
[ ! -e "${F}" ] && continue
|
||||
|
@ -94,7 +94,7 @@ fi
|
||||
initConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "modblacklist" "evbug,cdc_ether" "${USER_CONFIG_FILE}"
|
||||
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
if arrayExistItem "sortnetif:" "$(readConfigMap "addons" "${USER_CONFIG_FILE}")"; then
|
||||
_sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
|
||||
fi
|
||||
@ -138,8 +138,13 @@ if [ "${BUS}" = "usb" ]; then
|
||||
elif [ "${BUS}" = "docker" ]; then
|
||||
TYPE="PC"
|
||||
elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then
|
||||
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
echo "LOCALBUILD MODE"
|
||||
TYPE="PC"
|
||||
else
|
||||
die "$(printf "$(TEXT "The loader disk does not support the current %s, only %s DoM is supported.")" "${BUS}" "${BUSLIST// /\/}")"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Save variables to user config file
|
||||
writeConfigKey "vid" "${VID}" "${USER_CONFIG_FILE}"
|
||||
@ -200,7 +205,7 @@ while [ ${COUNT} -lt 30 ]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
[ ! -f /var/run/dhcpcd/pid ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
@ -257,7 +262,7 @@ fi
|
||||
printf "\n"
|
||||
|
||||
DSMLOGO="$(readConfigKey "dsmlogo" "${USER_CONFIG_FILE}")"
|
||||
if [ "${DSMLOGO}" = "true" ] && [ -c "/dev/fb0" ] && [ ! -f "/.dockerenv" ]; then
|
||||
if [ "${DSMLOGO}" = "true" ] && [ -c "/dev/fb0" ] && [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
IP="$(getIP)"
|
||||
echo "${IP}" | grep -q "^169\.254\." && IP=""
|
||||
[ -n "${IP}" ] && URL="http://${IP}:${TTYD:-7681}" || URL="http://rr:${TTYD:-7681}"
|
||||
@ -268,7 +273,7 @@ if [ "${DSMLOGO}" = "true" ] && [ -c "/dev/fb0" ] && [ ! -f "/.dockerenv" ]; the
|
||||
[ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>&1 || true
|
||||
fi
|
||||
WEBHOOKURL="$(readConfigKey "webhookurl" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${WEBHOOKURL}" ] && [ ! -f "${TMP_PATH}/WebhookSent" ] && [ ! -f "/.dockerenv" ]; then
|
||||
if [ -n "${WEBHOOKURL}" ] && [ ! -f "${TMP_PATH}/WebhookSent" ] && [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
DMI="$(dmesg 2>/dev/null | grep -i "DMI:" | head -1 | sed 's/\[.*\] DMI: //i')"
|
||||
IP="$(getIP)"
|
||||
echo "${IP}" | grep -q "^169\.254\." && IP=""
|
||||
|
@ -130,6 +130,9 @@ fi
|
||||
# Mounts backtitle dynamically
|
||||
function backtitle() {
|
||||
BACKTITLE=""
|
||||
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
BACKTITLE="LOCAL "
|
||||
fi
|
||||
BACKTITLE+="${RR_TITLE}${RR_RELEASE:+(${RR_RELEASE})}"
|
||||
if [ -n "${MODEL}" ]; then
|
||||
BACKTITLE+=" ${MODEL}(${PLATFORM})"
|
||||
@ -3143,6 +3146,7 @@ function advancedMenu() {
|
||||
if [ -n "$(ls /dev/mmcblk* 2>/dev/null)" ]; then
|
||||
echo "b \"$(TEXT "Use EMMC as the system disk:") \Z4${EMMCBOOT}\Zn\""
|
||||
fi
|
||||
if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
echo "s \"$(TEXT "Show disks information")\""
|
||||
echo "t \"$(TEXT "Mounting DSM storage pool")\""
|
||||
echo "f \"$(TEXT "Format disk(s) # Without loader disk")\""
|
||||
@ -3154,6 +3158,7 @@ function advancedMenu() {
|
||||
echo "o \"$(TEXT "Remove the blocked IP database of DSM")\""
|
||||
echo "q \"$(TEXT "Disable all scheduled tasks of DSM")\""
|
||||
echo "r \"$(TEXT "Initialize DSM network settings")\""
|
||||
fi
|
||||
echo "e \"$(TEXT "Exit")\""
|
||||
} >"${TMP_PATH}/menu"
|
||||
|
||||
@ -3389,6 +3394,7 @@ function settingsMenu() {
|
||||
echo "p \"$(TEXT "Custom patch script # Developer")\""
|
||||
echo "u \"$(TEXT "Edit user config file manually")\""
|
||||
echo "g \"$(TEXT "Edit grub.cfg file manually")\""
|
||||
if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
echo "r \"$(TEXT "Try to recovery a installed DSM system")\""
|
||||
echo "c \"$(TEXT "Clone bootloader disk to another disk")\""
|
||||
echo "q \"$(TEXT "System Environment Report")\""
|
||||
@ -3397,6 +3403,7 @@ function settingsMenu() {
|
||||
echo "s \"$(TEXT "Save modifications of '/opt/rr'")\""
|
||||
echo "i \"$(TEXT "Set static IP")\""
|
||||
echo "w \"$(TEXT "Set wireless account")\""
|
||||
fi
|
||||
echo "1 \"$(TEXT "Set global proxy")\""
|
||||
echo "2 \"$(TEXT "Set github proxy")\""
|
||||
UPDMC="$([ -f "${MC_RAMDISK_FILE}" ] && echo "true" || echo "false")"
|
||||
|
251
localbuild.sh
Executable file
251
localbuild.sh
Executable file
@ -0,0 +1,251 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (C) 2022 Ing <https://github.com/wjz304>
|
||||
#
|
||||
# This is free software, licensed under the MIT License.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "This script must be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function help() {
|
||||
cat <<EOF
|
||||
Usage: $0 <command> [args]
|
||||
Commands:
|
||||
create [workspace] [rr.img] - Create the workspace
|
||||
init - Initialize the environment
|
||||
config [model] [version] - Config the DSM system
|
||||
build - Build the DSM system
|
||||
pack [rr.img] - Pack to rr.img
|
||||
help - Show this help
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
function create() {
|
||||
local WORKSPACE RRIMGPATH LOOPX INITRD_FILE INITRD_FORMAT
|
||||
WORKSPACE="$(realpath "${1:-workspace}")"
|
||||
RRIMGPATH="$(realpath "${2:-rr.img}")"
|
||||
|
||||
if [ ! -f "${RRIMGPATH}" ]; then
|
||||
echo "File not found: ${RRIMGPATH}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo apt update
|
||||
sudo apt install -y locales busybox dialog gettext sed gawk jq curl
|
||||
sudo apt install -y python-is-python3 python3-pip libelf-dev qemu-utils dosfstools cpio xz-utils lz4 lzma bzip2 gzip zstd
|
||||
# sudo snap install yq
|
||||
if ! type yq >/dev/null 2>&1 || ! yq --version 2>/dev/null | grep -q "v4."; then
|
||||
sudo curl -kL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/bin/yq && sudo chmod a+x /usr/bin/yq
|
||||
fi
|
||||
|
||||
# Backup the original python3 executable.
|
||||
sudo mv -f "$(realpath "$(which python3)")/EXTERNALLY-MANAGED" "$(realpath "$(which python3)")/EXTERNALLY-MANAGED.bak" 2>/dev/null || true
|
||||
sudo pip3 install -U click requests requests-toolbelt qrcode[pil] beautifulsoup4
|
||||
|
||||
sudo locale-gen ar_SA.UTF-8 de_DE.UTF-8 en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 ru_RU.UTF-8 th_TH.UTF-8 tr_TR.UTF-8 uk_UA.UTF-8 vi_VN.UTF-8 zh_CN.UTF-8 zh_HK.UTF-8 zh_TW.UTF-8
|
||||
|
||||
LOOPX=$(sudo losetup -f)
|
||||
sudo losetup -P "${LOOPX}" "${RRIMGPATH}"
|
||||
|
||||
# Check partitions and ignore errors
|
||||
fsck.vfat -aw "${LOOPX}p1" >/dev/null 2>&1 || true
|
||||
fsck.ext2 -p "${LOOPX}p2" >/dev/null 2>&1 || true
|
||||
fsck.ext4 -p "${LOOPX}p3" >/dev/null 2>&1 || true
|
||||
|
||||
echo "Mounting image file"
|
||||
for i in {1..3}; do
|
||||
rm -rf "/tmp/mnt/p${i}"
|
||||
mkdir -p "/tmp/mnt/p${i}"
|
||||
sudo mount "${LOOPX}p${i}" "/tmp/mnt/p${i}" || {
|
||||
echo "Can't mount ${LOOPX}p${i}."
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
|
||||
echo "Create WORKSPACE"
|
||||
rm -rf "${WORKSPACE}"
|
||||
mkdir -p "${WORKSPACE}/mnt" "${WORKSPACE}/tmp" "${WORKSPACE}/initrd"
|
||||
cp -rpf /tmp/mnt/p{1,2,3} "${WORKSPACE}/mnt/"
|
||||
|
||||
INITRD_FILE="${WORKSPACE}/mnt/p3/initrd-rr"
|
||||
INITRD_FORMAT=$(file -b --mime-type "${INITRD_FILE}")
|
||||
|
||||
case "${INITRD_FORMAT}" in
|
||||
*'x-cpio'*) (cd "${WORKSPACE}/initrd" && sudo cpio -idm <"${INITRD_FILE}") >/dev/null 2>&1 ;;
|
||||
*'x-xz'*) (cd "${WORKSPACE}/initrd" && xz -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
||||
*'x-lz4'*) (cd "${WORKSPACE}/initrd" && lz4 -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
||||
*'x-lzma'*) (cd "${WORKSPACE}/initrd" && lzma -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
||||
*'x-bzip2'*) (cd "${WORKSPACE}/initrd" && bzip2 -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
||||
*'gzip'*) (cd "${WORKSPACE}/initrd" && gzip -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
||||
*'zstd'*) (cd "${WORKSPACE}/initrd" && zstd -dc "${INITRD_FILE}" | sudo cpio -idm) >/dev/null 2>&1 ;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
sudo sync
|
||||
for i in {1..3}; do
|
||||
sudo umount "/tmp/mnt/p${i}"
|
||||
rm -rf "/tmp/mnt/p${i}"
|
||||
done
|
||||
sudo losetup --detach "${LOOPX}"
|
||||
|
||||
if [ ! -f "${WORKSPACE}/initrd/opt/rr/init.sh" ] || [ ! -f "${WORKSPACE}/initrd/opt/rr/menu.sh" ]; then
|
||||
echo "initrd decompression failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
||||
cat <<EOF >"$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
||||
export LOADER_DISK="LOCALBUILD"
|
||||
export CHROOT_PATH="${WORKSPACE}"
|
||||
EOF
|
||||
echo "OK."
|
||||
}
|
||||
|
||||
function init() {
|
||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
||||
echo "Please run init first"
|
||||
exit 1
|
||||
fi
|
||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
||||
pushd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
||||
echo "init"
|
||||
./init.sh
|
||||
local RET=$?
|
||||
popd || exit 1
|
||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
||||
exit ${RET}
|
||||
}
|
||||
|
||||
function config() {
|
||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
||||
echo "Please run init first"
|
||||
exit 1
|
||||
fi
|
||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
||||
local RET=1
|
||||
pushd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
||||
while true; do
|
||||
if [ -z "${1}" ]; then
|
||||
echo "menu"
|
||||
./menu.sh || break
|
||||
RET=0
|
||||
else
|
||||
echo "model"
|
||||
./menu.sh modelMenu "${1:-SA6400}" || break
|
||||
echo "version"
|
||||
./menu.sh productversMenu "${2:-7.2}" || break
|
||||
RET=0
|
||||
fi
|
||||
break
|
||||
done
|
||||
popd || exit 1
|
||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
||||
exit ${RET}
|
||||
}
|
||||
|
||||
function build() {
|
||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
||||
echo "Please run init first"
|
||||
exit 1
|
||||
fi
|
||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
||||
local RET=1
|
||||
pushd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
||||
while true; do
|
||||
echo "build"
|
||||
./menu.sh make -1 || break
|
||||
echo "clean"
|
||||
./menu.sh cleanCache -1 || break
|
||||
RET=0
|
||||
break
|
||||
done
|
||||
popd || exit 1
|
||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
||||
exit ${RET}
|
||||
}
|
||||
|
||||
function pack() {
|
||||
if [ ! -f "$(dirname "${BASH_SOURCE[0]}")/rr.env" ]; then
|
||||
echo "Please run init first"
|
||||
exit 1
|
||||
fi
|
||||
. "$(dirname "${BASH_SOURCE[0]}")/rr.env"
|
||||
|
||||
local RRIMGPATH LOOPX
|
||||
RRIMGPATH="$(realpath "${1:-rr.img}")"
|
||||
rm -f "${RRIMGPATH}"
|
||||
gzip -dc "${CHROOT_PATH}/initrd/opt/rr/grub.img.gz" >"${RRIMGPATH}"
|
||||
fdisk -l "${RRIMGPATH}"
|
||||
|
||||
LOOPX=$(sudo losetup -f)
|
||||
sudo losetup -P "${LOOPX}" "${RRIMGPATH}"
|
||||
|
||||
# Check partitions and ignore errors
|
||||
fsck.vfat -aw "${LOOPX}p1" >/dev/null 2>&1 || true
|
||||
fsck.ext2 -p "${LOOPX}p2" >/dev/null 2>&1 || true
|
||||
fsck.ext4 -p "${LOOPX}p3" >/dev/null 2>&1 || true
|
||||
|
||||
echo "Mounting image file"
|
||||
for i in {1..3}; do
|
||||
rm -rf "/tmp/mnt/p${i}"
|
||||
mkdir -p "/tmp/mnt/p${i}"
|
||||
sudo mount "${LOOPX}p${i}" "/tmp/mnt/p${i}" || {
|
||||
echo "Can't mount ${LOOPX}p${i}."
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
|
||||
echo "Pack image file"
|
||||
for i in {1..3}; do
|
||||
[ ${i} -eq 1 ] && sudo cp -af "${CHROOT_PATH}/mnt/p${i}/"{.locale,.timezone} "/tmp/mnt/p${i}/" 2>/dev/null
|
||||
sudo cp -rf "${CHROOT_PATH}/mnt/p${i}/"* "/tmp/mnt/p${i}" || {
|
||||
echo "Can't cp ${LOOPX}p${i}."
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
|
||||
sudo sync
|
||||
for i in {1..3}; do
|
||||
sudo umount "/tmp/mnt/p${i}"
|
||||
rm -rf "/tmp/mnt/p${i}"
|
||||
done
|
||||
sudo losetup --detach "${LOOPX}"
|
||||
echo "OK."
|
||||
exit 0
|
||||
}
|
||||
|
||||
function resize() {
|
||||
local INPUT_FILE="${1}"
|
||||
local CHANGE_SIZE="${2}"
|
||||
local OUTPUT_FILE="${3:-${INPUT_FILE}}"
|
||||
|
||||
[ -z "${INPUT_FILE}" ] || [ ! -f "${INPUT_FILE}" ] && exit 1
|
||||
[ -z "${CHANGE_SIZE}" ] && exit 1
|
||||
|
||||
INPUT_FILE="$(realpath "${INPUT_FILE}")"
|
||||
OUTPUT_FILE="$(realpath "${OUTPUT_FILE}")"
|
||||
|
||||
local SIZE=$(($(du -sm "${INPUT_FILE}" 2>/dev/null | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g')))
|
||||
[ "${SIZE:-0}" -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}" >/dev/null 2>&1
|
||||
local LOOPX LOOPXPY
|
||||
LOOPX=$(sudo losetup -f)
|
||||
sudo losetup -P "${LOOPX}" "${OUTPUT_FILE}"
|
||||
LOOPXPY="$(find "${LOOPX}p"* -maxdepth 0 2>/dev/null | sort -n | tail -1)"
|
||||
sudo e2fsck -fp "${LOOPXPY:-${LOOPX}p3}"
|
||||
sudo resize2fs "${LOOPXPY:-${LOOPX}p3}"
|
||||
sudo losetup -d "${LOOPX}"
|
||||
}
|
||||
|
||||
"$@"
|
117
sourcebuild.sh
Executable file
117
sourcebuild.sh
Executable file
@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (C) 2022 Ing <https://github.com/wjz304>
|
||||
#
|
||||
# This is free software, licensed under the MIT License.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# sudo apt update
|
||||
# sudo apt install -y locales busybox dialog gettext sed gawk jq curl
|
||||
# sudo apt install -y python-is-python3 python3-pip libelf-dev qemu-utils dosfstools cpio xz-utils lz4 lzma bzip2 gzip zstd
|
||||
# # sudo snap install yq
|
||||
# if ! type yq >/dev/null 2>&1 || ! yq --version 2>/dev/null | grep -q "v4."; then
|
||||
# sudo curl -kL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/bin/yq && sudo chmod a+x /usr/bin/yq
|
||||
# fi
|
||||
#
|
||||
# # Backup the original python3 executable.
|
||||
# sudo mv -f "$(realpath $(which python3))/EXTERNALLY-MANAGED" "$(realpath $(which python3))/EXTERNALLY-MANAGED.bak" 2>/dev/null || true
|
||||
# sudo pip3 install -U click requests requests-toolbelt qrcode[pil] beautifulsoup4
|
||||
#
|
||||
# sudo locale-gen ar_SA.UTF-8 de_DE.UTF-8 en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 ru_RU.UTF-8 th_TH.UTF-8 tr_TR.UTF-8 uk_UA.UTF-8 vi_VN.UTF-8 zh_CN.UTF-8 zh_HK.UTF-8 zh_TW.UTF-8
|
||||
#
|
||||
# export TOKEN="${1}"
|
||||
#
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "This script must be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. scripts/func.sh "${TOKEN}"
|
||||
|
||||
echo "Get extractor"
|
||||
getCKs "files/mnt/p3/cks" "true"
|
||||
getLKMs "files/mnt/p3/lkms" "true"
|
||||
getAddons "files/mnt/p3/addons" "true"
|
||||
getModules "files/mnt/p3/modules" "true"
|
||||
getBuildroot "files/mnt/p3" "true"
|
||||
getExtractor "files/mnt/p3/extractor"
|
||||
|
||||
echo "Repack initrd"
|
||||
convertpo2mo "files/initrd/opt/rr/lang"
|
||||
repackInitrd "files/mnt/p3/initrd-rr" "files/initrd"
|
||||
|
||||
if [ -n "${1}" ]; then
|
||||
LOADER_DISK="LOCALBUILD"
|
||||
CHROOT_PATH="$(realpath files)"
|
||||
export LOADER_DISK="LOCALBUILD"
|
||||
export CHROOT_PATH="${CHROOT_PATH}"
|
||||
(
|
||||
cd "${CHROOT_PATH}/initrd/opt/rr" || exit 1
|
||||
./init.sh
|
||||
./menu.sh modelMenu "${1}"
|
||||
./menu.sh productversMenu "${2:-7.2}"
|
||||
./menu.sh make -1
|
||||
./menu.sh cleanCache -1
|
||||
)
|
||||
fi
|
||||
|
||||
IMAGE_FILE="rr.img"
|
||||
gzip -dc "files/initrd/opt/rr/grub.img.gz" >"${IMAGE_FILE}"
|
||||
fdisk -l "${IMAGE_FILE}"
|
||||
|
||||
LOOPX=$(sudo losetup -f)
|
||||
sudo losetup -P "${LOOPX}" "${IMAGE_FILE}"
|
||||
|
||||
# Check partitions and ignore errors
|
||||
fsck.vfat -aw "${LOOPX}p1" >/dev/null 2>&1 || true
|
||||
fsck.ext2 -p "${LOOPX}p2" >/dev/null 2>&1 || true
|
||||
fsck.ext4 -p "${LOOPX}p3" >/dev/null 2>&1 || true
|
||||
|
||||
for i in {1..3}; do
|
||||
[ ! -d "files/mnt/p${i}" ] && continue
|
||||
|
||||
rm -rf "/tmp/mnt/p${i}"
|
||||
mkdir -p "/tmp/mnt/p${i}"
|
||||
|
||||
echo "Mounting ${LOOPX}p${i}"
|
||||
sudo mount "${LOOPX}p${i}" "/tmp/mnt/p${i}" || {
|
||||
echo "Can't mount ${LOOPX}p${i}."
|
||||
break
|
||||
}
|
||||
echo "Copying files to ${LOOPX}p${i}"
|
||||
[ ${i} -eq 1 ] && sudo cp -af "files/mnt/p${i}/"{.locale,.timezone} "/tmp/mnt/p${i}/" 2>/dev/null || true
|
||||
sudo cp -rf "files/mnt/p${i}/"* "/tmp/mnt/p${i}" || true
|
||||
|
||||
sudo sync
|
||||
|
||||
echo "Unmounting ${LOOPX}p${i}"
|
||||
sudo umount "/tmp/mnt/p${i}" || {
|
||||
echo "Can't umount ${LOOPX}p${i}."
|
||||
break
|
||||
}
|
||||
rm -rf "/tmp/mnt/p${i}"
|
||||
done
|
||||
|
||||
sudo losetup --detach "${LOOPX}"
|
||||
|
||||
resizeImg "${IMAGE_FILE}" "+2560M"
|
||||
|
||||
# convertova "${IMAGE_FILE}" "${IMAGE_FILE/.img/.ova}"
|
||||
|
||||
# update.zip
|
||||
sha256sum update-list.yml update-check.sh >sha256sum
|
||||
zip -9j "update.zip" update-list.yml update-check.sh
|
||||
while read -r F; do
|
||||
if [ -d "${F}" ]; then
|
||||
FTGZ="$(basename "${F}").tgz"
|
||||
tar -zcf "${FTGZ}" -C "${F}" .
|
||||
sha256sum "${FTGZ}" >>sha256sum
|
||||
zip -9j "update.zip" "${FTGZ}"
|
||||
rm -f "${FTGZ}"
|
||||
else
|
||||
(cd "$(dirname "${F}")" && sha256sum "$(basename "${F}")") >>sha256sum
|
||||
zip -9j "update.zip" "${F}"
|
||||
fi
|
||||
done <<<"$(yq '.replace | explode(.) | to_entries | map([.key])[] | .[]' update-list.yml)"
|
||||
zip -9j "update.zip" sha256sum
|
Loading…
x
Reference in New Issue
Block a user