步骤:

从模拟器Systemframework目录下提取framework.jar;将framework.jar后缀名改为zip,解压后提取其中的classes.dex文件;用dex2jar工具将classes.dex转成classes.dex.dex2jar.jar;将classes.dex.dex2jar.jar改名为classes.dex.dex2jar.zip,解压取出android目录下的PackageManager.class;找到android-sdk目录下的android.ja

Android静默安装

个人了解到的静默安装的方式有以下4种:

我看了一些第三方的应用市场,一般在设置下都会有前两种静默安装的方式可供选择,而后两种静默安装的方式主要是厂商自己的应用市场使用。

如果在7.0的系统上使用第三种静默安装的方式会出现以下错误:

参考:
Android7.0的静默安装失败问题研究
Android N 静默安装和卸载

主要步骤如下:

我试了以上两篇文章的介绍的方法,还是失败,提示Failure [null],不知道怎么破了,可能是厂商的定制问题吧。。。还在思考中。。。

android在root权限下实现apk的静默卸载,静默安装,重启

1.静默卸载实现:

/**
    * 静默卸载app

    *

    * @param context

    * @param packageName app的包名

    * @throws IOException

    * @throws InterruptedException

    */

    public static void uninstallApp(Context context, String packageName) throws IOException, InterruptedException {

        List<PackageInfo> packageInfos = context.getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

        for (PackageInfo packageInfo1 : packageInfos) {

            if (packageName.equals(packageInfo1.packageName)) {

                String suPath = "/system/xbin/su";

                File file = new File(suPath);

                if (!file.exists()) {

                    suPath = "/system/bin/su";

                }

                Process process = Runtime.getRuntime().exec(suPath);

                String cmd = "pm uninstall " + packageName + "\n" + "exit\n";

                process.getOutputStream().write(cmd.getBytes());

                process.waitFor();

                break;

            }

        }

    }

2.静默安装实现:

/**
    * 静默安装app

    *

    * @param filePath

    * @throws IOException

    * @throws InterruptedException

    */

    public static void installApp(String filePath) throws IOException, InterruptedException {

        String suPath = "/system/xbin/su";

        File file = new File(suPath);

        if (!file.exists()) {

            suPath = "/system/bin/su";

        }

        Process process = Runtime.getRuntime().exec(suPath);

        String cmd = "pm install -r " + filePath + "\n" + "exit\n";

        process.getOutputStream().write(cmd.getBytes());

        process.waitFor();

    }

最后加上重启命令:

/**
    * 重启系统

    *

    * @return

    */

    public static boolean reboot() {

        try {

            String suPath = "/system/xbin/su";

            File file = new File(suPath);

            if (!file.exists()) {

                suPath = "/system/bin/su";

            }

            Process process = Runtime.getRuntime().exec(suPath);

            String cmd = "reboot\nexit\n";

            process.getOutputStream().write(cmd.getBytes());

            return true;

        } catch (IOException error) {

            return false;

        }

    }

注意卸载和安装需要在子线程中执行;如果单纯关机则用“reboot -p”命令。

Android静默安装与静默卸载(系统应用)

一.轰隆一声雳响,我闪亮登场。

本篇基于已有系统证书(从Android设备厂家获得)的情况下实现静默安装与静默卸载,可分为三部分讲解:将apk内置为系统应用,apk静默安装与apk静默卸载。

1.将apk内置为系统应用。内置的方法有共性,也有区别。基础操作是共性,区别就在于Android4.4以上版本与Android4.4以下版本。

2.apk静默安装。

3.apk静默卸载。

二.若您觉得本文对您有帮助,记得点个关注哟~

android没有root的情况下怎么实现静默安装

手机ROOT方法:\x0d\x0a1、下载安装KingRoot 电脑版\x0d\x0a2、用USB数据线连接手机Root过程中,保持手机连接PC\x0d\x0a3、按提示开始Root操作整个过程需要5-10分钟\x0d\x0a4、Root成功!\x0d\x0a\x0d\x0a注:手机ROOT之后是不在保修条约里面的,需要解除ROOT权限即可。

android如何实现静默安装哦

原理

静默安装、卸载的原理就是利用pm install命令来安装apk,pm uninstall 来卸载apk.

智能安装是利用android系统提供的无障碍服务AccessibilityService,来模拟用户点击,从而自动安装.

//静默安装
    private void installSlient() {
        String cmd = "pm install -r /mnt/sdcard/test.apk";
        Process process = null;
        DataOutputStream os = null;
        BufferedReader successResult = null;
        BufferedReader errorResult = null;
        StringBuilder successMsg = null;
        StringBuilder errorMsg = null;
        try {
            //静默安装需要root权限
            process = Runtime.getRuntime().exec("su");
            os = new DataOutputStream(process.getOutputStream());
            os.write(cmd.getBytes());
            os.writeBytes("\n");
            os.writeBytes("exit\n");
            os.flush();
            //执行命令
            process.waitFor();
            //获取返回结果
            successMsg = new StringBuilder();
            errorMsg = new StringBuilder();
            successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
            errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            String s;
            while ((s = successResult.readLine()) != null) {
                successMsg.append(s);
            }
            while ((s = errorResult.readLine()) != null) {
                errorMsg.append(s);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (os != null) {
                    os.close();
                }
                if (process != null) {
                    process.destroy();
                }
                if (successResult != null) {
                    successResult.close();
                }
                if (errorResult != null) {
                    errorResult.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        //显示结果
        tvTest.setText("成功消息:" + successMsg.toString() + "\n" + "错误消息: " + errorMsg.toString());
    }

如何实现Android APP静默安装

8.1. 静默安装包(Silent Installation): 所谓静默安装包,有这么几个特点:安装过程没有界面;安装过程不需要用户进行任何输入;也不会在Taskbar中显示一个安装程序的Icon。 如何创建一个静默安装包: 1. 静默安装包的制作是在主程序完成后进行的,先录制静默脚本文件,通过在命令行运行安装包Setup.exe 给入参数/r,这时会启动的依然是有界面操作的安装,按照正常操作方式完成安装。 2. 完成上一步之后,会在系统的Windows或WINNT文件夹下产生一个Setup.iss文件(可以通过按照时间排序查找),将此文件复制到Setup.exe同一目录下,改名为Setup.iss.install(静默安装脚本)。 3. 继续在命令行执行Setup.exe /r,完成后将新生成的Setup.iss文件同样复制到Setup.exe目录下,改名为Setup.iss.uninstall(静默卸载脚本)。 运行静默安装包: 1. Setup.exe /s f1"Setup.iss.install的路径" f2“指定生成静默安装Log的路径”   如果不通过f2指定log路径,则会在setup.exe同路径下生成一个Setup.log的文件。 2. 静默卸载调用方法同1。 =====================================