Reflashing your ROM is dangerous, and you could brick your device if it goes wrong. Only proceed if you are confident with what you are doing - we take no responsibility should anything go wrong!
Follow the steps below to backup, rebuild and reflash your ROM. Your device will need to be application unlocked prior to following these steps!
If you are using a shipped/non-cooked ROM, then you will notice a SIGNIFICANT memory increase (around 48MB on the standard ROM to 55MB after this guide )
Step 1: Install Hard-SPL bootloader
Consider Hard-SPL an insurance policy. If all else fails, HardSPL will allow you to flash a working ROM onto your device.
Tool required: HardSPL for Hermes - download link - original source
- Download file.
- Extract to a temporary directory.
- Run 'RUUWrapper.exe', press 'AutoDetect' (this will automagically determine you bootloader version ) and follow the prompts (you may also have to confirm a prompt on the device itself)
Step 2: Dump the OS partition of your device ROM
Tools required: itsutils - download link - original source
The next step is to get the OS area of the ROM from your device in it's raw format.
- Create a new directory (our 'working directory'), e.g. C:\ROM.
- Open a command prompt in the your working directory.
- Extract the itsutils download to your working directory.
- Type 'pdocread -l' at the command prompt. This will produce output similar to below, these are the addresses of the ROM sections. If this fails, ensure your device is application unlocked and that HKLM\Security\Policies\Policies001001 has a value of 1, NOT 2.
114.88M (0x72e0000) FLASHDR | 3.12M (0x31fc00) Part00 | 2.88M (0x2e0000) Part01 | 50.13M (0x3220000) Part02 | 58.75M (0x3ac0000) Part03 10.00M (0xa00000) EXT_FLA | 10.00M (0xa00000) PART00- We want to read Part02 on FLASHDR, so type 'pdocread -w -d FLASHDR -p Part02 0 0x3220000 Part02.raw' at the command prompt..
Note: The size of Part02 will be different on a HTC Hermes, this will also vary from ROM to ROM. You will need to type in the appropriate length of the block. Eg. If 'pdocread -l' gave you:
114.88M (0x72e0000) FLASHDR | 3.12M (0x31fc00) Part00 | 2.88M (0x2e0000) Part01 | 50.13M (0xRANDOM) Part02 | 58.75M (0x3ac0000) Part03 10.00M (0xa00000) EXT_FLA | 10.00M (0xa00000) PART00You should type 'pdocread -w -d FLASHDR -p Part02 0 0xRANDOM Part02.raw'
Now wait while a raw dump of the OS area of the ROM is created on your PC! It will take a while and not look like it's doing anything, but if you browse your working directory in Windows Explorer, you'll see a Part02.raw file growing in size You should double check your values from the pdocread -l output, and adjust accordingly!
Step 3: Extract the RAW (IMGFS) file to a dump directory
Tools required: ImgfsTools2rc2b - download link - original source
- Extract the ImgfsTools2rc2b download to your working directory.
- Now we have the IMGFS file, we're going to extract everything from it, ready for an optimised rebuild by the excellent ImgfsTools2.
- Type 'imgfstodump part02.raw' at the command prompt.
Step 4: Build a new IMGFS file from the dump directory
- We've finished the extraction now, and we're ready to start putting everything back together.
- Type 'imgfsfromdump part02.raw imgfs.new.bin' at the command prompt.
- When you look at the 2 .bin files in the working directory, you should notice the new one is smaller. Strange eh? They have the same contents!
Step 5: Download and split a donor NB file
Tools required: A valid HTC Hermes RUU - download link
Tools required: WinRAR - download link
Tools required: NBHextract - download link - original source
- After installing WinRAR, copy the downloaded HTC Trinity RUU to your working directory.
- Right click the .EXE file, and select 'Extract Here'.
- Extract the NBHextract download to your working directory.
- Type 'nbhextract ruu_signed.nbh' at the command prompt to convert the NBH to it's component parts.
- Type 'nbsplit -hermes 06_os.nb' at the command prompt to split the OS NB file.
- Type 'ren 06_os.nb.payload 06_os.nb.old.payload' at the command prompt to make way for our new NB payload.
Step 6: Convert the new IMGFS file to a new NB payload file
- Type 'imgfstonb imgfs.new.bin 06_os.nb.old.payload 06_os.nb.payload'. This copies all data except the IMGFS partition from os.nb.old.payload to os.nb.payload, then adds the IMGFS partition from imgfs.new.bin.
Step 7: Merge the new NB payload into a new NB file
- Type 'nbmerge -hermes 06_os.nb' to create our new NB file.
Step 8: Convert the new NB file to a NBH file
Tool download required: Custom RUU Updater with NBH Generator and script - download link
- Download the tool above and right click and extract to /Flash.
- Copy 06_OS.nb to this directory
- Open a command prompt at this directory and run 'nbhgen sample.txt'
- You will now notice that the file RUU_signed.nbh has been created
Step 9: Flash the new NBH file
- We're ready to go!
- Run 'RUUWrapper.exe', press 'AutoDetect' (this will automagically determine you bootloader version ) and follow the prompts (you may also have to confirm a prompt on the device itself), and enjoy your new ROM build! Keep a copy of this 'Flash' directory, and you always have copy of your ROM to go back to at a later date.
Many thanks to Paul for the original method