Fixing DRL and CRL Hashes

From PS3 Developer wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Introduction

  • It's a small and easy guide how to fix your DRL/CRL issues on GameOS with PS3 Linux.

Tools

  • You need my latest ps3dm tool with VTRM commands retrieve and store_with_update.

ps3vuart-tools: http://gitorious.ps3dev.net/ps3linux/ps3vuart-tools

DRL and CRL Hashes

  • DRL and CRL SHA1 hashes are stored on one of the encrypted data blocks (with 0x40 length each) inside VTRM FLASH region.
  • First 20 bytes are SHA1 hash of DRL. Then following 20 bytes SHA1 hash of CRL.
  • If you are using a FW without SS patch then use Authority ID 0x1070000039000001 as parameter to option -p.


Read current DRL and CRL SHA1 hashes from FLASH using VTRM service:

sudo ./ps3dm -l 0x0 -p 0x1070000034000001 vtrm retrieve 0 | xxd -c 16 -p
8f0652bc6162a240362f90f1b2e5405b
b82ee50296791f41f9a76f4d895dd582
0db108ec03d192500000000000000000
00000000000000000000000000000000

Write current DRL and CRL SHA1 hashes to FLASH using VTRM service:

sudo ./ps3dm -l 0x0 -p 0x1070000034000001 vtrm store_with_update \
    8f0652bc6162a240362f90f1b2e5405bb82ee50296791f41f9a76f4d895dd5820db108ec03d19250

If you write wrong hashes intentionally then you won't be able to play BD movies and you will get the following message:

Playback of BDs is prohibited on this system.
Contact technical support for assistance.

How to get correct DRL and CRL hashes:

sudo mount /dev/ps3flash /mnt

sha1sum /mnt/data-revoke/drl/DRL1
8f0652bc6162a240362f90f1b2e5405bb82ee502  /mnt/data-revoke/drl/DRL1

sha1sum /mnt/data-revoke/crl/CRL1
96791f41f9a76f4d895dd5820db108ec03d19250  /mnt/data-revoke/crl/CRL1

Test

  • I intentionally wrote wrong DRL and CRL hashes with VTRM service store_with_update.
  • After that i couldn't play my BD movies on GameOS.
  • Then i wrote correct hashes again and BD playback is working again :)