Existe-t-il un moyen de désactiver les applications à démarrage automatique au moment du démarrage ? J'ai besoin de désactiver certaines d'entre elles (pas toutes) comme Facebook, etc. pour obtenir un démarrage plus rapide. Je demande comment faire cela sous Android 9.0.
Réponses
Trop de publicités?Sans entrer dans les détails pour savoir s'il faut ou non arrêter les applications à démarrage automatique, et quelles pourraient en être les conséquences comme discuté dans une foule d'autres réponses, voici mes solutions simples qui peuvent fonctionner sans aucune application tierce, au moins sur Android Pie.
SOLUTION à la racine :
Les applications utilisent BroadcastRceivers
pour écouter les émissions ACTION_BOOT_COMPLETED pour qu'ils puissent s'exécuter au démarrage. Le récepteur de diffusion est un composant de l'application qui peut être désactivé avec les privilèges Root.
Utilisation de Gestionnaire de paquets liste tous les récepteurs de diffusion à l'écoute de BOOT_COMPLETED :
~# pm query-receivers --components -a android.intent.action.BOOT_COMPLETED
Il donnera une liste des récepteurs de diffusion au format package_name/component_name
. Voir dumpsys activity broadcast-stats
y dumpsys activity broadcasts
pour plus de détails.
Maintenant pour désactiver un composant :
~# pm disable <package/component>
Il existe des applications comme Autostarts
( com.elsdoerfer.Android.autostarts ) y SD Maid
( eu.thedarken.sdm ) qui peut faire de même pour vous. Fichier /data/system/users/0/package-restrictions.xml
peut aussi être modifié directement pour désactiver des applications ou leurs composants, mais ce n'est pas recommandé.
Il est possible de désactiver plusieurs récepteurs de diffusion d'une application, et un seul récepteur peut également écouter plusieurs types d'émissions. événements de diffusion .
SOLUTION NON-Root : (non universelle)
Afin de recevoir android.intent.action.BOOT_COMPLETED
les applications ont besoin Android.permission.RECEIVE_BOOT_COMPLETED qui est un autorisation normale et ne peut donc pas être révoqué par l'utilisateur.
Cependant, il existe un caché cadre de gestion des autorisations, nommé AppOps
qui permet un contrôle un peu plus fin des opérations (de type permission). OP_BOOT_COMPLETED est l'un d'entre eux, mais il ne fait pas partie de l'AOSP, seulement ajouté par certaines ROMs personnalisées comme LineageOS. Si vous êtes sur l'une de ces ROMs, vous pouvez contrôler le comportement de l'autostart à travers adb shell
:
~$ appops set <package> BOOT_COMPLETED deny
Maintenant l'application ne sera pas autorisée à recevoir la diffusion BOOT_COMPLETED. Il y a des applications comme App Ops
( rikka.appops ) qui peut faire de même pour vous. Certaines ROMs personnalisées ont des interfaces intégrées à AppOps avec des noms différents comme Protection de la vie privée , Gestionnaire AutoStart etc.
Veuillez noter que AppOps :
n'est généralement pas destiné aux développeurs d'applications tierces ; la plupart des fonctionnalités ne sont disponibles que pour les applications système.
Son utilisation sans Root pourrait donc être interdite ou rendue plus difficile dans les prochaines versions d'Android.
Les deux méthodes ci-dessus peuvent empêcher les applications de démarrer au démarrage seulement. Une application peut également écouter d'autres événements de diffusion et continuer à redémarrer si elle est tuée, ou fonctionner en arrière-plan en permanence (en tant que service) si elle est conçue pour cela. Voir dumpsys activity services
pour plus de détails.
Une approche légèrement différente serait d'empêcher les applications de fonctionner en arrière-plan en utilisant OP_RUN_IN_BACKGROUND (introduit dans Nougat) et/ou RUN_ANY_IN_BACKGROUND
(introduit dans Pie) qui font partie de l'AOSP :
~$ appops set <package> RUN_IN_BACKGROUND deny
Ils n'ont pas de permission manifeste équivalente, mais il y a une permission expérimentale avec le même nom.
Certains appareils nécessitent un accès Root pour gérer les autorisations de démarrage automatique... Cependant Android 5.1 le permet via les paramètres de démarrage automatique dans Sécurité.
Cette option devrait être disponible sur tout système avec AppOpps
Aussi si ce n'est pas sur Android avec ces paramètres
-
Ouvrir les paramètres
-
Apps ouvertes
-
Ouvrez l'application souhaitée
-
Sélectionnez Permissions
-
Désactiver l'autorisation de démarrage automatique