Echa un vistazo a Acciones de difusión (desplácese hacia abajo hasta Acciones de transmisión estándar ).
Todos los intentos que se declaran como Acción de radiodifusión puede ser recibido por una aplicación que declaró un receptor en su manifiesto.
Hay algunas emisiones que requieren un registro explícito en el sistema (Anotado con You can not receive this through components declared in manifests, only by explicitly registering for it with Context.registerReceiver().
).
Las más importantes para las aplicaciones que ejecutan código después de instalarse son:
-
ACTION_USER_PRESENT : Se envía cuando el usuario está presente después de que el dispositivo se despierta (por ejemplo, cuando el guarda llaves se ha ido).
-
PANTALLA_DE_ACCIÓN_EN : Acción de transmisión: Enviado cuando el dispositivo se despierta y se vuelve interactivo.
-
ACTION_SCREEN_OFF : Acción de transmisión: Se envía cuando el dispositivo se duerme y se vuelve no interactivo.
-
ACCIÓN_MI_PAQUETE_REEMPLAZADO : Una nueva versión de su aplicación ha sido instalada sobre una ya existente. Esto sólo se envía a la aplicación que fue reemplazada. No contiene ningún dato adicional; para recibirlo, sólo hay que utilizar un filtro de intención para esta acción.
-
ACTION_HEADSET_PLUG : Auriculares con cable conectados o desconectados. Igual que ACTION_HEADSET_PLUG, para ser consultado por valor y documentación.
-
ACTION_DATE_CHANGED : La fecha ha cambiado.
( Fuente: http://developer.Android.com/reference/Android/content/Intent.html )
¿Es posible que una aplicación actúe como receptor de un temporizador de alarma para que se ejecute automáticamente cada minuto?
Sí, es posible usar el ACTION_TIME_TICK Acción de difusión. Tiene que ser registrado usando Context.registerReceiver()
pero después de eso el servicio de registro es llamado cada minuto.
Muchas personas ejecutan App Ops justo después de instalar una aplicación para limitar la exposición. Pero parece que sería casi trivial que una aplicación ejecutara el código inmediatamente después de ser instalada.
¿Esto es correcto, o hay salvaguardias para evitarlo?
Su suposición es bastante correcta. Teóricamente cualquier aplicación podría declarar un receptor de radiodifusión para recibir una de las acciones de radiodifusión antes mencionadas y empezar a ejecutar algún código. Esto es aún más crucial cuando se actualiza una aplicación debido a la ACCIÓN_MI_PAQUETE_REEMPLAZADO para ejecutar el código justo después de que la actualización se haya completado. Esa es la razón por la que mucha gente usa AppOps para evitar que las aplicaciones se ejecuten si se envía una de las emisiones más frecuentes.
0 votos
Sí, los servicios se ejecutan automáticamente.
0 votos
Hay muchas formas de responder a tu pregunta o preguntas, pero hay variables. Estando rooteado y con SU instalado, ¿a qué componentes del sistema y del usuario concediste acceso total? ¿Descargas e instalas aplicaciones de fuentes fiables? ¿Lees los permisos que se permiten a una aplicación? ¿Utiliza aplicaciones de accesibilidad? ....... En cuanto a AppOps, no lo uso. Mi herramienta preferida es Mis herramientas Android . Tienes opciones para activar/desactivar
services, activities, broadcast receiver, content provider
y otros artículos.0 votos
@HasH_BrowN Estoy pensando más en la línea de lo que es técnicamente posible, independientemente del comportamiento del usuario.
0 votos
Que es App Ops, por favor que sea genérico ya que puede desaparecer algún día