<div dir="ltr"><div dir="ltr"><span id="gmail-docs-internal-guid-24076a58-7fff-7e8a-56e8-31f42fd84d17">To expand on what enh@ said and provide some more context:<br><br>One of my responsibilities on Android is the time zone data source-code updates. I can confirm it's complicated! The short answer is that the Morocco change didn't give maintainers a lot of time to react. The number of devices, manufacturers and users involved for Android alone is quite humbling! Literally billions of devices, millions of users, spread over thousands of different types of device.<br><br>I am a software engineer, so I can provide some technical information around Android tzdb updates for future reference (see text below my name).<br><br>Paul is correct: it is my understanding that the Essential PH-1 device is using the Google-managed APEX update mechanism.<br><br>I hope the information below helps explain what the situation is. As more devices move to the APEX update mechanism we should continue to see improvements here. That said, I think four working weeks from tzdb release to device is always going to be difficult with so many parties and devices involved.</span></div><div dir="ltr"><br>Neil.<span><br><div dir="ltr"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Google UK Limited<br><br>Registered Office: 6 Pancras Square, London, N1C 4AG<br>Registered in England Number: 3977902</div></div></div></div></div></div><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">-------------</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">The Android OS has two main copies of time zone data: one that is used by Android's libc (bionic) and its java.util.TimeZone class, and a copy associated with Android's embedded of International Components for Unicode libraries (ICU4C and ICU4J). ICU has additional information like translations for zone names and other time zone metadata that need to be updated. Both copies are updated when I produce source code updates, though manufacturers can create their own source code updates if they wish.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">We alert partners to source updates for recent releases (currently from 8.0/Oreo up to Android 10) and we make them available to all via the AOSP project. For example, </span><a href="https://android-review.googlesource.com/q/topic:%22tzdb2020a_pie-dev%22+(status:open%20OR%20status:merged)" style="text-decoration-line:none"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://android-review.googlesource.com/q/topic:%22tzdb2020a_pie-dev%22+(status:open%20OR%20status:merged)</span></a><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> is the Android 9 backport of the tzdb 2020a update.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">For many devices (i.e. those before Android 10, the Q3 2019 release) the device update process is entirely handled by the manufacturer, either via a full "over the air" (OTA) system image update, via the APK mechanism linked by Paul, or a proprietary mechanism. All these mechanisms the manufacturer is responsible for.</span></p><br><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">For Android 10 devices that support APEX updates, Google now manages the update via Google Play System Update (internal name </span><a href="https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html" style="text-decoration-line:none"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">Project Mainline</span></a><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">). For devices that don't, the information for earlier releases is currently still true. I know the Android Mainline folks handling building / signing / QA and partner coordination for the Google-managed APEX update have been working hard to get an APEX update out in time for the Morocco offset change. For any update there still needs to be a lot of coordination between Google and the manufacturer partners. Google rolls out updates like this very carefully. My understanding is that the update was available to 100% of Mainline updatable devices by Friday 22nd May. Yesterday morning (26th May) I checked my personal Android 10 device (which I know does have Google-managed APEX updates), and found that it had updated to 2020a, but it did take a manual reboot by me before that was the case.</span></span><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 26 May 2020 at 16:37, enh via tz <<a href="mailto:tz@iana.org">tz@iana.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sun, May 24, 2020 at 11:45 AM Paul Eggert <<a href="mailto:eggert@cs.ucla.edu" target="_blank">eggert@cs.ucla.edu</a>> wrote:<br>
><br>
> On 5/24/20 12:51 AM, Semlali Naoufal wrote:<br>
> > I would like to inform you that the time has been advanced by one hour today on Android Smartphones while the time change should not be made until 31.05.2020 as already reported.<br>
> ><br>
> > Has the patch below been deployed correctly?<br>
><br>
> Yes and no. It depends on your Android phone's support and whether you've<br>
> updated its software recently and rebooted.<br>
><br>
> Android has a complex relationship with tzdata. According to<br>
> <<a href="https://source.android.com/devices/tech/config/timezone-rules" rel="noreferrer" target="_blank">https://source.android.com/devices/tech/config/timezone-rules</a>>, time zone data<br>
> is distributed in Android 10 via an Android Pony Express (APEX) container and in<br>
> Android 8.1 and 9 via an Android Package (APK), and updates take effect after<br>
> you reboot your phone. I guess in earlier releases tzdata was just part of the<br>
> operating system. (If Android is like GNU/Linux it has two copies of tzdata, one<br>
> for Java and the other for native apps; if so, I suppose it's possible for the<br>
> two copies to disagree.)<br>
<br>
like Linux, no: ART doesn't have its own copy of tzdata.<br>
<br>
are there two copies? yes: icu has its own slightly different database<br>
built from tzdata, in addition the "normal" (it's just all the tzdata<br>
files concatenated with a small header) tzdata. but they're both in<br>
the apk or apex.<br>
<br>
> So, whether your Android phone works in Morocco right now depends on how well<br>
> your phone's supplier updated its APEX or APX or OS (depending on how old the<br>
> phone is) and whether you've rebooted. I just now checked the Android clock<br>
> application in two recently-rebooted Android phones in my household, and one (a<br>
> Nokia 6.1 running Android 10 - April security patch) had the wrong time for<br>
> Morocco, whereas the other (an Essential PH-1 running Android 10 - February<br>
> security patch) had the correct time.<br>
><br>
> Nokia is pretty good about keeping the Nokia 6.1 up to date, but apparently has<br>
> not issued an APEX container for tzdb 2020a (or maybe has mistakenly issued both<br>
> APEX and APX with an out-of-date APX). Essential went out of business in<br>
> February so it surprised me that its phone's tzdata is up to date; perhaps the<br>
> APEX updating mechanism is not vendor-specific?<br>
><br>
> I searched online for how this APEX stuff really works and came up empty. I<br>
> don't know how Google broadcasts the latest APEX version for tzdata, or why the<br>
> Essential PH-1's tzdata is up-to-date despite not having OS updates since<br>
> February. Perhaps someone with some Android expertise could chime in.<br>
<br>
apexes, like apks, are updated via the Play Store.<br>
<br>
> There are two bottom lines here.<br>
><br>
> 1. Your experience will vary depending on who is maintaining your Android phone.<br>
><br>
> 2. The Moroccan government should announce its time zone rules much earlier if<br>
> it wants more of its people's phones to work correctly.<br>
</blockquote></div><br clear="all"></div>