Run Linux containers on Android, no root required (github.com)

by politelemon 87 comments 221 points
Read article View on HN

87 comments

[−] vimredo 42d ago
I don't understand what this would be useful for. The Linux terminal app on Android (check Developer settings if you want it) already exists and it uses hardware accelerated virtualization, while this uses QEMU with TCG. The Linux terminal app also supports running a DE (No VNC - as in no VNC, not NoVNC - required!), has full shell, full root, all the features of Podroid, and hell, you could even swap out the terminal if you wanted to. The only advantage to this seems that it supports Android 14, 15, and 16. Am I missing something, or does this have no purpose?
[−] gbil 42d ago
My understanding is that the integrated linux terminal is not supported on all processors like snapdragon ones and also is not available on all manufactures like Samsung. Therefore this approach covers a much bigger audience.
[−] microtonal 42d ago
I think it was only available on Google Pixel until recently. As far as I understand, some Samsung Exynos devices support it (e.g. Z Flip 7, non-US S26 with Exynos), but not Snapdragon devices, which don't seem to support non-protected VMs yet:

Error code: java.lang.UnsupportedOperationException: Non-protected VMs are not supported on this device

[−] gbil 42d ago
I can find it on my S25fe with exynos android 16/oneui 8.0 if I search for it in the setting but is greyed out. I wait for 8.5 to see if it is enabled then and is the only time I'm happy to have an exynos device!
[−] fg137 41d ago
Can confirm -- seeing the same error on a Samsung Snapdragon device when attempting to use the Linux terminal
[−] getpokedagain 41d ago
It also behaves weirdly if you use a VPN.
[−] smetannik 41d ago
Android's terminal app is really slow and takes some time to boot comparing to Termux.

Also, the Terminal app is essentially a webview (as I understand, the reason is architectural).

[−] m132 41d ago
This. Also, for phones that don't support Android virtualization, there's a user-space hack, part of Termux upstream, that allows for root-less chroots via LD_PRELOAD: https://wiki.termux.com/wiki/PRoot.

systemd won't boot with this (needs to be PID 1), but a lot of software will work just fine and there's nearly zero emulation overhead.

[−] yjftsjthsd-h 41d ago
I don't think it uses LD_PRELOAD, it uses ptrace to intercept system calls (hence the name). Unfortunately this does have performance overhead, although I've never bothered to measure it. Actually that would be an interesting thing to benchmark.
[−] m132 41d ago
My bad, I must have confused it with something else. Yes, it uses ptrace; there definitely is some overhead around system calls, but that still should be better than running atop a full-scale CPU emulator. That being said, I haven't benchmarked it myself, just remember it being pretty snappy.

Thanks for your correction!

[−] iraizo 42d ago
The new app is truly awesome, was able to get a desktop environment running, and a minecraft server & client. Just a shame that you can't pass through USB.
[−] arend321 41d ago
The Linux terminal app on Android reddits are full of reports of instability. It is far from being useful as far as I understand. I had so much hope for this being a good way to use my phone as a portal for development, but it's a dud. At least we have termux and proot.
[−] dredmorbius 41d ago
Termux itself is a red-headed step-child on Android, with current releases installable only from F-Droid, and quite possibly subject to further restrictions in future.

Mind: Termux is the only thing on Android which has not precisely sucked in my own 15+ years' experience with the platform. It remains both crippled and emperiled by the OS and Google.

<https://web.archive.org/web/20210103151837/https://wiki.term...>

There's ... some Google Play availability as of June 2024: <https://github.com/termux/termux-app/discussions/4000>.

F-Droid's own future viability is at risk given Google's recent Android directions:

<https://www.techdirt.com/2025/10/07/googles-requirement-for-...>.

My own interests lie more in the ability to run Android emulated under Linux, and switching from phone / tablet devices to a small form-factor laptop (Framework 12 or 13 most likely) for on-the-go computing.

[−] nagaiaida 42d ago
you seem to have articulated precisely the advantage that makes it serve a purpose for me: supporting the version of android on my phone. presumably i am far from unique in not having android 16
[−] acka 41d ago
Not everyone owns one of the limited range of devices that Linux Terminal is available for. For example, no Snapdragon chips currently in use support the "non-protected" virtual machines required by the Android Virtualization Framework. Also, it doesn't jive with Samsung Knox, so the few Samsung devices that this might work on (mostly international models with Exynos chips) will likely not be supported.
[−] thrance 41d ago
Wow, didn't know this existed, thanks. But 761 Mo download?? That's insanely big for a terminal, what could possibly make this bundle so big?
[−] petu 41d ago
It's not giving you access to Android shell, but one inside VM. So OS image for VM.
[−] prmoustache 41d ago
It is a complete OS in a virtual machine.
[−] fmajid 41d ago
The Linux Terminal app is incredibly buggy in my experience, but that may be because I use GrapheneOS.
[−] jacek 42d ago
I tried it on my Samsung phone. Keeps crashing, "recovery" just deletes everything and you start over from scratch. No session lasted more than 5 minutes.
[−] Saris 41d ago
Isn't this super limited? It seems to only support the latest version of android which only recently released phones have.
[−] realusername 42d ago
Personally this toggle doesn't do anything (Android 16, Samsung) so I'm not sure when it's supposed to be ready
[−] ghywertelling 42d ago
We can use old phones for running PiHole.
[−] shrx 41d ago

> The Linux terminal app on Android (check Developer settings if you want it)

I don't see it. How do I install it?

[−] Gander5739 41d ago
In developer settings, under debugging "Linux development environment (Experimental) Run Linux terminal on Android"
[−] shrx 41d ago
No such option. Apparently it needs to be allowed by the vendor (Samsung)?
[−] mbana 36d ago
Yeah, it is controlled by the vendor. If you can't find the option, you will need to use adb to enable it that's what I did basically. You can Google it and you'll find what I'm talking about. IRC, it is pm enable ....
[−] j45 42d ago
Sometimes the capability unlocks the possibilities.
[−] m132 41d ago
But does it synergize paradigms?
[−] anthk 42d ago
Termux and a BT keyboard it's enough.

Also, native Emacs under FDroid has recently been improved a lot.

With just Emacs you get:

- An IRC, Usenet and Mail client. The ONLY libre Usenet client. comp.arch and comp.misc have really engaging discussions. You can score up nice commenters and blacklist every spammer

- Gemini and Gopher via ELPA (run Esc-x package-install RET elpher)

- A math mini CAS with Esc-x calc RET

- Esc-x package-install RET malyon, get some nice ZMachine text adventures at IFDB

- Elisp environment+cl-lib can do a lot

- Esc-x package-install jabber, Esc-x jabber. Chat with cool people at XMPP servers.

- Org-Mode, enough said

- eshell will allow you to automate stuff

- Elisp + Android related functions + org-mode: heaven.

- Sudoku, Sokoban, Tetris...

- LSP integration it's possible

Get some $10 pocket bluetooth keyboard and try it.

[−] hu3 41d ago
Added to my list of things that will never be possible on iOS.
[−] figmert 42d ago
This can probably be upstreamed into podman. Podman already has supports using a VM using podman machine (uses different tech under the hood depending on the OS). This seems like it can be yet another backend for it.
[−] nullbyte808 42d ago
Is it possible to get the reverse of this working? (Waydroid with play services on Linux phones, such as postmarketOS)
[−] spidermonkey23 42d ago
I think this is great, I've wanted some sort of docker on android system and this does the job quite nicely all wrapped up in an apk. So there is definitely space for this in the current ecosystem. The new terminal built into android crashes whenever I try booting it up.
[−] nixosbestos 42d ago
I just want a folding portable monitor now. We're getting so close...
[−] unnouinceput 41d ago
I want the opposite. And I want to behave like a true Android. Reason: My fucking useless bank that has a banking app that only runs on non-rooted Android only (cause fuck iOS/web according to them). My attempts to run their shitty app on emulators, virtual machines and the like failed. So currently I have a dumb phone that only has their crappy app on it and that's all. On a separate Google account, because I do not dare to link my main Google account to their name.

Any advice?

[−] k38f 41d ago
The QEMU TCG approach makes sense for isolation, but I'm curious about the traffic routing story. Does each container get its own network namespace, or does all traffic still go through Android's network stack? The latter would mean carrier-level DPI still sees everything the container sends — which matters a lot depending on what you're running.
[−] Antitoxic6185 42d ago
tmux with proot distros exist though
[−] tuananh 42d ago
what about the other way around?

i'm aware about waydroid but it has too many problems with nvidia. also require wayland.

[−] ike____________ 41d ago
Just tried it, the last 2 versions, I cannot continue after specifying the ram and cpu number.
[−] Beijinger 41d ago
How is it the other way around? What is the status of Waydroid?
[−] pjmlp 42d ago
I don't see the purpose to run containers on Android, the managed userspace provides everything I need, including code on the go apps, already sandboxed.

Also not a termux fan.

[−] ilsubyeega 42d ago
curious is this just software qemu(not sure what word exactly was) instead of virtualization acceleration, probably more overheads?
[−] ggm 42d ago
And local FS access is mediated how?
[−] TheRoque 42d ago
With this I could in theory do all my work from my Android phone.
[−] ekropotin 42d ago
I find the title very misleading. Linux containers typically means LXC, but when in readme you say it’s intended for running OCI-based containers.
[−] nsonha 42d ago
What would be the usecases?
[−] cringleyrobert 41d ago
Just because you can doesn’t mean you should.
[−] randomtoast 42d ago
I find it somewhat amusing that it uses QEMU to emulate Linux in order to create a container with restricted permissions, even though it is already running on Linux with restricted permissions. I get the point while it is designed that way, but still funny.
[−] Aegis_Labs 41d ago
[dead]
[−] venyxx__tnt 41d ago
[flagged]
[−] VonGuard 42d ago
Podman.....