Browse Source

modified: .github/workflows/mikrotik_patch.yml

modified:   npk.py
	modified:   patch.py
pull/55/head
zyb 2 years ago
parent
commit
d518b90b7c
  1. 3
      .github/workflows/mikrotik_patch.yml
  2. 5
      npk.py
  3. 4
      patch.py

3
.github/workflows/mikrotik_patch.yml

@ -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

@ -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

@ -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…
Cancel
Save