The Status of Android Porting to Other Platforms
Android is running mostly on ARM-based hardware, but there are attempts to bring it to other platforms. One of them is the well-known x86 platform used by many PCs and laptops, the other is MIPS, used in embedded systems mostly based on Linux, and lately on Android.
Intel showed Gingerbread running on an Atom Medfield device, scheduled for production during first half of 2012. Medfield is a 32 nm SoC that is supposed to be Intel’s x86 solution for smartphones/tablets, and Intel says it is more energy efficient than current ARM processors, but it is not clear how it compares with other ARM SoC solutions, such as Krait from Qualcomm, also planned to be delivered in H1/2012.
Alec Gefrides, running the Google Program Office, declared that they “had a version of Android 4.0 for Medfield up and running within a day of Google open sourcing the OS, and now packages for smartphones and tablets with Medfield drivers are available to device makers.” Gefrides added that the drivers will be open sourced when the respective devices will be available on the market in order to prevent Android fragmentation.
In the meantime, a group of enthusiasts led by Chih-Wei Huang have worked on porting various versions of Android to several x86 platforms. Some of the earlier ports have been deprecated, but others are available, including Gingerbread, Honeycomb and ICS. Huang ported Honeycomb to x86 by himself because Google did not open source the code at the time, but he had access to it since his company is a Google partner. Regarding ICS, they needed two weeks to create a partial port to AMD Brazos, but hardware video acceleration, sound, camera and Ethernet do not work yet. The main problem seems to be the lack of drivers. We have interview Huang to find out what it takes to port Android to another processor architecture and the status of ICS porting.
InfoQ: What is the status of ICS/x86? What has been done so far, and what still needs to be done?
CWH: We have ported the ICS android-4.0.1_r1 release to the x86 platform for several targets, and have released the source code to the public. However, except for the AMD Brazos platform, the other targets for the Intel platform don't really work due to a video chipset issue. We still have troubles to enable the hardware acceleration for an Intel video chipset. The WiFi and multitouch for some vendors should work. Sound, camera, Ethernet don't work yet.
We have tested GMS (Google apps like Gmail, Maps and Market) and some games like Defender and Fruit Slice. They work just fine.
InfoQ: Do you intend to port Android to other platforms beside AMD Brazos?
CWH: Sure. As said in the previous answer, we already did. However, there are some issues to be solved. I believe we can conqueror them in 1-2 weeks.
InfoQ: How much time and man power did you need to port Honeycomb? How much time do you think it is going to take to port ICS?
CWH: That depends on what the porting goal is. I had a hard time porting Honeycomb, since it was not open sourced before. Actually I worked for it almost alone in the past half a year. (I got the Honeycomb code since my company is a partner of Google, but I can't share it to others). Now ICS is open sourced, and it has better x86 support. We succeeded to bring it up to Brazos with hardware acceleration in two weeks. But there are still problems (as said above) to be solved. Since I only did it in my spare time it's hard to say when it can be finished. But I expect the open source community will help us and we can solve it more quicker than Honeycomb.
InfoQ: What are the main challenges in porting Android to x86?
CWH: Lack of developers. Actually the only active developer since June 2009 the project began is myself. We have over 2,600 subscribers in our mailing list,
but very few of them join the development. Some people joined and left since they don't have time or interest anymore. So some contributed targets
like st103t, Sparta [Android-x86 2.2 for Dell Inspiron Mini Duo], are not well-maintained. Fortunately, I have some good friends in the open source community who are good at some techniques and always willing to help me. For example, Chia-I Wu in the OpenGL ES porting and Benjamin in the touchscreen drivers. Most newbies join our forum to ask some questions without detailed information, so I usually can't help them. Even if they provide enough information, usually I don't have the device they use for testing and debugging, so problems remain unsolved. Besides, some vendors like Viewsonic and Insyde shipped Android-x86.org based products, but they never contributed back. That makes us feel sadly and angry. Intel doesn't care about us. They have their plan and develop their own Android version, but never released it to the public. That also makes us feel frustrated. AMD began to work with us recently. But they are still in a very early stage. Hope we can see more contributions from them in the future.
InfoQ: Are there plans from AMD or another company to use your port in production?
CWH: I think so. But usually they never let us know.
Regarding MIPS, the company has ported all previous versions of Android to its processor architecture, and plans to release a port of ICS by the middle of this month. Android 4.0 is based on Linux 3.0.8, and work on making this kernel work on MIPS is done, so it won’t take long to see ICS on their RISC platform.
It seems that Android is easily ported to other popular platforms, perhaps because of its Linux legacy. Intel seems determined to have chips running Android. If AMD enters the game, then Android will have consistent hardware support.