本文轉載自:http://blog.csdn.net/yanleizhouqing/article/details/50234213
1、前言
OTA(Over-the-Air Technology)空中下載技術。是通過移動通信(GSM或CDMA)的空中接口對SIM卡數據及應用進行遠程管理的技術。空中接口可以采用WAP、GPRS、CDMA1X及短消息技術。OTA技術的應用,使得移動通信不僅可以提供語音和數據服務,而且還能提供新業務下載。這樣,應用及內容服務商可以不受平台的局限,不斷開發出更具個性化的貼近用戶需求的服務,如信息點播、互動娛樂、位置服務以及銀行交易等。通過OTA空中下載技術,手機用戶只要進行簡單操作,就可以按照個人喜好把網絡所提供的各種業務菜單利用OTA機制下載到手機中,並且還可以根據自己的意願定制具體業務。
移動終端空中下載軟件(FOTA) 主要應用的手機領域。在FOTA出現之前,手機制造商和移動網絡運營商無法在手機最重要的18至24個月的生命周期中有效地對軟件進行升級。一旦用戶需要對手機軟件進行升級,他們經常迫不得已要帶着手機到維修中心進行手機升級。FOTA使手機制造商能夠通過無線網絡將升級軟件發送到用戶的手機中從而對軟件或是軟件的某個部分進行升級。這樣就省卻了用戶去銷售網點或是服務中心而耽誤得時間,方便了用戶,也為手機制造商節約了成本。
“FOTA”(移動終端空中下載軟件升級),這個由RED BEND公司開發並獲得專利的技術vCurrent Mobile 移動終端空中下載軟件升級(FOTA)解決方案,已經被越來越多的廠商應用到自己的產品之中。
通過空中下載的方式有效而可靠的對用戶手中的手機進行升級。用這種方式,手機廠商能夠更加快速地向市場推出具有新功能的手機並以此提高用戶對其手機的滿意度。Red Bend 軟件公司的vCurrent Mobile技術可以生成極小的更新包對手機進行100%精確安全的更新從而節約了由此而產生的成本。與其它FOTA解決方案不同的是,vCurrent Mobile 生成的軟件更新包不會妨礙原有的映像文件,從而使得更新過程簡單而迅速。
FOTA的技術特點:
Ø Red Bend的FOTA客戶端支持標准的OMA DM服務器,兼容性好
Ø 中國移動的DM系統也采用Red Bend的技術
Ø Red Bend的技術在DM領域處於領先
Ø 升級包采用差分包形式,減少下載瀏覽
Ø 客戶端必須要Red Bend提供基礎庫
Red Bend軟件公司是固件無線更新( FOTA )的領導者,根據獨立市場研究公司Ovum的報告,截至2009年第四季度,Red Bend軟件公司在FOTA手機市場占據了71 %的市場份額。該解決方案的精確性和安全性經過了數百萬次驗證,現已被行業頂級手機、調制解調器、M2M模塊制造商廣泛采用。LG電子,摩托羅拉,NEC,夏普,索尼愛立信等世界手機巨頭利用RedBend公司的FOTA解決方案。
2 Android OTA
Android平台提供Google diff arithmetic差分機制,升級包支持整包(Full Image)和差分包(Differential Image)。OTA運行原理如下圖:

圖1 OTA運行原理圖
上圖所示的就是OTA運行的基本運行原理示意圖。
Ø OTA Server主要是對差分包的一個上傳、下載以及版本的管理。
Ø 開發者通過差分包的制作工具制作出差分包,使用客戶端進行上傳和對版本的管理。
Ø 手機通過WIFI/GPRS網絡進行連接下載,然后完成更新。
3 服務器側差分包制作原理
差分包的制作工具是google提供的制作工具,是由一些腳本和差分包制作工具組成,分散在code源碼之中。考慮到工具可能被修改或者調整,因此每次制作都需要從code中重新提取,用於制作前后兩個版本之間的差分包,工具文件如下圖所示。




1、recovery:這個目錄是Make用來檢查recovery的版本號
2、releasetools這個目錄下提供的是制作OTA package的腳本工具
3、security這個目錄是用來生成OTA包的簽名
4、bin image的差分工具
5、framework是用來給apk包進行簽名
提取原始版本和升級的整包作為制作差分包的原始包,提取后分別命名為org.zip和ota.zip。編寫一個perl腳本,腳本通過下面的命令生成差分包。
Ø /build/tools/releasetools/ota_from_target_files –n –i org ota update.zip –制作差分包
差分包生成后,手機通過客戶端與服務器通信后下載差分包進行升級。
