Difference between revisions of "Application Manager Services"
Jump to navigation
Jump to search
TimmSkiller (talk | contribs) m |
m (Add am:pipe anchor) |
||
(18 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 131: | Line 131: | ||
|- | |- | ||
| 0x002A00C0 | | 0x002A00C0 | ||
− | | [[AM: | + | | [[AM:GetNumExistingContentInfos|GetNumExistingContentInfos]] |
|- | |- | ||
| 0x002B0142 | | 0x002B0142 | ||
− | | [[AM: | + | | [[AM:ListExistingContentInfos|ListExistingContentInfos]] |
|- | |- | ||
| 0x002C0084 | | 0x002C0084 | ||
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 241: | Line 242: | ||
|- | |- | ||
| 0x10040102 | | 0x10040102 | ||
− | | [[AM: | + | | [[AM:DeleteDLCContents|DeleteDLCContents]] |
|- | |- | ||
| 0x10050084 | | 0x10050084 | ||
Line 247: | Line 248: | ||
|- | |- | ||
| 0x10060080 | | 0x10060080 | ||
− | | [[AM: | + | | [[AM:GetDLCOrLicenseNumTickets|GetDLCOrLicenseNumTickets]] |
|- | |- | ||
| 0x10070102 | | 0x10070102 | ||
− | | [[AM: | + | | [[AM:ListDLCOrLicenseTicketInfos|ListDLCOrLicenseTicketInfos]] |
|- | |- | ||
| 0x100801C2 | | 0x100801C2 | ||
Line 256: | Line 257: | ||
|- | |- | ||
| 0x100900C0 | | 0x100900C0 | ||
− | | [[AM: | + | | [[AM:IsDLCTitleInUse|IsDLCTitleInUse]] |
|- | |- | ||
| 0x100A0000 | | 0x100A0000 | ||
− | | [[AM: | + | | [[AM:ReloadSDTitleDatabase|ReloadSDTitleDatabase]] |
|- | |- | ||
| 0x100B00C0 | | 0x100B00C0 | ||
− | | [[AM: | + | | [[AM:GetNumDLCExistingContentInfos|GetNumDLCExistingContentInfos]] |
|- | |- | ||
| 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 381: | Line 385: | ||
|- | |- | ||
| 0x08210142 | | 0x08210142 | ||
− | | [[AMNet: | + | | [[AMNet:ExportLicenseTicket|ExportLicenseTicket]] |
|- | |- | ||
| 0x08220000 | | 0x08220000 | ||
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 | ||
| | | | ||
− | | | + | | [[AMFile:OpenSubFile|OpenSubFile]] |
|- | |- | ||
| 0x080200C2 | | 0x080200C2 | ||
Line 445: | Line 449: | ||
| 0x08060000 | | 0x08060000 | ||
| | | | ||
− | | | + | | [[AMFile:GetAttributes|GetAttributes]] |
|- | |- | ||
| 0x08070000 | | 0x08070000 | ||
| | | | ||
− | | | + | | [[AMFile:SetAttributes|SetAttributes]] |
|- | |- | ||
| 0x08080000 | | 0x08080000 | ||
Line 457: | Line 461: | ||
| 0x08090000 | | 0x08090000 | ||
| | | | ||
− | | | + | | [[AMFile:Flush|Flush]] |
|- | |- | ||
| 0x080A0000 | | 0x080A0000 | ||
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 649: | Line 654: | ||
| 0x8 | | 0x8 | ||
| Current Install Offset | | Current Install Offset | ||
+ | |} | ||
+ | |||
+ | ==TwlBackupInfo== | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! 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= | =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"[edit]
Application Manager services "am:u" and "am:net"[edit]
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"[edit]
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"[edit]
This service only has access to the 0x00XX* commands listed above, and the "am:app" commands.
Application Manager service "am:u"[edit]
Application Manager network service "am:net"[edit]
File service[edit]
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[edit]
TicketInfo[edit]
Offset | Length | Description |
---|---|---|
0x0 | 0x8 | Title ID |
0x8 | 0x8 | Ticket ID |
0x10 | 0x2 | Version |
0x12 | 0x2 | Padding |
0x14 | 0x4 | Size |
TitleInfo[edit]
Offset | Length | Description |
---|---|---|
0x0 | 0x8 | Title ID |
0x8 | 0x8 | Size |
0x10 | 0x2 | Version |
0x12 | 0x2 | Padding |
0x14 | 0x4 | Type |
ContentInfo[edit]
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[edit]
Offset | Length | Description |
---|---|---|
0x0 | 0x8 | Title ID |
0x8 | 0x2 | Version |
0xA | 0x2 | State |
0xC | 0x4 | Type |
0x10 | 0x8 | Size |
ImportTitleContextState[edit]
Value | Description |
---|---|
0 | None |
1 | Waiting for import |
2 | Resumable |
3 | Waiting for commit |
4 | Already exists |
5 | Deleting |
6 | Needs cleanup |
ImportContentContext[edit]
Offset | Length | Description |
---|---|---|
0x0 | 0x4 | Content ID |
0x4 | 0x2 | Index |
0x6 | 0x2 | Type |
0x8 | 0x8 | Size |
0x10 | 0x8 | Current Install Offset |
TwlBackupInfo[edit]
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[edit]
See this.