物聯網風潮大舉擴散,除了各種聯網消費性電子產品需要不斷進行韌體更新,以添加新功能或防堵安全漏洞外,汽車、工業設備走向聯網之後,也出現同樣的需求。有鑑於此,Over the Air(OTA)更新成為一個各家科技業者都必須思考的問題。但由於OTA更新功能不只需要一定的技術能力,更是一個必須長期經營服務,因此硬體業者很難光靠自己的力量發展出符合客戶需求的OTA整體解決方案,也使得專業OTA廠商成為一個進入門檻相當高的新興行業。
OTA更新處處是細節
科絡達執行長吳柏儀(圖1)指出,在萬物聯網的風潮帶動下,OTA更新勢必成為大多數聯網裝置都必須支援的功能,從聯網車、產業用設備到消費性電子產品,都需要OTA更新。但OTA其實牽涉到很複雜的技術,而且這項業務本身是個服務,因此進入門檻其實很高。包含科絡達在內,目前全世界也僅有8家專門經營OTA業務的業者。

就技術面來說,一般提到OTA更新,業界多半都認為只要透過有線/無線網路把新版本的韌體檔案傳送到目標設備,然後刷新設備上的韌體映像檔,事情就結束了。但OTA更新其實沒有那麼單純,很多硬體設備用來存放韌體的記憶體空間其實很小,因此,OTA的Agent程式碼要寫得非常精簡,這就是一個技術考驗。
此外,檔案壓縮也是OTA的關鍵技術之一,一般硬體設備的韌體更新可能只有數十KB,但如果是車載資訊娛樂系統的更新,因為牽涉到圖資這類大型檔案,因此每次更新的檔案大小可能動輒數百MB,等未來高解析地圖(HD Map)普及後,GB等級的資料更新,將成為家常便飯。但檔案越大,傳輸失敗的機率也越高,如果沒有良好的壓縮技術,OTA失敗的機率會很高。
為了減少需要傳輸的檔案大小,還有一種名為差分更新的技術。例如原本設備上的韌體版本1.0大小為2GB,韌體版本2.0則是4GB,按照一般的OTA思維,就是把4GB的檔案全部下載到目標裝置,然後把韌體刷新到2.0版本。但如果1.0版本跟2.0版本之間有2GB檔案內容是完全重複的,為何要重複傳輸?差分更新就是針對這個問題所發展出來的技術,支援此功能的OTA Agent會掃描跟比對新舊韌體版本間的差異,然後只下載新的檔案,進行部分更新。
最後,對於汽車跟產業/工業類設備,理想的OTA更新必須做到無縫轉移,不能讓設備或車輛為了更新韌體而停止運作。這意味著設備上的記憶體必須切割成兩個區塊,在舊版本韌體持續執行的同時,新版本韌體已經下載並安裝在另一個區塊,安裝就緒並確認無誤之後,設備就可以直接切換到新版韌體繼續運行。保留舊版本備份還有另一個好處,萬一新版本韌體切換過去之後出現問題,設備還可以直接回溯,回去用比較穩定的舊版韌體。
吳柏儀指出,上面所提到的OTA功能,對專業OTA廠商來說都很基本,因為這是車廠、工業設備跟部份消費性電子產品客戶所需要的。但一般來說,半導體廠商提供的OTA方案,大概都只具備最陽春的功能,有些則已經支援記憶體切割這類比較先進的功能,但還是不夠完整。因此,對設備製造商來說,半導體業者提出的OTA方案基本上是不能用的。而這也是像科絡達這種專業OTA廠商能夠生存的利基。
事實上,目前很多晶片商雖然也投入資源研發OTA功能,但團隊規模通常不大,科絡達則有數十名工程師專注在OTA的研發上,因此在解決方案的細膩程度上完全不同。另一方面,要做OTA,最重要的是要釐清終端產品到底有哪些環節或子系統需要OTA,進而開發出對應的全套方案。
在某些產業,晶片商是不太會直接跟設備製造商接觸的,例如汽車產業,晶片商是Tier 3供應商,主要面對的是生產汽車子系統的Tier 2或Tier 1業者,但真正主導OTA規畫的是車廠。科絡達在汽車領域,主要往來的是車廠,因此對車廠的OTA需求,常常比晶片商來得更深入,也因為這樣,才能開發出車廠想要的OTA方案。
消費性設備OTA需求五花八門
除了汽車跟產業用設備之外,現在絕大多數的消費性聯網裝置也都支援OTA功能。以科絡達自己的經驗為例,像智慧電視、智慧音箱、家庭閘道器、智慧穿戴裝置的OTA服務,都有跟客戶合作的實例。
吳柏儀表示,基本上,只要是聯網裝置,就會需要OTA功能。不只是為了提供新的功能,同時也是為了讓系統更安全。這個概念業界普遍都能接受,因此該公司在這方面有相當多的客戶。
不過,消費性產品五花八門,對OTA的需求差異很大。有些只需要應用軟體更新,有些則需要對作業系統等底層軟體/韌體進行更新,這使得OTA解決方案的設計需要非常有針對性。像小米手環的OTA更新方案,就是科絡達跟小米合作開發的。
事實上,OTA這門生意不只賣技術,更要賣服務。如果沒有幫客戶打造能滿足其特定需求的OTA方案,是不太可能作成生意的。因此,OTA廠商不只是技術公司,更要是一家服務公司,才有能力提供對的方案給客戶。
在消費性領域,科絡達最常遇到的問題是本地端設備上搭載的記憶體空間不夠大,因為消費性產品常常有很嚴格的成本考量,不太會搭載太多記憶體空間。因此,除了負責OTA功能的Agent要寫得非常精簡之外,還會使用很多其他技術,例如串流。
在記憶體空間不足的情況下,本地端只下載一部分必要的軟體程式碼,至於資料或是塞不進記憶體的部分,則是在需要的時候呼叫伺服器,用串流的方式提供。不過,吳柏儀還是建議,考量到OTA需求,硬體製造商在記憶體容量方面,還是要多考慮。本機端的記憶體容量不是現在夠用就好,還要為將來的OTA需求做些準備。
導入區塊鏈提高安全性
展望未來,資安會是所有聯網設備都必須面對的問題。OTA業者身為產業生態系中的一份子,自然也要有所準備。針對資安問題,科絡達的想法是利用區塊鏈(Blocktrain)技術來增加對抗駭客攻擊的防禦能力。
以汽車ECU更新為例,目前的資安防護手段是使用公開金鑰(PKI),只要駭客攻破PKI,就可以任意更新汽車的ECU,這是相當危險的情況。但如果改用區塊鏈,加上所有的車輛都聯網,當一台汽車遇到駭客攻擊,被植入有問題的韌體時,因為Hash值無法跟其他汽車的韌體串接起來,因此受到攻擊的車輛馬上就可以知道自己遭到攻擊,並向後台提出警告,要求提供正常的韌體版本。
吳柏儀透露,以區塊鏈為基礎的汽車OTA更新,目前正在進行概念驗證(PoC),倘若進展順利,很快就會提供給車廠進行測試跟驗證。