HTC Hermes WM6.5 ROM kitchen
After over half of a year of tests (you downloaded over five thousand copies of beta versions of my ROM) development of my Windows Mobile 6.5 ROM for HTC Hermes came to its end – and as a reward I give you all the full kitchen for this ROM!
So… download it, use it and learn from it!
You can find this kitchen here: http://forum.xda-developers.com/showthread.php?t=565173

Loading modules into IDA Pro
I was asked to write a little tutorial on how to load some module (especially nk.exe) into IDA Pro. So, here it is:
1. First, you need your files prepared. Dump your xip.bin using XIPPort and write down these values: ulRAMStart, ulRAMEnd, physfirst and physlast from ROMHDR.txt and o32[0].o32_realaddr and o32[0].o32_psize from the file MODULES\nk.exe\imageinfo.txt.
2. Next, open IDA Pro and choose File->Open and navigate to the file MODULES\nk.exe\S000:

3. Then, change the CPU type to ARM:

4. The next step is crucial: enter the relocation values:
RAM start: ulRAMStart
RAM size: ulRAMEnd – ulRAMStart
ROM start: physfirst
ROM size: physlast – physfirst
loading address: physfirst + o32[0].o32_realaddr
file offset: 0
loading size: o32[0].o32_psize

5. The effects of the first pass (initial analysis) is quite… erm, strange
So, enter Options->General, click Kernel options 1 and choose Make final analysis pass. Then, in Options dialog, click Reanalyze program:



6. After analysis is finished, we get our code:

How to use it? Oh, it’s not possible to write about it just in the article… as an example, take your ulRAMEnd value, hit Alt+T and enter #0x plus your value:

The searching can take a long time, but when it’s finished, you get a definition of entered value (if entered correctly, that is
). You can see it has some xrefs shown, double click it and you’ll be taken to the code which uses this value:
ROM:8001A790 LDR LR, =dword_802C7734 ; Load from Memory ROM:8001A794 LDR R5, =dword_802B3D10 ; Load from Memory ROM:8001A798 LDR R6, =dword_802B6044 ; Load from Memory ROM:8001A79C LDR R1, =loc_8002826C ; Load from Memory ROM:8001A7A0 LDR R0, =dword_802B38AC ; Load from Memory ROM:8001A7A4 LDR R4, =dword_802B6058 ; Load from Memory ROM:8001A7A8 MOV R3, #0xA10 ; Rd = Op2 ROM:8001A7AC MOV R2, #dword_83000000 ; loading ulRAMEnd value ROM:8001A7B0 ORR R3, R3, #1 ; Rd = Op2 | Op1 ROM:8001A7B4 ORR R2, R2, #0xA00000 ; Rd = Op2 | Op1 ROM:8001A7B8 MOV R7, #0x40 ; Rd = Op2 ROM:8001A7BC MOV R8, #1 ; Rd = Op2 ROM:8001A7C0 STR R7, [LR] ; Store to Memory ROM:8001A7C4 STR R3, [R5] ; Store to Memory ROM:8001A7C8 STR R1, [R6] ; Store to Memory ROM:8001A7CC STR R2, [R0] ; Store to Memory ROM:8001A7D0 STR R8, [R4] ; Store to Memory ROM:8001A7D4 BL sub_800230EC ; Branch with Link
Interesting, huh?
Pocket ClearType Tuner 2.5
I’ve wrote a tiny app for our WM devices. Why tiny? ’cause it takes whole… 8kB
Yes, that’s right. That’s why it looks as it looks
What it can do?
It can turn ClearType on and off, but the most interesting feature of this tool is it can tune ClearType’s level – the contrast of font smoothing that is. All changes are visible in realtime, so it’s really easy to setup things as you prefer.
You can also run it with a parameter “on” or “off”, which causes turning ClearType respectively on or off – without showing the app’s interface, which is useful for using it in scripts, or StartUp.
Of course, the app is freeware ![]()
You can download it from here.
DarkVisions 5.0 for HTC Hermes
The next generation of my DarkVisions ROM – DV5.0. It’s based on Windows Mobile 6.5 Professional. But… it’s different than most of productions you can find, especially on xda-developers.com. You won’t find any beautiful honeycomb here, nor you won’t find any Titanium plugin. Instead you get plenty of free RAM and an amazing speed of the system.
Remember – if you encounter strange problems with unexpected hard-resets, go and flash some original ROM containing an Extended ROM, perform a hard-reset, than flash this ROM and again perform a hard-reset – since now on your device should work without any problems.

The ROM can be downloaded from here.
HTC Hermes DarkVisions 4.0 WM6.1 full kitchen
Finally, after months of testing, here it is: a full kitchen for you to make your own WM6.1 ROM for HTC Hermes.
Using this kitchen is straightforward:
1. Run BuildOSPKGTool.exe.
2. Click BuildOS.
3. Click Load ROM.
4. Choose your desired packages, or load one of the predefined sets, using the Load pre-configurated ROMs option.
5. Make sure you don’t have PL locale settings package selected, or you will end up with ROM preconfigured for Polish users ![]()
6. Make sure you have Execute “Create_Rom_***.bat” option checked. If you won’t, you will have to manually run tools\Create_ROM_Make_All.bat script after BuildOS is finished.
7. Click Go.
8. At the procedure end, there will app popup, in which you can set your preferred PagePool.
9. Ready to flash ROM will be placed in Release folder.

The kitchen can be downloaded here, and the sample ROM created with it – here. Enjoy your own, new ROM!
Cross-compiling Boost C++ library
I assume you all know the Boost C++ library? If not, then you just have to know it, go here and explore a new world of C++.
If you know it and want to use it in your embedded projects, let’s say using an ARM processor, you have to cross-compile it (although most of the libs are in the header-only state – still some of them require compiling, like System, Threads or ASIO). How to cross-compile Boost? Read on.
IITP – imageinfo.txt producer
IITP is the tool for generating imageinfo.txt files from imageinfo.bin files, found in modules in the XIP section of Windows Mobile ROM. It’s mainly for people who still use XIPPort, because today new MSXIPKernel packages are distributed without this info. The idea of developing this tool came after a long talk with Chandra Shekhar (c_shekhar), also globalbus was really helpful in realizing all the quirks. Thanks guys!
Usage:
iitp [ -p physfirst ]
The param -p is optional. The value of PhysFirst has to be given in hex form, but both 0×1234abcd and 1234abcd notations are accepted. If the param is not given, it looks for romhdr.bin file in the current directory, from which it takes this value (and while it’s there, it generates ROMHDR.txt file, too).
WARNING:
As of now, it generates incorrect info for nk.exe! The same goes for modules from imgfs space.
Correct info is generated as of now only for XIP modules (with the exception of nk.exe).
Fixing these two things are on the TODO list
Project home page:
http://code.google.com/p/iitp/
Easy system customizing after hard reset
So, I thought I’ll write a serie about provisioning XML files writing. It’s a really handy and powerful way of fast and easy customizing your system after a hard reset.
So… what is provisioning exactly? It’s customizing various areas of the system, over a default setup. Here we will talk about just few areas, but on this basis you should be able to make your own other ones
First off, we’ll start from the locale. Most of the systems are WWE, that is English. Let’s say we want to setup few things to Polish settings. First thing to do is to know the LCID value for the country. For Poland it’s 415h, 1045 decimal. Then create a new text file and name it mxipupdate_KeyboardLayout.xml. Enter in it:
<!-- *** Ustawienia klawiatury *** -->
Easy, huh? Now, you have to run it. There’re few ways of doing so. The most easy way is to use Task Manager from FdcSoft. Don’t be fooled with its name: it’s a really powerful tool, which gives you an access to many system parameters – and amongst the others, there’s a registry editor, which allows you to run such provisioning XML files. Later, in another article, I’ll tell you about the best way of customizing system, including automatic installing applications, copying files and so on. This method uses fantastic tool from Bengalih, named Sashimi.
Now, it’s time for mail accounts. Entering each account is time-consuming, and if you have few of them… well, you already know, what’s the pain with that. Let’s make another XML file, name it mxipupdate_MailAccounts.xml:
Fill it with desired values, and you’re done!
The last thing I want to tell you about today is entering WiFi AccessPoints setup – without remembering all those keys all the time
Let’s create mxipupdate_WiFiAPs.xml file:
<!--NETKEY-->
This example shows two APs: one of them is open and another is under WPA2.
I hope you can see now, how it works. This way you can enter various registry entries and other setup. Go on!
Windows Mobile 6.5 Developer Tool Kit
Microsoft has published official SDK for WM6.5!
The Windows Mobile 6.5 Developer Tool Kit adds documentation, sample code, header and library files, emulator images and tools to Visual Studio that let you build applications for Windows Mobile 6.5. The Windows Mobile 6 SDK must also be installed in order to use any of the Windows Mobile 6.5 Gesture API or samples. Windows Mobile 6.5 Developer Tool Kit comes with the following Emulator Images:
- Windows Mobile 6.5 Professional Square Emulator
- Windows Mobile 6.5 Professional QVGA Emulator
- Windows Mobile 6.5 Professional WQVGA Emulator
- Windows Mobile 6.5 Professional VGA Emulator
- Windows Mobile 6.5 Professional WVGA Emulator
- Windows Mobile 6.5 Standard Square Emulator
- Windows Mobile 6.5 Standard QVGA Emulator
Available locales:
- 0804 CHS Chinese Simplified
- 0409 USA English
- 0407 GER German
- 040c FRA French
- 0410 ITA Italian
- 0c0a ESN Spanish
A new set of APIs is being introduced that will enable application developers to take advantage of the new Windows Mobile 6.5 touch gesture framework. The gesture APIs allow an application to handle touch gesture input and provide a visually consistent experience with the rest of the device UI. Note that the gesture APIs are only available on the Windows Mobile Classic and Professional SKUs. The headers and libraries are installed in the Windows Mobile SDK\Pocket PC\ folder. Samples that make use of these APIs are installed into the Windows Mobile 6.5 Developer Tool Kit\Samples\ folder.
CeRegEditor – new hot release!
Since today you can get a whole new, hot version 0.0.5.0 of an excellent mobile registry editor – CeRegEditor!. Its author, mdsoft, is working on this beautiful piece of PC code for two years already – and it’s surely the best mobile registry editor in the world. Fortunately for you, it has english language version, too (apart from polish version). Read the rest of this entry »