Finally, Android on the iPhone
You heard me. The holy war is over, brethren. At Tendigi, we’ve designed and built a case that allows iPhone devotees to sample the best Mountain View has to offer. Join me as I outline the steps taken to achieve this feat, as well as the numerous pitfalls encountered along the way.
Okay, that sounds interesting. I’d love some straightforward method of being able to try out modern versions of Android without having buy Android hardware.
It must have been extremely complicated to get this done in software!
I ended up having to port (or outright build) the following components for Android:
screenstreamer: A daemon I wrote that connects to the usbmuxd service, transmitting the screen’s contents to the iPhone and emulating touch events on the Android side. This is where the magic happens. While there are many ways to capture the screen on Android, I achieved the best performance by connecting to the SurfaceFlinger service and reading screenshots from it. For more information, see this header file and this presentation. The droidVncServer repository on GitHub also contains some helpful pointers.
Are you kidding me? This is the equivalent of VNC streaming a Windows 10 desktop to an Android phone and saying that you got Windows 10 to run on an Android phone. The “Final product” image is a thick ass backpack that contains off-the-shelf Android hardware strapped onto an iPhone and looks like crap. If this were from a 14 year old at a school science fair that would be incredible.