Commit graph

38812 commits

Author SHA1 Message Date
Treehugger Robot
cefd4e56ad Merge "bootstat: Remove the CAP_SYSLOG capability" 2018-06-12 20:59:45 +00:00
Treehugger Robot
28cd2a02b1 Merge "logd: Move the capabilities from file based to ambient" 2018-06-12 20:56:56 +00:00
Tom Cherry
413bf61e48 Merge "init: Actually check the return value for calls during first stage init" 2018-06-12 20:40:30 +00:00
Tom Cherry
788fc8229c init: Actually check the return value for calls during first stage init
Init never checked the return values of the calls made during first
stage init (since of course they're not going to fail, right?).  But
of course commands can fail and they might not necessarily be obvious
when they do, so let's make it obvious.

Since the kernel log isn't up until later, this creates a list of the
failures that can then be sent to the kernel log once it's ready
(pending of course failures in setting it up...)

Test: boot bullhead, don't see errors
Change-Id: I8c12c61fa12e4368346e8b0e1c0bb0844b5d0377
2018-06-12 11:18:17 -07:00
Treehugger Robot
e5aa7ee753 Merge "bootstat: ppdone_timeout kernel panic" 2018-06-12 15:47:02 +00:00
Treehugger Robot
d0687a8aec Merge "fs_mgr: reorder getting boot config" 2018-06-11 23:36:17 +00:00
Luis Hector Chavez
0becca32bc bootstat: Remove the CAP_SYSLOG capability
This change removes the CAP_SYSLOG file based capability from bootstat,
since the intention is that it should not be accessing the logs in the
long term. In order to avoid bitrot, the fallback code that depends on
CAP_SYSLOG has also been removed.

Bug: 62845925
Test: system/core/bootstat/boot_reason_test.sh
Change-Id: I899be44ef3ac1c4d81072f801d55c928ae09bb15
2018-06-11 12:41:24 -07:00
Luis Hector Chavez
d32c36c961 logd: Move the capabilities from file based to ambient
This change moves logd's capabilities from being file based to being set
by init through ambient capabilities.

Bug: 62845925
Test: sailfish:/ # grep Cap /proc/`pidof logd`/status
      CapInh: 0000000000000000
      CapPrm: 0000000440000000
      CapEff: 0000000440000000
      CapBnd: 0000000440000040
      CapAmb: 0000000000000000
      $ capsh --decode=0x440000040
      0x440000040=cap_setgid,cap_audit_control,cap_syslog
Test: liblog-unit-tests, logd-unit-tests, logcat-unit-tests
Change-Id: I28c7c4ad37ad5eafd399aef78c303ce31298a9ef
2018-06-11 10:04:11 -07:00
Bowgo Tsai
7481e6cceb fs_mgr: reorder getting boot config
The params in kernel cmdline is expected to be consumed by kernel.
For bootloader <--> userland communication, we're moving it to
device-tree or system property.

Bug: 78615592
Test: boot a device
Change-Id: I26bc2ea4cda91241242eb9fd0210b5b10659a297
2018-06-12 00:16:14 +08:00
Treehugger Robot
ec9b6b73ff Merge "fs_mg: allow getting VBMeta Digest from device-tree" 2018-06-11 16:10:21 +00:00
Treehugger Robot
53fe135595 Merge "Add files to CleanSpec.mk" 2018-06-11 15:35:47 +00:00
Treehugger Robot
7da6b579c1 Merge "fs_mgr: fs_mgr_get_boot_config_from_kernel_cmdline deal with quote" 2018-06-11 14:29:24 +00:00
Bowgo Tsai
3474297379 fs_mg: allow getting VBMeta Digest from device-tree
fs_mgr gets androidboot.vbmeta.{size, hash_alg, digest} from kernel
cmdline to assure the integrity of all vbmeta structs. This CL Allows
fs_mgr to get those parameters from device tree because they're only
consumed by userland instead of kernel.

  https://android.googlesource.com/platform/external/avb/+/master#The-VBMeta-Digest

Bootloader could construct a device tree overlay at run time then merge
it into main device tree. e.g.,

    firmware {
        android {
            vbmeta.size = "5245";
            vbmeta.hash_alg = "sha256";
            vbmeta.digest = "0c51233ca3ecaa...63c6d912e79b709";
        };
    };

Bug: 80168311
Test: boot a device using AVB

Change-Id: I6cf151713af04e6cf554d593e9f0b43e9e214d8c
2018-06-11 22:08:45 +08:00
Logan Chien
7881135fa9 Add files to CleanSpec.mk
This commit removes stale files from incremental builds:

* /system/etc/ld.config.txt,
* /system/etc/llndk.libraries.txt
* /system/etc/public.libraries.txt

These files are replaced by versioned ones.

Bug: 78605339
Test: Those files are removed in incremental builds
Merged-In: I7925fa45b47397829bde835ab3c479611faffa33
Change-Id: I7925fa45b47397829bde835ab3c479611faffa33
(cherry picked from commit 9afd9b488f)
2018-06-10 08:29:24 +09:00
Mark Salyzyn
596fac3c6d fs_mgr: fs_mgr_get_boot_config_from_kernel_cmdline deal with quote
Spans quoted with " are dealt with atomically, and are stripped from
the key/value results when parsing the kernel cmdline.

Test: compile, device boot, fs_mgr_unit_test
Bug: 109821005
Change-Id: I45f3d7395f34295edefdeaafa4c15c6ee25cc4da
2018-06-08 16:04:17 -07:00
Tao Bao
3ee8926f5d Merge "Update shell and utilities doc on the use of dd and grep." 2018-06-08 19:30:04 +00:00
Mark Salyzyn
78e54fd0ab bootstat: ppdone_timeout kernel panic
Add kernel_panic,_sde_encoder_phys_cmd_handle_ppdone_timeout to help track
occurrences.

Test: compile
Bug: 67728931
Change-Id: I3306ae2936dc4355902e838d9ac8d8b11837348d
2018-06-08 10:37:06 -07:00
Tao Bao
6220400636 Update shell and utilities doc on the use of dd and grep.
We have moved away from BSD dd and grep, which is also shown in the
section for Android Q.

Test: N/A
Change-Id: I13484879e697a1cf2c8b82d7e28a167cb34c00fa
2018-06-08 12:52:56 -04:00
Tom Cherry
158dd05b8a Merge "fs_mgr: remove some unused functions" 2018-06-08 02:27:03 +00:00
Tom Cherry
e6eabf42f2 fs_mgr: remove some unused functions
Test: build
Change-Id: I8a44f2f777fff369df06c73f06d53e448826f7b5
2018-06-07 16:49:01 -07:00
Treehugger Robot
e1bc807b7d Merge "fs_mgr: avb should use built-in kernel command line parser" 2018-06-07 23:28:26 +00:00
Mark Salyzyn
346c52e972 fs_mgr: avb should use built-in kernel command line parser
Switch from open-coded parsing of /proc/cmdline to built-in
fs_mgr_get_boot_config_from_kernel_cmdline function.

Test: compile and smoke boot test
Bug: 109821005
Change-Id: I935d2e76c76ad417cbcee398e2afbf9b061d1719
2018-06-07 14:45:08 -07:00
Treehugger Robot
5911204326 Merge "libsysutils: Delete dead code: FrameworkClient" 2018-06-07 16:44:24 +00:00
Treehugger Robot
9be5f2df0a Merge "clang-format: Double-indent continuation lines" 2018-06-07 16:44:04 +00:00
Bernie Innocenti
246d35d02b libsysutils: Delete dead code: FrameworkClient
Test: mm
Change-Id: I372f2aa8d7f7e3f5ce1cd9399292bef9e4900de7
2018-06-07 20:20:01 +09:00
Bernie Innocenti
68ba3c3d9a clang-format: Double-indent continuation lines
The default value for ContinuationIndentWidth inherited from the Google
style is 4. Since .clang-format-4 doubles the value of IndentWidth
from 2 to 4, it should also double ContinuationIndentWidth to retain
Google's double-indent style.

Before:

 void forEachInterface(
     const std::string& dirname,
     const std::function<void(const std::string& path)) {
     fn(dirname, "default");
     DIR* dir = opendir(dirname.c_str());

After this patch:

 void forEachInterface(
         const std::string& dirname,
         const std::function<void(const std::string& path)) {
     fn(dirname, "default");
     DIR* dir = opendir(dirname.c_str());

Test: applied to libsysutils/src/*.cpp and compared output.
Change-Id: I75c50fa9becd5291a17047933f443cc6db77838a
2018-06-07 19:57:57 +09:00
Treehugger Robot
ae74e42d25 Merge "Fix exit-time-destructor warning" 2018-06-06 23:28:07 +00:00
Pirama Arumuga Nainar
8b47d316d2 Fix exit-time-destructor warning
By initializing the global handle_list on the heap.

Test: Run Clang-built adb_test.exe under wine
Change-Id: I2326011b7e44c6d0cb4721d4b68fde7188b87c38
2018-06-06 14:41:26 -07:00
Treehugger Robot
5dfe1e81d4 Merge "libbase: fix libbase_test.logging.StdioLogger." 2018-06-06 21:41:17 +00:00
Elliott Hughes
11a64eb0e8 libbase: fix libbase_test.logging.StdioLogger.
I don't think the StdioLogger test ever passed. Move GetFileBasename
to where we can use it from StdioLogger, and undo the mix of anonymous
namespace vs static to consistently use static (which is the majority)
while we're touching those lines.

Bug: N/A
Test: ran tests
Change-Id: I95b3966cdb8af642bed71752bd7d4e3a86ac84ca
2018-06-06 12:54:41 -07:00
Elliott Hughes
063183f203 Merge "Try to fix LocalUnwinderTest.unwind_after_dlopen in APCT." 2018-06-06 19:47:02 +00:00
Elliott Hughes
f6d7594d7f Try to fix LocalUnwinderTest.unwind_after_dlopen in APCT.
Failure:

  system/core/libunwindstack/tests/LocalUnwinderTest.cpp:181: Failure
  Value of: handle != nullptr
  Actual: false
  Expected: true

Bug: N/A
Test: N/A
Change-Id: I89b3228d51961f7bf952dd01f12f4ee61a97fe91
2018-06-06 10:48:41 -07:00
Lorenzo Colitti
2a7c887198 Merge "Move per-file OWNERS directives to their directories." 2018-06-06 07:48:55 +00:00
Treehugger Robot
5c1d56dffa Merge "Revert "SocketListener: use poll() instead of select()"" 2018-06-06 04:56:25 +00:00
Lorenzo Colitti
58f2daaeb4 Move per-file OWNERS directives to their directories.
As documented at go/gerrit-owners, per-file directives cannot
contain directory paths. Therefore the current per-file
directives in system/core/OWNERS have no effect.

Test: build/make/tools/checkowners.py system/core/{,libsysutils/src/,include/sysutils/}OWNERS
Change-Id: Ia88b2be42dd50346578bb51dd17fb6136a4591f1
2018-06-06 11:49:40 +09:00
Kevin Rocard
775ad25510 Revert "SocketListener: use poll() instead of select()"
This reverts commit 0ad41cf3f4.

Reason for revert: Breaks many tests, see b/109745952#comment18 b/109745952#comment20 and b/79838856#comment19 amongst others

Change-Id: I92db38d47cd1dcd7841091e37e3b65dce9456cdf
2018-06-06 02:17:24 +00:00
Treehugger Robot
666f62e1c7 Merge "libsync: OWNERS." 2018-06-05 19:38:25 +00:00
Kevin Rocard
c2a89f396b Merge "Revert "sync: remove legacy sync info API"" 2018-06-05 17:58:32 +00:00
Elliott Hughes
f2570c2f92 libsync: OWNERS.
Based on git shortlog and my memory.

Bug: N/A
Test: N/A
Change-Id: I2e821a1214c349fd75f2971f632de3d30c602b83
2018-06-05 10:56:38 -07:00
Treehugger Robot
a1ae903d00 Merge "Populate recovery DTBO offset correctly" 2018-06-05 17:49:27 +00:00
Marissa Wall
eed25df46a Revert "sync: remove legacy sync info API"
This reverts commit 798ba95bda.

Brodcom uses the sync_fence_info_data directly.
https://android-build.googleplex.com/builds/submitted/4821789/elfin-userdebug/latest/view/logs/build_error.log

Change-Id: I72fed683397e9b10007b71253e20ded43726d377
2018-06-05 17:22:32 +00:00
Treehugger Robot
1f87959cf7 Merge "liblog: expect content only if ro.logd.kernel is enabled" 2018-06-05 16:45:44 +00:00
Mark Salyzyn
42fb2821cc liblog: expect content only if ro.logd.kernel is enabled
On svelte devices, CTS test liblog#android_logger_get_ fails on the
missing kernel buffer because it is not enabled to save space.

Test: gTest liblog_unit_tests
Bug: 109669791
Change-Id: Iaf46fe9713d3462a56885515a67db640544345ab
2018-06-05 07:43:15 -07:00
Treehugger Robot
2be430aceb Merge "Fix performance degradation from BootSequence atom" 2018-06-05 14:41:26 +00:00
Jesse Hall
d356071fed Merge changes from topic "sync-cleanup"
* changes:
  sync: remove legacy sync info API
  Remove obsolete sync_test.c
2018-06-05 05:15:05 +00:00
Hridya Valsaraju
26e01bbdc5 Populate recovery DTBO offset correctly
Also, remove recovery_dtbo_offset argument
for mkbootimg as this is calculated based
on sizes of kernel, ramdisk and second
binaries.

Also, modify unpack_bootimg to use the recovery_dtbo_offset
field to extract recovery_dtbo.

Test: make recoveryimage showcommands -j32
unpack_bootimg --boot_img $OUT/recovery.img
diff recovery_dtbo dtbo.img

Change-Id: I588ccc8b739c169b6f78c17ffe554c5562397d98
2018-06-04 15:26:42 -07:00
Tej Singh
993f65619e Fix performance degradation from BootSequence atom
(partial cherry pick from commit fe3e762b6d)

Adding the boot sequence reported atom in ag/3518079 caused the duration
of bootstat to increase, as seen in b/72864061. I isolated the cause
down to calling BootReasonStrToReason. However, this function also gets
called in ReportBootReason, so I created another function that does the
parsing and sets the system boot reason property, and made
RecordBootReason and statsd logging get that property.

Bug: 72864061
Test: rebooted phone, verified boot events were received in adb shell
logcat -b stats and verified adb shell bootstat -p printed correct
values. Ran timing tests as well on walleye with 20 boots: before this
change, the average was ~150-160ms. After, it was ~80ms.
Change-Id: I92dbc9880328835647be7d9d50c7861b42f27bdb
Merged-In: I92dbc9880328835647be7d9d50c7861b42f27bdb
2018-06-04 13:31:05 -07:00
Mark Salyzyn
dc17e9efa0 Merge changes Iecedc3b1,I28987f08
* changes:
  bootstat: refine boot reasons
  bootstat: shutdown reports reboot
2018-06-04 20:29:58 +00:00
Mark Salyzyn
186f67625c bootstat: refine boot reasons
Received some clarity as to some of the boot reasons.

List of boot reasons and new translations to Canonical boot reason:

- "power_key" -> "cold,powerkey" (existing)
- "usb" -> "cold,charger" (existing)
- "rtc" -> "cold,rtc" (existing)
- "wdt" -> "reboot" (changed)
- "wdt_by_pass_pwk" -> "warm" (changed)
- "tool_by_pass_pwd" -> "reboot,tool" (changed)
- "2sec_reboot" -> "cold,rtc,2sec" (changed)
- "unknown" -> "reboot,unknown" (existing)
- "kernel_panic" (existing)
- "reboot" (existing)
- "watchdog" (existing)

Add the new string to enums for the new Boot Reason.

Test: boot_reason_test.sh (on affected device)
Bug: 74595769
Bug: 63736262
Change-Id: Iecedc3b1f7c47f26d0c77b1f316f745c6d2c1256
2018-06-04 08:32:23 -07:00
Mark Salyzyn
1519925149 bootstat: shutdown reports reboot
Some devices report the following canonical boot reason for all
shutdown operations:

    reboot,kernel_power_off_charging__reboot_system

because shutdown switches to a charging kernel, and reboots into the
system when the user presses the power button.  Thus last kernel
messages arrives as:

    <0>.(0)[53:pmic_thread]reboot: Restarting system with command \
                       'kernel power off charging  reboot system'
     -> "shutdown" (w/o last boot reason)
     -> "shutdown,<subreason>" (w/last boot reason)

The reboot reason from that charging instance propagates as a
fortified boot reason blocking interpretation of the last boot reason
that manages shutdown canonical boot reason determination.  The fix
is to change reboot,kernel_power_off_charging__reboot_system to
shutdown, so that it is viewed as a blunt reason that can be
overridden by last boot reason.

We added the above boot reason to kBootReasonMap because the Bit
Error Handler can use it to reconstruct if there is any damage to
the last kernel messages content.  The sad thing is that the enum
will never propagate as we are filtering it out and reporting
"shutdown" instead.  Of course, we are now covered for a can not
happen.

Test: boot_reason_test.sh
Bug: 74595769
Bug: 63736262
Change-Id: I28987f0871af7d967cc4bbbffed43bd42349acdd
2018-06-04 08:32:11 -07:00