14 ms·
QEMU for iOS
- tjoff 7y agoNot being in the apple world I wondered if this submission meant anything had changed regarding running stuff like this on iOS, but no: >Why isn't this in the AppStore? Apple does not permit any apps that has interpreted or generated code therefore it is unlikely that UTM will ever be allowed. However, there are various ways people on the internet have come up to side load apps without requiring a jailbreak. We do not condone or support any of these methods.
- saber6 7y agoYou can pay for a developer account ($99/yr) which allows you to get your builds signed by Apple for the purposes of you running either dev-builds locally or internal-only apps for an organization. That's what they mean by "no jailbreak required". Flipside is you gotta pay for a dev account to get your stuff signed to allow it to run.
- gruez 7y agoYou don't even need a (paid) developer account. Anyone with an apple id can sign ios apps with a validity of 7 days.
- dahfizz 7y agoYou need to pay a subscription to run your own code on your own device? Why anyone puts up with Apple's anticonsumerism is beyond me.
- thebruce87m 7y agoSecurity. Privacy. Long term support of hardware (environment). No carrier crapware.
- heavyset_go 7y ago> Security This is arguable. The amount of CVEs is pretty high for a closed-source platform. Several of those CVEs were exploited in the wild for years before being fixed.
- saagarjha 7y agoUnfortunately this is true for the other commonly-used mobile OS as well.
- userbinator 7y ago...which just lends more credence to the notion that you can pretend to be safe and lose your freedom, or you can face the reality that security isn't going to be perfect either way, and keep your freedom too.
- thebruce87m 7y agoI don’t see this being any worse than their competitors, and the long term support of hardware means that when they fix them you’re more likely to get the fix.
- syntheticcorp 7y agoCounting CVEs is not a good way of comparing security between software.
- saber6 7y ago
- josteink 7y ago> You can pay for a developer account ($99/yr) which allows you to get your builds signed by Apple So to test this on my iPhone, I need 1. to buy a Mac and 2. pay for an annual Apple development permission subscription. You really can’t make a platform worse than this, and I say that as an iPhone owner. It’s so frustrating! Can’t they publish this as a “test-flight” beta like for instance iSH does?
- busymom0 7y agoNo they are incorrect. That used to be the case but now you don’t need to pay a developer for testing on your own device. Only when you want to publish the app to App Store or need some specific developer feature like iCloud is when you need to pay.
- dhosek 7y agoI'd imagine most of those who would have need/interest in running this would probably have a developer account and could just compile and install it themselves.
- deleted 7y ago[deleted]
- busymom0 7y agoNow a days you don’t even need a developer account for testing on your device if I remember right.
- rgovostes 7y ago> 2.5.2 Apps [may not] download, install, or execute code which introduces or changes features or functionality of the app, including other apps. The rule changed, I think around the time that Swift Playgrounds came out, to add: > Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user. There are probably plenty of apps that do interpret downloaded code (the Frotz app to play old text adventures comes to mind) and fly under the radar. But Apple would surely be on the lookout for any kind of emulator, due to the legal risk.
- rlyshw 7y agoYou can run seemingly unrestricted python code on your iOS devices with Pythonista [0]. I'm using it right now to proxy my hotspot connection through my iPhone. Not sure how they're allowed to exist on the app store, but it's been solid for me for a while now. [0] https://apps.apple.com/us/app/pythonista-3/id1085978097 https://apps.apple.com/us/app/pythonista-3/id1085978097
- ericlewis 7y agoit is categorized as a learning application, but I am quite curious how you made a proxy with it.
- zakki 7y agoI guess he made an app that open a port to let user to connect to it and proxy-ing the request
- tech234a 7y agoPythonista has been featured by Apple several times. As others have pointed out, only pure-Python modules can be used unless they are precompiled and included with the app.
- dwheeler 7y ago
- trasz 7y agoThis is just not true. There are many emulators in AppStore, from i48 (which runs HP 48's native Saturn ROM), to ZORK, which runs PDP-11 binary of said game underneath, along with emulated RT-11 (or was it RSX-11?).
- tluyben2 7y agoMaybe it is emulators that generate code internally and these do not? I know that was why MSX emulators were forbidden while they cannot really hurt Apple sales... Anyway; I don't know if these emulators maybe do not generate code or are written with Core JS (for the most part) which apparently is allowed.
- anonsivalley652 7y agoApple's control-freaking and exploitation of customers has reached peak unreasonableness. I don't think SJ would've been so focused on making trillions when some billions could be had with cooler, repairable, lasting products. Personally, I have one foot out of the door (hackintosh) regarding the Apple ecosystem. I'm going to let the iPhone 6S, iPad Pro 10.5 and Apple Watch 4 run however long they can, but that's probably it for me, I'll stick to repairable devices like my ThinkPad T480.
- dreamcompiler 7y agoIt's ironic that Woz especially wanted to bring computing to the masses, not lock it down. Apple is the antithesis of its own founders' vision. Apple deserves to be disrupted.
- neilsimp1 7y agoThis is cool, but I can't help but think that running a VM on an iPad or iPhone would be horrendously slow.
- akhilcacharya 7y agoThe iPad Pro is very impressive, here a video of one playing Half Life 1 in XP using UTM [0] [0] https://www.youtube.com/watch?v=O19dNVTBCAs&feature=youtu.be https://www.youtube.com/watch?v=O19dNVTBCAs&feature=youtu.be
- hinkley 7y agoHave you played Civ VI on an iPad? Except for being slightly harder to click on things (and no keyboard shortcuts) it plays the same as the desktop version. Same UI and graphics.
- anonsivalley652 7y agoNice. Printed on electrons from a cheap(er), used iPad Pro 10.5" over 4G LTE
- nfoz 7y agoSure but if it's to emulate a computer from 1985 with half a meg of RAM, it might not be so bad :) Edit: my bad, somehow I thought this was UAE the amiga emulator.
- throwaway55554 7y agoWhy would you think that? Apple's processors are very powerful.
- saagarjha 7y agoBecause it is fairly slow :)
- ViViDboarder 7y agoEmulation is slow.
- LeoPanthera 7y ago> "Since iOS 13.3.1, it appears Apple has stopped allowing free developer profiles to sign dylibs." A terrible decision. Users should always be allowed, at the very least, to build and sideload their own code.
- kccqzy 7y agoI'm not very familiar with iOS but is this restriction a fundamental limitation or just a paper-cut style limitation that's just one more hurdle for developers to jump through? It appears to me that developers who are previously using dynamic libraries now have to invest in the effort to make them static libraries and link them to the main executable. So it seems like it can be overcome, but just more hassle. Am I correct?
- earenndil 7y agoIt is completely arbitrary, yes.
- throwaway55554 7y agoI use and enjoy Apple products, but behavior like this is so annoying. My devices are mine and this should not be a restriction.
- dreamcompiler 7y agoIOS devices have never been your own. Apple justified this in the early days on the grounds that they were protecting mobile phone networks from hackers, but that argument fell through when the iPod touch (an iPhone without phone functionality) was equally locked down. The only thing Apple is protecting with this policy is their revenue stream.
- jsjohnst 7y ago> Apple justified this in the early days on the grounds that they were protecting mobile phone networks from hackers Substantial claims require proof, please show even one example where Apple stated this ever.
- NamPNQ 7y agoThe title lets me think about ios emulator run in qemu
- frabert 7y ago> "Fast native graphics through para-virtualization thanks to SPICE" I'm assuming the SPICE referred to here is not the SPICE I know, unless they've gone the full video circuit emulation route, which I don't imagine being fast at all :)
- detaro 7y agoprobably :D https://www.spice-space.org/ https://www.spice-space.org/
- hamiltonkibbe 7y agoHah, having parameters like --vga-cable-length --ambient-temperature --psrr would be fun though
- anticensor 7y agoAnd you would have to specify all those parameters in imperial units, but according to most idiosyncratic measurement methods possible, like that: cable length includes the connector, but only one end counts.
- anonsivalley652 7y agoA different kind of "circuit." ;)
- josteink 7y ago> "Fast native graphics through para-virtualization thanks to SPICE" Isn’t that what’s the “regular” QEMU setup always uses anyway?
- machello13 7y agoserious question as someone who has an iPhone + iPad but isn't very familiar with emulation. What could you do with this? How feasible is it to run Windows and then install Steam or something like that?
- jsjohnst 7y agoI ran Linux and Windows 95 on a first gen iPad using Bochs. Boot time was utterly terrible, but it was kinda useable after. Given the performance improvements in recent iPads, I’m hoping this will be better, but I’ll let you know once I get home and try it.
- jasoneckert 7y agoHas anyone used this? What is the performance like?
- saagarjha 7y agoIt took about a minute to boot Alpine Linux on a debug build. It's currently about half an hour into booting elementary and it's just started the display server.
- saagarjha 7y agoUpdate: about an hour in it got stuck trying to start the login service.
- hedora 7y agoI’ve had elogind deadlock on physical machines (on many distros and machines, including elementary). I have an nfs server, so it’s probably timing related. Try a non-systemd distro (e.g., MX linux, Devuan, slackware).
- lwb 7y ago> Apple does not permit any apps that has interpreted or generated code An interesting exception to this is Expo, an app that lets you load React Native apps built by other developers over the internet. Expo gets around this on Apple by forcing you to sign into that developer's account before downloading their app, so that it's plausibly "yours". I've used to distribute early builds of a React Native app really easily. All of this to say, I wonder to what degree Apple's policy applies when it's "your" app, or you are the developer, or whatever. I suspect Expo, as a venture backed startup, has some kind of a working relationship with Apple that affords them a tiny amount more leeway than the average Github user. This could actually be an incredibly useful application that many people pay lots of money for if were ever allowed on the market -- think of the combination of iPad + keyboard + Windows Remote Desktop. Really sad that Apple makes their platform so restrictive. (Yes, security issues, but still, seems like a good enough sandbox could overcome the danger of remote execution.)
- rhodysurf 7y agoExpo is also completely different and within the rules. They arent installing apps, they are simply loading JS and running it like any RN app could do. They just make it easy by pre-bundling deps so that they can be loaded on the fly. Its literally just downloading JS and assets from a server and then executing the JS with JSC on ios. They also get around the limitation of having half the screen showing the executed code by not letting users modify the code through their app.
- lwb 7y agoRight, but the QEMU project is also simply loading X86 (or other) assembly code and interpreting it in a virtual machine... unless I misunderstand this project and it does something more sophisticated. > the limitation of having half the screen showing the executed code I'm not aware of this limitation, could the QEMU port use this to show the ASM that's being executed to get around this?
- rhodysurf 7y agoIDK about virtual machines and why this isnt allowed. But related is how this app works that is a c compiler for iOS and is in the app store: https://www.reddit.com/r/iOSProgramming/comments/dr5bxi/app_for_coding_and_running_c_code_in_ios_locally/ https://www.reddit.com/r/iOSProgramming/comments/dr5bxi/app_... It basically does the same thing Swift Playgrounds does where is compiles to LLVM machine code and runs it will LLVM compiled for iOS. And it is on the app store so IDK the rules at all apparently and why QEMU wouldnt be allowed.
- osy 7y agoHi, author here. I’m here to answer any questions but also I want to advertise the fact that it would be really really awesome if interested devs can join the project. Currently it’s just me doing this on my spare time for the past year. Specifically I’m a complete newbie at UI/UX stuff and the project could use a real designer/front end developer. Also for more info and a few videos demonstrating capabilities and performance check out the website: https://getutm.app/ https://getutm.app/
- lazerl0rd 7y agoThanks for the amazing work, I thought about this a while back when I saw WINE Hangover for Android but this is even better (in some ways, at least). Sadly, the iPadOS/iOS 13.3.1 issue is a headache and the certain jailbreak tools which usually get around IPA signing aren't working either. Whilst most people are saying it's a bug on Apple's side I'm worried it's more than that. The removal of signed iPadOS/iOS 13.3 from their servers, along with the returned ability of flashing static lib'ed packages after all being blocked for a while seems more "on purpose" from Apple rather than "by accident". We gotta just wait and see, I guess.
- osy 7y agoI think the jailbreak IPA signing isn’t working because it needs the `get-task-allow` entitlement which idk if every tool is aware of. This entitlement is only given out in development profiles and not any distribution profiles so I can’t upload to TestFlight either. If Apple locks down what you can do with `get-task-allow` in the future then a jailbreak would be required to run this.
- OrgNet 7y agoI'm surprised that Apple allows apps like QEMU... it's not like them. Gives me hope...
- saagarjha 7y agoThis hasn’t been approved by Apple.
- terminaljunkid 7y agoOn Android, there is termux terminal emulator, which allows to run native Linux binaries and already has many packages. Arguably there were other ways also before termux existed: GNURoot Debian was an app that ran a minimal Debian chroot in fake root (`proot`), Before that there was KBox. In termux also I run a full Debian chroot using proot. None of this requires root. Even without that, static binaries could run till some recent version. I have poked with dynamic loading and LD_PRELOAD to set up my own environment which could run most Debian packages using libfakechroot && libfakeroot. People like to shit on Android. But in terms of power user freedom, apple doesn't even come near.
- bibyte 7y agoIf you want this on Android it is available in the Termux repository. If you have a flagship device it should be fast enough to be usable.
- tluyben2 7y agoWhat Android tablet is comparable to a modern iPad pro in performance, screen and battery life? I really like the iPad pro but I hate the artificial restrictions... All the Android tablets I tried out, flag ship ones, just fell down compared. I have a Surface Go for when I need Windows, but that is probably one of the worst buys of my life. I currently use iPad Pro with Remotix to access OS X + Windows which works really well. If there was a Remotix for Linux, I would use Linux only, but there is no comparable VNC client for Linux. Compared the ones under Linux are unusable (and I did try them all).
- bibyte 7y agoWhat about the Samsung Galaxy Tab S6? It seems to be comparable to the iPad Pro in terms of performance and screen. I tried out an Android tablet a few months ago and it seemed pretty fine. If your want to do portable programming I would recommend a light 2 in 1 laptop. You can dual boot Windows and Linux on it (Windows for media consumption and Linux for programming). But it is bigger then a tablet. Of course if you use a server you can use anything you want to do programming. But personally the latency is a dealbreaker for me.
- tluyben2 7y agoI will try the S6; it seems good but someone told me there are no really solid keyboards for it? I never checked it because I already had an iPad. > But personally the latency is a dealbreaker for me. I had that issue too :) However that changed when remotemac (no affiliation) introduced me to Remotix; I live in the mountains and my internet is bad, and yet it has no latency with 4k screen transferring. Anything on Linux is just horrible compared. I develop apps on my iPad and it works really well like that. My ‘dream’ (bit extreem but lets say preferred way of working) is to use my x220 with Linux to do that; then I can do all dev on that machine while doing iOS dev remotely. Now I still have to carry an Android tab, Windows laptop (I can do that on the x220 but I really do not like to dual boot) or iPad with me.
- rcarmo 7y agoI have been using iSH for many months to have a moderately sane CLI environment on my iPad, and bemoaning the App Store restrictions that prevent it from being better integrated and more popular. I fear this will also never reach its full potential... but it is great to see.