FUMO (Firmware Update Management Object) 手機終端用來固件升級的協議。協議主要規定了一下方面:
1 : FIRMWARE UPDATE MANAGEMENT OBJECT PARAMETERS. (路徑和節點)
2 : BEHAVIOR ASSOCIATED WITH THE MANAGEMENT OBJECT (執行升級和下載的命令以及 ALERT )
3 : CLIENT INITIATED FIRMWARE UPDATE ( 手機自行發起的固件升級的一些規定 )
1 : FIRMWARE UPDATE MANAGEMENT OBJECT PARAMETERS
總共定義如上節點
PKNAME: 升級包名字
Pkgversion: 升級包版本
Download :用來執行初始化下載的節點
PKGURL: 初始化下載時存儲的下載地址的節點
Update: 用來執行升級的節點
Pkgdata: 用來提供升級包數據的節點
Downloadnadupdate :用來初始化下載和升級的節點
??? Pkgurl : : 初始化下載時存儲的下載地址的節點
State :手機當前升級過程中的狀態。
Ext :廠商自己定義的擴展節點
根據實現不同, FUMO 可以選擇 Downloadnadupdate 也可以選擇 downd and upate 這 2 個節點的組合來實現固件的升級 ( 先下載,把下載的東西放在 X/update/pkgdata 里面,然后執行升級 )
State 有一下狀態
?
升級成功返回 100 ,根據返回的不同狀態,來與 SERVER 交互。
Fumo 規定的升級過程中的流程
?
? FUMO 從初始化下載到最后成功然后清除掉下來后的升級包的全過程,
2 : BEHAVIOR ASSOCIATED WITH THE MANAGEMENT OBJECT
FUMO 在執行的開始,假定手機采用先 download 然后 update, 先把升級包的 URL 從 SERVER 發過來 , 手機先自行 replace 命令把 URL 放在 Download/PkgURL 下面,然后執行 exec 命令把包下載到 update/PkgData 下面,(有的 FUMO 實現廠商采用差分包方法升級)在 update 的時候直接執行 exec 執行升級。
以下分別是執行了 2 個 exec 分別在執行 download 和 downloadandupdate.
?
下圖是手機在進行升級過程中返回給 SERVER 的一些結果,都是用數字來表示, server 可以根據這些返回碼來判斷終端在升級過程中哪一步執行失敗。
下圖是一個終端在執行一個 download 過程和一個 update 過程的流程圖,此圖能夠清晰的顯示出 DM 的 command 與 fumo 的節點如何交互的。
?
下圖是一個直接的 DownloadAndUpdate 的過程。手機一般會選擇這兩種的中的一種方式。
?
3 : CLIENT INITIATED FIRMWARE UPDATE
其實這是 CP 協議的一部分內容,在下一篇文章會詳細的描述 cp 協議的一些東西, cp 協議想關聯有好幾協議。