mroczis / netmonster-core

Android Telephony SDK bridge with some additional features
Apache License 2.0
334 stars 71 forks source link

Missing LTE bands (when 5CA) and missing 5G bands/bandwidth when in NSA. #69

Closed DrHurt closed 1 year ago

DrHurt commented 1 year ago

Been using the app on a Xiaomi Mi 10 Android 12 unrooted and its excellent.

Problems I've noticed:

  1. When connected to 5 LTE carriers, it shows 5 aggregated bandwidths (20+20+20+15+10) but the list of bands at the top shows only 4 bands (B3+B3+B7+B7) and missing B1 for example...

  2. When connected to 5G it doesn't show LTE bandwidth and doesn't show NR bandwidth or even NR band number despite showing ARFCN (other apps correctly show 40mhz N78)

Photos are probably better than words. Screenshot_2023-02-19-10-18-56-723_cz mroczis netmonster Screenshot_2023-02-19-10-20-25-425_cz mroczis netmonster

DrHurt commented 1 year ago

Further testing shows it displays 5G 700 but not 3500 despite correct ARFCN.

The other problem: Although app shows actual aggregated BW, it doesn't always list all the bands (at the very top).

So typically does 5CC (showing 5 BW) but the top can have anything from 1 to 4 bands listed at random. Never 5.

Keeps bouncing between the connected band numbers.

eladts commented 1 year ago

Newer phones such as the Pixel 7 support NR CA in both NSA and SA mode. I think NetMonster incorrectly assumes there can only be just one active NR band. With T-Mobile USA it is common to have n41 + n71. In NSA mode, the n71 appears as LTE with EARFCN of 125570 which isn't a valid EARFC but is a valid ARFCN. In SA mode NetMonster never shows more than one band, even though speed tests suggest CA is active.

Beat-YT commented 1 year ago

Yes!! @mroczis please check!!!

mroczis commented 1 year ago

@DrHurt

  1. There are two independent sources in Android. One reports bandwidths, one reports bands. Their data are not always consistent.
  2. ARFCN 637 334 fits n77 (3500) and n78 (3700). NetMonster Core and NetMonster do not contain country-based filtration. I assume other apps do this deduction for you.

@eladts Please attach bug report. Go to NetMonster Settings, tap 5 times on version and hit send button. Either send me the generated text file or attach it here. Please make sure that your device in connected to n41 + n71.

eladts commented 1 year ago

@mroczis I'm not sure my phone does n41 + n71 when I'm seeing EARFCN 125570 but this assumption matches the following facts:

I'll try to get a bug report, but it might be complex as CA configuration changes quickly.

eladts commented 1 year ago

@mroczis I found a place where I can get this state reliably. In my opinion I was connected to LTE B66 (EARFCN 66736, 20 MHz) and NR NSA n41 (ARFCN 529998, 80 MHz) + NR NSA n71 (ARFCN 125570, 15 MHz).

report.txt

eladts commented 1 year ago

@mroczis Now that n41 band name was fixed (#60) n41 2500 is not recognized at all with either SA or NSA. I guess it is due to the overlap with n38 2600. Before the change both band's name were 2600 so at least the name was not ambiguous.

I think NetMonster Core can use simple logic to resolve this ambiguities instead of giving up when only the ARFCN is available. According to Wikipedia's list of 5G NR networks n41 2500 and n78 3500 are widely used, where n38 2600 and n77 3700 are only used in a relatively few countries. Therefore in cases of ambiguity n41 2500 and n78 3500 should be the defaults, with lists of exceptions that can be easily compiled. If you need help with compiling such lists, I'll be happy to do it.

DrHurt commented 1 year ago

Maybe the app can say N77/78 if the developer is reluctant to add country specific lists.

That said, a quick Google search shows that N77 is used by very few operators while N78 is universal as the main 5G carrier.

Just thinking outloud here, ultimately up to the developer.

eladts commented 1 year ago

@mroczis I created exception lists for n38 and n77 based on Wikipedia's list of 5G NR networks (I only included active commercial networks). Feel free to use this information.

n38

n77

kejekurd1945 commented 1 year ago

Vodafone

Beat-YT commented 1 year ago

I would adopt what cellmapper does: display n78 for the conflicting part

mroczis commented 1 year ago

Requested feature is solely based on guessing, so it will definitely not make its way into NetMonster Core. However, I'll add this directly to NetMonster. Thanks.

mroczis commented 1 year ago

Resolved in NetMonster 2.22.2