汇聚万千丝和绪,记录点滴得与失.

-关注移动互联网、软件开发过程与质量、数据库 -开源轻量级项目管理软件实践者(Trac+Subversion+Testlink+Reviewboard+Hudson+...)

Android静默安装

最近做了一个Android项目,要求软件能够自动下载指定的APK文件并自动安装,无须用户操作,即静默安装。在查阅了GOOGLE之后,综合了各位方法之后,找到了一种相对简化的方法,不过此方法只在4.0的Android版本下测试过,其它版本各位可以照此方法尝试一下。
 
想要做到静默安装,其实就是要有权限执行pm install命令。准备工作其实就两步:
1、获取执行权限
2、执行命令
 
我们首先介绍第二步,如何执行pm install命令:
关键代码其实就一句:
Runtime.getRuntime().exec("pm install xxx.apk");
 
网上也有人提到利用BufferReader读取控制台的输出Success来判断是否安装成功,但我始终没有抓到最后输出的那一句Success,只好用Package install的receiver来处理安装成功后的操作。
 
再回到如何获取权限的方法,
 
1、首先,我们要做的就是从Android的系统源码的/build/target/product/security目录中,找到两个签名文件: platform.x509.pem和platform.pk8
 
2、在/build/tools/signapk目录下找到signapk.jar文件的源码,编译成signapk.jar文件
 
3、然后在Android项目的manifest.xml文件中,加上INSTALL_PACKAGES的权限。
 
4、导出apk文件,这里选择签名文件导出。右键项目->"Android Tools"->"Export Signed application Package..."
 
 
 
5、最后就是执行
jar signapk.jar platform.x509.pem platform.pk8 签名的apk  目标文件.apk
 
由此生成的目标文件apk就可以正常安装在Android中,并可以静默安装任意指定的apk文件了。
 
 

文中所需的三个文件下载

signapk.jar

platform.x509.pem

platform.pk8

 

 通过 为知笔记 发布

     

    posted on 2012-10-04 22:57  brucenan  阅读(13432)  评论(11编辑  收藏  举报

    导航