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)
<!-- default year for first power on-->
<integer name="default_restore_year">2013</integer>
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 。    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值