modularize dmd
Bug: 190331463
Test: build ROM and make sure dmd is launched
Change-Id: If1e51b6bc100e870a15a40f5e0d93a75fe68bac3
diff --git a/modem/user/dmd.te b/modem/user/dmd.te
new file mode 100644
index 0000000..eabf893
--- /dev/null
+++ b/modem/user/dmd.te
@@ -0,0 +1,29 @@
+type dmd, domain;
+type dmd_exec, vendor_file_type, exec_type, file_type;
+init_daemon_domain(dmd)
+
+# Grant to access serial device for external logging tool
+allow dmd serial_device:chr_file rw_file_perms;
+
+# Grant to access radio device
+allow dmd radio_device:chr_file rw_file_perms;
+
+# Grant to access slog dir/file
+allow dmd vendor_slog_file:dir create_dir_perms;
+allow dmd vendor_slog_file:file create_file_perms;
+
+# Grant to access tcp socket
+allow dmd node:tcp_socket node_bind;
+allow dmd self:tcp_socket { create_socket_perms_no_ioctl listen accept bind };
+
+# Grant to access log related properties
+set_prop(dmd, vendor_diag_prop)
+set_prop(dmd, vendor_slog_prop)
+set_prop(dmd, vendor_modem_prop)
+
+get_prop(dmd, vendor_persist_config_default_prop)
+
+# Grant to access hwservice manager
+get_prop(dmd, hwservicemanager_prop)
+
+binder_call(dmd, hwservicemanager)
diff --git a/modem/user/file.te b/modem/user/file.te
new file mode 100644
index 0000000..e2beb8b
--- /dev/null
+++ b/modem/user/file.te
@@ -0,0 +1 @@
+type vendor_slog_file, file_type, data_file_type, mlstrustedobject;
diff --git a/modem/user/file_contexts b/modem/user/file_contexts
new file mode 100644
index 0000000..ff1482b
--- /dev/null
+++ b/modem/user/file_contexts
@@ -0,0 +1,2 @@
+/data/vendor/slog(/.*)? u:object_r:vendor_slog_file:s0
+/vendor/bin/dmd u:object_r:dmd_exec:s0
diff --git a/modem/user/property.te b/modem/user/property.te
new file mode 100644
index 0000000..353b1c8
--- /dev/null
+++ b/modem/user/property.te
@@ -0,0 +1,3 @@
+vendor_internal_prop(vendor_diag_prop)
+vendor_internal_prop(vendor_slog_prop)
+vendor_internal_prop(vendor_modem_prop)
diff --git a/modem/user/property_contexts b/modem/user/property_contexts
new file mode 100644
index 0000000..0be942b
--- /dev/null
+++ b/modem/user/property_contexts
@@ -0,0 +1,14 @@
+# for dmd
+persist.vendor.sys.dm. u:object_r:vendor_diag_prop:s0
+persist.vendor.sys.diag. u:object_r:vendor_diag_prop:s0
+vendor.sys.dmd. u:object_r:vendor_diag_prop:s0
+vendor.sys.diag. u:object_r:vendor_diag_prop:s0
+
+# for modem
+persist.vendor.modem. u:object_r:vendor_modem_prop:s0
+vendor.modem. u:object_r:vendor_modem_prop:s0
+vendor.sys.modem. u:object_r:vendor_modem_prop:s0
+ro.vendor.sys.modem. u:object_r:vendor_modem_prop:s0
+vendor.sys.exynos.modempath u:object_r:vendor_modem_prop:s0
+persist.vendor.sys.modem. u:object_r:vendor_modem_prop:s0
+