Services API

From Nintendo Switch Brew
Jump to navigation Jump to search

Services are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via inter-process communication (each service has a name up to 8 characters).

Handles for services are retrieved from the service manager port, "sm:", and are released via svcCloseHandle or when a process is terminated or crashes. Manager service "sm:m" also exists. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC. Services are also able to limit the number of handles given to other processes.

sm:

This is "nn::sm::detail::IUserInterface".

Cmd Name
0 #RegisterClient
1 #GetServiceHandle
2 #RegisterService
3 #UnregisterService
4 [11.0.0-11.0.1] #DetachClient

RegisterClient

Takes a PID-descriptor and a reserved input u64.

GetServiceHandle

Takes a zero-padded service name encoded as an u64 integer. Returns a handle.

RegisterService

Takes a zero-padded service name encoded as an u64 integer, an u8 bool IsLight, and a s32 MaxSessions at the next word. Returns a handle.

[12.0.0+] This is only available with tipc.

UnregisterService

Takes a zero-padded service name encoded as an u64 integer.

[12.0.0+] This is only available with tipc.

DetachClient

Takes a PID-descriptor and a reserved input u64.

sm:m

This is "nn::sm::detail::IManagerInterface".

Cmd Name
0 #RegisterProcess
1 #UnregisterProcess

RegisterProcess

Takes a PID and two type-0x5 input buffers with the ACID and ACI0 service lists. That data originates from NPDM.

UnregisterProcess

Takes a PID.

Service List

Service Name S1 S2 Hosted by Notes
[1.0.0-12.1.0] acc:u0 Yes Yes Account services
[1.0.0-12.1.0] acc:u1 Yes Account services
acc:aa Yes Account services
acc:su Yes Account services
[5.0.0+] dauth:0 Yes Account services
[13.0.0+] acc:e Yes Account services
[13.0.0+] acc:e:u1 Yes Account services
[13.0.0+] acc:e:u2 Yes Account services
[1.0.0-8.1.0] ahid:cd Yes HID services
[1.0.0-8.1.0] ahid:hdr Yes HID services
hid Yes Yes HID services
hid:dbg Yes HID services
hid:sys Yes HID services
irs Yes Yes HID services
irs:sys Yes HID services
xcd:sys Yes HID services
[3.0.0-7.0.1] hid:tmp Yes HID services
[5.0.0+] hidbus Yes HID services
appletAE Yes Applet Manager services
appletOE Yes Yes Applet Manager services
[1.0.0-13.2.1] idle:sys Yes Applet Manager services
[1.0.0-13.2.1] omm Yes Applet Manager services
[1.0.0-13.2.1] spsm Yes Applet Manager services
[5.0.0-10.2.0] tcap Yes Applet Manager services
[6.0.0+] caps:su Yes Yes Applet Manager services
[8.0.0+] apm Yes Yes Applet Manager services
[1.0.0-2.3.0] aoc:u Yes Yes NS Services
mii:u Yes Yes NS Services
mii:e Yes NS Services
ns:am Yes NS Services
ns:su Yes NS Services
ns:dev Yes NS Services
pl:u Yes Yes NS Services
ovln:rcv Yes NS Services
ovln:snd Yes NS Services
pdm:ntfy Yes NS Services
pdm:qry Yes NS Services
[3.0.0+] aoc:u Yes Yes NS Services
ns:am2 Yes NS Services
ns:dev Yes NS Services
ns:ec Yes NS Services
ns:rid Yes NS Services
ns:rt Yes NS Services
ns:su Yes NS Services
ns:vm Yes NS Services
ns:web Yes NS Services
[1.0.0-7.0.1] ovln:rcv Yes NS Services
[1.0.0-7.0.1] ovln:snd Yes NS Services
[11.0.0+] ns:ro Yes NS Services
[13.0.0+] acc:su Yes NS Services
[13.0.0+] acc:u0 Yes Yes NS Services
[13.0.0+] acc:u1 Yes NS Services
[15.0.0+] ns:sweb Yes NS Services
[1.0.0-8.1.0] apm:dbg Yes PPC services
[1.0.0-8.1.0] apm:sys Yes PPC services
[1.0.0] fgm:1 Yes PPC services
fgm:2 Yes PPC services
fgm:3 Yes PPC services
fgm:4 Yes PPC services
fgm:5 Yes PPC services
fgm:6 Yes PPC services
fgm:7 Yes PPC services
[1.0.0-8.1.0] fgm Yes PPC services
[1.0.0-8.1.0] fgm:0 Yes PPC services
[1.0.0-8.1.0] fgm:9 Yes PPC services
[1.0.0-8.1.0] fgm:dbg Yes PPC services
[1.0.0-7.0.1] apm Yes Yes PPC services
[1.0.0-7.0.1] apm:p Yes PPC services
[8.0.0-8.1.0] apm:am Yes PPC services
arp:r Yes Glue services
arp:w Yes Glue services
[2.0.0+] bgtc:t Yes Glue services
[2.0.0+] bgtc:sc Yes Glue services
[9.0.0+] time:a Yes Glue services
[9.0.0+] time:r Yes Glue services
[9.0.0+] time:u Yes Yes Glue services
[9.0.0+] notif:a Yes Yes Glue services
[9.0.0+] notif:s Yes Glue services
[11.0.0+] ectx:aw Yes Glue services
[11.0.0+] ectx:r Yes Glue services
[11.0.0+] ectx:w Yes Glue services
[16.0.0+] pl:u Yes Yes Glue services
[1.0.0-10.2.0] audin:a Yes Audio services
[1.0.0-10.2.0] audin:d Yes Audio services
audin:u Yes Yes Audio services
[1.0.0-10.2.0] audout:a Yes Audio services
[1.0.0-10.2.0] audout:d Yes Audio services
audout:u Yes Yes Audio services
[1.0.0-10.2.0] audren:a Yes Audio services
[1.0.0-10.2.0] audren:d Yes Audio services
audren:u Yes Yes Audio services
audrec:a Yes Audio services
audrec:d Yes Audio services
audrec:u Yes Audio services
audctl Yes Audio services
[1.0.0-2.3.0] codecctl Yes Audio services
hwopus Yes No Audio services Removed on Switch 2.
auddebug Yes Audio services
[6.0.0+] auddev Yes Audio services
[11.0.0+] aud:a Yes Audio services
[11.0.0+] aud:d Yes Audio services
banana Yes Profiler services Not currently available on retail units.
[2.0.0+] bcat:a Yes BCAT services
[2.0.0+] bcat:u Yes Yes BCAT services
[2.0.0+] bcat:m Yes BCAT services
[2.0.0+] bcat:s Yes BCAT services
news:a Yes BCAT services
news:c Yes BCAT services
news:m Yes BCAT services
news:p Yes BCAT services
news:v Yes BCAT services
prepo:u Yes Yes BCAT services
prepo:s Yes BCAT services
prepo:m Yes BCAT services
[1.0.0-5.1.0] prepo:a Yes BCAT services
[1.0.0] prepo:d Yes BCAT services
[6.0.0+] prepo:a2 Yes BCAT services
[13.0.0+] mnpp:app Yes Yes BCAT services
[13.0.0+] mnpp:sys Yes BCAT services
[13.0.0+] mnpp:web Yes BCAT services
[1.0.0] bpc:c Yes PCV services
bpc:b Yes PCV services
bpc:r Yes PCV services
bpc:w Yes PCV services
pcv Yes PCV services
pcv:arb Yes PCV services
pcv:imm Yes PCV services
time:u Yes Yes PCV services
time:a Yes PCV services
time:s Yes PCV services
[2.0.0+] bpc Yes PCV services
bpc:r Yes PCV services
pcv Yes PCV services
[2.0.0-8.1.0] time:u Yes PCV services
[2.0.0-8.1.0] time:a Yes PCV services
[2.0.0-8.1.0] time:s Yes PCV services
[1.0.0-7.0.1] pcv:arb Yes PCV services
[1.0.0-7.0.1] pcv:imm Yes PCV services
[8.0.0+] clkrst Yes PCV services
[8.0.0+] clkrst:a Yes PCV services
[8.0.0+] clkrst:i Yes PCV services
[8.0.0+] rgltr Yes PCV services
[8.0.0+] rtc Yes PCV services
bsd:u Yes Yes Sockets services
bsd:s Yes Sockets services
[15.0.0+] bsd:nu Yes Sockets services
bsdcfg Yes No Sockets services Removed on Switch 2.
[17.0.0+] ifcfg Yes Sockets services
[18.0.0+] bsd:a Yes Sockets services
[1.0.0-14.1.2] ethc:c Yes Sockets services
[1.0.0-14.1.2] ethc:i Yes Sockets services
nsd:u Yes Yes Sockets services
nsd:a Yes Sockets services
sfdnsres Yes Yes Sockets services
[18.0.0+] dns:priv Yes Sockets services
btdrv Yes Bluetooth Driver services
[5.0.0+] bt Yes Bluetooth Driver services
btm Yes BTM services
btm:dbg Yes BTM services
btm:sys Yes BTM services
[5.0.0+] btm:u Yes BTM services
caps:a Yes Capture services
caps:c Yes Capture services
[1.0.0] mm:u Yes No Capture services Removed on Switch 2.
[5.0.0+] caps:u Yes Yes Capture services
[2.0.0+] caps:sc Yes Display services
[2.0.0+] caps:ss Yes Display services
vi:m Yes Display services
vi:s Yes Display services
vi:u Yes No Display services Removed on Switch 2.
cec-mgr Yes Display services
[2.0.0+] mm:u Yes No Display services Removed on Switch 2.
[3.0.0-5.1.0] caps:su Yes Display services
[11.0.0+] lbl Yes Display services
dispdrv Yes Nvnflinger services
dmnt:- Yes Debug Monitor services Not currently available on retail units.
erpt:c Yes Error Report services
erpt:r Yes Error Report services
[13.0.0+] sprof:bg Yes Error Report services
[13.0.0+] sprof:sp Yes Error Report services
eupld:c Yes Error Upload services
eupld:r Yes Error Upload services
es Yes ETicket services
[13.0.0+] ndrm:la Yes ETicket services
[13.0.0+] ndrm:lu Yes ETicket services
fan Yes PTM services
psm Yes PTM services
tc Yes PTM services
ts Yes PTM services
pcm Yes PTM services pcm is not available on retail units.
[9.0.0+] apm:sys Yes PTM services
[9.0.0+] fgm Yes PTM services
[9.0.0+] fgm:0 Yes PTM services
[9.0.0+] fgm:9 Yes PTM services
[9.0.0+] fgm:dbg Yes PTM services
[9.0.0+] apm:am Yes PTM services
[10.0.0-10.2.0] lbl Yes PTM services
fatal:u Yes Fatal services
fatal:p Yes Fatal services
friend:u Yes Yes Friend services
friend:v Yes Friend services
friend:m Yes Friend services
friend:s Yes Friend services
friend:a Yes Friend services
[5.0.0-6.0.0] nd:app Yes Friend services
[5.0.0-6.0.0] nd:sys Yes Friend services
fsp-srv Yes Yes Filesystem services
fsp-ldr Yes Filesystem services
fsp-pr Yes Filesystem services
gpio Yes Bus services
i2c Yes Bus services
i2c:pcv Yes Bus services
pinmux Yes Bus services
pwm Yes Bus services
uart Yes Bus services
[3.0.0+] sasbus Yes Bus services
[8.1.1+] led Yes Bus services
htc Yes TMA services
htcs Yes TMA services
htc:tenv Yes TMA services
file_io Yes TMA services
gds Yes TMA services
tma_log Yes TMA services
tmagent Yes TMA services
jit:u Yes JIT services
[1.0.0-9.2.0] lbl Yes Backlight services
ldn:m Yes LDN services
ldn:s Yes LDN services
ldn:u Yes Yes LDN services
[5.0.0-6.0.0] ndd Yes LDN services
[9.0.0+] lp2p:app Yes LDN services
[9.0.0+] lp2p:sys Yes LDN services
[9.1.0+] lp2p:m Yes LDN services
[1.0.0+] ldr:pm Yes Loader services
ldr:ro Yes Yes Loader services
ldr:shel Yes Loader services
ldr:dmnt Yes Loader services
[3.0.0+] ldr:pm Yes Loader services
ldr:shel Yes Loader services
ldr:dmnt Yes Loader services
lm Yes Yes Log services
lm:get Yes Log services
manu Yes Manu Services "Manufacturing". Present in factory firmware but not installed on retail systems.
lr Yes NCM services
ncm Yes NCM services
ncm:v Yes NCM services
nfc:am Yes NFC services
nfc:mf:u Yes Yes NFC services
nfc:user Yes Yes NFC services
nfc:sys Yes NFC services
nfp:user Yes Yes NFC services
nfp:dbg Yes NFC services
nfp:sys Yes NFC services
nifm:u Yes Yes Network Interface services
nifm:a Yes Network Interface services
nifm:s Yes Network Interface services
nim Yes NIM services
nim:shp Yes NIM services
ntc Yes Yes NIM services
[5.0.0+] nim:eca Yes NIM services
[7.0.0+] nim:ecas Yes NIM services
npns:u Yes NPNS services
npns:s Yes NPNS services
nvdrv:a Yes NV services
nvdrv:s Yes NV services
nvdrv:t Yes NV services
nvdrv Yes No NV services
nvdrvdbg Yes NV services
nvgem:c Yes NV services
nvgem:cd Yes NV services
nvmemp Yes NV services
[10.0.0+] nvdbg:d Yes NV services
pcie Yes PCIe services
[6.0.0+] pcie:log Yes PCIe services
pctl Yes Yes Parental Control services
pctl:a Yes Parental Control services
pctl:s Yes Parental Control services
pctl:r Yes Parental Control services
pm:bm Yes Process Manager services
pm:info Yes Process Manager services
pm:shell Yes Process Manager services
psc:c Yes PSC services
psc:m Yes PSC services
[5.0.0+] srepo:u Yes PSC services
[5.0.0+] srepo:a Yes PSC services
[8.0.0+] ovln:rcv Yes PSC services
[8.0.0+] ovln:snd Yes PSC services
[9.0.0+] psc:l Yes PSC services
[9.0.0+] time:su Yes PSC services
[9.0.0+] time:s Yes PSC services
[9.0.0+] time:al Yes PSC services
[9.0.0+] time:m Yes PSC services
[9.0.0+] time:p Yes PSC services
[9.0.0+] ins:r Yes PSC services
[9.0.0+] ins:s Yes PSC services
[11.0.0+] hshl:set Yes PSC services
[11.0.0+] hshl:sys Yes PSC services
[3.0.0+] ldr:ro Yes Yes RO services
ro:dmnt Yes RO services
[7.0.0+] ro:1 Yes RO services
set Yes Yes Settings services
set:fd Yes Settings services
set:cal Yes Settings services
set:sys Yes Settings services
[3.0.0+] mii:u Yes Yes Shared Database services
[3.0.0+] mii:e Yes Shared Database services
[3.0.0+] pdm:ntfy Yes Shared Database services
[3.0.0+] pdm:qry Yes Shared Database services
[3.0.0-15.0.1] pl:u Yes Yes Shared Database services
[5.0.0+] miiimg Yes Shared Database services
[6.0.0+] avm Yes Shared Database services
[9.0.0+] pl:s Yes Shared Database services
ssl Yes Yes SSL services
[15.0.0+] ssl:s Yes SSL services
csrng Yes Yes SPL services
spl: Yes SPL services
[4.0.0+] spl:mig Yes SPL services
[4.0.0+] spl:fs Yes SPL services
[4.0.0+] spl:ssl Yes SPL services
[4.0.0+] spl:es Yes SPL services
[5.0.0+] spl:manu Yes SPL services
sf-uds Yes System debug applet "recovery" has access to this service but it doesn't appear to exist.
tspm Yes Applications on [1.0.0] used to have access to this service but it doesn't appear to be present on retail devices.
usb:ds Yes USB services
usb:hs Yes USB services
usb:pd Yes USB services
usb:pd:c Yes USB services
[1.0.0] usb:pd:m Yes USB services
usb:pm Yes USB services
[7.0.0+] usb:hs:a Yes USB services
[7.0.0+] usb:qdb Yes USB services
[8.0.0+] usb:obsv Yes USB services
[1.0.0-14.1.2] wlan:inf Yes WLAN services
[1.0.0-14.1.2] wlan:lcl Yes WLAN services
[1.0.0-14.1.2] wlan:lg Yes WLAN services
[1.0.0-14.1.2] wlan:lga Yes WLAN services
[1.0.0-14.1.2] wlan:sg Yes WLAN services
[1.0.0-14.1.2] wlan:soc Yes WLAN services
[6.0.0-14.1.2] wlan:dtc Yes WLAN services
[15.0.0+] wlan Yes WLAN services
[15.0.0+] wlan:nd Yes WLAN services
[15.0.0+] wlan:p Yes WLAN services
[4.0.0+] grc:c Yes GRC services
[6.0.0+] grc:d Yes GRC services
[4.0.0+] mig:usr Yes Migration services
[4.0.0+] caps:dc Yes Jpegdec services
[6.0.0+] olsc:s Yes OLSC services
[10.0.0+] olsc:u Yes OLSC services
[13.1.0+] spbg:sp Yes OLSC services
[9.0.0+] ngct:s Yes NGCT services
[9.0.0+] ngct:u Yes Yes NGCT services
[10.0.0+] pgl Yes PGL services
[11.0.0+] capmtp Yes Capmtp services
[14.0.0+] omm Yes OMM services
[14.0.0+] ommdisp Yes OMM services
[14.0.0+] idle:sys Yes OMM services
[14.0.0+] spsm Yes OMM services
[15.0.0+] eth:nd Yes Ethernet services
[16.0.0+] ngc:u Yes Yes NGC services