android 设置系统的时间

在Android中,API 提供SystemClock.setCurrentTimeMills()函数来修改系统时间,但logcat会提示:“Unable to open alarm driver:Permission denied”.这个函数需要root权限或者运行在系统进程中才可以使用。

解决办法:

  1. 在应用程序的AndroidManifest.xml中的 manifest节点中加入android:sharedUserId=”android.uid.system”这个属性。
  2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
  3. 使用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来签名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值