From 26ff5eb6b9dadf9d217a21d3d63498e9967c5df4 Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Mon, 7 Aug 2017 17:06:06 -0700 Subject: [PATCH] Move Broadcast Radio HAL to a separate binary. Bug: 63600413 Test: VTS, instrumentation, audit2allow Test: after cherry-pick - it builds Change-Id: I57c0150a52c13f1ce21f9ae2147e3814aad0fb7e (cherry picked from commit 567b947d85a353af56799c4e48583adfa7ff4e0d) --- private/hwservice_contexts | 2 +- private/system_server.te | 1 + public/attributes | 3 +++ public/hal_broadcastradio.te | 4 ++++ public/hwservice.te | 1 + vendor/file_contexts | 1 + vendor/hal_broadcastradio_default.te | 5 +++++ 7 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 public/hal_broadcastradio.te create mode 100644 vendor/hal_broadcastradio_default.te diff --git a/private/hwservice_contexts b/private/hwservice_contexts index 051636462..f0a9c45c0 100644 --- a/private/hwservice_contexts +++ b/private/hwservice_contexts @@ -6,7 +6,7 @@ android.hardware.audio::IDevicesFactory u:object_r:hal_a android.hardware.biometrics.fingerprint::IBiometricsFingerprint u:object_r:hal_fingerprint_hwservice:s0 android.hardware.bluetooth::IBluetoothHci u:object_r:hal_bluetooth_hwservice:s0 android.hardware.boot::IBootControl u:object_r:hal_bootctl_hwservice:s0 -android.hardware.broadcastradio::IBroadcastRadioFactory u:object_r:hal_audio_hwservice:s0 +android.hardware.broadcastradio::IBroadcastRadioFactory u:object_r:hal_broadcastradio_hwservice:s0 android.hardware.camera.provider::ICameraProvider u:object_r:hal_camera_hwservice:s0 android.hardware.configstore::ISurfaceFlingerConfigs u:object_r:hal_configstore_ISurfaceFlingerConfigs:s0 android.hardware.contexthub::IContexthub u:object_r:hal_contexthub_hwservice:s0 diff --git a/private/system_server.te b/private/system_server.te index 05e84f04d..80f406bd5 100644 --- a/private/system_server.te +++ b/private/system_server.te @@ -180,6 +180,7 @@ binder_service(system_server) # Use HALs hal_client_domain(system_server, hal_allocator) +hal_client_domain(system_server, hal_broadcastradio) hal_client_domain(system_server, hal_contexthub) hal_client_domain(system_server, hal_fingerprint) hal_client_domain(system_server, hal_gnss) diff --git a/public/attributes b/public/attributes index cde55da19..094e398f4 100644 --- a/public/attributes +++ b/public/attributes @@ -183,6 +183,9 @@ attribute hal_bluetooth_server; attribute hal_bootctl; attribute hal_bootctl_client; attribute hal_bootctl_server; +attribute hal_broadcastradio; +attribute hal_broadcastradio_client; +attribute hal_broadcastradio_server; attribute hal_camera; attribute hal_camera_client; attribute hal_camera_server; diff --git a/public/hal_broadcastradio.te b/public/hal_broadcastradio.te new file mode 100644 index 000000000..24d4908e1 --- /dev/null +++ b/public/hal_broadcastradio.te @@ -0,0 +1,4 @@ +binder_call(hal_broadcastradio_client, hal_broadcastradio_server) + +add_hwservice(hal_broadcastradio_server, hal_broadcastradio_hwservice) +allow hal_broadcastradio_client hal_broadcastradio_hwservice:hwservice_manager find; diff --git a/public/hwservice.te b/public/hwservice.te index 65c52a23b..d3376a704 100644 --- a/public/hwservice.te +++ b/public/hwservice.te @@ -5,6 +5,7 @@ type fwk_sensor_hwservice, hwservice_manager_type, coredomain_hwservice; type hal_audio_hwservice, hwservice_manager_type; type hal_bluetooth_hwservice, hwservice_manager_type; type hal_bootctl_hwservice, hwservice_manager_type; +type hal_broadcastradio_hwservice, hwservice_manager_type; type hal_camera_hwservice, hwservice_manager_type; type hal_configstore_ISurfaceFlingerConfigs, hwservice_manager_type; type hal_contexthub_hwservice, hwservice_manager_type; diff --git a/vendor/file_contexts b/vendor/file_contexts index fbaa7e408..c233eacba 100644 --- a/vendor/file_contexts +++ b/vendor/file_contexts @@ -5,6 +5,7 @@ /(vendor|system/vendor)/bin/hw/android\.hardware\.bluetooth@1\.0-service u:object_r:hal_bluetooth_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service u:object_r:hal_fingerprint_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.boot@1\.0-service u:object_r:hal_bootctl_default_exec:s0 +/(vendor|system/vendor)/bin/hw/android\.hardware\.broadcastradio@1\.1-service u:object_r:hal_broadcastradio_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.camera\.provider@2\.4-service u:object_r:hal_camera_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.configstore@1\.[0-9]+-service u:object_r:hal_configstore_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.contexthub@1\.0-service u:object_r:hal_contexthub_default_exec:s0 diff --git a/vendor/hal_broadcastradio_default.te b/vendor/hal_broadcastradio_default.te new file mode 100644 index 000000000..37f65f4fe --- /dev/null +++ b/vendor/hal_broadcastradio_default.te @@ -0,0 +1,5 @@ +type hal_broadcastradio_default, domain; +hal_server_domain(hal_broadcastradio_default, hal_broadcastradio) + +type hal_broadcastradio_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_broadcastradio_default)