Application Manager Services: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
| TimmSkiller (talk | contribs) | m Add am:pipe anchor | ||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| __TOC__ | |||
| {{Anchor|AM}} | |||
| = Application Manager services "am:sys", "am:u", "am:net" = | = Application Manager services "am:sys", "am:u", "am:net" = | ||
| {| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 225: | Line 225: | ||
| |} | |} | ||
| {{Anchor|AMAPP}}{{Anchor|am:app}} | |||
| = Application Manager service "am:app" = | = Application Manager service "am:app" = | ||
| {| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 265: | Line 266: | ||
| |- | |- | ||
| | 0x100C0142 | | 0x100C0142 | ||
| | [[AM: | | [[AM:ListDLCExistingContentInfos|ListDLCExistingContentInfos]] | ||
| |- | |- | ||
| | 0x100D0084 | | 0x100D0084 | ||
| Line 273: | Line 274: | ||
| The only commands accessible with this service are listed under this section. | The only commands accessible with this service are listed under this section. | ||
| {{Anchor|AMSYS}}{{Anchor|am:sys}} | |||
| = Application Manager service "am:sys" = | = Application Manager service "am:sys" = | ||
| This service only has access to the 0x00XX* commands listed above, and the "am:app" commands. | This service only has access to the 0x00XX* commands listed above, and the "am:app" commands. | ||
| {{Anchor|AMU}}{{Anchor|am:u}} | |||
| = Application Manager service "am:u" = | = Application Manager service "am:u" = | ||
| {{Anchor|AMNET}}{{Anchor|am:net}} | |||
| = Application Manager network service "am:net" = | = Application Manager network service "am:net" = | ||
| {| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 419: | Line 423: | ||
| | Stubbed. After validating the translate-paramater headers, this just returns error 0xE0C046F8. | | Stubbed. After validating the translate-paramater headers, this just returns error 0xE0C046F8. | ||
| |- | |- | ||
| |  | | 0x040100C4 | ||
| |   | |   | ||
| |  | | [[AMFile:Control|Control]] | ||
| |- | |- | ||
| | 0x08010100 | | 0x08010100 | ||
| Line 476: | Line 480: | ||
| For handling each command that's actually implemented, the AM cmdhandler function calls a vtable funcptr. | For handling each command that's actually implemented, the AM cmdhandler function calls a vtable funcptr. | ||
| {{Anchor|am:pipe}} | |||
| The private port for this seems to be referred to as "am:pipe", even though the "am:pipe" string isn't actually used. | The private port for this seems to be referred to as "am:pipe", even though the "am:pipe" string isn't actually used. | ||
| Line 548: | Line 553: | ||
| | 0x2 | | 0x2 | ||
| | 0x2 | | 0x2 | ||
| | Type | | [[Title_metadata#Content_Type_flags|Content Type Flags]] from [[Title_metadata|TMD]] | ||
| |- | |- | ||
| | 0x4 | | 0x4 | ||
| Line 690: | Line 695: | ||
| =Errors= | =Errors= | ||
| See [[Application_Manager_Services_PXI|this]]. | See [[Application_Manager_Services_PXI|this]]. | ||
| [[Category:Services]] | |||
Latest revision as of 11:34, 18 September 2024
Application Manager services "am:sys", "am:u", "am:net"
Application Manager services "am:u" and "am:net"
| Command Header | Description | 
|---|---|
| 0x04010080 | UpdateFirmwareTo | 
| 0x04020040 | BeginImportProgram | 
| 0x04030000 | BeginImportProgramTemporarily | 
| 0x04040002 | CancelImportProgram | 
| 0x04050002 | EndImportProgram | 
| 0x04060002 | EndImportProgramWithoutCommit | 
| 0x040700C2 | CommitImportPrograms | 
| 0x04080042 | GetProgramInfoFromCia | 
| 0x04090004 | GetSystemMenuDataFromCia | 
| 0x040A0002 | GetDependencyListFromCia | 
| 0x040B0002 | GetTransferSizeFromCia | 
| 0x040C0002 | GetCoreVersionFromCia | 
| 0x040D0042 | GetRequiredSizeFromCia | 
| 0x040E00C2 | CommitImportProgramsAndUpdateFirmwareAuto | 
| 0x040F0000 | UpdateFirmwareAuto | 
| 0x041000C0 | DeleteProgram | 
| 0x04110044 | GetTwlProgramListForReboot | 
| 0x04120000 | GetSystemUpdaterMutex | 
| 0x04130002 | GetMetaSizeFromCia | 
| 0x04140044 | GetMetaDataFromCia | 
| 0x04150080 | CheckDemoLaunchRights | 
| 0x041600C0 | GetInternalTitleLocationInfo | 
| 0x041700C0 | PerpetuateAgbSaveData | 
| 0x04180040 | BeginImportProgramForOverWrite | 
| 0x04190000 | BeginImportSystemProgram | 
Application Manager service "am:app"
| Command Header | Description | 
|---|---|
| 0x100100C0 | GetDLCContentInfoCount | 
| 0x10020104 | FindDLCContentInfos | 
| 0x10030142 | ListDLCContentInfos | 
| 0x10040102 | DeleteDLCContents | 
| 0x10050084 | GetDLCTitleInfos | 
| 0x10060080 | GetDLCOrLicenseNumTickets | 
| 0x10070102 | ListDLCOrLicenseTicketInfos | 
| 0x100801C2 | GetDLCOrLicenseItemRights | 
| 0x100900C0 | IsDLCTitleInUse | 
| 0x100A0000 | ReloadSDTitleDatabase | 
| 0x100B00C0 | GetNumDLCExistingContentInfos | 
| 0x100C0142 | ListDLCExistingContentInfos | 
| 0x100D0084 | GetPatchTitleInfos | 
The only commands accessible with this service are listed under this section.
Application Manager service "am:sys"
This service only has access to the 0x00XX* commands listed above, and the "am:app" commands.
Application Manager service "am:u"
Application Manager network service "am:net"
File service
| Command Header | Available since system-version | Description | 
|---|---|---|
| 0x0001.... | Stubbed. After validating the translate-paramater headers, this just returns error 0xE0C046F8. | |
| 0x040100C4 | Control | |
| 0x08010100 | OpenSubFile | |
| 0x080200C2 | Read | |
| 0x08030102 | Write | |
| 0x08040000 | GetSize | |
| 0x08050080 | SetSize | |
| 0x08060000 | GetAttributes | |
| 0x08070000 | SetAttributes | |
| 0x08080000 | Close | |
| 0x08090000 | Flush | |
| 0x080A0000 | This just returns 0. | |
| 0x080B0000 | This just returns 0. | |
| 0x080C0000 | This just returns 0. | 
This is similar to FSFile.
For handling each command that's actually implemented, the AM cmdhandler function calls a vtable funcptr.
The private port for this seems to be referred to as "am:pipe", even though the "am:pipe" string isn't actually used.
Types
TicketInfo
| Offset | Length | Description | 
|---|---|---|
| 0x0 | 0x8 | Title ID | 
| 0x8 | 0x8 | Ticket ID | 
| 0x10 | 0x2 | Version | 
| 0x12 | 0x2 | Padding | 
| 0x14 | 0x4 | Size | 
TitleInfo
| Offset | Length | Description | 
|---|---|---|
| 0x0 | 0x8 | Title ID | 
| 0x8 | 0x8 | Size | 
| 0x10 | 0x2 | Version | 
| 0x12 | 0x2 | Padding | 
| 0x14 | 0x4 | Type | 
ContentInfo
| Offset | Length | Description | 
|---|---|---|
| 0x0 | 0x2 | Index | 
| 0x2 | 0x2 | Content Type Flags from TMD | 
| 0x4 | 0x4 | Content ID | 
| 0x8 | 0x8 | Size | 
| 0x10 | 0x1 | Bit 0: Downloaded, Bit 1: Owned | 
| 0x11 | 0x7 | Padding | 
ImportTitleContext
| Offset | Length | Description | 
|---|---|---|
| 0x0 | 0x8 | Title ID | 
| 0x8 | 0x2 | Version | 
| 0xA | 0x2 | State | 
| 0xC | 0x4 | Type | 
| 0x10 | 0x8 | Size | 
ImportTitleContextState
| Value | Description | 
|---|---|
| 0 | None | 
| 1 | Waiting for import | 
| 2 | Resumable | 
| 3 | Waiting for commit | 
| 4 | Already exists | 
| 5 | Deleting | 
| 6 | Needs cleanup | 
ImportContentContext
| Offset | Length | Description | 
|---|---|---|
| 0x0 | 0x4 | Content ID | 
| 0x4 | 0x2 | Index | 
| 0x6 | 0x2 | Type | 
| 0x8 | 0x8 | Size | 
| 0x10 | 0x8 | Current Install Offset | 
TwlBackupInfo
| Offset | Length | Description | 
|---|---|---|
| 0x0 | 0x8 | Title ID | 
| 0x8 | 0x2 | Group ID | 
| 0xA | 0x2 | Title Version | 
| 0xC | 0x4 | public.sav size | 
| 0x10 | 0x4 | private.sav size | 
| 0x14 | 0x4 | Unused, padding. | 
| 0x18 | 0x8 | u64, required space in bytes for installation (aligned to 0x4000, used to show amount of blocks in system settings) | 
Errors
See this.