Merge "Send logcat over serial port instead of vsocket"
diff --git a/host_package.mk b/host_package.mk
index 223cfcf..d41ab0d 100644
--- a/host_package.mk
+++ b/host_package.mk
@@ -45,7 +45,6 @@
     x86_64-linux-gnu/libgbm.so.1 \
     x86_64-linux-gnu/libminijail.so \
     x86_64-linux-gnu/libvirglrenderer.so.0 \
-    logcat_receiver \
     config_server \
     tombstone_receiver \
     console_forwarder \
diff --git a/shared/config/init.common.rc b/shared/config/init.common.rc
index 162da7c..135f06e 100644
--- a/shared/config/init.common.rc
+++ b/shared/config/init.common.rc
@@ -110,19 +110,16 @@
     enable seriallogging
 
 
+on property:ro.boot.logcat_serial_port=*
+    chown logd log ${ro.boot.logcat_serial_port}
+    symlink ${ro.boot.logcat_serial_port} /dev/cf-logcat
+    enable seriallogging
+
+
 service seriallogging /system/bin/logcat -b all -v threadtime -f /dev/cf-logcat *:V
     class main
-    user root
-    disabled
-
-
-on property:ro.boot.vsock_logcat_port=*
-   enable vsock_logcat
-
-
-service vsock_logcat /vendor/bin/vsock_logcat
-    class main
-    user root
+    user logd
+    group log
     disabled
 
 
diff --git a/shared/device.mk b/shared/device.mk
index 1f59971..6dee675 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -74,7 +74,6 @@
     ip_link_add \
     setup_wifi \
     tombstone_transmit \
-    vsock_logcat \
     tombstone_producer \
 
 #
diff --git a/shared/sepolicy/vendor/bug_map b/shared/sepolicy/vendor/bug_map
index e27ddc0..889f20b 100644
--- a/shared/sepolicy/vendor/bug_map
+++ b/shared/sepolicy/vendor/bug_map
@@ -1,7 +1,6 @@
 init system_lib_file dir 133444385
 init system_lib_file file 133444385
 kernel kernel system 130424539
-logpersist logpersist capability 132911257
 platform_app radio_prop property_service 140284352
 shell adbd vsock_socket 131904985
 system_server system_server process 65201432
diff --git a/shared/sepolicy/vendor/file_contexts b/shared/sepolicy/vendor/file_contexts
index e46880a..0af84fd 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -49,7 +49,6 @@
 /vendor/bin/usbforward  u:object_r:usbforward_exec:s0
 /vendor/bin/socket_forward_proxy  u:object_r:socket_forward_proxy_exec:s0
 /vendor/bin/socket_vsock_proxy  u:object_r:socket_vsock_proxy_exec:s0
-/vendor/bin/vsock_logcat  u:object_r:vsock_logcat_exec:s0
 /vendor/bin/vsoc_input_service  u:object_r:vsoc_input_service_exec:s0
 /vendor/bin/vsoc_guest_region_e2e_test  u:object_r:vsoc_guest_region_e2e_test_exec:s0
 /vendor/bin/vport_trigger  u:object_r:vport_trigger_exec:s0
diff --git a/shared/sepolicy/vendor/logpersist.te b/shared/sepolicy/vendor/logpersist.te
index 22e6da5..1446da1 100644
--- a/shared/sepolicy/vendor/logpersist.te
+++ b/shared/sepolicy/vendor/logpersist.te
@@ -1,6 +1,6 @@
 # Output to virtual serial console. Needed because seriallogging daemon
-# runs logcat and directs its output to vportXpY or cf_logcat_pipe under
+# runs logcat and directs its output to vportXpY or ttyS2 under
 # the /dev filesystem.
 allow logpersist device:dir r_dir_perms;
-allow logpersist device:fifo_file ra_file_perms;
+allow logpersist serial_device:chr_file ra_file_perms;
 allow logpersist virtual_serial_device:chr_file ra_file_perms;
diff --git a/shared/sepolicy/vendor/property_contexts b/shared/sepolicy/vendor/property_contexts
index 5127c67..cf5dc5b 100644
--- a/shared/sepolicy/vendor/property_contexts
+++ b/shared/sepolicy/vendor/property_contexts
@@ -8,12 +8,11 @@
 ro.boot.hardware.hwcomposer u:object_r:cf_graphics_config_prop:s0 exact string
 ro.boot.lcd_density u:object_r:cf_graphics_config_prop:s0 exact int
 ro.boot.vsock_frames_port  u:object_r:vsock_frames_port_prop:s0
-ro.boot.vsock_logcat_port  u:object_r:vsock_logcat_port_prop:s0
+ro.boot.logcat_serial_port  u:object_r:logcat_serial_port_prop:s0
 ro.cdma.home.operator.alpha  u:object_r:vendor_init_radio_prop:s0
 ro.cdma.home.operator.numeric  u:object_r:vendor_init_radio_prop:s0
 sys.cf.ser.  u:object_r:sys_cf_ser_prop:s0
 vendor.ser.  u:object_r:vendor_ser_prop:s0
-vendor.vsock_logcat_status  u:object_r:vsock_logcat_status_prop:s0
 hwc.drm.device u:object_r:cf_graphics_config_prop:s0 exact string
 hwc.drm.exclude_non_hwfb_imports u:object_r:cf_graphics_config_prop:s0 exact int
 hwc.drm.use_overlay_planes u:object_r:cf_graphics_config_prop:s0 exact int
diff --git a/shared/sepolicy/vendor/vendor_init.te b/shared/sepolicy/vendor/vendor_init.te
index e57bec0..3d8fcb1 100644
--- a/shared/sepolicy/vendor/vendor_init.te
+++ b/shared/sepolicy/vendor/vendor_init.te
@@ -1,6 +1,7 @@
 type vendor_init_radio_prop, property_type;
 type cf_graphics_config_prop, property_type;
 type cf_fstab_name_prop, property_type;
+type logcat_serial_port_prop, property_type;
 
 allow vendor_init {
   audio_device
@@ -18,3 +19,5 @@
 get_prop(vendor_init, cf_graphics_config_prop)
 
 get_prop(vendor_init, cf_fstab_name_prop)
+
+get_prop(vendor_init, logcat_serial_port_prop)
diff --git a/shared/sepolicy/vendor/vsock_logcat.te b/shared/sepolicy/vendor/vsock_logcat.te
deleted file mode 100644
index 405a362..0000000
--- a/shared/sepolicy/vendor/vsock_logcat.te
+++ /dev/null
@@ -1,17 +0,0 @@
-type vsock_logcat, domain;
-type vsock_logcat_exec, exec_type, vendor_file_type, file_type;
-type vsock_logcat_port_prop, property_type;
-type vsock_logcat_status_prop, property_type;
-
-init_daemon_domain(vsock_logcat)
-
-get_prop(vsock_logcat, vsock_logcat_port_prop)
-
-set_prop(vsock_logcat, vendor_ser_prop)
-set_prop(vsock_logcat, vsock_logcat_status_prop)
-
-allow vsock_logcat device:dir w_dir_perms;
-allow vsock_logcat device:fifo_file create_file_perms;
-allow vsock_logcat kmsg_device:chr_file write;
-allow vsock_logcat self:capability net_admin;
-allow vsock_logcat self:{ socket vsock_socket } create_socket_perms_no_ioctl;