[Sable] keyx:
Reserved for extra space in case

-------------Step by Step guide for xip porting-----------------------

Make sure you read this tutorial first

1. copy(either get it from kitchen or dump it using osnbtool) the existing xip_out.bin and rename it to xip.bin, open xipport, click dump xip.bin and you will get a OUT folder

2. choose write map then make packages , now rename this out folder to some other name

3. dump the new xip(from other device) using osnbtool, rename it to xip.bin & do the same as step 2 with xipport

4. now copy MSXIPKernel & MSXIPKernelLTK under Modules and Files folders from OUT folder(from step3) and overwrite to corresponding 61x OUT folder(from step1)

4.5 as said in the xda tutorial, remove hd.dll, osaxst0.dll folders and their corresponding text files under modules to avoid physical address overlap

5. use xipport to undo and then realloc and write maps. Then you check map files to make sure there is no !!!(memory address overlap) I recommend using XIP address tools to check for overlap, sometime you will get error when you realloc (key already exist .etc), use xip address tool and set work folder to OUT then you will see error on first dll addr which you have to fix all highlighted red cell(overlapped address). Note that to fix first dll addr address you have to highlight the cell, enter the new start address on the V address cell in bottom, click modify, then use mouse to highlight the 1A cell above, and change the D address cell to the same as V then click modify button(on the right of V cell). You should see the change in table then. For virtual base overlap you only need to modify V cell only

Note: first dll addr overlap will result error when you click realloc in xipport.

The goal is have no overlap as shown in MAP.txt. When there is no more overlap, use xipport to build xip_out.bin and then insert the xip into the dio file using osnbtool

Commands:

extract xip: osnbtool -d flash.dio 1 xip.bin

insert xip: osnbtool -c flash.dio 1 xip.bin

also make sure your ROM\boot.rgu is from your device xip

-----------------------------------

IPAQ 91x boot keys:

Clean bOOt - Voice Commander + OK + Reset

Download Image - Volume Down + OK + Reset

Calc Checksum - Volume Up + OK + Reset - disconnected, SD card out

RUU - Volume Up + OK + Reset - UsbConnected, SDcard out

SDloader - Volume Up + OK + Reset - USB disconnected,SDcard in SDloader

Modem_CAL - Voice COmmander + Volume Up + Reset

Diagnostics - Voice Commander + Volume Down + Reset

-------------------------------------

LZX Compression:

The default compression algorithm for ROM is XPR, if you must include lots of files that causes your resulting rom >80mb under XPR(81920kb - ROM Size limit for 61x, bigger than this the device won't boot), you need to use LZX compression. It reduces rom size by ~13% but with ~1-3% performance hit(from other post I read, I never verify the performance hit).

To use LZX compression, you need to replace the cecompr.dll folder in XIP Modules with the one attached in this post. Re-port the xip (realloc + write map + build xip_out.bin) and then use osnbtool to inject the xip inot TEMPLATE.ROM.

Then hex edit the imgfs_raw_data.bin in the rom kitchen, replace the first string "XPR" without quote you found with "LZX" without quote.

Make sure you have replace the cecompr_nt.dll under tools folder of the kitchen with the one I attached in 1st post to avoid memory leak

Now just build normally, you will notice the time to inject file will take much longer because of the compression