Commit Graph

27032 Commits

Author SHA1 Message Date
Tao Bao 2b5065648c Merge "adb: Fix the 'adb reboot sideload' for A/B devices." am: 9f59a4663c
am: b26579f326

Change-Id: I297f0ca93ea98f520b5b492af23f598f876136b0
2017-01-06 17:08:28 +00:00
Tao Bao b26579f326 Merge "adb: Fix the 'adb reboot sideload' for A/B devices."
am: 9f59a4663c

Change-Id: I9d1998124a38508a5681b0230ad7d11eba3edb60
2017-01-06 17:04:28 +00:00
Tao Bao 9f59a4663c Merge "adb: Fix the 'adb reboot sideload' for A/B devices." 2017-01-06 16:59:39 +00:00
Tao Bao 40e0ec918e adb: Fix the 'adb reboot sideload' for A/B devices.
We used to write the command file (/cache/recovery/command) to trigger
the sideload mode. A/B devices don't support that (may not have /cache
paritition). This CL switches to using libbootloader_message which
writes the command to BCB (bootloader control block) instead.

Test: "adb root && adb reboot sideload" reboots sailfish into recovery
      sideload mode.

Change-Id: I158fd7cbcfa9a5d0609f1f684a2d03675217628f
2017-01-05 18:01:01 -08:00
Jaekyun Seok 3b00f1cc8f Merge "Use shared lib of libutils, libz and libbase." am: 4bf9c82857
am: 70f6d5878e

Change-Id: I33d1f440eaf0aab019b0c222b44953923f255de9
2017-01-05 23:31:45 +00:00
Jaekyun Seok 70f6d5878e Merge "Use shared lib of libutils, libz and libbase."
am: 4bf9c82857

Change-Id: I7429632c24ca9f7581eb4e4d94640fb222b8d56e
2017-01-05 23:27:45 +00:00
Treehugger Robot 4bf9c82857 Merge "Use shared lib of libutils, libz and libbase." 2017-01-05 23:24:21 +00:00
Mark Salyzyn 4ec4e12b87 Merge "logd: sepolicy dynamic rate limiting" am: 8954ef987b
am: f80377d73a

Change-Id: Ia920a417e95a87625775f0ac3a5151b8eb0948f1
2017-01-05 20:48:28 +00:00
Mark Salyzyn f80377d73a Merge "logd: sepolicy dynamic rate limiting"
am: 8954ef987b

Change-Id: Id219bfcf31a621afe0c0109455119da0a29ba2d5
2017-01-05 20:44:58 +00:00
Treehugger Robot 8954ef987b Merge "logd: sepolicy dynamic rate limiting" 2017-01-05 20:28:34 +00:00
Mark Salyzyn 247d682fe1 logd: sepolicy dynamic rate limiting
Processing overhead for selinux violation messages is costly. We want
to deal with bursts of violations, but we have no intent of allowing
that sustained burst to go unabated as there is a cost of processing
and battery usage.

Tunables in libaudit.h are:

AUDIT_RATE_LIMIT_DEFAULT 20        /* acceptable burst rate      */
AUDIT_RATE_LIMIT_BURST_DURATION 10 /* number of seconds of burst */
AUDIT_RATE_LIMIT_MAX     5         /* acceptable sustained rate  */

Since we can only asymptotically handle DEFAULT rate, we set an upper
threshold of half way between the MAX and DEFAULT rate.

Default kernel audit subsystem message rate is set to 20 a second.
If sepolicy exceeds 125 violation messages over up to ten seconds
(>=~12/s), tell kernel audit subsystem to drop the rate to 5 messages
a second.  If rate drops below 50 messages over the past ten seconds
(<5/s), tell kernel it is ok to increase the burst rate back to 20
messages a second.

Test: gTest logd-unit-tests --gtest_filter=logd.sepolicy_rate_limiter_*
Bug: 27878170
Change-Id: I843f8dcfbb3ecfbbe94a4865ea332c858e3be7f2
2017-01-04 14:46:58 -08:00
Elliott Hughes ed5555ed8a Merge "Don't use bare `noreturn` in log.h." am: fe05f1cde4
am: 3f789b70ea

Change-Id: I5f5d65daaf5d6b9e006463960da50a33e9f8bfd3
2017-01-04 00:44:30 +00:00
Elliott Hughes 3f789b70ea Merge "Don't use bare `noreturn` in log.h."
am: fe05f1cde4

Change-Id: I5e1fa172496d2b5c038df9e1f66a7ac3734ed3bc
2017-01-04 00:42:00 +00:00
Elliott Hughes fe05f1cde4 Merge "Don't use bare `noreturn` in log.h." 2017-01-04 00:37:18 +00:00
Adrian Salido 08cbedfb14 Merge "init/service.cpp: fix access check for console" am: 4a3b03e9e5
am: 7cc669c493

Change-Id: I4b8db330cf35d4c227ac1778201dbd4a3bc882a0
2017-01-03 23:32:37 +00:00
Adrian Salido 7cc669c493 Merge "init/service.cpp: fix access check for console"
am: 4a3b03e9e5

Change-Id: I69e33c783d8afb7cd7781a8782504f3307b61435
2017-01-03 23:30:36 +00:00
Nick Kralevich 7d93c5c036 Merge "Send property_service AVC messages to the kernel audit system" am: d06f86ced6
am: d4fc568820

Change-Id: Ica6e9eb7f578953f07f2c37cdbd074ce69f3468a
2017-01-03 23:28:37 +00:00
Treehugger Robot 4a3b03e9e5 Merge "init/service.cpp: fix access check for console" 2017-01-03 23:27:40 +00:00
Nick Kralevich d4fc568820 Merge "Send property_service AVC messages to the kernel audit system"
am: d06f86ced6

Change-Id: I6a1b06620029935bedc28b69ec46eff0bade140b
2017-01-03 23:26:06 +00:00
Treehugger Robot d06f86ced6 Merge "Send property_service AVC messages to the kernel audit system" 2017-01-03 23:24:48 +00:00
Nick Kralevich 48ff04f986 Merge "LogAudit.cpp: replace newlines with spaces in audit messages" am: 5badada997
am: 5083c589fa

Change-Id: Ic41ed573f2ee717edb347ef1db28daa6ab20de07
2017-01-03 22:38:31 +00:00
Nick Kralevich 5083c589fa Merge "LogAudit.cpp: replace newlines with spaces in audit messages"
am: 5badada997

Change-Id: Ic19c090caafa110a88eded401015d1eebfede58d
2017-01-03 22:30:01 +00:00
Treehugger Robot 5badada997 Merge "LogAudit.cpp: replace newlines with spaces in audit messages" 2017-01-03 22:21:37 +00:00
Nick Kralevich 8adb4d9d12 Send property_service AVC messages to the kernel audit system
The property service uses an SELinux userspace check to determine if a
process is allowed to set a property. If the security check fails, a
userspace SELinux denial is generated. Currently, these denials are only
sent to dmesg.

Instead of sending these denials to dmesg, send it to the kernel audit
system. This will cause these userspace denials to be treated similarly
to kernel generated denials (eg, logd will pick them up and process
them). This will ensure that denials generated by the property service
will show up in logcat / dmesg / event log.

After this patch, running "setprop asdf asdf" from the unprivileged adb
shell user will result in the following audit message:

  type=1107 audit(39582851.013:48): pid=1 uid=0 auid=4294967295
  ses=4294967295 subj=u:r:init:s0 msg='avc: denied { set } for
  property=asdf pid=5537 uid=2000 gid=2000 scontext=u:r:shell:s0
  tcontext=u:object_r:default_prop:s0 tclass=property_service'

Test: manual
Bug: 27878170
Change-Id: I0b8994888653501f2f315eaa63d9e2ba32d851ef
2017-01-03 13:50:13 -08:00
Mark Salyzyn 3322aaf11d Merge "logd: Add support for ro.logd.auditd.[main|events]" am: 891df1c410
am: 0236379593

Change-Id: I06f4f668092c256d728d1a57a2e3ccd95587d4d2
2017-01-03 21:25:27 +00:00
Elliott Hughes 9b3b119912 Don't use bare `noreturn` in log.h.
toybox has a #define noreturn that trips over this.

Also move `format` out of the way, just in case.

Bug: https://github.com/android-ndk/ndk/issues/271
Test: builds
Change-Id: Ib8811136b4b422ff74625509539a5464a3c9af18
2017-01-03 13:17:42 -08:00
Mark Salyzyn 0236379593 Merge "logd: Add support for ro.logd.auditd.[main|events]"
am: 891df1c410

Change-Id: I1321ebbe91c492efc1e2173f2c5ff29e015ab6de
2017-01-03 21:16:56 +00:00
Adrian Salido 24ef8601c2 init/service.cpp: fix access check for console
Commit 9596d2b95d changes how
availability of console is checked by only checking access bits for
the console device. However, in cases where there is no console it
defaults to /dev/console. This device is always enumerated by tty
driver (i.e. file and access bits may be correct), but it doesn't
always map to an underlying console driver. Because the lookup for the
underlying console driver happens during the open system call, checking
only the access bits is not sufficient and need to make sure open
system call is successful, we can safely close the FD afterwards to
avoid FD leaks.

Test: boot device and check console svc doesn't continuously restart
Bug: 33691649
Change-Id: Ia51a8a2f56c345b70db55e95f61a057a98b52895
2017-01-03 13:11:29 -08:00
Treehugger Robot 891df1c410 Merge "logd: Add support for ro.logd.auditd.[main|events]" 2017-01-03 21:03:55 +00:00
Nick Kralevich 2e58867771 LogAudit.cpp: replace newlines with spaces in audit messages
Some kernels have a bug which causes a newline to show up in audit
messages. The embedded newlines cause one message to look like two due
to prefix controls.

Replace any newlines with spaces. Duplicate spaces are further
consolidated in code immediately after this newly added code.

Test: create an audit message with a newline, and watch it be cleaned up.
Bug: 27878170
Change-Id: Id90c29ab9e10d3be96f51403b0293622d782422a
2017-01-03 12:39:28 -08:00
David Pursell 83c3badb27 Merge "fastboot: update getvar documentation." am: fd979edb57
am: d4158aab30

Change-Id: Ia3b23bd908824991652b9444e7830560a5010e24
2017-01-03 18:03:44 +00:00
David Pursell d4158aab30 Merge "fastboot: update getvar documentation."
am: fd979edb57

Change-Id: Ib972ea7b1ec4c61df056e7c394fe0a995f91d09e
2017-01-03 17:55:43 +00:00
David Pursell fd979edb57 Merge "fastboot: update getvar documentation." 2017-01-03 17:45:05 +00:00
Mark Salyzyn ce80da3018 logd: Add support for ro.logd.auditd.[main|events]
log selinux audit messages boolean (true or false, default true)
selection for logging destinations:

ro.logd.auditd - turn on logd.auditd to pick up violations.
ro.logd.auditd.dmesg - to the kernel log.
ro.logd.auditd.main - to the "main" log buffer.
ro.logd.auditd.events - to the "events" log buffer.

We used to also read logd.auditd.dmesg and persist.logd.auditd.dmesg
which do not get refreshed when /data mounts internally.  This is a
confusing state as these properties will be read after a logd crash
and restart, adjusting the behavior of the logger.  Same can be said
for logd.auditd as well.  Drop reading these other parameters.

Test: manual set r/o parameters, stop/start logd to confirm behavior
Bug: 33969000
Bug: 27878170
Change-Id: I1a6bb4a903074c9aa7b227cf583a0094d49cbefd
2017-01-03 09:44:42 -08:00
Elliott Hughes 45c7500b9a Merge "libziparchive: use _FILE_OFFSET_BITS=64" am: 10a7b9bb8b
am: d9bd95e1c1

Change-Id: If3d14483f410b885958ec2bf42e3e111c9245841
2016-12-30 20:34:41 +00:00
Elliott Hughes d9bd95e1c1 Merge "libziparchive: use _FILE_OFFSET_BITS=64"
am: 10a7b9bb8b

Change-Id: I024b1e1134da7362eeb137581bf69d2b38a147ca
2016-12-30 20:26:09 +00:00
Elliott Hughes 10a7b9bb8b Merge "libziparchive: use _FILE_OFFSET_BITS=64" 2016-12-30 20:21:17 +00:00
Elliott Hughes 8f378bc31e Merge "Make libziparchive C++-only." am: b175ee271b
am: b7c94f3e50

Change-Id: I4776d56008693b1bc05695c7826e791a9d81b197
2016-12-30 19:54:07 +00:00
Elliott Hughes b7c94f3e50 Merge "Make libziparchive C++-only."
am: b175ee271b

Change-Id: Ifaa182ff77248653974e2e8a19e7f36147be47f1
2016-12-30 19:46:07 +00:00
Elliott Hughes b175ee271b Merge "Make libziparchive C++-only." 2016-12-30 19:40:56 +00:00
Mark Salyzyn c6b59d9d8a Merge "logd: gtest: logd.timeout socket does not clean up properly" am: 7d24dea9cb
am: 64d7c7fcb4

Change-Id: I7ee918327855356185268ba0dbbbc7aa73eaa507
2016-12-29 22:52:14 +00:00
Mark Salyzyn 64d7c7fcb4 Merge "logd: gtest: logd.timeout socket does not clean up properly"
am: 7d24dea9cb

Change-Id: I3ca333142b258e9309f55e1160161b2420d3601a
2016-12-29 22:43:20 +00:00
Treehugger Robot 7d24dea9cb Merge "logd: gtest: logd.timeout socket does not clean up properly" 2016-12-29 22:36:57 +00:00
Mark Salyzyn 1736c4866c logd: gtest: logd.timeout socket does not clean up properly
Until the socket ages out, it sticks around and gets reused in
subsequent tests affecting the outcome of those tests.  We opt
to run logd.timeout in a forked and isolated process to keep
these conditions from interfering.

Adjusted benchmark execute to only run the tests we are
interested in to improve the time it takes to run.

Commented some areas of code to make them easier to maintain.

Test: gTest logd-unit-tests success
Bug: 33962045
Change-Id: Ic1b98bc4a2d7e8927f1a87628e3bcc368c9cf8ce
2016-12-29 12:59:22 -08:00
Elliott Hughes a970c8f1fc Make libziparchive C++-only.
If we're going to build libziparchive with _FILE_OFFSET_BITS=64, which
seems like a reasonable idea, we don't want off_t/off64_t mixups in the
ABI, and C++ name mangling helps protect against that where C wouldn't.

Bug: N/A
Test: builds
Change-Id: I5f068b41fb4cd9e1e055e5250054318b35bcbc08
2016-12-29 10:38:37 -08:00
Jorge Lucangeli Obes 4534a8a568 Merge "init: Make 'write_file' return bool to match 'read_file'." am: 3553ae73fb
am: 2115424df1

Change-Id: I4711a702bfcfeba99933774fde62d7c124fabf12
2016-12-29 17:38:33 +00:00
Jorge Lucangeli Obes 2115424df1 Merge "init: Make 'write_file' return bool to match 'read_file'."
am: 3553ae73fb

Change-Id: Ieb1c31a36d7b89ab044016c333e4513b206c2479
2016-12-29 17:31:02 +00:00
Treehugger Robot 3553ae73fb Merge "init: Make 'write_file' return bool to match 'read_file'." 2016-12-29 17:24:18 +00:00
Jorge Lucangeli Obes 77f0e9fda8 init: Make 'write_file' return bool to match 'read_file'.
The mismatch of return values makes reasoning about the correctness of
CLs like https://android-review.googlesource.com/317923 quite hard.

Bug: 33941660
Test: Init builds, HiKey boots.
Change-Id: Ia4b8a9af420682997b154a594892740181980921
2016-12-28 14:16:54 -05:00
Mark Salyzyn 25f6d2b5a6 Merge changes I6145bae8,Ia9452b3e am: f37948d659
am: bf5f495d3e

Change-Id: Iecf5496a69864580f314817f207b8782bb91c8a1
2016-12-27 21:01:36 +00:00