Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fabba39 authored by Philip Cuadra's avatar Philip Cuadra
Browse files

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
parent 41f48e3f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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"