patch-hosting-for-android-x86-support project is officially moved to http://code.google.com/p/android-x86/. Please look into http://code.google.com/p/android-x86/ for the latest update.
This page has a set of patches that can be used to solve some known issues when running Android on x86 platforms (like EeePC). Eventually, these patches will be submitted to Android git tree. Before we can get the patch fully tested and reviewed, we will keep them here for easy access.
Project Goal
To provide complete solution for Android on EeePC platforms first and then to provide solutions for common X86 platforms as well
NOTE: In order to build and run current Android on X86 platforms with the most basic features, you need following patch
- 0001-1.-added-scripts-to-build-install-image.patch
- 0001-1.-fixed-crash-caused-by-wrong-preload-class.patch
- alarm.patch
- e2fsprogs.patch
- eventhub.patch
To rebuild kernel, you need to take the kernel.config from the download list
After June 22nd, if you checkout a new tree from google, you build may not be able to boot up on X86. You need to roll back dalvik change eac47eddd953ca572f1c92a326b55b735b46377d to 3102d523c787402faf4590c7e25cef8c3e20afa4.
The basic features tested on following platforms
EeePC 701 , EeePC 701SD, EeePC 900, EeePC 900A, EeePC 901, EeePC 904HD, EeePC 1000, EeePC 1000HD
(Done by the project members and others from android-porting group )
The known working feature status
- Power Suspend/resume
- Battery Status
- Ethernet
- Wifi
- bluetooth (Needs external adapter)
- mouse cursor
- high resolution display
- audio (ALSA)
To do list
- HW mouse cursor
- mouse wheel
- Camera support (testing)
- Better installer and multi-boot
- newer kernel support (ready, 2.6.29 is tested, may update to newer kernel later)
- multi-platform supports
- fn-key supports
- power management, suspend/resume (S3 and other mode)
(Some comments from Chih-wei: ASUS has a pride power management functions in the shipped Xandros OS, say, automatically enter power saving mode when AC disconnected.It is also adjustable by hand.So it would be great to introduce them into Android.)
- video include 3D accelerator support (has been done by olv and need to test on different platform)
- external monitor support (Work)
- multi-touch touchpad support
- wifi support (atl5k and atl9k should work already. Need work for other type of devices)
- better keyboard support.
- support at least two external 3G devices
- add busybox
- test out all default applications
Change log
07-07-09 Added gdbserver binary
Yi
06-29-08 Add new patch to support 32bpp with 2.6.29 kernel. I only tested the 2.6.29 kernel with inteldrmfb.
FYI-- you will see 32bpp running much slower.
Yi
06-12-08 I'm still traveling, but I decided to start the hardware cursor support works. So that the mouse can become usable when the background screen is in dim mode. Current idea is to build a new jni layer to push the cursor operations to inteldrmfb driver when the mouse is moving. The targeted driver is inteldrmfb (not the vesa and intelfb) and 2.6.29 kernel.
Yi
05-28-2008
- The source tree is ready to use. I have test it on VirtualBox
- fixed patch conflict in init.rc
05-22-2009 My desktop is dead and the hard drive is long gone. I have lost a lot of my files. I may have to delay for some updates. Currently we have following issues pending for resolve
- the svn space is over quota, not all the external directories are uploaded. For now, you can copy from cupcake release and apply the e2fsprogs patch in the downloads section.
- the 0001 patches cause the merge conflict with other patches in the init.rc.
Yi
05-18-2009 I have just tested out the kernel 2.6.29. It seems that it works fine with x86 platform. Just do following things:
- apply the alarm.c patch
- use the same configuration as you used for 2.6.27
- enable all the android drivers from staging option in menuconfig
- rebuild your kernel
05-09-2009 The suspend/resume problem has been fixed.
Yi
05-07-2009 updated mouse cursor patch to fix the merge conflict. You need three things to make cursor to work:
- 0001-1.-enabled-power-mgt.patch, this patch has the fix for the power sysfs path. With this patch, you will be able to put Android to sleep. But there is a bug that causes machine to not wake up. Current work around is to set the screen timeout to never timeout.
- 0001-1.-added-mouse-cursor.patch, this has implementation for mouse cursor.
- enable wake lock in kernel config
Yi
05-06-2009 Chih-wei has updated the atl2 driver. Users need to be aware that the atl2 driver is for Eeepc701. If you have a 1000H like me, you don't need it. The correct driver for 1000H is atl1e. We are also seeing patch conflict with cursor patch. I have sent out the new patches in android-porting group, I will post it once it get fully tested.
Yi
04-26-2009 Chih-wei has added new patch to fix qemu EAI_NODATA symbol not found issue.
Yi
04-25-2009 Chih-wei Huang has joint the project.
Yi
04-25-2009 Chih-wei Huang <cwhuang@linux.org.tw> has provided some changes to the make_boot_img.sh to make it to be able to run from anywhere as long as you attach a full path of the script. He also made the disk_img.conf in vendor/asus/eee_701 as default disk configuration file. Chih-wei has also fixed some problem with boot_able_img.patch and framworks.patch
Yi
04-22-2009 update wiki to add a script to apply patch.
Yi
04-17-2009 Luca and I tested out different frame buffer supports. I have added instructions to build installer image for eeePC with Intelfb support. I also put atl2 driver source code in the downloads section so that people can just pick it up from there. Howfully, when 2.6.29 is ready we can all move to use inteldrmfb.
Yi
04-14-2009 You don't need to worry about the hacks in my cursor patch. I assume you are going to have a real platform where your powermamangerservice and batteryservice are functioning correctly. In that case, remove the hacks I added.
Yi
04-13-2009 Posted the patch to support mouse cursor. It is only a sw cursor that simulated by a surface. It works for the most of the mouse features(eg. click and drag and tested in VirtualBox). I still have two hacks in the patch to remove screenoff checks. I will work on it when I get time.
Yi
04-10-2009 reload boot_able_img.patch. I have missed to generate AndroidBoard.mk
Yi
04-09-2009, posted the first set of the patches that can fix the current build break for Android x86 build. The patches are tested with cupcake branch. NOTE: I'm only the guy who collects all the pieces from android porting group and put them together. The other contributors are (incomplete list):
- Dima Zavin<dima@android.com>, the original guy ported the Android to EeePC 701
- Lim <leemgs@gmail.com>, Wrote original "HOWTO Build Android-X86 Full Source" and "How to use x86 android platform on virtualbox "
- Chen Yang<sunsetyang@gmail.com> for the instructions on the how to make boot-able image and how to build Android for VMware, and investigations on almost all of the build breaks and run time issues
- Jackie Wu<jackie.wu@intel.com> for the fix in alarm.c
- Androidphan<niels.keeman@tass.nl> for the investigation on the path issue in the battery service jni code
- Luca Belluccini<lucabelluccini@gmail.com> for the first patch to fix the path issue in the battery service jni code
Of cause, there are other people who gave helps. But there are too many e-mails and it is very hard for me the go through each e-mail to find the related person to list here. So, if you think I missed your name here, please kindly drop me an e-mail.
Yi