How to flash Kubuntu Phone on Nexus 5

Useful information can be found here:


The device must be connected to the Linux host with the USB cable all the time, unless told to reconnect. The device must also be unlocked and prepared to be flashed, see this page for details.

Configure the host device

Install Android tools.

On Ubuntu do:

sudo apt-get install android-tools* ubuntu-device-flash phablet-tools

Connect the device and type:


an output like this will come out:

Bus 004 Device 010: ID 18d1:4ee1 Google Inc. Nexus 4 / 10

18d1 is the vendor id, 4ee1 is the product id.

Numbers may change with other devices.

Create /etc/udev/rules.d/51-android.rules with:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", SYMLINK+="android_adb"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", SYMLINK+="android_fastboot"

replace vendor and product identifiers with yours.

Now Reload uev's rules to make these changes effective:

sudo udevadm control --reload-rules

Reconnect your device.


sudo adb devices

your device will be listed.

    1. Unlock the device

Go to the bootloader:

  • Power off the phone
  • Keep volume down and power pressed together until the bootloader is shown (the bootloader has an android with the lid open like this: android-az-bootloader.jpg)

From the Linux host type:

sudo fastboot oem unlock

Select "Yes" on the phone using volume keys, confirm pressing the power key once.

Now reboot:

sudo fastboot reboot

Since unlocking wipes data, Android will restart the first time wizard. Let the wizard come up, then press Power button to just power off the phone, you will not need to complete the wizard.

Install TWRP

TWRP is an alternative recovery image that offers a lot of flexibility and will be used to install Plasma Mobile.

Download TWRP version:

We assume that at this point the phone is off.

Go to the bootloader:

  • Keep volume down and power pressed together until the bootloader is shown (the bootloader has an android with the lid open like this: android-az-bootloader.jpg)

Now from the Linx host type (make sure the img-file is in the same directory where you start the command):

sudo fastboot flash recovery openrecovery-twrp-


  • Press volume up or volume down until the "Recovery Mode" option appears
  • Confirm pressing the power button

TWRP will now install (this might take a while).

Once installed, the TWRP main menu screen will appear.

Root phone

  • Tab Reboot
  • Tab Recovery
  • Swipe to Reboot
  • If asked to "Install SuperSU", swipe to confirm and root the device

Flash the device

Then connect the device to the host system via USB and boot into bootloader using volume up and the power button to switch off the phone.

  • start into TWRP
  • Pick Reboot, then "Bootloader"
ubuntu-device-flash --server="" touch \
--channel="kubuntu-phone/devel" --bootstrap --developer-mode \
--password 1234

or, if you want to live on the bleeding edge, flash the latest, untested image with:

ubuntu-device-flash --server="" touch \
--channel="kubuntu-phone/devel-proposed" --bootstrap --developer-mode \
--password 1234

("devel-proposed" instead of just "devel")

The device will at some point (ca 5min on my system with fast connection) show the ubuntu logo spinning. This takes another 5 minutes, then it reboots, the google logo shows, and shortly thereafter our spinning ubuntu logo again. After about 1 minute, it's done, and I'm greeted with the welcome screen.

Basic Device Setup

Install a fresh Ubuntu-phone vivid vervet image, either using multirom or by flashing directly. After installation and enabling developer mode, enable ssh:

Make sure the device is connected through your USB port, then log in to it using

sudo adb shell

Writable root

By default, the root filesystem is read-only. Not too useful for developers. A script is run on first boot to make it writable and makes a stamp file ```plasma-phone-devel-setup-run```, check this file exists then run

sudo reboot 

and it will boot up with writable root.

The verbose version (so you know what's going on):

sudo touch /userdata/.writable_image
sudo touch /userdata/.adb_onlock
sudo reboot

Enable SSH access

After reboot above for writeable root it should then run sshd, it will make the stamp file ```plasma-phone-devel-setup2-run```.

If not run it manually:

sudo ssh-setup

The verbose version (so you know what's going on):

sudo bash
echo manual > /etc/init/ssh.override
echo "exec /usr/sbin/sshd -D -o PasswordAuthentication=yes" >> /etc/init/ssh.override

sudo service ssh start
sudo setprop persist.service.ssh true
sudo reboot

Connect Wifi

We've included a small script which sets up a wifi connection (WPA-PSK) for NetworkManager. This can be run once writeable root is set up (as above).

wifi-setup SSID PASSWORD

If you're using a different security mechanism for your wifi network, it's time to read the nmcli documentation. Look into /usr/bin/wifi-setup for inspiration.

On and on...

Now follow the instructions for your Development Setup to get going.

This page was last edited on 5 February 2019, at 23:00. Content is available under Creative Commons License SA 4.0 unless otherwise noted.