Editing IOS emulators
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
}} | }} | ||
− | :''This page is about software that emulates | + | :''This page is about software that emulates IOS on other hardware, like desktops.''{{for|emulators that run on IOS|Emulators on iOS}} |
− | '''iOS''' and | + | '''iOS''' devices started the smartphone craze, which would go on to replace conventional mobile phones in both Japan (which had its own subset of cell phones) and the rest of the world, with more advanced touch-controlled devices. |
− | + | Unlike its direct competitor, [[Android emulators|Android]], there are practically no usable emulators, as the official iOS SDK (macOS-only) only allows for running your own projects, i.e., they run code generated for an x86 target rather than ARM code as used by iOS. Some simulators (e.g., [[BlackThunder]]) make use of the simulator in the iOS SDK to run a few chosen iOS apps that are recompiled for x86. Unlike previous emulation trails, BlackThunder first loads a highly trimmed Hackintosh image via VirtualBox, which loads Xcode and an iOS simulator into it, then runs decompiled iOS apps recompiled for the x86 architecture. More recently, touchHLE managed to get at least one older iPhone OS app running by recreating some of iOS’s standard libraries and emulating just the iPhone’s CPU. | |
− | |||
− | |||
− | |||
− | Unlike its direct competitor, [[Android emulators|Android]], there are practically no usable emulators, as the official iOS SDK (macOS-only) only allows for running your own projects, i.e., they run code generated for an x86 target rather than ARM code as used by iOS. | ||
==Emulators== | ==Emulators== | ||
− | {| class="wikitable" style="text-align:center; | + | {| class="wikitable" style="text-align:center;" |
! scope="col"|Name | ! scope="col"|Name | ||
! scope="col"|Platform(s) | ! scope="col"|Platform(s) | ||
! scope="col"|Latest version | ! scope="col"|Latest version | ||
− | |||
− | |||
− | |||
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr> | ! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr> | ||
! scope="col"|Active | ! scope="col"|Active | ||
! scope="col"|[[Recommended emulators|Recommended]] | ! scope="col"|[[Recommended emulators|Recommended]] | ||
|- | |- | ||
− | + | |macOS Big Sur and up | |
+ | |align=left|{{Icon|macOS}} | ||
+ | |? | ||
+ | |{{✗}} | ||
+ | |{{✓}} | ||
+ | |{{✓}} | ||
|- | |- | ||
|[https://touchhle.org/ touchHLE] | |[https://touchhle.org/ touchHLE] | ||
|align=left|{{Icon|Windows|macOS}} | |align=left|{{Icon|Windows|macOS}} | ||
− | |[https://github.com/ | + | |[https://github.com/hikari-no-yume/touchHLE/releases/tag/v0.1.1 v0.1.1] |
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
|{{~}} | |{{~}} | ||
|- | |- | ||
− | |[https:// | + | |[https://www.corellium.com/ Corellium] |
− | + | |align=left|{{Icon|Web}} | |
− | + | |Website | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |align=left|{{Icon| | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|{{✗}} | |{{✗}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
− | |||
|- | |- | ||
− | |[https://github.com/ | + | |[https://github.com/devos50/qemu/tree/ipod_touch_1g QEMU (fork)] |
− | |align=left|{{Icon | + | |align=left|{{Icon|macOS|Linux}} |
− | | | + | |git |
− | |||
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
|{{✗}} | |{{✗}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
− | |||
− | |||
|- | |- | ||
|[https://github.com/ipasimulator/ipasim ipasim] | |[https://github.com/ipasimulator/ipasim ipasim] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|PatchV1.0.1 | |PatchV1.0.1 | ||
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
|{{✗}} | |{{✗}} | ||
Line 114: | Line 60: | ||
|align=left|{{Icon|Windows|macOS|Linux}} | |align=left|{{Icon|Windows|macOS|Linux}} | ||
|0.9.7 | |0.9.7 | ||
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
− | |{{ | + | |{{✓}} |
+ | |{{✗}} | ||
+ | |- | ||
+ | |[http://systems.cs.columbia.edu/projects/cycada/ Cycada] | ||
+ | |align=left|{{Icon|Android}} | ||
+ | |Unreleased | ||
+ | |{{✗}} | ||
|{{✗}} | |{{✗}} | ||
+ | |{{TBD}} | ||
|- | |- | ||
− | |[ | + | |[[BlackThunder]] |
− | |align=left|{{Icon|Windows | + | |align=left|{{Icon|Windows|macOS}} |
− | |? | + | |??? |
− | + | |{{✗}} | |
− | + | |{{?}} | |
− | + | |{{~}} | |
− | |{{ | ||
|- | |- | ||
− | | | + | |TruEmu |
|align=left|{{Icon|Windows|Linux|macOS}} | |align=left|{{Icon|Windows|Linux|macOS}} | ||
− | | | + | | |
− | + | |{{✓}} ||{{~}} ||{{✗}} | |
− | |||
− | |||
− | |{{✓}} ||{{ | ||
|- | |- | ||
|iEmu | |iEmu | ||
|align=left|{{Icon|Windows|Linux|macOS}} | |align=left|{{Icon|Windows|Linux|macOS}} | ||
− | | | + | | |
− | |||
− | |||
− | |||
|{{✓}} ||{{✗}} ||{{✗}} | |{{✓}} ||{{✗}} ||{{✗}} | ||
|- | |- | ||
− | + | |[[MAME]] | |
− | + | |align=left|{{Icon|Windows|Linux|macOS|FreeBSD}} | |
− | |[ | + | |[http://www.mamedev.org/release.html {{MAMEVer}}] |
− | |align=left|{{Icon| | + | |{{✓}} ||{{✗}} ||{{✗}} |
− | | | ||
− | | | ||
− | | | ||
− | |[ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |{{✓}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | |||
− | |||
− | |{{✗}} | ||
− | | | ||
− | |{{ | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ;macOS Big Sur | |
− | : | + | :The 17th major operating system of the macOS line. It has support for iOS and iPadOS applications for Apple M1-based Macs. However, some apps are not installed due to Apple DRM. This can be bypassed using an IPA file and Sideloady. |
− | + | ;touchHLE | |
− | : | + | :A promising new endeavor that aims to run older iOS apps by reimplementing standard libraries instead of internal components. Because of this very high-level approach, no dump of the operating system is required. Its initial target is iPhone OS 2.x, with plans to support other 32-bit iOS versions, mainly 3.x and 4.x, as well as the iPad. Development started in December 2022, and its initial 0.1.0 release came out in February 2023. The only officially supported applications are [https://archive.org/download/iOSObscura/iPhoneOS%202/com.ooi.supermonkeyball/ ''Super Monkey Ball''] – the dev’s inspiration for the project – which is fully playable and runs at full speed, even on mid-range laptops, as well as Crash Bandicoot Nitro Kart 3D. touchHLE supports running IPA files directly. Super Monkey Ball Lite, the only supported free game, is the third one supported. A game controller is required to control the accelerometer. |
− | + | ;QEMU (fork) | |
− | : | + | :Based on earlier work emulating the S5L8900 and the iPhone 11 in QEMU. It can emulate an iPod Touch 1G running iOS 1.0, including iBoot, the kernel, and the Springboard, although it requires a modified NOR and NAND image. Some features, such as audio and Wi-Fi, are not emulated, and there are multiple crashes. [Source code](https://github.com/devos50/qemu/tree/ipod_touch_1g) - [Blog post](https://devos50.github.io/blog/2022/ipod-touch-qemu/) - [Blog post pt.2](https://devos50.github.io/blog/2022/ipod-touch-qemu-pt2/) |
− | |||
− | |||
− | + | ;Corellium | |
− | : | + | :A service made by the Isrealian company of the same name that runs any modern iOS devices, some Android devices, or bring-your-own IoT devices on either the cloud or a self hosted server. Emulation is basically perfect, and they have hardware iOS 10.3 to the latest iOS version, with debugging features and security tools, as well as IPA installing. They also have iPhone 7 to the latest iPhone in terms of hardware. The devices run on an ARM hypervisor. For individuals, it costs 99 USD for 2 cores, which only has iPhone 7, and 295 USD for 6 cores, to use modern iPhones. The site also prohibits users under 18 from using their service. The service is also made for cybersecurity, not gaming. |
− | + | ;MAME | |
− | :: | + | :Very basic iPhone 2G support available [https://github.com/mamedev/mame/blob/master/src/mame/apple/iphone2g.cpp here]. Unlikely to ever be completed. |
− | + | ;BlackThunder | |
− | : | + | :The official iOS SDK (macOS-only) only allows for running your own projects, i.e. they run code generated for an x86 target rather than ARM code as used by iOS. However some simulators e.g. BlackThunder, make use of the simulator in the iOS SDK to run a few chosen iOS apps that are recompiled for x86. [[BlackThunder]] (Chinese:黑雷模拟器),website is a closed source, commercial iOS simulator that can run a few commercial iOS apps. Unlike previous emulation trails, BlackThunder firstly loads a highly trimmed Hackintosh image via VirtualBox, which loads Xcode and an iOS simulator into it, then runs iOS apps that are decompiled and recompiled for the x86 architecture. |
− | + | ;Cycada | |
− | : | + | : **Cycada** (2014), formally known as Cider is an unreleased reasearch project made by a few folks at Columbia that ran iOS 5.1.1 and experimentally iOS 6 apps at a high, but not perfect quality and compatibility (see paper for list). It is based on pirated iOS libraries. It is seriously not reccomended to initiate contact with the developers of the project, as they never planned on releasing it and want people to use their paper to reproduce it with "significant effort". You may try to recreate Cycada on your own, provided that you know the internals of Android, iOS, XNU, and Linux. [Website](https://systems.cs.columbia.edu/projects/cycada/) - [Paper](https://jeremya.com/files/pub/2015/02/andrus-thesis.pdf) - [Video demo](https://www.youtube.com/watch?v=Uaple0Ec1Dg) - [Presentation](https://jeremya.com/files/pub/2014/03/cider/Cider-ASPLOS-2014-clean-full.pdf) - [Announcement](http://engineering.columbia.edu/sync-columbia-engineering-team-first-run-ios-apps-android-platform) - [Wikipdia](https://en.wikipedia.org/wiki/Columbia_Cycada) - [Screenshots](https://archive.org/details/image-071) |
− | :; | + | :TruEmu |
− | : | + | ;**QEMU-t8030** (2022), also known as TruEmu, is an iPhone 11 emulated in QEMU, however it does not have a display yet, and seems abandoned. [Source code](https://github.com/TrungNguyen1909/qemu-t8030) - [Presentation](https://i.blackhat.com/USA-22/Thursday/US-22-Nguyen-TruEmu.pdf) |
+ | |||
+ | :iEmu | ||
+ | ;**QEMU-s5l89xx-port** (2012), also known as iEmu is another failed attempt to get an iPhone running in QEMU, this time the 1st generation. The last commits were made in 2013. Any Android app going by the name iEmu is a *scam* and should be avoided. [Source Code Mirror (Up to late 2012)](https://github.com/danzatt/QEMU-s5l89xx-port) - [Website (archived)](http://web.archive.org/web/20131213053331/http://www.iemu.org/index.php/Main_Page) - [Source Code (Archive)](http://web.archive.org/web/20130410061346/https://github.com/cmwdotme/QEMU-s5l89xx-port) | ||
− | ; | + | ;unidbg |
− | : | + | : **unidbg** (2020) is a developer library that allows emulating Android binaries, however "expiramental" iOS support was added some time in 2021. It is unknown if any apps are supported. |
− | |||
− | + | ==History of failed iOS emulation attempts== | |
− | + | Many of the currently available '''"simulators"''' only try recreating popular iOS apps (like browsers) in a PC application with no real emulation involved. Some notable [[Emulator scams|scams]] in such fashion are called '''iPadian''' or variations on the name, and are often '''malware'''. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * A project to emulate various smartphones (iPhone, iPod Touch, iPad, Apple TV 2G) called '''iEmu''', started in 2011 but got mysteriously abandoned two years later before anything usable surfaced. All pages related to the project were removed. It's speculated Apple had a hand in this. | |
− | + | * Nowadays, a malicious APK file going by the '''iEmu''' moniker is also being circulated on blogs run by script kiddies claiming to offer a way to run iOS apps on Android. More often than not, they're uploaded with the intention of generating revenue from impressionable users (through pay-per-click URL shorteners) who fall easily for those types of scams. | |
− | + | * There has been a project to provide a runtime for iOS apps to run on '''Android''' called [http://systems.cs.columbia.edu/projects/cycada/ '''Cycada'''] (formerly known as '''Cider'''). Not much progress has been made, and the original author was accused of being a sellout for leaving the project to work as a kernel programmer for Apple. The project booted many 32-bit iOS apps successfully, albeit slowly. The last update to this project was in [https://dl.acm.org/doi/pdf/10.1145/3135974.3135981 '''2017''']. (NOTE: If you search "Cider APK", you will get iPhone 12 launcher adware, even on UpToDown or Malavida) | |
− | + | * There was also a project based on [[QEMU]] that usually went around by the name QEMU-s5l89xx (based on the part number of the original iPhone), or iVM. The last known commits to this project were in 2013, and it is unclear if this project will ever come to fruition. | |
− | Your best bet, until | + | Your best bet, until a new emulation effort is ever started, is to hope that whatever iOS app you're interested in gets an Android port. This is very rare, especially for Japanese ones, as Android is perceived to be more open to piracy. That appears to be gradually changing lately and isn't of as much concern for non-gaming apps. |
− | + | iOS apps are distributed in the IPA format. Like Android's APK files, they are standard ZIP files, so their contents can be browsed and extracted most of the time. | |
− | |||
− | |||
{{Apple}} | {{Apple}} | ||
[[Category:Mobiles]] | [[Category:Mobiles]] | ||
− | |||
[[Category:iOS emulators|*]] | [[Category:iOS emulators|*]] | ||
− | |||
− | |||
− | |||
− |