Android:静默升级的分类与总结

本文详细介绍了如何在Android系统中实现静默安装和卸载应用程序,包括需要系统级别的权限、签名匹配以及针对不同Android版本的处理方法。对于具有Root权限的系统,使用`mpinstall-r`命令进行静默安装,而没有Root权限的系统则通过Android 6.0以上API或移植系统源码来实现。同时,文章提供了相关代码示例和文件转换方法。

要实现静默升级,首先要准备的

一般需要该应用是系统级别的应用,经过了平台下发的对应签名apk。

即:

1.内置到ROM,即APK包的安装位置是/system/app下。(制成一个系统刷机包)

2.使用APK的目标安装系统同样的签名。(系统签名)

当然不同平台的签名是不一样的,这个需要根据平台业务来具体确认,第三方Rom这样做也是处于保护系统安全的角度来考虑的。

一般静默升级的代码写法,包含两类

一类是该系统是开放了Root权限

二类是系统没有开放Root权限

开放了root权限的系统,支持静默升级的方式比较多

具有Root权限的静默升级,是用mp install -r 这样的方式实现的,类似adb推送的命令进行的安装

开放了Root权限的

开放了Root权限的静默升级就比较简单,但这个代码稍微要改一改,比较容易卡死


    //静默安装
    protected void excutesucmd(String currenttempfilepath) {

        Process process = null;
        OutputStream out = null;
        InputStream in = null;
        try {
            // 请求root
            process = Runtime.getRuntime().exec("sh");
            out = process.getOutputStream();
            // 调用安装
            out.write(("pm install -r " + currenttempfilepath + "\n").getBytes());
            in = process.getInputStream();
            int len = 0;
            byte[] bs = new byte[256];
            while (-1 != (len = in.read(bs))) {
                String state = new String(bs, 0, len);
                if (state.equals("success\n")) {
                    //静态注册自启动广播
                    Intent intent = new Intent();
                    //与清单文件的receiver的anction对应
                    intent.setAction("android.intent.action.PACKAGE_REPLACED");
                    // 发送广播
                    sendBroadcast(intent);
                }
            }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wenlong Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值