There's a longstanding idea that if you buy something, you should be able to use it however you see fit. Within reason, of course. But Apple is notorious for making it very difficult to install alternative operating systems on its iPhones, even if they've been paid off in full and are not part of a carrier financing program.
Although usage restrictions are familiar for software where the idea is that you pay for a license to use the software, rather than the right to do whatever you want with the source code, this doesn't make as much sense in the context of hardware. I mean, the physical device may be protected by patents, but you still own the actual silicon and glass that makes up your iPhone. But one team of developers recently found a way to get Android installed on iPhones.
The system goes by the name Project Sandcastle, and it uses a specific jailbreak, to bypass Apple's restrictions and get Android up and running at least to an extent. But how exactly did the team at Corellium, a cybersecurity startup, pull this off? One of the big keys is that they built a virtualized version of the iPhone that runs iOS on a Corellium-built virtual machine. In fact, because Corellium sells this iPhone VM, they're currently embroiled in a legal battle with Apple.
Their in-house virtual machine allowed them to test exploits without running the risk of bricking one expensive iPhone after another. As we're pulling off the actual feat of running Android on an iPhone, the team had to write a number of custom drivers, including for NVMe support.
Although Android is known for working on a wide variety of hardware, there weren't drivers available that could link an operating system other than iOS with the hardware inside an iPhone.
Corellium also had to adjust how Android handles memory as the iPhone processor family handles data in different sized pages than what you would see in an Android phone. Additionally, it turned out that iOS initializes multiple processor cores, which all modern iPhones contain, differently than Android which caused further complexity. But these setbacks, there is now a working beta of Sandcastle that you can install on your iPhone after using the checkra1n exploit to jailbreak it.
This particular jailbreak takes advantage of a security flaw in the iPhone's bootrom, which is the first thing that runs when you power up the device. The flaw is a hardware level issue, so it's been described as unpatchable until Apple significantly changes their hardware design.
But although getting Android to run on an iPhone was definitely an impressive and cool feat, there are unsurprisingly significant caveats. Right now, the only devices that can run Project Sandcastle are the iPhone 7 and 7 Plus, as well as seventh gen iPod Touch.
|SE||6||6s||7||7+||8||8+||X||XS||XS Max||XR||11||11 Pro||6G||7G|
And once you get it up and running, don't expect every Android feature to work the way that it would on a true Android phone.
Notably, there's currently no support for audio, cellular connectivity, Bluetooth, or the camera. And don't expect GPU support for gaming either.
However, multitouch, USB, and WiFi all work. So if you're interested in simply using Android to connect to the internet on an iPhone, go ahead and give it a shot.
However, do take note that because of the nature of how checkra1n works, it disappears whenever you restart your device, so you shouldn't be relying on Project Sandcastle, if this wasn't already clear, as a longterm OS for an iPhone that you use as a daily driver, even if you could put up with the limited functionality.
But given the relatively short length of time that the Android port took to develop into a functional beta, could we see an unsanctioned yet fully functional Android running on an iPhone in the future? I mean, it worked for the Hackintosh folks, that is until Apple goes ARM and it gets more complicated.