Android 修改系统默认初始化时间

本文介绍了如何在Android系统中定制默认时区和时间。针对Android L之前的版本,需要修改`cust_rtc.h`和`rtc-mt65XX.h`文件来设定RTC默认日期。对于Android L或M,修改`cust_rtc.h`。此外,通过`NetworkTimeUpdateService.java`调整默认日期,并在`config.xml`中设置默认恢复年份。系统启动时,根据设定的时间进行初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手机第一次开机默认是没有定制时区的(默认是GMT:+00:00),但是会有一个默认日期,如2013年1月1日。
如何客制化默认时区以及时间呢?
[Solution]
一、修改默认时间
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

      today.set(today.monthDay, today.month, 2013);//月份要减一个月才是当前月份 例如20130101 (1,1,2013)
      Log.d(TAG, "Set the year to 2013");
      SystemProperties.set(BOOT_SYS_PROPERTY, "false");
      SystemClock.setCurrentTimeMillis(today.toMillis(false));

 修改后的表现可通过Setting菜单->时间日期设置):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值