There is a logical and reasonable explanation. These companies are run by a bunch of sociopathic, unethical people who won't hesitate to lie and cheat if it gets them more money. It's as simple as that.
Signal strength is like the loudness of music being heard. It's possible for music to be quiet but otherwise excellent, or loud but low-quality. However, if it is too quiet, then the "music" becomes almost unintelligible, which the offseted bars should still be able to indicate.
In Wi-Fi, 6GHz and 5GHz are often used instead of 2.4GHz. 2.4GHz would likely win in signal strength. Yet, the others are used anyway, because the others are good for other reasons. However, if range ( ...or compatibility) is critical, then 2.4GHz is used.
Similarly, in cellular, there is a lower frequency e.g. band 8/12/14/17/20/28/71 and a higher frequency e.g. band 1/3/7/30/38/40/41/66/77/78. (Less basically, it can be more granular.)
So this sequence of events is possible: Tower switches the phone to a higher frequency -> speed increases but the signal strength reduces (confusing, but at least doesn't seem bad if there are 3 or 4 bars.) A switch to a lower frequency normally occurs instead if the high frequency signal is weak.
Cellular can be slow due to interference (maybe more common than signal strength issues; the metric to use instead might be SNR/SINR), congestion (maybe more common than signal strength issues; the metric to use instead is confusing, maybe the CFI value (if automatically changed) or RSRQ with a high SNR/SINR might rule it out), the speed of the rest of the network (the metric to use might be RSRQ during a download with a high SNR/SINR), data plan (the metric to use instead might be RSRQ during a download with a high SNR or SINR/QCI (requires interpretation)), and the width of it (the metric to use is BW). So it's confusing, and not exactly that full bars are always better.
For 2G, with each nearby cell (coverage area) basically getting its own channels, signal strength might've been more important, though interference was there somewhat (so there was MAIO planning etc.)
But aside from speed, there's the battery to consider. If the signal strength from the tower to the phone is "satisfactory", it's implied that so is the signal from the phone to the tower, so the phone will have to have an elevated transmit power.
Like what Apple does with stopwatch.
https://lukashermann.dev/writing/why-the-iphone-timer-displa...
The countdown in question doesn't display fractions of a second so it would immediately switch from "5 seconds left" to "4 seconds left" which just doesn't feel right. Adding 0.5s solved the issue.
This signal strength is straight up lying about the actual signal strength
$ git log --oneline -SKEY_INFLATE_SIGNAL_STRENGTH_BOOL | tail
gets us the commit [0] from 2020 where config_inflateSignalStrength was renamed to KEY_INFLATE_SIGNAL_STRENGTH_BOOL $ git log --oneline -Sconfig_inflateSignalStrength | tail
gets us this commit [1] from 2017 where it was originally added: 43c14d198479 Add config to artificially inflate number of bars
[0]: https://android.googlesource.com/platform//frameworks/base/+...[1]: https://android.googlesource.com/platform//frameworks/base/+...
private int getNumLevels() {
if (mConfig.inflateSignalStrengths) {
return SignalStrength.NUM_SIGNAL_STRENGTH_BINS + 1;
}
return SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
}
...
} else if (mCurrentState.connected) {
int level = mCurrentState.level;
if (mConfig.inflateSignalStrengths) {
level++;
}
return SignalDrawable.getState(level, getNumLevels(),
mCurrentState.inetCondition == 0);
If the flag is true, bump up BOTH the reported level as well as the total number of bins.If the flag is false, use reported level and default number of bins.
Since both numerator and denominator are bumped up, is it really malicious?
Based on this commit at least, personally, I feel such logic could be due to a decision to shift from levels starting from 0 to levels starting from 1 at the UI level.
Or perhaps to make levels consistent between different operators, some of whom were using 0-based while others used 1-based.
I haven't gone through later commits or latest versions. So my opinion's limited just to this original 2017 change.
(but I still would love to know how does one hide from git blame)
(file renaming?)
Wayback machine link: https://web.archive.org/web/20251103013626/https://nickvsnet...
That's not something I was expecting to hear
But then of course if you can push a customer one way or the other it will be to the higher margin product.
if we cared about signal strength, we'd make it part of the telecommunications regulated sphere: you must back your meter with a path which shows signal strength accurate to xDB in some yUnits of zQuality measured at one of A,B conforming labs
Is the commit that added it.
The signal strength measurement is actually standardised: https://en.wikipedia.org/wiki/Mobile_phone_signal#ASU
Unfortunately I don't think it's that simple. I've seen one phone simultaneously show significantly different numbers of bars for two SIMs installed in it for the same exact network and operator. After a while they become similar... then differ again... etc.
I have no clue how to explain it yet, but what I do know is that it literally makes no sense with a naive model of how these work, whether you try to explain it as reception or deception.
Android is quiet lazy searching for towers.
This suggests that the issue is not related to Android.
No idea why, especially since I'm the one who installs ad blockers and such. Her phone is essentially stock.
You're making huge and incorrect assumptions here, no? This also happens when your phone is entirely idle... and it randomly changes if you sit still for some time...
After selecting, each SIM slot is subject to inter freq / inter RAT reselection / handover.
Both are controlled by messages received from the tower (e.g. on 4GLTE, for reselection, System Information messages), though there is an additional constraint: what's supported by/enabled in the phone.
Perhaps one SIM slot was in the connected state and the other was in the idle state at one point. So the reselection logic applied for one and the handover logic applied for the other. There is for example a problem called ping pong handover. Once a phone is switched to a different frequency or RAT, the tower may have the phone be sort of stuck in the new frequency, until the conditions of the previous RAT or frequency improve substantially, in order to prevent the phone being like a ping pong ball between the two. This frees resources that would otherwise be spent on repeated handover-related messages.
Each frequency has its own signal strength (free space path loss, transmit power, one frequency might be on one tower and another might be on another, etc).
I’ve been in bad tower areas where the solution is to drive to the next town or tower along the highway.
I remember the PM working on this feature showing us their research on how iPhones rendered bars across different versions.
They had different spectrum ranges, one for each of maybe the last 3 iPhone versions at the time. And overlayed were lines that indicated the "breakpoints" where iPhones would show more bars.
And you could clearly see that on every release, iPhones were shifting the all the breakpoints more and more into the left, rendering more bars with less signal strength.
We tried to implement something that matched the most recent iPhone version.
So, game-theoretic evil?
It's probably a reasonable pitch to say that phones should instead display something closer to "meaningful available bandwidth" crossed with strength, because a strong signal doesn't mean a good connection.
$ grep -r show_4g_for_3g_data_icon_bool assets/
assets/carrier_config_carrierid_1187_AT&T.xml: <boolean name="show_4g_for_3g_data_icon_bool" value="true"/>
assets/carrier_config_carrierid_2119_FirstNet.xml: <boolean name="show_4g_for_3g_data_icon_bool" value="true"/>
assets/carrier_config_carrierid_1779_Cricket-Wireless.xml: <boolean name="show_4g_for_3g_data_icon_bool" value="true"/>
Android documents[0] this flag, which they don't appear to do for the `inflate_signal_strength_bool` field outside the source code from what I can tell. It seems like there a bunch of odd flags for controlling user-exposed visuals - another flag `show_4g_for_lte_data_icon_bool` is used by 96 carriers, for example.I wonder if there's some odd telecom history behind these, or if these flags were intended for some kind of edge-case. It seems like carriers have the option to arbitrarily override the thresholds used for determining signal strength[1], but only four carriers actually do. All only elect to customize the `lte_rsrp_thresholds_int_array` field; and all opt to make things harder for themselves, reporting their network connection as lower strength than the default classification[2] would:
$ grep -r _thresholds_int_array assets/ -A5
assets/carrier_config_carrierid_2556_Xfinity_Mobile.xml: <int-array name="lte_rsrp_thresholds_int_array" num="4">
assets/carrier_config_carrierid_2556_Xfinity_Mobile.xml- <item value="-115"/>
assets/carrier_config_carrierid_2556_Xfinity_Mobile.xml- <item value="-105"/>
assets/carrier_config_carrierid_2556_Xfinity_Mobile.xml- <item value="-95"/>
assets/carrier_config_carrierid_2556_Xfinity_Mobile.xml- <item value="-85"/>
assets/carrier_config_carrierid_2556_Xfinity_Mobile.xml- </int-array>
--
assets/carrier_config_carrierid_1345_Telstra.xml: <int-array name="lte_rsrp_thresholds_int_array" num="4">
assets/carrier_config_carrierid_1345_Telstra.xml- <item value="-120"/>
assets/carrier_config_carrierid_1345_Telstra.xml- <item value="-115"/>
assets/carrier_config_carrierid_1345_Telstra.xml- <item value="-100"/>
assets/carrier_config_carrierid_1345_Telstra.xml- <item value="-90"/>
assets/carrier_config_carrierid_1345_Telstra.xml- </int-array>
--
assets/carrier_config_carrierid_1839_Verizon-Wireless.xml: # omitted, same as Xfinity, above
...
--
assets/carrier_config_carrierid_2032_Xfinity-Mobile.xml: # omitted, same as Xfinity, above
...
[0]: https://developer.android.com/reference/android/telephony/Ca...[1]: https://source.android.com/docs/core/connect/signal-strength...
[2]: https://android.googlesource.com/platform/frameworks/base/+/...
sDefaults.putIntArray(KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY,
// Boundaries: [-140 dBm, -44 dBm]
new int[] {
-128, /* SIGNAL_STRENGTH_POOR */
-118, /* SIGNAL_STRENGTH_MODERATE */
-108, /* SIGNAL_STRENGTH_GOOD */
-98, /* SIGNAL_STRENGTH_GREAT */
});https://www.theverge.com/2011/05/04/536673/att-t-mobile-dipp...
AT&T has a history of lying about what its network is. They were advertising HSPA+ as 4G and then recently started advertising LTE as "5G E". I can't find a lot of articles about the 4G branding one since the 5G one started.
> show_4g_for_lte_data_icon_bool
Realistically I think this is just a choice that many carriers made. It's quite common to see 4G instead of LTE outside of the US. Technically speaking I think WiMAX counted as 4G when there were competing 4G standards and you could make an argument that LTE is just one of the 4G standards.
(Probably a way to do it on Android, too)
A CSR showed me this while debugging network connectivity issues with my phone.
And this is on non-provider phone, this is built in in the whatever communication they do with the phone, possibly works with every device.
metadat•4h ago
Human brains: wow, what a bunch of suckers. Damn.
By the way, is it legal to be deceptive in this way?
eqvinox•4h ago
I do.
I'm from Germany, land of perpetual EDGEing. Highest total GDP in the EU but can't build a mobile network for the life of it.
Then again we somehow forgot how to run trains and build cars without cheating, so I guess it fits.
Want to see a single bar? Come visit, our carriers aren't on the list with that inflate flag enabled. I guess they didn't get the same memo as the car manufacturers ;D
samplatt•2h ago
_carbyau_•2h ago
The few farmers I know have a rough idea of the on-the-ground cell coverage. They say things like "this side of the hill/town" usually. I've seen them deliberately walk to the other side of a silo to make a call.
I assume that the coverage maps are assumed cell-tower-coverage-if-shit-is-not-in-the-way. No surprise radios are common.
bitwize•2h ago
robot-wrangler•1h ago
Tangent but this is a pretty interesting topic. I've heard people speculate that local politics deliberately prevents such infrastructure, waiting for some kind of kickbacks to make it worth their while. Others suggest that it happens because federal telecom subsidies aimed at improving rural connectivity don't apply, as a kind of retaliation for tribal sovereignty. Way off-grid, ok, maybe it's simply not worth it to corporate telecom, but whatever the cause coverage even in fairly populated areas around Kayenta/Monument Valley is also quite bad in a way that would be infrequent in comparable communities in say, nowhere Appalachia.
Many a suburban parent of smart-phone addicted children would romanticize the whole thing and actually be kind of jealous of a situation like that. Years back and on the other side of the world, tourists were very scandalized about more roads and towers around Annapurna in Nepal.. but of course the locals usually do not actually like to be cut off from the world.
More telecom is probably good despite the evils, but fuck commercial billboards in particular. Those are still creeping closer to the Grand Canyons and Yosemites, and they suck whether it's for multinationals like McDonalds, or for locally owned gas stations or hotels that put cash into tribal communities. Ban them all like Hawaii, and everyone will be astonished to learn that the world keeps turning..
lifestyleguru•2h ago
eru•1h ago
GDP per capita (or GDP per square metre) would be a more useful indication here. Otherwise, you could throw a bunch of poor countries together--just for purposes of statistics, and expect a better mobile network?
dmurray•35m ago
Even with the EU single market, mobile phone operations almost always follow country borders. You'll get a different set of providers in Germany than you'll get one km away on the other side of the Rhine in France. Even though some of them may have the same name or the same ultimate owner or both, and even though you can roam on the other side of the border, you'll have a contract with a different entity, and different people will build and maintain the networking equipment.
Conversely, in the US, the major carriers all have nationwide coverage.
JoshTriplett•1h ago
> Then again we somehow forgot how to run trains
The mobile networks don't have enough dB and the trains have too much DB?
lifestyleguru•1h ago
microtonal•1h ago
https://en.wikipedia.org/wiki/Afsluitdijk
Yet, when we visit family in Germany, five minutes after crossing the border we are in a cellular dead zone.
MangoToupe•4h ago
tiznow•3h ago
ssl-3•3h ago
I work with cellular BDA-DAS[1] gear sometimes, and I don't recall the last time I looked at the signal strength display on my phone. It has probably been years.
For me: It either works, or it doesn't work. It is either fast-enough, or impossibly-slow. It's very binary, and the bar graph at the top never told me a damned thing about what I should expect.
[1]: Bi-Directional Amplifier, Distributed Antenna System. In theory, such constructs can make indoor cellular coverage quite good inside of buildings that previously had none. In reality it can be... complicated. And while the bar graph doesn't mean anything, I still need ways to see what's happening as I spend hours, days, or [sometimes!] weeks surveying and troubleshoot and stuff. The phone can report things like RSRP, RSRQ, and some other tasty bits instead of just a useless graph -- and from there, I can sometimes make a hand-waving guess as to what I may reasonably expect for performance.
But that stuff is normally pretty well hidden from view.
Affric•2h ago
wtallis•2h ago
A few months ago, I was in a remote area at anchor on a sailboat, about 6.5 miles from the nearest highway through the swamp, with only a few farms and a handful of houses within that radius. With my phone up in the cockpit of the boat and tethered over WiFi to my laptop, I was able to download a movie. As the boat swung on anchor, the download was occasionally interrupted, but when data was flowing it was consistently 5-10 MB/s over a claimed 5G link; the movie downloaded in much less time than its runtime. I assume I wasn't competing with much other traffic on that tower, wherever it was. So my experience was even more binary than yours.
The phone's signal indicator did seem to accurately indicate when it had no usable signal at all, but beyond that I'm not sure it was providing any useful information. And I'm not sure if it could have told me anything of use other than "connected" or "not connected". The very marginal connection was still faster than I had any right to expect for those conditions.
vachina•1h ago
3eb7988a1663•2h ago
jmspring•2h ago
tzs•1h ago
The net is telling me this is because of the aisle after aisle of tall metal shelving and the building itself also has a lot of metal in the construction.
It is quite annoying when you are trying to use the Home Depot app to look up something.
dawnerd•33m ago