Wednesday, November 25, 2009

ROM 826X Windows Phone 6.5.3 build 28004

Download here: Megaupload

What's New:

- OS: Windows Phone 6.5.3 build 28004
- X2 Video Drivers
- X2 Panel Manager w/ PMLauncher
- X2 Framework
- X2 3DFish Panel
- X2 TileWave Panel
- X2 Facebook Panel
- X2 XT9 Keyboard (set as default keyboard)
- X2 Myriad Java Machine
- X2 Experiment 13 Game
- X2 YouTube
- X2 Themes
- Feather Themes
- Glass Themes

Screen shot:





Saturday, November 21, 2009

ROM 826X Pure Series Windows Phone 6.5 build 21877 (COM2)

Download here: Megaupload

OS: Windows Phone 6.5 build 21877 (COM2)

Specifications: Pure OEM R3AA010 + Some X2 (Vulcan) Drivers + Themes

Screen shot:









Friday, November 20, 2009

Windows Phone 6.5.3 is out!

Windows Phone 6.5.3 leaked out with the build 28002!
ROM will be updated soon!

Monday, November 16, 2009

Understanding Virtual Memory and Native Kernel in Windows Phone OS

What is Virtual Memory?

Virtual memory is a computer system technique which gives an application program the impression that it has contiguous working memory (an address space), while in fact it may be physically fragmented and may even overflow on to disk storage. Systems that use this technique make programming of large applications easier and use real physical memory (e.g. RAM) more efficiently than those without virtual memory.

Virtual memory differs significantly from memory virtualization in that virtual memory allows resources to be virtualized as memory for a specific system, as opposed to a large pool of memory being virtualized as smaller pools for many different systems. Note that “virtual memory” is more than just “using disk space to extend physical memory size”

What does Virtual Memory apply to Windows Phone OS?

The Current Windows Phone OS till Version 6.5.1 are all based on WinCE 5.2 Kernel. Now there’s a 32 bit address space available – a total of 4GB potential memory on WM. This total 4gb address space is split in half – 2gb to the Kernel, 2gb to the User. Kernel address space is only accessible by processes/threads with kernel level access, whereas user address space is accessible by all processes/threads. The user address space is from 0×00000000 to 0×7FFFFFFF, and the kernel address space is from 0×80000000 to 0xFFFFFFFF.

The user address space is split into 64 slots of 32mb a piece. (64×32=2048, or 2gb) – The first 33 slots (slot 0 and 1-32) are used for processes, and the remaining slots for object store, memory mapped files, and resources.

Each slot is easy to visualize in hex, you just increment a digit. Slot 0: 0×00000000 to 0×01FFFFFF, Slot 1: 0×02000000 to 0×03FFFFFF, Slot 2: 0×04000000 to 0×05FFFFFF, and so on. Each process gets assigned it’s own slot, there are 33 total, minus the kernel process which is always running, so that’s where you get the 32 process limit (which is always lower in practice, since there are always processes running in windows mobile to support the OS) – this is also the reason for a 32mb limit per process – you can see that’s all the address space available in one slot.

What is Memory Map?

A Memory Map shows the structure of your Virtual Memory Slots.

The Memory Map for a WM 6.0/6.1 Kernel will look like:

SLOT 0: 0×02000000 – 0×01630000 (END: 0×00060000, 55 MODULES)
0×02000000 – 0×01fe0000 – ROM 0
0×01fa0000 – 0×01e10000 – ROM 1
SLOT 1: 0×04000000 – 0×02020000 (END: 0×02020000, 264 MODULES)
RAM IMAGE: 0×8c100000 – 0×8c3e879c
RAM: 0×8c3e9000 – 0×8c4c5000 – Used for kernel modules
0×8c4c5000 – 0×8fc00000 – 55 MB free

Whereas the one for WM 6.5/6.5.x Kernel with two extra Slots 60 & 61 will look like:

SLOT 0: 0x02000000 - 0x01ac0000 (END: 0x00060000, 0 MODULES)
0x02000000 - 0x01fc0000 - ROM 0
0x01f80000 - 0x01ac0000 - ROM 1
SLOT 1: 0x04000000 - 0x02022000 (END: 0x02020000, 224 MODULES)
SLOT 60: 0x7a000000 - 0x79fe0000 (END: 0x78020000, 1 MODULES)
SLOT 61: 0x7c000000 - 0x7a033000 (END: 0x7a020000, 226 MODULES)
RAM IMAGE: 0x80000000 - 0x8037e90c
RAM: 0x8037f000 - 0x80404000 - Used for kernel modules
0x80404000 - 0x83400000 - 47 MB free

What are Modules and how is Virtual Memory related to Modules?

When you open your sys folder and browse different folders, you see some folders called “shellres.dll”, and these folders contain registry files and other files named S000, S001, etc. These are modules.
Whereas files are simple DLL, MUI or EXE files and not folders as above.
Now when you create a module, you are telling Windows Phone that you want that module to be memory-mapped, so that each time it loads, it’s loading to the same, known area of ram – saving space in slot 0 – this is done on the computer-side, during ‘cooking’ and is the job of wmreloc, g’reloc, bepe’s Platform Rebuilder, etc. Virtual allocations are aligned to a 64KB border, so if you memory map a .dll that’s only 3Kb large, it’s still going to eat up 64KB of memory space.

There are also pages that can be allocated to these slots, that are aligned to a 4KB boundry, and process/general allocations that take place during normal operation. The way the system handles this is that modules allocated on rom build-time (modules we allocate with g’reloc et. al.) are allocated from top-down (for slot 1 for example, starting at 0×03FFFFFF for the first module, taking up space to the nearest 64kb boundry, then the next module, in a line down to the 0×02000000 address, which is the beginning of the slot) – General allocations that take place during normal system operations are allocated in the remaining space, from the bottom-up (so again with slot 1 as an example, starting at 0×02000000 and ending at 0×03FFFFFF) – As you fill up these slots more and more with modules, that leaves less space for windows to dynamically allocate other, general allocations, which can, and does result in out of memory errors (even when the device has plenty of physical memory left, it cannot address this memory when virtual memory is full).

What are Native Kernels?

Kernels is the central component of most computer operating systems, it can be thought of as the bridge between application and the actual data processing done at the hardware level. Now microsoft has brought up new kernels for their recent WM 6.5/6.5.x. Thus we call them native as the Kernel for WM 6.0/6.1 is different form WM 6.5/6.5.x. All the Native kernels are different for every Device.

How does the Virtual Memory in Windows Mobile 6.5/6.5.x and how it differs from 6.1 and 6.0?

Here’s where the kicker comes in for the difference between 6.0/6.1/6.5 – There are a total of 4 slots that can be used for module allocation, slot 0, 1, 60, and 61. 63 is also available to modules that contain no code (resource only modules, like .mui’s)

WinMo 6.0 could allocate slot 0, 1 – (in order of 1 first, 0 last) for a total of 64mb of vm space for modules/files (and the running process is always mapped to slot 0, so once you encroach on this memory space, you are removing available memory to each application running) – you can see how tight this is.

WinMo 6.1 improved on this by opening up slot 60 and 61 (now the allocation order is 61, 60, 1, 0) – but modules could not be allocated here, only files. So for our relocation tools, this was essentially no change. (still only slot 1, 0 for modules) WM 6.1 also introduces the process initvmmap.exe in the MSXIPKernel, NK partition (xip.bin). This process draws a map of all virtual memory, and uses the following registry key from the boot hive (boot.hv):

[HKEY_LOCAL_MACHINE\System\Loader\ModuleInfo]
[HKEY_LOCAL_MACHINE\System\Loader\ModuleInfo\dllname.dll]
“filename.exe”=dword:1
“filename2.exe”=dword:1

This tells the system that the module dllname.dll is only required when filename.exe is running, or filename2.exe is running – and whenever these processes are not running, the virtual memory space is available, and can be dynamically allocated to by the system.

WinMo 6.5/6.5.x improves on this by opening up Slots 60 and 61 to Modules – yielding an extra 64mb of potential Virtual Memory space. (the allocation order is now 1, 61, 60, 0 for modules, 60, 61, 0 for files) – In order for the Kernel to recognize these new Slots as being mappable for Modules, it must be updated to the 6.5 codebase. This is where the 6.5 nk.exe comes in, and why it’s so important.

Profiling Virtual Memory is an important job for an OEM – the less available in Slot 0, the sooner a device will kick back out of memory errors (even if it’s not truly out of memory) – and the worse the user experience will be. Some ROM’s I have seen have less than 20MB available in slot 0 (and the user experience is as bad as you might imagine) – There are many more intricacies to the whole process – like balancing the load between services.exe and device.exe to best utilize the 32mb VM space available to each, and storing all resource-only dlls as modules so they can be allocated to Slot 63, etc.

This is also why it’s important that the re-alloc tools be updated to support the new slots – g’reloc will not ever try to allocate modules to slot 60/61 because as far as it’s aware, this is not possible. For the moment I know of 2 tools that will realloc to slot 60/61, wmreloc 2.0, and bepe’s Platform Rebuilder (used by ervius vk).

So what exactly do we need to understand from all this?

Slot 0 should be as much free as possible. If you have your device specific WM 6.5 Native Kernels then it allows you to use more modules without taking up SLOT 0 space, so allows more flexibility to use modules (which are faster to load). But if you have Old WM 6.0/6.1 kernels then just flatted the modules into files thus freeing up Slot 0, this process is calledRecModding. If you have around 28MB free VM, it is awesome. Though it has been suggested that you need at least 20MB free at Slot 0 for a truly stable system.

References Da_G @XDA

ROM 826X Windows Phone 6.5.1 build 23504 (COM5)

Download here: Megaupload

OS: Windows Phone 6.5.1 build 23504 (COM5)

Screen shot:



Sunday, November 15, 2009

How To HardSPL & Restore StockSPL Xperia X1

This guide is about how to HardSPL & Restore StockSPL for your Xperia X1:

Attention:
* HardSPL is needed ONLY if you want to flash Custom/Cooked/Non Official ROM to your Xperia X1
* Make sure you have NET Framework 3.5 SP1 installed on your PC!
* If you have Vista/Windows 7, make sure you have Windows Mobile Device Center 6.1 installed on your PC!

A. How to HardSPL

1. Download HardSPL tool here: X1_HardSPL_v1.zip
2. Extract X1_HardSPL_v1.zip to a new folder on your PC (the extracted file should be X1_HardSPL.exe)
3. Connect X1 to PC, and sync with ActiveSync (XP) or WMDC (Vista/Win7) and make sure without error!
4. Run X1_HardSPL.exe (with Vista/Win7, you must run as administrator)
5. Follow steps in the PC screen, and check on the device for prompts after PC shows loading bar
6. It should go to tricolour screen now
7. Hard-SPL flashes, device automatically reboots, job done!
8. To confirm you got it installed, turn off your X1, go into bootloader mode(tricolour screen) by press Volume Down button (right side) + Power button and verify the screen shows 0.72.OliNex

In case if you get error when do the hardSPL, please check the items below:

- The sync results have no error, if yes, go to your X1 USBtoPC (Settings > Connection), uncheck "Advanced Network Functionality" & try again.
- Besure there's no file kovsimg.nbh in your storage card root directory. If yes, delete the file & try again
- Try another USB port on your PC (Do not use USB Hub!)

B. How to Restore StockSPL (SPL Original X1)

Just in case if you want to claim warranty, ie. needs the device to be repaired or serviced to SESC, you'll need to restore the SPL to StockSPL.

IMPORTANT: Be sure to first restore/flash stock ROM, and stock Radio. Stock SPL is always to be done last!!!

1. Download ruusigned_072stockspl.zip
2. Download X1_HardSPL_v1.zip as above
3. Extract both files to each new folder separately on your pc.
4. Run X1_HardSPL.exe, but do not click the Next button
5. Copy file ruu_signed.nbh (extracted from point no.1) to/replace the file ruu_signed.nbh at the X1_hardspl folder (point no.2)
6. Go on with the ruu at the point no.4 till it goes to 100%, reboots and done.
7. To verify, enter bootloader (see description above in this post), and check version number on tricolour screen. it should say 0.72.0000.

Panels, Tools & Applications (Updated 07/02/2010)

P.s.: Red text indicates new version/updated !

PANELS

* X2 (Vulcan)

- X2 Panel Manager
- X2 Framework
- X2 TileWave Panel
- X2 Pixel City Night Panel (Official)
- X2 Pixel City Day Panel (Official)
- X2 3D Fish Panel (Official)
- X2 CNN Panel (Official)
- X2 Facebook R35 Panel (Official)
- Live Journal Panel Beta (Official)
- Twitter Panel Beta (Official)

* X1 (Kovsky)

- Panel MXP/Media R3A Beta
- 826X MXP Panel (Edited by me: Prevent startup loading/update data)

TOOLS

- X1 Settings Tool
- Total Commander 2.52 Beta 2
- Net Compact Framework 3.5
- Advanced Configuration Tools 3.3
- Contact Changer 1.3
- HTC GPS Tools 1.3.2.26
- PPC PIM Backup 2.8
- FdcSoft Task Manager 3.1
- Icon Changer 2.2b (Only for WP 6.5)
- HighTouchSensitivity (Attain Maximum Touch Sensitivity)
- Call Firewall & Sms Blocker 1.4
- Official Xperia Diagnostic Tools
- X2 Myriad Java Machine
- Resco Explorer 2010 Beta 3 (No Position issue with WM 6.5.x (new UI))
- CleanRAM HTC Addicts 1.9.3
- SmartLock 2.0F (Better hardreset first if you've previous version installed)
- No Data In Roaming 0.9.2 (DISABLE AUTOMATICALLY internet in roaming, RE-ENABLE in home network )
- 826X Set Opera as Default Browser (Only for Opera 9.5)
- Remote Desktop Mobile

SOFT KEYBOARD

- OEM SE/XT9 Keyboard
- FingerKeyboard 2.1
- SoftTouch MaxKey 2.0
- SIP Change 2
- X2 XT9 Keyboard

APPLICATIONS

- Power Radio 2.3.0.0
- Nitrogen 1.1 (Music Player)
- Microsoft Facebook 1.0.0.7p
- Opera Mobile 9.5 build 15969
- Opera Mobile 9.5 build 16194
- Opera Mobile 9.7 Beta 1
- Opera Mobile 10 Beta 2u
- Opera Mini 5.0.16823 Beta 2
- Office Mobile 2010 Beta (14.0000.3879)
- Palringo 2.1
- Google Maps 3.3.1 w/ Starred Items

GAMES

- X2 Experiment 13 (turn rumble off)
- X2 Xtrakt (disable accelerometer  & vibration in option!)
- Pool Rebel (Thanks to Nguyen360-XDA)
- Assassin's Creed II (Thanks to Nguyen360-XDA)
- Asphalt 4 Elite Racing HD (Thanks to Nguyen360-XDA)

Saturday, November 14, 2009

ROM 826X Windows Phone 6.5.1 build 23089 (COM3)

Download here: Megaupload

OS: Windows Phone 6.5.1 build 23089 (COM3)

Screen shot:

ROM 826X Core Specifications (10/01/2010)

- ROM Type: Non Official/Custom ROM (Need HardSPL)

- ROM Concept: Speed & Stability for Daily use

- OS: Windows Phone 6.5.0 / 1 / 3 / 5 with Latest New UI build (COM2, COM3, COM4, COM5, WMD)

- Device Kernel: Real Xperia Native Kernel Windows Phone 6.5

- Base OEM: R3AA010 Generic UK (SEUS Version)

- No TF3D / HTC Sense

- Removed from OEM: unused apps, sample video clip, etc.

- Utilities: Advanced Config 3.3, CHome Editor 1.6 Beta, Finger Keyboard 2.1, PIM Backup, SIP Selector, Soft Reset, Total Commander 2.52 beta 2

- Applications: HTC Albums, Audio Manager/Audio Booster, MP3 Trimmer, Voice Recorder, X2 You Tube,  Google Maps 3.2.1, Nitrogen 1.1,  Palringo 2.1.0, Power Radio 2.2.3.0.

- Panel: X2 Panel Manager with 3D Fish Panel, SE 1 Panel, TileWave Panel, Facebook Panel, Opera Mini 5 Beta 2 Panel, Twitter Panel, SPB Mobile Shell 3.0.1 Panel

- Camera: Xperia R3A Beta Camera w/ Auto Flash & GeoTag + HTC Rhodium Camera

- Others: X2 XT9 Keyboard, X2 Task Manager, Rhodium Dialer (support Video Call), HTC Calculator, Opera 9.5 build 15969, Microsoft MyPhone 01.05.2410.0400, USBtoPC Pop Up with 3 items selection, Data connection 3G/GPRS Disconnect & Time Usage bubble at the top task bar, Office Mobile 2010

- Titanium Plugins: CLauncher, Favorite People

- StartMenu Icons: Windows 7/Vista Icon set

- Use the ROM at your own risk, I do not responsible of any damages of your device!


Known issues in New UI build:

1. Since the new UI Top taskbar size reduced, some applications such as SE Panels will have a gap between top taskbar and the apps windows.

2. The X button will not fully Close running programs, it just minimize it, so use the quickmenu to close it.
Personally, I never close running programs, because WP6.5 memory management is good, system will determine whenever it needs more memory and will close some programs automatically. The other side, we will have the benefit the apps will open more quickly when we need it