Skip to content

Instantly share code, notes, and snippets.

@AKosterin
Created November 8, 2022 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AKosterin/4ab0f35be71e901e57879055c602b286 to your computer and use it in GitHub Desktop.
Save AKosterin/4ab0f35be71e901e57879055c602b286 to your computer and use it in GitHub Desktop.
meta:
id: swicwe
file-extension: bin
types:
swicwe_foto_toc:
seq:
- id: toc
size: 0x20
#type: swicwe_foto_toc_element
repeat: eos
swicwe_header:
-webide-representation: 'image_type:{image_type}, prod_type:{prod_type}, size:{image_sz:dec}'
seq:
- id: prod_buf
size: 0x100
- id: psb_crc
type: u4be
- id: hdr_rev
type: u4be
- id: crc_ind
type: str
encoding: ASCII
size: 4
- id: image_type
type: str
encoding: ASCII
size: 4
- id: prod_type
type: str
encoding: ASCII
size: 4
- id: image_sz
type: u4be
- id: image_crc
type: u4be
- id: version
type: str
encoding: ASCII
size: 84
- id: rel_date
type: str
encoding: ASCII
size: 8
- id: compat
type: u4be
- id: misc_opts
type: u1
- id: reserved1
type: u1
- id: reserved2
type: u1
- id: reserved3
type: u1
- id: stor_addr
type: u4be
- id: prog_addr
type: u4be
- id: entry_pt
type: u4be
- id: signature
type: u4be
swicwe:
seq:
- id: header
type: swicwe_header
- id: body
size: header.image_sz
type:
switch-on: header.image_type
cases:
'"SPKG"': swicwe_array
'"FOTO"': swicwe_array
'"BOOT"': swicwe_array
'"MODM"': swicwe_array
'"APPL"': swicwe_array
'"FILE"': swicwe_array
'"NVUP"': nv
'"NVBF"': nv
'"NVBO"': nv
'"NVBU"': nv
'"NVBC"': nv
swicwe_array:
seq:
- id: array
type: swicwe
repeat: eos
nv_numbered_item:
seq:
- id: num
type: u2le
- id: length
type: u4le
- id: value
size: length
nv_named_item:
seq:
- id: name_magic
contents: [0x01, 0x00]
- id: name_length
type: u4le
- id: unknown_flags
type: u1
- id: name
size: name_length - 1
type: str
encoding: ASCII
- id: value_magic
contents: [0x02, 0x00]
- id: value_length
type: u4le
- id: value
size: value_length
nv_par_body:
seq:
- id: body_type
type: u1
- id: unknown_f1
type: u1
- id: unknown_f2
type: u1
- id: unknown_f3
type: u1
- id: content
size-eos: true
type:
switch-on: body_type
cases:
0: nv_numbered_item
1: nv_named_item
2: nv_named_item
3: nv_named_item
nv_par:
seq:
- id: length
type: u4le
- id: body
size: length - 4
type: nv_par_body
nv:
seq:
- id: unknown1
type: u2le
- id: pars_count
type: u2le
- id: unknown2
type: u2le
- id: unknown3
type: u4le
- id: pars
type: nv_par
if: pars_count != 0
repeat: expr
repeat-expr: pars_count
- id: pars2
type: nv_par
if: pars_count == 0
repeat: eos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment