Remix.run Logo
sowbug 11 hours ago

I haven't used my Pro purchase in years, but if I did want to ssh from my phone today, I'd use the newish Terminal app, available since Android 15. It's a full Debian virtual machine.

wilsonnb3 10 hours ago | parent | next [-]

I don’t think it is that widely available due to Snapdragon chips not supporting some feature it requires.

Good option for Pixel owners or phones with MediaTek chips though.

fulafel 10 hours ago | parent | next [-]

Apparently it's about software, not hardware - Qualcomm recommends running Android under a virtual machine (which lacks nested virtualization support).

mcbridematt 5 hours ago | parent | next [-]

IIRC Qualcomm smartphone SoCs have always run some kind of hypervisor, I believe it's to allow partitioning of the CPU cores with the modem/DSP.

They used to (mid-late 2000s) use an L4 derivative ("REX"?), with the more recent chips (including the 'X' series for PCs) using their homegrown "Gunyah" hypervisor (https://github.com/quic/gunyah-hypervisor)

5 hours ago | parent | prev | next [-]
[deleted]
superb_dev 8 hours ago | parent | prev [-]

Is this for real? Do you have any more info on this? It seems crazy to me given how popular their chips are and how many problems I’d imagine this creates

pierrec 5 hours ago | parent | next [-]

It shouldn't be problematic if the processor supports it well. For example modern Windows is always running as a VM and people are barely aware of that.

superb_dev 4 hours ago | parent [-]

That’s a good point, I forgot windows typically runs on top of hyperV

asutor 8 hours ago | parent | prev [-]

Using an S24 here and yeah, not available with Android 16

wolvoleo 4 hours ago | parent [-]

But the S24 wasn't Qualcomm but Exynos. Weird.

chasil 8 hours ago | parent | prev [-]

I run LineageOS on both a Pixel 3a XL and a OnePlus 5. Yes, these both run Snapdragons.

The option to install the subsystem is present on both, but I have not attempted it.

I have loaded it onto a Pixel 6a running Graphene.

TheRoque 4 hours ago | parent [-]

The option is available, but it probably won't work (show some error that the chip should allow unsecure VMs)

preisschild 9 hours ago | parent | prev | next [-]

Or termux, which doesnt use a VM

gruez 8 hours ago | parent [-]

Yeah, another vote for Termux. The linux VM ends up being a bit laggy because it's actually a webview that renders a terminal, that's connected to the VM. More importantly though, the soft keyboard support is totally broken, so if you try to backspace more characters than you've typed, it won't let you. That sucks if do something like:

1. type some command, hit enter

2. hit up to edit it (because you typoed something)

3. can't backspace because the soft keyboard thinks there's nothing to delete

preisschild 7 hours ago | parent [-]

Ive always considered termux the more elegant option for userspace programs than the android terminal debian vm. I just wished android had the permission api to create user namespaces (containers) in termux

sunnyam 11 hours ago | parent | prev [-]

Do you mean Termux? I can't find any other Terminal app with a similar name

saidinesh5 11 hours ago | parent | next [-]

No Android started bundling a terminal app recently:

https://itsfoss.com/news/google-android-linux-terminal-rollo...

domh 11 hours ago | parent [-]

Huh, I did not know this. This is also present on GrapheneOS too! (I'm installing it now)

fmajid 10 hours ago | parent [-]

It is extremely flaky on GrapheneOS, at least on my Pixel 8 Pro. Just typing Ctrl-D to exit will corrupt it, requiring a full reinstallation of the Debian VM

Denatonium an hour ago | parent | next [-]

The built-in terminal app seems to be similarly flaky on my Pixel 8. Also, the kernel it boots into is really stripped down, and it lacks a ton of essential features. I was not able to install VirtualHere client to pass through USB devices, and there's no built-in functionality. There's also no way to open it full-screen on the Pixel 8's DP-over-USB-C desktop mode. Hopefully it continues to improve, but it seems like Google is more into extracting value than they are improving their products at this point.

gruez 8 hours ago | parent | prev [-]

Control-D works fine for me. It just terminates the VM and you can restart.

fmajid 5 hours ago | parent [-]

It's not 100% reproducible, but at least 50% of the time for me:

https://social-cdn.vivaldi.net/system/media_attachments/file...

simlevesque 11 hours ago | parent | prev [-]

Enable Developper Options. It should be in the Developer menu. It's a toggle that'll enable this apk.

ndom91 10 hours ago | parent | next [-]

Is this available outside of Pixels? I still can't find it on my OnePlus 13 running Android 16 with Jan security updates

cmehdy 9 hours ago | parent | next [-]

The option exists on Samsung phones but is greyed out and crashes if you force it via adb. It is also marked as experimental.

yonatan8070 8 hours ago | parent | prev | next [-]

I believe it relies on some virtualization extensions Google's CPUs have, which most phone SoCs don't support.

prmoustache 8 hours ago | parent | prev [-]

It is buggy as hell anyway.

seszett 10 hours ago | parent | prev [-]

Honestly I don't find it more useful than Termux, especially for being so much heavier.

cogman10 10 hours ago | parent [-]

Just because I was curious.

Termux is doing a container. The android terminal is doing a virtual machine. That's the difference.

Termux would definitely be the light weight option, but you will be pinned to whatever version of the kernel your device is shipped with (may be a bit old.)

yjftsjthsd-h 10 hours ago | parent | next [-]

No, termux isn't a container, it's running directly in userspace on the host. The only weird thing is that because it's running directly on the host, it has to be built to use unusual paths, eg. /data/data/com.termux/files/usr/bin/bash instead of /usr/bin/bash. If it used containers (which IIRC it can't because Android doesn't really support it) that would actually be easier because then it could use a chroot to make the paths look normal.

cogman10 10 hours ago | parent | next [-]

Ah, well that stinks a little. I guess it makes sense, if android doesn't mandate a few kernel settings then working with containers might not be an option.

skissane 7 hours ago | parent | prev [-]

Couldn’t it implement a “fake chroot” by e.g. creating its own libc which wraps the real one but with path remapping, and then linking all its executables against that?

yjftsjthsd-h 4 hours ago | parent [-]

That would only work for things that use libc (so eg. most Go programs are probably not going to work). The main way that you can do an unprivileged fake chroot is proot, which termux does offer - see https://wiki.termux.com/wiki/PRoot - but that has a significant performance hit.

seszett 7 hours ago | parent | prev [-]

> you will be pinned to whatever version of the kernel your device is shipped with

That doesn't matter much for using SSH though.

For running more complex Linux programs or scripts Termux is indeed less comfortable (but it can still work).