Aktualizacje OTA

Urządzenie Glass Enterprise nie jest gotowe do wykonywania aktualizacji Over-Air (OTA). Można jednak skonfigurować podstawowe aktualizacje OTA. Funkcja aktualizacji OTA EE2 daje właścicielowi urządzenia pełną kontrolę nad aktualizacjami bezprzewodowymi (OTA) w następujący sposób:

  • Aby określić, gdzie ma być przechowywana aktualizacja.
  • Aby określić, kiedy nastąpi aktualizacja.
  • Aby określić, co mają zostać wykorzystane do aktualizacji.

Konfiguracja

Aby zezwolić na aktualizacje OTA na urządzeniach EE2, potrzebujesz konfiguracji po stronie serwera i klienta.

Konfiguracja po stronie serwera

Plik aktualizacji OTA musisz pobrać na serwer, który jest dostępny w Twojej sieci. Plik aktualizacji należy pobrać ze strony Obrazy systemowe.

Musisz też mieć plik JSON prowadzący do aktualizacji. Musi być sformatowany w przykładzie jako updater example.json. Plik zawiera takie informacje jak rozmiar ładunku, długość pliku binarnego i inne metadane, które są potrzebne do zaktualizowania plików binarnych OTA.

Konfiguracja po stronie klienta

Aby urządzenie mogło sprawdzać dostępność aktualizacji OTA, musisz skonfigurować URL OTA i interwał odpytywania. Możesz użyć intencji, aby uruchomić aktywność, która je wywoła. Nazwa aktywności to com.google.android.glass.otaservice/.OtaSettingsActivity.

Są 2 obsługiwane działania:

  • com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
    • Adres URL pliku metadanych JSON, który demon sprawdza i sprawdza.
    • Dodaj ciąg znaków z tym kluczem: com.google.android.glass.otaservice.UPDATE_LOCATION
  • com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
    • Przedział czasu, w którym demon OTA wybudza ankietę w milisekundach.
    • Dodaj liczbę za pomocą tego klucza: com.google.android.glass.otaservice.UPDATE_FREQUENCY
    • Ta intencja rozpoczyna też natychmiastowe sprawdzenie OTA, jeśli takie połączenie nie jest jeszcze uruchomione.
    • Wymagana jest liczba większa niż 900 000 milisekund
    • Jeśli aktualizacja OTA jest już w toku, przedział częstotliwości jest aktualizowany po zakończeniu bieżącego sprawdzania. Jest to wymagane. W przeciwnym razie działanie funkcji Uśpienie Androida może zakłócić działanie usługi.

Intencję może wysłać startActivityForResult. Odpowiedź jest zwracana do wywołania zwrotnego onActivityResult z informacją o udanym działaniu RESULT_OK lub RESULT_CANCELLED w przypadku niepowodzenia. Komunikat jest następnie wysyłany do dzienników urządzenia na potrzeby rozwiązywania problemów.

Intencję można też wysłać za pomocą poleceń adb w ten sposób:

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

demon OTA działa co JobService co 15 minut lub dłużej, w zależności od ustawienia częstotliwości. JobService uruchamia się podczas uruchamiania i działa do momentu zaakceptowania i zweryfikowania zaktualizowanego ładunku.

Usługa działa w tle tylko wtedy, gdy sieć Wi-Fi jest online i jest połączona. Jednak sieć Wi-Fi nie wymaga dostępu do internetu – tylko sieć LAN.

Przetwarzanie odbywa się w tle. Podczas przetwarzania nie są wymagane żadne dane wejściowe użytkownika. W panelu powiadomień pojawi się powiadomienie, a system operacyjny zostanie zaktualizowany automatycznie przy następnym ponownym uruchomieniu.

Etapy aktualizacji

Aby przetestować aktualizacje OTA:

  1. Pobierz i ręcznie załaduj urządzenie za pomocą aktualnej aktualizacji.
  2. Karta Informacje o urządzeniu Glass powinna zawierać aktualną aktualizację.
  3. Połącz się z siecią Wi-Fi.
  4. Wykonaj polecenia adb, które wskazują plik json, aby zaktualizować go do następnej aktualizacji:

    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
  5. Pojawi się powiadomienie dotyczące OTA w toku
  6. Powiadomienie OTA zniknie
  7. Przy następnym ręcznym uruchomieniu urządzenia urządzenie powinno zostać zaktualizowane, a na karcie Ustawienia urządzenia powinna wyświetlić się nowa aktualizacja.

Proces aktualizacji

Oto standardowy proces, w którym przeprowadzana jest aktualizacja OTA:

  1. Po uruchomieniu demon OTA wybiera pierwsze wykonanie, które jest określane przez określony czas. Jeśli nie został podany żaden interwał, domyślny czas to 15 minut.
  2. demon odpytuje serwer WWW, aby pobrać plik metadanych. Jeśli nie podano adresu URL, demon zamyka i czeka na kolejny interwał czasu wykonania.
  3. demon przeprowadza wstępne kontrole pliku metadanych, aby upewnić się, że zostały ustawione odpowiednie flagi. Jeśli wykryty zostanie błąd, demona go zamknie i wydrukuje dane wyjściowe do dzienników. demon czeka wtedy na następne zaplanowane wykonanie.
  4. demon porównuje wpisy w pliku JSON z tymi pobranymi z bieżącej kompilacji uruchomionej na urządzeniu. Jeśli w przypadku któregoś z tych wpisów zostanie wykryta niezgodność, rozpocznie się pobieranie OTA. Zawartość pliku metadanych jest przekazywana do mechanizmu aktualizacji AOSP.

    Aktualizacja nie może zostać wstrzymana. Będzie działać, dopóki nie uda się go zakończyć, nie powiedzie się lub upłynie limit czasu.

  5. Demonon automatycznie pobiera pakiet OTA w tle.
  6. Jeśli pakiet OTA został pobrany i pomyślnie zweryfikowany, demon przestanie sondować nowe aktualizacje. Po zrestartowaniu aktualizacja zostanie wprowadzona. Zobaczysz powiadomienie z informacją, że aktualizacja zostanie zastosowana przy następnym ponownym uruchomieniu urządzenia.
  7. Jeśli pobieranie OTA nie powiedzie się, demon odpytuje serwer WWW po upływie określonego czasu.

Aktualizacje aplikacji

Aktualizacje aplikacji w EE2 należy traktować jako standardowe aktualizacje Androida. Masz 2 główne opcje:

  1. Użyj rozwiązania MDM lub utwórz własną aplikację właściciela urządzenia i zaktualizuj aplikację bez powiadomienia. Aby to zrobić, możesz użyć interfejsu PackageInstaller interfejsu Android API.
  2. Użyj interfejsu PackageInstaller interfejsu API Androida bezpośrednio z aplikacji, aby zaktualizować ją samodzielnie. W tym przypadku pojawi się okno systemowe.