diff --git a/whitechapel/vendor/google/file.te b/whitechapel/vendor/google/file.te index 51d3affe..e6419b61 100644 --- a/whitechapel/vendor/google/file.te +++ b/whitechapel/vendor/google/file.te @@ -118,6 +118,9 @@ type persist_modem_file, file_type, vendor_persist_type; type modem_img_file, contextmount_type, file_type, vendor_file_type; allow modem_img_file self:filesystem associate; +# TCP logging +type tcpdump_vendor_data_file, file_type, data_file_type, mlstrustedobject; + # Wireless type sysfs_wlc, sysfs_type, fs_type; diff --git a/whitechapel/vendor/google/file_contexts b/whitechapel/vendor/google/file_contexts index 9f27e736..ff7ee6f1 100644 --- a/whitechapel/vendor/google/file_contexts +++ b/whitechapel/vendor/google/file_contexts @@ -254,6 +254,10 @@ # Modem logging /vendor/bin/modem_logging_control u:object_r:modem_logging_control_exec:s0 +# TCP logging +/vendor/bin/tcpdump_logger u:object_r:tcpdump_logger_exec:s0 +/data/vendor/tcpdump_logger(/.*)? u:object_r:tcpdump_vendor_data_file:s0 + # Audio logging /vendor/bin/aocdump u:object_r:aocdump_exec:s0 diff --git a/whitechapel/vendor/google/logger_app.te b/whitechapel/vendor/google/logger_app.te index 4c672447..051b1e64 100644 --- a/whitechapel/vendor/google/logger_app.te +++ b/whitechapel/vendor/google/logger_app.te @@ -16,4 +16,5 @@ userdebug_or_eng(` set_prop(logger_app, vendor_modem_prop) set_prop(logger_app, vendor_gps_prop) set_prop(logger_app, vendor_audio_prop) + set_prop(logger_app, vendor_tcpdump_log_prop) ') diff --git a/whitechapel/vendor/google/property.te b/whitechapel/vendor/google/property.te index 4e376118..b661ad78 100644 --- a/whitechapel/vendor/google/property.te +++ b/whitechapel/vendor/google/property.te @@ -44,3 +44,6 @@ vendor_internal_prop(vendor_wifi_version) # Touchpanel vendor_internal_prop(vendor_touchpanel_prop) + +# TCP logging +vendor_internal_prop(vendor_tcpdump_log_prop) \ No newline at end of file diff --git a/whitechapel/vendor/google/property_contexts b/whitechapel/vendor/google/property_contexts index 3282fdec..2770f23e 100644 --- a/whitechapel/vendor/google/property_contexts +++ b/whitechapel/vendor/google/property_contexts @@ -105,3 +105,9 @@ vendor.wlan.firmware.version u:object_r:vendor_wifi_version:s # Touchpanel vendor.mfgapi.touchpanel.permission u:object_r:vendor_touchpanel_prop:s0 + +# Tcpdump_logger +persist.vendor.tcpdump.log.alwayson u:object_r:vendor_tcpdump_log_prop:s0 +vendor.tcpdump.log.ondemand u:object_r:vendor_tcpdump_log_prop:s0 +vendor.tcpdump.log.alwayson u:object_r:vendor_tcpdump_log_prop:s0 +vendor.tcpdump.output.dir u:object_r:vendor_tcpdump_log_prop:s0 \ No newline at end of file diff --git a/whitechapel/vendor/google/tcpdump_logger.te b/whitechapel/vendor/google/tcpdump_logger.te new file mode 100644 index 00000000..329414b6 --- /dev/null +++ b/whitechapel/vendor/google/tcpdump_logger.te @@ -0,0 +1,18 @@ +type tcpdump_logger, domain; +type tcpdump_logger_exec, exec_type, vendor_file_type, file_type; + +userdebug_or_eng(` + # make transition from init to its domain + init_daemon_domain(tcpdump_logger) + + allow tcpdump_logger self:capability net_raw; + allow tcpdump_logger self:packet_socket create_socket_perms; + allowxperm tcpdump_logger self:packet_socket ioctl 0x8933; + allow tcpdump_logger tcpdump_exec:file rx_file_perms; + allow tcpdump_logger tcpdump_vendor_data_file:dir create_dir_perms; + allow tcpdump_logger tcpdump_vendor_data_file:file create_file_perms; + allow tcpdump_logger radio_vendor_data_file:file create_file_perms; + allow tcpdump_logger radio_vendor_data_file:dir create_dir_perms; + + set_prop(tcpdump_logger, vendor_tcpdump_log_prop) +')