Donc, pour clarifier, je voudrais savoir comment une application système est capable de se ressusciter (démarrage automatique) après que j'ai lancé une commande kill. Il existe des moyens de supprimer des applications, en utilisant des applications de suppression d'applications ainsi qu'en utilisant directement la commande rm pour effacer physiquement l'apk/odex et les dossiers. Il existe de nombreuses réponses à ce sujet. Ma question est liée au "mécanisme" de démarrage automatique lui-même. C'est-à-dire, y a-t-il un fichier xml et un processus principal en cours d'exécution qui le vérifie ? Ou quelque chose comme ça. Pour référence, j'utilise Android 6.0.1 et MIUI 8.5.3 sur un appareil enraciné.
En gros, j'explore la possibilité que certaines applications système que vous supprimez (et qui mettent votre téléphone en boucle de démarrage) ne soient pas nécessaires, mais que le processus de vérification/essai de démarrage soit à l'origine de la boucle. Le raisonnement est que, à part l'erreur "application arrêtée de fonctionner", le système ne semble pas affecté. C'est donc le message qui crée le problème et ce qui est à l'origine de celui-ci. Cette réponse me permettra de tester cette possibilité, et de poster mes résultats ici.
Edit1:
Donc on dirait que la réponse à moitié Pour répondre à ma propre question, (en supposant qu'il n'y ait pas d'autre "magie noire" comme une autre application qui vérifie le statut...) - le redémarrage est très probablement réalisé via Récepteur de diffusion .
Une application peut Enregistrer un récepteur de diffusion pour les événements du système . Le principe est le suivant : lorsqu'un événement se produit sur le système (branchement d'une clé USB, détection d'Internet, etc.), une diffusion est envoyée à toutes les applications qui sont enregistrées pour écouter cet événement. Une application peut s'enregistrer via son AndroidManifest.XML ou de manière pragmatique. Mais la partie principale de la question est - où est ce registre et comment est-il possible de modifier il (sur un appareil rooté bien sûr)
Edit2:
Un peu plus d'informations. Si je fais ps, le processus se déroule normalement :
finddevice [....] SyS_epoll_ 7f83b48c54 S com.xiaomi.finddevice
Mais si je renomme un dossier de ce processus système (pour le désactiver), et que je tue ensuite le processus, il semble que son fil de liaison ( Liant_thr ) en essayant de le ramener à la vie :
finddevice [....] binder_thr 7f83b48d44 S com.xiaomi.finddevice
Et dès que je renomme le dossier en original, il recommence à s'afficher en tant que SyS_epoll_
0 votes
Les applications s'enregistrent (si elles en ont besoin) auprès du système pour les diffusions, telles que la modification de la connectivité du réseau, le changement d'orientation de l'appareil, etc. Lorsqu'un tel changement se produit, la diffusion déclenche l'application. Si vous avez installé Xposed Framework, essayez ceci : repo.xposed.info/module/de.defim.apk.receiverstop et voyez si l'application se réveille toujours d'elle-même.
0 votes
@Firelord Si j'ai raison, alors c'est faisable même à partir de SD Maid pour les utilisateurs non Xposed.
0 votes
@DeathMaskSalesman J'ai essayé SD Maid, c'est un bon outil qui fonctionne sur certaines applications système, mais pas sur toutes. Il dit "failed" quand j'essaie de désactiver leurs listeners dans le Receiver Manager.
0 votes
@Firelord Je n'ai pas installé Xposed. Donc quand l'une de ces apps système résistantes redémarre, c'est leur qui fait quelque chose ? Ou est-ce que ça peut aussi être une autre application qui écoute et qui, quand elle voit que vous avez tué son "copain", le ressuscite ? Je veux dire que la première option est celle que j'ai lue à quelques endroits, mais je me demandais si la deuxième option était également possible. Y a-t-il un endroit commun dans le registre où ces choses sont stockées (et peuvent être modifiées) ?
1 votes
@Firelord J'ai installé Xposed, pour tester cette théorie, mais le module ReceiverStop ne permet de contrôler les applications système que dans la version payante. (et je n'en ai besoin que pour tester) J'ai trouvé une alternative dans le module Xposed : repo.xposed.info/module/cn.wq.myandroidtoolsxposed Mais cette application offre une documentation limitée. Il s'agit simplement d'une liste d'applications avec une seule case à cocher à côté de chacune d'entre elles. Lorsque je clique sur la case à cocher de l'application système et que je clique sur Enregistrer, j'obtiens un toast : "Terminé". L'application redémarre quand même.
0 votes
Vous pouvez également utiliser Patcheur chanceux pour désactiver les composants de tous app.