# Linxr | Part 5 — Live Boot Logs, SAF Storage & Merging Docker

> Source: <https://dev.to/ai2th/linxr-part-5-live-boot-logs-saf-storage-merging-docker-2naa>
> Published: 2026-08-05 07:22:47+00:00

In **Part 4**, we showcased Linxr booting Alpine Linux in QEMU on non-rooted Android devices. Today in **Part 5**, we dive deep into the major architectural updates that powered our **v3.0.0** release: bringing live serial boot diagnostics, seamless Storage Access Framework (SAF) file sharing, and embedding full Docker container management directly into Linxr.

In earlier builds, VM startup was a bit of a black box—users saw a spinning loading indicator until port 2222 opened for SSH. If the kernel panicked or a system service hung during boot, there was no visibility inside the app UI.

To solve this, we redirected Alpine’s kernel console to serial output (`/dev/ttyS0`

):

`dmesg`

, `init`

scripts, and `sshd`

startup logs directly from the guest virtual serial console.Linux virtual machines running under QEMU require clean POSIX filesystem access to exchange files with the Android host system.

`virtio-9p-pci`

driver to expose host directories to the guest OS, mounting `/storage/emulated/0/LinxrShare`

inside Alpine Linux at `/mnt/sdcard`

.`MethodChannel`

handler (`pickFolder`

) calling Android’s Storage Access Framework (`ACTION_OPEN_DOCUMENT_TREE`

) to allow users to select custom host folders from Settings.Previously, container management lived in a separate project named **Pockr**. For v3.0.0, we unified our architecture by deprecating standalone Pockr and embedding its container controls directly into Linxr:

`nginx`

, `redis`

, `alpine`

).When launching QEMU, the OpenSSH daemon takes a few seconds to initialize. Probing TCP port 2222 concurrently from Flutter while QEMU bound socket ports caused intermittent race conditions.

We introduced a **thread-safe SSH probe lock** in Kotlin (`VmManager.kt`

):

Linxr v3.0.0 is officially live on [Google Play](https://play.google.com/store/apps/details?id=com.ai2th.linxr) and [GitHub Releases](https://github.com/AI2TH/Linxr/releases/latest)!

Join our community for feature requests and discussions:

👉 **Google Group:** [https://groups.google.com/g/ai2th](https://groups.google.com/g/ai2th)
