From e8ab0020ba58978e8d7f8b1b77ae36da1f3bffa0 Mon Sep 17 00:00:00 2001
From: Steven Moreland <smoreland@google.com>
Date: Tue, 16 May 2017 17:43:52 -0700
Subject: [PATCH] Add fwk_display_hwservice.

This hidl service provides information about vsync and hotplug
to vendor services which is required by at least some camera
hal implementations.

Test: VtsFwkDisplayServiceV1_0TargetTest
Test: no denials
Bug: 38311538
Change-Id: I64f0321e2832facf987057f0d48940e269d8e2d9
---
 private/hwservice_contexts       | 1 +
 private/surfaceflinger.te        | 1 +
 public/attributes                | 1 +
 public/display_service_server.te | 1 +
 public/hwservice.te              | 1 +
 5 files changed, 5 insertions(+)
 create mode 100644 public/display_service_server.te

diff --git a/private/hwservice_contexts b/private/hwservice_contexts
index ecac57ee1..35c95ce4c 100644
--- a/private/hwservice_contexts
+++ b/private/hwservice_contexts
@@ -1,3 +1,4 @@
+android.frameworks.displayservice::IDisplayService              u:object_r:fwk_display_hwservice:s0
 android.frameworks.schedulerservice::ISchedulingPolicyService   u:object_r:fwk_scheduler_hwservice:s0
 android.frameworks.sensorservice::ISensorManager                u:object_r:fwk_sensor_hwservice:s0
 android.hardware.audio.effect::IEffectsFactory                  u:object_r:hal_audio_hwservice:s0
diff --git a/private/surfaceflinger.te b/private/surfaceflinger.te
index f04a984ad..3595ee426 100644
--- a/private/surfaceflinger.te
+++ b/private/surfaceflinger.te
@@ -6,6 +6,7 @@ type surfaceflinger_exec, exec_type, file_type;
 init_daemon_domain(surfaceflinger)
 
 typeattribute surfaceflinger mlstrustedsubject;
+typeattribute surfaceflinger display_service_server;
 
 read_runtime_log_tags(surfaceflinger)
 
diff --git a/public/attributes b/public/attributes
index c9c3f8bd8..66c3a14e2 100644
--- a/public/attributes
+++ b/public/attributes
@@ -272,4 +272,5 @@ attribute hal_wifi_supplicant_server;
 # from one core domain to another, without having to update the vendor image
 # which contains clients of this service.
 
+attribute display_service_server;
 attribute wifi_keystore_service_server;
diff --git a/public/display_service_server.te b/public/display_service_server.te
new file mode 100644
index 000000000..c5839fa54
--- /dev/null
+++ b/public/display_service_server.te
@@ -0,0 +1 @@
+add_hwservice(display_service_server, fwk_display_hwservice)
diff --git a/public/hwservice.te b/public/hwservice.te
index 2b1ffcfbd..ca9910547 100644
--- a/public/hwservice.te
+++ b/public/hwservice.te
@@ -1,4 +1,5 @@
 type default_android_hwservice, hwservice_manager_type;
+type fwk_display_hwservice, hwservice_manager_type, coredomain_hwservice;
 type fwk_scheduler_hwservice, hwservice_manager_type, coredomain_hwservice;
 type fwk_sensor_hwservice, hwservice_manager_type, coredomain_hwservice;
 type hal_audio_hwservice, hwservice_manager_type;
-- 
GitLab