最近做了一个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、最后就是执行
jarsignapk.jarplatform.x509.pemplatform.pk8 签名的apk 目标文件.apk
由此生成的目标文件apk就可以正常安装在Android中,并可以静默安装任意指定的apk文件了。
文中所需的三个文件下载:
signapk.jar
platform.x509.pem
platform.pk8
分享到:
相关推荐
android 静默安装代码,根据源码改造,实现自己的静默安装。
android实在获得root权限应用静默安装
android静默安装和智能安装的实现(本人测试的5.0的系统)
android 静默安装和普通安装版本更新demo,
详情见:Android 静默安装和静默卸载(系统层) http://blog.csdn.net/zhouyuanjing/article/details/78507606 安装: Intent intent = new Intent("android.intent.action.SILENT_PACKAGE_INSTALL"); intent....
android 静默安装 需要系统签名使用,接口java反射获取
演示Android的静默安装和仿照360的智能安装演示demo,详细内容请看博客: http://blog.csdn.net/fuchaosz/article/details/51852442
一个实现静默安装,并在安装之后启动软件的Demo,静默安装和自启动分为两个软件
android静默安装和智能安装的实现(本人测试的5.0的系统.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
静默安装就是在某个触发点自动后台安装指定apk.没有安装界面.新软件自动安装,有旧版本的默默卸载,然后再安装,并且在不受系统设置中的第三方软件安装开关的限制.
Android静默安装apk的Demo。引入了TrineaAndroidCommon。手机需要root。
Android10.0 静默安装、卸载接口
android 静默安装和静默卸载。条件手机必须root。
内附apk 实现说明 是在linx系统环境下 源码下MM 编译实现方式
实现android静默安装,注意:手机需root
通过系统root权限实现android系统的静默安装以及安装成功后自动重启