UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. PhAndersson
    P
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 12
    • Posts 100
    • Groups 0

    PhAndersson

    @PhAndersson

    27
    Reputation
    28
    Profile views
    100
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    PhAndersson Unfollow Follow

    Best posts made by PhAndersson

    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      Another quick update.

      I'm really pleased to announce that I got the SharePlugin part of the app working as well. I successfully pushed a file from my Pixel 3a to my (Linux) laptop over BT, but even more importantly for me, I was able to push selected contacts to my car kit 🙂

      The user interface is still too rough for the app to be published as is (at this stage, you have to select the target device based on its MAC address, which is far from convenient), but I'm working on it.

      posted in App Development
      P
      PhAndersson
    • 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.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

      posted in Google Pixel 3a/3a XL
      P
      PhAndersson
    • RE: Dual-SIM + OTA-20 on Mi A2

      Status update:
      As it happens, I took the opportunity of having the phone on the dev channel to re-test an application that typically froze the GUI (the app called "Steps" -- I already opened a bug report on that specific issue). Turns out the behaviour was the same on v763, so I wanted to force a power cycle by rebooting the phone on the recovery image (Power + Vol+).

      But instead of the recovery menu, I was greeted by the spiralling animation: the phone was clearly installing something. When it finished rebooting, I was back on OTA-20, and both SIMs were still active!

      Following @DPITTI suggestion, I also removed v763 from the upgrade history.

      I'll now mark this post as "resolved". Many thanks to all those who contributed.

      posted in Xiaomi Mi A2
      P
      PhAndersson
    • RE: Installer crash when clicking on "Choose file" button

      @alter Thinking back about the whole sequence, I'm a bit concerned that my first failed attempt at flashing UT (before adapting the udev rules) may have left the phone in an "unexpected" state, which in turn caused the 2nd flashing attempt to fail with these ominous error messages.

      It is perhaps best at this point that use TWRP again to put Android9 back on the phone (in both slots), make sure the phone is bootable again, and retry the whole 'ubports-installer' process again.

      posted in UBports Installer
      P
      PhAndersson
    • RE: UBports flashing failed half-way

      @stanwood Thanks a lot for the advice.

      posted in Google Pixel 3a/3a XL
      P
      PhAndersson
    • RE: Dual-SIM + OTA-20 on Mi A2

      Just upgraded to OTA-20: the upgrade process itself went flawlessly, but the SIM card in slot #1 is no longer detected!

      • during startup, I'm prompted for only one PIN code (the prompt no longer identifies the SIM, but the code only matches SIM #2)
      • in "settings | mobile", only one SIM and matching operator is listed (the one for SIM #2)
      • same thing in the top-of-screen quick access bar
      • "setting | about" reports OTA-20

      Is there any information I could collect on the phone to help troubleshoot this?

      posted in Xiaomi Mi A2
      P
      PhAndersson
    • RE: Installer crash when clicking on "Choose file" button

      Problem has been resolved -- phone is now running UT OTA-19 stable.

      Details about the fix in the device-specific post (see URL in previous post). I'll now mark this one as resolved as well.

      Many thanks to all those who helped.

      posted in UBports Installer
      P
      PhAndersson
    • RE: UBports flashing failed half-way

      I just installed the phone with UBP-installer v0.10.0 -- everything went like a charm this time round.

      Many thanks to both of you for your support.

      posted in Google Pixel 3a/3a XL
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @lduboeuf said in Trying to revive 'ubtd' (Bluetooth file transfer):

      Congrats, So some changes are needed on UT to make it work ?

      If your question is: did I need to hack my phone to make the app work in its current state, then the answer is no. As suggested by @gpatel-fr, I just gave it an "unconfined" AA profile (which I understand would prevent me from publishing it on the OpenStore).

      So eventually an updated bluetooth AppArmor Policy Group would be needed, I guess (or a extra one dedicated to OBEX).

      posted in App Development
      P
      PhAndersson
    • RE: Dual-SIM + OTA-20 on Mi A2

      @dpitti The device initially came with Android 8.1, but I flashed it with v9 as recommended before proceeding with the UT installation.

      posted in Xiaomi Mi A2
      P
      PhAndersson

    Latest posts made by PhAndersson

    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @gpatel-fr said in Trying to revive 'ubtd' (Bluetooth file transfer):

      @PhAndersson

      excellent !
      For the record, I remember that you are using Focal on your phone. If you did not look at the last QA for Ubuntu Touch, there was a mention of the 'last' Focal OTA, meaning that 20.04 is on limited life support.

      Thanks for letting me know. I'll try to get myself a 3rd phone and flash it with Noble, so I can port the app to it while maintaining the original version for a little while.

      Do you know what device offers the best user experience under Noble?

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      Further update: I successfully tested the SharePlugin part of the app while using the enforcing AppArmor profile, which is great news.

      This means that only the main app (used for receiving files) will need an updated AA profile. But this will wait until after publication of the first version.

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @gpatel-fr said in Trying to revive 'ubtd' (Bluetooth file transfer):

      @PhAndersson

      there is no MR yet, it's for this issue

      OK, understood -- I take your point and I'll try to publish ASAP.

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @gpatel-fr said in Trying to revive 'ubtd' (Bluetooth file transfer):

      @PhAndersson

      how about setting up a public directory of what you have (if you have cleared the license question) ? It'll allow me to test it under Noble and possibly send a MR to gitlab once I'm sure that it works. Don't want to harass you of course, it's up to you to decide.

      Yes, the licensing issue has been cleared up. Michael Zanetti agreed with me using the GPL v3.

      What I'm working on right now is getting the code in a state where I could submit it on the OpenStore (with the understanding that it would need a full review as it still uses an unconfined profile). Of course, in the process, I will also push the code to a public Github repository.

      Can you clarify what the Gitlab merge request you mentioned would be about? I'm afraid I missed a step here.

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      Another quick update.

      I'm really pleased to announce that I got the SharePlugin part of the app working as well. I successfully pushed a file from my Pixel 3a to my (Linux) laptop over BT, but even more importantly for me, I was able to push selected contacts to my car kit 🙂

      The user interface is still too rough for the app to be published as is (at this stage, you have to select the target device based on its MAC address, which is far from convenient), but I'm working on it.

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @gpatel-fr said in Trying to revive 'ubtd' (Bluetooth file transfer):

      @PhAndersson said in Trying to revive 'ubtd' (Bluetooth file transfer):

      certain types of D-Bus requested are blocked by AA (such as AuthorizePush

      I have actually taken a look at the ubtd code and as I understand it AuthorizePush is a method defined by ubtd for obex.

      Correct -- it's still present in my current code.

      Looking at the Ubuntu touch bluez code with some dismay, it seems that this method is defined quite officially to allow the obex daemon to send data to a client, squarely fitting your use case, so why is there no apparmor policy for that ? As a wild guess, it looks like an oversight by Canonical that was forwarded by Ubuntu Touch - or even an oversight by Debian, forwarded by Canonical, forwarded by Ubuntu Touch. Maybe a bluetooth policy should exist.

      Well, there is a bluetooth policy group, and I used it. But it doesn't seem to cover that use case.

      Or maybe it already exists ? looking at usr.sbin.cupsd in my Kubuntu 24.04 installation, I see a string 'network bluetooth'. Maybe adding that to your apparmor profile could strike gold ? Absolutely wild guess of course 😉

      If you refer to the network and bluetooth policy groups, I already use both (as you will see in one of my earlier posts), but that was not enough.

      If there is a way to extend an app AA profile past the predefined policy groups offered by the platform, I would be interested. Can you point me to a doc. that covers it? I already tried hacking the .apparmor file provided with my app, but clickable didn't seem to approve 😕

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @gpatel-fr said in Trying to revive 'ubtd' (Bluetooth file transfer):

      @projectmoon said in Trying to revive 'ubtd' (Bluetooth file transfer):

      I think any spawning of external processes that are not inside the app's ~/.local/share directory require unconfined.

      If 'running an external process' means 'activating a service' via dbusk, not 'spawning', it can be done from confined I think. I did not check how exactly is working this application.

      Yes, that was my experience as well. Even with an enforcing AA profile, my app was able to ask D-Bus to start the OBEX daemon if needed.

      Only certain types of D-Bus requested are blocked by AA (such as AuthorizePush -- see log extract in one of my posts above).

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @lduboeuf said in Trying to revive 'ubtd' (Bluetooth file transfer):

      Congrats, So some changes are needed on UT to make it work ?

      If your question is: did I need to hack my phone to make the app work in its current state, then the answer is no. As suggested by @gpatel-fr, I just gave it an "unconfined" AA profile (which I understand would prevent me from publishing it on the OpenStore).

      So eventually an updated bluetooth AppArmor Policy Group would be needed, I guess (or a extra one dedicated to OBEX).

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      @gpatel-fr said in Trying to revive 'ubtd' (Bluetooth file transfer):

      @PhAndersson

      Great ! have happy file exchanges with your car 🙂

      That won't work yet, unfortunately. For this, I need the SharePlugin to work. That one still crashes as soon as I select it which causes the phone to restart.

      More troubleshooting needed 😕

      posted in App Development
      P
      PhAndersson
    • RE: Trying to revive 'ubtd' (Bluetooth file transfer)

      Well, good news! With the "unconfined" AA profile, the app works 🙂

      The phone successfully received a .jpeg file sent over BT from my laptop:

      screenshot20260121_110443517.png

      posted in App Development
      P
      PhAndersson