Improved ROS patch algorithm#802
Conversation
|
Input from users with access to a hardware flasher required. |
|
Successfully patched a NAND dump with 4.89 PS3HEN, using noFSM patch for 4.83. Before patching (NAND): After patching (NAND): |
|
That's great news. We still need developers with hardware flasher that test the software flasher on real conditions. Thank you to all people involved for the improvements. |
|
Now I got a hold of NOR dumps directly before and after patching with bguerville's toolset v1.2.004 (the last publicly released version) and the results are as follows:
I don't think it can get any closer, honestly. 😅 Only questions I wasn't able to answer are:
|
The major risk is the time that it takes to write 2 ROS regions. If there is a power failure while the current ROS region is written, can result in a bricked console. The official PUP writes to the non-active ROS, then switches the active ROS after a successful update. If we can find a way to detect and switch the active ROS would solve this issue.
This path of HEN => CFW was discussed earlier by Habib and bguerville. Benjamin prefers the ROP execution exploit: It saves steps, can be used directly on OFW and he has invested a good amount of time developing his own framework. Personally, I prefer the HEN path because the coding is more standard and versatile than ROP. The following text is an explanation by bguerville of how PS3HEN exploit works:
|
Looked into this by comparing NOR dumps from OFW 4.84 all the way to OFW 4.89. And after comparing them to each other with zero filled ROS regions (0xC0000 - 0xEC0000), they are exactly the same. I'm not really sure if there even is any "currently active ROS" flag stored in the flash. 🤔 |
|
I found the answer for that in a post by littlebalup on PSX-Place:
Cross-checking that with SC EEPROM - PS3 Dev wiki:
Update Manager - PS3 Dev wiki:
Not really sure if we could access that from PS3HEN... |
|
I don't know if HEN can modify the active ROS in SYSCON. Maybe from the kernel payload could have access, like it was done for fan policy. Anyway it would be a nice feature to be able to select the active ROS from CFW. One use is to have dual boot for overclocking without reinstall the firmware. |

After comparing the previous algorithm to the latest version of bgtoolset, I found a few differences that should now make it a working solution. Most of the checks were reimplemented for VSH memory limitations, the rest is in TODOs.
Currently only tested on CECHK (NOR model, CFW 4.84 DEX), with USB flash drive as the target device to be patched. Using that, I was able to verify that both NOR and NAND modes don't corrupt flash contents in any way (at least PyPS3checker can't detect it).
Before patching (NOR):
After patching (NOR):
Changes:
TODO:
Credits: