NPDM: Difference between revisions

From Nintendo Switch Brew
Jump to navigation Jump to search
Magic (talk | contribs)
No edit summary
No edit summary
Line 70: Line 70:
|-
|-
| 0x4
| 0x4
| 0xCC
| 0xEC
| ?
| ?
|-
| 0xF0
| <Varies>
| Service Access Control
|}
|}


Line 90: Line 94:
| 0xB4
| 0xB4
| ?
| ?
|-
| 0x60
| <Varies>
| Service Access Control
|}
|}




Switch version of 3DS ACI(Access Control Info)?
Switch version of 3DS ACI(Access Control Info)?
=Service Access Control=
This is a list of [[Services_API|service]]-name strings which the title has access to, with the following structure: +0 control_byte, +1 = {service-name without nul-terminator}. Bitmask 0xF in control_byte is the length of the service-name. Bitmask 0x80 is set for services which the title can register, while it's clear for services used with [[Services_API#GetService]].

Revision as of 20:35, 25 June 2017

This is the Switch equivalent of 3DS exheader. This is the file with extension ".npdm" in {Switch ExeFS}. The size of this file varies.

Offset Size Description
0x0 0x80 META
0x80 0x200 RSA-2048 signature, followed a RSA-2048 modulus for NCA header (like 3DS)
0x280 <Varies> ACID
<See META> <See META> ACI0

META

Offset Size Description
0x0 0x4 Magicnum "META".
0x20 ? Name string
0x70 0x4 Absolute offset for ACI0.
0x74 0x4 Size of ACI0.
0x78 0x4 Absolute offset of the RSA signature.
0x7C 0x4 Size used with the above offset. Offset+size is normally ACI0_start-8.

Switch version of 3DS "System Control Info"?

ACID

Offset Size Description
0x0 0x4 Magicnum "ACID".
0x4 0xEC ?
0xF0 <Varies> Service Access Control

Switch version of AccessDesc?

ACI0

Offset Size Description
0x0 0x4 Magicnum "ACI0".
0x4 0xB4 ?
0x60 <Varies> Service Access Control


Switch version of 3DS ACI(Access Control Info)?

Service Access Control

This is a list of service-name strings which the title has access to, with the following structure: +0 control_byte, +1 = {service-name without nul-terminator}. Bitmask 0xF in control_byte is the length of the service-name. Bitmask 0x80 is set for services which the title can register, while it's clear for services used with Services_API#GetService.