Glass Enterprise 開箱後,就無法使用無線更新 (OTA) 功能。不過,您還是可以設定基本的 OTA 更新。EE2 OTA 更新功能可讓裝置擁有者完整控制無線更新 (OTA) 的方式:
- 控管更新的儲存位置。
- 控管更新時間。
- 控管更新目標建構條件,
設定
如要在 EE2 裝置上允許 OTA 更新,您必須採用伺服器端和用戶端設定。
伺服器端設定
您必須在主機裝置上託管 OTA 更新檔案,以便透過網路進行存取。從系統映像檔頁面下載更新檔案。
此外,您也必須託管 JSON 檔案,藉此推動更新流程。格式必須設為 updater sample.json 範例。檔案含有酬載大小、二進位檔長度,以及更新引擎接受 OTA 二進位檔所需的其他中繼資料等資訊。
用戶端設定
您必須設定 OTA 網址和輪詢間隔,裝置才能檢查 OTA 更新。您可以利用意圖來啟動設定。活動名稱為 com.google.android.glass.otaservice/.OtaSettingsActivity
。
支援以下 2 種動作:
com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
- JSON Daemon 輪詢及檢查的 JSON 中繼資料檔案網址。
- 請使用以下索引鍵附加字串:
com.google.android.glass.otaservice.UPDATE_LOCATION
com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
- OTA Daemon 的喚醒間隔 (以毫秒為單位)。
- 請使用以下索引鍵附加數字:
com.google.android.glass.otaservice.UPDATE_FREQUENCY
- 如果意圖尚未執行 OTA 檢查,系統會立即啟動這個 OTA 檢查。
- 必須提供大於 900,000 毫秒的數字
- 如果 OTA 已在進行中,則在目前檢查完成後,系統就會更新頻率間隔。這是必要步驟,否則 Android Doze 可能會中斷服務。
可透過 startActivityForResult
傳送意圖。成功時,系統會將回應傳回 onActivityResult
回呼,其中 RESULT_OK
會在失敗時傳回 RESULT_CANCELLED
。之後,系統會發送訊息至裝置記錄檔,用來排解問題。
意圖也可透過 ADB 指令傳送,如下所示:
adb shell am start \ -a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \ --es com.google.android.glass.otaservice.UPDATE_LOCATION "some_URL_for_json_file" \ -n com.google.android.glass.otaservice/.OtaSettingsActivity adb shell am start \ -a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \ --el com.google.android.glass.otaservice.UPDATE_FREQUENCY 1800000 \ -n com.google.android.glass.otaservice/.OtaSettingsActivity
OTA Daemon 每隔 15 分鐘會執行一次 JobService
,視頻率設定而定。JobService
會在開機時執行,並會持續接受並更新更新後的酬載。
只有在連上 Wi-Fi 並連上網路時,背景服務才會輪詢。不過,Wi-Fi 不需要網際網路連線,也只需要 LAN。
所有處理作業都會在背景進行。處理時不需要輸入使用者。 通知導覽匣會顯示通知,並在下次重新啟動時自動更新 OS。
更新步驟
請按照下列步驟測試 OTA 更新:
- 使用目前的更新來下載並手動刷新裝置。
- Glass 設定的裝置資訊卡應顯示「目前的更新」。
- 連線至 Wi-Fi 網路。
執行 adb 指令,指向您的 JSON 檔案更新為下一項更新:
adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
--es com.google.android.glass.otaservice.UPDATE_LOCATION "your_json_file_location" \
-n com.google.android.glass.otaservice/.OtaSettingsActivity
adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
--el com.google.android.glass.otaservice.UPDATE_FREQUENCY 900000 \
-n com.google.android.glass.otaservice/.OtaSettingsActivity- 畫面上會顯示 OTA 的相關通知
- OTA 通知消失
- 下次手動啟動裝置時,裝置應進行更新,G Glass 設定的裝置資訊卡應顯示:新的更新
更新流程
執行 OTA 更新的標準程序如下:
- 啟動後,OTA Daemon 將以指定的間隔時間決定首次執行作業。如果沒有提供任何時間間隔,系統將預設為 15 分鐘。
- Daemon 會輪詢網路伺服器來下載中繼資料檔案。如未提供網址,Daemon 會結束,並等待下一個執行間隔。
- Daemon 會在中繼資料檔案上執行初步檢查,確保已設定適當的旗標。如果發生錯誤,Daemon 會結束,並將輸出內容輸出至記錄檔。Daemon 會等待下一個排定的執行作業。
-
Daemon 會將 JSON 檔案中的項目與在裝置上執行的目前建構項目提取的項目進行比較。如果系統偵測到任何使用者的項目不符,即會開始下載 OTA。中繼資料檔案的內容會傳遞至 Android 開放原始碼計畫更新引擎。
無法暫停更新。直到回應成功、失敗或逾時為止。
- Daemon 會在背景自動下載 OTA 套件。
- 如果您已下載並驗證 OTA 套件,Daemon 便會停止輪詢更新。重新啟動後,更新就會生效。系統會顯示通知,通知使用者下次重新啟動時將套用更新。
- 如果 OTA 下載失敗,Daemon 會在指定間隔再次出現後,對網路伺服器進行輪詢。
應用程式更新
系統會將 EE2 中的應用程式更新視為標準 Android 更新處理。主要分為兩個選項:
- 使用行動裝置管理 (MDM) 解決方案,或建構自己的裝置擁有者應用程式,並以無訊息方式更新應用程式。您可以使用 Android API PackageInstaller 執行這項作業。
- 直接透過您的應用程式使用 Android API PackageInstaller,以便自行更新。在這種情況下,系統會顯示系統對話方塊。