本篇文档主要讨论了在升级过程中遇到的问题,特别是在MPI并行程序设计中,升级后设备无法正常开机,提示"boot/recovery image sha mismatch!"和"Unable to boot:boot try to start recovery"。这些问题发生在添加了固件校验代码后,具体体现在Uboot的日志中,并且提到了在`tools/releasetools/common.py`文件中的修改,即增加了一个`truncate`命令以调整ramdisk_img的大小。
首先,升级失败可能与`update.zip`文件本身存在缺陷有关,开发者建议执行一系列编译步骤(如`make`, `make otapackage`, 和`./mkimage.sh ota`),然后将生成的img烧录到机器,以确认问题是否在于新生成的包。如果烧录后的img可以正常启动,说明升级包可能存在问题,需要回滚或重新生成完整的升级包。
其次,文档还列出了几个编译时的错误,例如:
1. `cp: cannot stat 'kernel/resource.img': No such file or directory`:这个问题通常发生在不生成`resource.img`的项目中,解决方法是在`device/rockchip/common/BoardConfig.mk`中屏蔽相关的预构建资源。
2. 未提及具体的错误,但提到在项目初次编译`otapackage`时可能遇到此问题,解决方案是确保在`build/tools/drmsigntool/`目录下进行了必要的操作(如更新签名工具)后再继续。
3. `ERROR: signapk.jar failed: returncode 1`:这是Java版本兼容性问题,如果是Android 4.4,需要使用Java 1.6,而Android 5.1则需要Java 1.7。
文档还特别强调,如果通过OTA方式进行升级,所使用的固件必须是使用`./mkimage.sh ota`打包生成的,因为ota参数是必需的。此外,虽然文档标注为内部资料,但其中列举的问题和解决方案对于理解并解决类似问题的开发者来说具有很高的实用价值。