mirror of
https://github.com/elseif/MikroTikPatch
synced 2026-07-17 18:49:41 +00:00
modified: .github/workflows/build_v7.yml
modified: patch.py
This commit is contained in:
parent
1bc1d82048
commit
e01697e0bf
14
.github/workflows/build_v7.yml
vendored
14
.github/workflows/build_v7.yml
vendored
@ -177,13 +177,6 @@ jobs:
|
||||
echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV
|
||||
echo "PACKAGES: $PACKAGES"
|
||||
|
||||
- name: Get loader patch files
|
||||
run: |
|
||||
wget -nv -O loader.7z https://${{ env.CUSTOM_UPGRADE_URL }}/routeros/loader.7z
|
||||
sudo apt-get install -y p7zip-full > /dev/null
|
||||
7z x -p"${{ secrets.LOADER_7Z_PASSWORD }}" loader.7z >> /dev/null
|
||||
rm loader.7z
|
||||
|
||||
- name: Create Squashfs for Option Package
|
||||
run: |
|
||||
echo "Creating Option Package Squashfs for channel: $CHANNEL, arch: $ARCH"
|
||||
@ -306,6 +299,13 @@ jobs:
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Get loader patch files
|
||||
run: |
|
||||
wget -nv -O loader.7z https://${{ env.CUSTOM_UPGRADE_URL }}/routeros/loader.7z
|
||||
sudo apt-get install -y p7zip-full > /dev/null
|
||||
7z x -p"${{ secrets.LOADER_7Z_PASSWORD }}" loader.7z >> /dev/null
|
||||
rm loader.7z
|
||||
|
||||
- name: Patch NPK files
|
||||
run: |
|
||||
sudo apt-get install build-essential binutils-arm-linux-gnueabi -y > /dev/null
|
||||
|
||||
23
patch.py
23
patch.py
@ -1,5 +1,5 @@
|
||||
import subprocess,lzma
|
||||
import struct,os,re
|
||||
import struct,os,re,tempfile
|
||||
from npk import NovaPackage,NpkPartID,NpkFileContainer
|
||||
|
||||
def replace_chunks(old_chunks,new_chunks,data,name):
|
||||
@ -464,22 +464,21 @@ def patch_npk_package(package,key_dict):
|
||||
print(f'patch {item.name} ...')
|
||||
item.data = patch_kernel(item.data,key_dict)
|
||||
package[NpkPartID.FILE_CONTAINER].data = file_container.serialize()
|
||||
squashfs_file = 'squashfs-root.sfs'
|
||||
extract_dir = 'squashfs-root'
|
||||
open(squashfs_file,'wb').write(package[NpkPartID.SQUASHFS].data)
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
squashfs_file = os.path.join(tmp_dir, 'squashfs-root.sfs')
|
||||
extract_dir = os.path.join(tmp_dir, 'squashfs-root')
|
||||
with open(squashfs_file,'wb') as f:
|
||||
f.write(package[NpkPartID.SQUASHFS].data)
|
||||
print(f"extract {squashfs_file} ...")
|
||||
run_shell_command(f"unsquashfs -d {extract_dir} {squashfs_file}")
|
||||
patch_squashfs(extract_dir,key_dict)
|
||||
logo = os.path.join(extract_dir,"nova/lib/console/logo.txt")
|
||||
run_shell_command(f"sudo sed -i '1d' {logo}")
|
||||
run_shell_command(f"sudo sed -i '8s#.*# elseif@live.cn https://github.com/elseif/MikroTikPatch#' {logo}")
|
||||
run_shell_command(f"sed -i '1d' {logo}")
|
||||
run_shell_command(f"sed -i '8s#.*# elseif@live.cn https://github.com/elseif/MikroTikPatch#' {logo}")
|
||||
print(f"pack {extract_dir} ...")
|
||||
run_shell_command(f"rm -f {squashfs_file}")
|
||||
run_shell_command(f"mksquashfs {extract_dir} {squashfs_file} -quiet -comp xz -no-xattrs -b 256k")
|
||||
print(f"clean ...")
|
||||
run_shell_command(f"rm -rf {extract_dir}")
|
||||
package[NpkPartID.SQUASHFS].data = open(squashfs_file,'rb').read()
|
||||
run_shell_command(f"rm -f {squashfs_file}")
|
||||
run_shell_command(f"mksquashfs {extract_dir} {squashfs_file} -no-recovery -noappend -exit-on-error -quiet -comp xz -no-xattrs -b 256k -all-root")
|
||||
with open(squashfs_file,'rb') as f:
|
||||
package[NpkPartID.SQUASHFS].data = f.read()
|
||||
|
||||
def patch_npk_file(key_dict,kcdsa_private_key,eddsa_private_key,input_file,output_file=None):
|
||||
npk = NovaPackage.load(input_file)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user