diff --git a/.github/workflows/mikrotik_patch.yml b/.github/workflows/mikrotik_patch.yml index 70b91e7..99b57ba 100644 --- a/.github/workflows/mikrotik_patch.yml +++ b/.github/workflows/mikrotik_patch.yml @@ -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 diff --git a/patch.py b/patch.py index dd17fbf..335d1ba 100644 --- a/patch.py +++ b/patch.py @@ -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'