Changes

Jump to navigation Jump to search

IOS emulators

7,927 bytes added, 1 June
|{{✓}}
|{{✗}}
|-
|Unnamed iOS emulator
|align=left|{{Icon|Windows}}
|Unreleased due to touchHLE
|?
|?
|?
|{{✗}}
|{{✗}}
|{{✗}}
|-
|[https://github.com/zydeco/aah aah]
|align=left|{{Icon|macOS}}
|?
|?
|?
|?
|{{✓}}
|{{✗}}
|{{✗}}
|-
|[https://github.com/ipasimulator/ipasim ipasim]
|align=left|{{Icon|Windows}}
|PatchV1.0.1
|?
|?
|?
|{{✓}}
|{{✗}}
|{{✗}}
|-
|[https://github.com/zhkl0228/unidbg unidbg]
|align=left|{{Icon|Windows|macOS|Linux}}
|0.9.7
|?
|?
|?
|{{✓}}
|{{~}}
|{{✗}}
|-
|[https://github.com/TrungNguyen1909/qemu-t8030 TruEmu]
|align=left|{{Icon|Windows|Linux|macOS}}
|?
|?
|?
|?
|{{✓}} ||{{✗}} ||{{✗}}
|-
|[https://github.com/alephsecurity/xnu-qemu-arm64 xnu-qemu-arm64]
|align=left|{{Icon|Windows|Linux|macOS}}
|?
|?
|?
|?
|{{✓}} ||{{✗}} ||{{✗}}
|-
|iEmu
|align=left|{{Icon|Windows|Linux|macOS}}
|?
|?
|?
|?
|{{✓}} ||{{✗}} ||{{✗}}
|-
!colspan="9"|Mobile / ARM
|{{✓}}
|{{✓}}
|-
|[http://systems.cs.columbia.edu/projects/cycada/ Cycada]
|align=left|{{Icon|Android}}
|Unreleased
|?
|?
|?
|{{✗}}
|{{✗}}
|{{✗}}
|}
<references group=N />
 
==Comparison==
;Emulators
:;[[touchHLE]]
:;BlackThunder
::Closed-source, commercial iOS emulator that can run a few commercial iOS apps. 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 emulators, 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 iOS apps that are decompiled and recompiled for the x86 architecture.
 
:;Unnamed iOS Emulator
::This is a Low-Level Emulator made by user “K-8-L-Y-N” discussed on the Darling Discord Server, which can run Springboard and the Calculator. They said it’s their own codename and own interpreter. It does not support touch at all, making it almost useless. It only emulates the kernel and the user provides a filesystem DMG. They’ve gotten iOS 1.0 springboard to boot, which they said was not too difficult and said they were also using iOS 1.0 dyld directly. They said it was a Low-Level-Emulation project as they had to emulate the CPU. They also said the kernel emulation is shorty and it only works. They said they’ll never release it in the state that is in, and refuses to even work on it due to touchHLE’s existence. It does load the original frameworks but doesn’t emulate UIKit. The interpreter was for x86 and interprets ARM. They got it to boot via emulated/recreated parts of the darwin/bsd kernel. Again, it’s emulating the kernel and not doing BSD syscalls on windows. When they feel like the code is in a better state, they do want to release it under the unlicense. However they do not plan to ever work on it anymore due to touchHLE. They say the code is in some pretty messy C++ stuff. They plan on rewriting in C# as they feel more comfortable continuing it in C#.
 
:;TruEmu
::QEMU-t8030, also known as TruEmu, is an iPhone 11 emulated in QEMU, however, the current version with a published source cannot boot. 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. TruEmu is made to counteract the paid Corellium’s monopoly in iOS emulation for security reasearch. The creator’s mastodon and X (formally Twitter) shows work on full SEP emulation and it booting to SpringBoard and operating the Calculator and Settings apps, but it is currently unreleased, with only minor graphical glitches. The day videos of it’s operation were posted on social medias, a user made an issue about it and archived the repo with no comment, only with a comment before it was emulated saying that he was working on multitouch. The reason it was unreleased remains uncertain. He may be developing a very capable iOS emulator, or he may have been stopped by an Apple employee or has been paranoid about possible Copyright issues and decided to not release it nor make a comment.
 
:;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.
 
:;unidbg
:: ''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 (arm64 architecture handler) uses unicorn and libffi to run iOS arm64 binaries on x86_64 macOS, with varying degrees of success. Most things will fail to launch because they need frameworks/symbols that aren't available on macOS. aah relies on the Mac Catalyst frameworks that are present on macOS 10.15. Additionally aah requires the source code of the app to run it, like the iOS simulator/emulator in XCode. https://twitter.com/maczydeco/status/1155588054486310912 https://github.com/zydeco/aah
 
:;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 than games.
 
:;xnu-qemu-arm64
:: A security research emulator created by Aleph. Much like TruEmu, it can partially run iOS, with launch services working correctly.
;Hypervisor
:;macOS 11 and up
::Since macOS 11 Big Sur, the 17th major operating system of the macOS line, the operating system for Mac computers has support for iOS and iPadOS applications for Apple Silicon-based Macs. However, some apps cannot be installed directly due to Apple DRM. This can be bypassed using an IPA file and PlayCover/Sideloady. [https://support.apple.com/guide/app-store/iphone-ipad-apps-mac-apple-silicon-fird2c7092da/mac See this page].
 
:;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 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]
 
;Compatibility layer ([[Compatibility_layers|...]])?
:;Darling
::Although no iOS support exists at the moment, [https://www.darlinghq.org/ Darling] wants to add support for iOS apps in the “long term”. Although not stated, they might add support for other platforms based on iOS, such as tvOS or watchOS in the future.
==Hardware features==
11,510
edits

Navigation menu