Skip to content

Latest commit

 

History

History
357 lines (335 loc) · 13.6 KB

Services API.md

File metadata and controls

357 lines (335 loc) · 13.6 KB

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 #Initialize
1 #GetService
2 #RegisterService
3 #UnregisterService

Initialize

Takes a pid descriptor and a reserved input u64.

GetService

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, and an u32 (session count) at the next word. Returns a handle.

UnregisterService

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

sm:m

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

Cmd Name
0 #RegisterProcess
1 #UnregisterProcess

RegisterProcess

Takes a pid and two A descriptors with the ACID and ACI0 service lists. That data originates from NPDM.

UnregisterProcess

Takes a pid.

Service List

Service names

Description

Notes

acc:u0, acc:u1, acc:aa, acc:su, [5.0.0+] dauth:0

Account services

u0: System, u1: User, su: Admin, aa: Baas

[1.0.0-8.1.0] ahid:cd, [1.0.0-8.1.0] ahid:hdr, hid, hid:dbg, hid:sys, irs, irs:sys, xcd:sys, [3.0.0-7.0.1] hid:tmp, [5.0.0+] hidbus

HID services

appletAE, appletOE, idle:sys, omm, spsm, [5.0.0+] tcap, [6.0.0+] caps:su, [8.0.0+] apm

Applet Manager services

[1.0.0-2.3.0] aoc:u, mii:u, mii:e, ns:am, ns:su, ns:dev, pl:u, ovln:rcv, ovln:snd, pdm:ntfy, pdm:qry

[3.0.0+] aoc:u, ns:am2, ns:dev, ns:ec, ns:rid, ns:rt, ns:su, ns:vm, ns:web, [1.0.0-7.0.1] ovln:rcv, [1.0.0-7.0.1] ovln:snd

NS Services

am: Application Manager, su: System Update

[1.0.0-8.1.0] apm:dbg, [1.0.0-8.1.0] apm:sys, [1.0.0-8.1.0] fgm, [1.0.0-8.1.0] fgm:0, [1.0.0-8.1.0] fgm:9, [1.0.0-8.1.0] fgm:dbg, [1.0.0-7.0.1] apm, [1.0.0-7.0.1] apm:p, [8.0.0-8.1.0] apm:am

PPC services

fgm:1, fgm:2, fgm:3, fgm:4, fgm:5, fgm:6 and fgm:7 used to exist, but are now deprecated.

arp:r, arp:w, [2.0.0+] bgtc:t, [2.0.0+] bgtc:sc, [9.0.0+] time:a, [9.0.0+] time:r, [9.0.0+] time:u, [9.0.0+] notif:a, [9.0.0+] notif:s

Glue services

audin:a, audin:d, audin:u, audout:a, audout:d, audout:u, audren:a, audren:d, audren:u, audrec:a, audrec:d, audrec:u, audctl, [1.0.0-2.3.0] codecctl, hwopus, auddebug, [6.0.0+] auddev

Audio services

banana

Profiler services

Not currently available on retail units.

[2.0.0+] bcat:a, [2.0.0+] bcat:u, [2.0.0+] bcat:m, [2.0.0+] bcat:s, news:a, news:c, news:m, news:p, news:v, prepo:u, prepo:s, prepo:m, [1.0.0-5.1.0] prepo:a, [1.0.0] prepo:d, [6.0.0+] prepo:a2

BCAT services

[1.0.0] bpc:c, bpc:b, bpc:r, bpc:w, pcv, pcv:arb, pcv:imm, time:u, time:a, time:s [2.0.0+] bpc, bpc:r, pcv, [2.0.0-8.1.0] time:u, [2.0.0-8.1.0] time:a, [2.0.0-8.1.0] time:s, [1.0.0-7.0.1] pcv:arb, [1.0.0-7.0.1] pcv:imm, [8.0.0+] clkrst, [8.0.0+] clkrst:a, [8.0.0+] clkrst:i, [8.0.0+] rgltr, [8.0.0+] rtc

PCV services

bsd:u, bsd:s, bsdcfg, ethc:c, ethc:i, nsd:u, nsd:a, sfdnsres

Sockets services

btdrv, [5.0.0+] bt

Bluetooth Driver services

btm, btm:dbg, btm:sys, [5.0.0+] btm:u

BTM services

caps:a, caps:c, [1.0.0] mm:u, [5.0.0+] caps:u

Capture services

a: AlbumAccessor, c: AlbumControl

[2.0.0+] caps:sc, [2.0.0+] caps:ss, vi:m, vi:s, vi:u, cec-mgr, [2.0.0+] mm:u, [3.0.0-5.1.0] caps:su

Display services

dispdrv

Nvnflinger services

dmnt:-

Debug Monitor services

Not currently available on retail units.

erpt:c, erpt:r

Error Report services

eupld:c, eupld:r

Error Upload services

es

ETicket services

fan, psm, tc, ts, pcm, [9.0.0+] apm:sys, [9.0.0+] fgm, [9.0.0+] fgm:0, [9.0.0+] fgm:9, [9.0.0+] fgm:dbg, [9.0.0+] apm:am

PTM services

pcm is not available on retail units.

fatal:u, fatal:p

Fatal services

friend:u, friend:v, friend:m, friend:s, friend:a, [5.0.0-6.0.0] nd:app, [5.0.0-6.0.0] nd:sys

Friend services

fsp-srv, fsp-ldr, fsp-pr

Filesystem services

srv: Main, ldr: Loader, pr: Program Registry

gpio, i2c, i2c:pcv, pinmux, pwm, uart, [3.0.0+] sasbus, [9.0.0+] led

Bus services

htc, htcs, htc:tenv, file_io, gds, tma_log, tmagent

TMA services

jit:u

JIT services

Not currently available on retail units.

lbl

Backlight services

ldn:m, ldn:s, ldn:u, [5.0.0-6.0.0] ndd, [9.0.0+] lp2p:app, [9.0.0+] lp2p:sys

LDN services

[1.0.0+] ldr:pm, ldr:ro, ldr:shel, ldr:dmnt

[3.0.0+] ldr:pm, ldr:shel, ldr:dmnt

Loader services

lm, lm:get

Log services

manu

Manu Services

"Manufacturing", present in factory firmware but not installed on retail systems.

lr, ncm, ncm:v

NCM services

nfc:am, nfc:mf:u, nfc:user, nfc:sys, nfp:user, nfp:dbg, nfp:sys

NFC services

nifm:u, nifm:a, nifm:s

Network Interface services

nim, nim:shp, ntc, [5.0.0+] nim:eca, [7.0.0+] nim:ecas

NIM services

npns:u, npns:s

NPNS services

nvdrv:a, nvdrv:s, nvdrv:t, nvdrv, nvdrvdbg, nvgem:c, nvgem:cd, nvmemp

NV services

pcie, [6.0.0+] pcie:log

PCIe services

pctl, pctl:a, pctl:s, pctl:r

Parental Control services

pm:bm, pm:info, pm:shell

Process Manager services

psc:c, psc:m, [5.0.0+] srepo:u, [5.0.0+] srepo:a, [8.0.0+] ovln:rcv, [8.0.0+] ovln:snd, [9.0.0+] psc:l, [9.0.0+] time:su, [9.0.0+] time:s, [9.0.0+] time:al, [9.0.0+] time:m, [9.0.0+] time:p, [9.0.0+] ins:r, [9.0.0+] ins:s

PSC services

[3.0.0+] ldr:ro, ro:dmnt, [7.0.0+] ro:1

RO services

set, set:fd, set:cal, set:sys

Settings services

cal: calibration, sys: System Settings

[3.0.0+] mii:u, [3.0.0+] mii:e, [3.0.0+] pdm:ntfy, [3.0.0+] pdm:qry, [3.0.0+] pl:u, [5.0.0+] miiimg, [6.0.0+] avm, [9.0.0+] pl:s

Shared Database services

ssl

SSL services

csrng, spl:, [4.0.0+] spl:mig, [4.0.0+] spl:fs, [4.0.0+] spl:ssl, [4.0.0+] spl:es, [5.0.0+] spl:manu

SPL services

sf-uds

?

System debug applet "recovery" has access to this service, but it doesn't appear to exist.

tspm

?

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, usb:hs, usb:pd, usb:pd:c, [1.0.0] usb:pd:m, usb:pm, [7.0.0+] usb:hs:a, [7.0.0+] usb:qdb, [8.0.0+] usb:obsv

USB services

wlan:inf, wlan:lcl, wlan:lg, wlan:lga, wlan:sg, wlan:soc, [6.0.0+] wlan:dtc

WLAN services

[4.0.0+] grc:c, [6.0.0+] grc:d

GRC services

[4.0.0+] mig:usr

Migration services

[4.0.0+] caps:dc

Jpegdec services

[6.0.0+] olsc:s

OLSC services

[9.0.0+] ngct:s, [9.0.0+] ngct:u

NGCT services

Category:Services