AltStore: An alternative app store for non-jailbroken iOS devices
github.com
github.com
Apple's insistence on refusing users control of their devices is why I switched to Android for my phone years ago (though I will be overjoyed once GNU/Linux on phones reaches enough maturity to replace Android for me as well, though I sadly don't see that happening very soon).
This is truly a shame - I am not part of the extreme FOSS crowd who would only ever be satisfied with a top-to-bottom free device, and in fact I would happily use an iPhone if iOS was even just as "open" as macOS.
I know that this sentiment is going to resonate here, but I'm not sure it's representative of the overwhelming majority of the people actually paying for said hardware. The reality is that what tech people complain about in terms of lack of control over their devices has been a huge boon in device security for people who neither care about nor want such control.
Heck, I’ll just speak for myself. I’m a software engineer. I pride myself on being able pull things apart, understand how they work, and put their pieces together in unintended ways. There are aspects of Apple’s control over their devices that I’ve accepted grudgingly... because even being familiar with the tradeoffs they’ve largely benefited me, and all that I’ve given up has been either moot (UI hacks that are better served with other apps or just not available anywhere anymore) or not a hindrance for my actual usage (it turns out blocking system modification has made clever things I use be more respectful of the integrity of my system!). The biggest thing I’ve lost as an Apple customer has been due to third party developers turning my whole computer into a web browser. Glad it isn’t full of security holes!
Forget iPad replacing macOS, at this point I’m fascinated by the idea that an iPhone Pro might actually run macOS-like in the future for developers. It’s been a decade since the first jailbreaks were commonly available and we could run shells and other background apps—at the expense of battery life. Apple has built everything they need to keep things safe even if they open the sandbox... they could treat it like location permissions and continuously prompt, allow only some apps, spy or sandbox what function calls apps can make by default, etc. Yes, it could be abused, but they could cloud-scan files before running, or even require signing and submission. I know folks will keep pushing for fewer restrictions, and I know the business reasons that keep Apple from doing this. But this use case won’t ever actually go away...
OP is just saying that deciding to do that has a usability and security cost that some users will perceive as a net negative.
I know it’s a toggle, but as soon as that toggle exists app developers will use it to provide unsigned copies of fortnite to the kids, it won’t just be for pro users.
This is the point of contention here, imo. Jailbreaking, sideloading, and turning on developer modes are not always informed decisions. I've personally serviced hundreds of iPhones that have had all these things done because someone followed a set of instructions without knowing what they were doing or had someone else turn the option on without informing them and then they were exposed.
When I was younger, I preferred a Windows to a Mac as I liked to customize everything and make it look fun and cool and unique, and to be able to use many niche programs that only existed for Windows. I preferred Android to iOS for the same reason.
Now that I'm working most of the time, however, I just want something that works. I don't care about customizing all that much; I'll leave it to the (mostly) great designers Apple pays. I really value being less concerned about the legitimacy of things I download or view, knowing that Apple's choices to make a walled garden have protected me further.
Beyond myself, though, I'm immensely happy that my older, less tech-savvy parents have iPhones, and I bought my mother a MacBook which she has loved compared to her old desktop. All she wants to do are common tasks on it, and to accomplish them simply and quickly and without worrying about viruses.
I empathize with the jailbreaking community and honestly love how responsive you all are, and how you really make an effort to build things that bring people joy. I think there's millions of people in the world that prefer to have jailbroken phones and more customization and freedom, but there's also millions who prioritize as I do. There's a pro and con to every choice.
There are security implications of such freedoms which should be avoided of course for the regular users. The phones should be locked down as much as possible. But that doesn't have to be the only option.
This is way GrapheneOS [1] exploits Android flexibility and customization to try to improve fundamental OS security to the most modern standards and attempts to break the closesed walls of Google WHILE still shipping a fully locked down phone at the bootloader and OS levels [2].
The ideal world is Apple and Android does their normal security lockdowns for standard endusers for security's sake. Then they offer a separate hackable version where research and those crazy UI/UX hobbyists can do their thing.
In all technical senses this is entirely possible for a vendor to do. So it becomes a product question. And I'm convinced they will get ancillary benefits from the hackers doing expimentation in both security and UIs and whatever,\ from which to draw inspiration for their IRL produdcts. And possibly just as important - talent (developers, developers, ...) there are people who care about this stuff who just want to hack on their devices. These can be talented individuals and who knows some future leader within Google et al, the way the Napster guys are SV celebrities now.
I'm convinced there's enough ROI (yes commercially) for every OS platform to support this niche. They shouldn't be relegated to the ruffians and pirates on the fringes using risky circumvention techniques to achieve their goals.
I'm not sure that this works, because you can't draw the line so easily.
If there was an easily obtained unlocked device, more people would choose it than currently jailbreak. More people would make improvements and share them. The ecosystem would improve. There would be more things you can only do with an unlocked device. Which would attract more people, and polynomially more developers to the growing market. You get a feedback loop that ends with everybody buying the open devices.
The only way you get a walled garden is by successfully suppressing open alternatives, because otherwise the benefits of openness outweigh the costs and people start to move. AOL loses to the web. Proprietary Unix loses to GNU/Linux. Windows RT loses to actual Windows.
You can't get everybody to choose something where the only difference is that it prevents them from doing something they want to do. They only choose that if the choice is bound up in several other things they want and they're really choosing the other things.
But the underlying question here is not actually whether to have curation or not. Linux package managers are curated. If you create an environment in which all the good things are in the store and none of the bad things are, ordinary people have no reason to install anything from outside the store, and can then be trained to look with suspicion at anything that isn't, even if it's still technically possible.
The problem we have right now is that the assumption is false. The platform stores reject things the user actually wants, or would drive them out with high fees if there was some viable alternative installation method available. Which then drives users to uncurated installation methods, if they exist, which the platforms consequently then try to stamp out.
The better solution is to have first class competing stores. The competition solves the problem. Stores that charge excessive fees lose developers to ones that don't. Stores that reject good apps or allow bad apps lose users to ones that don't. You end up with a couple of stores that have low fees and high quality apps, giving people no incentive to leave the garden even if there is no lock on the gate.
But you have to leave the gate unlocked or the user's ability to leave doesn't cause the garden to improve to the point that the user has no desire to exercise that ability.
I don't believe that typical end users are knowledgable enough about computers to know that they can or should ask for this in the first place.
Anecdotal example: My computer illiterate mother wants to download some random unscrupulous DMG onto her Mac, claiming to be a file conversion app. I catch her in the act, and tell her no, don't do download that.
Now did my mother ever ask to be prevented from doing this? No. Does she even understand why me preventing her from doing this was a good thing? No. But was it in her best interests overall? Yes. I view the gatekeeping functionality of iOS as largely replicating my role in this scenario.
100x this - and Hacker News is really guilty of doing this.
How about we focus on making understanding the risks more accessible to users if we think there's a legitimate problem with users "not knowing what's good for them"?
Is requiring certified electrical wiring that much different from a “walled garden”? Some people tinker at the edges of their home setup, but you’d probably be pretty worried if you found out your average neighbor had rewired their whole house on their own following some lifehack they found online. Computers are connected in a different way than neighboring houses, but it doesn’t mean you aren’t affected by the decisions of your digitally-close acquaintances (from worms and botnets down to simple email/contact harvesting).
That’s not to say the world hasn’t benefitted greatly from software choosing velocity over robustness; other technologies have followed similar early arcs, causing damage before they matured. Maybe we’re at the point where limiting choice is simply one of our least-bad strategies for most people? For what it’s worth, I am pretty confident that the vast majority of people want computing appliances and not tools (why would computers be any different from any other consumer good?), so I find it highly unlikely that the pro-tinkering arguments apply outside of a tiny proportion of users. I definitely don’t mean to imply that this is the only way, but it seems like there’s already a spectrum of choices for consumers and sometimes it feels like we’re arguing to narrow the less “open” end of that spectrum because we’re projecting ourselves onto the whole population.
Yes it is very different, because those certifications are limited to basic safety whereas Apple's restrictions are a wild mix of security protections, paternalism (e.g the porn ban), protecting their business model, and staying in the good graces of authoritarian regimes.
If Apple really cares about security they should not blur the lines between security and unrelated issues.
>I am not sure if I've ever heard an "end user" ask to be prevented from doing something they actually wanted to do
...until what they wanted to do exposed them to malware or an app that they didn't know how to use or put them in a situation where their phone was randomly restarting the springboard over and over.
Of course no one would ever ask to be prevented from doing what they want to do but most people using these devices don't know exactly what "what they want to do" entails and the consequences of that. It's the same thing as Internet Explorer and all those toolbars that it's now known for in meme history. Of course people would want a toolbar that lets them automatically search for coupons or whatever it is they want to be notified of. Do they know that the same toolbar is also injecting ads or collecting data and keystrokes? Probably not.
I agree with your sentiment 100% (and my issues may be addressed in your TED talk which I'm going to watch right now) but there needs to be some way to acknowledge what the consequences of those actions are and, for me, I think a technical barrier or entry is the only realistic way to do that. Anything simpler will be taken advantage of.
- casual users do care about this stuff - just the other day for example my wife wanted to play some GBA game from her childhood - you can get that on play store easily, and even if you couldn't it's on other stores and in OSS. That's just not an option on iOS unless you're a technical user. Or more broadly recent Epic and Fortnite situation. Plenty of scenarios where Apple will decide what you can or cannot get and it won't work for everyone - you don't need to be a power user to be excluded
Apple has best products, HW and software wise, and they are milking that advantage as much as they can - not necessarily judging them but this arguing that it's in user interest is ridiculous, they are optimising for number of users affected vs profit they can extract - for example they had to buckle with big players like Amazon and Netflix because that would alienate too many users, but they will enforce their grip on the ecosystem if that means limiting a small number of users - and that has nothing to do with security.
A good compromise here would be an ability to enable developer mode, perhaps with some quiz or test that checks if you have the right skills to handle such a responsibility.
If you "sell" the idea of an alternative store as being able to pay less - then everyone* will jump on board.
*nearly everyone, there are contrarians and those who want to pay more just to show they can
Then, on the other hand, when the majority of people see their favorite app, album, book, movie, show disappear from their because the 'big company' decided they can't have it anymore, they do get upset, they just don't know what happened or why or what they can do to help it.
Android is a weird middleground; it's both too walled off and too open; you can get yourself pwned (without rooting) while you still don't have enough freedom to do whatever you want (without rooting). I like it's more open but then I prefer a laptop with full blown Linux (which is what I use most).
We cannot make an assumption that users don't care about X when they are not allowed to do X in the first place.
I like Apple's walled garden. I'm a developer for 20 years professionally and 10 more as a hobby. Writing this on a MacBook Pro, with an Apple Watch on my wrist and my iPhone next to me (I left the iPad at home).
I care that Apple's has this control over their ecosystem that I feel 100% confident on leaving my iPhone or iPad with my kid and know he won't follow some weird website instructions and brick/compromise it for example.
Right up until they’re locked out. It’s like not caring about privacy.
(I don’t mean to imply that one choice is necessarily more valuable than the other, just that they both exist.)
In fact, at this point I strongly dislike MacOS for how poorly it manages resources and security- even tho it does an outstanding job for a desktop app.
There’s a reason Apple tops satisfaction scores.
So while I see the above sentiment on HN frequently, the perspective lacks an understanding of the enormous benefits of Apple’s restrictions.
https://www.macrumors.com/2020/05/19/apple-smartphone-custom...
Honestly the apple app store has been hot garbage since it took off. I remember when it crossed 100,000 apps. And discoverability really didn't happen and really it hasn't improved. It's a shame, really. All the developers just had to put up with what they got - which was mostly luck based.
So what you've gotten is an app store with compliant developers mostly afraid of pissing off apple.
What you don't have is competition and all the benefits it brings both developers and consumers.
Maybe look at it this way - apple makes hardware and apart from the confusion of charging 30% they really want the price of software to be zero so phone sales stay high.
the complement of hardware is software: https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/
It’s nice to have security features until you can’t turn them off any more.
When I buy a phone, I actually want to buy it and not just rent and have someone else setting the rules for me.
The iPhone is not the only phone on the market.
Honestly, I don't even know how that would be an argument for locking you into an ecosystem. It's not like text messages are an ancient technology that modern iPhones will not support.
https://www.androidauthority.com/green-bubble-phenomenon-102...
I know multiple people who refuse to communicate unless it's on an app like Signal or Telegram, but I don't know anyone over the age of 17 who cares that my bubbles are green instead of blue. And even if I did happen to know people like that, I still don't see "well some people will find literally any excuse to be exclusionary" as a good argument for iMessage locking users into their ecosystem.
But actually I am with you on this - we should have the right to install any OS we like.
But shouldn’t have the right to force others to build it for us.
Even if you choose to run flaky code, there are very little security benefits and no stability implications from restricting an app to run for only 7 days. The 7 day rule is obviously meant to interfere with homebrewing and make hobby developers with no App store aspirations pay $99.
Sorry to be so patronising, but your perspective obviously lacks understanding. The vast majority of iOS users never even tried making something themselves, they just want to be safe while looking up the solution. That's okay, but off-topic.
How does restricting app installs to one store provide extra security, safety, and stability?
Surely the OS will enforce the same security (e.g. sandbox) on apps regardless of provenance.
Oh don't worry they are diligently working on this... from the macos side. It's getting more locked down like iOS with every release.
Do you think anyone is going to read your snarky response to someone who was making a reasonable point and think "this seems like someone who wants to have a conversation"?
Well then I have a great solution that helps both these users, and others who want to control their own device!
There could be a simple, easy to switch setting that says "all uncurated apps". A jailbreak switch, if you will.
And the consumers who want to turn that on could do it, and the people who prefer "Apple's vision" can choose not to do so.
Everyone wins!
Just don't flip the jailbreak switch if you prefer "apples vision". Easy.
The Developer Edition requires you to register for a now-free developer account. There's big friendly letters that say, "Welcome, developer! We know that you'll enjoy getting the most of your hardware and not clogging up our forums and support lines with complaints about things that are broken due to the unreviewed apps, because you're a developer, and you know how to fix things when they break. Here's your unwalled garden. Enjoy."
Then there can be that Dev Store where Advanced stuff goes, and if there's ever any hacks / vulnerabilities / bad stuff Apple can point to the Dev Edition and say "That's what they signed up for, but for normal folks the walled garden awaits."
iPhone Developer Edition and iPhone Customer Editions are identical in hardware. You can buy a Customer Edition and convert it to a Developer Edition phone by simply registering as a developer and signing away your right to bitch and moan if apps contain spam, porn, scams, or brick your device. iPhone Developer Edition can be turned back into a Customer edition through a setting, all ready to be sold.
Also, using your argument, why is there no strict walled garden for macs?
I wouldn't call them outlandish. I think there's merit in the ability to install whatever software you want. But I also think there's merit in making sure there's a robust, unfragmented market of apps that work with the last 6 years of iPhones, and restrictions that Apple has in place ensure that.
I think the Dev Store is a reasonable compromise to ensure that average users don't have to run AVG AntiVirus on their phones. That situation is absurdly anti-user.
>why is there no strict walled garden for Macs?
There is, and it's annoying: GateKeeper, which if I recall correctly requires you to basically outsmart your OS to install software using the GUI.
This is why I'm happy the iPad Pro is getting more desktop-like, hopefully bridging the gap between people who want a laptop to do weird stuff and people who want a device that will work no matter what you do to it.
This feels a little overstated to me; the first time I run a GUI app that was downloaded from somewhere other than the App Store, I get asked "this was downloaded from foobar.com, are you sure you want to run it?" and click "Yes". I definitely wouldn't call that a "strict walled garden" comparable to the iOS App Store; if anything, I wish Gatekeeper existed on iOS the way it does on the Mac. (A few years ago I was half-expecting that to happen, as naive as it might sound: it seemed like it was a great solution to allowing sideloading while still letting Apple maintain some level of control, but it's become clear Apple still looks at iOS devices as more like game consoles than general purpose computers. It's possible it might yet happen to stave off antitrust concerns, I suppose.)
I'm all for installing whatever software you want on the hardware you paid for but there is definitely a balance that needs to be struck for the majority of users and I can tell you that the majority of users aren't informed enough to know the drawbacks of an alternate App Store.
Source: I was an early jailbreaker and remember when, as soon as the jailbreak became an app that you just installed and ran with the phone hooked up to a computer, my business exponentially increased. People would jailbreak phones for their friends and families without explaining anything and then I'd have to service their devices to un-brick them and get them back to stock.
Plenty other areas I’d like to see Apple’s control weakened where it impacts the user experience, but running arbitrary code on iOS devices isn’t one of them, for me.
You do realize that Android does run the Linux kernel, and generally has GNU coreutils available, right?
Also, Android devices have outdated Linux kernels are are only updated once or twice before EOL.
And it'd be trivial to compile the latest kernel and load it on your device. Someone who really cares and needs features or fixes from a newer kernel could do it if they wanted.
I even saw recently someone was running openmw (morrowind) on the Librem 5. Stuff doesn't have to be ported to Android this way. There are so many more exciting possibilities.
They've got support similar to a Raspberry Pi or other SBC out of the gate in addition to being a phone. It's like a real computer.
It strikes me as simple impatience to want Android on one of these phones. By taking the time to make a better base to build on, we can be free of the current ecosystem and its problems, it may just take a bit longer, or maybe not every average Joe will want to be a part of it, but the end result should be much better.
If you really do want an aosp base, though, there's glodroid[0], which supports the PinePhone. I haven't seen any reviews or tried it myself, though.
note: I do not own a Librem 5 or any other Purism product, nor do I plan to get one in the near future, but I have a PinePhone and I'm very on-board with the direction things are going.
It's all about money. Everything else is just an excuse.
Google lets banks remotely disable phones [0]
Google lets apps prevent users from taking screenshots [1]
How's the permissions situations on Android? Is it still all-or-none?
Any app can access the clipboard at any time. There are many permissions that are not controllable by an end user. A combination of gyroscope and microphone data can be used to "keylog" everything one is typing.
Any app also has access to a lot of information that is not covered by the permission system, such as Android ID, IMEI, SSID, etc.
I think this is simple yet genius. I wonder if it works on AppleTV as well?
Why do you need my Apple ID?
Apple allows anyone with an Apple ID to install apps they’ve built themselves onto their devices for testing. AltStore uses your Apple ID to communicate with Apple's servers on your behalf and perform the necessary steps to prepare your account for installing apps onto your device.
Why does it say my apps will expire in 7 days?
Unfortunately, apps that have been installed using non-developer Apple IDs (in other words, Apple IDs not tied to a $99/year Apple developer account) are only valid for 7 days, at which point they will no longer open. To compensate for this, AltStore will periodically attempt to refresh your apps in the background, and you can always manually refresh your apps from within AltStore.
Don't expect it to last. Apple has "control issues," and I can't see them letting this fly too long.
It's very, very clever.
I think the developer is wasting his time, but it's his call. Maybe he's doing it for learning and exposure, but it seems like there must be more valuable and durable projects that would scratch that itch.
Why are people still putting up with Apple? People who can figure out such tricks are smart. Why are they still customer to a company that has shown to be hostile to the freedom they want to assert? GNU/Linux is getting better by the day.
The freedom some developers want isn’t something the majority of users want.
Personally, I haven’t been significantly limited by Apple’s rules. I like that Apple controls the billing, so I don’t have to deal with credit cards being stolen or companies making unsubscribing difficult. I like that they at least have some review process and will pull bad apps.
I like that I can go to my local Apple store for support. Google? They are possibly the most user hostile company I know.
I like that someone actually gives a damn about privacy and security when online services are getting hacked left and right.
Apple is far from perfect but they will fight a big companies and governments for violating their rules or endangering user privacy. They’ve told publicly EA, Facebook, and the US government to pound sand. (China is a no-win situation, Apple decided to play ball to keep that market.)
So yes, I’ll happily trade some freedom for safety and security.
For the low hanging fruit: font rendering on macOS/iOS looks better than any type I’ve ever seen on any other OS or platform, right out of the box, and still looks better even when those other platforms are tweaked with additional fonts and rendering settings.
I’m dreading my impending switch to Android and/or a mobile Linux next summer for this reason.
As someone who works all day, every day with text on my screen, I care about this as much as I care about my bed, chair, or keyboard.
No question that it is, but it still has far enough to go that it's an acquired taste at best. Switching platforms also means switching apps in many use cases. Combine those two and it becomes easy to see why individuals who aren't compelled by the ideology behind GNU/Linux might not see it as a particularly appealing option.
It’s like installing doom on a pacemaker. No one really wants to do that, but if it’s possible, someone will find a way.
So, it will be interesting to see if they do.
[0] https://news.ycombinator.com/item?id=25028252
[1] iSH Discord server
Pretty bulletproof and automated.
[0]: https://github.com/myspaghetti/macos-virtualbox/blob/master/...
AltStore is based on the signing code I developed and also used in my Cydia Impactor (which lets you install apps over USB); I actually did develop another tool called Cydia Extender, which would run on your phone, but I dropped the effort when I couldn't get stuff to install on the phone (the technique I came up with relied on an entitlement that was only able to be installed by users with developer accounts; I even somehow failed to notice this until after I released it, which was awkward: I still can't believe I messed up my testing that badly). (Actually... maybe I have a way to pull this off now? It is a long shot, and somewhat risky ;P.)
And while not very likely as it will be hard to differentiate a real developer from this, Apple could still revoke Apple IDs or developer accounts whenever they want.
edit: also no way to have updates suggestion? (an app can be updated, but the AltStore app can't know which app is installed or which version?)
AltStore does send regular notifications reminding you if the certificate is about to expire, so that shouldn’t be a problem.
I have been using this since it was launched on a free developer account. Prior to this I used the same account with Cydia Impactor too. I personally never got revoked
I don’t understand your last point, the AltStore app can be updated through the app itself. Also, there was a feature preview for Patreon subscribers which allowed the user to add repositories to the AltStore app. I haven’t tested this feature but I believe it would be able to tell when an update has come for the apps.
With the extension (may be native by now, idk) You can install pretty much any app as long as you can obtain an ipa. They're not too hard to obtain from 3rd party sites. Also easy to pirate paid apps this way
It's almost as if we could be living in near paradise if we switch-a-roo-ed existing people in power for the robin hoods who do this kind of thankless work.
It makes me think of the people who rip movies and post them online, at the risk of getting caught and suffering who knows what sorts of consequences. What motivates this entire underground network of people who do this? I feel like this should be studied or something - it strikes me as a separate set of morals that these people hold that aren't spelled out anywhere (or are they?) and no matter the number of times the powers that be try to squash them, they seem to pop right back up in one form or another.
A leaderless resistance to power hungry assholes or something, so cool :)
(And deserves double that, of course.)
But it's certainly true that money in OSS is in marketing, not the software.
There are more (some are jailbreak tweaks) discussed here:
https://reddit.com/r/jailbreak/comments/jol3vk/question_what...
The amounts of ads are getting quite ridiculous, frankly.
Just like no-one writes an appstore for the computer in the microwave oven, that has a fixed and very limited fixed set of "apps", it similarly makes no sense to create an alternative appstore for a locked platform.
The app store has almost everything I want but its missing stuff I used to sideload on android like an ad free youtube app and the app to send the payload to boot my nintendo switch with homebrew.
I'm generally more of a computer user than a 'mobile/phone' one, not spending any time scrolling in social media apps. Perhaps I could live with the sub-par experience of an open/free phone. Good phone and plain text messaging features with a great web browser might get most of the way there. I realized that I only needed apps for work (2FA), Slack/PagerDuty and Spotify--and now working from home don't even need Spotify. Carrying a small old iPhone (or iPod Touch) seems acceptable for a few apps Uber/Lyft, etc. I used to carry an iPod Touch along with my phone and using it felt so great--to have the rest of the world in my pocket rather than a tap away.