mobilethoughts

Just another Buzzdev.org weblog

HTC Hermes WM6.5 ROM kitchen

with one comment

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

DarkVisions 5.0

Written by utak3r

September 27th, 2009 at 8:46 pm

Loading modules into IDA Pro

without comments

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?

Written by utak3r

August 30th, 2009 at 4:54 pm

Pocket ClearType Tuner 2.5

with 2 comments

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.

Written by utak3r

August 18th, 2009 at 11:29 am

DarkVisions 5.0 for HTC Hermes

with 6 comments

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.

DarkVisions 5.0

The ROM can be downloaded from here.

Written by utak3r

July 5th, 2009 at 10:05 pm

HTC Hermes DarkVisions 4.0 WM6.1 full kitchen

with 2 comments

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! :D

Written by utak3r

June 29th, 2009 at 1:06 am

Cross-compiling Boost C++ library

without comments

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.

Read the rest of this entry »

Written by utak3r

June 26th, 2009 at 3:16 pm

IITP – imageinfo.txt producer

without comments

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/

Written by utak3r

June 18th, 2009 at 9:45 pm

Easy system customizing after hard reset

without comments

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! :)

Written by utak3r

June 14th, 2009 at 8:20 pm

Windows Mobile 6.5 Developer Tool Kit

without comments

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.

Written by utak3r

June 4th, 2009 at 1:09 pm

CeRegEditor – new hot release!

with 2 comments

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 »