android4.0静默安装

  最近一项目涉及到两个APK,如果分开安装,会有两个提示框,用户体验不太好。但要是把两个项目的源码合并在一起,也很麻烦,会有很多冲突的地方需要调整。所以这段时间一直在找办法做到安装其中一个APK时候,可以在不弹出安装提示框的同时安装另一个APK,也就是所谓的静默安装。网上与此相关的资料一搜一大堆,刚开始时候信心满满,以为按照大神的做法,可以很轻松解决问题,殊不知,搞了两三天都没点进展,网上的方法总是行不通,虽然没报异常,但也总是起不到预期的效果。直到今天看到了一个大神的博客,里面简简单单的几个步骤,一开始我都不太相信,不过好在最近没啥事忙,有的是时间来测试,也就试一试,结果一大喜,居然可以了!!!现在基于大神的基础整理一下实现方法:

  一.生成keystore

    dos下进入JDK的bin目录,运行如下命令:

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

 

输入keystore密码: ******
 再次输入新密码: ******
 您的名字与姓氏是什么?
  [Unknown]:  qiaoling您的组织单位名称是什么?
  [Unknown]:  www.chinaandroid.com
您的组织名称是什么?
  [Unknown]:  www.chinaandroid.com
您所在的城市或区域名称是什么?
  [Unknown]:  haidian
您所在的州或省份名称是什么?
  [Unknown]:  BJ
该单位的两字母国家代码是什么
  [Unknown]:  86
CN=qiaoling, OU=www.chinaandroid.com, O=www.chinaandroid.com, L=haidian, ST=BJ, C=86 正确吗?
  [否]:  Y
输入<android.keystore>的主密码(如果和 keystore 密码相同,按回车):
此时便会在JDK的bin目录下生成一个adroid.keystore文件。


其中参数-validity为证书有效天数,这里我们写的大些10000天。还有在输入密码时没有回显(尽管输就是啦) 并且 退格,tab等都属于密码内容,这个密码在给.apk文件签名的时候需要.


  二.导出签名APK

    Eclipse中,右击需要签名的工程-->android tools-->export signed application package... 出现下面对话框,选择需要签名的工程

  三.获取权限

    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.将platform.x509.pem和platform.pk8、signapk.jar文件以及第二步生成的签名APK放在同一路径下。打开CMD,切换到该目录,运行如下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 签名.apk  最终.apk

   此时便会生成一个“最终.apk”。此APK便可静默安装其它APK。(“最终.APK”代码里面要加入安装APK的SHELL命令:Runtime.getRuntime().exec("***.apk");)

原文地址:https://www.cnblogs.com/dream550/p/4112903.html