Commit graph

54987 commits

Author SHA1 Message Date
Ed Chen
1981401909 Revert "remount: Remove the "backing" parameter to fs_mgr_overlayfs_setup."
This reverts commit b20aa434a3.

Bug: 146403375
Reason for revert: broken build 6078429 on git_master on walleye-user

Change-Id: Idc3b1c0ad5228d63298ce84811624b23d0cea434
2019-12-17 08:53:13 +00:00
David Anderson
b20aa434a3 remount: Remove the "backing" parameter to fs_mgr_overlayfs_setup.
This is always null, and is otherwise unused.

Bug: 134949511
Test: builds
Change-Id: I94a0da037a7036b3390e54b1bf70700cb1944895
2019-12-12 14:13:41 -08:00
David Anderson
2d79a4365e remount: Remove fs_mgr_overlayfs_scratch_device()
This is no longer needed now that GetScratchDevice exists. The cache can
go away too, since it only existed to avoid libdm spam. The spam is
avoided by checking GetState before calling GetDmDevicePathByName.

Bug: 134949511
Test: adb remount and adb_remount_test.sh
Change-Id: I9d94e2523af9de394a811d0b398fe20415708a6b
2019-12-12 14:13:40 -08:00
David Anderson
43d9f1833f remount: Refactor fs_mgr_overlayfs_teardown
This pulls code for mapping the scratch device into a separate function.
It also avoids implicitly failing by passing an empty device string.
Finally, it calls GetScratchDevice, to remove a caller of the deprecated
method fs_mgr_overlayfs_scratch_device().

Bug: 134949511
Test: adb remount and adb_remount_test.sh
Change-Id: If4a543d3fa26af3f8578ec8b236859c8e4d9bfd8
2019-12-12 14:13:40 -08:00
David Anderson
a3bf8478a3 remount: Do not run the create-scratch logic on older devices.
The prologue of fs_mgr_overlayfs_create_scratch() will implicitly
succeed on physical block devices, and implicitly fail if for some
reason they can't be accessed.

This patch makes the success and failure cases explicit. The logic
specific to DAP has been moved to CreateDynamicScratch.

fs_mgr_overlayfs_create_scratch now calls GetScratchStrategy, and only
calls CreateDynamicScratch for DAP-launch devices. In the case a
physical block device can be used, no action is taken.

Bug: 134949511
Test: adb remount and adb_remount_test.sh
Change-Id: I0af7cda9bc551416c9e2ffca5a36305f89d3bf46
2019-12-12 14:13:39 -08:00
David Anderson
40a8b07e4d Merge "remount: Refactor fs_mgr_overlayfs_scratch_device()." 2019-12-12 19:35:18 +00:00
Elliott Hughes
8a8d7af69b Merge "shell-and-utilities: add bc." 2019-12-12 16:30:26 +00:00
Tom Cherry
3a64c148ed Merge "liblog: do not check loggability of event logs before sending to logd" 2019-12-12 15:30:58 +00:00
David Anderson
864021fbf6 remount: Refactor fs_mgr_overlayfs_scratch_device().
This splits fs_mgr_overlayfs_scratch_device into two new methods. The
first, GetScratchStrategy, returns an enum detailing exactly how the
device will find space for scratch:
 - via system_<other>,
 - via super_<other>, or
 - via a dynamic partition.

The second method, GetScratchDevice, uses the strategy to either return
the underlying block device, or look up a dynamic partition.

fs_mgr_overlayfs_scratch_device will be removed completely in a separate
patch.

Bug: 134949511
Test: adb remount and adb_remount_test.sh
Change-Id: Ic7e3815ada4adaf5fd7c19b84dc22249f3dcc881
2019-12-12 03:06:21 +00:00
Treehugger Robot
b773897b01 Merge "Add a name for all test suites" 2019-12-12 02:44:26 +00:00
Nikita Ioffe
5183983af2 Merge "Move setprop sys.usb.configfs 0 to on init action" 2019-12-12 02:41:16 +00:00
Josh Gao
f4ddee0f32 Merge changes I6ff85723,Ia7d743d5
* changes:
  adb: add ls_v2.
  adb: rename syncmsg::*::time to mtime.
2019-12-12 01:39:20 +00:00
Treehugger Robot
d692530a71 Merge "adb: remove atransport ref counting." 2019-12-12 00:47:28 +00:00
Elliott Hughes
d29f94cda8 shell-and-utilities: add bc.
We accidentally dropped this when it moved out of toybox.

Test: treehugger
Change-Id: I7bc0fc2d3fe3822232531465d2c13d306381c4ef
2019-12-11 15:58:38 -08:00
Treehugger Robot
1ef36b7491 Merge "Using a dir /avb for DSU avb keys" 2019-12-11 23:56:09 +00:00
Tom Cherry
49a8af7dff liblog: do not check loggability of event logs before sending to logd
This code was introduced to help performance by skipping sending these
messages to logd when logd would later drop them.  However it has
multiple flaws:

1) Event logs aren't super common and non-loggable event logs are even
   less common, so it would be a trivial benefit if any.
2) This code is not particularly safe as written, which is even
   acknowledged in the comments.
3) This forces processes that write event logs to allocate a rather
   sizable amount of memory.

Therefore, it's better to simply remove this and let logd drop these
messages when it receives them.

Bug: 139705697
Test: logging works, liblog-unit-tests
Change-Id: Ide01574112e173d4922137b3d3868cf8c2c09086
2019-12-11 15:46:47 -08:00
David Anderson
ce8ab2b546 Merge "remount: Factor some code out of fs_mgr_overlayfs_mount_all()." 2019-12-11 22:27:38 +00:00
David Anderson
cd720dc313 remount: Factor some code out of fs_mgr_overlayfs_mount_all().
To ease on the indentation, this factors the innermost code of
overlayfs_mountall() into a new TryMountScratch() function.

Bug: 134949511
Test: adb remount
Change-Id: I894cbcd17bb6bd64751f235a074fa5ba7ce5157c
2019-12-11 14:26:06 -08:00
Josh Gao
9a8366b3d9 adb: remove atransport ref counting.
The reference count is always 0 or 1.

Test: ./test_adb.py
Change-Id: I669f98f4996f4e41ac037f1add9c47819d4003d4
2019-12-11 13:40:41 -08:00
Treehugger Robot
a449a1cfd7 Merge "Revert "Revert "Support socket activation of adb server""" 2019-12-11 21:33:48 +00:00
Haibo Huang
0c01bb6edf Add a name for all test suites
(for the new googletest

Test: run tests
Change-Id: I3856a4a8f3ed23bcfcc59bec7624595e91740be0
2019-12-11 12:46:20 -08:00
Tom Cherry
15eda8c61e Merge "liblog: simplify fake_log_device" 2019-12-11 20:41:31 +00:00
Tom Cherry
44c3df91be Merge "Require 'exact', 'prefix', or '' for match operation in property_contexts" 2019-12-11 20:41:21 +00:00
Nikita Ioffe
da776c394d Merge "userdata_checkpoint_remount: delete all devices in dm-stack under /data" 2019-12-11 18:40:21 +00:00
Tom Cherry
4b077c51f2 Require 'exact', 'prefix', or '' for match operation in property_contexts
The previous code would lazily check for 'exact' and accept any other
value as a prefix match.  This should be a tighter check allowing only
'exact', 'prefix', or an empty string for this option.

Test: build fails if an invalid string is used for the match operation
Test: build succeeds normally
Test: `getprop -Z` shows exact vs prefix is differentiated correctly
Change-Id: I21dcb193810d65f468f8960967eabfd261f71e21
2019-12-11 07:56:51 -08:00
Tom Cherry
c619e49f74 liblog: simplify fake_log_device
This still fakes the long removed /dev/log devices, whereas it only
needs to print to stderr, so simplify that code.

Use std::mutex now that it is C++ to easy portability concerns.

Use the proper liblog headers for formatting information instead of
hardcoding a copy.

Test: liblog-host unit test
Change-Id: I310a6e7ad939960300eafa729cbfc535c5ced445
2019-12-11 07:20:37 -08:00
Tom Cherry
1ccaf2b8ee Merge "liblog: add a test for liblog on host" 2019-12-11 14:36:56 +00:00
Gavin Corkery
d1f5a817af Merge "Store crashing process name in sysprop" 2019-12-11 11:50:59 +00:00
Bowgo Tsai
a2ac846ff3 Using a dir /avb for DSU avb keys
Previously the AVB public keys for DSU is hard coded for each key path.
This adds the burden for maintaining the codebase, e.g., need to change
avb_keys each time when any new key is added or some old key is deleted.

With commit Ie74845d8c8e4aa45e8a9e3b862424cec641f8090, it's possible to
load avb keys from a directory. Let's use "/avb" for DSU AVB keys.

Also removing fstab entries that specifying vbmeta_partition. The AVB
keys used in DSU flow should be a separate set from the original
vbmeta.img (or vbmeta_system.img).

The following link has more info about DSU:
  https://developer.android.com/topic/dsu

Bug: 141284191
Bug: 144399552
Test: boot a GSI via DSU

Change-Id: I6bc1e068368e64cb0bbf6ef63805444b35a1fdfb
2019-12-11 09:00:46 +00:00
Daniel Colascione
3ec7be7a84 Revert "Revert "Support socket activation of adb server""
Test: actually build both device and client adb this time

This reverts commit c77904e3c5.

Change-Id: I8c2b8f24884ff36ff2460dab2500bad777100dfd
2019-12-11 08:20:20 +00:00
Treehugger Robot
9af7878ec5 Merge "Allowing the fs_mgr flag of avb_keys to be a dir" 2019-12-11 04:26:57 +00:00
Kiyoung Kim
597eca8a8c Merge "Move linker config under /linkerconfig" 2019-12-11 02:55:06 +00:00
Tom Cherry
d953ba3c82 liblog: add a test for liblog on host
Test: this test
Change-Id: I60fa8b82dbc010395762eba70502b89b295e29f5
2019-12-10 15:35:19 -08:00
Gavin Corkery
5d0deb563d Store crashing process name in sysprop
As part of Watchdog-triggered rollback logging, it would
be useful to know the service which has caused
updatable_crashing to be set. Store this in a new property
sys.init.updatable_crashing_process_name.

Test: manual
Bug: 138782888
Change-Id: Iffa38b2b746abbb5d823a8d69b7b8d2456836f4e
2019-12-10 23:00:24 +00:00
Steven Moreland
b033ea31ad Merge "statusToString: parenthesize strerror" 2019-12-10 20:57:10 +00:00
Nikita Ioffe
c796f918db Move setprop sys.usb.configfs 0 to on init action
This should solve the problem of
`property:sys.usb.config=adb && property:sys.usb.configfs=0` action
being wrongly triggered during userspace reboot.

Also reset some adbd-related property in `on userspace-reboot-requested`
action to make sure that userspace reboot sequence is as close as
possible to normal boot sequence w.r.t adbd.

Test: adb reboot userspace
Test: checked property:sys.usb.config=adb && property:sys.usb.configfs=0
  action is not triggered

Bug: 135984674
Change-Id: Icf40386399ee84d01228020e65f71ba473d72822
2019-12-10 19:16:15 +00:00
Steven Moreland
1e8e49cc2c statusToString: parenthesize strerror
For clarity, when printint w/o delination, noticed in b/145776393.

Test: view output of statusToString from a dumpsys change
Change-Id: I5ea9f052c223f167dd58923e2470c852907c97b8
2019-12-10 18:43:53 +00:00
Elliott Hughes
3498578c4c Merge "Be more careful about symlinking a file that actually exists on the host." 2019-12-10 17:59:15 +00:00
Matthew Maurer
be9de1ab86 Merge "Add support for mocked RPMB" 2019-12-10 17:16:09 +00:00
Treehugger Robot
5642bd2384 Merge "init: clarify a comment" 2019-12-10 17:07:30 +00:00
Treehugger Robot
89bdf1f26f Merge "logcat: remove unused enum and #def" 2019-12-10 17:06:50 +00:00
Nikita Ioffe
d572c80ace userdata_checkpoint_remount: delete all devices in dm-stack under /data
This enables unmounting + remounting of metadata encrypted ext4
userdata. Also added a sysprop to force unmount+remount logic even for
f2fs userdata which comes handy for testing, since we don't have
metadata encrypted ext4 devices to test on.

Test: adb shell setprop sys.init.userdata_remount.force_umount_f2fs 1
Test: adb shell /system/bin/vdc checkpoint startCheckpoint 1
Test: adb reboot userspace
Test: adb shell dumpsys activity
Bug: 135984674
Bug: 143970043
Change-Id: Icc30f5c99f4d9ee374352610ae17b5d9814f815b
2019-12-10 16:03:45 +00:00
Oli Lan
06126e1b6e Merge changes from topics "createapexdirs", "createapexrollbackdirs"
* changes:
  Create directory for snapshots of DE_sys apex data.
  Create DE_sys APEX data directories.
2019-12-10 12:54:43 +00:00
Treehugger Robot
8759cbd590 Merge "libsnapshot: add library for test helpers" 2019-12-10 10:28:42 +00:00
Tom Cherry
4b4154be30 logcat: remove unused enum and #def
Test: build
Change-Id: Ie43b4eb39c85b2a8edad4a5a73696dc97f43be68
2019-12-09 13:29:39 -08:00
Tom Cherry
687b55261c Merge "init: add missing O_CLOEXEC" 2019-12-09 17:47:21 +00:00
Tom Cherry
cbeaca541c init: clarify a comment
We do not need to set up all directories from system.img for the first
stage ramdisk, only those which first stage init mounts on.

Test: n/a
Change-Id: I877c623bac0b6dd2927ebdefa20da929ff98b341
2019-12-09 07:09:32 -08:00
Tom Cherry
c99d60cbc7 init: add missing O_CLOEXEC
Test: (hopefully) no more denials at boot
Change-Id: I7c20a9bbf27210e0ee5f1bbe69db36bb47c38892
2019-12-09 06:48:37 -08:00
Tom Cherry
ca7fbd546c Merge "Cleanup package_string() and its users" 2019-12-09 14:35:41 +00:00
Oli Lan
4370ff58ae Create directory for snapshots of DE_sys apex data.
This creates the /data/misc/apexrollback directory which will
hold snapshots of DE_sys apex data directories (i.e. it will
hold backups of data from /data/misc/apexdata for particular
apexes).

See go/apex-data-directories for details.

Bug: 141148175
Test: Built and flashed, checked directory was created.
Change-Id: If45377a9b29cc1f52dd08ea1339829e3bb3032e9
2019-12-09 11:12:53 +00:00