Divested-Mobile / DivestOS-Build

Everything needed to build DivestOS, a more private and more secure aftermarket mobile operating system.
https://divestos.org/index.php?page=build
Other
226 stars 31 forks source link

Making VoLTE work on capable devices #289

Closed dktzde closed 4 months ago

dktzde commented 9 months ago

All requirements are met. I had the same phone before on LineageOS (incl. GApps) and VoLTE worked with Telekom.de without any problems.

I have DivestOS installed. I have locked the bootloader.

LTE works. When I make a call I get a fallback to the 2G network.

There is no VoLTE setting in the menu.

What else could I try to make it work? Is there a way to add the network operator settings on DivestOS?

SkewedZeppelin commented 9 months ago

DivestOS removes numerous proprietary carrier blobs, so VoLTE works if it works and doesn't if it doesn't. https://divestos.org/pages/faq#volte

dktzde commented 8 months ago

I tested it on Telekom-de and o2-de with the same problem.

If you're considering changing something with the carrier blobs for DOS 21, I'll be very happy to help with betatesting.

dktzde commented 6 months ago

Same for raven: tested on Telekom-de and o2-de with VoLTE not working.

@SkewedZeppelin Is there perhaps a place where this information could be collected? I'm sure I'm not the only one for whom VoLTE is important.

Should I assume that all mobile phones that are not listed there do not work with VoLTE? https://divestos.org/pages/faq.html#volteTested

ethical-haquer commented 6 months ago

I experienced the same issue, Pixel 3 with ATT. I hope that VoLTE support can be added for blueline eventually, for now I'm running CalyxOS.

SkewedZeppelin commented 6 months ago

Should I assume that all mobile phones that are not listed there do not work with VoLTE?

Most devices after 2016/2017 do support VoLTE. The issue is having the actual configs for your carrier available.

This is unlikely to be fixed.

Having a way of collecting, inspecting, and adding updated MBN configs would likely dramatically help, however that is an extremely non-trivial task.

ethical-haquer commented 6 months ago

Should I assume that all mobile phones that are not listed there do not work with VoLTE?

Most devices after 2016/2017 do support VoLTE. The issue is having the actual configs for your carrier available.

This is unlikely to be fixed.

Having a way of collecting, inspecting, and adding updated MBN configs would likely dramatically help, however that is an extremely non-trivial task.

Thanks for the reply! What would make flame (Pixel 4) and taimen (Pixel 2 XL) work with VoLTE, but not the Pixel 3? Would someone getting the MBN configs from a Pixel 3 help at all? TIA.

SkewedZeppelin commented 6 months ago

VoLTE works on all the Pixel's supported by DivestOS.

Again it just depends if the config for your carrier is included or not. And they aren't something easily sourced as they can be modem dependent.

dktzde commented 6 months ago

@SkewedZeppelin Thank you for the detailed answer. I finally understand the issue.

Should I assume that none of the Pixel smartphones currently work with my carriers (Telekom-de, o2-de)?

Can you recommend a smartphone I can test that is more likely to work with VoLTE in Germany?

dktzde commented 6 months ago

@ethical-haquer

OT: What will you use when CalyxOS support ends? I tried CalyxOS some time ago and was unhappy with the ASB delay on Pixel 3 earlier this year. At the moment, I use DivestOS on one Pixel and still LinageOS with GApps on the other, but I consider to switch to IodéOS on the second one.

SkewedZeppelin commented 6 months ago

Should I assume that none of the Pixel smartphones currently work with my carriers (Telekom-de, o2-de)?

The newer the device, the more likely there is a matching config included for your carrier. ie. the greater the chance it will actually work.

ethical-haquer commented 6 months ago

Now I'm confused. VoLTE Is working fine on CalyxOS, so why would it not on DivestOS? They're both forks of Lineage OS, so is it that DivestOS removes something related to that?

@dktzde I will then have to switch to a different OS that still supports the Pixel 3, or have to use a different device. I'm not as impressed with Calyx as I was with Divest though. First of all, they list the Pixel 3 under "Extended Support", which means that it will probably be dropped soon, as you said. Secondly, it's just not as modified as Divest is, you can see that here.

SkewedZeppelin commented 6 months ago

@ethical-haquer DivestOS makes thousands of changes. The issue here, as already stated above, is the removal of the proprietary carrier apps. https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L949 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L280-L282 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L112-L128 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L168-L181 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L314-L319 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L494-L501 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L579-L581 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L599-L600 https://github.com/Divested-Mobile/DivestOS-Build/blob/180ad2d17d2804dc315a9ef1102b042541883f3b/Scripts/Common/Deblob.sh#L611-L615

SkewedZeppelin commented 6 months ago

Without those apps to fetch new configs, it falls back to the (generic) ones that it has included: https://github.com/LineageOS/android_device_google_crosshatch/blob/lineage-20/blueline/proprietary-files-vendor.txt#L1039-L1217

ethical-haquer commented 6 months ago

Thanks again, I really appreciate you answering my noob questions. 😊

That explained it to me. I wasn't sure where the connection between the MSN configs and the blob removal was.

Looking at the commits, it looks like this issue might be fixed in LOS 21, if I read this commit correctly:

* From coral TP1A.221005.002.B2
* Update CNE IMS QMI RIL system/vendor blobs
* blueline/crosshatch's RIL blobs Still P's blobs, but not
  working already in 13 (e.g. missing LTE singal)
  so update RIL blobs
SkewedZeppelin commented 6 months ago

@ethical-haquer that commit is highly unlikely to change anything in regard to this issue.

ethical-haquer commented 6 months ago

@SkewedZeppelin I would like to help out (if I can) with supporting more carriers on the Pixel 3. I still have more questions though, and I'm not sure if I should clutter this issue any more than it already is. Do you have the same username on XDA, or is there somewhere/someone else I should go to?

SkewedZeppelin commented 6 months ago

This or the chat would be the better place. But really someone needs to: 1) make a collection of mbn files, grouped by device

ethical-haquer commented 6 months ago

Alright. So, just in case you haven't noticed, I didn't even know what MBN files were, or that they were even a thing 😄. Also, there doesn't seem to be any "documentation" on MBN files. So, to begin with, getting the MBN files. The ones we need should be somewhere in the vendor.img, correct? For step two, it sounds like we need to be able to read the MBN files, but not write them, right?

ethical-haquer commented 6 months ago

I finally mounted vendor.img, and the mbn files are indeed there: vendor img mbm I'm now looking into reading them.

SkewedZeppelin commented 6 months ago

@ethical-haquer

reading them

they are statically linked executables that contain some xml configs but also execute code

there is extensive work here https://github.com/sbaresearch/mbn-mcfg-tools

if someone with the patience or experience really wants to work on this, they should probably make a proposal for a grant before starting

SkewedZeppelin commented 6 months ago

if anyone in the EU is really serious about this, I've spoken to NLnet in the past and this could potentially be such a grant supported by them, let me know and I can CC you on a chain and we can propose it

I myself am not interested in tackling the scope of this at this time.

ethical-haquer commented 6 months ago

@ethical-haquer

reading them

they are statically linked executables that contain some xml configs but also execute code

there is extensive work here https://github.com/sbaresearch/mbn-mcfg-tools

if someone with the experience really wants to work on this, they should probably make a proposal for a grant before starting

Yes, I was looking at that tool, thanks for mentioning it. What is a grant? 😊 (though I don't think I qualify as having "the experience", I'm just experimenting)

SkewedZeppelin commented 6 months ago

What is a grant?

you'd get paid to work on it as it progressed or reached completion

ethical-haquer commented 6 months ago

What is a grant?

you'd get paid to work on it as it progressed or reached completion

I just saw your second comment, I do know what that is. 🤦 Obviously it won't be easy, but I think I can do most of the stuff in your simplified list. I'm doing this in my spare time however, and I don't think I need to get paid, unless hardware is required. Maybe I'm missing something though.

ethical-haquer commented 6 months ago

@SkewedZeppelin I mounted the Pixel 3 DivestOS vendor.img, and the ATT .mbn(s) are there. Is the issue that they are not the latest ones? You showed me the list of .mbn files it falls back to; where are those files located? TIA.

dktzde commented 6 months ago

@ethical-haquer CalyxOS Support for blueline should be available until August this year (see here)

Maybe you know https://www.sustaphones.com/

At the moment, I'm thinking of getting a Pixel 5 because it's the last "small" Pixel (within 70 mm).

ethical-haquer commented 6 months ago

Thanks for the info! Yes, I do know that site, it's a helpful site. The Pixel 5 looks like it has good support as well.

ethical-haquer commented 6 months ago

@SkewedZeppelin Apparently the Pixel 4 and Pixel 4a are affected by this issue as well: link After thinking about it more, I think the .MBN files are not necessarily the issue, rather it is the removal of carrier apps. Pretty much whenever somebody has an issue with VoLTE on DOS, people mention the removal of carrier apps. For example, in this issue you mention them, and in the link above. What I'm thinking, obviously I don't know, is that what's in the .MBN files determines what carrier apps are required for VoLTE to work. If someone was able to say "the removal of the the ... app makes VoLTE not work on the ... phone with the ... carrier", what action would be taken? Would that app be removed from the de-blob list? TIA.

ethical-haquer commented 6 months ago

@SkewedZeppelin I know you said "I myself am not interested in tackling the scope of this at this time.", but do you at least know anyone who might be able to answer these silly questions? TIA.

SkewedZeppelin commented 5 months ago

I've added some changes that should enable VoLTE on more carriers.

already tested on a few so far to work :rocket:

ethical-haquer commented 5 months ago

I've added some changes that should enable VoLTE on more carriers.

* [4328ec6](https://github.com/Divested-Mobile/DivestOS-Build/commit/4328ec6c6594f3949113ccd923eecaa36d8f7b1f)

* [2850ff6](https://github.com/Divested-Mobile/DivestOS-Build/commit/2850ff678af543e9787774c14a27db98156189eb)

already tested on a few so far to work 🚀

Nice! Thanks for working on that.

dktzde commented 4 months ago

It works for me. Thank you so much! How about you @ethical-haquer?

ethical-haquer commented 4 months ago

It works for me. Thank you so much! How about you @ethical-haquer?

I haven't tried it yet. Looks like I'll have to now! 🥳

ethical-haquer commented 3 months ago

@SkewedZeppelin, @dktzde I finally got around to re-flashing DivestOS, and VoLTE worked for me on ATT after toggling the CarrierConfig2 toggle on. Thanks for working on this!