Androidデフォルトシステム日付、時間、タイムゾーン変更


Androidデフォルトシステム日付、時間、タイムゾーン変更
 
Androidプラットフォームを作成すると、製品がシステムのデフォルトタイムゾーンの日付時間を変更する必要があるという問題によく遭遇します.Androidの変更は比較的容易で、ネット上にも多くの資料があり、直接属性を設定すればいい.例えば、上海東八区、persistを設定する.sys.timezone=Asia/Shanghai.しかし、デフォルトのシステム時間を変更するにはどうすればいいのでしょうか.
AndroidではLinuxカーネル、rtcクロック、デフォルトの開始日は1970年1月1日ですが、デフォルトの日付を2012-01-01に指し示すにはどうすればいいのでしょうか.筆者は実際にRTC駆動で容易に実現できることを見出した.RTCドライバでロードする場合、通常はprobe関数が先に実行される必要があるため、probe関数で手をつけるのが最も直接的に有効です.RTCは1970-01-01から始まり、もちろんデフォルト値を2012-01-01に設定するのは簡単です.必要なsecondsは1970-01-01からの秒数で、秒単位です.したがって、読み出されたRTC値が予想された値、例えば2012-01-01(1325402913)より小さいと、この時点に設定されます.
	seconds = rtc_read_time();
	printk("init PMU/RTC time to  %ld 
", seconds); if(seconds <= 1325402913) { seconds = 1325402913;/*2012-01-01*/ ret = rtc_set_time(seconds); RTC_DBG("Init Set time: %ld, ret =0x%x
", seconds, ret); }

筆者はその結果,androidプラットフォームで実行可能であることを示した.いつ何時何分に設定するかは、具体的な1970-01-01 00:00の差の秒数を計算すれば簡単です.これにより、お客様やユーザーがより便利に使用できます.