modified: .github/workflows/mikrotik_patch.yml
This commit is contained in:
parent
6f2fe5f232
commit
5d58b00d70
24
.github/workflows/mikrotik_patch.yml
vendored
24
.github/workflows/mikrotik_patch.yml
vendored
@ -59,11 +59,25 @@ jobs:
|
||||
sudo mksquashfs option-root option.sfs -quiet -comp xz -no-xattrs -b 256k
|
||||
sudo rm -rf option-root
|
||||
|
||||
# - name: Get routeros-${{ env.LATEST_VERSION }}.npk
|
||||
# run: sudo wget -nv -O routeros-$LATEST_VERSION.npk https://download.mikrotik.com/routeros/$LATEST_VERSION/routeros-$LATEST_VERSION.npk
|
||||
|
||||
# - name: Patch routeros-${{ env.LATEST_VERSION }}.npk
|
||||
# run: sudo -E python3 patch.py routeros-$LATEST_VERSION.npk
|
||||
- name: Create squashfs for python npk
|
||||
run: |
|
||||
sudo wget-nv https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tar.xz
|
||||
sudo tar -xf Python-3.11.9.tar.xz
|
||||
sudo rm -f Python-3.11.9.tar.xz
|
||||
sudo mkdir ./python-root/
|
||||
cd Python-3.11.9
|
||||
/configure --enable-optimizations --prefix=./python-root/ LDFLAGS="-static" CFLAGS="-static" --disable-shared --disable-test-modules --without-static-libpython
|
||||
make -j$(nproc)
|
||||
sudo make altinstall
|
||||
cd ..
|
||||
sudo rm -rf Python-3.11.9
|
||||
sudo mksquashfs python-root python.sfs -quiet -comp xz -no-xattrs -b 256
|
||||
sudo rm -rf python-root
|
||||
- name: Archive Generated File
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: python-root
|
||||
path: python.sfs
|
||||
|
||||
- name: Get mikrotik-${{ env.LATEST_VERSION }}.iso
|
||||
run: |
|
||||
|
10
npk.py
10
npk.py
@ -258,9 +258,11 @@ if __name__=='__main__':
|
||||
verify_parser = subparsers.add_parser('verify',help='Verify npk file')
|
||||
verify_parser.add_argument('input',type=str, help='Input file')
|
||||
create_option_parser = subparsers.add_parser('create',help='Create option.npk file')
|
||||
create_option_parser.add_argument('npk_file',type=str,help='From npk file')
|
||||
create_option_parser.add_argument('squashfs',type=str,help='option squashfs file')
|
||||
create_option_parser.add_argument('input',type=str,help='From npk file')
|
||||
create_option_parser.add_argument('output',type=str,help='Output file')
|
||||
create_option_parser.add_argument('name',type=str,help='NPK name')
|
||||
create_option_parser.add_argument('squashfs',type=str,help='NPK squashfs file')
|
||||
create_option_parser.add_argument('-desc','--description',type=str,help='NPK description')
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.command =='sign':
|
||||
@ -286,8 +288,8 @@ if __name__=='__main__':
|
||||
kcdsa_private_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PRIVATE_KEY'])
|
||||
eddsa_private_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PRIVATE_KEY'])
|
||||
option_npk = NovaPackage.load(args.npk_file)
|
||||
option_npk[NpkPartID.NAME_INFO].data.name = 'option'
|
||||
option_npk[NpkPartID.DESCRIPTION].data = b'option package has busybox ash'
|
||||
option_npk[NpkPartID.NAME_INFO].data.name = args.name
|
||||
option_npk[NpkPartID.DESCRIPTION].data = args.description or args.name.encode()
|
||||
option_npk[NpkPartID.NULL_BLOCK].data = b''
|
||||
option_npk[NpkPartID.SQUASHFS].data = open(args.squashfs,'rb').read()
|
||||
option_npk.sign(kcdsa_private_key,eddsa_private_key)
|
||||
|
BIN
routeros.png
BIN
routeros.png
Binary file not shown.
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 96 KiB |
Loading…
x
Reference in New Issue
Block a user