4 ms·
Pretty sure the "some reason" is just legal reasons. Afaik, Apple does not allow Apple software to be virtualized on non-Apple hardware. So while it may be tech
by binwiederhier 3y ago
Pretty sure the "some reason" is just legal reasons. Afaik, Apple does not allow Apple software to be virtualized on non-Apple hardware. So while it may be technically possible, it may be legally questionable.
In my head, when I saw this post, I instantly thought "Time to Apple legal action.... 3, 2, 1...". But maybe I'm wrong or things have changed.
- ianlevesque 3y agoAs long as they're not distributing iOS or any proprietary ROMs with it then the emulator is perfectly legal.
- lxgr 3y agoMany modern emulators need a BIOS-like ROM/flash image to even boot up; the situation is much less clear there, since these usually contain software and can accordingly be copyrighted. Some emulators solve this by providing their own (re)implementation, but that’s not always easy. And even when it’s “just” iOS: That is copyrighted too! So it’s the same problem – either there needs to be an iOS ABI-compatible OS, or it’s probably not possible to emulate any application legally, unfortunately.
- ianlevesque 3y agoYou are correct on all points of course. My main point was that unlike projects that distribute those components there's really no grounds for Apple to DMCA down the emulator's GitHub repo itself.
- lxgr 3y agoAgreed, unless Apple wants to make some Oracle v. Google-like claim on that iOS or firmware reimplementation violating their copyright, or maybe the emulator being capable at circumventing their FairPlay DRM for apps…? I really hope I’m wrong about this, but I feel like between this and iMessage, Apple might lean on DMCA before too long to protect their walled garden.
- amelius 3y agoJust look at how hard Nintendo shut down any attempt at emulation.
- a1xndr 3y agoDoing this is a huge amount of engineering work. Things like the usb controller, modem, audio, touch sensor, and many many more are often custom hardware without any specs available that you somehow need to simulate. That's not even getting into the display tech. And these things change with each new hardware iteration. In the OP repo, there appear to be 25 of these things that the author had to reverse engineer an emulate. And that's for 15 year old hardware. Things like usb controllers require thousands of lines of dense C code. Then you have all of the CPU extensions leveraged by iPhones that generally have poor/nonexistent emulation support. This type of emulation/rehosting is a notoriously hard problem even for simpler devices like routers. Modern game emulators typically move up the stack and intercept high-level graphics etc APIs because emulating all of the hardware would be a ton of work (and doing so in performantly would be impossible). The simulator that comes with xcode works in a similar way. But by doing this, you lose a lot of the capabilities that you might want from an emulated device (kernel/driver debugging, etc). There is a reason that Corellium can charge so much for SASS access to recent-model emulated iPhones.