android修改系统默认时间

 本文是基于Android5.1的代码

1.如何修改出厂默认日期和默认时区

一、修改默认时间:

1、修改RTC默认日期 :

Android L之前:

\alps\mediatek\custom\[project]\preloader\ inc\cust_rtc.h

\alps\mediatek\custom\[project]\kernel\rtc\rtc\rtc-mt65XX.h

Android L或M:

bootable\bootloader\preloader\custom\ [project] \inc\ cust_rtc.h

#define RTC_DEFAULT_YEA 2012

#define RTC_DEFAULT_MTH 2

#define RTC_DEFAULT_DOM 1

2、修改默认日期:

framework\services\java\com\android\server\NetworkTimeUpdateService.java

systemReady()

……

if(isFirstBoot){

Time today = new Time(Time.getCurrentTimezone());

today.setToNow(); // 将时间恢复到RTC时间

today.set(1, 0, mDefaultYear ); //设立出厂默认日期,mDefaultYear是默认年份

如果想恢复出厂设置后,系统时间不变,可使用today.setToNow();

如果想恢复出厂设置后,系统时间也恢复成出厂时间,可使用today.set(1, 0, mDefaultYear );

这个today.set方法有6个参数的重载,可以精确到秒,具体使用方法请自行查询API,所以在这里设置系统默认时间就可以了。

如果要設置出厂默认年份需要修改

1)mediatek\frameworks\base\res\res\values\config.xml

 将 default_restore_year修改成 2013

(Android L:vendor\mediatek\proprietary\frameworks\base\res\res\values)2013

2)frameworks\base\services\java\com\android\server\NetworkTimeUpdateService.java

if(today.year <= 2010){ //删除此行判断条件

today.set(today.monthDay, today.month, 2013);

Log.d(TAG, “Set the year to 2013”);

SystemProperties.set(BOOT_SYS_PROPERTY, “false”);

SystemClock.setCurrentTimeMillis(today.toMillis(false));

}

3、修改默认时区:

在系统属性中增加下面字段 ( 假设改为Moscow )

Android L之前:

mediatek\config\[project]\system.prop

Android L:

device\mediatek\[project]\system.prop

persist.sys.timezone = Europe/Moscow注意:默认时区的修改会影响默认时间的值,会根据与格林尼治标准时间差来更新时间,这是正常现象。如

当前设置为中国标准时间 GMT+8:00 ,则手机的出厂时间会变为 8:00 。

    原文作者:Dwyer_Hui
    原文地址: https://www.jianshu.com/p/2756daee8190
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞