[DEV][WIP] CM9/Ice Cream Sandwich
I have been working on porting CM9 to the VS910. So far I have gotten it to boot to the lock screen.
What Doesn't Work
- Boot animation
- Lock screen
- logcat/adb shell
- 3d accel is half working. I have gotten SurfaceFlinger to load up and interface the proprietary drivers (from GB) correctly, but HardwareRenderer (java framework) fails because the drivers don't give up a valid config.
- Touch screen
- HardwareRenderer (fails because HardwareRenderer.chooseEglConfig() returns null value)
- Everything else
Currently this ROM is totally unusuable for anything except for development. At this point, I do believe it is possible to get CM9 running, but it will take a good bit of developer effort. It would be helpful for any other developers around here to give some insight on the errors that come up in the adb logs.
How To Build
- Follow Google's instructions for setting up a Linux system or VM for Android AOSP building
- Follow CM9 build instructions up to brunch command
- git clone git://github.com/andyichr/makerom.git to a location, such as ~/android/makerom
- Overlay the files in ~/android/makerom/cm9-system/overlay onto the cm9/system directory (this adds vs910 brunch)
- Adjust values in makerom.sh to match your own paths (MAKE SURE TO POINT IT AT A VALID KERNEL --I didn't include instructions for building a kernel)
- Adjust values in makecm9.sh to match your own paths
- Run ~/android/makerom/makecm9.sh to build cm9 (this takes a long time, depending on your system)
- If build is successful, run ~/makerom/makerom.sh which will output a ROM which may be flashed to the device for testing
This is very rough work, but it proves that the basic parts of CM9/ICS do function on the Revolution. The cyanogenmod developers have already added some patches to the android source which allow ICS to run using video drivers from Gingerbread. This means it should be possible to get things working.
The current major problem with this ROM is that the HardwareRenderer does not initialize. Immediately after this, the main trebuchet process is killed and the system reboots itself after a while.
I will be happy to do what I can to support the process of porting CM9 to our phones. I read that a couple of other devs may be looking into porting CM7, but I think focusing on 9 might be more worth the effort, since we already have Gingerbread.
I have also attached a logcat to this post which should give developers some idea about what exactly is broken, which will lead to the first steps of debugging and porting.
Any interested developers should fork my repo on github (git://github.com/andyichr/makerom.git) which has the build scripts and patches.
That's about it for now. I very well may have left out some steps along the way. If you try to follow this process and it doesn't work out, let me know and I'll help you out.
ROM Download (very broken --only use for testing and development)
- Flash this if you want to see ICS boot to the lock screen or help test/debug. It's not useful for much else at this point.
We're getting there!
I've already patched the android egl framework code slightly and built a kernel. CM team already patched frameworks/base for 2.3 video drivers. We'll patch what we have to to get this thing running! I am pretty busy but I will follow this thread and I hope for this to be a collaborative, transparent porting process! Good luck!