Revert "Send logcat over serial port instead of vsocket"

This reverts commit 9b9da0c749fcd57edb7ebcf9539712f3e60b3f1a.

Reason for revert: test failures

Change-Id: Iadf08fc8c44a58443cd1abdc4fdc925d3624fdf3
diff --git a/host_package.mk b/host_package.mk
index b095115..87c19e1 100644
--- a/host_package.mk
+++ b/host_package.mk
@@ -45,6 +45,7 @@
     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 135f06e..162da7c 100644
--- a/shared/config/init.common.rc
+++ b/shared/config/init.common.rc
@@ -110,16 +110,19 @@
     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 logd
-    group log
+    user root
+    disabled
+
+
+on property:ro.boot.vsock_logcat_port=*
+   enable vsock_logcat
+
+
+service vsock_logcat /vendor/bin/vsock_logcat
+    class main
+    user root
     disabled
 
 
diff --git a/shared/device.mk b/shared/device.mk
index 6dee675..1f59971 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -74,6 +74,7 @@
     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 889f20b..e27ddc0 100644
--- a/shared/sepolicy/vendor/bug_map
+++ b/shared/sepolicy/vendor/bug_map
@@ -1,6 +1,7 @@
 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 0af84fd..e46880a 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -49,6 +49,7 @@
 /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 1446da1..22e6da5 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 ttyS2 under
+# runs logcat and directs its output to vportXpY or cf_logcat_pipe under
 # the /dev filesystem.
 allow logpersist device:dir r_dir_perms;
-allow logpersist serial_device:chr_file ra_file_perms;
+allow logpersist device:fifo_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 cf5dc5b..5127c67 100644
--- a/shared/sepolicy/vendor/property_contexts
+++ b/shared/sepolicy/vendor/property_contexts
@@ -8,11 +8,12 @@
 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.logcat_serial_port  u:object_r:logcat_serial_port_prop:s0
+ro.boot.vsock_logcat_port  u:object_r:vsock_logcat_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 3d8fcb1..e57bec0 100644
--- a/shared/sepolicy/vendor/vendor_init.te
+++ b/shared/sepolicy/vendor/vendor_init.te
@@ -1,7 +1,6 @@
 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
@@ -19,5 +18,3 @@
 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
new file mode 100644
index 0000000..405a362
--- /dev/null
+++ b/shared/sepolicy/vendor/vsock_logcat.te
@@ -0,0 +1,17 @@
+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;