Ответ 1
В рамках /base/data/etc/platform.xml
Вы можете определить свое вновь созданное разрешение с помощью соответствующего gid.
<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>
Другие определения разрешений не указаны в вышеуказанном файле, поскольку на Android есть фактически два вида разрешений, как показано на следующем рисунке. В этом файле определяются только разрешения, выполняемые ядром Linux.
Другие разрешения, такие как ACCESS_FINE_LOCATION, READ_CONTACTS и т.д., определяются в AndroidManifest.xml в системных приложениях (пакеты/.../AndroidManifest.xml) и framework (frameworks/base/core/res/AndroidManifest.xml).
После добавления вашего разрешения и связанного с ним кода компилируйте и создайте проект в соответствии с Инструкция по строительству