Changes

Jump to navigation Jump to search
2,806 bytes added ,  15:08, 25 August 2022
Made it clearer what Type is for in ContentInfo
Line 131: Line 131:  
|-
 
|-
 
| 0x002A00C0
 
| 0x002A00C0
| [[AM:GetNumExistingContentInfosSystem|GetNumExistingContentInfosSystem]]
+
| [[AM:GetNumExistingContentInfos|GetNumExistingContentInfos]]
 
|-
 
|-
 
| 0x002B0142
 
| 0x002B0142
| [[AM:ListExistingContentInfosSystem|ListExistingContentInfosSystem]]
+
| [[AM:ListExistingContentInfos|ListExistingContentInfos]]
 
|-
 
|-
 
| 0x002C0084
 
| 0x002C0084
Line 232: Line 232:  
|-
 
|-
 
| 0x100100C0
 
| 0x100100C0
| [[AM:GetNumContentInfos|GetNumContentInfos]]
+
| [[AM:GetDLCContentInfoCount|GetDLCContentInfoCount]]
 
|-
 
|-
 
| 0x10020104
 
| 0x10020104
| [[AM:FindContentInfos|FindContentInfos]]
+
| [[AM:FindDLCContentInfos|FindDLCContentInfos]]
 
|-
 
|-
 
| 0x10030142
 
| 0x10030142
| [[AM:ListContentInfos|ListContentInfos]]
+
| [[AM:ListDLCContentInfos|ListDLCContentInfos]]
 
|-
 
|-
 
| 0x10040102
 
| 0x10040102
| [[AM:DeleteContents|DeleteContents]]
+
| [[AM:DeleteDLCContents|DeleteDLCContents]]
 
|-
 
|-
 
| 0x10050084
 
| 0x10050084
| [[AM:GetDataTitleInfos|GetDataTitleInfos]]
+
| [[AM:GetDLCTitleInfos|GetDLCTitleInfos]]
 
|-
 
|-
 
| 0x10060080
 
| 0x10060080
| [[AM:GetNumDataTitleTickets|GetNumDataTitleTickets]]
+
| [[AM:GetDLCOrLicenseNumTickets|GetDLCOrLicenseNumTickets]]
 
|-
 
|-
 
| 0x10070102
 
| 0x10070102
| [[AM:ListDataTitleTicketInfos|ListDataTitleTicketInfos]]
+
| [[AM:ListDLCOrLicenseTicketInfos|ListDLCOrLicenseTicketInfos]]
 
|-
 
|-
 
| 0x100801C2
 
| 0x100801C2
| [[AM:GetItemRights|GetItemRights]]
+
| [[AM:GetDLCOrLicenseItemRights|GetDLCOrLicenseItemRights]]
 
|-
 
|-
 
| 0x100900C0
 
| 0x100900C0
| [[AM:IsDataTitleInUse|IsDataTitleInUse]]
+
| [[AM:IsDLCTitleInUse|IsDLCTitleInUse]]
 
|-
 
|-
 
| 0x100A0000
 
| 0x100A0000
| [[AM:IsExternalTitleDatabaseInitialized|IsExternalTitleDatabaseInitialized]]
+
| [[AM:ReloadSDTitleDatabase|ReloadSDTitleDatabase]]
 
|-
 
|-
 
| 0x100B00C0
 
| 0x100B00C0
| [[AM:GetNumExistingContentInfos|GetNumExistingContentInfos]]
+
| [[AM:GetNumDLCExistingContentInfos|GetNumDLCExistingContentInfos]]
 
|-
 
|-
 
| 0x100C0142
 
| 0x100C0142
| [[AM:ListExistingContentInfos|ListExistingContentInfos]]
+
| [[AM:ListDLCExistingContentInfos|ListDLCExistingContentInfos]]
 
|-
 
|-
 
| 0x100D0084
 
| 0x100D0084
 
| [[AM:GetPatchTitleInfos|GetPatchTitleInfos]]
 
| [[AM:GetPatchTitleInfos|GetPatchTitleInfos]]
 
|}
 
|}
 +
 +
The only commands accessible with this service are listed under this section.
    
= 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.
    
= Application Manager service "am:u" =
 
= Application Manager service "am:u" =
  −
= Application Manager service "am:pipe" =
      
= Application Manager network service "am:net" =
 
= Application Manager network service "am:net" =
Line 332: Line 333:  
|-
 
|-
 
| 0x08110002
 
| 0x08110002
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x001A0000?
+
| [[AMNet:CancelImportContent|CancelImportContent]]
 
|-
 
|-
 
| 0x08120002
 
| 0x08120002
| [[AMNet:InstallContentFinish|InstallContentFinish]]
+
| [[AMNet:EndImportContent|EndImportContent]]
 
|-
 
|-
 
| 0x08130000
 
| 0x08130000
| [[AMNet:GetTotalContents|GetTotalContents]]
+
| [[AMNet:GetNumCurrentImportContentContexts|GetNumCurrentImportContentContexts]]
 
|-
 
|-
 
| 0x08140042
 
| 0x08140042
| [[AMNet:GetContentIndexes|GetContentIndexes]]
+
| [[AMNet:GetCurrentImportContentContextList|GetCurrentImportContentContextList]]
 
|-
 
|-
 
| 0x08150044
 
| 0x08150044
| [[AMNet:GetContentsInfo|GetContentsInfo]]
+
| [[AMNet:GetCurrentImportContentContexts|GetCurrentImportContentContexts]]
 
|-
 
|-
 
| 0x08160146
 
| 0x08160146
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00390146
+
| [[AMNet:Sign|Sign]]
 
|-
 
|-
 
| 0x08170146
 
| 0x08170146
| Stubbed; returns 0xF8C083F4
+
| [[AMNet:Verify|Verify]]
 
|-
 
|-
 
| 0x08180042
 
| 0x08180042
| [[AMNet:GetCTCert|GetCTCert]]
+
| [[AMNet:GetDeviceCert|GetDeviceCert]]
 
|-
 
|-
 
| 0x08190108
 
| 0x08190108
| [[AMNet:SetCertificates|SetCertificates]]
+
| [[AMNet:ImportCertificates|ImportCertificates]]
 
|-
 
|-
 
| 0x081A0042
 
| 0x081A0042
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x003E0042
+
| [[AMNet:ImportCertificate|ImportCertificate]]
 
|-
 
|-
 
| 0x081B00C2
 
| 0x081B00C2
| [[AMNet:InstallTitlesFinishFIRM|InstallTitlesFinishFIRM]]
+
| [[AMNet:CommitImportTitlesAndUpdateFirmwareAuto|CommitImportTitlesAndUpdateFirmwareAuto]]
 
|-
 
|-
 
| 0x081C0100
 
| 0x081C0100
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x004B0100
+
| [[AMNet:DeleteTicketId|DeleteTicketId]]
 
|-
 
|-
 
| 0x081D0080
 
| 0x081D0080
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00490080
+
| [[AMNet:GetNumTicketIds|GetNumTicketIds]]
 
|-
 
|-
 
| 0x081E0102
 
| 0x081E0102
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x004A0102
+
| [[AMNet:GetTicketIdList|GetTicketIdList]]
 
|-
 
|-
 
| 0x081F0080
 
| 0x081F0080
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005F0080
+
| [[AMNet:GetNumTicketsOfProgram|GetNumTicketsOfProgram]]
 
|-
 
|-
 
| 0x08200102
 
| 0x08200102
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00600102
+
| [[AMNet:ListTicketInfos|ListTicketInfos]]
 
|-
 
|-
 
| 0x08210142
 
| 0x08210142
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00610142
+
| [[AMNet:ExportLicenseTicket|ExportLicenseTicket]]
 
|-
 
|-
 
| 0x08220000
 
| 0x08220000
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005B0000
+
| [[AMNet:GetNumCurrentContentInfos|GetNumCurrentContentInfos]]
 
|-
 
|-
 
| 0x08230044
 
| 0x08230044
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005C0044
+
| [[AMNet:FindCurrentContentInfos|FindCurrentContentInfos]]
 
|-
 
|-
 
| 0x08240082
 
| 0x08240082
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x005D0082
+
| [[AMNet:ListCurrentContentInfos|ListCurrentContentInfos]]
 
|-
 
|-
 
| 0x08250102
 
| 0x08250102
|?
+
| [[AMNet:CalculateContextRequiredSize|CalculateContextRequiredSize]]
 
|-
 
|-
 
| 0x08260042
 
| 0x08260042
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x00630042
+
| [[AMNet:UpdateImportContentContexts|UpdateImportContentContexts]]
 
|-
 
|-
 
| 0x08270000
 
| 0x08270000
|?
+
| [[AMNet:DeleteAllDemoLaunchInfos|DeleteAllDemoLaunchInfos]]
 
|-
 
|-
 
| 0x082800C0
 
| 0x082800C0
| Wrapper for [[Application_Manager_Services_PXI|AMPXI]] command 0x006C00C0
+
| [[AMNet:BeginImportTitleForOverWrite|BeginImportTitleForOverWrite]]
 +
|-
 +
| 0x08290184
 +
| [[AMNet:ExportTicketWrapped|ExportTicketWrapped]]
 
|}
 
|}
   Line 408: Line 412:  
|-
 
|-
 
!  Command Header
 
!  Command Header
 +
!  Available since system-version
 
!  Description
 
!  Description
 
|-
 
|-
 +
| 0x0001....
 +
|
 +
| Stubbed. After validating the translate-paramater headers, this just returns error 0xE0C046F8.
 +
|-
 +
| 0x040100C4
 +
|
 +
| [[AMFile:Control|Control]]
 +
|-
 +
| 0x08010100
 +
|
 +
| [[AMFile:OpenSubFile|OpenSubFile]]
 
|-
 
|-
 
| 0x080200C2
 
| 0x080200C2
 +
|
 
| [[AMFile:Read|Read]]
 
| [[AMFile:Read|Read]]
 
|-
 
|-
 
| 0x08030102
 
| 0x08030102
 +
|
 
| [[AMFile:Write|Write]]
 
| [[AMFile:Write|Write]]
 
|-
 
|-
 
| 0x08040000
 
| 0x08040000
 +
|
 
| [[AMFile:GetSize|GetSize]]
 
| [[AMFile:GetSize|GetSize]]
 
|-
 
|-
 
| 0x08050080
 
| 0x08050080
 +
|
 
| [[AMFile:SetSize|SetSize]]
 
| [[AMFile:SetSize|SetSize]]
 +
|-
 +
| 0x08060000
 +
|
 +
| [[AMFile:GetAttributes|GetAttributes]]
 +
|-
 +
| 0x08070000
 +
|
 +
| [[AMFile:SetAttributes|SetAttributes]]
 
|-
 
|-
 
| 0x08080000
 
| 0x08080000
 +
|
 
| [[AMFile:Close|Close]]
 
| [[AMFile:Close|Close]]
 +
|-
 +
| 0x08090000
 +
|
 +
| [[AMFile:Flush|Flush]]
 +
|-
 +
| 0x080A0000
 +
|
 +
| This just returns 0.
 +
|-
 +
| 0x080B0000
 +
|
 +
| This just returns 0.
 +
|-
 +
| 0x080C0000
 +
|
 +
| This just returns 0.
 
|}
 
|}
   −
These are identical to [[Filesystem_services#File_service|FSFile]].
+
This is similar to [[Filesystem_services#File_service|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==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Length
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Title ID
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Ticket ID
 +
|-
 +
| 0x10
 +
| 0x2
 +
| Version
 +
|-
 +
| 0x12
 +
| 0x2
 +
| Padding
 +
|-
 +
| 0x14
 +
| 0x4
 +
| Size
 +
|}
 +
 
 +
==TitleInfo==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Length
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Title ID
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Size
 +
|-
 +
| 0x10
 +
| 0x2
 +
| Version
 +
|-
 +
| 0x12
 +
| 0x2
 +
| Padding
 +
|-
 +
| 0x14
 +
| 0x4
 +
| Type
 +
|}
 +
 
 +
==ContentInfo==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Length
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x2
 +
| Index
 +
|-
 +
| 0x2
 +
| 0x2
 +
| [[Title_metadata#Content_Type_flags|Content Type Flags]] from [[Title_metadata|TMD]]
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Content ID
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Size
 +
|-
 +
| 0x10
 +
| 0x1
 +
| Bit 0: Downloaded, Bit 1: Owned
 +
|-
 +
| 0x11
 +
| 0x7
 +
| Padding
 +
|}
 +
 
 +
==ImportTitleContext==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Length
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Title ID
 +
|-
 +
| 0x8
 +
| 0x2
 +
| Version
 +
|-
 +
| 0xA
 +
| 0x2
 +
| State
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Type
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Size
 +
|}
 +
 
 +
===ImportTitleContextState===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0
 +
| None
 +
|-
 +
| 1
 +
| Waiting for import
 +
|-
 +
| 2
 +
| Resumable
 +
|-
 +
| 3
 +
| Waiting for commit
 +
|-
 +
| 4
 +
| Already exists
 +
|-
 +
| 5
 +
| Deleting
 +
|-
 +
| 6
 +
| Needs cleanup
 +
|}
 +
 
 +
==ImportContentContext==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Length
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Content ID
 +
|-
 +
| 0x4
 +
| 0x2
 +
| Index
 +
|-
 +
| 0x6
 +
| 0x2
 +
| Type
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Size
 +
|-
 +
| 0x10
 +
| 0x8
 +
| 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]].
186

edits

Navigation menu