??? 做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文件不一样,但是我手里的三个平板电脑都是用这两个文件签名的,运行正常。
1 楼 6a209 2011-09-13
博主你好,请问下你这样签名以后程序能直接安装?还是要push进去???
2 楼 chroya 2011-09-14
6a209 写道
博主你好,请问下你这样签名以后程序能直接安装?还是要push进去???
可以直接安装的