Well, that all depends if your goal is signing code so it can run on any console or just allowing unsigned code to run on your console. The latter will be possible, although still difficult.
At the end of the day, the vast majority of encrypted code runs on the PPU after decryption, so even considering the encrypted metldr block, the general principle is:
PPU: does basic initialisation
PPU: requests SPU to start up in isolation mode
SPU: decrypts lv0 and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting lv0
*INSERT HACK HERE TO PATCH lv0 HERE*
PPU: executes decrypted lv0 code
...
PPU: lv0 sends message to still running metldr SPU to decrypt lv1
SPU: decrypts lv1 and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting lv1
*INSERT HACK HERE TO PATCH lv1 HERE*
PPU: executes decrypted lv1 code
...
PPU: lv1 sends message to still running metldr SPU to decrypt lv2
SPU: decrypts lv2 and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting lv2
*INSERT HACK HERE TO PATCH lv2 HERE*
PPU: executes decrypted lv2 code
...
*CHECK*
PPU: lv2 sends message to still running metldr SPU to decrypt self
SPU: decrypts self and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting self
*INSERT HACK HERE*
PPU: executes decrypted self code
So, even without knowing the encryption keys, provided we can obtain the original metldr, we can always execute signed code so we can continue to run regular games with a modified lv2.
To run unsigned code, where I've written *CHECK*, we check to see if the code is unisgned, if so we just execute it directly without ever asking the SPU to decode the data.
13261 HeyManHRU
13219 PS3 News
11307 elser1
11169 oVERSoLDiER
9248 GrandpaHomer
8628 Tidusnake666
7968 saviour07
7340 condorstrike
7258 deank
6858 OGroteKoning
25103 PS3 News
5279 Starlight
2964 HeyManHRU
2174 elser1
2174 CJPC
1815 cfwprophet
1756 her0
1573 oVERSoLDiER
1294 GrandpaHomer
1080 barrybarryk





