studio permission permisos internet example editar androidmanifest android permissions operating-system kernel android-source

permission - permisos gps android studio



Android: crea nuevos permisos de sistema a través del código fuente de AOSP. (1)

Me preguntaba cómo se puede editar el código fuente del sistema operativo Android para imponer un nuevo permiso. Por ejemplo, como tenemos el permiso BLUETOOTH, si el dispositivo ofrece un nuevo sensor, entonces cómo se puede crear el permiso adecuado para que las aplicaciones usen el nuevo sensor, a nivel de la aplicación, utilizando la entrada de manifiesto para el nuevo permiso disponible en Android ROM.

¿Alguien sabe cómo se crean nuevos permisos en el nivel del sistema operativo en el código fuente de AOSP?

Y creo que si hemos modificado la fuente de Android para agregar el nuevo permiso, debemos compilar nuestro SDK personalizado para usar el permiso en el desarrollo de aplicaciones, de lo contrario, el SDK existente dará un error de tiempo de compilación, ya que no reconoceremos nuestro permiso personalizado ...

Cualquier idea, pensamientos muy apreciados.


En framework / base / data / etc / platform.xml

Puede definir su permiso recién creado con un gid correspondiente.

<permissions> <!-- ================================================================== --> <!-- ================================================================== --> <!-- ================================================================== --> <!-- The following tags are associating low-level group IDs with permission names. By specifying such a mapping, you are saying that any application process granted the given permission will also be running with the given group ID attached to its process, so it can perform any filesystem (read, write, execute) operations allowed for that group. --> <permission name="android.permission.BLUETOOTH_ADMIN" > <group gid="net_bt_admin" /> </permission> <permission name="android.permission.BLUETOOTH" > <group gid="net_bt" /> </permission> <permission name="android.permission.BLUETOOTH_STACK" > <group gid="net_bt_stack" /> </permission> <permission name="android.permission.NET_TUNNELING" > <group gid="vpn" /> </permission> <permission name="android.permission.INTERNET" > <group gid="inet" /> </permission> <permission name="android.permission.CAMERA" > <group gid="camera" /> </permission> <permission name="android.permission.READ_LOGS" > <group gid="log" /> </permission> ... </permission>

Otras definiciones de permisos no se encuentran en el archivo anterior, porque en realidad hay dos tipos de permisos en Android, como se muestra en la siguiente figura. En este archivo solo se definen los permisos que impone el Kernel de Linux.

Otros permisos como ACCESS_FINE_LOCATION, READ_CONTACTS, etc. se definen en AndroidManifest.xml en las aplicaciones del sistema (paquetes /.../ AndroidManifest.xml) y framework (frameworks / base / core / res / AndroidManifest.xml).

Después de agregar su permiso y código relacionado, compile y genere el proyecto de acuerdo con la Instrucción de Construcción