高速改动android系统默认日期方法
高速改动android系统默认日期方法
在android系统的设备上,都有一个默认的開始日期,看过非常多设备,有些设备在没有联网的时候没有同步到系统时间的时候,竟然默认的还是1970年的日期。也见过有些设备默认到2000年1月1日的,这样相对进了一步。可是还不够。
笔者以下非常简单的介绍一下一个超级简单的方法:
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
熟悉一下systemserver还是非常好的。systemserver里面有好东西,首先还是从main进去,我们能够肯定原始的代码是这样写的:
public static void main(String[] args) {
1142 /*
1143 * In case the runtime switched since last boot (such as when
1144 * the old runtime was removed in an OTA), set the system
p=android/platform/frameworks/base.git;a=blob;f=services/java/com/android/server/SystemServer.java;h=e55e2766226a5031f40ac5c4cde5535712392898;hb=e55e2766226a5031f40ac5c4cde5535712392898#l1145">1145
1146 * libnativehelper's JniInvocation::Init code where we already
1147 * had to fallback to a different runtime because it is
1148 * running as root and we need to be the system user to set
p=android/platform/frameworks/base.git;a=blob;f=services/java/com/android/server/SystemServer.java;h=e55e2766226a5031f40ac5c4cde5535712392898;hb=e55e2766226a5031f40ac5c4cde5535712392898#l1149">1149
1150 */
p=android/platform/frameworks/base.git;a=blob;f=services/java/com/android/server/SystemServer.java;h=e55e2766226a5031f40ac5c4cde5535712392898;hb=e55e2766226a5031f40ac5c4cde5535712392898#l1151">1151
1152 VMRuntime.getRuntime().vmLibrary());
1154 if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
1155 // If a device's clock is before 1970 (before 0), a lot of
1156 // APIs crash dealing with negative numbers, notably
1157 // java.io.File#setLastModified, so instead we fake it and
1158 // hope that time from cell towers or NTP fixes it
1159 // shortly.
p=android/platform/frameworks/base.git;a=blob;f=services/java/com/android/server/SystemServer.java;h=e55e2766226a5031f40ac5c4cde5535712392898;hb=e55e2766226a5031f40ac5c4cde5535712392898#l1160">1160
1161 SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
明显里面有一个推断当然时间。跟预设时间点的一个比較,假设比预设时间点晚的话,就设置成这个时间点,充分利用这一点就非常easy了。还是用这样的方法,仅仅只是把预设的时间点挪动一下。实际上仅仅要改一行不是代码的代码就能够了,笔者改动例如以下:
- private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
-
+ //private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
+ //default 2014-07-01-12:00
+ private static final long EARLIEST_SUPPORTED_TIME = 1404187200000L;
+
/**
* Called to initialize native system services.
*/
@@ -1157,7 +1159,8 @@ public class SystemServer {
// java.io.File#setLastModified, so instead we fake it and
// hope that time from cell towers or NTP fixes it
// shortly.
- Slog.w(TAG, "System clock is before 1970; setting to 1970.");
+ //Slog.w(TAG, "System clock is before 1970; setting to 1970.");
+ Slog.w(TAG, "System clock is before 20140701; setting to 20140701.");
SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
}
看了是不是感觉非常认为,改这个是简单,知道在这里能够改并不简单,加油!
高速改动android系统默认日期方法的更多相关文章
- Android系统默认设置
修改Settings源码,可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db中,如果想修改系统启动后 ...
- Android系统默认语言改为中文
第一种方法: 修改 build/tools/buildinfo.sh echo "ro.product.locale.language=zh"echo "ro.produ ...
- Android源码分析(九)-----如何修改Android系统默认时间
一 : 修改Android系统默认时间 源码路径:frameworks/base/services/java/com/android/server/SystemServer.java 主要变量EARL ...
- Android 系统默认参数的修改
转自: http://www.th7.cn/Program/Android/201505/447097.shtml 写在前面的话 一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置, ...
- Android系统默认Home应用程序(Launcher)的启动过程源码分析
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还须要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个 Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home ...
- 通过settings.db自定义Android系统默认设置
Android的系统设置数据存放在/data/data/com.android.providers.settings/databases/settings.db 中 数据库结构如下: 数据库中的默认数 ...
- 怎样改动android系统字体大小
改动字体大小的方法是运用到一个ActivityManagerNative类 首先先在代码宣告 private Configuration mconfig = new Configuration(); ...
- Android系统移植与调试之------->如何修改Android系统默认显示【开发者选项】并默认打开【USB调试】和【未知来源】开关
今天有个用户对[设置]有个特殊的要求,即: 1.开机的时候默认显示[开发者选项]并打开[USB调试]开关 ([Developer options]-->[USB debugging]) 2 ...
随机推荐
- mongodb E11000 duplicate key error collection: index: _id_ dup key
今天在单测的时候,出现这个问题. 我代码只定义了一个变量 let body = {name: 'wu'} 然后连续2次插入这个body数据 await exam.insertExam(body); a ...
- spark rdd saveAsTextFile保存为文件
sc.parallelize(["one", "two", "two", "three", "three&qu ...
- Mysql优化理论知识
参考文章 http://blog.51cto.com/lizhenliang/2095526 ()硬件优化 如果有条件一定要SSD固态硬盘代替SAS机械硬盘,将RAID级别调整为RAID1+,相对于R ...
- IE11 补丁 KB2929437[已过期]
2014年4月 请更新此补丁 KB2929437 开发人员工具有重要更新 DOM 面板右侧新增 "更改"面板,用于记录调试时修改的 CSS Rules: JS 调试面板,新增 so ...
- affe(8) solver 优化方法
上文提到,到目前为止,caffe总共提供了六种优化方法: Stochastic Gradient Descent (type: "SGD"), AdaDelta (type: &q ...
- yii2.0 数据生成 XML 格式。
return 部分的数组就是你要生成 xml 的数据. 生成的格式如下: yii2.0 中使用 xml 就是这么简单!
- NodeJS学习笔记 (17)集群-cluster(ok)
cluster模块概览 node实例是单线程作业的.在服务端编程中,通常会创建多个node实例来处理客户端的请求,以此提升系统的吞吐率.对这样多个node实例,我们称之为cluster(集群). 借助 ...
- Laravel核心解读--HTTP内核
Http Kernel Http Kernel是Laravel中用来串联框架的各个核心组件来网络请求的,简单的说只要是通过public/index.php来启动框架的都会用到Http Kernel,而 ...
- vue-router 实现无效路由(404)的友好提示
最近在做一个基于vue-router的SPA,想对无效路由(404)页面做下统一处理.这次我真的没有在官方文档找到具体的说明[捂脸]所以本文仅是我DIY的一个思路,求轻虐=_= 在我的理解中,vue- ...
- ArcGIS api for javascript——渲染-使用分级渲染
描述 本例使用一个分级渲染通过人口密度用符号表示Kansas.代码明确地增加类并为每一个定义颜色.使用ClassBreaksRenderer.addBreak()方法定义类,参数是在类中包含的最大值和 ...