Android OTA 功能,主要用于 修复 bug 、系统升级等。
升级的关键参数是 ro.product.version
,升级包的版本要高于当前版本。
记录下如下两种升级方式。
1.代码升级
通过网络或者USB等方式,传入ota 包。
需要是系统应用,
配置 android:sharedUserId="android.uid.system"
;
添加权限 ,
<uses-permission android:name="android.permission.RECOVERY" />
<uses-permission android:name="android.permission.REBOOT"/>
使用 RecoverySystem.verifyPackage
校验升级包,
然后通过 RecoverySystem.installPackage
安装升级包。
接着就会进入 Recovery 执行升级。
/**
* 功能:检验、安装 OTA 包
* 参数 otaFile : OTA 包的 File 对象
* */
private void installOtaPackage(final File otaFile) throws GeneralSecurityException, IOException {
RecoverySystem.verifyPackage(otaFile, new RecoverySystem.ProgressListener() {
@Override
public void onProgress(int progress) {
if (progress == 100){
try {
RecoverySystem.installPackage(mContext, otaFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}, null);
}
2.命令行升级
通过命令行升级,主要用于测试,
事先把 升级包 放到 /data/update.zip 下,然后串口执行
echo --update_package=/data/update.zip > /cache/recovery/command
sync
reboot recovery