IOS emulators: Difference between revisions

Emulaster (talk | contribs)
No edit summary
mNo edit summary
Line 13: Line 13:
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.
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.


Formerly, iOS was used for both Apple's phones and tablets. Then, the iOS brand was split in two parts in 2019, with iOS now being the OS exclusively used in the iPhone and the now-defunct iPod Touch. The second half, named iPadOS, is a fork of iOS for iPads that makes use of their larger screens, hence it's name. Most iOS apps and games work on iPadOS.
Formerly, iOS was used for both Apple's phones and tablets. Then, the iOS brand was split into two parts in 2019, with iOS now being the OS exclusively used in the iPhone and the now-defunct iPod Touch. The second half, named iPadOS, is a fork of iOS for iPads that makes use of their larger screens, hence its name. Most iOS apps and games work on iPadOS.


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. Appetize.io and other tools that claim to emulate iOS on a web browser are in reality just the iOS simulator in XCode wrapped around a cloud stream to the web browser, and like the iOS XCode simulator, need the source code to run. More recently, touchHLE managed to get a few older iPhone OS apps running by recreating some of iOS’s standard libraries and emulating just the iPhone’s CPU, and nearly the same time, QEMU-iOS got released and can successfully emulate iPhone OS 1.0 on an iPod Touch 1st generation, albeit with bugs.
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. Appetize.io and other tools that claim to emulate iOS on a web browser are in reality just the iOS simulator in XCode wrapped around a cloud stream to the web browser, and like the iOS XCode simulator, need the source code to run. More recently, touchHLE managed to get a few older iPhone OS apps running by recreating some of iOS’s standard libraries and emulating just the iPhone’s CPU, and nearly the same time, QEMU-iOS got released and can successfully emulate iPhone OS 1.0 on an iPod Touch 1st generation, albeit with bugs.
Line 140: Line 140:


;BlackThunder
;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]] 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.
: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]] is a closed-source, commercial iOS simulator that can run a few commercial iOS apps. 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 iOS apps that are decompiled and recompiled for the x86 architecture.


;Cycada
;Cycada
: ''Cycada'' (2014), formally known as Cider and Chameleon before that is an unreleased research 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 recommended 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". All attempts to release it by contacting them have resulted in them saying they are not interested. You may try to recreate Cycada on your own, provided that you know the internals of Android, iOS, XNU, and Linux. Out of 69 tested apps, 19 apps fully work, 10 work with minor bugs that do not affect functionality, 15 have major errors that affect functionality, and 27 crash. Only [https://github.com/darlinghq/darling/issues/1168#issuecomment-1115143186 one recreation] is know to exist, which is also unreleased, and it was made by the creator of DarlingHQ along with two other unknown individuals. It took about a year to develop, and one component of it was released. The one exception where some original code was published was [https://github.com/darlinghq/darling-newlkm here], to be reused in Darling later on. Jeremy Andrus was accused of being a sellout for leaving the project to work as a kernel programmer (Now a Cloud Computing Efficiency worker) 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) To see the paper, it’s specifications, it’s compatible apps, and possibly recreate it, see [http://jeremya.com/files/pub/2015/02/andrus-thesis.pdf here]
: ''Cycada'' (2014), formally known as Cider and Chameleon before that is an unreleased research 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 recommended 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". All attempts to release it by contacting them have resulted in them saying they are not interested. You may try to recreate Cycada on your own, provided that you know the internals of Android, iOS, XNU, and Linux. Out of 69 tested apps, 19 apps fully work, 10 work with minor bugs that do not affect functionality, 15 have major errors that affect functionality, and 27 crash. Only [https://github.com/darlinghq/darling/issues/1168#issuecomment-1115143186 one recreation] is known to exist, which is also unreleased, and it was made by the creator of DarlingHQ along with two other unknown individuals. It took about a year to develop, and one component of it was released. The one exception where some original code was published was [https://github.com/darlinghq/darling-newlkm here], to be reused in Darling later on. Jeremy Andrus was accused of being a sellout for leaving the project to work as a kernel programmer (Now a Cloud Computing Efficiency worker) 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) To see the paper, its specifications, its compatible apps, and possibly recreate it, see [http://jeremya.com/files/pub/2015/02/andrus-thesis.pdf here]
;TruEmu
;TruEmu
:QEMU-t8030 (2022), also known as TruEmu, is an iPhone 11 emulated in QEMU, however it does not have a display, and seems abandoned. TruEmu is a software that offers support for iOS 14 up to the latest iOS 16, and is built to work on iPhone 6S SecureROM hardware. It also provides out-of-box kernel debugging support and USB support (with Firmware Restore), and utilizes Apple's custom CPU features such as SPRR/GXF and custom PAC. Additionally, TruEmu is an open-source software.
:QEMU-t8030 (2022), also known as TruEmu, is an iPhone 11 emulated in QEMU, however, it does not have a display and seems abandoned. TruEmu is a software that offers support for iOS 14 up to the latest iOS 16 and is built to work on iPhone 6S SecureROM hardware. It also provides out-of-box kernel debugging support and USB support (with Firmware Restore) and utilizes Apple's custom CPU features such as SPRR/GXF and custom PAC. Additionally, TruEmu is open-source software.
   
   
;iEmu
;iEmu
:QEMU-s5l89xx-port (also known without the -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. 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. The project 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. The name is based on the part number of the original iPhone, and also is known to be called iVM, however this is unconfirmed.
:QEMU-s5l89xx-port (also known without the -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. 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. The project 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. The name is based on the part number of the original iPhone, and also is known to be called iVM, however, this is unconfirmed.


;unidbg
;unidbg
: ''unidbg'' (2020) is a developer library that allows emulating Android binaries, however "experimental" iOS support was added some time in 2021. It is unknown if any apps are supported.
: ''unidbg'' (2020) is a developer library that allows emulating Android binaries, however, "experimental" iOS support was added sometime in 2021. It is unknown if any apps are supported.


;aah
;aah
Line 157: Line 157:


;ipasim
;ipasim
: ''ipasim'' (2017) is a high level emulator written in C++ that uses Microsoft's winObjC to recompile 64-bit iOS apps into apps in live. It doesn't support much apps except for really basic ones. It was more focused on apps then games.
: ''ipasim'' (2017) is a high-level emulator written in C++ that uses Microsoft's winObjC to recompile 64-bit iOS apps into apps in live. It doesn't support much apps except for really basic ones. It was more focused on apps than games.


;xnu-qemu-arm64
;xnu-qemu-arm64
: A security research emulator created by Aleph. Security that like TruEmu, it can partially run iOS, with launchd services working correctly.
: A security research emulator created by Aleph. Much like TruEmu, it can partially run iOS, with launch services working correctly.


;Darling
;Darling
Line 166: Line 166:


==Scams==
==Scams==
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'''. iPadian itself is not a real emulator and cannot actually emulate any iOS, iPadOS, or watchOS code and just use recreations that are limited in functionality and are not ports. “AIR iPhone” is also a simulator in Adobe Flash. Malware on Android also goes by the name “iEmu”, “Cider” and “Cycada”, based on the unfinished and unrelated projects of the same name, and are sometimes iOS launcher software that are possibly infected by malware.  
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'''. iPadian itself is not a real emulator and cannot actually emulate any iOS, iPadOS, or watchOS code and just use recreations that are limited in functionality and are not ports. “AIR iPhone” is also a simulator in Adobe Flash. Malware on Android also goes by the name “iEmu”, “Cider” and “Cycada”, based on the unfinished and unrelated projects of the same name, and is sometimes iOS launcher software that is possibly infected by malware.  
*TikTok videos by the user “iPod Emulator Hype” appear to show QEMU-iOS run on an Android device and a web browser, however the Android version is confirmed to be a VNC client and faked, with the HTML5 version likely fake as well.
*TikTok videos by the user “iPod Emulator Hype” appear to show QEMU-iOS running on an Android device and a web browser, however, the Android version is confirmed to be a VNC client and faked, with the HTML5 version likely fake as well.
*Blog sites suggest “iOSEmus” as an iOS emulator for Android devices, however in reality it is an alternate App Store for iOS to install jailbreak tools including console emulators and other tools on iOS 11.
*Blog sites suggest “iOSEmus” as an iOS emulator for Android devices. In reality, it is an alternate App Store for iOS to install jailbreak tools including console emulators and other tools on iOS 11.


Your best bet, until touchHLE supports your 32-bit app,  ARM macOS is able to be virtualized without an ARM Mac (for 64 bit), or 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. However in the US the trend goes to iOS exclusively more, including Faves app, Bloom app, and official ChatGPT app getting iOS versions first.  
Your best bet, until touchHLE supports your 32-bit app,  ARM macOS is able to be virtualized without an ARM Mac (for 64-bit), or 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. However, in the U.S., the trend goes to iOS exclusively, including the Faves, Bloom, and the official ChatGPT apps getting iOS versions first.  


{{Apple}}
{{Apple}}