Android is Linux but it has nowhere close to the fully open source freedom of a traditional Linux workstation. This is why I carry a tiny linux laptop.
I'm quite happy with Termux on Android. Allows me to rsync my data for backup or imports, I can ssh into real Linux machines, process images with ImageMagick, etc. Sharing documents from inside other apps works too (you can set up scripts in Termux as receivers). Sure, full control of a device would be great, but I'm better off with Android after I migrated from IOS.
Bad news: Android blocks exec in newer API versions. Termux isn't going to be able to use newer API features as they release, unless they rewrite their own ELF loader. exec is now only allowed on executables within the apk, nothing fetched from termux's repositories.
What do you use a small laptop? Seems there's nothing ultralight and small like the Asus Eee and Acer Aspire One these days (even though you'd think it'd be easier with ARM now).
Phones are not PCs/general-purpose computers. Do you want your TV to be a general purpose computer as well? (Having put my family through a Media Center PC and TV remotes with keyboards/trackpads for several years, I don't recommend it.)
If something currently serves as a general-purpose computer for most people, it's an (Android) phone. It's affordable, it has integrated graphics, video, audio, trackpad, and keyboard, it has excellent networking, it's easily programmable and has a plethora of apps for all cases.
It does not have a built-in Basic-like language for immediate fiddling; this is sad, of course.
If you do not mind running an endless pile of proprietary software and granting several third parties the right to track you and have remote root access to your device via hundreds of binary blobs, then Android is great. Even CalyxOS and GrapheneOS cannot escape the hell that is the vendor partition. Not to mention binary blobs from Qualcomm etc that target particular kernel versions which guarantee your hardware will be a brick in 2-4 years when it is no longer possible to use modern kernels because Qualcomm moved on to new chipsets and abandoned the last gen.
I spent the better part of a year doing Android OS dev only to conclude there just is no way to trust it or make it sustainable.
The Librem 5, Pinephone, and the Precursor are shaping up to be decent options. For now no phone at all suits me fine.
Bankers and governments don't want your phone to be a general purpose computer. That's why you can't run your banking app on a rooted phone. From a security standpoint, "general purpose computing" is really just "arbitrary code execution" -- generally a bad thing.
We are approaching the sunset of general purpose computing in the consumer space. There's nothing you can do. Accept it and move on.
> We are approaching the sunset of general purpose computing in the consumer space. There's nothing you can do. Accept it and move on
I agree that governments and big business (not just banks, think about media services with DRM) don't want us to have full control of our computers for many reasons.
I disagree we just have to accept it though. I will keep fighting that forever.
Actually yes. All my TVs have attached PCs and run kodi, steam, etc on Ubuntu so I can do whatever I want on them. All my remotes have an airmouse and small keyboard.
We love it. When we want to look up something we see in a video we just open a browser. We also use them to order food etc. No proprietary software required.
Typically the Java APIs are restricted to the bare minimum Chrome Android needs to do sandboxing and native code-gen for V8. Shared memory only works in a more limited way with many less options. They'd really like to restrict these APIs way more and not allow apps any way of loading dynamic native code with the exec bit set, but can't because of Chrome and antitrust worries about just making Chrome system software with access to the APIs it needs that a competitor couldn't replicate in an APK.
I think you can see some of their thinking with the removal of exec; they just want to undercut termux because that isn't needed for V8, but as long as loadable generated native code is still needed for Chrome, termux could potentially create their own ELF loader to replace exec).
Exec should just be behind a separate permission anyway. A flashlight app has no legitimate reason for exec()ing random code that was not in the APK bundle, but the permission should be there so that JIT's and stuff like Termux can make use of it.
My Pinephone is a general-purpose computer, which runs a desktop OS and can be connected to a keyboard and screen. Same for Librem 5, which I preordered.