The present post does not contain any question. When I flashed my first phone with UT four years ago, I struggled a bit to gather all relevant information, so I'm offering the below procedure to the community in the hope that it may ease the journey of first-time users.
Disclaimer: this is a description of what worked for me. Use at your own risk. Flashing is performed from a PC installed with openSUSE Leap 15.6 -- some commands may need to be adapted if you use a different distro.
Important: if flashing the phone with either Android Flash Tool or the flash-all.sh script hangs / fails to detect the phone, DO try from a different PC if you can (I have a Lenovo laptop and a custom-built PC both installed with openSUSE Leap 15.6: I was never able to flash from the laptop, while the PC worked like a charm). It may also be worth trying different USB cables / USB ports.
Note: in the steps below, '#' denote commands that are executed as root, '$' denote commands that are executed as a regular user.
Android initial setup
Dev. env. installation on linux PC
-
unzip 'platform-tools' archive below ~/platform-tools/
-
edit ~/.bashrc to add ${HOME}/platform-tools to your PATH
-
install (update) 'android-udev-rules' package from build service
# zypper addrepo https://download.opensuse.org/repositories/hardware/15.6/hardware.repo
# zypper refresh
# zypper install android-udev-rules-20250314-lp156.51.1.noarch
(this also installs adb and fastboot by way of dependencies)
-
add your own user account to 'adbusers' group:
# usermod -aG adbusers <userID>
(logout/login)
# grep adb /etc/group
adbusers:x:453:<userID>
Unlock bootloader
-
turn phone on (regular mode). Unlock it
-
plug phone into PC
-
ADB connection detected by phone. Check box to always allow connection from PC (allow PC's RSA key fingerprint on device):
$ adb devices -l
List of devices attached
XXXXXXXXXX device usb:1-6 product:sargo model:Pixel_3a device:sargo transport_id:1
-
turn phone off
-
boot into Fastboot Mode
(volume down + power -- hold for 5")
Fastboot menu appears
$ fastboot devices -l
XXXXXXXXXX fastboot usb:1-6
-
unlock bootloader
$ fastboot flashing unlock
OKAY [ 0.133s]
Finished. Total time: 0.133s
-
phone screen prompts: do not unlock / unlock
(use volume keys to select, power button to confirm)
-> bootloader confirmed unlocked
-
turn phone off (use volume button to select option, power button to confirm)
Return phone to latest Android 9
(the steps below refer to the Android Flash Tool -- using the flash-all.sh script also works fine but starts with the phone booted into the bootloader)
-
check that 'adb' is not running
(otherwise, stop it with 'adb kill-server')
-
turn phone on the usual way
-
redo basic setup, as bootloader unlock returned it to factory default (see above)
-
reconnect to phone using 'adb devices' to get prompt to authorized PC and allow it
-
visit following URL in Chrome (authorise pop-ups in browser):
https://flash.android.com/
-
select device
-
select target build (PQ3B.190801.002)
-
DO NOT select to relock bootloader
-
click Install Build (confirm, accept license)
- DO NOT interact with device during flashing
- it reboots to fastboot
- reselect device in Chrome
-
flash successful -- power cycle device
-
reboot to Android 9, redo initial setup, enable dev. mode, USB debug, connect and allow PC, turn phone off
Flash phone with UbuntuTouch
-
install 'snapd' daemon
# zypper addrepo https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.6/ Snappy
# zypper refresh
# zypper in snapd
# systemctl enable snapd.apparmor.service
# systemctl start snapd.apparmor.service
# systemctl enable snapd.service
# systemctl start snapd.service
-
reboot
-
install UBports installer
# snap install ubports-installer
$ which ubports-installer
/snap/bin/ubports-installer
$ snap info ubports-installer
name: ubports-installer
summary: The easy way to install Ubuntu Touch on UBports devices.
publisher: UBports
store-url: https://snapcraft.io/ubports-installer
contact: https://github.com/ubports/ubports-installer/issues/new
license: GPL-3.0
description: |
A friendly cross-platform Installer for Ubuntu Touch. Just connect a
supported device to your PC, follow the on-screen instructions and watch
this awesome tool do all the rest.
commands:
- ubports-installer
snap-id: mq0sTMV7a8744UTRBwQHimStAqsGzbjj
tracking: latest/stable
refresh-date: 2022-09-11
channels:
latest/stable: 0.9.7-beta 2022-09-11 (435) 97MB -
latest/candidate: ?
latest/beta: 0.9.8-beta 2022-11-02 (445) 102MB -
latest/edge: 0.10.0 2023-04-23 (462) 103MB -
installed: 0.9.7-beta (435) 97MB -
-
switch ubports-installer to "edge" channel
$ snap refresh ubports-installer --edge
ubports-installer (edge) 0.10.0 from UBports refreshed
$ snap info ubports-installer
name: ubports-installer
summary: The easy way to install Ubuntu Touch on UBports devices.
publisher: UBports
store-url: https://snapcraft.io/ubports-installer
contact: https://github.com/ubports/ubports-installer/issues/new
license: GPL-3.0
description: |
A friendly cross-platform Installer for Ubuntu Touch. Just connect a
supported device to your PC, follow the on-screen instructions and watch
this awesome tool do all the rest.
commands:
- ubports-installer
snap-id: mq0sTMV7a8744UTRBwQHimStAqsGzbjj
tracking: latest/edge
refresh-date: today at 13:47 CET
channels:
latest/stable: 0.9.7-beta 2022-09-11 (435) 97MB -
latest/candidate: ?
latest/beta: 0.9.8-beta 2022-11-02 (445) 102MB -
latest/edge: 0.10.0 2023-04-23 (462) 103MB -
installed: 0.10.0 (462) 103MB -
-
start ubports-installer
$ ubports-installer
Gtk-Message: 19:40:25.179: Failed to load module "window-decorations-gtk-module"
Gtk-Message: 19:40:25.179: Failed to load module "colorreload-gtk-module"
info: Welcome to the UBports Installer version 0.10.0!
-
connect phone (off) via USB
-
click select device manually
-> Google Pixel 3a:3a XL
-
click "My device is unlocked"
-
select OS
-> Ubuntu Touch
-
click Install
-
Installation options:
- select channel
-> 20.04/stable
- check "wipe personal data"
- check "Flash system partitions using fastboot" (default)
- click OK
info: device selected: sargo
info: Installing Ubuntu Touch on your Google Pixel 3a/3a XL (sargo)
info: configuring...
info: settings: {"bootstrap":true,"wipe":true,"channel":"20.04/arm64/android9plus/stable"}
info: Downloading 3 files
info: Downloaded file 1 of 3
info: Downloaded file 2 of 3
info: Downloaded file 3 of 3
-
boot phone to bootloader, click Continue
(flashing firmware)
-
boot to recovery, click Continue
(if button fails, try adb reboot recovery)
=> shows 3-circles recovery logo and menu
info: Downloading 12 files
info: Downloaded file 1 of 12
info: Downloaded file 2 of 12
info: Downloaded file 3 of 12
info: Downloaded file 4 of 12
info: Downloaded file 5 of 12
info: Downloaded file 6 of 12
info: Downloaded file 7 of 12
info: Downloaded file 8 of 12
info: Downloaded file 9 of 12
info: Downloaded file 10 of 12
info: Downloaded file 11 of 12
info: Downloaded file 12 of 12
info: All done! Your device will now reboot and complete the installation. Enjoy exploring Ubuntu Touch!
(pushing files to phone)
-
phone reboots at the end
=> goes to longish 3-circles recovery logo animation while installing (may last a few minutes -- have patience)
-
phone reboots again
=> this time it boots to UT and asks you to perform the initial setup