diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 4194aa4107928..612f4dfd15057 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -608,8 +608,12 @@ static jint com_android_internal_os_Zygote_nativeForkAndSpecialize( jlong capabilities = 0; // Grant CAP_WAKE_ALARM to the Bluetooth process. + // Additionally, allow bluetooth to open packet sockets so it can start the DHCP client. + // 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); } // Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"