Commit Graph

26373 Commits

Author SHA1 Message Date
Mark Salyzyn 95c53126c2 logd: start logd service in logd uid am: 77fdb22cf6
am: 21dbb8aece

Change-Id: Id9171cee653fd142e65feac70cd9b4481f273728
2016-11-04 14:50:18 +00:00
Mark Salyzyn 6ad039b9ad logd: auditd + klogd control CAPS am: d2b3291ffa
am: 3d2c4829a0

Change-Id: I5430aa3c2c2ff4a4114a44be176dc218367d9ae0
2016-11-04 14:50:12 +00:00
Mark Salyzyn 65408bacb9 logd: drop capabilities in logd --reinit and logd.daemon am: d8f01807b8
am: 83a40b0eb2

Change-Id: Iac77a2b7a9dda15c3e49d0bca55c179f772ecd03
2016-11-04 14:50:05 +00:00
Mark Salyzyn 8cc0f5e22f logd: drop libminijail dependency am: f0b8e1bce6
am: c65f2ca81f

Change-Id: I13e4e5b243c0520fdb29d21f4d492934eb66c21d
2016-11-04 14:49:59 +00:00
Mark Salyzyn 637a70fb61 logd: start logd services in logd gid am: 5b44340acb
am: b0e425abc4

Change-Id: Ia0c3e997d8bd49003d61a85db8b01791a181251c
2016-11-04 14:49:54 +00:00
Mark Salyzyn 28644dd270 logd: set executable's capabilities in file system am: 0d2a1dcb49
am: 4109c433f1

Change-Id: I9643b7edcd5a72f9f3f7c0f0971f309fcd858cdb
2016-11-04 14:49:48 +00:00
Mark Salyzyn 90d25e4c8e logd: inherit android_get_control_file() am: e0b8ccd1a3
am: 1259d9ea4b

Change-Id: Ic4fd1d2131f41f0bda71a5430f3ecba02daf331b
2016-11-04 14:49:42 +00:00
Mark Salyzyn 3b23d2864f init: service file keyword am: 62767fe29f
am: cc46af0fc9

Change-Id: I20a03933e653f0535092954134b8f1e8662e4604
2016-11-04 14:49:35 +00:00
Mark Salyzyn 13b832c9bf libcutils: add android_get_control_file() am: 0b034d9d7b
am: c020d3fa6e

Change-Id: I2ff8c32d00d2b19db2031c81e84c2c012b222685
2016-11-04 14:49:29 +00:00
Mark Salyzyn c5e0f78e2a libcutils: add android_get_control_socket() test am: 547e0dc45a
am: 4ffdd5d805

Change-Id: Ia81161b3ffa791a0bcb5b38c30e205907e6cdd6e
2016-11-04 14:49:20 +00:00
Mark Salyzyn dbd8df7b64 Merge changes I432016e2,Id208b11b,Ia6a38729,Icdaf9e35,I842a7a64, ...
am: fc3e90689e

Change-Id: I76ff9fa09424397f85023c527f66a45ebc2631e6
2016-11-04 14:43:49 +00:00
Mark Salyzyn f8ba9eb1a3 logd: if eng build, be a bit more permissive about failures
am: 107e29ac1b

Change-Id: I85ebcae9f756bf2feb79e6d77ea63ad0b2ff4829
2016-11-04 14:43:47 +00:00
Mark Salyzyn db9ad76576 libcutils: klog inherit android_get_control_file("/dev/kmsg")
am: c377843258

Change-Id: Ic520e605639c879b7bf9f5e5bab8e526c69df395
2016-11-04 14:43:42 +00:00
Mark Salyzyn 21dbb8aece logd: start logd service in logd uid
am: 77fdb22cf6

Change-Id: I38d93fb74ea4f37ee137f78063d082637b8fd68a
2016-11-04 14:43:36 +00:00
Mark Salyzyn 3d2c4829a0 logd: auditd + klogd control CAPS
am: d2b3291ffa

Change-Id: I7d8fd4a7df7ceffd90e8eaab03861ae426cbf35b
2016-11-04 14:43:31 +00:00
Mark Salyzyn 83a40b0eb2 logd: drop capabilities in logd --reinit and logd.daemon
am: d8f01807b8

Change-Id: I17f06463258e95a6cc83242cc8a8d4bb0ccb4907
2016-11-04 14:43:26 +00:00
Mark Salyzyn c65f2ca81f logd: drop libminijail dependency
am: f0b8e1bce6

Change-Id: I968916b41f82fa1cbe4f7ac37dc75c938a9c1627
2016-11-04 14:43:21 +00:00
Mark Salyzyn b0e425abc4 logd: start logd services in logd gid
am: 5b44340acb

Change-Id: Id9f27660a09e640815071dac85ed4bac78172886
2016-11-04 14:43:17 +00:00
Mark Salyzyn b0672290e3 logd: report last prune memory overhead
An estimate based on chatty impact for all known pids, uids and tags
and per log id if applicable, calculate the maximum last pruned
watermark iterator map usage and add to the Total Overhead.

Test: Confirm that the Total Overhead change is negligable.
Bug: 31942525
Change-Id: Icd2e9bc0747c3376ca0e9c90aa110c103529d98f
2016-11-04 07:43:16 -07:00
Mark Salyzyn 6d981af120 logd: report statistics memory overhead
Add in to the Total Overhead the amount of storage we are
using to hold on to the statistics.

Test: see that the Total Overhead accounts for about 100K
Bug: 31942525
Change-Id: Ibe241c0bccc5a9df52395802338c8a7fc3b64104
2016-11-04 07:43:16 -07:00
Mark Salyzyn 4109c433f1 logd: set executable's capabilities in file system
am: 0d2a1dcb49

Change-Id: Icb3fb18ee96be0ae250be153a1600eb4e8cd8408
2016-11-04 14:43:12 +00:00
Mark Salyzyn 1259d9ea4b logd: inherit android_get_control_file()
am: e0b8ccd1a3

Change-Id: I7b6fc3898d2e69542309fe120122849579f91f22
2016-11-04 14:43:07 +00:00
Mark Salyzyn cc46af0fc9 init: service file keyword
am: 62767fe29f

Change-Id: Ib7655bd3a8cbe7e1861e5999c34b02c9efa8b9f7
2016-11-04 14:43:02 +00:00
Mark Salyzyn c020d3fa6e libcutils: add android_get_control_file()
am: 0b034d9d7b

Change-Id: I7d0a58c12839dba59aa43b96e5a920d3c415efcf
2016-11-04 14:42:57 +00:00
Mark Salyzyn 4ffdd5d805 libcutils: add android_get_control_socket() test
am: 547e0dc45a

Change-Id: I34b70a4e1eba070ad58068a851047fe41680a973
2016-11-04 14:42:50 +00:00
Treehugger Robot fc3e90689e Merge changes I432016e2,Id208b11b,Ia6a38729,Icdaf9e35,I842a7a64, ...
* changes:
  logd: if eng build, be a bit more permissive about failures
  libcutils: klog inherit android_get_control_file("/dev/kmsg")
  logd: start logd service in logd uid
  logd: auditd + klogd control CAPS
  logd: drop capabilities in logd --reinit and logd.daemon
  logd: drop libminijail dependency
  logd: start logd services in logd gid
  logd: set executable's capabilities in file system
  logd: inherit android_get_control_file()
  init: service file keyword
  libcutils: add android_get_control_file()
  libcutils: add android_get_control_socket() test
2016-11-04 14:38:23 +00:00
Mark Salyzyn 76cd9044eb Merge "logd: switch to using arraysize() from libbase macros" am: fc08963f85
am: cb2314e5bd

Change-Id: I53e38186288dfe9f5ed12be997be99ab192c3a93
2016-11-03 22:17:32 +00:00
Mark Salyzyn cb2314e5bd Merge "logd: switch to using arraysize() from libbase macros"
am: fc08963f85

Change-Id: If17fd9389ec65f379fa42096e835be2ed667f703
2016-11-03 22:14:34 +00:00
Treehugger Robot fc08963f85 Merge "logd: switch to using arraysize() from libbase macros" 2016-11-03 22:07:42 +00:00
Mark Salyzyn c6b19d743d Merge changes Ifb1b550c,Ic7377efc am: 11f8b20068
am: 360cd76695

Change-Id: I9c5f5a97718e43546c206c4a90e28adb1569602f
2016-11-03 21:04:55 +00:00
Mark Salyzyn f3f501dbfe liblog: test report pmsg not configured if ENOMEM return am: 5febc51318
am: cfd44772d7

Change-Id: I3bb3684390b90c030f72a50ce9546b9a433d087b
2016-11-03 21:04:49 +00:00
Mark Salyzyn bf7818defc logd: clear DUMPABLE am: 6a70ded7bf
am: d1687af980

Change-Id: Ibae1ae2b8251ae5ee65f32ad5859273ec29ec708
2016-11-03 21:04:44 +00:00
Mark Salyzyn 360cd76695 Merge changes Ifb1b550c,Ic7377efc
am: 11f8b20068

Change-Id: Ibd116625a10578c33c655eaae594610ce949fd23
2016-11-03 21:01:50 +00:00
Mark Salyzyn cfd44772d7 liblog: test report pmsg not configured if ENOMEM return
am: 5febc51318

Change-Id: Ia7ff221bdcbf76b19e971ffde23706ad4a8840a8
2016-11-03 21:01:49 +00:00
Mark Salyzyn d1687af980 logd: clear DUMPABLE
am: 6a70ded7bf

Change-Id: I4bcfb53d9c4a13761c80a8f2070320c85b486b0b
2016-11-03 21:01:45 +00:00
Mark Salyzyn 11f8b20068 Merge changes Ifb1b550c,Ic7377efc
* changes:
  liblog: test report pmsg not configured if ENOMEM return
  logd: clear DUMPABLE
2016-11-03 20:53:09 +00:00
Mark Salyzyn 107e29ac1b logd: if eng build, be a bit more permissive about failures
Allows us some leaway to investigate logd issues on eng builds

Test: gTests logd-unit-tests, liblog-unit-tests and logcat-unit-tests
      Manual on eng builds, bad logd.rc to fake permission issues
Bug: 32450474
Change-Id: I432016e29e5601d67c502076ead941cecdcbebe7
2016-11-03 13:34:27 -07:00
Mark Salyzyn c377843258 libcutils: klog inherit android_get_control_file("/dev/kmsg")
If the file descriptor is in the environment, use it.

Test: compile
Bug: 32450474
Change-Id: Id208b11b727a44dc861a141130a644d7d8009c5f
2016-11-03 13:34:27 -07:00
Mark Salyzyn 77fdb22cf6 logd: start logd service in logd uid
Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests
      Manual inspect grep '^Cap' /proc/<tid>/status for correct capabilities
Bug: 32450474
Change-Id: Ia6a3872901969a789d4309d410dbfd5f5d17b3ce
2016-11-03 13:34:27 -07:00
Mark Salyzyn d2b3291ffa logd: auditd + klogd control CAPS
Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-testsa
Bug: 32450474
Change-Id: Icdaf9e352e86c9e140928509201da743004aeedb
2016-11-03 13:34:27 -07:00
Mark Salyzyn d8f01807b8 logd: drop capabilities in logd --reinit and logd.daemon
Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests
Bug: 32450474
Change-Id: I842a7a64f0ba695acef66caf54270f9475c9f9ac
2016-11-03 13:34:27 -07:00
Mark Salyzyn f0b8e1bce6 logd: drop libminijail dependency
Use libcap instead of libminijail.  Set CAP_SETGID before setgroups,
then clear it afterwards.

Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests
Bug: 32450474
Change-Id: I2ed027fd5efd95f76b1dd4c5791bae5f2ea94c28
2016-11-03 13:34:27 -07:00
Mark Salyzyn 5b44340acb logd: start logd services in logd gid
logd - start as root:logd+system+readproc
logd-reinit - start as logd:logd

ToDo: start as logd:logd+system+readproc (libminijail)
Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests
Bug: 32450474
Change-Id: I42c806ca1730a7f9eb9e34f064ae31a2ef9fc678
2016-11-03 13:34:27 -07:00
Mark Salyzyn 0d2a1dcb49 logd: set executable's capabilities in file system
Add CAP_SYSLOG, CAP_AUDIT_CONTROL and CAP_SETGID, set
uid and gid to AID_LOGD, and permissions user and group
read and execute only.

Fix up indents for in table for clarity.

Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests
      Manually inspect owner and group for /system/bin/logd
Bug: 32450474
Change-Id: I5183ab200dbcd13efb0727cb91db5b12018ae804
2016-11-03 13:34:27 -07:00
Mark Salyzyn e0b8ccd1a3 logd: inherit android_get_control_file()
Setup and then collect from the environment /proc/kmsg and /dev/kmsg
file descriptors. Do not do so for logcat --reinit.

Test: gTest logd-unit-tests, liblog-unit-tests and logcat-unit-tests
Bug: 32450474
Change-Id: Ied537ca561fcd4e71a9ad9c57398a23ba23f6ced
2016-11-03 13:34:27 -07:00
Mark Salyzyn 62767fe29f init: service file keyword
Solve one more issue where privilege is required to open a file and
we do not want to grant such to the service. This is the service side
of the picture, android_get_control_file() in libcutils is the client.
The file's descriptor is placed into the environment as
"ANDROID_FILE_<path>".  For socket and files where non-alpha and
non-numeric characters in the <name/path> are replaced with _.  There
was an accompanying change in android_get_control_socket() to match
in commit 'libcutils: add android_get_control_socket() test'

Add a gTest unit test for this that tests create_file and
android_get_control_file().

Test: gTest init_tests --gtest_filter=util.create_file
Bug: 32450474
Change-Id: I96eb970c707db6d51a9885873329ba1cb1f23140
2016-11-03 13:34:26 -07:00
Mark Salyzyn 0b034d9d7b libcutils: add android_get_control_file()
Solve one more issue where privilege is required to open a file and
we do not want to grant such to the service. This is the client side
of the picture, init is the server. The file's descriptor was placed
into the environment as "ANDROID_FILE_<path>" where non-alpha and
non-numeric characters in the <path> are replaced with _ and this
function picks the file descriptor up.

Added definition ANDROID_FILE_ENV_PREFIX ("ANDROID_FILE_") and
android_get_control_file() prototype in a new include <cutils/files.h>

android_get_control_file() checks if the resulting file descriptor is
valid, open and matches the name reference, which on purpose will fail
if a symbolic link is in the path rather than using a fully qualified
path.  Add gTest unit test for both.

Test: gTest libcutils_test --gtest_filter=FileTest.android_get_control_file
Bug: 32450474
Change-Id: I2d0310a1727f1e393a00d9fc7e6cf5d028f27905
2016-11-03 13:34:20 -07:00
Mark Salyzyn 547e0dc45a libcutils: add android_get_control_socket() test
android_get_control_socket() checks if the resulting file descriptor
is valid, open and matches the socket bound name reference, which on
purpose will fail if a symbolic link is in the path rather than using
a fully qualified path.  If there are any non-alpha and non-numeric
characters in the name, they are replaced with _.  Add unit test.

Test: gTest libcutils_test --gtest_filter=SocketTest.android_get_control_socket
Bug: 32450474
Change-Id: I27a6419012033ef8bd6ca04f3e479d01264d8c49
2016-11-03 13:34:13 -07:00
Mark Salyzyn c8d3194098 logd: switch to using arraysize() from libbase macros
Test: logd-unit-tests, liblog-unit-tests & logcat-unit-tests
Bug: 32450474
Change-Id: Iacdc4677f2c83898a7812c2af2c36e7ff7d92764
2016-11-03 12:27:29 -07:00
Mark Salyzyn 5febc51318 liblog: test report pmsg not configured if ENOMEM return
NB: bionic stdio is broken when providing appropriate errno value(s)
    on failure so libc.__pstore_append will not report pmsg
    misconfigured correctly on android for now.

Test: misconfigured kernel, watch for this message in liblog-unit-tests
Change-Id: Ifb1b550c7d3a3888000459c2f68c392cc23c379f
2016-11-03 11:20:59 -07:00