После того, как устранил проблему с часовым поясом на моем смартфоне Samsung Galaxy S Plus (GT-I9001), обнаружилась новая проблема (эта проблема вроде как актуальна только для Android 4).
Было:
Не было часового пояса «Московское стандартное время GMT +3», а было «Московское стандартное время GMT +4»
Стало:
«Московское стандартное время GMT +3», но при создании события я указывал, к примеру время 16:10, а на экране в созданном событии получал 17:10. В принципе это не очень страшно, т.к. оповещение все равно приходило в 16:10. Т.о. это была чисто косметическая проблема, хотя и сильно путала.
Решение:
В своей заметке я рассказал, как менять файл tzdata, но этого оказалось не достаточно. Для отображения времени Андроид использует данные из еще одного файла.
0. Делаем бэкап телефона и готовимся в случае неудачи (кирпича или bootloop) перепрошивать телефон!
1. Копируем с телефона файл /system/usr/icu/icu51dt.dat (644 rw–r––r––)
2. Качаем сборку ICU под вашу систему (скорее всего будет Windows, 32 или 64 бита)
3. Качаем 4 файла из самого последнего репозитория по этой ссылке
(далее идем <номер версии iana tz>/44/<папка платформы>/.)
«44» папка для обновлений ICU версии 4.4 и новее.
<папка платформы> «le» for little endian processors, including all Intel processors.
<папка платформы> «be» for big endian processors, including IBM Power and Sparc.
<папка платформы> «ee» for IBM mainframes using EBCDIC character sets.
4. Распаковываем файлы из пункта 3 в какую-нибудь папку, кладём туда же файл из пункта 1
5. Из консоли запускаем 4 команды
icupkg.exe -a metaZones.res icudt51l.dat icupkg.exe -a timezoneTypes.res icudt51l.dat icupkg.exe -a windowsZones.res icudt51l.dat icupkg.exe -a zoneinfo64.res icudt51l.dat
Если будут написаны ошибки о некорректных ресурсах — прекращаем эксперименты
6. Кладём обновлённый icu51dt.dat в корень sdcard
7. Запускаем adb shell
8. Монтируем системный раздел на запись:
mount -o rw,remount /system
9. Копируем файл на место:
cat /sdcard/icudt51l.dat > /system/usr/icu/icudt51l.dat
10. Перезагружаем смартфон
На Xperia Z1C у меня примонтировать раздел не получилось — не было доступа, поэтому я перезагрузил смартфон в рекавери TWRP, там примонтировал раздел, скопировал файл и выставил разрешения (644 rw–r––r––)
Инструкция на сайте ICU.
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024