¿Cómo puede restringir el lanzamiento de ciertas aplicaciones en Android?

Estoy tratando de crear un entorno de espacio aislado en el que solo se puedan iniciar determinadas aplicaciones.

Originalmente había decidido intentar sondear todas las aplicaciones en ejecución en segundo plano para ver cuáles se estaban ejecutando y luego matar las que no estaban en el whtielist. Sin embargo, descubrí que solo se pueden eliminar procesos en segundo plano, no tareas activas.

Si esto se puede hacer, ¿cómo?

preguntado el 18 de junio de 11 a las 02:06

3 Respuestas

La única forma de hacerlo es si tiene la clave de firma de la plataforma. Si implementa un "observador de actividad" (que requiere android.permission.SET_ACTIVITY_WATCHER, que requiere ser firmado por la clave de firma de la plataforma), recibirá una notificación antes de que se inicie una nueva actividad y puede evitar que se inicie.

No hay forma de hacer esto de forma genérica porque daría demasiada libertad al código malicioso.

Respondido el 18 de junio de 11 a las 06:06

Parece poco probable que pueda hacer esto con algún tipo de confiabilidad desde una aplicación si está tratando de hacer esto por razones de seguridad. Si es lo suficientemente serio, probablemente podría personalizar el sistema operativo en sí, ya que Android es de código abierto, pero esa es una empresa bastante complicada. ¿Algún detalle sobre por qué estás intentando hacer esto?

Respondido el 18 de junio de 11 a las 06:06

Estoy tratando de crear un entorno de espacio aislado en el que solo se puedan iniciar determinadas aplicaciones.

Escriba su propio firmware.

O, como medida provisional, escriba su propia pantalla de inicio que no brinde acceso a la aplicación Configuración, para que pueda evitar que se instalen aplicaciones. Los usuarios experimentados reiniciarán el dispositivo en modo seguro y regresarán a la pantalla de inicio del firmware, por lo que la verdadera solución es escribir su propio firmware.

Respondido el 18 de junio de 11 a las 16:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.