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
- 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.
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