Así que para aclarar, me gustaría saber cómo una aplicación del sistema es capaz de resucitar a sí mismo (auto-arranque) después de emitir un comando de matar. Hay maneras de eliminar las aplicaciones, mediante el uso de aplicaciones de eliminación de aplicaciones, así como directamente utilizando el comando rm para borrar físicamente el apk/odex y carpetas. Y hay un montón de respuestas sobre esto alrededor. Mi pregunta está relacionada con el propio "mecanismo" de autoarranque. Es decir, ¿hay algún archivo xml y algún proceso principal en ejecución que lo compruebe? O algo por el estilo. Como referencia, estoy usando Android 6.0.1 y MIUI 8.5.3 en un dispositivo Rooted.
Básicamente estoy explorando la posibilidad de que algunas aplicaciones del sistema que se eliminan (y luego envían el teléfono en bootloop) no son necesarios, pero el proceso de comprobación / intento de inicio es lo que hace que el bucle. El razonamiento es que, aparte del error "la aplicación dejó de funcionar", el sistema parece no estar afectado. Así que es el mensaje que está creando el problema y lo que está detrás de generarlo. Esta respuesta me permitirá probar esta posibilidad y publicar aquí los resultados.
Edit1:
Así que parece que la respuesta a medio de mi propia pregunta, (asumiendo que no hay otra "magia negra" en marcha como otra aplicación que comprueba el estado...) - el reinicio se consigue probablemente a través de BroadcastReceiver .
Una aplicación puede Registrar un receptor de difusión para eventos del sistema . La forma en que funciona es que, cuando ocurre un evento en el sistema (se conecta el USB, se detecta Internet, etc.) se envía una transmisión a todas las aplicaciones que están registradas para escuchar este evento. Una aplicación puede registrarse a través de su AndroidManifest.XML o pragmáticamente. Pero la parte principal de la pregunta es donde es este registro y cómo es posible alterar (en un dispositivo rooteado, por supuesto)
Edit2:
Un poco más de información. Si hago ps, el proceso se muestra como normal:
finddevice [....] SyS_epoll_ 7f83b48c54 S com.xiaomi.finddevice
Pero si renombro una carpeta de este proceso del sistema (para deshabilitarlo), y luego mato el proceso, parece que su hilo de enlace ( binder_thr ) tratando de devolverle la vida:
finddevice [....] binder_thr 7f83b48d44 S com.xiaomi.finddevice
Y en cuanto vuelvo a renombrar la carpeta a la original, vuelve a mostrarla como SyS_epoll_
0 votos
Las aplicaciones se registran (si lo necesitan) en el sistema para las transmisiones, como el cambio de conectividad de la red, el cambio de orientación del dispositivo, etc. Cuando se produce un cambio de este tipo, la transmisión activa la aplicación. Si tienes Xposed Framework instalado, prueba esto: repo.xposed.info/module/de.defim.apk.receiverstop y ver si la aplicación sigue despertando por sí sola.
0 votos
@Firelord Si estoy en lo cierto, entonces esto es factible incluso desde Criada SD para los usuarios que no son de Xposed.
0 votos
@DeathMaskSalesman Probado SD Maid, es una buena herramienta y funciona en algunas aplicaciones del sistema, pero no en todas. Dice "fallido" cuando intento desactivar sus oyentes en Receiver Manager.
0 votos
@Firelord No tengo instalado Xposed. Así que cuando una de estas apps resistentes del sistema se reinicia, es su ¿un oyente que está haciendo algo? ¿O puede ser también alguna otra aplicación que esté escuchando y cuando vea que has matado a su "amigo" lo resucite? Es decir, la primera opción es la que he leído en algunos sitios, sólo me pregunto si la segunda opción también podría ser posible. ¿Existe algún lugar común del registro donde se almacenen estas cosas (y se puedan editar)?
1 votos
@Firelord He instalado Xposed, para probar esta teoría, pero el módulo ReceiverStop sólo ofrece control sobre las apps del sistema en la versión de pago. (y solo lo necesito para probar) Encontré alternativa en el módulo Xposed: repo.xposed.info/module/cn.wq.myandroidtoolsxposed Pero esta aplicación ofrece una documentación limitada. Sólo una lista de aplicaciones con una casilla de verificación al lado de cada una. Cuando hago clic en la casilla de verificación de esta aplicación del sistema, y hago clic en guardar obtengo un brindis: "Hecho". La aplicación sigue reiniciándose.
0 votos
También puede utilizar Parche de la suerte para desactivar los componentes de cualquier app.