Comment se redémarre une application système Android après la tuer sur des périphériques enracinés? -- 6.0-marshmallow domaine et root-access domaine et bloatware domain android en relation problème

How does an Android system application restart after you kill it on Rooted devices?



1
vote

problème

français

Pour clarifier, j'aimerais savoir comment une application système est capable de ressusciter elle-même (démarrage automatique) après avoir émettre une commande de tuer. Il existe des moyens de supprimer les applications, à l'aide des applications d'applications-supplyes ainsi que directement à l'aide de la commande RM pour effacer physiquement l'APK / ODEX et les dossiers. Et il y a beaucoup de réponses sur ce sujet. Ma question est liée au "mécanisme" de démarrage automatique lui-même. C'est-à-dire qu'il existe un fichier XML et un processus principal en cours d'exécution qui le contrôle? Ou quelque chose comme ça. Pour référence, j'utilise Android 6.0.1 et MiUI 8.5.3 sur un périphérique enraciné.

Fondamentalement, j'explore la possibilité que certaines applications système que vous suppriment (puis ils envoient votre téléphone en bootloop) ne soient pas nécessaires, mais le processus de contrôle / de démarrage automatique est ce qui le fait boucle. Le raisonnement est que, à part une erreur "application a cessé de fonctionner", le système semble non affecté. C'est donc le message qui crée le problème et tout ce qui est derrière la génération. Cette réponse me permettra de tester cette possibilité et de poster des conclusions ici.

Edit1: On dirait que la réponse à la moitié de ma propre question (en supposant qu'aucune autre "magie noire" ne se passe comme une autre application de contrôle de l'application ...) - le redémarrage est très probablement atteint via Broadcastructeur .

Une application peut enregistrer un récepteur de diffusion pour les événements système . La façon dont il fonctionne est, lorsqu'un événement se produit sur le système (USB est branché, Internet est détecté, etc.) Une émission est envoyée à toutes les applications enregistrées pour écouter cet événement. Une application peut s'inscrire via son androidmanifest.xml ou de manière pragmatique. Mais la partie principale de la question est - est ce registre et comment est-il possible de alter it (sur un périphérique enraciné bien sûr)

Edit2: un peu plus d'informations. Si je fais ps, le processus montre normalement:

finddevice [....] SyS_epoll_ 7f83b48c54 S com.xiaomi.finddevice

Mais si je renomme un dossier de ce processus système (pour le désactiver), puis tuez le processus, il semble que ce filet de liant ( Binder_thr ) essaye de le ramener à la vie:

finddevice [....] binder_thr 7f83b48d44 S com.xiaomi.finddevice

Et dès que je renommerai le dossier retour à l'original, il le démarre dès le retour d'affichage comme SYS_EPOLL _

langue Anglaise

So to clarify, I would like to know how a system app is able to resurrect itself (auto start) after I issue a kill command. There are ways to remove apps, by using apps-removal apps as well as directly using rm command to physically erase the apk/odex and folders. And there are plenty of answers on this around. My question is related to the auto-starting "mechanism" itself. That is, is there some xml file and some main process running that checks it? Or something like that. For reference, I'm using Android 6.0.1 and MIUI 8.5.3 on a Rooted device.

Basically I'm exploring the possibility that some system apps which you remove (and then they send your phone into bootloop) are not required, but the checking/trying-to-start process is what makes it loop. The reasoning is that, aside from "application stopped working" error, the system seems unaffected. So it's the message that's creating the problem and whatever is behind generating it. This answer will enable me to test out this possibility, and post any findings here.

Edit1: So looks like the answer to half of my own question, (assuming no other "black magic" is going on such as another app checking status...) - restarting is most likely achieved via BroadcastReceiver.

An app can Register a Broadcast Receiver for System Events. The way it works is, when an event happens on the system (USB is plugged in, internet is detected etc) a Broadcast is sent out to all the apps which are Registered to listen for this event. An app can register through its AndroidManifest.XML or pragmatically. But the main part of the question is - where is this registry and how is it possible to alter it (on a rooted device of course)

Edit2: A bit more info. If I do ps, the process shows as normal:

finddevice [....] SyS_epoll_ 7f83b48c54 S com.xiaomi.finddevice 

But if I rename a folder of this system process (to disable it), and then kill the process, seems it's binder thread (binder_thr) trying to bring it back to life:

finddevice [....] binder_thr 7f83b48d44 S com.xiaomi.finddevice 

And as soon as I rename the folder back to original, it starts it right back displaying as SyS_epoll_

        
         
         

Liste de réponses

0
 
vote

Je ne pouvais pas comprendre Ce code beaucoup, mais les informations sur les récepteurs ne semblent être conservées que dans la mémoire (aucun fichier d'index dans le stockage interne). Vous pouvez utiliser la commande suivante pour voir quel récepteur est enregistré pour lequel le type de diffusion.

adb shell dumpsys package

comme pour désactiver un récepteur particulier, essayez Elixir 2 . Vous pouvez entrer dans sa section Applications, choisir votre application, puis faites défiler vers le bas pour trouver les récepteurs (statique). À côté d'eux seraient la possibilité de désactiver ce composant.

Une autre option consiste à utiliser CreiveStop Module Xposed. Sa version gratuite permet uniquement à désactiver les récepteurs des applications installées par l'utilisateur.

comme pour la ligne de commande, si vous connaissez le nom du récepteur / composant, vous pourriez faire:

adb shell su -c 'pm disable PKG/COMP' # where PKG is package name of the app and COMP is the component you intend to disable.

Cela dit, je n'ai pas testé si lesdites solutions fonctionnent pour des récepteurs enregistrés dynamiquement.

 

I couldn't comprehend this code much but the information about receivers seems to be kept only in memory (no index file in internal storage). You can use the following command to see which receiver is registered for which type of broadcast.

adb shell dumpsys package 

As for disabling a particular receiver, try Elixir 2. You can go into its Applications section, choose your app and then scroll down to find the receivers (static). Next to them would be the option to disable that component.

Another option is to use ReceiverStop Xposed module. Its free version allows disabling receivers for user-installed apps only.

As for command-line, if you know the name of the receiver/component, you could do:

adb shell su -c 'pm disable PKG/COMP'         # where PKG is package name of the app and COMP is the component you intend to disable. 

That said, I did not test whether the said solutions work for dynamically registered receivers.

 
 
     
     

Questions connexes

2  Comment supprimer Alcatel File Manager?  ( How to delete alcatel file manager ) 
J'ai un alcatel One Touch idol 3 modèle 60451 exécutant Android 6.0.1 et il est mis à jour il y a quelques jours à transformer le gestionnaire de fichiers en ...

1  Comment réparer les contacts brisés Stockage (Droid 3 V2.3.4)?  ( How to fix broken contacts storage droid 3 v2 3 4 ) 
Symptômes Je reçois une force proche de com.motorola.contacts quand j'essaie de modifier mes contacts Je peux voir mes contacts Le problème a comme...

20  Comment puis-je empêcher automatiquement les applications pré-installées indésirables d'exécuter automatiquement sur Android? [dupliquer]  ( How can i prevent unwanted pre installed apps from automatically running on andr ) 
Cette question a déjà une réponse ici : fermée Il y a 8 ans . Dupliqué possible: Comment pu...

3  Riding Android Téléphone de Snapfish  ( Ridding android phone of snapfish ) 
Quelque chose "doué" mon Samsung Galaxy 2 avec une action de partage de Snapfish. Parce qu'il est adjacent au bouton d'impression de mon frère, je l'ai trouvé...

1  Supprimer Google App (Velvet) de Android Marshmallow  ( Remove google app velvet from android marshmallow ) 
Je veux supprimer Bluwareware Velvet APK (application Google) de Bock Android Marshmallallow sur un Nexus 5. Je n'avais aucun problème sur Lollipop en supprim...

5  Pourquoi ma tablette Nvidia à la recherche de serveurs chinois (Baidu.com)?  ( Why is my nvidia tablet looking for chinese serversbaidu com ) 
Je ne suis pas sûr que ceci est la bonne zone de la question, ou si c'est même une grosse affaire, mais ici je vais. Lorsque vous utilisez la tablette NVIDIA ...

3  J'ai moins de 40 applications (y compris les applications système); Que puis-je supprimer d'autre?  ( I have less than 40 apps including system apps what else can i remove ) 
J'essaie de supprimer autant de blotware que possible, mais il n'y a aucune information sur certaines d'entre elles sur Google. Voici la liste des application...

0  Appmgriii ne désinstalle pas Android Bluware - seulement désactiver  ( Appmgriii doesnt uninstall android bloatware only disable ) 
J'ai un ancien LGLS660 avec 4 Mo de mémoire interne faisant une installation de nouvelles applications presque impossible - une carte microSD ajoutée pour dév...

7  Comment supprimez-vous les applications préinstallées sur un téléphone enraciné?  ( How do you remove pre installed apps on a rooted phone ) 
J'ai une nexus enracinée et souhaitez supprimer certaines des applications pré-installées, comme Amazon MP3, par exemple. Quelle est la meilleure façon de f...

0  Comment supprimer des applications qui n'autorisent pas l'option de désinstallation sans enraciner le smartphone? [dupliquer]  ( How to remove apps which doesnt allow uninstall option without rooting smartpho ) 
Cette question a déjà des réponses ici : désinstallation des applications verrouillées par téléphone...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés