首頁>數碼>

飛凌RK3399開發板 OTA測試

OTA (over the air)升級是Android 系統提供的標準軟體升級方式。它功能強大,提供了完全升級(完整包)、增量升級模式(差異包),可以透過本地升級,也可以透過網路升級。

注意:OTA映象的打包方式和rk update.img的打包方式有所差異,沒有單獨的kernel分割槽,核心裝置樹存在於boot.img中,因此如果使用OTA升級時,需要保證當前系統中的映象也是按照OTA方式打包的。

一、OTA 升級包編譯

本節我們將編譯三個版本的android映象,V1.0.0版本、V1.0.1版本、V1.0.2版本,其中V1.0.0版本為基礎版本用於燒寫到飛凌RK3399開發板上,V.1.0.0升級到V1.0.1採用完全升級的方式測試完全升級功能,V1.0.1升級到V1.0.2採用增量升級模式測試增量升級功能。

檢視device/rockchip/rk3399/BoardConfig.mk

確認當前版本號為1.0.0,同時將ro.product.ota.host修改為用於OTA升級伺服器的Linux主機地址,8888為埠號(伺服器搭建參考後續章節)。

1、 編譯V1.0.0版本映象

lunch rk3399_all-userdebug

rm out/target/product/rk3399_all/system/build.prop

make -j4

./mkimage.sh ota

將rockdev/Image-rk3399_all目錄的映象備份

mkdir images_v1.0.0

cp rockdev/Image-rk3399_all/* images_v1.0.0

以單獨燒寫的方式,將映象燒寫到飛凌RK3399開發板上,注意不要燒寫kernel.img。

2、編譯V1.0.1版本完全升級包

修改device/rockchip/rk3399/BoardConfig.mk

將當前的版本號修改為:1.0.1

lunch rk3399_all-userdebug

rm out/target/product/rk3399_all/system/build.prop

make -j4

./mkimage.sh ota

make otapackage -j4

mv out/target/product/rk3399_all/rk3399_all-ota-eng.root.zip 1.0.1.zip

mv out/target/product/rk3399_all/obj/PACKAGING/target_files_intermediates/rk3399_all-target_files-eng.root.zip target_1.0.1.zip

其中1.0.1.zip是用於測試的完全升級包,target_1.0.1.zip是用於製作V1.0.2版本增量升級包的基礎素材。

3、編譯V1.0.2版本增量升級包

修改device/rockchip/rk3399/BoardConfig.mk

將當前的版本號修改為:1.0.2

lunch rk3399_all-userdebug

rm out/target/product/rk3399_all/system/build.prop

make -j4

./mkimage.sh ota

make otapackage -j4

mv out/target/product/rk3399_all/obj/PACKAGING/target_files_intermediates/rk3399_all-target_files-eng.root.zip target_1.0.2.zip

使用target_1.0.1.zip和target_1.0.2.zip製作V1.0.2版本增量升級包。

./build/tools/releasetools/ota_from_target_files -v --block \

-i target_1.0.1.zip \

-p out/host/linux-x86 \

-k build/target/product/security/testkey \

target_1.0.2.zip \

1.0.2.zip

經過前面幾小節的編譯,我們得到最終得到了以下檔案:

images_v1.0.0目錄的基礎映象:v1.0.0版本的映象,用於燒寫到飛凌RK3399開發板上。

1.0.1.zip:v1.0.1版本的完全升級包。

1.0.2.zip:v1.0.2版本的增量升級包。

二、OTA 本地升級

啟動RK3399開發板並輸入:

getprop ro.product.version 確認版本號是否為1.0.0。

同時可以在飛凌RK3399開發板上輸入getprop ro.product.version 確認版本號是否為1.0.1。

下面,將1.0.2.zip複製到TF卡根目錄,並重命名為update.zip,由於是增量升級可以看到update.zip只有幾十MB,當然這根修改的程式碼多少有關。將TF卡插入開發板,與前面完全升級的步驟一樣。

同時可以在飛凌 RK3399 開發板上輸入getprop ro.product.version 確認版本號是否為1.0.2。

三、OTA 遠端升級1、搭建OTA升級伺服器

開啟飛凌提供的RK3399使用者資料,將資料工具目錄中的apache-tomcat-7.0.29.zip複製到Linux主機/home/forlinx目錄。

注意:如果您的主機沒有jdk環境,請參考上篇建立Android應用開發環境編譯章節安裝jdk環境。

unzip apache-tomcat-7.0.29.zip

chmod 775 -R apache-tomcat-7.0.29

cd apache-tomcat-7.0.29/webapps/OtaUpdater/WEB-INF

cat manifast.xml

其中,product name需要與device/rockchip/rk3399/BoardConfig.mk中定義的PRODUCT_MODEL一致。

version name 選項對應升級前版本,package_path選項對應該版本的升級包路徑。

將1.0.1.zip和1.0.2.zip複製到對應的目錄:

修改埠號:apache-tomcat-7.0.29/conf/server.xml

啟動服務:

cd apache-tomcat-7.0.29/bin

./startup.sh

2、測試OTA遠端升級

首先將之前備份在images_v1.0.0映象燒寫到開發板上。getprop ro.product.version 確認版本號是否為1.0.0。

正常情況下系統啟動完畢幾秒鐘後將提示升級,如果沒有提示請:

getprop ro.product.ota.host 確認OTA升級伺服器引數是否正確。

同時確認網路是否連通。

重啟系統,由於我們當前版本已經升級到了1.0.1版本,系統將檢測到最新的1.0.2版本,提示升級。

由於是增量升級,升級包非常小,升級速度也比較快。

35
  • 雙11 神舟放大招,11代i7筆電直降1100?
  • 為啥大家都喜歡曲面屏手機?我偏要推薦這幾款直面屏,打遊戲巨爽