ValueError: can't find recovery API version in input target-files

制作差分包执行命令:

$ ./build/tools/releasetools/ota_from_target_files -i A.zip B.zip update.zip

会出现 ValueError: can't find recovery API version in input target-files。即未找到recovery_api_version的错误。 

原因:

在执行上面的脚本时如果使用选项 i 则会调用WriteIncrementalOTAPackage会从A包和B包中的META目录下

搜索misc_info.txt来读取recovery_api_version的值。

但是在执行make  otapackage命令时生成的update.zip包中没有这个目录更没有这个文档。

此时我们就需要使用执行make otapackage生成的原始的zip包。这个包的位置在

out/target/product/[项目名]/obj/PACKAGING/target_files_intermediates/目录下

它是在用命令make otapackage之后的中间生产物,是最原始的升级包。

我们将更改前后编译生成的包分别重命名为old.zip和new.zip,并拷贝到源码根目录下重复执行上面的命令: 

$./build/tools/releasetools/ota_from_target_files -i old.zip new.zip update.zip

如果没有其它错误的话,会在源码根目录生成update.zip 差分包,OK。

你可能感兴趣的:(android,升级,差分包)