要实现静默升级,首先要准备的
一般需要该应用是系统级别的应用,经过了平台下发的对应签名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);
}
}

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

被折叠的 条评论
为什么被折叠?



