android 静默安装

倒腾一下午,终于搞定了android的静默安装 步骤如下

1、 Manifest 配置

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />

    <uses-permission android:name="android.permission.DELETE_PACKAGES" />

    <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
android:sharedUserId="android.uid.system"

2、安装代码

 private String install(String apkAbsolutePath)
    {
        String[] args = {
                "pm", "install", "-f", apkAbsolutePath
        };
        String result = "";
        ProcessBuilder processBuilder = new ProcessBuilder(args);
        Process process = null;
        InputStream errIs = null;
        InputStream inIs = null;

        try
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int read = -1;
            process = processBuilder.start();
            errIs = process.getErrorStream();
            while ((read = errIs.read()) != -1)
            {
                baos.write(read);
            }
            
            inIs = process.getInputStream();
            while ((read = inIs.read()) != -1)
            {
                baos.write(read);
            }
            byte[] data = baos.toByteArray();
            result = new String(data);
        } catch (Exception e)
        {
            // TODO: handle exception
        }

        return result;

    }

3 签名生成apk 

4 将生成apk和几个权限文件放在同一文件夹 

   用rar打开apk,将META-INF目录下,将CERT.SF和CERT.RSA这两个文件删除掉

5 执行命令

java -jar signapk.jar platform.x509.pem platform.pk8 原apk.apk 目标apk.apk

卸载也是同样pm uninstall命令 

 

参考:http://blog.sina.com.cn/s/blog_456baf5e0101374i.html

http://bbs.51cto.com/thread-968264-1.html

 

posted on 2013-02-16 16:11  Tristan2012  阅读(8493)  评论(3编辑  收藏  举报