[Huawei Ideos X5 U8800] qwerty12:
Disclaimer: I am not responsible for any damage (including, but not limited to, loss of data, non-functional device etc.) which may occur to your device from following the directions (or from any failure to follow the directions) found on this post. Use (and flash) at your own risk.

Credits go to genokolar for actually porting the U8860 2.3.6 firmware to the U8800Pro. This builds upon his port.

You may find his port announcement here, and you can download it from here. Thanks to user Skyline111 for the mirror.

Thanks also go to birdyi, who ported the U8860 2.3.6 firmware to the U8860. His port contained some brilliant things such as CarrierIQ framework removal.

--

This is a 2.3.6 ROM for the U8800Pro based on the U8860 B866 ROM. 2.3.6, naturally, brings a slightly newer version of Gingerbread compared to our 2.3.5 with B540. While I know it's all about CM9 (ICS), MIUI and so on these days, I'm a fan of stock (in the Huawei sense of the term) Gingerbread. :)

Features (or limitations depending on what you think of some of the following entries) of this ROM:

Rooted (adb also runs as root, too)

(Huawei) DLNA

(Huawei) A task manager that shows open applications with pictures (launching it when pressing Home has disabled in this modification because I found the Recent menu saves more time)

(Huawei) Security Guard, a way of hiding text messages, I think

(Huawei) Traffic Manager – a data counter

(Huawei) Wi-Fi WPS support

(Genokolar) FPS unlocked by default (configurable in enhanced.conf)

(Genokolar) ZRAM (Compcache) enabled

(Genokolar) Changed the autorun.iso path to the image partition so that formatting /data from CWM does not leave you with an empty CD-ROM drive when you plug the phone into a computer

bugreports service turned off entirely so that pressing the volume up button quickly after you've pressed volume down does not leave you with a few seconds' delay and a bugreports folder on your memory card

BusyBox from CM7

Android’s toolbox (poor coreutils replacement; more barebones than BusyBox) has its full set of links installed in /system/bin, so you use Android’s native chmod etc. tools. Why? To match the stock B512 firmware and to ensure developers testing on the U8800Pro correctly hardcode “busybox” in their root programs if needed ;)

Optional lazy CPUfreq governor

Default language and region changed from Chinese – China to English – United Kingdom

Added in boombuler’s AppWidgetPicker

CM7’s Pacman added in to remind you to install Google Apps after adding an account with the Setup Wizard (make sure GApps is installed!)

VoiceDialler.apk added in from B512 firmware (although, to be honest, the microphone quality on my phone is awful…)

Bash shell, fix_permissions script, iwmulticall, MMS.apk, tcpdump and gdbserver and additional ringtones etc. from CyanogenMod (20120107-cm-7.1.0-u8800pro-Geno-en.zip) added in

Phone model changed to Desire HD, so Gameloft games can be bought. This may cause licensing problems with bought Market applications so be careful. (Although, I must admit that giving money to a company that doesn't support our phone seems counter-intuitive.)

Shutdown vibration reduced from 500ms to 100ms because I hate it (especially at night) but understand its usefulness in determining the answer to the question “Has the phone gone off yet?”

Huawei’s god-awful Low Battery notification replaced with a nicer one from CyanogenMod

Widgets actually restore themselves after a reboot! This was fixed by me replacing 2.3.6's PackageManager service with Huawei's 2.3.5 one.

MyCalendar widget from birdyi's port and MyEmail from B512 added in

Fixed proximity sensor dying if the light sensor was on, too.

Stripped down enhanced.conf - only swappiness, VSync and ZRAM settings available. I don't like /system/log.txt being created every time my phone boots and I think using a tool in Android like, say, No-frills CPU Control is the better place to set the frequency. SetXperia has support for setting the phone's CPU voltage.

More languages selectable from the Setup Wizard than just English (US) and Chinese.

Flash Player removed for copyright reasons. You can install it from the Market :)

Notepad and Richpad removed

Droid Sans Fallback supports more character ranges

Toolbox correctly has "Wi-Fi" instead of "WLAN"

Misc. kernel modules, like in B512, included

But I like the BusyBox tools and want to use them without having to prefix BusyBox everytime!

Just run the bash shell; BusyBox versions of cat, chmod, chown, df, insmod, ln, lsmod, mkdir, mount, mv, rm, rmdir, rmmod, umount, sleep, kill, and ifconfig will become the default while you’re using the bash shell (also nicer, BTW: you get tab-completion, for one) thanks to the CyanogenMod team.

Attempts to remove Carrier IQ. Huawei *do* include Carrier IQ in their firmware.

I’ve done the following to attempt to remove it the best I can:

Edited boot.img to not start Carrier IQ services

Removed Carrier IQ libraries from /system/lib and CiQ binaries from /system/bin

Added lines to build.prop to disable CarrierIQ, taken from the framework.jar file itself.

birdyi has also modified framework.jar to stop the CarrierIQ objects from being instantiated.

Ideally the best way to be Huawei-free is to use CyanogenMod.

I've removed the Cloud+ apps because of this. I've left some Huawei apps in, but I strongly recommend you install PDroid (the patcher works fine with this ROM) and block the more concerning permissions of Huawei system apps.

Kernel changes

Since the kernel genokolar provided with his port had a problem when a program used the light and proximity sensor at the same time – the proximity sensor would die out until the next restart – I took it upon myself to rebuild the kernel available from his github repository with the config from his latest kernel. After comparing his kernel to the source Huawei put out, I could see no code changes that would cause the proximity sensor to die out. Since I was rebuilding the kernel, I thought I’d make a few changes:

Add in the Lazy CPU governor by Ezekeel

Update a patch by stockwell to disable keypad lights (echo 1 > /sys/module/leds_msm_pmic/parameters/disable_button_leds) - use ButtonLock to control

Reverse genokolar’s decision to always allow NV logging – this can be turned on and off from the service menu on a stock ROM anyway…

Set minimum backlight level to 15, from Franco’s kernel. Warning: I haven’t tried setting it to 15 so I don’t know if that value renders the display practically useless, and I don’t know if Android lets you set it to 15 from its settings!

ButtonLock

Not as revolutionary as I'd like it to be, but useful nevertheless. I've written a quick widget, which looks like the Power Saving one, that turns off the button backlight. Useful for when you're reading books through FBReader.

You need to be using my kernel as it has the disable_button_leds patch. The advantage the disable_button_leds patch has over the chmod 444 method is that it doesn't introduce noticable lag. The widget's source is in the same folder.

When pressing the widget's button for the first time, there is a delay as the Superuser allow/deny dialog box takes its time to come up. After accepting, future launches are instantaneous.

If you need something that this ROM doesn’t provide compared to other stock ROMs, I recommend:

Not using it; or

Using a combination of diff, abootimg, Winmerge (or Beyond Compare) and apktool to compare this with genokolar’s original release, and with birdyi's ROM, and add what you want back in

Installation

Note: You must be running firmware version B522 on your device! If you have B540, you need to downgrade. If you have a firmware version lower than B522 (Froyo?), you must upgrade to B522 first. If you're already running a custom ROM, ignore this.

Take out the SIM card if you want the setup wizard to use Wi-Fi during setup.

Install genokolar’s recovery: http://xdaforums.com/showthread.php?t=1343276

Place u8800pro-2.3.6-geno-v1-modified.zip on the internal memory card or an external one (I recommend the internal one to ensure you don’t run into U8800Pro CWM bugs with the external).

Get gapps for Gingerbread and place on your memory card. Find the link using every Android user’s favourite search engine. ;)

I highly recommend using PDroid, but it’s up to you whether you want to use it. If you would like to use it, get the patcher from http://xdaforums.com/showthread.php?t=1357056 and point it to u8800pro-2.3.6-geno-v1-modified.zip. Place the PDroid-v1.27-u8800pro-2.3.6-geno-v1-modified.zip file onto your memory card.

Boot into recovery (make sure that fast boot is turned off in Settings->Applications and hold power and volume up while turning the phone on)

Do a data/factory reset.

Install the ZIPs, starting with u8800pro-2.3.6-geno-v1-modified.zip (obviously).

Reboot!

Install the Google apps (those ones not included in CM's gapps ZIP like YouTube) if desired when prompted – but note that the Market will probably close as you’re doing this as it will automatically update itself.

Downloads

ROM: http://www.mediafire.com/?k0g17z1kraw7b67

SHA512: 4988B123488B8B24732401420DE849E8D8E5632C075A4520F176AA1D64DA0ECF946FF4D4E6CEC4D257EE4C4C999200A93C2CB309FD7B5FE50234A1C5700DEB2D

Modified kernel source (I suck at Git - I really need to read that VCS by Example book I have :)): http://www.mediafire.com/download.php?a0022t73q2v7r7d

ButtonLock source (Apache licensed, though I must admit I'm more of a GPL person...): attached.

--

Extras:

genokolar's 5.0.27 recovery for the U8800Pro with the charging animations from https://github.com/Victor-android/android_device_huawei_u8800pro/tree/master/recovery/res/images:

attached.