Android phone will run Debian Linux soon (like some Pixels can)
zdnet.com
zdnet.com
> "Google wants to turn Android into a proper desktop operating system"
Years ago (2020 I believe) I received a new laptop and Samsung S20-something for my new job. The laptop was DoA and I was unable to complete any of the internal training courses assigned to me (which required certs and such to access). I remembered DeX and on a whim, plugged the Samsung phone into my hub with Monitor, Keyboard, and mouse. Set Chrome to desktop mode and "worked" entirely on my phone until they replaced the laptop. It worked shockingly well, even back then.I don't think those types of "desktop mode" features ever took off, myself included, but I really wonder why. If Apple let you run macOS from a tethered iPhone, it just might!
…cannibalize iPad or Mac sales.
It’s almost insulting that modern iPhones support keyboard, mouse, and monitor via an USB-C hub, yet the experience remains artificially limited.
The Motorola Atrix had this "webtop" thing that was pushed before this sort of tech was ready and it was kinda, well, bad. Slow, glitchy, and hot. Battery life wasn't great either.
It had a really fierce ad campaign though, so I personally know a few people that bought one. I don't remember anyone enjoying it.
Maybe that's why? It seems that people just aren't currently capable of fathoming the concept of "one device for everything". If Apple did it though, people might realize it's a good idea. Then again, I think it's unlikely that they will, because they do want to sell you a Mac as well as an iPhone/iPad.
It will be interesting to see where this goes as Google merged Android and Chrome OS
IIRC, they started handing their contractors Pixel Tabs and docks to work from?
Discovered it by chance when trying my Thinkpad's Thunderbolt Dock as a power supply. That was a ridiculously good moment when I had my full setup (mouse, erg. keyboard, 34" screen) available for my phone.
Looks like the GrapheneOS implementation will be less restricted and will let you run operating systems other than Debian, including Windows 11.
If the only shortcoming of android, compared to a more typical linux distribution, was that it didn't have a shell interface, that can be solved with the variety of shell programs available for the android environment.
However bigger issues remain unsolved by adding a shell. The configuration of the _actual_ linux kernel used in android being one of the most significant. For instance, typical linux has excellent support for all USB class devices, whereas android disables this functionality. USB-on-the-go only supports specific devices in most android distributions.
Rather than running a linux user space in an android chroot environment, as has been possible to do for years with many embedded linux flavors: archlinuxarm, debian, gentoo, ubuntu, all have documented means of installing a more full featured user space in a chroot over android.
The better/more desirable configuration is to run the more full featured linux kernel and user space directly on the phone h/w, and then run android in a chroot or virtual machine when access to an android only app is needed. Such as this phone:
This allows the android subsystem to be completely shut down when not in use, thus disabling the goggle surveillance and other undesirable features of android.
For any semi-technical phone user, this article is old news. The only thing new about it, is that the chroot is configured by goggle itself, which pretty much insures that the config will be primarily for the benefit of goggle, not the user.
What it does termux doesn't do so well, is get to the screen. With termux you seem to wind up needing to vnc to an X server on yourself which is clunky.
(Of course, some phones, like the Librem 5, runs a Debian derivative as their native OS.)
Forcing apps into an abstraction layer from the kernel is good design, preventing kernel quirks from being permanent features. Not using GNU is another design choice which can be debated, but it's completely valid, there's no requirement (moral or otherwise) to use the GNU userland with the Linux kernel. Most embedded devices also eschew the GNU userland by instead using Busybox.
Hey, but at least you can remove the tub whenever you want now.
That is nonsense.
I could easily be completely wrong though.
But, they also give app authors the NDK. How do you think Android knows whether it's libc or your app making a syscall from native code?
It doesn't - you're allowed access to full Linux-land. The syscall numbers and userland EABI for Android are the same as for any other Linux. They use a different `libc` from most GNU/Linux (one of a few places this wonderful turn of phrase actually makes sense) flavors, but this is no different from Alpine Linux using `musl` instead of `glibc` for example.
As such, you can use `musl`, `glibc`, or non-libc based environments (Rust, Zig) on Android without issue. You can run any C you want, either by porting it to `bionic` (most termux apps, although they support glibc now), statically linking your own runtime (Rust, Zig, etc.), or abusing the dynamic linker into making glibc work (termux-glibc, I think).
Yes, but there are strict SELinux policies forbidding you from accessing certain "dangerous" stuff like execve(), which may end up killing native terminal emulators like Termux (despite Android not forbidding dynamic code execution elsewhere, Play Store policies aside).
I really thought this was going to be a terminal only release.
I wonder how much of this work was already existing vs how much was diy. Did they use existing virt-* work? Did they bring in ChromeOS's many many virtualized device sandbox daemons?
Linked from the article: https://www.androidauthority.com/android-16-linux-terminal-d...
The feature is part of AOSP.
I live in neovim anyways, so there wasn't any big adaption for me. Lenovo ThinkPad TrackPoint 2 keyboard ftw (Bluetooth).
https://www.amazon.com/InnoView-Portable-2560x1600-FreeSync-...
> The Linux Terminal runs on top of a [...] virtual machine.
It should, uh, at least be noted that "Android is Linux" doesn't really matter if you're just going to use a Virtual Machine anyway. Android could be based on BeOS and you could still have a Linux virtual machine. You could have a Windows virtual machine, for that matter. I wonder if Microsoft would be interested...
I would be interested in what it would take to get a non-virtualized Linux terminal on Android. Android is just a Linux distro at the end of the day, right? Could you chroot into a Debian environment?
Many other distros also support this...
https://github.com/selirra/anarch
https://hamelot.io/android/run-gentoo-on-android-via-chroot/
What is even the point of Google doing this, with a VM no less?
For a worked example, this is also how WSL2 works.
> You could have a Windows virtual machine, for that matter. I wonder if Microsoft would be interested...
It would be interesting to get official buy-in, but https://news.ycombinator.com/item?id=43336934 links to GrapheneOS planning to make it work.
> I would be interested in what it would take to get a non-virtualized Linux terminal on Android. Android is just a Linux distro at the end of the day, right? Could you chroot into a Debian environment?
Yes, you can do a chroot if your Android device is rooted. You can also use Termux, which doesn't need root and essentially is its own Debian-like distro, and which further can has the proot-distro tool to automate installation of assorted Linux distros in what is basically a chroot without needing root (proot is an unprivileged tool that can do all kinds of interesting things, including what amounts to chroot and mount --bind).
Anyway, apps have literally no reason to query the status of developer mode and should not be allowed to do so.
I don't think apps should be able to query the status of the OS' "integrity" either (which in practice just boils down to a "Google-approved" boolean anyway), but they do at least have somewhat legitimate reasons for wanting to do that -- Pokemon Go wants to make sure the GPS coordinates it receives aren't spoofed, for example.
But there is no reason they should be able to query the status of developer mode.
I know apps looking for root but never for developer mode (didn't even know you could know its state).
Of all the things one might want to do with one's device, this is probably the most reasonable to gate behind integrity checks. But I don't have to like it :P.