SLUUCO9A April 2023 – November 2023 BQ28Z620
This is a read/write command that changes the Unseal and Full Access keys. To read the keys, send the SecurityKeys() command to either the MACSubcmd() 0x00 or 0x3E, followed by a read from MACSubcmd().
To change the keys, the write operations must be sent through MACSubcmd() 0x3E with the SecurityKeys() followed by the keys. Each parameter entry must be sent in Little Endian.
Example:
Changing the Unseal key to 0x0123, 0x4567 and the Full Access key to 0x89AB, 0xCDEF:
Write block: command through MACSubcmd() starting address 0x3E, data block (hex) = [35 00 23 01 67 45 AB 89 EF CD].
Starting address 0x60, data block(hex) = [0A 0C] (checksum followed by length)
Checksum = 0x0A = ~(0x35 + 0x00 + 0x23 + 0x01 + 0x67 + 0x45 + 0xAB + 0x89 + 0xEF + 0xCD). The checksum is the 8-bit sum of the MSB and LSB of the command plus the (command length) bytes in the buffer. The final sum is the bitwise inversion of the result.