Glass Enterprise ไม่มาพร้อมกับตัวเครื่อง แต่ได้รับการอัปเดตผ่านอากาศ (OTA) แต่คุณสามารถกําหนดค่าการอัปเดต OTA พื้นฐานได้ ฟังก์ชันการอัปเดต OTA ของ EE2 ช่วยให้เจ้าของอุปกรณ์สามารถควบคุมการอัปเดตผ่านอากาศ (OTA) ได้อย่างสมบูรณ์ดังนี้
- เพื่อควบคุมตําแหน่งที่เก็บข้อมูลอัปเดต
- เพื่อควบคุมเวลาการอัปเดต
- เพื่อควบคุมสิ่งที่จะกําหนดเป้าหมายของการอัปเดต
การกำหนดค่า
คุณต้องใช้การกําหนดค่าฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์เพื่อให้อัปเดต OTA ในอุปกรณ์ EE2 ได้
การกําหนดค่าฝั่งเซิร์ฟเวอร์
คุณต้องฝากไฟล์อัปเดต OTA เพื่อดาวน์โหลดไฟล์ในเซิร์ฟเวอร์ที่เข้าถึงได้ในเครือข่าย ไฟล์อัปเดตควรดาวน์โหลดจากหน้าอิมเมจระบบ
คุณยังต้องโฮสต์ไฟล์ JSON ซึ่งช่วยกระตุ้นกระบวนการอัปเดตอีกด้วย โดยต้องอยู่ในรูปแบบ ตัวอย่าง updater example.json ไฟล์นี้จะมีข้อมูล เช่น ขนาดเพย์โหลด ความยาวไบนารี และข้อมูลเมตาอื่นๆ ที่เครื่องมือการอัปเดตจําเป็นต้องใช้เพื่อยอมรับไบนารี OTA
การกําหนดค่าฝั่งไคลเอ็นต์
คุณต้องตั้งค่า URL และช่วงแบบสํารวจของ OTA เพื่อให้อุปกรณ์ตรวจหาอัปเดต OTA ได้ คุณสามารถใช้ Intent เพื่อเริ่มกิจกรรมการตั้งค่าได้ ชื่อกิจกรรมคือ com.google.android.glass.otaservice/.OtaSettingsActivity
รองรับการทํางาน 2 แบบดังนี้
com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
- URL ของไฟล์ข้อมูลเมตา JSON ที่ Daemon ทําการสํารวจและตรวจสอบ
- ต่อท้ายสตริงด้วยคีย์ต่อไปนี้:
com.google.android.glass.otaservice.UPDATE_LOCATION
com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
- ช่วงเวลาที่ OTA daemon ปลุกระบบไปยังแบบสํารวจในหน่วยมิลลิวินาที
- ต่อท้ายตัวเลขด้วยคีย์ต่อไปนี้
com.google.android.glass.otaservice.UPDATE_FREQUENCY
- Intent นี้ยังเริ่มการตรวจสอบ OTA ทันทีหากยังไม่ได้ดําเนินการ
- ต้องมีตัวเลขที่มากกว่า 900,000 มิลลิวินาที
- หากมี OTA อยู่แล้ว ระบบจะอัปเดตช่วงความถี่หลังจากทําการตรวจสอบปัจจุบันเรียบร้อยแล้ว ต้องระบุ มิฉะนั้น Android Doze อาจรบกวนบริการ
startActivityForResult
จะส่งความตั้งใจได้ การตอบกลับจะถูกส่งกลับไปยังโค้ดเรียกกลับ onActivityResult
ที่มี RESULT_OK
สําเร็จ หรือ RESULT_CANCELLED
ล้มเหลว จากนั้นระบบจะย้ายข้อความไปยังบันทึกของอุปกรณ์เพื่อการแก้ปัญหา
นอกจากนี้ จะส่งคําสั่ง Intent ด้วย 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
Daemon ของ OTA จะทํางานเป็น JobService
ทุก 15 นาทีขึ้นไป โดยขึ้นอยู่กับการตั้งค่าความถี่ JobService
จะทํางานเมื่อบูตและทํางานต่อไปจนกว่าจะยอมรับและยืนยันเพย์โหลดที่อัปเดต
บริการพื้นหลังจะโพลเฉพาะเมื่อ Wi-Fi ออนไลน์และเชื่อมต่ออยู่เท่านั้น แต่ Wi-Fi ไม่จําเป็นต้องเชื่อมต่ออินเทอร์เน็ต แต่มีเพียง LAN
การประมวลผลทั้งหมดจะเกิดขึ้นในเบื้องหลัง ไม่จําเป็นต้องป้อนข้อมูลของผู้ใช้ในระหว่างการประมวลผล การแจ้งเตือนจะแสดงในลิ้นชักการแจ้งเตือน และระบบปฏิบัติการจะได้รับการอัปเดตโดยอัตโนมัติเมื่อมีการรีบูตครั้งถัดไป
อัปเดตขั้นตอน
ทําตามขั้นตอนต่อไปนี้เพื่อทดสอบการอัปเดต 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 หายไป
- ในการบูตอุปกรณ์ด้วยตนเองในครั้งถัดไป อุปกรณ์ควรได้รับการอัปเดต และการ์ดข้อมูลอุปกรณ์การตั้งค่า Glass ควรแสดงการอัปเดตใหม่
อัปเดตโฟลว์
กระบวนการมาตรฐานที่ใช้การอัปเดต OTA มีดังนี้
- เมื่อรีบูต OTA จะแสดงกําหนดการของการดําเนินการแรก ซึ่งกําหนดตามช่วงเวลาที่ระบุ หากไม่ได้กําหนดช่วงเวลาไว้เลย ค่าเริ่มต้นจะเป็น 15 นาที
- Daemon ทําการสํารวจเว็บเซิร์ฟเวอร์เพื่อดาวน์โหลดไฟล์ข้อมูลเมตา หากไม่ได้ระบุ URL ไว้ Daemon จะออกและรอจนถึงช่วงเวลาการดําเนินการถัดไป
- Daemon ทําการตรวจสอบเบื้องต้นในไฟล์ข้อมูลเมตาเพื่อให้แน่ใจว่ามีการตั้งค่าแฟล็กที่ถูกต้อง หากมีข้อผิดพลาด Daemon จะออกและพิมพ์เอาต์พุตไปยังบันทึก และปีศาจจะรอจนกว่าจะมีการดําเนินการตามกําหนดการครั้งถัดไป
-
Daemon จะเปรียบเทียบรายการในไฟล์ JSON กับรายการที่ดึงมาจากบิลด์ปัจจุบันที่กําลังทํางานในอุปกรณ์ หากระบบตรวจพบข้อมูลไม่ตรงกันในรายการเหล่านี้ ระบบจะเริ่มดาวน์โหลด OTA เนื้อหาจากไฟล์ข้อมูลเมตาจะส่งไปยังเครื่องมืออัปเดต AOSP
หยุดการอัปเดตชั่วคราวไม่ได้ และจะเป็นเช่นนี้จนกว่าจะประสบความสําเร็จ ไม่สําเร็จ หรือหมดเวลา
- Daemon ดาวน์โหลดแพ็กเกจ OTA อยู่เบื้องหลังโดยอัตโนมัติ
- หากดาวน์โหลดแพ็กเกจ OTA แล้วและยืนยันสําเร็จ อุปกรณ์ Daemon จะหยุดแบบสํารวจสําหรับการอัปเดตใหม่ เมื่อรีบูต การอัปเดตจะมีผลจริงๆ การแจ้งเตือนจะปรากฏขึ้นเพื่อแจ้งให้ผู้ใช้ทราบว่าการอัปเดตจะมีผลเมื่อรีบูตครั้งถัดไป
- หากการดาวน์โหลด OTA ล้มเหลว Daemon จะสํารวจเว็บเซิร์ฟเวอร์หลังจากระยะเวลาที่ระบุอีกครั้ง
การอัปเดตแอปพลิเคชัน
การอัปเดตแอปพลิเคชันใน EE2 ควรเป็นการอัปเดต Android แบบมาตรฐาน โดยมี 2 ตัวเลือกหลักๆ ดังนี้
- ใช้โซลูชัน MDM หรือสร้างแอปพลิเคชันเจ้าของอุปกรณ์ของคุณเองและอัปเดตแอปพลิเคชันโดยไม่ต้องแจ้ง โดยคุณใช้ API ของ PackageInstaller ของ Android API ได้
- ใช้ Android API PackageInstaller จากแอปพลิเคชันโดยตรงเพื่อให้อัปเดตตัวเอง กล่องโต้ตอบของระบบจะปรากฏในกรณีนี้