I think the real problem is Google Play Services. It's far, far too tightly integrated in a way that it just seems like Android was designed to be unusable without. It's installed as a location manager internally, which gives it a shitload of permissions by default that you never grant it. There's absolutely no reason everything (notifications, the app store, some location services) has to be packaged together into one thing instead of each having its own module that can be removed at will. Play integrity just plain shouldn't exist and as far as I'm concerned is purely there to ensure no one creates a real play services alternative or another mobile OS with Android compatibility.
The ideal outcome for me would be keeping Android but effectively dissolving Play Services and instead having the concept of a core services, where instead of apps choosing to use Firebase for notifications, they instead bind to the system notifications service, and as the user I choose which implementation I want, preferably with it not installed as a system app. I'm well aware that's not going to happen, but it seems like the most practical way to break up the Google/Apple monopoly to me, Android's great but Google's services aren't.
This is somehow by intention. In the ramp-up of Android adoption, Vendors and carriers started to fork Android and deviate too much from the core. Google needed a leverage to tie them to stay compatible to the ecosystem, Google Mobile Services (GMS) was the tool to do so. "Pass the compatibility test suite and you qualify to preload GMS".
Then, at some point, Google implemented API's in the OS which call Google's cloud infrastructure (e.g. Location services), which they didn't want to commit to the Android source for the risk of them being forked and modified, so they started to implement them in a precompiled "Google Play Services" module.
Over time, it seems Google Play Services became the preferred vehicle for Google to rollout any kind of API-changes to have them applied on all devices immediately, without waiting for the vendor to do an OS-Upgrade.
The result is that Google now promotes Google Play Service API's as the way for the most widely compatible implementation of an app. Which is...not wrong, but in the larger picture also the reason why Android is not considered "real" open-source (anymore).
> The ideal outcome for me would be keeping Android but effectively dissolving Play Services
Agree. There is still a very good OS in there, clearly written by considerate SW-Engineers.
I have spent the past 2 years off and on modifying AOSP (for "reasons") and I am constantly amazed the poor quality of the code base and badly architected the overall system is.
It's a bunch of re-inventions of the wheel (start-up daemon manager, IPC, HAL, GUI, etc) with the "upper layers" written in Java with a mix of C/C++. Mixing the metaphor of a Java "run time environment" with a Linux-based kernel results in a hodepodge of pieces and having seen it up close it makes sense why "Android" user experience varies so much device to device.
Did Android need it's own bastardized libc for example (bionic)? Did Android need to have it's own start-up daemon manager? A "HAL" in C++ (wrapping Linux kernel capability) with a bunch of bridges to Java via JNI?
Writing an application for Android is also a byztantine mess of NDK, SDKs, Java build systems (Maven, Gradle, etc), XML files, Java, Kotlin, etc. Why can't icons just be SVGs, why do these have to be in some XML-formatted resource? The list goes on.
Wasn't the point of Play services to enable keeping OS "updated" regardless of the manufacturer schedule? Which is to say: they are tightly integrated because they were designed to be part of an operating system that Google can keep updated through Play Store even if the device OEM is slacking on porting upstream updates to the users.
Permission model of Andorid is hostile to the user and is designed to the benefit of the manufacturer. It undermines the users' ability to take advantage of their computer but allows the manufacturer / whoever installed the system to have undue and unwarranted access to the device.
My experience of using Android is very similar to using a corporate laptop configured by the least competent IT department of a large US bank: you are not allowed to do the basic and useful things, you are required to jump through a lot of hoops to have the remaining absolutely necessary things done, you cannot eliminate hostile functionality, you cannot be sure your personal stuff will remain personal (if it ever was...), it's a system that will automatically do things to you that you don't want done...
Basically, using Android sends me back to the early 2000s when this kind of setup was typical for MS Windows computers given to employees in large US companies.
It starts with an upstream GrapheneOS build and modify the system image (super) in place, signed with the published userdebug keys.
Just no. I developed for android for a long time and I have seldomly seen a worse and more confusing SDK and code base. I can give you many examples but the core layouting algorithm having quadratic complexity with the number of widgets and the single base-view class having 60.000 lines of code are just the tip of the iceberg.
You could not design a worse system than Android, even if you tried to design the worst system possible
Web will be locked down too, via secureboot stack browser integration (not -s, it's already actually monopolised to chrome only, as FF lives on full life support from Google).
Very sad how it was allowed to happen so easily.
- OEMs have poured an enormous amount of resources into the camera software, Linux cameras are years behind from what I understand. - Android/iOS have thoroughly optimized the UX in all sorts of subtle ways, the big one being their keyboards. I literally can't type a single correct sentence on any of the mobile linux keyboards that I've tried because there's so much proprietary magic needed under the hood to figure out what the user is trying to say (autocorrect mostly, but I recall something about how apple also virtually adjusted the sizes of the keys to make it easier to type) - GPS, banking, and now keys for your house and car all need to work.
Now they are locking it all down.
Was using Sailfish OS on Sonys phone but drove me nuts for two reasons:
- had to reverse banking up to kick out the checks each time when new version came out and I became quite proficient at it (decompiled into git and each new version over it, then git diff, and fix the checks, committed the changes)
- worse part was that there was no bluetooth to android bridge and local bus company required it for contactless paying
There was nothing I missed from the phone, even reversing banking app was not really an issue, but bluetooth was just needed.
I defected to GrapheneOS after two years, now I am moving back, I hope for good. The fixed the bluetooth while for hardware I dont care.
I have solved the banking app issues by changing the bank and getting cheap old pixel just for banking app. It doesnt even have SIM, only wifi and used Automatize to turn on airplane mode on lock screen and turning it off for unlock.
I dont care about NFC payment or any other android junk, for photos I have EOS and phone just doesnt cut it, while camera is good enough for taking shots at everyday things like shopping list.
I really hope I wont need to see android ever again.
If you're outside of the US, the availability of useable mobile OS's outside of Android and iOS is pretty abundant compared to the situation here in the US.
As daily driving Linux desktop/laptops, I mostly find that android(at least samsung galaxy-flavored) is next gen of Microsoft Windows, in bad ways. At least you can "hack" the Windows to customize something by your own, android does not. Performance also questionable nowadays, not for gaming but browsing purpose for me, may drain more battery than expected. Also MS acknowledges the issues and made statements to fix while I haven't seen samsung's.
Anyway, My opinion is, If you are nerd like me, I would buy one phone that 1) can unlock the bootloader 2) can root 3) at least kernel source available, some companies do not disclose until legal? actions 4) optional, linux port-able (via community) 5) optional, officially supporting linux(not aosp)
and then buy second phone, that has great security support, e.g Apple iPhone or Google Pixel, and use it like a wallet(banking/cam/gps/... I would not like to support other vendors, what if they abandon security patches, and then phone being vulnerable). I believe more android application will be more restrictive than before in the future.
For linux, you own the hardware. Because it's open source, you can audit and harden the every aspects, e.g You might able to use proprietary bluetooth codecs, which vendor disables in android ROM. When AI era, you may able to investigate and mod stuffs which you don't fully understand. This take risks, and we have right to take the risks instead banning it.
Make something novel? RTOS like response like blackberry, secure, fully opensource and such? With the era of LLM accelerated developement (don't crucify me), this wouldn't be such unreachable goal.
We would have to sacrifice bank apps but imho still worth it.
What I would like is to take my existing iPhone 13 Pro and install a real Linux on it so I could guarantee decent hardware. You know, like we could do with pretty much any computer before smartphones.
FWIW one can also do that on stock Android or its GrapheneOS variant pretty conveniently, including storage access, am, boot background processes, etc. It is not as complete as being root on Linux proper but still.
> While the AOSP isn't exactly dead (yet), it kind of feels like it's just a question of time.
The writing's been in the wall since the renamed the Android Market to Google Play Store. Frog's been boiling all this time, and every update my croaks grow weaker.AOSP does not include nor depend on Play Services.
>locking down of device trees to hinder custom ROM development
Most manufacturers do not distribute these either. The user doesn't even have a pixel so it is not relevant.
>all the AI stuff being put into the system
The AI stuff is not part of AOSP.
>or most recently (and perhaps worst), removing the ability of installing apps per your own wishing - it's become sort of like a "death by a thousand papercuts" situation.
Again that is not a feature of AOSP, but one bolted in on top of it.
I think the author would benefit much more by using a different distribution of AOSP.
There are just too many very useful services that only work with Android/iOS. Take taxi apps for example. I've used over a dozen in the past few years, many of them local to a specific country or region that made getting around much much easier.
realistically, this device would need to tiny to justify the extra weight, device-to-keep-charged, etc.
one idea: make it wifi-only and tether from your primary mobile device. This skips all the carrier nonsense, to focus entirely on the core use case(s).
I've a wish list of one, though: make the Web the primary GUI front end. Essentially, apps are a specialised browser window. That way, I can program (both the front- and back-end) in plain text, just using regular Linux tools and a text editor -- no bloatware and gargantuan IDEs mandated.
That being said, I consciously chose an iPhone b/c I want my phone to "just work". I had a Blackberry Storm for a year and it was buggy, had to be restarted everyday just for it operate etc etc.
The iPhone has always been great. It just does what I need it to do b/c clearly someone cared about making sure the end user experience was phenomenal. While Linux has gotten better over the years, it just doesn't feel the same.
In addition, I recently started using a MacBook and the fact that the phone sync WITH THE LAPTOP makes the iPhone an even bigger plus. For example, if I set keyboard shortcuts on my phone they also work on the laptop. Photo sharing is a breeze and even integrated iMessage "just works".
Now, I don't fault people for wanting Linux phones. It's just not right for me.`
I've been using HarmonyOS for almost a year now (not the AOSP fork, but the actual Hongmeng microkernel flavour)... and this idea of having a iOS-like system with an Android VM running at near native performance works pretty well. Unfortunately is really focused on the chinese market but it feels really polished and promising.
Flop-Elon was the worst guy at the worst time in the worst position. It was 110% obvious windows mobile would flop. Everyone knew it, it was just a panic decision.
Given fair phone exists, it should now be able to get all kind of apps anyone wants.
Why not just use an Android AOSP distribution? SailfishOS is proprietary. It will be a lot more "locked down" than LineageOS/GrapheneOS.