高速改动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 ...
随机推荐
- Kali linux 2016.2(Rolling)中metasploit的端口扫描
目前常见的端口扫描技术一般有如下几类: TCP Connect.TCP SYN.TCP ACK.TCP FIN. Metasploit中的端口扫描器 Metasploit的辅助模块中提供了几款实用的 ...
- PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(2)
2.2 XLOG和复制 在本章中,您已经了解到PostgreSQL的事务日志已经对数据库做了所有的更改.事务日志本身被打包为易用的16MB段. 使用这种更改集来复制数据的想法是不牵强的.事实上,这是在 ...
- c# 的类成员
1 字段和变量的区别 字段是在类中定义的数据成员 由访问修饰符+数据类型+字段名(public string name) 字段就像类的一个小数据库,用来存放和类相关的数据; 而变量是没有修饰符的(in ...
- ACM训练联盟周赛(第一场)
B:Zeratul与Xor 题目描述 Xor(按位异或),对应C++中的“^”运算符. Zeratul给出了一个数列A[n](n≤105),要做q(q≤105)组动作,这些动作包括: 1 a:数列中 ...
- ubuntu 18.04网卡命名规则改回传统的ethx
自15版本开始网卡命名规则就不叫eth0了.而是用可预期网络接口设备名称的命名规则,比如网卡名为enp3s0 . 如果想要变回ethx也是可以的,参考以下步骤: 1.编辑/etc/default/gr ...
- Hexo 与 Git 集成
git初始化项目 登录Github,初始化GitHub Pages项目.即是添加一个Git Project. 点击New repository创建一个新的Project.需要填写选项如下: - ...
- Unity 获得Android Context上下文
1.获取Context AndroidJavaObject context = new AndroidJavaClass ("com.unity3d.player.UnityPlayer&q ...
- Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存
Ehcache 整合Spring 使用页面.对象缓存 Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式 ...
- 绿色版SecureCRT启动崩溃,遇到一个致命的错误且必须关闭
百度搜了半天,大家都是说删除注册表的VanDyke就能解决问题,但是我用的是绿色版的,删除VanDyke后还不行. 然后试了一下重新解压出一个绿色版的SecureCRT,发现能用. 但之前我配置了很多 ...
- hdu 1024 最大m子段和
注:摘的老师写的 最大m子段和问题 以-1 4 -2 3 -2 3为例最大子段和是:6最大2子段和是:4+(3-2+3)=8所以,最大子段和和最大m子段和不一样,不能用比如先求一个最大子段和,从序列中 ...