modified: .github/workflows/mikrotik_patch.yml

modified:   patch.py
This commit is contained in:
zyb 2024-06-24 11:06:02 +08:00
parent 186ee579ac
commit 800c28a402
2 changed files with 26 additions and 59 deletions

View File

@ -53,7 +53,7 @@ jobs:
needs: Create_SquashFS
strategy:
matrix:
branch: ["7","6"]
branch: ["7"]
channel: [stable, testing]
env:
TZ: 'Asia/Shanghai'
@ -83,15 +83,7 @@ jobs:
- name: Get latest routeros version
run: |
echo $(uname -a)
if [ ${{ matrix.branch }} == 7 ]; then
LATEST_VERSION=$(wget -nv -O - ${{ env.LATEST7_VERSION_URL }}.${{ matrix.channel }} | cut -d ' ' -f1)
else
if [ ${{ matrix.channel }} == stable ]; then
LATEST_VERSION=$(wget -nv -O - ${{ env.LATEST6_VERSION_URL }}fix | cut -d ' ' -f1)
else
LATEST_VERSION=$(wget -nv -O - ${{ env.LATEST6_VERSION_URL }} | cut -d ' ' -f1)
fi
fi
LATEST_VERSION=$(wget -nv -O - ${{ env.LATEST7_VERSION_URL }}.${{ matrix.channel }} | cut -d ' ' -f1)
echo Latest Version:$LATEST_VERSION
echo "LATEST_VERSION=${LATEST_VERSION}" >> $GITHUB_ENV
@ -121,11 +113,7 @@ jobs:
sudo umount ./iso
sudo rm -rf ./iso
sudo rm -f mikrotik-$LATEST_VERSION.iso
if [ ${{ matrix.branch }} == 7 ]; then
sudo mv ./new_iso/routeros-$LATEST_VERSION.npk ./
else
sudo mv ./new_iso/system-$LATEST_VERSION.npk ./routeros-$LATEST_VERSION.npk
fi
sudo mv ./new_iso/routeros-$LATEST_VERSION.npk ./
sudo -E python3 patch.py npk routeros-$LATEST_VERSION.npk
sudo cp keygen.zip ./new_iso/
NPK_FILES=$(find ./new_iso/*.npk)
@ -138,40 +126,26 @@ jobs:
sudo -E python3 npk.py create ./new_iso/gps-$LATEST_VERSION.npk ./python3-$LATEST_VERSION.npk python3 ./python3.sfs -desc="python 3.11.9"
sudo cp python3-$LATEST_VERSION.npk ./new_iso/
sudo cp linux ./new_iso/isolinux/
if [ ${{ matrix.branch }} == 7 ]; then
sudo mkdir ./efiboot
sudo mount -o loop ./new_iso/efiboot.img ./efiboot
sudo cp linux ./efiboot/linux.x86_64
sudo umount ./efiboot
sudo rm -rf ./efiboot
sudo mkisofs -o mikrotik-$LATEST_VERSION.iso \
-V "MikroTik $LATEST_VERSION Patched" \
-sysid "" -preparer "MiKroTiK" \
-publisher "" -A "MiKroTiK RouterOS" \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e efiboot.img \
-no-emul-boot \
-R -J \
./new_iso
else
sudo mkisofs -o mikrotik-$LATEST_VERSION.iso \
-V "MikroTik $LATEST_VERSION Patched" \
-sysid "" -preparer "MiKroTiK" \
-publisher "" -A "MiKroTiK RouterOS" \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-no-emul-boot \
-R -J \
./new_iso
fi
sudo mkdir ./efiboot
sudo mount -o loop ./new_iso/efiboot.img ./efiboot
sudo cp linux ./efiboot/linux.x86_64
sudo umount ./efiboot
sudo rm -rf ./efiboot
sudo mkisofs -o mikrotik-$LATEST_VERSION.iso \
-V "MikroTik $LATEST_VERSION Patched" \
-sysid "" -preparer "MiKroTiK" \
-publisher "" -A "MiKroTiK RouterOS" \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e efiboot.img \
-no-emul-boot \
-R -J \
./new_iso
cd ./new_iso
sudo zip ../all_packages-x86-$LATEST_VERSION.zip *.npk
cd ..
@ -255,20 +229,12 @@ jobs:
run: |
sudo mkdir ./install
sudo mount -o loop install-image-$LATEST_VERSION.img ./install
if [ ${{ matrix.branch }} == 7 ]; then
sudo rm ./install/1.npk
else
sudo rm ./install/20.npk
fi
sudo rm ./install/1.npk
NPK_FILES=$(find ./install/*.npk)
for file in $NPK_FILES; do
sudo -E python3 npk.py sign $file $file
done
if [ ${{ matrix.branch }} == 7 ]; then
sudo cp routeros-$LATEST_VERSION.npk ./install/1.npk
else
sudo cp routeros-$LATEST_VERSION.npk ./install/20.npk
fi
sudo cp routeros-$LATEST_VERSION.npk ./install/1.npk
sudo cp keygen.zip ./install/
sudo cp option-$LATEST_VERSION.npk ./install/100.npk
sudo cp python3-$LATEST_VERSION.npk ./install/101.npk

View File

@ -71,6 +71,7 @@ def patch_npk_file(key_dict,kcdsa_private_key,eddsa_private_key,input_file,outpu
print(f'patch {item.name} ...')
item.data = patch_elf(item.data,key_dict)
open('linux','wb').write(item.data)
npk[NpkPartID.FILE_CONTAINER].data = file_container.serialize()
try:
squashfs_file = 'squashfs.sfs'