varios usar studio riesgosos permisos pedir para multiples camara administrador android linux security permissions linux-kernel

usar - ¿Cómo aplica Android los permisos?



permisos para usar camara android studio (1)

He leído varios artículos sobre el "Modelo de seguridad de Android" ( 1 , 2 , 3 y más). Comprendo el modelo teórico MAC de permisos y la mayoría de lo que es relevante para el desarrollo de aplicaciones. Pero aparentemente hay muy poca documentación sobre detalles extensos de bajo nivel de:

  1. Cómo se aplican REALMENTE los permisos a nivel del sistema. Es decir, usando JNI, ¿qué me impedirá acceder directamente al hardware como el GPS? (Me doy cuenta de que puede haber un retroceso en la documentación de Linux, no relacionado con Android, respondiendo a esto, o una solución de SO aún más general y clásica para este problema).
  2. Lo que sucede realmente en la pila de ejecución y qué funciones se llaman cuando se utiliza Android ICC.

¿Alguien puede referirme a una explicación y / o segmentos de código relevantes de Android?

// EDITAR: Para aclarar las cosas (porque parece que los comentaristas estaban confundidos), la pregunta en el título se divide aquí en dos preguntas separadas (bastante diferentes). La primera respuesta aquí responde la primera pregunta, con respecto a los mecanismos de bajo nivel que existen en el procesador ARM (gracias). La segunda pregunta sobre las llamadas al procedimiento ICC sigue sin respuesta ...


Al final, es el propio procesador el que permite que el sistema operativo configure el kernel / modo privilegiado / supervisor frente a los modos de ejecución de usuarios / no privilegiados. Sin escalar a un modo privilegiado, no puede habilitar / deshabilitar / configurar interrupciones, acceder a ciertos periféricos y / o violar los límites de la memoria (dependiendo de la arquitectura). Ver, por ejemplo, esta documentación para los procesadores ARM A8 .

Si desea privilegios más altos, lo único que puede hacer es activar una interrupción de llamada del sistema con la instrucción SWI , pasando un número al controlador de llamadas del sistema para informarle de lo que desea hacer. Depende de ese controlador decidir si puede o no acceder al hardware directamente.

Esto es lo que le impide acceder directamente al GPS al final. No puedo ayudarte con el lado del software de las cosas.