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
    186 Posts 15 Posters 24.3k Views 5 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.
      • M Offline
        mr_growl
        last edited by mr_growl

        Current state of affairs:

        New Build Method (the one here: https://gitlab.com/mr-growl/ubports-ubuntu-touch-google-bonito-volte)

        • Builds successfully
        • boot.img doesn't boot to anything

        What I'd like to research regarding this is:

        • has any other community port used that method to make a successful android 12 port?

        • if so, I'd want to compare their repo to mine and see what I've missed.

        • how are the binary blobs being included in this build method

        Old Build Method (the one from the video and the halium website, steps documented here: https://gitlab.com/mr-growl/ubports-ubuntu-touch-google-bonito-volte/-/wikis/Building-halium-12-for-bonito

        • Builds successfully

        • boots into recovery

        • very clear where the vendor blobs need to be added

        For this method I need to figure out:

        • is the fixup-mountpoints script still relevant and if so, why isn't it in the build folder anywhere

        • are there any obvious flaws with using this method over the new one?

        Droidian

        • Documentation is straight forward

        • they provide api 32 (android 12L) rootfs zips that can be side loaded

        • their deployment instructions are more like lineage (which is a good thing)

        What I'd like to find out with them is:

        • has anyone in their community done a successful halium 12 port to any device

        • why do they have a separate sargo rootfs zip?

        • will an api 28 rootfs work with halium 12 (12.1 should be api 32)

        I think my next step is to do a droidian build following their docs and see what happens. I'm presuming that the boot.img produced should also work for ubports.

        Anyways... off to work 🙂

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

          @mr_growl said in VoLTE Implementation For Google Pixel 3a/3a XL:

          New Build Method

          It seems you used the standalone kernel method.
          Then to install to your phone, you have to apply the process described in Building, installing and running

          The boot.img will be flashed onto the boot partition of the phone. The system.img and rootfs.img are interchangable. rootfs.img is pushed to the data partition as ubuntu.img if you didn’t include systempart in deviceinfo’s cmdline. Otherwise, system.img is flashed to your system partition.

          About vendor blobs, in your case, they are already installed in a separate partition by android/lineage. UT will find this partition automatically (if you have not modified it)

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

            @Eric-H I had wondered if that was the case (about it just using what was already on the phone). Thanks for that info!

            With the stand alone kernel method, I flashed the boot.img but it would not boot into recovery. When i flashed the boot.img from the halium build it did boot the recovery, so I think I've missed something with the stand alone kernel method. I'll have another go at it, keeping in mind what you've said, and see if anything becomes apparent.

            Thanks again!

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

              @mr_growl
              Accordind to the deviceinfo file in your repo, you set systempart, thus you need to flash boot.img to boot and system.img to system (fastbootD might be needed).
              And maybe flashing dtbo.img to dtbo is needed too...

              Have you access to Telegram? You will find help in the group linked in the porting documentation.

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

                @Eric-H I tried a build without the systempart section (the droidian porting doc said to remove it) and then tried flashing just the boot.img and rootfs.img in fastbootd mode using these commands:

                fastboot flash boot boot.img
                fastboot flash userdata rootfs.img
                

                Also tried flashing the sytem.img using

                fastboot flash system system.img
                

                But that always fails saying it can't resize the partition.

                If anyone wants to play with the boot.img, it's in the artifacts from my latest build: https://gitlab.com/mr-growl/ubports-ubuntu-touch-google-bonito-volte/-/jobs/11808428371

                But it doesn't seem to do anything useful.

                I'll try to get on to telegram (it's not letting me in currently). I'm just guessing on the android stuff at the moment. Trying various combinations of images and commands, re-flashing android 12 inbetween attempts.

                Thanks all for suggestions on things to try. Much appreciated.

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

                  Might just go back a step and try getting a halium 9 build working, since I know that should actually work. Then maybe increment from there.

                  Eric HE 2 Replies Last reply Reply Quote 0
                  • Eric HE Offline
                    Eric H @mr_growl
                    last edited by Eric H

                    @mr_growl
                    I think halium 12 is required for VoLTE.

                    according to the porting doc and the history of the porting group, without the systempart option you have to

                    • flash boot img to boot, that's ok.
                    • rename root.img to ubuntu.img
                    • push ubuntu.img to userdata with adb
                      adapt and launch these command in recovery mode
                      adb shell mount /data; adb push ubuntu.img /data/
                      
                    • maybe flash dtbo.img to dtbo is required (I suggest to test first without flashing, then flash it if phone does not boot.
                    • do NOT flash system.img
                    • Ubuntu Touch for Xiaomi POCO X3 NFC Telegram group
                    • Ubuntu Touch installation guide for Xiaomi POCO X3 NFC / X3
                    M 1 Reply Last reply Reply Quote 0
                    • Eric HE Offline
                      Eric H @mr_growl
                      last edited by Eric H

                      @mr_growl said in VoLTE Implementation For Google Pixel 3a/3a XL:

                      Might just go back a step and try getting a halium 9 build working

                      The full system method will be discouraged/deprecated very soon
                      https://gitlab.com/ubports/docs/docs.ubports.com/-/merge_requests/675

                      • 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
                        last edited by

                        @mr_growl

                        To verify, you want me to see what I can find out on a Halium 12 stand-alone kernel method port. Is that correct? Again, thanks for all your hard work on this!

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

                          @Eric-H

                          Your comments and insight are always appreciated! Thanks for all the help!

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

                            For information, documentation has been updated.
                            The "install“ page can be found at
                            https://docs.ubports.com/en/latest/porting/build_and_boot/standalone_kernel_install.html

                            • 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
                            • M Offline
                              mr_growl @Eric H
                              last edited by

                              @Eric-H Thank you for the detailed instructions. I very much appreciate it.

                              Here's what I did:

                              1. boot into android recovery and do factory reset (to remove encryption)
                              2. boot into twrp (fastboot boot twrp.img) and go into terminal
                              3. unmount /data (/dev/block/mmcblk0p72)
                              4. format /data as ext4 (mk2sfs -t ext4 /dev/block/mmcblk0p72)
                              5. remount /data (mount /dev/block/mmcblk0p72 /data)
                              6. confirm it is now mounted at ext4 (mount)
                              7. push renammed rootfs.img to /data (adb push ubuntu.img /data/)
                              8. reboot into bootloader from twrp
                              9. boot into fastbootd (fastboot reboot fastboot)
                              10. flash boot (fastboot flash boot boot.img)
                              11. reboot... this takes me straight to the boot loader
                              12. flash dtbo (fastboot flash dtbo dtbo.img)
                              13. reboot... still goes back to boot loader

                              I'm doing the formatting to ext4 bit as I read somewhere that it is required (please let me know if this was a mistake)

                              I'm pushing ubuntu.img before flashing boot.img because flashing boot.img gets rid of recovery and fastbootd.

                              I'm still feeling like there's a problem with my boot.img, as if I flash the boot.img from my halium build, it actually boots to recovery and fastbootd.

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

                                @mr_growl
                                userdata
                                yes formating /data to ext4 is required at first installation
                                Just in case maybe retry with fastboot

                                fastboot format:ext4 userdata
                                

                                you can wipe cache partition too

                                fastboot format cache
                                

                                What does dmesg -w return on your host computer ?

                                https://docs.ubports.com/en/latest/porting/build_and_boot/Boot_debug.html

                                When your device boots it will likely stay at the bootloader screen.
                                [...]
                                To confirm that your device has booted correctly, on your host computer, run dmesg -w and watch for “GNU/Linux device” in the output. This confirms that you can establish an ssh connection to the device (see below). If you instead get something similar to “Halium initrd Failed to boot”, skip to telnet connection.

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

                                  @Eric-H Thank you again!

                                  Here's what dmesg has to say after my last flash attempt:

                                  [ 9780.171034] usb 1-2: new high-speed USB device number 40 using xhci_hcd
                                  [ 9781.164612] usb 1-2: New USB device found, idVendor=18d1, idProduct=4ee0, bcdDevice= 1.00
                                  [ 9781.164633] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
                                  [ 9781.164641] usb 1-2: Product: Pixel 3a XL
                                  [ 9781.164648] usb 1-2: Manufacturer: Google
                                  [ 9781.164654] usb 1-2: SerialNumber: XXXXXXXXX
                                  

                                  I'll wipe it again and try again with your last message in mind later. I completely forgot to check to boot debug documentation, so I'll have a read through that again as well.

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

                                    @mr_growl
                                    Which kernel do you use ?
                                    in device info,on one of your gitlab repositories, I see
                                    deviceinfo_kernel_source="https://github.com/mr-growl/android_kernel_google_msm-4.9.git"

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

                                      @Eric-H That is a fork of https://github.com/LineageOS/android_kernel_google_msm-4.9 which was what I got when setting up the manifests for the halium build. It came with a bonito_defconfig which I modified according to the stand alone kernel instructions and put in a branch called halium-12.0 . I verified after doing my stand along kernel build that it had indeed checked out that branch.

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

                                        @mr_growl
                                        If I had a pixel 3a, I'll try very quickly to flash/push Alfred's artifacts, and see the dmesg output.

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

                                          @Eric-H I just happen to know someone wiht a pixel 3a 🙂

                                          I tried flashing those artifacts just now and same result.

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

                                            @mr_growl
                                            Don't you see messages about console ?
                                            For example opening console: no such device

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

                                              @Eric-H I do not. It just sits at the bootloader.

                                              I see the porting documentation has been updated. I might just start again armed with some new insight after playing with other methods.

                                              Eric HE 1 Reply Last reply Reply Quote 0
                                              • First post
                                                Last post