Does anybody care about Android 14?
This year’s release of the world’s most popular operating system feels like one of the smallest ever, bringing just a handful of new features. Even during the Android portion of Google’s big I/O keynote, Google spent most of its time showing off a new generative AI feature that creates wallpapers for you, as if there aren’t enough wallpapers in the world.
Last year’s Android 13 release felt small, but that was because it was the second major Android OS release that year. Android 12L—the big tablet and foldable release—came out earlier. What’s Android 14’s excuse? We’re not really sure. We still have a few things to go over, though, like new lock screen customizations, genuinely exciting changes to the way the back button works, and a pile of under-the-hood changes.
Android 14 is definitely the smallest version number update I remember from Android history. I’m not entirely sure why this wasn’t called Android 13.1.
Actually, that’s a good thing. Smartphones have reached finality, so Google might as well concentrate on bug fixes and general “invisible” work that will make the OS better.
The last moderately interesting innovation I’ve seen in the past 5 years was that iPhone feature that allows you to send an SOS signal via satellite and that’s it.
BTW the biggest change in Android 14 is a negative one: Android 14 blocks apk installs targeting lower than 6.0 Marshmallow (unless you use the adb and pass a special flag). A warning would be much less invasive. So, I guess smartphones haven’t reached finality, they are gradually getting worse. I wonder how this change affects purchased abandonware titles such as Need For Speed: Hot Pursuit for Android (excellent game btw, and not a microtransaction in sight). Some of us have such games in our account from the era before microtransactions ruined mobile gaming.
Yes, I’m getting sick of new Android versions making changes that break existing software because they want to redesign the way it works. They should have spent some more time and effort at the start so it doesn’t need redesigning of eg. how app permissions work with each new version.
kurkosdr,
Applications including termux are already banned from the play store.
https://wiki.termux.com/wiki/FAQ
It can still be sideloaded today, but assuming google keeps updating the minimum API level for android (currently API level 24), it will no longer be possible to use android to run normal linux software without some kind of jail breaking.
https://bayton.org/android/android-14-minimum-sdk/
I’m not against having secure defaults, but I think that owners should have the final say, not google. This is just making android worse for open computing. According to this table, we’re looking at about a seven year support window for API levels, which would phase out level 28 by 2026.
https://apilevels.com/
Texmux was controversial from day 1 because it downloads executable dependencies in a way that bypasses the Play Store. Generally, App Stores dislike apps that download other apps or executable dependencies from outside the app store, both because they can be used to distribute other app stores from within the app store and for security reasons. Texmux is a special case got caught in the middle.
Also, Google can ban anything they want from their app store (it’s their app store and you can download an alternative one such as F-droid if it doesn’t fit your needs), the problem is with Google 1) banning APKs from installation on my phone and 2) revoking access from software I’ve paid for in the past (they are already kind of doing that by not allowing apps marked as “incompatible” to be downloaded on newer devices). And those last two bits is Google abusing their power.
Please don’t recommend jailbreaking/rooting for things that can be done with adb. I’ve seen jailbreaking/rooting being recommended for all kinds of stuff that can be done with adb (for example enabling hidden locales which can be done with a Play Store app and an adb command). Jailbreaking/rooting is a fairly invasive process for most phones and can brick your phone even if you do everything right (for example if your phone has a newer bootloader version or whatever). I am not excusing Google for forcing us to go through adb to install old apps, I am just saying that don’t use jailbreaking/rooting unless you have no other choice.
kurkosdr,
You may be right, but as a fundamental property of open computing it really shouldn’t be controversial. It’s really unfortunate that tech companies are turning against open computing. 🙁
That may be your ideal, but for better or worse the need to jailbreak and root are sometimes unavoidable if you want to restore locked functionality. Google’s changes are breaking posix compliance. I’m not sure if an adb workaround exists that could be used by termux without root? Let me know if you think so.
I think apps like termux may be one of those cases. This post talks about issuing adb commands from userspace processes. However things are restricted and permission denied errors until you switch to root. IMHO this makes sense, but it means adb may not a viable solution when apps need functionality that google has broken.
https://stackoverflow.com/questions/13381828/is-it-possible-to-execute-adb-commands-through-my-android-app
To be clear, I agree you shouldn’t need a jailbreak/root to run a posix shell environment, but thanks to google’s restrictions theoretically it could become the only way to do it in the future, much like IOS.
App Stores as a concept is at odds with open computing. The more you allow apps to fetch other apps executable dependencies from outside the app store, the less value your app store delivers (both commercially and from a security point of view).
The solution to this is sideloading, so open computing is preserved. Of course, that’s also why sideloading is been targeted by pretty much every major OS vendor. Let’s hope the EU sorts out this mess, I guess?
Android is not POSIX and has no desire being POSIX. If it is somewhat like POSIX, it’s an accident of history (aka Google got themselves a OS stack for free).
Don’t know, but the termux people appear to solve the issue by targeting old API versions.
See? That’s the fundamental misunderstanding here: Android is not POSIX. Android works by taking a standalone package (an APK) and running it inside a sandboxed environment (with the environment defined by the API version), and you build your app according to the restrictions of said sandboxed environment. In that sense, Android is closer to the Xbox One’s developer mode than Desktop Linux or even Windows. But the Linux kernel underpinnings will attract Desktop Linux people who try to use it as Desktop Linux, hence their eternal quest for root. So, I guess if you want to use Android as Desktop Linux, you need root, if you want to use it to run sandboxed apps as it was intended to, you don’t.
BTW this is why I don’t like how Google forces me to go through ADB to install old APKs. Those apps conform to the sandbox environment (API level) that was provided to them and hence use Android as intended, but now we have to jump through ADB hoops. Google breaking their own promises again.
fetch other apps executable dependencies = fetch other apps or executable dependencies (sorry)
kurkosdr,
How did companies manage to pervert the concept of ownership to such a degree? Manufacturers can make whatever recommendations and defaults they want, but once a device is paid off the owner should get the keys and be allowed to do whatever the hell they want with their property!
Sideloading should be a given. Unfortunately legislation hasn’t done enough to protect ownership rights. Here in the US, the lobbyists write the laws, but lobbyists are paid for by big business, so the laws are mostly written for business interests while consumers get shafted 🙁
Notoriously, the US congress is the least productive it’s ever been. I don’t like relying on the EU to fix things in our back yard (I’m not sure where you are from), but I think you’re right the EU is probably the only major jurisdiction that we might expect to make any progress on correcting the imbalance of power right now.
It was possible to run posix compliant software on android because of the linux kernel along with appropriate userspace software. You could literally configure && make software on android and it worked! But google’s API restrictions threaten to make this impossible going forward.
Yes, the older API versions provided the necessary functionality, but when the old API levels are blocked, in the same way you lament the loss of “Need For Speed”, we could end up loosing the ability to use termux to create a POSIX environment on android. Although this is niche, it’s still a damn shame that google is taking these things away from owners.
See what? It’s a completely artificial restriction and I see it for what it is.
That’s not exactly true though. Like I said I don’t want to need root to perform user tasks. But if google makes it impossible to avoid their restrictions that’s a problem of their own creation, not one that was ever inherent to android.
Tech illiteracy, that’s how. It’s why iOS has so much market share despite being so much locked down to the point it gives the App Store an unfair monopoly (aka “gatekeeping” in EU lingo). It’s also why OSes are slowly getting UIs that resemble toyboxes: increased tech literacy is bad for business.
That said, personally, I like the idea of apps being well-contained and not having root so easily (aka not having ability to modify other apps or mess system settings without going through the relevant APIs so easily), but I would prefer Android had a developer mode that bypasses it that you could enable with adb (not via the phone, which would encourage devs to ask for root willy-nilly like they do on Windows or Desktop Linux where seemigly every app asks for admin/root to install). So, I don’t like total openness à la Desktop Linux either, because I’ve seen the risks it causes, even for advanced users (if your jobs requires you run a software that requires UAC/sudo, you have no option as an advanced user but to give it UAC/sudo)
Your best hope as an American is that some state like California copies the EU laws.
So far, you can still install any old apk via adb. The problem with Need For Speed its that it’s a purchased app you can only install from the Play Store, so if the Play Store doesn’t give you an install option, you can’t have it. Aka it’s two different problems: One is with Android introducing hoops to install valid apks just because those apks use old APIs, the other is with Google abusing their service provider status when running their Play Store service.
If I am honest, screw the POSIX model where everything is potentially executable (and executable code can reside everywhere on the harddrive, even the home dir) and where you can have multiple package managers conflicting with each other. I prefer the Android model where only one directory can contain executable code and only one package manager can write to that directory. This does not mean I agree with Google for not giving us root as a developer mode (reasonably well-hidden and sufficiently inconvenient from casual users) or the way they run their Play Store service.
BTW since the termux people don’t need root, they could ship a “baseline” version that has the basic dependencies bundled in and the rest grouped in additional apks. MX Player Pro did something similar in the past, where they would ship the main app as an apk and then they would ship an additional apk with codecs for phones that don’t have NEON instructions. I know because I had to install that extra apk on my LG Optimus 2x because it doesn’t have NEON instructions (https://play.google.com/store/apps/details?id=com.mxtech.ffmpeg.v7_vfpv3d16&hl=en&gl=US). But nope, “we want to use our package manager in an OS it doesn’t belong in (Android)”. Nope, screw those people, if they can do it, then some sleazy app developer can do it too (for example, drop executable code on the home dir which will act as a landmine for any other non-malicious another app that also executes code from the home dir for laziness reasons, aka one of the things I hate in Desktop Linux and Windows).
PS: BTW by “home dir” in Android I mean /storage/emulated/0/
kurkosdr,
I agree that ideally we shouldn’t need root often. I’d even agree that it’s needed too often on desktop linux too. But it’s on this very point that we should be in agreement that android’s functional regressions that make root more necessary than before are bad.
Unfortunately adb by itself still can’t fix API regressions without root.
Indeed both of these as anti-user and anti-open computing.
I wouldn’t care so much about how apple/google want to run their stores to the extent that we get a choice of stores. Even banning software wouldn’t affect me because I can go to other stores. But if we get stuck with “One package manager” with exclusive control, then owner rights become significantly worse. Ultimately I strongly feel that owners should be allowed to decide the policies for their own devices without being subjected to the whims of corporate overlords.
It works for the time being, but assuming that google keeps advancing API level requirements on future devices, it will no longer work. The ball is in google’s court. If they decide to close up android more akin to IOS, this would be extremely bad for proponents of open computing. It’s already bad enough we’re suffering from a stiff mobile duopoly, but if android closes up too much, we could end up being forced to choose between dictators that are behaving the same way.
Then don’t use the new API versions, I guess. The only problem here is Google being jerks and forcing users to go through adb hoops to install perfectly valid APKs that utilize those old API versions.
You seem to have confused the “one app store” approach (iOS) with the “multiple app stores and sideloading, but one package manager” approach (Android). I actually like Android’s approach. It means you don’t have multiple conflicting package managers (such as deb vs pip) and in addition, you don’t have apps dropping executable files in the home directory (or even system directories) in a way that cannot be removed by the default package manager. In other words, in Android, you have to go through Android’s package manager to install a given executable file, no matter what. This allows the user to have managed apps. Like, actually managed apps, absolutely zero executable files left behind after the user uninstalls the app from Settings –> Apps. On Desktop Linux, there is no guarantee the package manager will remove all executable files once a deb package has been uninstalled, because you can always use post-install scriptlets to install invisible (to the package manager) executable files as root at install time and you can also drop executable files in the home directory at any time. Then those executable files become a permanent landmine for things like file managers (if the app is malicious), not to mention they can replace good executable files that some non-malicious app has dropped previously. DO NOT WANT! In other words, Android was built for people like me who want their applications to be managed (for real), not for you who want the POSIX. I don’t give a crap about POSIX compatibility.
This is why I can’t shed a tear for termux: It was doing things the wrong way in the first place (they should stop being lazy and package their dependencies as APKs like the MX Player people did), the fact an API version exists that allows them to do what they do is technical debt that Google can’t get rid off for compatibility reasons.
But old games like Need For Speed: Hot Pursuit were doing things right (the API versions Google asks for didn’t even exist back then), but Google will probably flag them as “incompatible with your device” in the Play Store for every device running Android 14+ simply because they are jerks. Once Play Services stops supporting Android 13 and below (which will make installing purchased DRMed apps from Play Store impossible on Android 13 and below), I will have lost my purchase on all my devices, despite the purchased app doing nothing wrong.
BTW to make my point clear:
Suppose you have set up your termux exactly as you want it (aka with a fair amount of executable dependencies installed in the home directory). Now suppose I create an app called CoolPlatformGame that saves screenshots or cached video ads to the home directory (as some popular games do). How do you know I am not also secretly corrupting the termux dependencies you have in the home directory? They are files like any other from the perspective of my app. How would you know if I did corrupt them? Do you see the problem here? Android apps aren’t meant to corrupt the executables of other apps. That’s one of the fundamental principles of Android.
Google should have treated what termux is doing as a security vulnerability and break the app. Instead, they are collectively punishing all the APKs that use the same API version or below, and still allow the termux security vulnerability to exist.
The one area where I’d liek to see Android improve is usage as a desktop, like DeX from Samsung. And Google freeing the video out on the Pixels.
benoitb,
Yes, this! For the time being I have an older unaffected phone, but my wife needed this just the other day and once again the fact that google removed HDMI output caused problems. They sell more chromecasts this way, but ugh it’s so stupid that google instructs engineers to break features that are technically supported by the chips. I feel this belongs under the “defective by design” umbrella.
https://www.defectivebydesign.org/
We probably won’t see this feature in google phones again. Maybe a friendly google engineer could sneak it back in without telling google…probably a fireable offense though, haha.
Google wants desktop/laptop users to use ChromeOS instead.