Allow Bluetooth CAP_SYS_NICE

Bluetooth needs CAP_SYS_NICE in order to make important threads use RT
scheduling policy.

Bug 37518404

Test: Play Bluetooth audio, confirm RT priority in systrace
Change-Id: I388ef78d1aaf3f5fe1aa901b48d76c5c992acacc
Merged-In: I0ee55a2f2cfd80cbb066d9c034bb85d8d85ba470
This commit is contained in:
Philip Cuadra
2017-04-26 13:49:37 -07:00
parent 41f48e3f18
commit 0fabba396f

View File

@@ -685,11 +685,14 @@ static jint com_android_internal_os_Zygote_nativeForkAndSpecialize(
// Grant CAP_WAKE_ALARM to the Bluetooth process.
// Additionally, allow bluetooth to open packet sockets so it can start the DHCP client.
// Grant CAP_SYS_NICE to allow Bluetooth to set RT priority for
// audio-related threads.
// TODO: consider making such functionality an RPC to netd.
if (multiuser_get_app_id(uid) == AID_BLUETOOTH) {
capabilities |= (1LL << CAP_WAKE_ALARM);
capabilities |= (1LL << CAP_NET_RAW);
capabilities |= (1LL << CAP_NET_BIND_SERVICE);
capabilities |= (1LL << CAP_SYS_NICE);
}
// Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"