转自:http://blog.csdn.net/njufeng/article/details/8184623
关于APK自动安装,需要获得root权限,尝试了多种方法,这里介绍一种自己亲自实现了的方法:
使用pm install XXX.apk的方法,得到apk后,对其重新签名再安装到手机中,即可完成自动静默安装。
具体步骤如下:
1. 代码中执行
- public void execCommand(){
- new Thread(){
- public void run() {
- Process install = null;
- try {
- //安装apk命令
- install = Runtime.getRuntime().exec("pm install -r " + "/mnt/sdcard/XXXX.apk");
- install.waitFor();
- } catch (Exception e) {
- e.printStackTrace();
- }finally{
- if (install != null) {
- install.destroy();
- }
- }
- }
- }.start();
- }
2. 编译得到一个apk,进行重新签名。
签名的步骤方法如下:
(1)编译jar
用Android提供的SignApk工具来签名,signapk的源代码是在"build\tools\signapk"下
命令行cd到signapk.java代码目录下,
javac signapk.java
获取SignApk$SignatureOutputStream.class和SignApk.class
建立目录s\com\android\signapk,将两个class文件放入目录下
jar cvfm signapk.jar SignApk.mf -C s\ .
注意:"s\"后面的"."前面有空格
生成signapk.jar文件,得到了Android提供的签名程序signapk.jar
(2)在android源码\build\target\security中找到platform.pk8和platform.x509.pem两个文件,将得到的signapk.jar这个包,还有编译好的APK放在同一目录下,执行命令:
java -jar signapk.jar platform.pk8 platform.x509.pem XXXX.apk new.apk
(3)将得到的new.apk安装到手机中即可。adb install new.apk