UT installation on Google Pixel 3a (step-by-step)
- 
 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.shscript 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- 
unbox and fully charge phone (do not turn on yet) 
- 
insert SIM, turn phone on - 
select language (English UK) 
- 
click Get Started 
- 
connect to WiFi (provide credentials) 
 -> "getting your phone ready..."
- 
"Copy apps & data" -> select "Don't copy" 
- 
Google account sign-in -> login 
- 
Accept conditions 
- 
set a PIN 
- 
Continue setup or get reminder -> get reminder 
- 
Unselect all optional apps 
- 
Settings -> System -> Updates 
 (Android 12, build SP2A.220505.008)
- 
Settings -> About Phone 
 tap "Build number" 7 times, enter PIN to confirm
 -> "you are now a developer"
- 
Settings -> System -> Developer Options: - enable USB debugging
- allow OEM unlocking, enter PIN to confirm
 
 
- 
- 
turn phone off 
 Dev. env. installation on linux PC- 
unzip 'platform-tools' archive below ~/platform-tools/
- 
edit ~/.bashrcto add${HOME}/platform-toolsto 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 adbandfastbootby 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.shscript 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-installerto "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
 
- select channel
 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
 
- 
 
- 
- 
 M MrT10001 referenced this topic on M MrT10001 referenced this topic on
- 
J johndoe referenced this topic on