Changes

Jump to navigation Jump to search

F00D Commands

902 bytes added, 16 January
Returns the console's [[ConsoleId]].
Used in [[SceSblSsMgr#sceSblSsGetConsoleIdForDriversceSblAimgrGetConsoleIdForDriver|sceSblSsGetConsoleIdForDriversceSblAimgrGetConsoleIdForDriver]].
=== 0x2 OpenPsId ===
Returns the console's [[OpenPsId]].
Used in [[SceSblSsMgr#sceSblSsGetOpenPsIdForDriversceSblAimgrGetOpenPsIdForDriver|sceSblSsGetOpenPsIdForDriversceSblAimgrGetOpenPsIdForDriver]].
=== 0x3 VisibleId/FuseId ===
Returns the console's [[VisibleId]].
Used in [[SceSblSsMgr#sceSblSsGetVisibleIdForDriversceSblAimgrGetVisibleIdForDriver|sceSblSsGetVisibleIdForDriversceSblAimgrGetVisibleIdForDriver]].
=== 0x4 PsCode ===
Returns the console's [[PsCode]].
Used in [[SceSblSsMgr#sceSblSsGetPscode2ForDriversceSblAimgrGetPscode2ForDriver|sceSblSsGetPscode2ForDriversceSblAimgrGetPscode2ForDriver]].
=== 0x5 PassPhrase ===
This is one of variable sized buffers that can be placed inside [[F00D_Commands#Request_Buffer|Request_Buffer]]
Type definition is located here [[SceSblSsSmComm#sceSblSmCommCallFuncsceSblSmCommCallFuncForKernel|sm_comm_context]]
{| class="wikitable"
SCE_SBL_SM_COMM_FID_SM_SNVS_DEC_MGMT.
Calculates a XTS Decrypt using the per console keys in keyring slot 0x502, and 0x503 for the tweak and decryption keys. It then calculates an HMAC using the keyring 0x504 to check the block passed in(mgmt_data). In theory, the first 0x10 bytes is the data and the last 0x10 bytes is the HMAC. The result is a 8 byte buffer (status and flags) returned in the main F00D packet. Input data size is 0x28 bytes. <source lang="C">typedef struct input { int status; // output char flags[4]; // output char mgmt_data[0x20]; // input: read from NVS at offset 0} input;</source> <source lang="C">// SCE_SBL_SS_SNVS_FLAGS#define SCE_SBL_SS_SNVS_UPDATER_FLAG_INDEX 0</source> If flag[SCE_SBL_SS_SNVS_UPDATER_FLAG_INDEX] is not set, updater init is skipped:<source lang="C"> if (((byte)flags & 1) == 0) sceKernelPrintfLevelForDriver(2, "skip init for updater\n"); else { sceKernelPrintfLevelForDriver(2, "do init for updater\n"); if (SpkgInfoUtilInitForUpdater(&status, &flags) != 0) sceKernelPrintfLevelForDriver(2,"SpkgInfoUtilInitForUpdater() failure = 0x%x\n",iVar2); }</source>
=== 0xA0002 sceSblUsSmAuthPupAs ===
4,927

edits

Navigation menu