Why Ubuntu Touch on a Spare Android Makes Sense
Ubuntu Touch is the official mobile-friendly version of Ubuntu Linux. It runs native Debian packages on ARM hardware and, when you flip on Convergence mode, transforms any compatible phone into a full desktop environment complete with LibreOffice, Firefox, VS Code, and Docker. Instead of letting an unused handset gather dust—or worse, sit in a landfill—you give it another five-plus years of productive life.
Which Phones Work (And Which Don’t)
The Golden List
- OnePlus One (bacon)
- Fairphone 2 & 3
- Google Nexus 5 & 5X
- BQ M10 FHD tablet
Those models enjoy official UBports support, which means monthly OTA updates and verified Convergence.
The Grey-Area List
- Samsung Galaxy S5 Neo (works, but Wi-Fi calling drops)
- Xiaomi Poco F1 (Halium patches required)
- Motorola Moto G5 Plus (needs community build)
Check ports forum for nightly status; assume no guarantees.
Deal-Breakers
Locked bootloaders, MediaTek chipsets released after 2018, or phones requiring unofficial binary blobs. If you can’t fastboot oem unlock, skip it.
Gear You’ll Need
Item | Requisite |
---|---|
USB-C to USB-A cable | Data capable, not just charge |
4 GB free desktop or laptop | Runs Ubuntu 20.04 LTS or Windows 10, 64-bit |
8 GB micro-SD card | Clean FAT32 |
A spare USB-C hub | One with 1080p HDMI and 2× USB-A ports for mouse/keyboard |
5 V-3 A power brick | In-box charger works |
Pre-Flight Checklist
- Backup the Android ROM; use
TWRP → Backup → Boot, System, Data
to external SD or PC. - Ensure battery >80 %. Bricking probability spikes under 20 %.
- Download UBports Installer for your OS (Windows/macOS/Linux).
- Enable Developer Options: Settings → About Phone → Tap “Build Number” seven times.
- Flip on USB debugging & OEM unlock in Developer Options.
Step-by-Step Flash
1. Unlock Bootloader (Example: OnePlus One)
adb reboot bootloader
fastboot oem unlock
The screen will warn about unsigned images. Tap “Yes” with Volume-Up.
2. Wipe Partitions
fastboot format userdata
fastboot format cache
3. Launch UBports Installer
- Select “OnePlus One” (or your model).
- Click “Install”.
- The tool auto-downloads the latest
halium-boot.img
andubuntu_rootfs.tar.xz
.
Entire process: ~8–12 min on USB 2.0.
4. First Boot
Power on. The UBports logo cycles for 90 seconds—normal. Walk through:
- Select Wi-Fi
- Create a passphrase > 6 digits
- Enable SSH on first screen (handy for remote fixes)
Adding Desktop Apps
Enable “Libertine” Containers
Ubuntu Touch runs Android kernel but app layer is containerized Libertine. To add traditional x11 apps:
sudo lxc-create -t ubuntu -n xenial -- -r xenial
libertine-container-manager install-package -p firefox
Produces a desktop icon in the launcher. Keep total container footprint under 8 GB on 16 GB phones.
Exempt Popular Apps from Containers
- Firefox (Snap on Wayland via Morph)
- LibreOffice (Flatpak install)
- VS Code via
code-server
in LXC, accessed in-browser atlocalhost:8080
Convergence Mode: Turning the Phone Into a Real PC
Hub Requirements
You need USB-C with DisplayPort Alt Mode and Power Delivery. Anker PowerExpand 6-in-1 and Plugable UD-CA1 both pass EDID negotiation at 1080p@60 Hz.
Keyboard & Mouse Tips
- Bluetooth peripherals pair instantly once the hub supplies power. If lag persists, power hub independently.
- Lock screen defaults to touch-only; add the PIN on initial login to avoid being stuck.
Personal Story: One-Person Office in a Coffee Shop
I packed a OnePlus One, Anker hub, and foldable Arteck BT keyboard. Ordered an espresso, plugged in, and had a 12-hour Firefox + LibreOffice session. Peak CPU hit 75 °C, but the USB-C PD kept the battery flat at 100 %. Total weight: 580 g, lighter than an iPad Air with a folio case.
Storage Expansion Tricks
The OS stores user data on EXT4 inside /userdata
. To move bulk data off-device:
- Insert 128 GB USB-C flash drive (exFAT).
- Create a symlink:
ln -s /media/usb0/Documents ~/Documents/usb
. - Add cron job at every boot to auto mount:
@reboot /usr/bin/udisksctl mount -b /dev/sda1
.
Power Management Hacks
Battery Health Menu
Settings → Battery → Calibrate. UBports ships a script that writes a battery capacity file; run it monthly. After calibration, idle drain drops from 8 % to 3 % overnight.
Kernel Tweaks via TLP
sudo nano /etc/tlp.conf # set CPU_SCALING_GOVERNOR_ON_BAT=powersave
sudo tlp start
Real-world gain: +45 min screen-on time.
Securing Your Plucky Little Linux Box
Full-Disk Encryption
During UBports flash, tick the “FDE” checkbox. Uses dm-crypt AES-256-XTS; the key is the lock-screen PIN size-scaled to 256-bit.
Fail2ban on SSH
sudo lxc-create -n security -t ubuntu
sudo lxc-attach -n security
apt install fail2ban
Change SSH port from 22 to 22220; add Ubuntu Social Telegram bot for real-time IP ban alerts.
Five Common Pitfalls and Quick Fixes
- Soft-brick after OTA update: Hold Volume-Up + Power to reach recovery; sideload UBports recovery zip via
adb sideload
. - Touchscreen stops rotating: Root terminal:
gsettings reset-recursively com.ubuntu.touch.system
. - No audio in convergence: Plug in hub before attaching keyboard; EDID re-negotiation sometimes drops ALSA routing.
- Mobile data fails after import APN file: Replace
/etc/ofono/main.conf
with file for your carrier, then reboot. - Bluetooth mouse jumps: Disable power-saving for BT radio in
/etc/bluetooth/main.conf
underFastConnectable=true
.
A Real-World Benchmark
I ran Geekbench 6 ARM Linux build on a freshly flashed OnePlus One clocked at 2.46 GHz:
- Single-core: 168
- Multi-core: 560
Numbers sit between a Pi 4B (overclocked) and the 2020 Surface Laptop Go. LibreOffice Calc cold-starts in 8 s, Photoshop-esque GIMP with 12 MP image loads in 22 s. Entirely usable.
Upgrades That Pushed Us to the Limit
External GPU via USB-C
Tested a failed attempt with an RX 460 eGPU box—USB-C port lacks PCIe lanes. Stick to WebGL workloads (three.js
demos) handled by Mali-400 MP.
Switch to 5 GHz Wi-Fi Router, Kernel Modules
OnePlus One’s BCM4335 radio sees 5 GHz in original Android but UBports only enables 2.4 GHz. Download dhd.ko
from Samsung Galaxy S5 CyanogenMod 13 build; wi-fi 5 GHz appears, speed doubles from 72 Mb/s to 144 Mb/s sustained.
Repurposing Next Steps
- About-to-be-desktopped?: Mate it with
Remmina
VNC client to remote into a home server. - Need battery for a week-long trip?: Add a 20 000 mAh power bank, enable
energy-saving lock screen
mode, and runterminal-only
.