17 ms·
Apple’s blanket ban on interpreted code is not arbitrary. It is there to prevent apps circumventing the review process and security model ie. apps pretending t
by threeseed 5y ago
Apple’s blanket ban on interpreted code is not arbitrary.
It is there to prevent apps circumventing the review process and security model ie. apps pretending to do X during the review process and then doing Y when in use or obfuscating their use of private APIs. Now you can argue these restrictions are unreasonable but many of us don’t want our iPads or iPhones to be like our computers.
- notsureaboutpg 5y agoFine, they aren't arbitrary (obviously a company worth that much isn't making any arbitrary decisions). But they still suck and degrade the performance for computing enthusiasts who most on this platform are (including me). I want to push hardware to it's limits because it's fun because there's fun things out there when you do that. Apple wants me to not bork my system or get confused when an app tricks me or have to show up at their Genius Bar with a problem they can't fix from a third party app they've never heard of. That's fine, but I won't get in that situation, so I don't want hardware locked down by software that worries I will.
- alisonkisk 5y ago> many of us don’t want our iPads or iPhones to be like our computers. Thats completely irrelevant to anyone else's iPad, which has no impact on your iPad's security. Would you be in favor of Apple banning whatever Mac OS app you use because I don't want to use it? And what even is the point of having a secure iPad if you're also going to run an insecure computer?
- TheCraiggers 5y ago> many of us don’t want our iPads or iPhones to be like our computers And many of us do. I would never buy a locked-down piece of hardware like that. But I don't think it matters either way what either side wants, because it's what Apple wants that matters. They want to keep their walled garden's walls air tight, and there are apparently enough people that are OK living in that garden that it works. I'm positive that they have done the calculus that they'll make more money in the long/short term by behaving this way. Google did a similar calculus, with a different set of values (if not an entirely different set of variables altogether) and came up with a different answer. Although it's interesting to see how their position has shifted over the years to be a bit more like Apple in some regards. Regardless, the point is they don't care what you want once they've gotten to the point of getting your money. Past that, they only care about maximizing their profit.
- judge2020 5y agoThere are many other devices locked down much more than iOS devices and this argument would apply to them as well. The only reason apple is the subject is because people want to take advantage of the massive, expensive engineering work that has happened over the past 15 years (in both hardware and software) without any of the limitations that go towards actually paying for that engineering effort (and enable many high-security use cases). If apple's product sucked and had horrible UX nobody would care.
- roofwellhams 5y agoYou already paying 1000usd for an iphone. How much more is it worth?
- deleted 5y ago[deleted]
- gjsman-1000 5y agoLike everything in technology, you have a choice. If you want openness at the expense of security and privacy, you can purchase an Android or Windows device. If you want security and privacy more than openness, you buy an iPhone. The Hacker News crowd is unique in that we want to have our cake and eat it too by making the iPhone work more like Android and expressing outrage that such a choice exists. So even though I wish iPhone would become more open, I find it strange that people are saying that we must break the iPhones App Store requirement to increase choice, even though that removes the choice to have a safer but locked down experience from the market.
- realusername 5y agoWhat if you got a used phone or tablet though? Are you just supposed to throw it away to the trash and get another one because the manufacturer doesn't approve you using it? And what about devices which aren't supported anymore?
- bombcar 5y ago
- api 5y ago> many of us don’t want our iPads or iPhones to be like our computers. This nails it. I want full control and the ability to run anything on my computer. I want my phone to "just work" and I never want to fuck with it or worry about what's on it. They are different devices with different roles. What I do wish for is open ARM hardware with similar performance. I am totally certain that it is coming now that Apple has demonstrated just what is possible. Ampere, Samsung, Marvell, etc. are surely working on high performance designs now if they weren't already. There is nothing magic about what Apple did with the M1. They built a really high performance ARM core by applying a lot of the same things that have been done for high performance in the X86 world but without the X86 dead elephant strapped to their back. The M1 can be duplicated if not exceeded.
- fartcannon 5y agoYou don't have to fuck around with it! You CAN just use it like a regular locked down device, and throw it into a landfill when youre done. The rest of us can get on with using the otherwise wasted power of all these tiny computers. Think of the waste caused by Apples profiteering.
- shsizbz 5y agoIm posting this comment on an iPhone SE (1st gen) I got in mid 2016. I still get OS updates, not just security patches. Whats that about Apple waste? Its people that waste and drive waste. Id love it if I could load my own OS and do whatever on this little phone, but only if iOS itself was still locked up. I dont need to add even more worry about the safety of my “phone” (really portfolio of everything Ive done since Ive been online)
- smichel17 5y agoMany years ago, Apple removed all apps for the 1st gen iPod touch from the app store, with no warning. I found out about this when I did a factory reset (ironically, this was to un-jailbreak my iPod touch, since the jailbreak slowed it down a little and I wasn't using any of its features). Imagine my surprise and frustration when all the apps I was using moments before - Spotify, Fruit Ninja, Opera Mini (the only browser that was acceptably fast on that device) - were suddenly gone with no recourse.. except to upgrade. Which I did -- away from an ecosystem where a company has that kind of control over me.
- tw04 5y ago>Now you can argue these restrictions are unreasonable but many of us don’t want our iPads or iPhones to be like our computers. It seems to me a rather simple fix: give users an "unrestricted mode" just like Android has the ability to install from third party. By default keep it locked down, but allow the USER to make that decision, with ample warnings all over the place about what they're about to do. Heck, for all I care make them go to an Apple store to have it "unlocked" so an employee can walk them through what it actually means and how dangerous it is so the average joe schmoe doesn't just click the button by accident.
- gjsman-1000 5y agoIf you do that, guess what Fortnite would do right now. Guess what Facebook would do to get around Apple’s privacy restrictions right now. Guess what a ex-boyfriend would do right now to install a blocked spying app. For better or worse, the App Store being the exclusive way into the iPhone forces third parties to deal. Otherwise, they just tell the user to make the choice for them. If you even listen to interviews with Apple engineers, it sounds like they are less afraid of willing and understanding people and locking their phones, as much as they are afraid of third parties essentially forcing their users to unlock their phone to install their products, and thus getting an unfair exemption from Apple’s protections while smaller companies probably wouldn’t have the clout to force users to do this, resulting in an uneven playing field. I do get the Apple Store one more, but as history has shown, people literally go to the Apple store to get iCloud theft locks removed by impersonating the owner and faking receipts.
- flutas 5y ago> Guess what Facebook would do to get around Apple’s privacy restrictions right now. You mean the privacy features built in to the OS?
- gjsman-1000 5y agoSome privacy features are in the OS, but others aren’t. For example, Facebook probably doesn’t like having users see the privacy label in the App Store. It’s kind of embarrassing. Also, if Facebook could sideload, they could use restricted APIs and entitlements that the App Store would not permit.
- Cthulhu_ 5y agoThat restriction is already circumvented with e.g. React Native though, or any kind of webview - companies can change their whole apps without a re-review. They MIGHT get called out for it if someone reports it, but in theory it's very possible.
- jolux 5y agoIt's not even a blanket ban on interpreted code, React Native depends on dynamically generating views using JavaScriptCore. Something like this is how Epic originally got around the payment restrictions. Presumably you're still allowed to use it to push updates, as long as you don't use it to circumvent the App Store rules.
- xxs 5y ago> Apple’s blanket ban on interpreted code is not arbitrary. Well, there is no ban on interpreted code but JIT -> just in time compilation, which in many cases produces high quality (gcc -o2) code.
- conradev 5y agoAnything a JIT can circumvent an interpreter can circumvent just fine (albeit slower)
- 8ytecoder 5y agoI agree. I prefer these restrictions exist but also a nontrivial way to bypass it.
- robenkleene 5y agoI'm not sure the reasons you listed, "X during the review process and then doing Y when in use or obfuscating their use of private APIs", are the best match for blocking all arbitrary code execution. E.g., there's no reason an app can't simply compile multiple use cases into a single binary to get past review (in fact, this happens all the time). And, it's way too broad to be about blocking access to private APIs, e.g., they're blocking all running of Ruby, Python, Node, etc... with this rule. I think the more specific match to what Apple is blocking with these rules is anything that resembles an App Store-like experience. Apple doesn't want anything that can download and run arbitrary apps, because that would dilute their platform control and other advantages. There's an excellent piece about why Apple is so afraid of this (https://stratechery.com/2013/why-doesnt-apple-enable-sustainable-businesses-on-the-app-store/ https://stratechery.com/2013/why-doesnt-apple-enable-sustain...). This motivation provides a more specific match to preventing arbitrary code execution: An App Store-like experience is almost impossible without downloading and executing code. It also matches the exception that Apple provides for "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" (https://developer.apple.com/app-store/review/guidelines/#2.5.2 https://developer.apple.com/app-store/review/guidelines/#2.5...). Furthermore, this perspective is support by other policies as well: 1. This is why Apple doesn't allow third-party web rendering engines on the App Store. A third-party web engine could also be used to create an App Store-like experience. 2. See 4.2.7 (https://developer.apple.com/app-store/review/guidelines/#4.2.7 https://developer.apple.com/app-store/review/guidelines/#4.2...), the rules around what remote desktop apps can do. These restrictions seem specifically written to prevent remote desktop features from being used to create an App Store-like experience. So, while I think rule 2.4.2 does help with the goals you listed, if it were just about those goals, these rules would be written differently (e.g., allowing downloading and executing scripting languages). And I think there's more evidence that rule 2.4.2 is more about preventing third-parties from providing App Store-like experiences.
- sillysaurusx 5y agoI'm surprised to see no one has pointed out you're mistaken. This hasn't been true in quite some time. You can run whatever code you want. Doesn't matter whether it has a JIT, or whether it loads all its code from a webserver dynamically, or anything else. The sole criteria is "thou shalt not circumvent the app store review process." That means, do not change the functionality after they've reviewed it.
- robenkleene 5y agoHere’s the relevant rule (https://developer.apple.com/app-store/review/guidelines/#2.5.2 https://developer.apple.com/app-store/review/guidelines/#2.5...): > Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. 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. I’d say the post you were replying to uses the wrong word (“interpreted”, I usually say it can't run "arbitrary" code), but the rule is more specific than your description as well.
- sillysaurusx 5y agoThere are many, many apps that ship bug fixes with no app store review process via React Native. It loads code from a server each time you run it. And to my knowledge, Apple never has a problem with that as long as the app doesn't change functionality. Any functional change must be reviewed; everything else is allowed. I agree with you that the rule sounds specific, and I'm not sure how to reconcile that with the fact that so many apps ship with hotpatching.
- robenkleene 5y agoMy understanding is that hot reloading via React Native is explicitly forbidden by the App Store rules (i.e., you're never supposed to download JavaScript and run it in JavaScriptCore). I think what you're describing is simply that the App Store rules are selectively enforced.
- Siira 5y agoOf course it's not arbitrary; It is a direct enforcer of their gatekeeping. Instead of bullshitting, they can just sell two kinds of devices, one with this restriction and one without. The market will show you how many people really want this. Heck, they could do annual voting for each year's new versions, if they can't bother to create two types of phones (which they obviously can). We have seen all the bullshit before in governments, and big tech is not that different. Big anything needs some kinds of democratic checks and balances to keep it from exploiting its users to the very end.
- captainmuon 5y agoMalicious apps can already do that. There is nothing (technically) that stops you from e.g. receiving a JSON file and enabling secret features. The ban on third party browsers and JIT is so that you cannot make fully-featured or competitive apps that don't go through the store. Microsoft tried something similar in Windows 8 (certain DirectX features only available for Metro apps, strict guidelines what a Metro browser can do, ...). This is the reason Safari on iOS is lacking certain features wrt. PWAs, and the reason Flash was banned outright (instead of saying e.g. it has to be made more reliable). If web apps were as powerful on iOS as they are on Chrome or ChromeOS, then many iOS apps including games would be written as web apps, and Apple would not get their 30% share. If someone would port a JVM or .NET CLR to iOS, then you could sideload those apps and circumvent the app store, too.
- fouric 5y agoSure, it's not arbitrary, but you didn't nail the actual reason: to make money. If Apple was actually concerned about circumventing the App Store review process for the purposes of security, they would implement OS-level sandboxing and security models (e.g. something capability-like) - this is both far more secure and allows for more freedom to make apps. But they don't, because it's not about security - it's about profit.
- povik 5y agoDon't they, really? I was under the impression that they do implement OS-level sandboxing and the ban on JIT/arbitrary execute is another level of security.
- m463 5y agoWhat good is the security model if every app has unfettered network access?
- dataangel 5y ago> It is there to prevent apps circumventing the review process and security model ie. apps pretending to do X during the review process and then doing Y when in use Doing this is still dead simple and in no way requires a JIT.
- rasz 5y agoyou mean like this https://www.theverge.com/2021/4/15/22386533/ios-app-scam-jungle-runner-magical-forest-apple-kosta https://www.theverge.com/2021/4/15/22386533/ios-app-scam-jun... ?