分类: Java
2013-03-14 14:36:23
生成ota全包,请参照下面步骤1和2的命令。步骤1是前提,步骤2最终生成ota全包。
1. 编译+签名:
vendor/baidu/tools/release_make_image.sh
假设当前需生成的版本号为vC80-0,编user版本,存放key的目录为~/MyProject
/chengkai/key,则命令如下:
vendor/baidu/tools/release_make_image.sh vC80-0 user ~/MyProject/chengkai/key
此条命令之后,在代码根目录下会生成image_output_vC80-0目录,请把这个目录
保存好,里面存放了签了名的 target_files、image等。其中
image_output_vC80-0/image目录里面就是带签名的 image文件,用于烧写手机。
如果以后代码有了更新,需要出个vC81-0版本,则仍然使用该命令:
vendor/baidu/tools/release_make_image.sh vC81-0 user ~/MyProject/chengkai/key
此条命令之后,在代码根目录下会生成image_output_vC81-0目录。
2. 如果想生成从vC80-0到vC81-0的ota升级包,则使用这个命令:
vendor/baidu/tools/release_make_ota_diff.sh
结合上面的例子,则实际命令如下:
vendor/baidu/tools/release_make_ota_diff.sh
xxx/image_output_vC80-0/target_files_signed.zip vC80-0 xxx/image_output_vC81-0/target_files_signed.zip vC81-0 ~/MyProject/chengkai/key/releasekey
注意这一步只需使用release key,所以最后一个参数不是指向存放key的目录,而
是指向里面的release key。
此条命令之后,在代码根目录下生成ota_output,里面存放了vC80-0到vC81-0的
ota差分包(在ota-diff目录),以及vC81-0的ota全包(在ota-full目录)。
目前有两种升级方式:recovery升级和通过应用来升级。通过recovery升级不会检测image签名和OTA包签名的一致性, 通过应用升级会检测image签名和OTA包签名的一致性。所以有两种方式来解决这一签名不一致的问题。
1. 通过build/target/product/security下的key 来 签名的image和OTA包,但是只能通过recovery模式来升级。升级之后手机里面就是build/target/product/security下的key的签名。
2. 先用build/target/product/security下的key来签名image, 再用百度 key签名OTA包。这样OTA包就能够在之前用百度key签名的系统上升级。 升级之后手机里面就是build/target/product/security下的key的签名了。
使用这两种方法解决本次的签名的问题后,下次升级就可以直接用build/target/product/security下的key签名image和OTA包,然后通过recovery模式或者应用来完成OTA升级了。
BR