Mises à jour OTA

Glass Enterprise n'est pas prêt à effectuer des mises à jour Over The Air (OTA). Toutefois, vous pouvez configurer des mises à jour OTA de base. La fonctionnalité de mise à jour OTA de l'EE2 permet au propriétaire de l'appareil de contrôler complètement les mises à jour Over The Air (OTA), comme suit:

  • Pour contrôler l'emplacement de stockage de la mise à jour.
  • Pour contrôler le moment où la mise à jour a lieu.
  • Pour contrôler la compilation des cibles de mise à jour.

Configuration

Pour autoriser les mises à jour OTA sur les appareils EE2, vous avez besoin de configurations côté serveur et côté client.

Configuration côté serveur

Vous devez héberger le fichier de mise à jour OTA pour le télécharger sur un serveur accessible sur votre réseau. Le fichier de mise à jour doit être téléchargé à partir de la page Images système.

Vous devez également héberger un fichier JSON, qui pilote le flux de mise à jour. Il doit être mis en forme comme l'exemple updater sample.json. Le fichier contient des informations telles que la taille de la charge utile, la longueur binaire et d'autres métadonnées requises par le moteur de mise à jour pour accepter les binaires OTA.

Configuration côté client

Pour qu'un appareil recherche les mises à jour OTA, vous devez configurer l'URL OTA et l'intervalle d'interrogation. Vous pouvez utiliser un intent pour démarrer une activité qui les configure. Le nom de l'activité est com.google.android.glass.otaservice/.OtaSettingsActivity.

Deux actions sont possibles:

  • com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
    • URL du fichier de métadonnées JSON que le daemon interroge et examine.
    • Ajoutez une chaîne avec la clé suivante: com.google.android.glass.otaservice.UPDATE_LOCATION
  • com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
    • Intervalle de millisecondes entre l'activation du sondage OTA.
    • Ajoutez un numéro avec la clé suivante: com.google.android.glass.otaservice.UPDATE_FREQUENCY
    • Cet intent lance également une vérification OTA immédiatement si une instance n'est pas déjà en cours d'exécution.
    • Veuillez saisir un nombre supérieur à 900 000 millisecondes
    • Si une OTA est déjà en cours, l'intervalle de fréquence est mis à jour une fois la vérification en cours terminée. Cela est nécessaire, sinon Android Doze pourrait interrompre le service.

L'intent peut être envoyé par startActivityForResult. Une réponse est renvoyée au rappel onActivityResult avec un RESULT_OK en cas de réussite ou un RESULT_CANCELLED en cas d'échec. Un message est ensuite transmis aux journaux de l'appareil à des fins de dépannage.

L'intent peut également être envoyé par des commandes adb comme suit:

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

Le daemon OTA s'exécute en tant que JobService toutes les 15 minutes ou plus, selon le paramètre de fréquence. Le JobService continue de s'exécuter jusqu'à ce qu'une charge utile mise à jour ait été acceptée et vérifiée.

Le service en arrière-plan n'interroge que si le Wi-Fi est en ligne et connecté. Toutefois, le Wi-Fi n'a pas besoin d'avoir accès à Internet, mais uniquement au réseau LAN.

Le traitement s'effectue en arrière-plan. Aucune action de l'utilisateur n'est requise pendant le traitement. Une notification s'affiche dans le panneau des notifications, et l'OS est automatiquement mis à jour lors du prochain redémarrage.

Mettre à jour les étapes

Pour tester les mises à jour OTA, procédez comme suit:

  1. Téléchargez l'appareil et flashez-le manuellement avec la mise à jour actuelle.
  2. La fiche d'information sur les paramètres de Glass doit s'afficher: mise à jour actuelle.
  3. Connectez-vous à un réseau Wi-Fi.
  4. Exécutez les commandes adb pour pointer vers votre fichier JSON et effectuer la mise à jour suivante:

    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. La notification concernant la mise à jour OTA en cours s'affiche
  6. La notification OTA disparaît
  7. Lors du prochain démarrage manuel de l'appareil, l'appareil devrait avoir été mis à jour et la fiche d'informations sur les paramètres Glass doit s'afficher : nouvelle mise à jour.

Flux de mise à jour

Voici la procédure standard de mise à jour OTA:

  1. Au démarrage, le daemon OTA programme sa première exécution, qui est déterminée par l'intervalle spécifié. Si aucun intervalle n'a jamais été fourni, la valeur par défaut est 15 minutes.
  2. Le daemon interroge le serveur Web pour télécharger le fichier de métadonnées. Si aucune URL n'a été fournie, le daemon se ferme et attend le prochain intervalle d'exécution.
  3. Le daemon effectue des vérifications préliminaires du fichier de métadonnées pour s'assurer que les options appropriées ont été définies. En cas d'erreur, le daemon s'arrête et affiche le résultat dans les journaux. Le daemon attend ensuite la prochaine exécution planifiée.
  4. Le daemon compare les entrées du fichier JSON à celles extraites du build actuel qui s'exécute sur l'appareil. Si une incohérence est détectée pour l'une de ces entrées, un téléchargement OTA commence. Le contenu du fichier de métadonnées est transmis au moteur de mise à jour AOSP.

    La mise à jour ne peut pas être suspendue. Elle se poursuit jusqu'à ce qu'elle réussisse, échoue ou arrive à expiration.

  5. Le daemon télécharge automatiquement le package OTA en arrière-plan.
  6. Si le package OTA a été téléchargé et validé, le daemon interroge la recherche de nouvelles mises à jour. Lors du redémarrage, la mise à jour est effective. Une notification s'affiche pour informer l'utilisateur que la mise à jour sera appliquée au prochain redémarrage.
  7. En cas d'échec du téléchargement OTA, le daemon interroge le serveur Web une fois le délai spécifié écoulé.

Mises à jour d'applications

Les mises à jour d'application dans EE2 doivent être traitées comme des mises à jour Android standards. Il existe deux options principales:

  1. Utilisez une solution MDM ou créez votre propre application de propriétaire d'appareil, puis mettez à jour l'application en mode silencieux. Pour ce faire, vous pouvez utiliser l'API Android PackageInstaller.
  2. Utilisez l'API Android PackageInstaller directement depuis votre application pour qu'elle se mette à jour. Dans ce cas, une boîte de dialogue système s'affiche.