¿Cómo bloquea Startup Manager las aplicaciones de inicio?

Estoy usando la aplicación de mercado Startup Manager en Android, pero estoy un poco preocupado por la forma en que funciona. ¿Se ejecuta efectivamente cada vez como un demonio y, por lo tanto, evita que las aplicaciones se inicien o simplemente cambia el indicador de arranque en las aplicaciones, sin ejecutarse en segundo plano?

¿Podría incluir un enlace a la aplicación en cuestión? No es que hablemos de cosas diferentes aquí. Diferentes aplicaciones manejan eso de manera diferente.
Podría estar superponiendo demasiado Linux en Android aquí, pero creo que esta aplicación simplemente está modificando los archivos de inicio de Android. elinux.org/Android_Booting#.27init.27
@dotVezz ¿es solo init.d o realmente establece un indicador booleano en cada aplicación que se está desactivando? Hay un android.intent.action.BOOT_COMPLETED en cada aplicación.
¡Me has enseñado algo aquí! Entonces, sí, si las aplicaciones usan eso, entonces mi suposición sobre init.d es incorrecta. En ese caso, me pregunto cómo evitaría que arranquen. Me pregunto si de alguna manera está bloqueando/revocando android.permission.RECEIVE_BOOT_COMPLETEDlas aplicaciones, o incluso modificando la aplicación de alguna manera.

Respuestas (2)

Todo depende en gran medida del "administrador de inicio" utilizado y de si su dispositivo está rooteado. Como supone la respuesta de dotVezz , hay algunos que simplemente desactivan los "oyentes" correspondientes (las aplicaciones pueden recibir notificaciones sobre eventos y, por lo tanto, comenzar cuando aparecen; el evento más famoso es ; boot_completedpero hay muchos más, como cambio de red, SDCard montado, batería baja... Si está interesado en los detalles, consulte, por ejemplo, ¿ Cuál es la diferencia entre un servicio y un receptor de transmisión? ). Sin embargo, hacer eso requiere "poderes de raíz".

Por lo tanto, los "administradores de inicio" que trabajan sin "poderes de raíz" básicamente no hacen nada más que administradores de tareas: matar la aplicación una vez que se inició en un evento determinado. En la mayoría de los casos, también se adhieren al boot_completedevento y no se preocupan por los demás.

Luego están los gerentes que admiten ambos modos. El mejor probablemente sea AutoRun Manager , mi favorito que usé durante bastante tiempo.

Ahora su pregunta es específicamente sobre el Administrador de inicio . Como puede ver en la descripción de la aplicación, y como he escrito anteriormente, esta aplicación solo se preocupa por el boot_completedevento: deshabilita /habilita los elementos de inicio desde el arranque del sistema . Sus permisos no incluyen SUPERUSER(también conocido como raíz), por lo que no puede modificar receptores/oyentes. Por lo tanto, lo más probable es que simplemente "mate" las aplicaciones cuando se inician. Demuestre lo que puede encontrar nuevamente en la descripción de la aplicación: Nota: para dispositivos con sistema operativo Android 2.2 y superior que no estén rooteados, algunos procesos se reiniciarán solos inmediatamente después de ser deshabilitados. No lo harían si estuvieran realmente discapacitados . Pero muchas aplicaciones lo hacen cuando las matan .

AutoRun Manager , que mencioné antes, es compatible con ambos modos: si se usa en "Modo básico" (que no requiere root), elimina las aplicaciones configuradas al inicio. En "Modo Avanzado" (requiere root) "silencia" a sus oyentes, para que nunca reciban la transmisión del evento y, por lo tanto, no se inicien automáticamente.

¡Me alegra que te guste! Supongo que no es necesario decir qué método se prefiere (matar o silenciar)? Pista: #2. Especialmente para esas aplicaciones de reinicio. Que empiecen y matarlos consume más batería que simplemente no dejar que empiecen. Y para esos reiniciadores, podría haber un círculo vicioso de matar-empezar-matar, afortunadamente detectado por ARM y (según la descripción) también podría ser por SUM. Aún así, mejor echarle un ojo.

Algunas investigaciones indican que lo más probable es que esto se haga al revocar los permisos de las aplicaciones que especifique. Específicamente, la aplicación necesita android.permission.RECEIVE_BOOT_COMPLETEDpara ejecutarse al inicio.

Sin embargo, aunque esta es la situación más probable, no puedo hablar de la funcionalidad exacta del Administrador de inicio .

Además, si le preocupa que la descripción de la aplicación no sea clara acerca de cómo funciona, también puede usar Autostarts , una herramienta auxiliar de inicio de Android de código abierto que controla qué intentos se envían realmente a qué aplicaciones.