kern: Update init to reflect 10.0.0 changes

This commit is contained in:
Michael Scire
2020-04-18 22:19:09 -07:00
parent 152a945561
commit bc1d3ccc91
11 changed files with 143 additions and 25 deletions

View File

@@ -2,6 +2,20 @@
import sys, os
from struct import pack as pk, unpack as up
ATMOSPHERE_TARGET_FIRMWARE_100 = 1
ATMOSPHERE_TARGET_FIRMWARE_200 = 2
ATMOSPHERE_TARGET_FIRMWARE_300 = 3
ATMOSPHERE_TARGET_FIRMWARE_400 = 4
ATMOSPHERE_TARGET_FIRMWARE_500 = 5
ATMOSPHERE_TARGET_FIRMWARE_600 = 6
ATMOSPHERE_TARGET_FIRMWARE_620 = 7
ATMOSPHERE_TARGET_FIRMWARE_700 = 8
ATMOSPHERE_TARGET_FIRMWARE_800 = 9
ATMOSPHERE_TARGET_FIRMWARE_810 = 10
ATMOSPHERE_TARGET_FIRMWARE_900 = 11
ATMOSPHERE_TARGET_FIRMWARE_910 = 12
ATMOSPHERE_TARGET_FIRMWARE_1000 = 13
def align_up(val, algn):
val += algn - 1
return val - (val % algn)
@@ -18,7 +32,7 @@ def main(argc, argv):
kernel_metadata_offset = 4
assert (kernel_metadata_offset <= len(kernel) - 0x40)
assert (kernel[kernel_metadata_offset:kernel_metadata_offset + 4] == b'MSS0')
kernel_end = up('<I', kernel[kernel_metadata_offset + 0x34:kernel_metadata_offset + 0x38])[0]
kernel_end = up('<I', kernel[kernel_metadata_offset + 0x38:kernel_metadata_offset + 0x3C])[0]
assert (kernel_end >= len(kernel))
embedded_ini = b''
@@ -36,8 +50,8 @@ def main(argc, argv):
with open('mesosphere.bin', 'wb') as f:
f.write(kernel[:kernel_metadata_offset + 4])
f.write(pk('<QQ', embedded_ini_offset, kernel_ldr_offset))
f.write(kernel[kernel_metadata_offset + 0x14:])
f.write(pk('<QQI', embedded_ini_offset, kernel_ldr_offset, ATMOSPHERE_TARGET_FIRMWARE_1000))
f.write(kernel[kernel_metadata_offset + 0x18:])
f.seek(embedded_ini_offset)
f.write(embedded_ini)
f.seek(embedded_ini_end)