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
    154 Posts 14 Posters 21.9k Views 4 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.
      • A Offline
        atarilinux @mr_growl
        last edited by

        @mr_growl

        I haven't gotten a build going. I was still trying to get the process flow, etc. in order. It's all new to me, so any build would take me a long time as I want to know what happens on each step and why.
        Initially, I was trying to reverse engineer the original port and figure out what made it incomplete. Once I got to that point, I would complete the port. Doing that on my own is a bit difficult, but I'm detailing things as I come across them. My technical expertise is in a different area than this one, so there is a lot to learn.

        If you want to give me the steps and builds, I'd be happy to test further!

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

          @atarilinux I tested bulding on fresh installs of ubuntu server 20.04 and 22.04. Have a look at the readme in this repo: https://gitlab.com/mr-growl/ubports-ubuntu-touch-google-bonito-volte

          Run the apt commands, checkout the repo and run the other 3 commands and you should end up with the.img files. I'd recommend 24GB of ram. 16 and a good swap file or 8 and a really good swap file. 60GB of disk is plenty for the OS and the builds. On the first successful build I did I only had 8gb of ram and 20gb of swap and it took ages but it built... before that it'd just keep erroring out (if you see an error 137, that's it saying you need more ram/swap).

          That repo links to two other of my repos which I made some changes in to get it building with one command.

          So to recap:

          1. set up a vm/machine with ubuntu server 22.04 or 20.04 with 24GB ram and 60gb disk (all defaults during the install
          2. follow the readme on the repo linked above.

          If you encounter any problems let me know but it should just go. Expect an hour all up to set up and run the build.

          I'll read through the articles you sent through tonight and see what I can make of it.

          Good luck!

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

            @mr_growl

            Thanks so much for the info and for building the port! My main Linux computer doesn't have enough power to run those specs natively unfortunately, but I can check what solutions I have. The virtual machine option would probably be the most promising thing for me rather than trying to run it on my local machine. I'll keep you posted as I work through it. Thanks again!

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

              @atarilinux Ya, my first build was on a very low spec machine. It can be done but is not fun 🙂

              I'm taking a page out of what you said earlier and am going on a mission to try to understand the process a bit more. I'm starting with building lineage os 19.1. The instructions seem pretty straight forward so seems like a good place to start.

              Documenting the steps I ran to get a working lineage 19.1 bonito build on ubuntu server 22.04 here:
              https://gitlab.com/mr-growl/ubports-ubuntu-touch-google-bonito-volte/-/wikis/Building-Lineage-19.1-for-Bonito

              This is being run on a system with < 8GB ram, so included steps to make a big swapfile at the top. VM specs are 2 i5 cores, 240GB disk, 7GB ram, 24GB swapfile

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

                @mr_growl

                Yeah, max RAM I have is 16GB, but on an ARM based computer. With this one, I would have to virtualize x64 which would have a knock on performance. The main x64 Linux computer has 8GB. Not ideal. Let's just say I have been on the market for a better computer for a while. Hahaha

                Let me see what I can work out. Thanks for the steps and the build!

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

                  @mr_growl

                  Looks like I got something running in a virtual machine, but it is very, very slow probably due to the instruction translations to the ARM processor among other factors. Needless to say, it can run, but it will take forever under these specs if it doesn't crash. I've been eyeing a desktop PC for a while. I might have to take the plunge when the means become available. If I can't get this to work on my hardware, I will let you know.

                  M 1 Reply Last reply Reply Quote 0
                  • IanI Ian referenced this topic
                  • M Offline
                    mr_growl @atarilinux
                    last edited by

                    @atarilinux Memories of building linux kernel in the 90s 🙂

                    The lineage build is taking me a lot more time to build than the ubports one but I'm still plodding along on that for now. I'm hoping the lineage build will be an enlightening endeavour 🙂

                    One part about the ubports build that I'm unsure about is the vendor blobs. With the lineage build I extraced the blobs from my phone and added them into the source but I haven't noticed a step like that for the ubports build.

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

                      @mr_growl

                      Hahaha It definitely feels like the 90s! I better get some techno or grunge playing while I'm working on this. Hahaha

                      Yes, when comparing different alternative OS builds, I noticed the same thing. I got stuck on where exactly these should go as I didn't notice anything similar in the Ubuntu Touch documentation. That led me back to trying to trace the original port and other ports to see what happens where and where these vendor blobs should go. Also, I don't know the last time the documentation has been reviewed and updated. For example, I still see the Nexus being referenced and that is from 16.04. I'm not sure how much has changed since then on the porting side. Also, there may be some things that could be left out either by accident or "like, of course, you should know you have to do XYZ, why do I need to write that?" which may confuse the new or average user. This is not a problem limited to just Ubuntu Touch. Other systems have similar omissions in their documentation sometimes. Overall, the documentation so far is great, but I do notice there are some places where I'm having questions, and it sounds like it is not just me. Maybe reading additional material is confusing me? I'm not sure. Anyway, I'll see what I can find out, and if I notice anything, I'll post it here.

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

                        @mr_growl

                        I did find this in the forum as a Port QA Checklist. Still looking into the vendor blobs.

                        https://gitlab.com/ubports/community-ports/general/-/blob/master/DeviceChecklist.md

                        M 2 Replies Last reply Reply Quote 0
                        • M Offline
                          mr_growl @atarilinux
                          last edited by

                          @atarilinux I've just finished and flashed my own build of lineage 19.1... for comparison, the ubports build takes me about 1 hour... the lineage build took closer to 20 hours on the same machine... so I really feel like something might be missing 🙂

                          That said, it may be that the lineage build is building everything where as the ubports build is downloading the GSI rootfs and such... I dunno... still learning.

                          I think my next step is to follow the halium documentation and correlate that with the Droidian porting documentation. I do have a suspicious about where and when the blobs might need to be added but just need to go over everything again and let it sink in a bit. Anything I discover I'll document on the wiki for the repo I'm working in on gitlab and will link to here.

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

                            @atarilinux Also worth mentioning for your setup... in the Droidian porting guide is mentions:

                            this guide assumes that you're going to cross-compile an arm64 Android kernel on an x86_64 (amd64) machine using the Android-supplied precompiled toolchain that's available in the Droidian repositories. It's trivial to disable cross-compiling and compiling using the standard Debian toolchain.
                            

                            which says to me that you can compile it on your arm64 machine without having to use any x86 stuff.

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

                              @mr_growl

                              That's a huge time difference! I likewise feel like something is missing. Perhaps looking back at the original Pixel 3a/3aXL Ubuntu Touch 20.04 port could shed some light too. I'm assuming that these should have relatively the same file "structures." A vendor blob should be in there somewhere I'd imagine.

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

                                @mr_growl

                                Good to know! It is a Mac for whatever that's worth. At the time, I wanted to try something different, and now, I'm missing Linux every time. Hahaha

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