Merge "Get mobile app telemetry working again."
diff --git a/configs/gfrg200_defconfig b/configs/gfrg200_defconfig
index 391cb1f..e83b4e1 100644
--- a/configs/gfrg200_defconfig
+++ b/configs/gfrg200_defconfig
@@ -104,6 +104,7 @@
 BR2_PACKAGE_GOOGLE_PLATFORM_CACHE_WARMING=y
 BR2_PACKAGE_GOOGLE_PLATFORM_LOGUPLOAD=y
 BR2_PACKAGE_GOOGLE_PLATFORM_SYSMGR=y
+BR2_PACKAGE_GOOGLE_PLATFORM_SYSLOG=y
 BR2_PACKAGE_GOOGLE_TEST=y
 BR2_PACKAGE_GOOGLE_NETWORK_BOX=y
 BR2_PACKAGE_GOOGLE_STORAGE_BOX=y
diff --git a/fs/skeleton/etc/group b/fs/skeleton/etc/group
index c0aea49..1c6bfe4 100755
--- a/fs/skeleton/etc/group
+++ b/fs/skeleton/etc/group
@@ -13,6 +13,7 @@
 rpcuser:x:29:
 _ntp:x:30:
 avahi::40:
+syslog::41:
 ftp::50:
 lock::54:
 nobody::98:
diff --git a/fs/skeleton/etc/passwd b/fs/skeleton/etc/passwd
index f592857..37b277e 100755
--- a/fs/skeleton/etc/passwd
+++ b/fs/skeleton/etc/passwd
@@ -6,9 +6,11 @@
 rpcuser:x:29:29:RPC Service User:/var/tmp:/dev/null
 _ntp:x:30:30:OpenNTP Daemon:/var/empty/ntp:/dev/null
 avahi:x:40:40:Avahi mDNS:/:/dev/null
+syslog:*:41:41:syslogd:/var/tmp:/dev/null
 nobody:*:99:99:Nobody:/:/dev/null
 dbus:x:102:105::/var/run/dbus:/dev/null
 video:x:200:200:Video User:/var/media:/dev/null
 appclient:x:201:201:Application User:/:/dev/null
 prism:$1$fufhpwhn$eAwIc7tGVHqELSV1MnPP91:300:300:Prism User:/var/prism:/usr/bin/clish
 nfsnobody:x:65534:65534:Anonymous NFS User:/var/tmp:/dev/null
+
diff --git a/package/google/google_platform/Config.in b/package/google/google_platform/Config.in
index 8a462d0..8d0ca58 100644
--- a/package/google/google_platform/Config.in
+++ b/package/google/google_platform/Config.in
@@ -101,6 +101,12 @@
 	help
 	  Include the ledpattern tool.
 
+config BR2_PACKAGE_GOOGLE_PLATFORM_SYSLOG
+	bool "include syslogd"
+	default n
+	help
+	  Simple syslog daemon with strong filtering support.
+
 config BR2_PACKAGE_GOOGLE_OPENBOX
 	bool "Openbox Release"
 	default n
diff --git a/package/google/google_platform/google_platform.mk b/package/google/google_platform/google_platform.mk
index b660253..4b7923d 100644
--- a/package/google/google_platform/google_platform.mk
+++ b/package/google/google_platform/google_platform.mk
@@ -143,6 +143,10 @@
 BUILD_LEDPATTERN=y
 endif
 
+ifeq ($(BR2_PACKAGE_GOOGLE_PLATFORM_SYSLOG),y)
+BUILD_SYSLOG=y
+endif
+
 ifneq ($(BR2_PACKAGE_GOOGLE_FIBER_JACK),y)
 # fiber jack kernel is too old for the new-style loguploader for now
 BUILD_LOGUPLOAD=y
@@ -277,6 +281,11 @@
 	$(INSTALL) -m 0755 -D -T package/google/google_platform/gfiber_public.der/$(PUB_KEY) $(TARGET_DIR)/etc/gfiber_public.der
 	$(if $(BR2_PACKAGE_GOOGLE_TV_BOX),mkdir -p -m 0755 $(TARGET_DIR)/usr/sv/)
 	$(if $(BR2_PACKAGE_GOOGLE_TV_BOX),$(INSTALL) -m 0555 -D package/google/google_platform/*.ts $(TARGET_DIR)/usr/sv/)
+	$(INSTALL) -m 0644 -D package/google/google_platform/syslog.conf $(TARGET_DIR)/etc/
+
+	# Avahi service files
+	$(INSTALL) -m 0644 -D package/google/google_platform/services/isoping.service $(TARGET_DIR)/etc/avahi/services
+	$(if $(BUILD_SYSLOG),$(INSTALL) -m 0644 -D package/google/google_platform/services/syslog.service $(TARGET_DIR)/etc/avahi/services)
 
 	# registercheck
 	#TODO(apenwarr): do we actually need this for anything?
diff --git a/package/google/google_platform/rc/syslog/dependencies b/package/google/google_platform/rc/syslog/dependencies
new file mode 100644
index 0000000..f977fbb
--- /dev/null
+++ b/package/google/google_platform/rc/syslog/dependencies
@@ -0,0 +1 @@
+firewall
diff --git a/package/google/google_platform/rc/syslog/run b/package/google/google_platform/rc/syslog/run
new file mode 100755
index 0000000..4acc747
--- /dev/null
+++ b/package/google/google_platform/rc/syslog/run
@@ -0,0 +1,5 @@
+#!/usr/bin/execlineb
+fdmove -c 2 1
+if { runnable syslogd }
+# run with CAP_NET_BIND_SERVICE
+minijail0 -u syslog -g syslog -c 0x400 /bin/syslogd -l 0.0.0.0:514
diff --git a/package/google/google_platform/rc/syslog/type b/package/google/google_platform/rc/syslog/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/package/google/google_platform/rc/syslog/type
@@ -0,0 +1 @@
+longrun
diff --git a/package/google/google_platform/services/isoping.service b/package/google/google_platform/services/isoping.service
new file mode 100644
index 0000000..6a6618d
--- /dev/null
+++ b/package/google/google_platform/services/isoping.service
@@ -0,0 +1,9 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
+<service-group>
+    <name replace-wildcards="yes">isoping on %h</name>
+    <service>
+        <type>_isoping._udp</type>
+        <port>4948</port>
+    </service>
+</service-group>
diff --git a/package/google/google_platform/services/syslog.service b/package/google/google_platform/services/syslog.service
new file mode 100644
index 0000000..172abc6
--- /dev/null
+++ b/package/google/google_platform/services/syslog.service
@@ -0,0 +1,9 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
+<service-group>
+    <name replace-wildcards="yes">syslog on %h</name>
+    <service>
+        <type>_syslog._udp</type>
+        <port>514</port>
+    </service>
+</service-group>
diff --git a/package/google/google_platform/syslog.conf b/package/google/google_platform/syslog.conf
new file mode 100644
index 0000000..8d98f9d
--- /dev/null
+++ b/package/google/google_platform/syslog.conf
@@ -0,0 +1 @@
+.*