昨天客户的工程师问我如何修改系统默认出厂时间,因为他的客户说机器的默认出厂时间太老了,现在都2016年机器的默认出厂时间还是2008年。
因为系统的默认时间在在RTC(Real-Time Clock)初始化的,在rtc驱动里面找到那个初始化的时间戳就可以修改掉系统默认的出厂时间了。
具体路径在/kernel/drivers/rtc下,具体的平台不同代码位置大概也不一样,这里贴出我找到的代码,我这边默认启动时2007-01-01,刚好能和我的平台时间对上,不过修改的结果还未验证,先Mark下来。
static int mstar_get_time(struct device *dev, struct rtc_time *tm)
{
#if 1
struct timeval time;
do_gettimeofday(&time);
// if the time before jan 1 2007, for it to jan 1 2007 to avoid android reboot.
//修改这个时间就可以
if(time.tv_sec < 1167652800)
time.tv_sec = 1167652800;
rtc_time_to_tm(time.tv_sec, tm);
return rtc_valid_tm(tm);
#else
//MDrv_RTC_GetCount(0);
return 0;
#endif
}
欢迎关注我的个人主页,谢谢大家!