3 votes

Pourquoi l'application Automate nécessite-t-elle ADB ?

J'ai besoin de mettre en place un service d'arrêt d'application pour les appareils Android 9 non rootés en utilisant Automate. Le service doit se lancer automatiquement au démarrage de l'appareil et continuer à envoyer des commandes d'arrêt à des services système sélectionnés (!) à intervalles réguliers, sauf si ces services sont au premier plan.

Malheureusement, la configuration et l'exécution d'Automate semblent être inutilement fastidieuses. J'ai utilisé adb de manière intensive, donc pas de problème de ce côté. Cependant, l'étape 5 dans le manuel de configuration indique

  1. Sur le PC, exécutez la commande shell adb tcpip 5555. Cette étape doit être répétée après chaque redémarrage de l'appareil.

Également:

Une fois apparié/autorisé, le service démarrera automatiquement lors de sa première utilisation, par exemple par un bloc l'utilisant, puis s'exécutera en arrière-plan jusqu'à ce que le système le ferme, que l'appareil redémarre, ou que l'application soit désinstallée ou mise à jour.

Devoir connecter un appareil mobile à un PC après chaque redémarrage (par exemple en raison d'une batterie vide) est complètement impraticable et va à l'encontre de l'utilisation même d'Android. Existe-t-il un moyen de configurer Automate soit 100% localement depuis Android, soit au moins une seule fois depuis un PC au tout début, puis de faire fonctionner l'application automatiquement même après un redémarrage de l'appareil?

J'ai déjà mis en place un flux Automate simple comme exemple minimal et accordé tous les privilèges nécessaires, tels que l'accès à la carte SD, l'exécution de commandes shell et l'accès au service d'accessibilité Samsung. Le débogage USB est également activé dans les options pour les développeurs. Mais lors de l'exécution du flux, j'obtiens les erreurs suivantes dans la sortie du journal:

Début du flux
Délai
Application au premier plan?
Arrêt de l'application
Impossible de démarrer le service privilégié
java.util.concurrent.CancellationException: Veuillez exécuter: sh /sdcard/Android/data/com.llamalab.automate/cache/start.sh
java.util.concurrent.TimeoutException: Délai de démarrage du service
Arrêté en raison d'un échec

0voto

rrainn Points 1778

Automate ne nécessite ni ADB ni un appareil rooté, mais certaines fonctionnalités le nécessitent, par exemple le bloc App kill pour arrêter les processus d'autres applications en cours d'exécution.

Mettre en place ADB est en effet un peu compliqué car c'est une fonctionnalité pour les développeurs d'applications, elle n'est pas conçue pour être utilisée facilement par les utilisateurs d'applications ou par les applications elles-mêmes.

Configurer Automate "100% localement", c'est-à-dire sans avoir besoin d'un PC connecté en USB, ne peut être fait que sur Android 11 ou version ultérieure en utilisant la fonctionnalité de "débogage sans fil" du système. Pour cela, il suffit de choisir l'option "Android Debug Bridge (ADB)" comme méthode de démarrage du service privilégié dans les paramètres d'Automate, puis de suivre les instructions à l'écran pour activer l'option de "débogage sans fil" et associer Automate à l'appareil. Le processus d'association ne doit être fait qu'une seule fois, mais il faut activer manuellement le "débogage sans fil" après chaque redémarrage, sauf si vous automatisez la procédure.

Le message d'erreur enregistré signifie qu'Automate ne peut pas accéder/démarrer son "service privilégié", par exemple celui sur lequel repose le bloc App kill, et vous indique d'exécuter le script shell à cet effet, ce qui signifie que vous avez sélectionné l'option "Manuellement" comme méthode de démarrage du service privilégié. Essayez plutôt l'option "Android Debug Bridge (ADB)".

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X