全志A20平臺--OTA升級平臺搭建筆記

以差分包升級爲例(完整包升級方法類似),要完成一個差分包的在線升級必備條件有:

1.安卓apk工具支持

2.差分包製作

3.服務器搭建

4.ota 環境配置

平臺:A20/Android4.2.2

第一步:對於支持ota功能的版本,要有以下apk

1.update.apk

2.DownloadProvider.apk

3.DownloadProviderUi.apk(不確定需要不需要這個,應該不需要ui也可以,可以試試不要這個)

  第二步:差分包準備

差分包製作需要兩個target_files_package(zip 包),即版本信息包,這並不是完整包,只是記錄了當前版本的信息。

1.make-j8 

2.get_uboot

3.maketarget-files-package(當前版本的target_files_package包)

4.備份out/target/product/crane-xxx/obj/PACKAGING/target_files_intermediates/目錄下的*.zip包

5.備份當前版本固件

6.將當前版本的target_files_package拷貝到android根目錄下,命名爲old_target_files.zip(必須爲這個名字,因爲製作差分包的命令腳本中寫死了這個名字,也可以自行修改)

7.在當前版本基礎上做出改變(升級),make -j8,重複1-5

8.makeotapackage_inc生成差分包,路徑爲out\target\product\crane-XXX\crane_XXX-ota-XXXXXXXX-inc.zip

9.將生成的差分包做好備份,因爲下次編譯源碼會刪除已存在的差分包文件

第三步:服務器搭建

前提:安裝了java的windos平臺

1. 在tomcat官網下載適合宿主機的壓縮包,解壓縮

2. 配置環境變量 TOMCAT_HOME和CATALINA_HOME 變量值均爲安裝路徑

3. 進入安裝目錄下的bin目錄,點擊startup.bat

出現如下圖結果證明環境變量設置成功

 

 

 

 

4. 打開瀏覽器輸入http://localhost:8080,若能進入tomcat歡迎頁如下圖,則tomcat搭建成功

 

 

5. 將tomcat配置爲系統爲服務,並設置爲自啓。打開cmd.exe,進入安裝目錄下的bin目錄,運行命令service.batinstall 設置爲系統服務。點擊tomcat7w.exe或系統服務列表中的tomcat服務設置爲自動。

6. 可是試着開機重啓一下再打開瀏覽器測試服務器是否配置成功。

7. (可選)進入tomcat配置目錄conf,在server.xml中可將服務端口由8080改爲80.

8. 將全志給的服務器端update文件夾拷貝到服務器默認根目錄webapp/下

9. 可以在瀏覽器下輸入http://192.168.1.1/update/form.jsp測試是否可以打開如下配置界面,192.168.1.1改成你配置的服務器地址,有必要的話地址加端口。

 

 

第四步:OTA服務器端升級環境配置

1.         正式發佈之前先以debug用戶配置環境。打開parameter.conf文件修改爲自己的配置,該文件是用來跟客戶端發來的post請求信息匹配的,裏面的參數可以增刪,只要配置文件裏的所有參數能與客戶端發來的post請求信息匹配,纔會進行下一步動作。否則將不能解析服務器上是否有對應版本的升級包。

2.         parameter.conf匹配成功後服務器端會去解析debug.conf(如果用戶是非debug用戶,將會解析update.conf),所以要更新debug.conf文件中的版本號信息以及xml文件的鏈接地址


    等號左邊爲版本信息,這個一定要跟客戶端的當前版本信息匹配。等號右邊爲差分包配置文件*.xml文件鏈接地址。

3.進入xml文件夾,維護debug(正式發佈時直接維護update文件夾)文件夾。文件內容如下:

 

 

需要維護的內容:

a. 版本號

b. 差分包訪問地址

c. 升級日誌(描述信息)

d. Md5值(該值由全志提供的UpdateTools.jar工具生成,也可自行在網上下載一個md5信息提取工具試試

4. 差分包放在對應的路徑下,至此服務器端配置完成

 

第五步:OTA客戶端升級環境配置

1.   打開客戶端apk源碼目錄下的Utils.java文件


    維護服務器地址(需在服務器路徑前多加一個update路徑才能解析),修改DEBUG = true;

2.客戶端主要就是維護apk中的以上兩個部分。

 

 

補充:

    服務器與客戶端之間的匹配信息都是從當前版本的buid.prop文件提取出來的,比如:

android版本信息ro.build.version.release”獲得

固件版本 (firmware)   ro.product.firmware”獲得

廠商名稱 (brand)  ro.product.brand”獲得

機型(device)“ro.product.device”獲得

電路板類型(board) ro.product.board”獲得


 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章