Documentation

What Breadstick cannot do

The honest list. Breadstick runs unprivileged with no root, and that rules out a specific set of things.

Breadstick runs completely unprivileged. There is no root, no kernel module, no hypervisor, and nothing that touches your Android system. That is what makes it safe to install and impossible to break your phone with, and it is also the reason for almost everything on this page.

Read this before you plan a workflow around it. Most of these have no workaround inside Breadstick, and it is better to know now.

One thing worth knowing up front, because it misleads people who go looking: most of these devices are visible inside the Linux system. /dev is full of the hardware Android exposes, and a listing suggests far more is available than actually is. What stops them is permission, not absence. Seeing /dev/net/tun in a directory listing does not mean a VPN will work.

Networking

VPN clients do not work

OpenVPN, WireGuard, Tailscale and every other VPN client need a TUN network device to create the tunnel. /dev/net/tun is visible inside the Linux system, and it even appears to belong to your user, but opening it fails with a permission error: on Android the device belongs to a system group that ordinary applications are not in. VPN clients therefore fail at the point where they try to bring the tunnel up.

What to do instead: run the VPN on Android itself. Android's VPN applies to the whole device, and Breadstick's traffic goes out through the same network stack, so a VPN connected in Android covers your Linux applications too. For most people this is the better arrangement anyway, since it protects everything at once. Using a VPN covers the setup, including names on a private network.

Anything needing raw network control

Setting up bridges, changing routes, running a DHCP server, packet capture on an interface and firewall rules all require the same privileges and do not work.

Hardware and USB

USB devices do not work

Linux applications cannot see USB hardware. Android does not expose the raw USB bus to unprivileged applications, so there is no /dev/bus/usb inside the Linux system and nothing that enumerates USB devices will find anything.

That covers, among others:

USB storage works, but only as folders

If Android mounts a USB drive, and you have granted Breadstick file access, the files appear inside Linux like any other folder. That part works.

What does not work is anything that needs the drive itself rather than the files on it. The block devices are visible under /dev/block, but opening any of them is denied, so nothing can read or write a disk directly:

Virtualization and containers

There is no nested virtualization. /dev/kvm is not available to unprivileged applications, so anything that boots its own kernel or spins up its own container will not run:

Language-level sandboxes are fine. Python virtual environments, Node version managers and similar tools work normally, because none of them need kernel features.

Filesystem

FUSE is not available. /dev/fuse cannot be opened, so filesystems that run in user space do not mount. That includes sshfs, rclone mount, gocryptfs and mounting an AppImage.

AppImages themselves still work: Breadstick unpacks them instead of mounting them, and adds them to your applications with their own name and icon. See Installing apps.

Windows

Your device caps how many floating windows can be open at once. On Samsung DeX that is around five, counting every window on screen and not only Linux ones. This is enforced by Android, not by Breadstick, so no version and no purchase raises it.

Desktop mode is not affected. Inside a desktop session the windows belong to Linux, so you can open as many as the device has memory for.

Graphics

Without GPU acceleration, everything is drawn in software. Ordinary desktop applications, editors, browsers and office software are fine that way, because they barely use the GPU.

With GPU acceleration (Pro), Linux apps can draw with the device's graphics chip, where Breadstick's test finds it stable and faster than the processor. It has edges of its own. On ARM devices it goes through Breadstick's graphics server, which offers OpenGL 2.1 and OpenGL ES, so programs that need OpenGL 3 or newer stay on the processor, and light drawing can be slower on the graphics chip than on the processor, so the gain is in 3D work. On Intel graphics, the Linux system's own Mesa drives the chip directly. Web browsers stay on the processor for now, on every device. Breadstick offers no GPU compute. See GPU acceleration.

Video playback is software decoded, so large or high frame rate video will struggle on slower devices.

The system itself

There is no systemd. Breadstick is not a booting machine, it is a set of applications sharing a Debian filesystem, so there is no init system and systemctl does nothing useful. Software that insists on running as a systemd service needs to be started by hand instead. Most daemons can be run directly.

You cannot load kernel modules or change kernel settings. The kernel belongs to Android.

There is a ceiling on how many processes can run at once. Android allows one app a limited number of processes, typically 32, and everything in the Linux system counts toward it because it all belongs to Breadstick. That is enough for a desktop and a normal set of applications, and Breadstick is configured to stay inside it, but it is a real ceiling rather than a soft one: go over and Android closes the session rather than refusing to start one more process. A browser with many tabs or extensions is the usual way to meet it. Breadstick warns you as the count gets close, and the resource monitor shows it live. If you hit this, the troubleshooting page explains what to do, including how to remove the limit on a device you control.

Architecture, and the exception to it

Breadstick runs software directly on your device's processor, with no translation: it installs a Debian 13 built for that processor. Nearly every phone and tablet has an ARM64 processor, and the overwhelming majority of Debian's archive is built for ARM64, so this is rarely noticeable. An Intel Googlebook or another x86-64 device gets Debian for amd64, so 64-bit x86 Linux programs are native there.

On an ARM device, for the software that is not built for it, the optional x86 apps pack installs Box64, which runs 64-bit x86 Linux programs on ARM. Box64 is genuinely useful and genuinely experimental: some programs work, some do not, everything runs without GPU acceleration, and translated software is slower than native. With Pro it installs in one tap from Recommended apps. Treat it as a bonus rather than a guarantee. x86 apps has the details.

Windows programs do not run, on ARM or Intel devices. Android's security rules stop Wine from starting in Breadstick: an app may not run code it has changed after loading it from a file, and Wine does this to itself as it starts. The same rule keeps Steam's Windows games, which run through Proton, from running. x86 apps has more.

Performance

Linux applications use your device's own processor and memory. A recent tablet runs a full desktop comfortably. An older or cheaper phone will feel like an older or cheaper computer. Nothing is offloaded to a server, so what you have is what you get.

The short version

You want to Works?
Run a Debian desktop with real windows Yes
Install software with apt Yes
Write code, browse, edit documents Yes
Run your own .deb or AppImage Yes
Reach the device over SSH Yes
Print a document Yes, through Android's print dialog (Pro)
Run x86 Linux software On an Intel device, natively. On ARM, experimental: 64-bit programs, through Box64
Run Windows software No
Connect a VPN inside Linux No, use Android's VPN
Use a USB device or security key No
Open an encrypted or raw drive No
Run Docker or a virtual machine No
Play 3D games On ARM, no. On an Intel device, experimental and not supported: native Linux games through Steam (Pro)

If something here is a blocker for you, say so at hello@breadstick.io. Some of these are permanent consequences of running without root. Others are being worked on.