Editing Activation ACF
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
ACF | ACF is a data structure stored in PS4 Kit System Flash at offset [http://www.psdevwiki.com/ps4/Flash-Main#0x1C9080_ACF_.28Dev.2FTest.29 0x1C9080]. | ||
See also [https://wiki.henkaku.xyz/vita/AFV PSVita equivalent]. | |||
See also [https://wiki.henkaku.xyz/vita/AFV | |||
= Structure = | = Structure = | ||
Total length is 0x68 bytes | Total length is 0x68 bytes. | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! From !! To !! Description | ||
|- | |- | ||
| | | 1C9080 || 1C9083 || '''Magic''' "ACF\0" | ||
|- | |- | ||
| | | 1C9084 || 1C9087 || '''Format version''' Constant 4 bytes. (format_ver, format_minor_ver) | ||
|- | |- | ||
| | | 1C9088 || 1C9097 || '''Activation Key''' | ||
|- | |- | ||
| | | 1C9098 || 1C909B || '''Issue Number''' | ||
|- | |- | ||
| | | 1C909C || 1C909F || '''Start date''' 4 bytes. Little Endian. | ||
|- | |- | ||
| | | 1C90A0 || 1C90A3 || '''Expire date''' 4 bytes. Little Endian. Usually 90 days since Start date. | ||
|- | |- | ||
| | | 1C90A4 || 1C90A7 || '''Reserved''' Always zeroed. | ||
|- | |- | ||
| | | 1C90A8 || 1C90E7 || '''Key_Hash''' Unique 64 bytes. | ||
|- | |- | ||
|} | |} | ||
< | <source lang="C"> | ||
typedef struct SceAcf { | typedef struct SceAcf { | ||
char magic[4]; | char magic[4]; | ||
uint32_t format_ver; | |||
char activation_key[16]; | char activation_key[16]; | ||
uint32_t issue_no; | uint32_t issue_no; | ||
uint32_t start_date; | uint32_t start_date; | ||
uint32_t | uint32_t expire_date; | ||
uint32_t reserved; | uint32_t reserved; // Maybe just padding | ||
char key_hash[64]; | char key_hash[64]; | ||
} SceAcf; | } SceAcf; | ||
</ | </source> | ||
= | = Example = | ||
Structure and constant bytes are for every Dev / Test the same. Example: | |||
* Magic bytes: red. | * Magic bytes: red. | ||
Line 69: | Line 52: | ||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
001C9080 <span style="background:#ff6666;">61 63 66 00</span> <span style="background:#8888ff;">01 02 00 00</span> <span style="background:#00ff00;">D6 B1 DA DE C7 82 7A A4</span> acf.....Ö±ÚÞÇ‚z¤ | 001C9080 <span style="background:#ff6666;">61 63 66 00</span> <span style="background:#8888ff;">01 02 00 00</span> <span style="background:#00ff00;">D6 B1 DA DE C7 82 7A A4</span> acf.....Ö±ÚÞÇ‚z¤ | ||
001C9090 <span style="background:#00ff00;">21 AE 4E D0 D9 BF B1 1A 03 00 00 00 11 55 E2 52</span> !®NÐÙ¿±......UâR | 001C9090 <span style="background:#00ff00;">21 AE 4E D0 D9 BF B1 1A</span> <span style="background:#8888ff;">03 00 00 00</span> <span style="background:#00ff00;">11 55 E2 52</span> !®NÐÙ¿±......UâR | ||
001C90A0 <span style="background:#00ff00;">11 FC 58 53</span> <span style="background:#8888ff;">00 00 00 00</span> <span style="background:#00ff00;">CC B4 CD 3A 0A F5 C0 F4</span> .üXS....Ì´Í:.õÀô | 001C90A0 <span style="background:#00ff00;">11 FC 58 53</span> <span style="background:#8888ff;">00 00 00 00</span> <span style="background:#00ff00;">CC B4 CD 3A 0A F5 C0 F4</span> .üXS....Ì´Í:.õÀô | ||
001C90B0 <span style="background:#00ff00;">4F 04 6B C3 95 16 E6 D8 FB 0B F2 56 B0 3B BA 00</span> O.kÕ.æØû.òV°;º. | 001C90B0 <span style="background:#00ff00;">4F 04 6B C3 95 16 E6 D8 FB 0B F2 56 B0 3B BA 00</span> O.kÕ.æØû.òV°;º. |