VoLTE Implementation For Google Pixel 3a/3a XL
-
Just checking in to see if anyone is willing to help test to see if we can get VoLTE to work on the Google Pixel 3a with any version of Lineage OS. This will help determine if VoLTE is even remotely possible for the Google Pixel 3a. We will need to look at several carriers. If you try this out, please list the following:
Android Version (We currently think the VoLTE patch is in Android 12.1.)
Lineage OS Version
Phone Version (sargo or bonito)
Phone Carrier
CountryIf Lineage OS can detect VoLTE, this can give some hope that we may be able to get VoLTE working in the Google Pixel 3a for Ubuntu Touch.
-
Some more info on the VoLTE Patch. It looks like it only supports Verizon and Unlocked Google Pixel 3a models in the US. Not sure about international models. Similarly, the patch only enables VoLTE Roaming which has to be allowed by the carrier. The patch was available as an OTA update to Android 12 on June 2022.
https://www.xda-developers.com/google-pixel-3a-june-2022-update/
Additional information on installing and testing the Google Pixel 3a with Android 12 to see if your carrier supports VoLTE Roaming.
https://www.androidinfotech.com/37846-install-google-pixel-3-xl-volte-roaming-support-update/
If VoLTE works for you with Android 12, then we know we can move forward with seeing if we can get this incorporated into Ubuntu Touch. If this does not work for anyone, then we will need to switch to a different device if we want VoLTE. It has already been confirmed that not all carriers support this update. Even though VoLTE roaming is enabled on the phone with the Android update, the carrier will drop the calls down to 2G, even with the Android 12 VoLTE patch. It is important to ensure both the phone and the carrier is supported with VoLTE Roaming capabilities for the Pixel 3a. Even if we get everything to work, we will probably be looking at a much smaller population than all Google Pixel 3a/3a XL Ubuntu Touch users getting VoLTE because of this nuance.
-
I'm willing to help test. I have Verizon, live in the USA, and have VoLTE working on the latest version of LineageOS for MicroG. How can I help?
Also, can I get some elaboration on the super partition problem? It doesn't seem to be an issue for Postmarketos on a mainline kernel.
-
After forking and building myself, I assume these lines have something to do with it?
cp: cannot stat 'partitions/*': No such file or directory System image: Applying update: halium_halium_arm64.tar.xz cp: cannot stat 'partitions/*': No such file or directory System image: Applying update: device_sargo.tar.xz System image: Applying update: version.tar.xz cp: cannot stat 'partitions/*': No such file or directory losetup: /dev/loop0: detach failed: No such device or address
Can these be fixed by tinkering with the build script or the kernel?
-
@atarilinux I've been using a pixel 3a with volte for several months on lineage with no problems.
Android version: 15
LineageOS version: 22.2-20250607-NIGHTLY-sargo
Phone Version: Sargo
Phone Carrier: Amaysim (Optus)
Country: Australia -
I think that's the error. The issue was brought up on the QA call. Please see the link below.
https://m.youtube.com/watch?v=Ox9HLXrOkIg&pp=0gcJCa0JAYcqIYzv
More info on the Ubuntu Touch porting process can be found below.
https://docs.ubports.com/en/latest/porting/introduction/index.htmlIf the super partition issue can be addressed, I'm assuming the rest will follow as that was the main issue stated on the call. Unfortunately, I'm new to this, so it will take me a while to read up, fiddle with the code, take notes, and make any necessary changes. Any help with this is greatly appreciated!
-
Good to know! Thanks so much! The current Ubuntu Touch VoLTE port in development left off on Android 12.1. The current production-ready Ubuntu Touch port (without VoLTE) is based around Android 9. We can certainly use this information as a reference for any new Google Pixel 3a Ubuntu Touch ports!
-
I have some more info on the error message and the super partition.
On the cannot stat error:
https://stackoverflow.com/questions/34254164/getting-an-error-cp-cannot-stat-when-trying-to-copy-files-from-one-folder-to-anPostmarket OS has some info on the super partition and dynamic partitions:
https://wiki.postmarketos.org/wiki/Android_dynamic_partitionsFrom the Android documentation:
https://source.android.com/docs/core/ota/dynamic_partitions/implementNow we just have to see how we can put this all together for Ubuntu Touch.
-
I found something else that may be similar on the forums. It is regarding Fairphone 4 though...but there is a partition issue. There may be something we can glean from here.
-
Furthermore, Lineage OS has a recent build that should incorporate the retro-fitted super partition changes for the Google Pixel 3a. See below the github page.
https://github.com/orgs/LineageOS/repositories?q=android_device_&type=all&language=&sort=
-
@atarilinux All modern UT devices already work with the super partition. I don't understand what you mean by "implementing" it, the only thing UT has to do is mount them, which is already done.
-
@fredldotme mentioned having an issue with the retro-fitted super partition for the Google Pixel 3a build on a QA call. He stated that we will need to figure that part out to get it working. When the Google Pixel 3a Android 12-based Ubuntu Touch port was trying to be built, we get the following error messages below, which refernces the partitions. If this has already been worked out on other Ubuntu Touch ports can the fix be applied to this one, or is this a different issue entirely? Any insight is recommended! Thanks!
cp: cannot stat 'partitions/': No such file or directory
System image: Applying update: halium_halium_arm64.tar.xz
cp: cannot stat 'partitions/': No such file or directory
System image: Applying update: device_sargo.tar.xz
System image: Applying update: version.tar.xz
cp: cannot stat 'partitions/*': No such file or directory
losetup: /dev/loop0: detach failed: No such device or address -
@atarilinux The
cp
error is normal and happens on all builds, the actual problem is the last one. From my understanding based on an older discussion in the porting telegram group, the retrofitted partition is used for older devices which didn't have the new super partition. However, it shouldn't be impossible to get it working, as others got their device booting, mounting the android partitions is necessary only for getting the android container running.Anyways, more experienced people are active on the telegram group, so you may want to ask them.
-
Yes, that is correct. The retro-fitted partition is what the Google Pixel 3a uses. Thanks for helping with reading the error! I'll see what I can find out on this. If you know of anyone who may have some insight, can you let them know this is something we are looking to get resolved?
As we understand it, VoLTE works with a more recent version of Android. We are hoping to make this possible for the Google Pixel 3a on Ubuntu Touch as well. It has been confirmed that other alternative OS's already have VoLTE implemented for the Google Pixel 3a, so I think we have some resources we can potentially pull from if we need to. I'm not entirely sure what is being discussed on Telegram or if people may already be looking this.
-
@atarilinux No prob. So you know, I've just ordered a Pixel 3a XL for playing around on so if you'd like any specific versions of lineage tested for VoLTE, let me know. I gather that testing with a version based on 12.1 is the one you're most interested in?
-
Thanks so much! Yes, that is correct! We are currently looking at Android 12.1 for two reasons:
- The unfinished Ubuntu Touch port is based around this version.
- This version is supposed to have the VoLTE patch included.
The current struggle seems to be with the retro-fitted super partition, but it seems like this has already been worked out with other Ubuntu Touch ports. If we can get whatever worked for them applied to this port, we may be able to get this working if I understand the recent comments correctly. We may have other issues down the line, but that looks like the first thing we need to address.
-
Just an added note on trying to troubleshoot the loop error:
Error:
losetup: /dev/loop0: detach failed: No such device or addressNote:
"Loop devices are provided by a kernel module. Therefore, you need special privileges to access them. You also need them to be exposed into your container, or you need to manually create the device files."I'm not sure if something may have changed between Android 9 and Android 12.1 for this. We would need to investigate this error in addition to the retro-fitted super partition issue.