android 设置系统的时间
2015-09-22 10:04
411 查看
在Android中,API 提供SystemClock.setCurrentTimeMills()函数来修改系统时间,但logcat会提示:“Unable to open alarm driver:Permission denied”.这个函数需要root权限或者运行在系统进程中才可以使用。
解决办法:
在应用程序的AndroidManifest.xml中的 manifest节点中加入android:sharedUserId=”android.uid.system”这个属性。
修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
使用mm命令来编译,生成的apk就有修改系统时间的权限了。
原理:首先加入 android:sharedUserId=”android.uid.system”这个属性。通过Shared User id,拥有同一个User id的多个APK 可以配置成运行在同一个进程中。把程序的UID 配成android.uid.system,也就是让这个程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这个时候安装APK肯定会无法安装,提示签名不符。原因是程序想要运行在系统进程中还要目标系统的platform key。(platform.pk8 和platform.x509.pem两个文件)用这两个key签名后apk才真正的可以放入系统进程中。加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
解决办法:
在应用程序的AndroidManifest.xml中的 manifest节点中加入android:sharedUserId=”android.uid.system”这个属性。
修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
使用mm命令来编译,生成的apk就有修改系统时间的权限了。
原理:首先加入 android:sharedUserId=”android.uid.system”这个属性。通过Shared User id,拥有同一个User id的多个APK 可以配置成运行在同一个进程中。把程序的UID 配成android.uid.system,也就是让这个程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这个时候安装APK肯定会无法安装,提示签名不符。原因是程序想要运行在系统进程中还要目标系统的platform key。(platform.pk8 和platform.x509.pem两个文件)用这两个key签名后apk才真正的可以放入系统进程中。加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
相关文章推荐
- bug整理
- 在线查看android源代码的3种方式
- 2015Android移动开发应用主流菜单模式
- WebRTC知识分享——WebRTC on Android
- android自定义圆形imageview
- Android设备的显示信息
- Android 一个ListView添加多个Adapter
- “The Android NDK cannot be installed into a path with spaces”的解决方法
- Android开发总结笔记 TableLayout(表格布局) 1-1-4
- 由Android想到的事情
- Android--颜色,动画效果xml所在目录
- Android多屏幕适配方案
- android压力测试命令monkey详解
- Android 类菜单栏 以及 透明居中排列
- android studio导入别人项目快速配置方式
- 浅析android中的Bundle类
- 加载页面时,判断是安卓手机(android),还是苹果系列(iPhone,iPad,ios)
- Android 墙纸设置代码 详细说明
- 分享:Android清除本地数据缓存代码
- Android 沉浸式状态栏攻略 让你的状态栏变色吧