Below I am going to outline how I extract, edit and write a ROM to my Dell Axim X51v. Now this is mainly a record for me to remember what I have done so that in the future when I need to do it again I won't have to relearn the process again. But I'm sure a few other will find it useful too.
What you will need
- ROM Image - You can download this from the Dell website.
- IMG2NB0F - Referenced on a forum post on Aximsite
- IMGFS Tools - Referenced on a forum post on xda-developers
- Sign Tools - Referenced on a forum post on Aximsite
- SD card formated as FAT32
Note: I have had an experience where the checksums do not match up and have found this to be a result of the SD card used. If this happens to you try using a different SD card formatted with a FAT32 file system.
- Run the file downloaded from the Dell website, R129272.EXE. It should expand out to the c:\Dell\Drivers\R129272 directory.
- Copy IMG2NB0F.exe to the same directory as above.
- Run IMG2NB0f.exe and browse to c:\Dell\Drivers\R129272\ROM\English\AximX51v_WM5_A12EN.IMG. Click on Do. When the IMG file has been converted to DiAd_K_A12_X51v_WM5_EN.nb0 a windows will popup and you can click OK.
- Create a CRC file by running notepad.exe and entering only '1468E194', then save the file with the same name as the nb0 file generated from step 3, except you have to change the last four characters from '.nb0' to '_nb0.crc'. ie. 'DiAd_K_A12_X51v_WM5_EN_nb0.crc'. Save this file to the directory 'c:\Dell\Drivers\R129272\ROM\English\'.
- Copy the 2 files 'DiAd_K_A12_X51v_WM5_EN.nb0' and 'DiAd_K_A12_X51v_WM5_EN_nb0.crc' to the SD card that has been formatted with a FAT32 file system.
- Put the SD card into the X51v and reset the device into the SD Image Loader by pressing and holding the Wireless and Power buttons on your device and then pressing the stylus into the reset hole on the back of the device. After pressing and releasing the reset button keep the Wireless and Power buttons pressed in until you see the SD Image Loader screen appear. It should only take a few seconds after the reset button is released.
- You will see a list of images that can be loaded. Use the up/down buttons to select the desired one and then press the action button twice to begin loading the image. What the SD Image Loader does is to first load the image from the SD card into memory, then it does a checksum comparison between the image and the crc file, if the checksum matches then the image is uploaded to the ROM of the device. If you get a checksum error, make a note of what the RAM checksum is and go back to step 4 and enter in this value into the .crc file and continue.
Modifying Your ROM
After step 3 above you can use the IMGFS Tools to edit the .nbo image before writing it back to your device.
- Extract the IMGFS Tools to the c:\Dell\Drivers\R129272\ROM\English\ directory.
- Start DOS command prompt by clicking Start > Run, type 'cmd' in the Open field, and click OK.
- Change directory by typing in 'cd c:\Dell\Drivers\R129272\ROM\English\'.
- Extract the contents of the .nbo file by typing 'prepare_imgfs DiAd_K_A12_X51v_WM5_EN.nb0 -nosplit'. This will create a dump directory with a listing of all the files found in the ROM image.
- Edit the files you wish to change, but remember you may have to sign some of them before putting them back or they will not work. Here is a link that explains how to create a certificate and sign files.
What I Have Done So Far
- Using the help of this article I modified the PagePool value with a hex editor and loaded the modified ROM back onto the device. It works fine without any visible side effects. It doesn't appear to be any faster though, which is what I hoped to get out of this change, so I'm not currently using this build anymore. But it does work if other wish to give it a try.
- Using the IMGFS Tools mentioned above I dumped the ROM files system and modified welcomehead.96.png. This is the screen that appears just after the Dell logo screen after a reset. This is the build I'm currently(20061027) using and haven't noticed any side effects.
- My first ROM that failed to boot happened after I tried to add a cab file to the ROM dump. It all appeared to build correctly, and it copied from the SD card to the device without a hitch. But it would not boot, and just froze at the Dell logo screen. For a while I thought I had a brick, but after loading my ROM in 2 it booted fine and I had a working device again.