Application Manager Services

Application Manager Services

Application Manager services “am:sys”, “am:u”, “am:net” #

Command HeaderDescription
0x00010040GetNumPrograms
0x00020082GetProgramList
0x00030084GetProgramInfos
0x000400C0DeleteUserProgram
0x000500C0GetProductCode
0x000600C0GetStorageId
0x00070080DeleteTicket
0x00080000GetNumTickets
0x00090082GetTicketList
0x000A0000GetDeviceId
0x000B0040GetNumImportTitleContexts
0x000C0082GetImportTitleContextList
0x000D0084GetImportTitleContexts
0x000E00C0DeleteImportTitleContext
0x000F00C0GetNumImportContentContexts
0x00100102GetImportContentContextList
0x00110104GetImportContentContexts
0x00120102DeleteImportContentContexts
0x00130040NeedsCleanup
0x00140040DoCleanup
0x00150040DeleteAllImportContexts
0x00160000DeleteAllTemporaryPrograms
0x00170044ImportTwlBackupLegacy
0x00180080InitializeTitleDatabase
0x00190040QueryAvailableTitleDatabase
0x001A00C0CalcTwlBackupSize
0x001B0144ExportTwlBackup
0x001C0084ImportTwlBackup
0x001D0000DeleteAllTwlUserPrograms
0x001E00C8ReadTwlBackupInfo
0x001F0040DeleteAllExpiredUserPrograms
0x00200000GetTwlArchiveResourceInfo
0x00210042GetPersonalizedTicketInfoList
0x00220080DeleteAllImportContextsFiltered
0x00230080GetNumImportTitleContextsFiltered
0x002400C2GetImportTitleContextListFiltered
0x002500C0CheckContentRights
0x00260044GetTicketLimitInfos
0x00270044GetDemoLaunchInfos
0x00280108ReadTwlBackupInfoEx
0x00290082DeleteUserProgramsAtomically
0x002A00C0GetNumExistingContentInfos
0x002B0142ListExistingContentInfos
0x002C0084GetProgramInfosIgnorePlatform
0x002D00C0CheckContentRightsIgnorePlatform

Application Manager services “am:u” and “am:net” #

Command HeaderDescription
0x04010080UpdateFirmwareTo
0x04020040BeginImportProgram
0x04030000BeginImportProgramTemporarily
0x04040002CancelImportProgram
0x04050002EndImportProgram
0x04060002EndImportProgramWithoutCommit
0x040700C2CommitImportPrograms
0x04080042GetProgramInfoFromCia
0x04090004GetSystemMenuDataFromCia
0x040A0002GetDependencyListFromCia
0x040B0002GetTransferSizeFromCia
0x040C0002GetCoreVersionFromCia
0x040D0042GetRequiredSizeFromCia
0x040E00C2CommitImportProgramsAndUpdateFirmwareAuto
0x040F0000UpdateFirmwareAuto
0x041000C0DeleteProgram
0x04110044GetTwlProgramListForReboot
0x04120000GetSystemUpdaterMutex
0x04130002GetMetaSizeFromCia
0x04140044GetMetaDataFromCia
0x04150080CheckDemoLaunchRights
0x041600C0GetInternalTitleLocationInfo
0x041700C0PerpetuateAgbSaveData
0x04180040BeginImportProgramForOverWrite
0x04190000BeginImportSystemProgram

Application Manager service “am:app” #

Command HeaderDescription
0x100100C0GetDLCContentInfoCount
0x10020104FindDLCContentInfos
0x10030142ListDLCContentInfos
0x10040102DeleteDLCContents
0x10050084GetDLCTitleInfos
0x10060080GetDLCOrLicenseNumTickets
0x10070102ListDLCOrLicenseTicketInfos
0x100801C2GetDLCOrLicenseItemRights
0x100900C0IsDLCTitleInUse
0x100A0000ReloadSDTitleDatabase
0x100B00C0GetNumDLCExistingContentInfos
0x100C0142ListDLCExistingContentInfos
0x100D0084GetPatchTitleInfos

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” #

Command HeaderDescription
0x08010000BeginImportTicket
0x08020002CancelImportTicket
0x08030002EndImportTicket
0x08040100BeginImportTitle
0x08050000StopImportTitle
0x080600C0ResumeImportTitle
0x08070000CancelImportTitle
0x08080000EndImportTitle
0x080900C2CommitImportTitles
0x080A0000BeginImportTmd
0x080B0002CancelImportTmd
0x080C0042EndImportTmd
0x080D0042CreateImportContentContexts
0x080E0040BeginImportContent
0x080F0002StopImportContent
0x08100040ResumeImportContent
0x08110002CancelImportContent
0x08120002EndImportContent
0x08130000GetNumCurrentImportContentContexts
0x08140042GetCurrentImportContentContextList
0x08150044GetCurrentImportContentContexts
0x08160146Sign
0x08170146Verify
0x08180042GetDeviceCert
0x08190108ImportCertificates
0x081A0042ImportCertificate
0x081B00C2CommitImportTitlesAndUpdateFirmwareAuto
0x081C0100DeleteTicketId
0x081D0080GetNumTicketIds
0x081E0102GetTicketIdList
0x081F0080GetNumTicketsOfProgram
0x08200102ListTicketInfos
0x08210142ExportLicenseTicket
0x08220000GetNumCurrentContentInfos
0x08230044FindCurrentContentInfos
0x08240082ListCurrentContentInfos
0x08250102CalculateContextRequiredSize
0x08260042UpdateImportContentContexts
0x08270000DeleteAllDemoLaunchInfos
0x082800C0BeginImportTitleForOverWrite
0x08290184ExportTicketWrapped

File service #

Command HeaderAvailable since system-versionDescription
0x0001….Stubbed. After validating the translate-paramater headers, this just returns error 0xE0C046F8.
0x040100C4Control
0x08010100OpenSubFile
0x080200C2Read
0x08030102Write
0x08040000GetSize
0x08050080SetSize
0x08060000GetAttributes
0x08070000SetAttributes
0x08080000Close
0x08090000Flush
0x080A0000This just returns 0.
0x080B0000This just returns 0.
0x080C0000This 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 #

OffsetLengthDescription
0x00x8Title ID
0x80x8Ticket ID
0x100x2Version
0x120x2Padding
0x140x4Size

TitleInfo #

OffsetLengthDescription
0x00x8Title ID
0x80x8Size
0x100x2Version
0x120x2Padding
0x140x4Type

ContentInfo #

OffsetLengthDescription
0x00x2Index
0x20x2Content Type Flags from TMD
0x40x4Content ID
0x80x8Size
0x100x1Bit 0: Downloaded, Bit 1: Owned
0x110x7Padding

ImportTitleContext #

OffsetLengthDescription
0x00x8Title ID
0x80x2Version
0xA0x2State
0xC0x4Type
0x100x8Size

ImportTitleContextState #

ValueDescription
0None
1Waiting for import
2Resumable
3Waiting for commit
4Already exists
5Deleting
6Needs cleanup

ImportContentContext #

OffsetLengthDescription
0x00x4Content ID
0x40x2Index
0x60x2Type
0x80x8Size
0x100x8Current Install Offset

TwlBackupInfo #

OffsetLengthDescription
0x00x8Title ID
0x80x2Group ID
0xA0x2Title Version
0xC0x4public.sav size
0x100x4private.sav size
0x140x4Unused, padding.
0x180x8u64, required space in bytes for installation (aligned to 0x4000, used to show amount of blocks in system settings)

Errors #

See this.

Category:Services