UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    UT installation on Google Pixel 3a (step-by-step)

    Scheduled Pinned Locked Moved Google Pixel 3a/3a XL
    1 Posts 1 Posters 2.2k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • P Offline
        PhAndersson
        last edited by

        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

        • 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 ~/.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

        Xiaomi Mi A2 (16.04 OTA-25/stable) with 2 SIMs
        Daily driver: Google Pixel 3a (20.04 OTA-11/stable) [was: Nokia N900 (Maemo) from 2009].

        1 Reply Last reply Reply Quote 3
        • MrT10001M MrT10001 referenced this topic on
        • J johndoe referenced this topic on

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        • First post
          Last post