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

    VoLTE Implementation For Google Pixel 3a/3a XL

    Scheduled Pinned Locked Moved Google Pixel 3a/3a XL
    volte
    107 Posts 14 Posters 7.6k Views 2 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.
      • Eric HE Offline
        Eric H @atarilinux
        last edited by Eric H

        @atarilinux
        AFAIK, these devices use a super partition, but not a retro-fitted one.
        But, I don't think the build system is aware of the partition type.

        • Ubuntu Touch for Xiaomi POCO X3 NFC Telegram group
        • Ubuntu Touch installation guide for Xiaomi POCO X3 NFC / X3
        A 1 Reply Last reply Reply Quote 0
        • A Offline
          atarilinux @Eric H
          last edited by

          @Eric-H

          Unfortunately, the Google Pixel 3a uses a retro-fitted partition for Android 12.1 and not the common super partition used in newer Android devices. According to the QA call:

          Issues with building/installing:
          *Issue with getting image on phone
          *Has retrofitted system super-partition, this means two partitions act as they are one
          *Has not been installed in this type of environment, we would need to figure it out

          Also, the build was not completed.

          It very well possible that this was figured out with these other device ports. However, these issues would need to be worked out with this Google Pixel 3a build as I understand it. I'm assuming that is why this build is not considered complete.

          Eric HE 1 Reply Last reply Reply Quote 0
          • Eric HE Offline
            Eric H @atarilinux
            last edited by

            @atarilinux

            1. You have a retro-fitted super partition
            2. You have images
            3. You have the procedure to flash images in retro-fitted super partition : https://source.android.com/docs/core/architecture/bootloader/fastbootd#dynamic-partitions

            What else ?

            • Ubuntu Touch for Xiaomi POCO X3 NFC Telegram group
            • Ubuntu Touch installation guide for Xiaomi POCO X3 NFC / X3
            A 1 Reply Last reply Reply Quote 0
            • M Offline
              mr_growl @atarilinux
              last edited by

              I flashed lineage 19.1-20231014-nightly-bonito-signed (which the wiki said should have android 12.1):

              Android Version: 12 (according to the running system on the phone)
              Lineage OS Version: 19-20231014-NIGHTLY-bonito
              Phone Version: bonito
              Phone Carrier: Amaysim (Optus)
              Country: Australia

              VoLTE is working just fine.

              A 1 Reply Last reply Reply Quote 0
              • A Offline
                atarilinux @Eric H
                last edited by

                @Eric-H

                What you have stated above is correct to the best of my knowledge. Here is the other part from the QA call:

                *Source Material - Not Image
                *Information on image build process, but not how to install it
                *Built on top of latest Android 12.1 version for the Google Pixel 3a, but build not completed

                So....it looks like we need to:

                1. Finish the build (This part is the least specific. Finish what? This is the main issue due to it not being specific. Maybe it is only the retro-fitted partition issue? A lot of data may need to be checked to see what is complete. Here is the bottleneck in completing development.)
                2. Build the image from source
                3. Install image on the Google Pixel 3a

                What we have currently:

                1. Information on the retro-fitted partition and possible install process
                2. Confirmation on VoLTE access for the Google Pixel 3a from other alternative OS's and carriers (It is possible!)
                3. Specifically what to look for to see if the carrier supports your Google Pixel 3a (VoLTE Roaming is supported, Hardware check from carrier)
                E 1 Reply Last reply Reply Quote 0
                • A Offline
                  atarilinux @mr_growl
                  last edited by

                  @mr_growl

                  Great news! Thanks for sharing! I think we are closer. Please see my last post to @Eric-H to see where we are now and the remaining items we will need to figure out.

                  1 Reply Last reply Reply Quote 0
                  • E Offline
                    ElliotLurie @atarilinux
                    last edited by

                    @atarilinux

                    It seems like some data is lost from the deviceinfo file during the build process... Here's the output of unpack_bootimg after the build:

                    kernel_size: 18686554
                    ramdisk size: 6267912
                    os version: 12.0.0
                    os patch level: 2022-09
                    boot image header version: 3
                    command line args: 
                    
                    A 1 Reply Last reply Reply Quote 1
                    • F Offline
                      FPSensor
                      last edited by

                      when the retrofitted partitions were implemented by pixel 3a stock rom? someone knows that? also would be nice to see if there are more devices that have retrofit to see how they merged it in the build system or what they adapted to get it working, i don remember what loop0 is to be honest

                      A 1 Reply Last reply Reply Quote 0
                      • A Offline
                        atarilinux @ElliotLurie
                        last edited by

                        @ElliotLurie

                        Thanks! I'll see what I can find out on that. I'm new to this, so it may take me a while. However, looking at the older port and some other ports, I may be able to piece something together.

                        1 Reply Last reply Reply Quote 0
                        • A Offline
                          atarilinux @FPSensor
                          last edited by

                          @FPSensor

                          Agreed. I do see some retro-fitted partiton ports with other alternative OS's. There could be one with Ubuntu Touch too, but I'm not fully aware of one at the moment. Mainly I see Super Partition ports or older Android 9 based ports. There is some documentation that we currently have available for retro-fitted partitions. Any knowledge on this can be shared across the Ubuntu Touch community.

                          Right now, it looks like we need to figure out what is going on with the deviceinfo file.

                          1 Reply Last reply Reply Quote 0
                          • A Offline
                            atarilinux
                            last edited by

                            I got some information on the deviceinfo file, the Fastbootd process, and Retrofit partitions. Now I need to piece everything together, look at the code in the port, and see why some data is lost in the DeviceInfo file after the build process.

                            Android API for DeviceInfo
                            https://developer.android.com/reference/androidx/media3/common/DeviceInfo.Builder

                            DeviceInfo file reference from PostMarket OS
                            https://wiki.postmarketos.org/wiki/Deviceinfo_reference

                            DeviceInfo Flash Methods
                            https://wiki.postmarketos.org/wiki/Deviceinfo_flash_methods

                            Using Fastbootd and Retrofit Partitions
                            https://wiki.postmarketos.org/wiki/Android_dynamic_partitions

                            Eric HE 1 Reply Last reply Reply Quote 0
                            • Eric HE Offline
                              Eric H @atarilinux
                              last edited by Eric H

                              @atarilinux
                              The UT deviceinfo file for the new port of sargo/bonito can be found here : https://gitlab.com/ubports/porting/community-ports/android12/google-pixel-3a/google-sargo/-/blob/main/deviceinfo?ref_type=heads

                              deviceinfo_kernel_cmdline is empty and should probably be completed.

                              The documentation is available at https://docs.ubports.com/en/latest/porting/build_and_boot/standalone_kernel_build.html#filling-in-your-deviceinfo

                              There is also a sample file : https://gitlab.com/ubports/porting/community-ports/halium-generic-adaptation-build-tools/-/blob/main/deviceinfo.sample?ref_type=heads

                              • Ubuntu Touch for Xiaomi POCO X3 NFC Telegram group
                              • Ubuntu Touch installation guide for Xiaomi POCO X3 NFC / X3
                              A 1 Reply Last reply Reply Quote 1
                              • A Offline
                                atarilinux @Eric H
                                last edited by

                                @Eric-H

                                Thanks! I'll take a look at this!

                                1 Reply Last reply Reply Quote 0
                                • AetheralMeowsticA Offline
                                  AetheralMeowstic
                                  last edited by

                                  Well, since all US carriers require VoLTE and Android's about to implode in 2027, we kinda need to get at lease one device with Ubuntu Touch to support VoLTE.

                                  arubislanderA 1 Reply Last reply Reply Quote 0
                                  • AetheralMeowsticA Offline
                                    AetheralMeowstic @Eric H
                                    last edited by

                                    @Eric-H But does the Halium 12 port have VoLTE?

                                    Eric HE 1 Reply Last reply Reply Quote 0
                                    • arubislanderA Offline
                                      arubislander @AetheralMeowstic
                                      last edited by

                                      @AetheralMeowstic There are several devices that support VoLTE. However the Pixel 3a / XL is not (yet?) among those.

                                      🇦🇼 🇳🇱 🇺🇸 🇪🇸
                                      Happily running Ubuntu Touch
                                      Google Pixel 3a (24.04 preview)
                                      JingPad (24.04 preview)
                                      PinePhone OG (20.04)
                                      Meizu Pro 5 (16.04 DEV)

                                      1 Reply Last reply Reply Quote 0
                                      • Eric HE Offline
                                        Eric H @AetheralMeowstic
                                        last edited by Eric H

                                        @AetheralMeowstic
                                        in the new halium 12 port for sargo and bonito, VoLTE is configured, yes, but the port is not finalized.

                                        • Ubuntu Touch for Xiaomi POCO X3 NFC Telegram group
                                        • Ubuntu Touch installation guide for Xiaomi POCO X3 NFC / X3
                                        1 Reply Last reply Reply Quote 0
                                        • A Offline
                                          atarilinux
                                          last edited by

                                          @mr_growl

                                          Do you still have Lineage OS on your phone? We are looking at completing the device info file for this port. The kernel cmdline part is missing. Please see below from the KB Knowledge base. I'm thinking we can pull this info from Lineage OS and use it here if I am understanding correctly.

                                          The kernel cmdline is one of the key things that is required to make the kernel boot. It has special parameters that allow the kernel to determine which features/things need to be enabled, and which need to be disabled. The Ubuntu Touch rootfs also relies on some key cmdlines which is required to boot, most specifically “console=tty0”. To adapt this to your device, try unpacking your boot image (section 8.3) and copying the cmdline from there, or take the help of a LineageOS device tree if it is available. “console=tty0” is a must for cmdline and should not be removed no matter what. Rest of the things can be removed and you can adjust these to your device. console=tty0 is a requirement for the rootfs to properly boot. systempart is added if you want to boot your rootfs from your system partition. It is supposed to point to your system partition.
                                          deviceinfo_kernel_cmdline="console=tty0 bootopt=64S3,32N2,64N2 systempart=/dev/mapper/system"

                                          M J 4 Replies Last reply Reply Quote 0
                                          • A Offline
                                            atarilinux
                                            last edited by

                                            @AetheralMeowstic

                                            We have confirmed VoLTE is possible with Ubuntu Touch for the Google Pixel 3a. The VoLTE patch is included in this port. We just need to finish this port to get everything up an running. Currently, we need to get the device info file built.

                                            The Ubuntu Touch community does see the need to get VoLTE up and running for those in the US and elsewhere. A number of phones are already running VoLTE. However, a number of these may be hard to get in the US or expensive. For example, the Fairphone 5 can run VoLTE in the US. Trying to find one in the US may be difficult or expensive. That is part of the reason why we are trying to get this port up and running. This could also help our European friends and others if their carrier has not dropped the Google Pixel 3a or does not include VoLTE Roaming.

                                            Unfortunately, the original developer's carrier dropped the Google Pixel 3a, and this is the main reason why this port is unfinished. We already have confirmed that some carriers in the US still support the Google Pixel 3a and VoLTE Roaming. Therefore, we can continue this project for the original developer. We are always looking for people to help test and contribute!

                                            1 Reply Last reply Reply Quote 1
                                            • M Offline
                                              mr_growl @atarilinux
                                              last edited by

                                              @atarilinux Here's what /proc/cmdline says for lineage 19.1 on Bonito:

                                              rcupdate.rcu_expedited=1 rootwait ro init=/init androidboot.bootdevice=7c4000.sdhci androidboot.baseband=sdm androidboot.keymaster=1 msm_drm.dsi_display0=dsi_sofef00_sdc_1080p_cmd_display::timing0 androidboot.force_normal_boot=1 androidboot.serialno=99BAX0K5LP androidboot.slot_suffix=_a androidboot.slot_retry_count=0 androidboot.slot_successful=no androidboot.hardware.platform=sdm670 androidboot.hardware=bonito androidboot.revision=MP1.0 androidboot.bootloader=b4s4-0.4-8048689 androidboot.hardware.sku=G020A androidboot.hardware.radio.subtype=2 androidboot.hardware.dsds=0 androidboot.secure_boot=PRODUCTION androidboot.cdt_hwid=0x05032802 androidboot.hardware.majorid=0x03 androidboot.dtb_idx=0 androidboot.dtbo_idx=8 androidboot.bootreason=reboot androidboot.hardware.ddr=4GB,Hynix,LPDDR4X androidboot.ddr_info=Hynix androidboot.ddr_size=4GB androidboot.hardware.emmc=64GB,SKHynix androidboot.cid=00000001 androidboot.boottime=0BLE:530,1BLL:62,1BLE:446,2BLL:126,2BLE:579,SW:10020,KL:1,KD:106,ODT:117,AVB:496,AFTL:0 androidboot.ramdump=disabled androidboot.blockchain=disabled usbcfg.suzyq=disabled androidboot.hardware.pcbcfg=BPPV androidboot.hardware.devcfg=B4VP root=PARTUUID=366e8a1b-1c20-45e6-b794-df754b290cfe androidboot.verifiedbootstate=orange androidboot.aftlstate=8 printk.devkmsg=on msm_rtb.filter=0x237 ehci-hcd.park=3 service_locator.enable=1 firmware_class.path=/vendor/firmware cgroup.memory=nokmem lpm_levels.sleep_disabled=1 loop.max_part=7 androidboot.boot_devices=soc/7c4000.sdhci androidboot.super_partition=system buildvariant=userdebug console=null
                                              

                                              Is that what you were looking for?

                                              A 1 Reply Last reply Reply Quote 1
                                              • First post
                                                Last post