mirror of
https://github.com/elseif/MikroTikPatch
synced 2026-07-17 18:49:41 +00:00
modified: .github/workflows/mikrotik_patch.yml
modified: npk.py modified: patch.py
This commit is contained in:
parent
da8031a8bd
commit
d518b90b7c
3
.github/workflows/mikrotik_patch.yml
vendored
3
.github/workflows/mikrotik_patch.yml
vendored
@ -25,6 +25,7 @@ jobs:
|
|||||||
TZ: 'Asia/Shanghai'
|
TZ: 'Asia/Shanghai'
|
||||||
LATEST_VERSION_URL: 'https://upgrade.mikrotik.com/routeros/NEWESTa7'
|
LATEST_VERSION_URL: 'https://upgrade.mikrotik.com/routeros/NEWESTa7'
|
||||||
LATEST_VERSION: ""
|
LATEST_VERSION: ""
|
||||||
|
BUILD_TIME: $(date +"%s")
|
||||||
CUSTOM_LICENSE_PRIVATE_KEY: ${{ secrets.CUSTOM_LICENSE_PRIVATE_KEY }}
|
CUSTOM_LICENSE_PRIVATE_KEY: ${{ secrets.CUSTOM_LICENSE_PRIVATE_KEY }}
|
||||||
CUSTOM_LICENSE_PUBLIC_KEY: ${{ secrets.CUSTOM_LICENSE_PUBLIC_KEY }}
|
CUSTOM_LICENSE_PUBLIC_KEY: ${{ secrets.CUSTOM_LICENSE_PUBLIC_KEY }}
|
||||||
CUSTOM_NPK_SIGN_PRIVATE_KEY: ${{ secrets.CUSTOM_NPK_SIGN_PRIVATE_KEY }}
|
CUSTOM_NPK_SIGN_PRIVATE_KEY: ${{ secrets.CUSTOM_NPK_SIGN_PRIVATE_KEY }}
|
||||||
@ -276,7 +277,7 @@ jobs:
|
|||||||
mkdir -p ./publish/$LATEST_VERSION
|
mkdir -p ./publish/$LATEST_VERSION
|
||||||
cp CHANGELOG.txt ./publish/$LATEST_VERSION/CHANGELOG
|
cp CHANGELOG.txt ./publish/$LATEST_VERSION/CHANGELOG
|
||||||
cp ./new_iso/*.npk ./publish/$LATEST_VERSION/
|
cp ./new_iso/*.npk ./publish/$LATEST_VERSION/
|
||||||
echo $LATEST_VERSION $(date +"%s") > ./publish/NEWESTa7.${{ matrix.channel }}
|
echo $LATEST_VERSION $BUILD_TIME > ./publish/NEWESTa7.${{ matrix.channel }}
|
||||||
sudo apt-get install -y lftp > /dev/null 2>&1
|
sudo apt-get install -y lftp > /dev/null 2>&1
|
||||||
sudo -E lftp -u ${{ secrets.SSH_USERNAME }},'${{ secrets.SSH_PASSWORD }}' sftp://${{ secrets.SSH_SERVER }}:${{ secrets.SSH_PORT }} <<EOF
|
sudo -E lftp -u ${{ secrets.SSH_USERNAME }},'${{ secrets.SSH_PASSWORD }}' sftp://${{ secrets.SSH_SERVER }}:${{ secrets.SSH_PORT }} <<EOF
|
||||||
set sftp:auto-confirm yes
|
set sftp:auto-confirm yes
|
||||||
|
|||||||
5
npk.py
5
npk.py
@ -261,9 +261,12 @@ if __name__=='__main__':
|
|||||||
eddsa_private_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PRIVATE_KEY'])
|
eddsa_private_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PRIVATE_KEY'])
|
||||||
kcdsa_public_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PUBLIC_KEY'])
|
kcdsa_public_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PUBLIC_KEY'])
|
||||||
eddsa_public_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PUBLIC_KEY'])
|
eddsa_public_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PUBLIC_KEY'])
|
||||||
|
build_time = os.environ['BUILD_TIME']
|
||||||
if args.command =='sign':
|
if args.command =='sign':
|
||||||
print(f'Signing {args.input}')
|
print(f'Signing {args.input}')
|
||||||
npk = NovaPackage.load(args.input)
|
npk = NovaPackage.load(args.input)
|
||||||
|
if build_time:
|
||||||
|
npk[NpkPartID.NAME_INFO].data._build_time = int(build_time)
|
||||||
npk.sign(kcdsa_private_key,eddsa_private_key)
|
npk.sign(kcdsa_private_key,eddsa_private_key)
|
||||||
npk.save(args.output)
|
npk.save(args.output)
|
||||||
elif args.command == 'verify':
|
elif args.command == 'verify':
|
||||||
@ -279,6 +282,8 @@ if __name__=='__main__':
|
|||||||
print(f'Creating {args.output} from {args.input}')
|
print(f'Creating {args.output} from {args.input}')
|
||||||
option_npk = NovaPackage.load(args.input)
|
option_npk = NovaPackage.load(args.input)
|
||||||
option_npk[NpkPartID.NAME_INFO].data.name = args.name
|
option_npk[NpkPartID.NAME_INFO].data.name = args.name
|
||||||
|
if build_time:
|
||||||
|
option_npk[NpkPartID.NAME_INFO].data._build_time = int(build_time)
|
||||||
option_npk[NpkPartID.DESCRIPTION].data = args.description.encode() if args.description else args.name.encode()
|
option_npk[NpkPartID.DESCRIPTION].data = args.description.encode() if args.description else args.name.encode()
|
||||||
option_npk[NpkPartID.NULL_BLOCK].data = b''
|
option_npk[NpkPartID.NULL_BLOCK].data = b''
|
||||||
option_npk[NpkPartID.SQUASHFS].data = open(args.squashfs,'rb').read()
|
option_npk[NpkPartID.SQUASHFS].data = open(args.squashfs,'rb').read()
|
||||||
|
|||||||
4
patch.py
4
patch.py
@ -109,6 +109,10 @@ def patch_npk_file(key_dict,kcdsa_private_key,eddsa_private_key,input_file,outpu
|
|||||||
run_shell_command(f"rm -rf {extract_dir}")
|
run_shell_command(f"rm -rf {extract_dir}")
|
||||||
npk[NpkPartID.SQUASHFS].data = open(squashfs_file,'rb').read()
|
npk[NpkPartID.SQUASHFS].data = open(squashfs_file,'rb').read()
|
||||||
run_shell_command(f"rm -f {squashfs_file}")
|
run_shell_command(f"rm -f {squashfs_file}")
|
||||||
|
|
||||||
|
build_time = os.environ['BUILD_TIME']
|
||||||
|
if build_time:
|
||||||
|
npk[NpkPartID.NAME_INFO].data._build_time = int(build_time)
|
||||||
npk.sign(kcdsa_private_key,eddsa_private_key)
|
npk.sign(kcdsa_private_key,eddsa_private_key)
|
||||||
npk.save(output_file or input_file)
|
npk.save(output_file or input_file)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user