Commit graph

63234 commits

Author SHA1 Message Date
Jason Chiu
ebfbf7d920 Revert "Rename Flush to Finalize"
This reverts commit 6177f6f6c4.

Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=sdk_x86-sdk&lkgb=6919873&lkbb=6919923&fkbb=6919923, bug b/171353958

Change-Id: Iea3059b4bf64a7cac930c40b8b312b5b26b0baea
BUG: 168829493
2020-10-21 03:16:42 +00:00
Daniel Rosenberg
6177f6f6c4 Rename Flush to Finalize
As we change to a more resumable format, flush mostly writes the final
parts of the file that are needed, which would write extra data that is
not needed to continue writing, and would immediately be overwritten.

Additionally, in the next patch we will fsync the file after adding an
op, making the flush built in, and the Finalize name more appropriate.

Change-Id: I1db48315dec097b0620a0dfe7e7fd0098610d482
Bug: 168829493
Test: builds
2020-10-16 22:35:46 -07:00
Akilesh Kailash
e9cb85def4 Merge "Integrate snapuserd with dm-user ABI changes." 2020-10-17 00:41:58 +00:00
Akilesh Kailash
b03e4cdccd Integrate snapuserd with dm-user ABI changes.
Create loopback device to simulate system_a/product_a partitions
to test IO path.

Bug: 168259959
Test: cow_snapuserd_test

Signed-off-by: Akilesh Kailash <akailash@google.com>
Change-Id: I9f2a311d3eccfa20c82d0ebdb3e028ea3323a48d
2020-10-17 00:41:44 +00:00
Akilesh Kailash
ba0b4bb900 Merge "libdm: dm-user target creation takes an additional argument" 2020-10-17 00:41:28 +00:00
Josh Gao
fe1eba0056 Merge "adb: fix timeout-related test flakiness." 2020-10-16 20:18:45 +00:00
Treehugger Robot
ac46ab3c93 Merge "Load boot image props." 2020-10-16 19:23:08 +00:00
David Anderson
6c1d885150 Merge "libsnapshot: Partially implement OpenSnapshotWriter." 2020-10-16 19:15:51 +00:00
Palmer Dabbelt
eef49c9e3c libdm: dm-user target creation takes an additional argument
Rather than using some implicit naming scheme, we've decided to just let
userspace pick whatever control device naming scheme it wants.  This requires
an additional argument to be passed to the kernel.

Test: cow_snapuserd_test
Bug: 168259959
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
Change-Id: Ibf7f378b67abb6ca7457a9fdc9b8739e3d31bee3
Signed-off-by: Akilesh Kailash <akailash@google.com>
2020-10-16 18:16:55 +00:00
Baligh Uddin
721825bac9 Merge "Remove libprocinfo, libbacktrace, libunwindstack" 2020-10-16 15:49:44 +00:00
Baligh Uddin
ce7b63697e Remove libprocinfo, libbacktrace, libunwindstack
These projects have moved to a different location.
platform/system/core [libprocinfo] -> platform/system/libprocinfo
platform/system/core [libbacktrace] -> platform/system/unwinding [libbacktrace]
platform/system/core [libunwindstack] -> platform/system/unwinding [libunwindstack]

BUG: 163786882
Test: Local build + TH
Change-Id: Id6d278d917236df0ffd40b5c32593856e112cb5b
2020-10-16 15:46:24 +00:00
Jack Yu
b5e565d29b Merge "Create folder to store nfc snoop data" 2020-10-16 07:56:10 +00:00
Josh Gao
1115e29faf adb: fix timeout-related test flakiness.
When running tests against cuttlefish, `adb root` sometimes flakes
because of a 6 second timeout in wait_for_device, which can get
triggered when adbd's restart gets throttled by init. The adb client
would notice that the socket went down, try to reconnect and fail
because adbd still hasn't started yet, and then wait up to 10 seconds to
reconnect, before which the `adb root` invocation would have failed due
to timeout. Increase the timeout to be long enough to handle this, and
also reduce the interval of reconnections to speed things up when we're
in this scenario.

Bug: http://b/170707786
Test: while true; do adb root; adb wait-for-device; adb unroot; adb wait-for-device; done
Change-Id: I140d721dfcfd635d45813a55990684a25e32228c
2020-10-15 18:46:45 -07:00
Baligh Uddin
b2621b05a7 Merge "Add new path to visibility rule prior to migration." 2020-10-16 00:00:03 +00:00
Tom Cherry
3abb8b1485 Merge "Remove logcat, logd, and logwrapper symlinks" 2020-10-15 21:25:10 +00:00
Yifan Hong
ae11855809 Merge "health: Add CAP_BLOCK_SUSPEND" 2020-10-15 20:24:17 +00:00
Yifan Hong
a68ee762f7 Load boot image props.
This change does the following:

- Create /second_stage_resources empty dir at root.
- At runtime:
  - At first stage init:
    - mount tmpfs to /second_stage_resources.
    - Copy /system/etc/ramdisk/build.prop to
      /second_stage_resources/system/etc/ramdisk/build.prop
  - At second stage init:
    - Load prop from the above path
    - umount /second_stage_resources

Test: getprop -Z
Test: getprop
Bug: 169169031

Change-Id: I18b16aa5fd42fa44686c858982a17791b2d43489
2020-10-15 13:12:52 -07:00
Baligh Uddin
ccc73dc955 Add new path to visibility rule prior to migration.
BUG: 163786882
Test: TH
Change-Id: I9ee33e64c07384cc8a238a19cf9445085cf7b94f
2020-10-15 18:37:06 +00:00
Treehugger Robot
34a0e57a25 Merge "Update sysprop_library API txt" 2020-10-15 15:08:21 +00:00
David Anderson
aca0beaf77 libsnapshot: Partially implement OpenSnapshotWriter.
This is a re-landing of the original CL, with a few changes:
 - The correct device is now returned in MapUpdateSnapshot.
 - The old API is used for tests, and the new API is only tested when
   used on a VABC device.
 - A sync() call has been added to ensure that writes to the base and
   target snapshot devices have been fully flushed. This makes
   IsPartitionUnchanged detect the MapUpdateSnapshot bug.

Implement OpenSnapshotWriter for non-compressed Virtual A/B. This is
done by adding an OnlineKernelSnapshotWriter class, which forwards all
writes to a dm-snapshot block device.

This also introduces a new ISnapshotWriter class which extends
ICowWriter, and adds features specific to libsnapshot (versus ICowWriter
which is intended only for the new COW format). The OpenSnapshotReader
call has been moved here since the writer retains all the information
needed to create the reader.

To test the new call, vts_libsnapshot_test has been modified to use
OpenSnapshotWriter.

As part of this change, all consumers of libsnapshot must now link to
libsnapshot_cow.

Bug: 168554689
Test: vts_libsnapshot_test
Test: full OTA with update_device.py
Test: incremental OTA with update_device.py
Change-Id: I90364a58902a4406a37cb14a816642c57a72bec2
2020-10-14 21:41:36 -07:00
Inseob Kim
340d28487a Update sysprop_library API txt
Internal props are no longer stored in the txt file.

Exempt-From-Owner-Approval: cherry pick

Bug: 170693240
Test: m
Change-Id: I8d30b21a18759e35382f25a0706962cebbdeb096
Merged-In: I8d30b21a18759e35382f25a0706962cebbdeb096
2020-10-15 04:04:15 +00:00
Subbaraman Narayanamurthy
28ebc23625 health: Add CAP_BLOCK_SUSPEND
Add CAP_BLOCK_SUSPEND to android.hardware.health@2.0 service so
that when epoll_wait() is waiting on uevents and timer_fd events
it can block suspend to take the necessary action. Without this
permission, eventpoll is going to ignore the flags EPOLLWAKEUP
used in health HAL or healthloop.

Bug: 169873088
Change-Id: I50d84dd853f718d46fb4f15113da032b60c34b0d
2020-10-14 12:30:19 -07:00
Yifan Hong
f536731e5a Merge "Refactor: Move GSI AVB keys selection logic to common code." 2020-10-14 18:25:31 +00:00
Colin Cross
219b3487f8 Merge "Use ro.build.version.release_or_codename to reconstruct fingerprint" 2020-10-14 16:33:02 +00:00
Colin Cross
b519c71619 Use ro.build.version.release_or_codename to reconstruct fingerprint
The ro.build.version.release property was changed from being the
codename or final name of the current release to be the final name
of the most recent release.  Use ro.build.version.release_or_codename
to reconstruct the fingerprint to match what the build system does.

Bug: 158483506
Test: adb shell getprop | grep fingerprint
Change-Id: I3bd992b6f06ff90bb6024253339a2654afa069ee
2020-10-13 12:38:48 -07:00
Treehugger Robot
f9c36a2ca6 Merge "fastbootd: Add more logging for when the USB transport fails." 2020-10-13 02:18:06 +00:00
David Anderson
f74c1a9556 fastbootd: Add more logging for when the USB transport fails.
Bug: 161542676
Test: fastboot flashall
Change-Id: Ief4e7452b72504c51c807dd38a07765ad65c96a4
2020-10-12 15:55:48 -07:00
Yifan Hong
d65e4851e2 Refactor: Move GSI AVB keys selection logic to common code.
Test: pass
Change-Id: I5ac139ad171432e903c400077f7855d4e4bcf041
2020-10-12 13:01:14 -07:00
Steven Moreland
32535585fc Merge "libcutils: API to disable memory mitigations" 2020-10-12 16:59:23 +00:00
Wenhao Wang
323353413f Merge "rpmb_dev: Switch to RPMB provisioning scheme" 2020-10-10 05:06:56 +00:00
Steven Moreland
d22659b8ea libcutils: API to disable memory mitigations
Convenience API to disable memory mitigations, where we can specify
logging and also have a single place to update once a related bug is
fixed.

Bug: 166675194
Test: use API to disable memory mitigations
Change-Id: I4a3529ea1911925c49e31cc3809c2743e401c196
2020-10-10 00:16:24 +00:00
Tom Cherry
93490d0d17 Remove logcat, logd, and logwrapper symlinks
We should only need liblog

Bug: 170387172
Test: treehugger
Change-Id: I3cb2a4a37ae2f04cd8f0d991e360db6bd23fb02c
2020-10-09 14:47:19 -07:00
Treehugger Robot
8d96bfa9bd Merge changes from topic "bug_168791309"
* changes:
  Add symlinks to satisfy include paths.
  Remove liblog, logcat, logd, logwrapper
2020-10-09 02:32:02 +00:00
Baligh Uddin
62e9b3305d Add symlinks to satisfy include paths.
BUG: 168791309
Test: Local build + TH
Change-Id: Iafba3e4e8dc837c57af2332057a3c773c3922cb1
2020-10-08 23:19:43 +00:00
Baligh Uddin
d2c21a10d3 Remove liblog, logcat, logd, logwrapper
These subdirectories have moved to platform/system/logging.

BUG: 168791309
Test: Local build + TH
Change-Id: Iaee2ff59d4450f3e59dc9ea8b0e257b2de53e478
2020-10-08 23:17:52 +00:00
Baligh Uddin
83e9bc346a Merge "Add OWNERS block, so we can perform migration." 2020-10-08 23:05:36 +00:00
Baligh Uddin
23007f0e48 Add OWNERS block, so we can perform migration.
BUG: 168791309
TEST: YOLO
Change-Id: I6c9c12931203fe2460b2fbdca333f83541324022
2020-10-08 22:39:51 +00:00
Tom Cherry
8582aa21df Merge "logd: single std::mutex for locking log buffers and tracking readers" 2020-10-08 19:58:27 +00:00
Akilesh Kailash
c81477c5e4 Merge "libsnapshot:snapuserd: Handle signals" 2020-10-08 02:49:04 +00:00
Tom Cherry
c581886eea logd: single std::mutex for locking log buffers and tracking readers
There are only three places where the log buffer lock is not already
held when the reader lock is taken:
1) In LogReader, when a new reader connects
2) In LogReader, when a misbehaving reader disconnects
3) LogReaderThread::ThreadFunction()

1) and 2) happen sufficiently rarely that there's no impact if they
additionally held a global lock.
3) is refactored in this CL.  Previously, it would do the below in a loop
  1) Lock the reader lock then wait on a condition variable
  2) Unlock the reader lock
  3) Lock the log buffer lock in LogBuffer::FlushTo()
  4) In each iteration in the LogBuffer::FlushTo() loop
    1) Lock then unlock the reader lock in FilterSecondPass()
    2) Unlock the log buffer lock to send the message, then re-lock it
  5) Unlock the log buffer lock when leaving LogBuffer::FlushTo()
If these locks are collapsed into a single lock, then this simplifies to:
  1) Lock the single lock then wait on a condition variable
  2) In each iteration in the LogBuffer::FlushTo() loop
    1) Unlock the single lock to send the message, then re-lock it

Collapsing both these locks into a single lock simplifes the code and
removes the overhead of acquiring the second lock, in the majority of
use cases where the first lock is already held.

Secondly, this lock will be a plain std::mutex instead of a RwLock.
RwLock's are appropriate when there is a substantial imbalance between
readers and writers and high contention, neither are true for logd.

Bug: 169736426
Test: logging unit tests
Change-Id: Ia511506f2d0935a5321c1b2f65569066f91ecb06
2020-10-07 15:00:49 -07:00
Akilesh Kailash
f594785a26 libsnapshot:snapuserd: Handle signals
1: poll events to accept client request.
2: Mask all signals except SIGINT and SIGTERM.

Bug: 168258493
Test: cow_snapuserd_test

Signed-off-by: Akilesh Kailash <akailash@google.com>
Change-Id: I330170ac15199d2a97cc3b752dbf3b62b7b51a40
2020-10-07 21:45:45 +00:00
Treehugger Robot
5f7c13fb1e Merge "fs_mgr: adb-remount-test.sh: filter out more administrivia mounts." 2020-10-07 20:04:53 +00:00
Mark Salyzyn
08cd8b70c2 fs_mgr: adb-remount-test.sh: filter out more administrivia mounts.
binder /dev/binderfs binder rw,relatime,max=1048576,stats=global 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,seclabel,relatime 0 0
/dev/block/dm-3 240548676 3692368 236856308   2% /data_mirror/cur_profiles

are administrative mounts uninteresting to the adb remount test.

Fix system and vendor devt tests, turn them into warnings instead.

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 170256128
Bug: 169988379
Test: adb-remount-test.sh
Change-Id: Ie19722a9ad813dce014bc27610e6db035e6c69e9
2020-10-07 08:36:20 -07:00
Tom Cherry
8401907adc Merge "Reland: "Remove logging symlinks from system/core/include"" 2020-10-07 15:11:10 +00:00
Treehugger Robot
3f452134da Merge "logd: fix bad test assumptions" 2020-10-07 03:12:49 +00:00
Treehugger Robot
4c7104ab2a Merge "Clarify adb bugreport failures on pre-N devices." 2020-10-07 00:59:39 +00:00
Treehugger Robot
52578dda5b Merge "Remove vts10 related configs" 2020-10-07 00:35:38 +00:00
Arve Hjønnevåg
3e7c3504a3 Merge "trusty: keymaster: set_attestation_key: Change wrapped key" 2020-10-06 23:31:38 +00:00
Tom Cherry
340afd38cb logd: fix bad test assumptions
SerializedLogChunk.three_logs assumes that log buffers are
zero-initialized, but they are not.  This causes test failures on
host.

Test: this test passes
Change-Id: I0dfa282bdc36eaa4e8e39d85c5227f717b45ec2a
2020-10-06 15:54:26 -07:00
Elliott Hughes
f118cd95f1 Clarify adb bugreport failures on pre-N devices.
The error was meant to imply "without the filename" but (a) that wasn't
spelled out and (b) anyone who did just try the command would probably
be unpleasantly surprised by the massive amount of spam on their
terminal. So give them copy & paste instead.

(I did consider using their supplied filename, but since that's almost
certainly blah.zip, it seemed uncool to silently create a large text
file called "something.zip"!)

Bug: http://b/170225883
Test: untested for lack of a working pre-N device right now
Change-Id: I834939c963ca09927ccd4dc5ed8e88c65455838e
2020-10-06 13:53:38 -07:00