diff --git a/bluetoothd.te b/bluetoothd.te new file mode 100644 index 0000000000000000000000000000000000000000..640a1da2e6eef4ef7b0edf02080ed4276169fe38 --- /dev/null +++ b/bluetoothd.te @@ -0,0 +1,10 @@ +# bluetoothd - bluetooth daemon +type bluetoothd, domain; +type bluetoothd_exec, exec_type, file_type; + +init_daemon_domain(bluetoothd) +allow bluetoothd self:capability { setuid net_raw net_bind_service net_admin }; +allow bluetoothd self:socket *; +allow bluetoothd bluetoothd_data_file:dir create_dir_perms; +allow bluetoothd bluetoothd_data_file:file create_file_perms; +unix_socket_connect(bluetoothd, dbus, dbusd) diff --git a/file.te b/file.te index 128a1706e3482cac7cd358d4eb3067819559bbfc..451ad1dad219f4a45e0f68bda765af87582e40ee 100644 --- a/file.te +++ b/file.te @@ -41,6 +41,7 @@ type shell_data_file, file_type, data_file_type; # /data/gps type gps_data_file, file_type, data_file_type; # /data/misc subdirectories +type bluetoothd_data_file, file_type, data_file_type; type bluetooth_data_file, file_type, data_file_type; type keystore_data_file, file_type, data_file_type; type vpn_data_file, file_type, data_file_type; diff --git a/file_contexts b/file_contexts index 05f80217e28e4306d6f515c0b7bcb3a8221bc97f..8876bfe961006813891c671f9a13232f74bbfa49 100644 --- a/file_contexts +++ b/file_contexts @@ -100,6 +100,7 @@ /system/bin/installd u:object_r:installd_exec:s0 /system/bin/keystore u:object_r:keystore_exec:s0 /system/bin/debuggerd u:object_r:debuggerd_exec:s0 +/system/bin/bluetoothd u:object_r:bluetoothd_exec:s0 /system/bin/wpa_supplicant u:object_r:wpa_exec:s0 /system/bin/qemud u:object_r:qemud_exec:s0 /system/bin/sdcard u:object_r:sdcardd_exec:s0 @@ -124,6 +125,7 @@ /data/tombstones(/.*)? u:object_r:tombstone_data_file:s0 /data/local(/.*)? u:object_r:shell_data_file:s0 # Misc data +/data/misc/bluetoothd(/.*)? u:object_r:bluetoothd_data_file:s0 /data/misc/bluetooth(/.*)? u:object_r:bluetooth_data_file:s0 /data/misc/keystore(/.*)? u:object_r:keystore_data_file:s0 /data/misc/vpn(/.*)? u:object_r:vpn_data_file:s0 diff --git a/system.te b/system.te index 4c8c368750a0466d8bf927b05dd06f0259a36c6f..557a3859cb621ea1b4788a0e6b2decc35ec8364e 100644 --- a/system.te +++ b/system.te @@ -106,6 +106,7 @@ unix_socket_connect(system, zygote, zygote) unix_socket_connect(system, keystore, keystore) unix_socket_connect(system, dbus, dbusd) unix_socket_connect(system, gps, gpsd) +unix_socket_connect(system, bluetooth, bluetoothd) unix_socket_send(system, wpa, wpa) # Communicate over a socket created by surfaceflinger.