Yesterday we saw his
1.76 PS4 Entrypoint, and today PlayStation 4 developer
IDC returns with some
PS4 Act.dat and
PS4 RIF research documentation stating he will likely add the required code used to restore an
act.dat backup to his
Github soon as well.

This news comes following the
RIF Samples and
PS4 IDX Generator / GenIDX Tool as PlayStation 4 developer
@CrazyVoid hinted that both RIF and IDX files are going to be an important part to PS4 game backups and homebrew in the future.
To quote from the
Dev Wiki:
Act.dat
File Handling
On 1.76, act.dat is loaded and updated by the SceShellCore process.
Beyond 1.76, act.dat is loaded and updated directly by the kernel.
File Verification
A HMACSHA256 of the entire act.dat file using the SHA256 of the OpenPsId as the key is stored in Vtrm using SceShellCore's process ID in slot 0.
SceShellCore's process ID is 0x3800000000000010.
hmacsha256(sha256(sceKernelGetOpenPsIdForSystem()), act.dat) (pseudo-code)
- sceSblVtrmStoreNth(0x3800000000000010, hmac, 64, 0)
- sceSblVtrmRetrieveNth(0x3800000000000010, hmac, 64, 0)
- sceSblVtrmFreeNth(0x3800000000000010, 0)
Note: sceSblVtrm* are kernel functions.
This prevents easily adding or replacing the act.dat file directly. You will need to update this HMAC to prevent the act.dat file from being deleted when adding or replacing it.
File
An act.dat file is made up of 1 to 21 sequential activation structures.
The file is truncated to valid activation structures, so its size will be a multiple of 512.
Activation
Fields are big-endian.
| Signature |
0x000 |
4 |
41 43 54 00 ('ACT\0')
|
-
|
| Version |
0x004 |
2 |
00 01 |
1 (current)
|
| Type |
0x006 |
2 |
00 02 | ...