What's keeping iOS from running on Android?

Rakehellion

Lifer
Jan 15, 2013
12,181
35
91
They got Mac OS running on off-the-shelf parts as soon as someone came up with enough cash, so why can't they do the same with iOS and commodity hardware?
 

gsaldivar

Diamond Member
Apr 30, 2001
8,691
1
81
The hardware differences between mobile phone platforms (and between phones themselves) is much greater than that of desktop computer platforms. Also, from a user perspective, phones aren't modular the same way computers are.
 

repoman0

Diamond Member
Jun 17, 2010
5,191
4,572
136
The comparison is more like trying to run PowerPC MacOS on Intel hardware.
 

Deontologist

Banned
Dec 13, 2014
13
0
66
The comparison is more like trying to run PowerPC MacOS on Intel hardware.

You're kidding me right? PowerPC Mac OS doesn't run on Intel hardware because then, Mac OS was designed for the PowerPC architecture - which is different from x86.

Both iOS and Android run on ARM. So your analogy fails.

I think the issue has more to do with drivers. Hell, if you go to XDA, you'll find that the cameras/4G connectivity/IR blaster/etc. often don't work on ported versions of Android. And we're just talking about using another version of Android on a phone designed for Android. And the devs blame it on a lack of drivers.
 

Rakehellion

Lifer
Jan 15, 2013
12,181
35
91
The hardware differences between mobile phone platforms (and between phones themselves) is much greater than that of desktop computer platforms. Also, from a user perspective, phones aren't modular the same way computers are.

But there are thousands of different phones that are able to run Android. Why can't any of them run iOS? Even a hacked version of iOS.
 

MrDudeMan

Lifer
Jan 15, 2001
15,069
94
91
But there are thousands of different phones that are able to run Android. Why can't any of them run iOS? Even a hacked version of iOS.

Because the low level drivers aren't available for the hardware in an iPhone. They're all proprietary. The OS on a computer isn't tightly coupled to the hardware because there are widely accepted and implemented standards. Phones haven't gotten to that point and it's possible they won't for a long time because of $$$.

In addition to a lack of access to proprietary drivers, the kernel for iOS is highly optimized for the target platforms. People very frequently misunderstand the hardware differences between an iPhone and any flavor of Android phone. They think the dual/quad/octo core Android phones are super powerful and way faster than the current iPhone, but they fail to understand optimization. Case in point, I've been developing a sequel to my last mobile RPG and the biggest, most expansive outdoor area requires 250 MB of RAM on iOS, but it requires anywhere from 390 to 500 MB on recent versions of Android to get a halfway decent frame rate. That's with an optimized compiler that takes advantage of the subtleties of both platforms.

There are tons of other differences, but they're mostly additions to the aforementioned reasons.
 

Kaido

Elite Member & Kitchen Overlord
Feb 14, 2004
51,478
7,221
136
Drivers, same with Hackintosh. You can do the reverse - run Android on an iPhone:

http://www.imore.com/install-android-iphone-bootlace-jailbreak

http://linuxoniphone.blogspot.com/2010/04/ive-been-working-on-this-quietly-in.html

http://www.cultofandroid.com/69473/clever-trick-lets-iphone-5s-run-next-version-android/

Outside of the neato factor, I don't really see the point. For example: the Samsung Galaxy S5 is waterproof, has a heartrate sensor built-in, camera has twice the megapixels, memory card slot for up to 128gb, is cheaper, has a removable battery, etc. Don't get me wrong - I love my iPhone - but they pretty much all look the same (black shiny rectangles, and you put a case on them anyway), so it's more about features & personal preference for OS usability, and Android has Apple licked in terms of available hardware goodies. I'd love a waterproof iPhone without having to use something like a Lifeproof case!
 

matty67

Member
Mar 28, 2007
27
0
66
You're kidding me right? PowerPC Mac OS doesn't run on Intel hardware because then, Mac OS was designed for the PowerPC architecture - which is different from x86.

Both iOS and Android run on ARM. So your analogy fails.

I think the issue has more to do with drivers. Hell, if you go to XDA, you'll find that the cameras/4G connectivity/IR blaster/etc. often don't work on ported versions of Android. And we're just talking about using another version of Android on a phone designed for Android. And the devs blame it on a lack of drivers.

This. Also remember that Apple is cooking up its own CPU. Early Android had big problems because of the fragmentation everywhere. Chipsets were all different with everyone picking their own. Today we really only see Qualcomm, Samsung, and Apple. Nvidia is also around but they don't do near the volume of anyone else.

Without the specific drivers you're not going to get very far. What happens if you install Windows in an AMD machine with Intel Drivers? Nothing. It doesn't work. I suspect much the same thing happens with iOS/Android and since Apple is locked up tighter than a pair of hipster jeans there's no drivers to be had.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
You're kidding me right? PowerPC Mac OS doesn't run on Intel hardware because then, Mac OS was designed for the PowerPC architecture - which is different from x86.

Both iOS and Android run on ARM. So your analogy fails.

I think the issue has more to do with drivers. Hell, if you go to XDA, you'll find that the cameras/4G connectivity/IR blaster/etc. often don't work on ported versions of Android. And we're just talking about using another version of Android on a phone designed for Android. And the devs blame it on a lack of drivers.
No, the analogy works, regardless of drivers.

Each SoC, or if you're lucky, each SoC family, is typically its own complete hardware architecture. With x86, that architecture is standardized, and shared, not different between vendors. To run iOS on another device than an Apple SoC, you would likely need to have access to the source, and be able to edit it to support the device it will run on. Android, iOS, etc., must be built to the device. Only the userland is the same. However, the drivers tends to be the same, for the same included hardware. What's missing is lower than that, like the bootloader, setting up buses, and all that ugly stuff that needs to be done well before the OS can get to loading drivers.

Meanwhile, you can take an existing OS install on an x86 machine, change the hardware by brand and generations, and have a good chance of it working again, with only minor reconfiguration. The compatibility between vendors, thanks much to needing to be IBM compatible, way back when, is something ARM vendors are still working towards. On x86, there is a standard way you handle PCI. That grew into a standard way you handle PCIe. There is a standard way you set up and use DMA. There is a standard set of basic controllers and communication protocols. There is a standard method of booting up. Until recently, ARM was the wild west, as far as any of that went, and it won't be close to x86 until ARMv8 systems mature.

The only other way to run "iOS" would be a WINE-like layer over another OS, which abstracts the ABIs/APIs, but that would not make a difference driver-wise.
 

Rakehellion

Lifer
Jan 15, 2013
12,181
35
91
Outside of the neato factor, I don't really see the.

That's the whole point of hacking anything, isn't it?

For example: the Samsung Galaxy S5 is waterproof, has a heartrate sensor built-in, camera has twice the megapixels, memory card slot for up to 128gb, is cheaper, has a removable battery, etc.

Hundreds of millions of phone users don't care about those things. I know I sure don't.

The only other way to run "iOS" would be a WINE-like layer over another OS, which abstracts the ABIs/APIs, but that would not make a difference driver-wise.

So the problem with installing iOS is that no one knows how to use the CPU that it's written for? Not even an old version of iOS?
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
So the problem with installing iOS is that no one knows how to use the CPU that it's written for? Not even an old version of iOS?
Other way around: that it would need to be reconfigured, at the least, somehow, but likely recompiled from source, after modifying the source to run on the non-Apple SoC. Best case I think would be that the OS might work with other compatible CPU+GPU SoCs, but the bootloader would still need to be changed around, if not parts of the kernel's initialization, as well. All of that needs OS X source, which is closed.
 
Apr 20, 2008
10,067
990
126
I would like to run iOS on my phone. I purchased tons of games when I had a 3GS and was in the military.

Kyocera Hydro Life
Snapdragon S2 1.2Ghz Quad Core
1.5GB Ram
Adreno 305
Waterproof
5MP Back, VGA front
4.5", 960x540

Way better than a 3GS.
 

WelshBloke

Lifer
Jan 12, 2005
33,082
11,263
136
I would like to run iOS on my phone. I purchased tons of games when I had a 3GS and was in the military.

Kyocera Hydro Life
Snapdragon S2 1.2Ghz Quad Core
1.5GB Ram
Adreno 305
Waterproof
5MP Back, VGA front
4.5", 960x540

Way better than a 3GS.
Why not just buy a second hand 5S?
 

Rakehellion

Lifer
Jan 15, 2013
12,181
35
91
The iOS developer tools kit contains an iOS simulator for running your apps on Mac. What are the chances of someone porting that to another platform? They already got Google Play running on Windows.