back

by rvz·7y ago·view on hn ↗
I have seen only a very small number of startups genuinely face very hard engineering problems like what Corellium is doing. I will elaborate.

In a 9 year development span, they have fully virtualized a real iOS device (Yes, it is not a simulator) to the point that it is running on a rack of ARM64 hypervisors on bare-metal boards from the bootloader to the home-screen. They even managed to virtualize the secure-element and access the console from there.

A task like that is something that is very rare in startups these days and to get it fully working like this is a herculean task, because the interals are closed-source and undocumented and was certainly reverse-engineered. Corellium is also at the point at which Google is using it to cross-compile Golang builds for iOS and Android. That is how good it is.

I think this startup changes eveything in the mobile industry.

1 comments
Why do you need a virtual iOS device? Honest question.
Perhaps you should ask every company testing apps on real iOS devices and the security researchers who need to automate finding bugs in iOS apps and in iOS itself. The iOS simulator is severely limited and is controlled by Apple so the need for a service that runs a full unrestricted iOS in the cloud is in demand and Corellium solves this.

Apple has maintained control of the mobile industry for a very long time and Corellium removes the need to buy another locked-down iDevice due to planned obsolescence to test your app. There is a reason why Apple tries to shutdown anyone who attempts to virutalize or emulate iOS/tvOS/watchOS and their apps.

Why does Apple limit their iOS simulator? Do you need iOS simulator for development of iOS apps?
The simulator only runs intel versions of iOS apps and cannot run true iOS apps which are arm64 binaries. This is Google's use case for testing Chrome and Golang on a truly virualized iOS device capable of running these executables. The iOS simulator cannot do this.

For testing smaller applications, the simulator is sufficient for that purpose, but for more complex applications almost always requires a real device. Also some features like in-app purchases are unavailable in the simulator, making it harder to test such features.

The real reasoning behind why Apple uses a limited version of the simulator is unknown to everyone, but these limitations have forced developers to purchase real iDevices just to test certain features either when Apple ends support for a device or an iDevice doesn't support a certain feature.

Corellium takes this further and fully virtualizes the iDevice on any version and it has the options to configure the state of the iDevice and allows automation and tests to run on the device. You may think of it like what Docker did to web apps is what Corellium has done for iOS and Android apps.

Can I use this simulator to make phone calls?