|
|
|
@ -86,14 +86,14 @@ def patch_initrd_xz(initrd_xz:bytes,key_dict:dict,ljust=True): |
|
|
|
new_initrd = new_initrd.replace(old_public_key,new_public_key) |
|
|
|
preset = 6 |
|
|
|
new_initrd_xz = lzma.compress(new_initrd,check=lzma.CHECK_CRC32,filters=[{"id": lzma.FILTER_LZMA2, "preset": preset }] ) |
|
|
|
while len(new_initrd_xz) > len(initrd_xz): |
|
|
|
while len(new_initrd_xz) > len(initrd_xz) and preset < 10: |
|
|
|
print(f'preset:{preset}') |
|
|
|
print(f'new initrd xz size:{len(new_initrd_xz)}') |
|
|
|
print(f'old initrd xz size:{len(initrd_xz)}') |
|
|
|
preset += 1 |
|
|
|
new_initrd_xz = lzma.compress(new_initrd,check=lzma.CHECK_CRC32,filters=[{"id": lzma.FILTER_LZMA2, "preset": preset }] ) |
|
|
|
if len(new_initrd_xz) > len(initrd_xz): |
|
|
|
new_initrd_xz = lzma.compress(new_initrd,check=lzma.CHECK_CRC32,filters=[{"id": lzma.FILTER_LZMA2, "preset": 9 ,"mf": lzma.MF_BT2}] ) |
|
|
|
new_initrd_xz = lzma.compress(new_initrd,check=lzma.CHECK_CRC32,filters=[{"id": lzma.FILTER_LZMA2, "preset": 9 | lzma.PRESET_EXTREME,'dict_size': 32*1024*1024,"lc": 4,"lp": 0, "pb": 0,}] ) |
|
|
|
if ljust: |
|
|
|
print(f'preset:{preset}') |
|
|
|
print(f'new initrd xz size:{len(new_initrd_xz)}') |
|
|
|
@ -101,6 +101,7 @@ def patch_initrd_xz(initrd_xz:bytes,key_dict:dict,ljust=True): |
|
|
|
print(f'ljust size:{len(initrd_xz)-len(new_initrd_xz)}') |
|
|
|
assert len(new_initrd_xz) <= len(initrd_xz),'new initrd xz size is too big' |
|
|
|
new_initrd_xz = new_initrd_xz.ljust(len(initrd_xz),b'\0') |
|
|
|
return new_initrd_xz |
|
|
|
|
|
|
|
def find_7zXZ_data(data:bytes): |
|
|
|
offset1 = 0 |
|
|
|
|