From d86a30a273386171a7e58e2411d8a57365af34a3 Mon Sep 17 00:00:00 2001
From: Steven Moreland <smoreland@google.com>
Date: Thu, 1 Dec 2016 09:39:10 -0800
Subject: [PATCH] Add hal_dumpstate attribute.

- Also allow dumpstate to talk to hal_dumpstate.

Bug: 31982882
Test: compiles
Change-Id: Ib9cf0027ee7e71fa40b9ccc29fc8dccea6977e5c
---
 private/file_contexts            | 1 +
 private/hal_dumpstate_default.te | 4 ++++
 public/attributes                | 1 +
 public/dumpstate.te              | 1 +
 public/hal_dumpstate.te          | 5 +++++
 5 files changed, 12 insertions(+)
 create mode 100644 private/hal_dumpstate_default.te
 create mode 100644 public/hal_dumpstate.te

diff --git a/private/file_contexts b/private/file_contexts
index 678fd05c4..70dde3aa0 100644
--- a/private/file_contexts
+++ b/private/file_contexts
@@ -231,6 +231,7 @@
 /system/lib(64)?/libart.*        u:object_r:libart_file:s0
 /system/bin/hw/android\.hardware\.audio@2\.0-service          u:object_r:hal_audio_default_exec:s0
 /system/bin/hw/android\.hardware\.boot@1\.0-service           u:object_r:hal_boot_exec:s0
+/system/bin/hw/android\.hardware\.dumpstate@1\.0-service      u:object_r:hal_dumpstate_default_exec:s0
 /system/bin/hw/android\.hardware\.graphics\.allocator@2\.0-service   u:object_r:hal_graphics_allocator_default_exec:s0
 /system/bin/hw/android\.hardware\.graphics\.composer@2\.1-service    u:object_r:hal_graphics_composer_default_exec:s0
 /system/bin/hw/android\.hardware\.health@1\.0-service         u:object_r:hal_health_exec:s0
diff --git a/private/hal_dumpstate_default.te b/private/hal_dumpstate_default.te
new file mode 100644
index 000000000..46160397b
--- /dev/null
+++ b/private/hal_dumpstate_default.te
@@ -0,0 +1,4 @@
+type hal_dumpstate_default, hal_dumpstate, domain;
+type hal_dumpstate_default_exec, exec_type, file_type;
+
+init_daemon_domain(hal_dumpstate_default)
diff --git a/public/attributes b/public/attributes
index 933143780..4cfc0987a 100644
--- a/public/attributes
+++ b/public/attributes
@@ -116,6 +116,7 @@ attribute update_engine_common;
 
 # HALs
 attribute hal_audio;
+attribute hal_dumpstate;
 attribute hal_graphics_allocator;
 attribute hal_graphics_composer;
 attribute hal_ir;
diff --git a/public/dumpstate.te b/public/dumpstate.te
index 1d3a270aa..08d24ae5e 100644
--- a/public/dumpstate.te
+++ b/public/dumpstate.te
@@ -99,6 +99,7 @@ binder_call(dumpstate, { appdomain ephemeral_app netd wificond })
 
 # Vibrate the device after we are done collecting the bugreport
 # For binderized mode:
+binder_call(dumpstate, hal_dumpstate)
 binder_call(dumpstate, hal_vibrator)
 binder_call(dumpstate, hwservicemanager)
 # For passthrough mode:
diff --git a/public/hal_dumpstate.te b/public/hal_dumpstate.te
new file mode 100644
index 000000000..3312b0ad3
--- /dev/null
+++ b/public/hal_dumpstate.te
@@ -0,0 +1,5 @@
+# hwbinder access
+hwbinder_use(hal_dumpstate)
+
+# call into dumpstate process (callbacks)
+binder_call(hal_dumpstate, dumpstate)
-- 
GitLab