Difference between revisions of "NS services"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 375: Line 375:
  
 
=== ShimKind ===
 
=== ShimKind ===
This is from strings and code in [[Internet_Browser|whitelisted]] web-applet.
+
This is from strings and code in the [[Internet_Browser| web-applets]].
 +
 
 +
This indicates the type of web-applet.
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 383: Line 385:
 
|-
 
|-
 
| 2
 
| 2
| LoginApplet (See above string)
+
| LoginApplet
 
|-
 
|-
 
| 4
 
| 4
| ShareApplet (See above string)
+
| ShareApplet
 +
|-
 +
| 5
 +
| WebApplet
 
|-
 
|-
 
| 6
 
| 6
| Wifi
+
| WifiWebAuthApplet
 
|-
 
|-
 
| 7
 
| 7
| LobbyApplet (See above string)
+
| LobbyApplet
 
|}
 
|}
  
 
[[Category:Services]]
 
[[Category:Services]]

Revision as of 03:17, 23 June 2017

This is the Switch equivalent of this.

ns:am

Cmd Name
0 #GetTitlesInfo
1
2
3
4
5
6
7
8
9
11
13
16
17
19
21 #GetContentNcaPath
22
23
25
27
30
31
33
35
36
37
38
39
40
41
42
43
44
45
46
47 #GetFreeSpace
48 #GetTotalSpace
49
52
53
54
55
56
57
58
59
60 GetLanguageIdFromString
61
62
63
64
65
100 InitializeNXFileSystem?
101 ? Seems to wipe filesystem but keeps some data (savegames? users?)
102
200
201
210
220
300
301
302
303
304
305
306
307
401
402
403
404
405
502
503
504
600
601 #GetTitleInfo1
602
603
604
605 Used same way as #GetTitleInfo1.
700
701
702
703
704
705
800
801
900
901
902
903
904
905
906
907
908
1000
1001
1200
1300
1301
1302
1400
1500
1501
1502
1503
1600
1700
1800
1801
1802

GetContentNcaPath

Takes a 0x16-type output buffer, an u8 type, and an u64 titleID.

The input titleID is used with the application-title table like various other cmds, anything not in that table can't be used with this.

Returns a string path for the specified type of content with this titleID. Returns an error when the specified type of content doesn't exist for this title. For example: "@SdCardContent:/<subdirectory under {Contents}>/{path to .nca directory}". The string ends with ".nca". Hence, the path is the same as what's on SD under the Contents directory.

The output string is then used by the user-process with FS to mount the content.

GetFreeSpace

Takes an input media-id that must be 5.

Returns the u64 from Content_Manager_services#IContentStorage cmd22.

GetTotalSpace

Takes an input media-id that must be 5.

Returns the u64 from Content_Manager_services#IContentStorage cmd23.

GetTitlesInfo

Takes a type-6 output buffer and an u64.

Returns an array of title-info entries using the specified offset and size. No input titleID is passed to this.

GetTitleInfo1

Returns 0x10-byte entries using the specified titleID starting at the specified u32 entryindex. Can only return game titles. The second entry if any is the update-title usually. When the input entryindex is >= totalentries, this will return 0 with out_entrycount=0.

Entry structure:

Offset Size Description
0x0 0x1 u8 "type". Title type (String is from web-applet)
0x1 0x1 u8 "installedStorage" / StorageId (String is from web-applet)
0x2 0x1 Unknown. Non-zero with output from cmd 605, differs for app/update titles.
0x3 0x1 Padding
0x4 0x4 u32 Title-version
0x8 0x8 u64 titleID

ns:su

ns:dev

Cmd Name
0 LaunchTitle
1 TerminateTitle
2
3
4
5
6
7
8
9

Enums

AppletId

ID Description
0x02 Unknown (throws fatal error 2128-0203)
0x03 Unknown (throws fatal error 2128-0203)
0x04 Unknown (throws fatal error 2128-0203)
0x0C Unknown (blinks the screen)
0x0D Unknown (displays "Checking for free space...")
0x0E ErrorApplet
0x0F NetworkSelect
0x10 PlayerSelect
0x11 Swkbd (on-screen keyboard)
0x13 WebApplet From WebApplet string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletWeb".
0x14 Ec (ShopN) From ShopN string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletShop".
0x15 Album
0x18 Whitelisted web-applet (From whitelisted web-applet string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletLoginShare")
0x19 WifiWebAuth (From browser string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletWifiWebAuth")

This seems to be the equivalent of this.

ShimKind

This is from strings and code in the web-applets.

This indicates the type of web-applet.

shimKind value Description
2 LoginApplet
4 ShareApplet
5 WebApplet
6 WifiWebAuthApplet
7 LobbyApplet