做Home程序的时候,由于需要提供时间日期的设置功能,所以需要修改系统时间。修改时间的代码很简单,就那么一句,但是要让它生效可就不那么容易了。 修改系统时间的条件是,你的程序的user id必须跟system一样,也就是说,需要system权限。 怎样达到这个条件呢? Android提供了sharedUserId来设置程序归属哪个user id,我们在程序的manifest文件里面加上如下属性
android:sharedUserId="android.uid.system"
这样还不行,因为这样编译出来的apk安装不了。还需要签名。
签名需要用到的文件是源码中的build\target\product\security目录下的platform.pk8和platform.x509.pem两个文件。然后使用signapk.jar来签名。这三个文件打包放到附件了。
在cmd下面,运行
java -jar signapk.rar platform.x509.pem platform.pk8 a.apk a_signed.apk
a.apk是待签名的apk,a_signed.apk是签名后的apk。这样,如果你的代码里面有用到需要platform权限的功能,就可以畅通无阻了。
当然,可能不同的系统platform.pk8和platform.x509.pem文件不一样,但是我手里的三个平板电脑都是用这两个文件签名的,运行正常。