روش اصلاح daylight saving time در سیستم عامل اندروید
باتوجه به اینکه از امسال دیگر تغییر ساعت بهاری و تابستانی را نداریم، از ابتدای سال، سیستم عاملهای اندرویدی، یک ساعت جلوتر را نمایش میدهند که در ابتدا تصور بر این بود که مشکل از اپراتورهاست، اما اینطور نیست! ساعت ارسالی توسط آنها صحیح است. مشکل از قدیمی بودن
بانک اطلاعاتی tzdata سیستم عاملهای اندرویدی است.
نگارش جدید و کامپایل شدهی این فایلها را از اینجا میتوانید دریافت کنید:
tzdata-new.zip
محل ذخیره شدن بانک اطلاعاتی time-zones در اندروید
بسته به نگارش اندروید شما، یکی از مکانهای زیر، محل ذخیره سازی دو فایل tzdata و tz_version است:
/data/misc/zoneinfo/tzdata
/system/usr/share/zoneinfo
/apex/com.android.tzdata/etc/tz/tzdata
برای مثال بر روی اندروید 10 من (که روش نصب آن در این مطلب آمده)، مسیر آخری، مسیر اصلی و تاثیرگذار است.
مشکل! به روز رسانی مسیرهای سیستمی اندروید، نیاز به دسترسی root دارند!
تا اینجا مشخص شد که برای رفع مشکل time-zone و به روز رسانی اطلاعات آن، باید دو فایل tzdata و tz_version را در مسیرهای یاد شده، بازنویسی کنیم؛ اما ... اندروید چنین اجازهای را نمیدهد!
در سیستم عامل LineageOS 17.1 ای که من نصب کردم، میتوان با نصب
برنامهی معروف Magisk، دسترسی روت پیدا کرد. روش نصب آن هم به صورت زیر است:
1) فایل apk آنرا از
این آدرس دریافت کرده و پسوند آنرا به zip. تغییر دهید.
2) سیستم را ریاستارت کرده و رفتن به گزینهی recovery را انتخاب کنید تا پس از ریاستارت سیستم، وارد برنامهی TWRP شویم (که روش نصب آن در مطلب جاری بحث شده).
3) در برنامهی TWRP، گزینهی install را انتخاب و سپس فایل zip. برنامهی magisk را انتخاب و نصب کنید.
4) پس از نصب، یکبار هم کش را پاک کنید (Wipe cache/dalvik).
5) در آخر بر روی دکمهی Reboot System تا ... وارد اندروید شوید.
6) پس از راه اندازی سیستم، برنامهی Magisk را اجرا کنید تا مرحلهی آخر نصب آن به پایان برسد (یکسری از فایلها را نیاز دارد تا از اینترنت دریافت و نصب کند؛ این نصب، از github و به صورت خودکار است).
پس از نصب magisk،
برنامهی total commander را هم نصب کنید. به محض اجرای آن، پیام درخواست دسترسی root آن هم ظاهر میشود (این برنامهی magisk هست که این درخواست را تشخیص داده و مدیریت میکند) و نیاز است این دسترسی را بدهید تا بتوان:
1) به مسیر file system root و سپس apex/com.android.tzdata/etc/tz/tzdata وارد شد و دو فایل موجود و قدیمی tzdata و tz_version را به نحو متداولی پاک کرد.
2) سپس دو فایل جدید tzdata و tz_version را (که لینک دریافت آن کمی بالاتر ارائه شد) به سیستم خود منتقل کنید (همانند تمام فایلهای دیگر از طریق usb) و در آخر با استفاده از total commander ای که اکنون دسترسی root هم دارد، این فایلها را به مسیر یاد شده، کپی کنید.
3) اکنون سیستم را ریاستارت کنید تا تنظیمات جدید خوانده شوند (همانند تصویر زیر، که در آن منطقه زمانی جدید 3:30+ قابل مشاهدهاست):