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