Why didn't my alarmclock work? Timezones on LTE and Android

A few weeks ago, I woke up feeling refreshed. This quickly faded to panic as I realized that my alarm did not go off, so I overslept and missed a meeting.

I checked my Garmin smartwatch, which showed 8 PM. Well, that explains the lack of alarm, but why does it think it’s 8 PM? My phone also shows 8PM, and I know from experience that the Garmin adopts the phone’s timezone. But I’m in California. Where is my phone getting GMT+3?

What changed? What was I doing before bed?

I just got my LTE lab working. There’s a SIM card in my phone that I programmed from scratch. It’s connecting to a Ruckus Q410 (LTE Band 48) linked to NextEPC.

I know that the phone determines timezone “based on the carrier,” but what does that mean? Is it coming from the EPC? No, timezone should be server time or GMT, but not GMT+3.

Well, this is getting annoying, so I remove the test SIM.

Timezone is now correct. WTF?

Android is open source, so let’s search for anything involving SIM cards and timezones in the code. Looks like Android will determine timezone from the country code (MCC) on a SIM if it isn’t set by the network.

This is what I get for being cheeky and using a MCC of 318 (Iraq) for my lab (hence GMT+3).

Want to keep reading? / go back