[Android Software/Hacking General [Developers Only]] incognico:
Many people want to run a working froyo on their devices.

This won't be possible in a clean way without compiling a new kernel.

To archive this goal, we need to merge the Huawei specific device drivers (which are for 2.6.29) into a new kernel tree, the 2.6.32.9 one (or even 2.6.35 but 2.6.32.9 comes first since it is stable and thus important to us).

I did some research and preliminary work which I will explain here:

- The base kernel Huawei started with is available here (gitweb) - also check their wiki.

- Huawei started with the Q8650BSDCANLYA324020 tag on the donut_glazed branch (see instructions at the end of the post)

- Huawei has written it's own board driver (note they have used a Q8650 kernel release not a MSM7x25 one, most likely because this board driver is a little older and was not available for the version they wanted)

- After they were finished writing their drivers they released the kernel source (as you can download it from Huawei)

I have checked out the Q8650BSDCANLYA324020 base kernel version and diffed it against the kernel release of Huawei, generated a patch file (and stripped out the DOS linebreaks wtf) which can be applied to the base kernel.

Applying this patch to a more recent kernel (2.6.32.9) is not possible without merging the code into the new kernel tree (and since I'm not a programmer I can't do it - this is were your help is needed).

The other question is in which kernel tree we can port the patch I have extracted. I think we can use Q8650BSDCANLYA504005 on the froyo_almond branch since Huawei used an older version of it. Merging it into the AOSP msm-2.6.32.9 tree may be possible too (but the code aurora msm kernel is an improved AOSP version, so I guess we want that one).

My patch (and some non-pulse-mini fixup patch) alongside with a freshly extracted and fixed .config for the U8120 can be found at http://nico.core.ws/misc/huawei_kernel_u8100_8110_8120/

To port the source you need to checkout the original source (Q8650BSDCANLYA324020), create a new branch in which you apply the Huawei patch, then checkout the froyo kernel (Q8650BSDCANLYA504005) and merge your branch containing the changes from the patch into it.

Another way may be porting the froyo kernel tree back to the eclair one with Huawei patches.

Please post any results/questions/etc. here!

If we should get this working we can also enable the GPU driver (Adreno 200) as requested by many people (and much more (CyanogenMOD anyone? ;))).

Appendix:

Instructions on how to get the original source:

$ git clone git://codeaurora.org/kernel/msm.git

$ git checkout Q8650BSDCANLYA324020

Instructions on how to apply the patch (assuming "msm" is the kernel tree):

$ cp diff_kernel_msm_aurora_Q8650BSDCANLYA324020.diff msm/

$ cd msm/

$ patch -p1 < diff_kernel_msm_aurora_Q8650BSDCANLYA324020.diff

If you are compiling for U8100 or U8120 phones, you need to apply another

patch which fixes sensors (otherwise your phone won't be able to read battery

level and stuff):

$ cp needed_fixes_for_non_u8110_devices.diff msm/

$ cd msm/

$ patch -p1 < needed_fixes_for_non_u8110_devices.diff

Note that the above instructions will get you nothing new, only the kernel already running on your device.

This thread is about porting the Huawei patch to a froyo kernel.