Commit Graph

84646 Commits

Author SHA1 Message Date
Tomasz Wasilczyk 3f214d7a09 Merge "Allow disabling callstack" into main 2023-10-29 00:46:54 +00:00
Treehugger Robot fe72eca034 Merge "Create integration test for fastboot CLI" into main 2023-10-27 18:52:47 +00:00
Tomasz Wasilczyk b6f459abbc Allow disabling callstack
Bug: 302723053
Test: mma
Change-Id: Idea326cc9914d4c81d75dad287e169c09a736486
2023-10-27 10:48:43 -07:00
William Hester bdf0b1bb83 Create integration test for fastboot CLI
We rely on parsing the `fastboot devices` output in device labs, and a
format change previously broke us. This test will ensure that the output
is exactly what we expect.

Test: atest --host fastboot_integration_test

Change-Id: I7606e7b3e4a1edfe487ff14bb06cbd3c0a3aa777
2023-10-26 16:51:33 -07:00
Automerger Merge Worker 8fbaaa33a1 Merge "Merge "vts_fs_test: Do not check /metadata for automotive" into android14-tests-dev am: 76a9eb4374" into main 2023-10-26 21:26:53 +00:00
Treehugger Robot 54f2e06cf5 Merge "vts_fs_test: Do not check /metadata for automotive" into android14-tests-dev am: 76a9eb4374
Original change: https://android-review.googlesource.com/c/platform/system/core/+/2800753

Change-Id: I403f0915937a0c8b24a54b5b265b70b1ce529ff2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-26 21:26:48 +00:00
Christopher Ferris 268c408310 Merge "Fix indices in fuzzer." into main 2023-10-26 18:37:06 +00:00
Steven Moreland f1168c7b0b Merge "libutils_binder: isolate headers" into main 2023-10-25 23:13:59 +00:00
Treehugger Robot 76a9eb4374 Merge "vts_fs_test: Do not check /metadata for automotive" into android14-tests-dev 2023-10-25 16:56:56 +00:00
Yi-Yo Chiang a93795deae Merge "remount: If checkpoint is in progress, wait for it to complete" into main 2023-10-25 06:22:12 +00:00
Steven Moreland c738370273 libutils_binder: isolate headers
This isolated all libutils_binder headers from libutils
except for RefBase use of CallStack.h. This header can
be disabled with a macro option easily.

Bug: N/A
Test: N/A
Change-Id: I83af091fc17b5418ab9e4d7fc41fb43792ec547d
2023-10-24 23:45:01 +00:00
Christopher Ferris 14e997fe43 Fix indices in fuzzer.
There are a few places where an index is randomly generated, but the
max is incorrectly set to the size of the value not one less than
the size.

All of these occurrences have been fixed.

Bug: 306230574

Test: Ran fuzzer instance that failed, no longer fails.
Change-Id: I20dfbc19a0df9cb160f8c861e072f083e24a4fab
2023-10-24 14:38:49 -07:00
Yi-Yo Chiang 50dca4a77b remount: If checkpoint is in progress, wait for it to complete
Instead of having the user to retry the `remount` command until success
(manual poll). Just block the remount command until checkpoint is
complete, and then continue.

Bug: 252989722
Test: adb remount on a cold device, remount command would block for a
  few dozens of seconds and then continue.
Test: adb remount on a warm device, remount command would process
  immediately. Do not show "force end checkpointing" instructions.
Change-Id: I65f3a5ade4c9538a55892345c75b45ac3a1755fd
2023-10-24 13:15:03 +00:00
Philip Chen 35817eeb55 vts_fs_test: Do not check /metadata for automotive
This aligns with GAS req 4.0.

Bug: 307215040
Test: build
Change-Id: I2115e147d484d066f892ea50eeca626e64beebfc
2023-10-23 21:43:23 +00:00
David Anderson d1e286f12f Merge "Refactor off COW header v3" into main 2023-10-23 18:25:46 +00:00
David Anderson ee4c926247 Merge "fastboot: Fix flashing failure when a sparse image has an avb footer." into main 2023-10-23 16:44:07 +00:00
Yi-Yo Chiang 3609bf706c Merge changes I6debf849,I6cdbe8c5 into main
* changes:
  fs_mgr_overlayfs: Remove temp dir under /dev when aborting
  fs_mgr_overlayfs: Support remounting submounts
2023-10-23 07:58:02 +00:00
Yi-Yo Chiang 05d3adb713 fs_mgr_overlayfs: Remove temp dir under /dev when aborting
When aborting from fs_mgr_overlayfs_mount, we should remove any temp dir
we created under /dev before aborting the program.

Bug: 306124139
Test: adb-remount-test
Change-Id: I6debf84935e39d884f2f5b3e9720fdfd4332465c
2023-10-23 07:57:28 +00:00
Yi-Yo Chiang c78df87fad fs_mgr_overlayfs: Support remounting submounts
The move mount motions logic are built on top of heuristics and allow
non-fatal failures.
If the overlay was setup and mounted without reboot (this could happen
if AVB is disabled), the mount state (especially the MS_SHARED and
MS_PRIVATE flags) can still get skewed somehow, due to unforeseen errors
or resource race.
It is always advised to reboot after initial overlay setup, as the
overlay mount logic is less likely to require moving submounts when
executed by `init`, this provides the greatest chance of success.

Below is an example of the expected outcome of remounting submounts:
[precondition]
* AVB is already disabled, so overlay is setup and mounted w/o reboot
* No existing overlay; is initial overlay setup

0. /proc/self/mountinfo would contain something like:
<id> <parent id> <mountpoint> <shared/private> <filesystem>
2    1           /product     shared:2         erofs
3    2           /product/app shared:3         erofs

1. adb remount /product/app
(note how the mount flag of <3> changes to private so <30> can be
MS_MOVE later)
2    1           /product     shared:2         erofs
3    2           /product/app private          erofs
30   3           /product/app shared:30        overlay

2. adb remount /product
(note how the parent of <30> changes to <40> as the result of MS_MOVE)
(note that <3> is _not_ moved)
2    1           /product     private          erofs
3    2           /product/app private          erofs
30   40          /product/app shared:30        overlay
40   2           /product     shared:40        overlay

Bug: 306124139
Test: adb-remount-test
Test: Verified with a remount submount scenario by editing the fstab.
Test: remount /system/bin then /system and verify the submount overlay
  (/system/bin) is moved under the parent mount overlay (/system).
Change-Id: I6cdbe8c52d826a6f03fd363c909ebb0005446b96
2023-10-23 07:57:28 +00:00
Jason Chiu b28db2a923 Merge "bootstat: add more bootreasons" into main 2023-10-23 02:36:37 +00:00
David Anderson 0bc02bfe71 fastboot: Fix flashing failure when a sparse image has an avb footer.
Trying to move the AVB footer on a sparse file will corrupt the sparse
format. Rather than implement this properly, for now, have the
copy_avb_footer() function gracefully fail by skipping the operation.

Bug: 304574023
Test: fastboot flash sparse image with avb footer
Change-Id: Ia6f0711789a04897ec266ad604a3d243c7184082
2023-10-20 11:20:53 -07:00
Treehugger Robot 7bcd7715f8 Merge "fs_mgr_overlayfs: Don't try to mount scratch if already mounted" into main 2023-10-20 17:36:00 +00:00
Treehugger Robot 68fbe13281 Merge "Don't overwrite persistent property files" into main 2023-10-20 17:19:58 +00:00
Jiyong Park c7230a1eb1 Don't overwrite persistent property files
This fixes a bug introduced by I81b6bd984aad8f7ddec93ce74f4543e4f71be508

In the original CL, setting a sysprop `next_boot.<name>` and then
rebooting the device could remove all the persistent properties stored
in /data/property/persistent_properties. It happened because the
function `WritePersistentProperty` is called with a properties set which
is initialized as an empty set and then added with the properties which
had the next_boot prefix.

As a result...

Before the boot:
* persist.a = 1
* next_boot.b = 2
* next_boot.persist.c = 3

After the reboot:
* b = 2
* persist.c = 3

persist.a gets lost.

This change fixes the issue by populating properties set from the memory
and then save it to the file.

Bug: 306062513
Bug: 300111812
Test: do the following.
$ adb root
$ adb shell setprop persist.a 1
$ adb shell setprop next_boot.b 1
$ adb shell setprop next_boot.persist.c 1

$ adb reboot
$ adb shell getprop persist.a
1    // was (none) before this change
$ adb shell getprop b
1
$ adb shell getprop persist.c
1

$ adb reboot
$ adb shell getprop persist.a
1    // was (none) before this change
$ adb shell getprop b
     // (none) because b isn't persisted. WAI.
$ adb shell getprop persist.c
1

Change-Id: I85d3777f9b32523b010e49b8ca53f4319dd2ce05
2023-10-20 21:20:50 +09:00
Yi-Yo Chiang f2e7170cba fs_mgr_overlayfs: Don't try to mount scratch if already mounted
This eliminates spammy logs.

Bug: 306124139
Test: adb remount -v && check the output logs
Change-Id: I3143f5865b5292ba581009179c7e7141afa8fda5
2023-10-20 10:19:52 +00:00
Jason Chiu d07ec30423 bootstat: add more bootreasons
add more bootreasons for new design.

Bug: 296637681
Test: trigger apc watchdog then "adb root; adb shell bootstat -p"
Change-Id: Ia78146ba9299eea45e7d89376179e01cbd37cca8
Signed-off-by: Jason Chiu <jasoncschiu@google.com>
2023-10-20 05:56:34 +00:00
Thiébaud Weksteen 3ef4da2f6a Merge "Remove write to /sys/fs/selinux/checkreqprot" into main 2023-10-20 00:54:53 +00:00
Christopher Ferris 2ae67e7119 Merge "Add ability to handle multiple intercepts per pid." into main 2023-10-19 16:43:42 +00:00
Christopher Ferris b92b52c071 Add ability to handle multiple intercepts per pid.
While doing this, refactor the intercept code to be easier to understand.

The primary use case for this is to perform a parallel stack dump (both Java and native) for specific ANRs.

Add tests for all of the different intercept conditions.

Modify the tests to display the error message from the intercept
response if there is an error.

Bug: 254634348
Test: All unit tests pass.
Test: Ran debuggerd on native and java processes.
Test: Created a bugreport without error.
Change-Id: Ic531ccee05b9a470748b815cf109e0076150a0b6
2023-10-19 15:13:59 +00:00
David Drysdale 9d6d134e44 Merge "Add tipc fuzzer for KeyMint/Rust" into main 2023-10-19 08:31:09 +00:00
Yi-Yo Chiang aba8c1ee36 Merge "fs_mgr_overlayfs: Setup remount scratch dir with encoded mountpoint name" into main 2023-10-19 04:25:51 +00:00
Thiébaud Weksteen b010393fe5 Remove write to /sys/fs/selinux/checkreqprot
This SELinux option has been deprecated in the kernel since v5.7. In
v6.4, commit a7e4676e made any write to this file a no-op.

Since v4.4, the default value of 0 is set by the kernel. Skip the
setting of this value since we only support kernel >= 4.14.

Test: presubmit
Change-Id: Ied5945532e10b156dc0d9996b2a41a99d04e750b
2023-10-19 11:39:42 +11:00
Steven Moreland 06e49c8c65 Merge "libvndksupport: log sphal namespace fallback" into main 2023-10-18 21:50:09 +00:00
Yi-Yo Chiang 9032b39ea5 fs_mgr_overlayfs: Setup remount scratch dir with encoded mountpoint name
Instead of using the basename(mounpoint) as partition scratch dir name,
which could lead to name collision, use the normalized and encoded
mountpoint as scratch dir name.

Bug: 243503963
Bug: 306124139
Test: adb-remount-test
Change-Id: I5a64f17bc3b88f0ce42bd0c5779c8dd23a07917f
2023-10-18 19:41:46 +08:00
Daniel Zheng a16e0ba64e Merge "V3 writer header" into main 2023-10-18 08:41:20 +00:00
Treehugger Robot e9741b25e5 Merge changes I9830baf7,I01da0a68,I05d0a6c7 into main
* changes:
  Added liblp_apis_fuzzer
  Added TestPartitionOpener_group
  Added liblp_builder_fuzzer and liblp_super_layout_builder_fuzzer
2023-10-18 04:58:25 +00:00
Daniel Zheng 7a9e007a01 Refactor off COW header v3
Cow reader will store header v3 in memory. ReadCowHeader can remain
mostly unchanged since the cow prefix is the same.
header->prefix.header_size will then tell us if we're reading a v3 or v2
header. v3 header is strictly a superset of v2 header so we can read a
v2 header into a v3 struct.

Added a test case to test_v3 where we write a header using v2_writer and
ensure CowReader is able to read it.

Test: cow_api_test
Change-Id: I142f18d871322930b7dc341c342c8b63a481341c
2023-10-17 16:45:06 -07:00
Daniel Zheng 91bab464ed Merge "Remove v2_writer lseek call" into main 2023-10-17 23:38:48 +00:00
Daniel Zheng e48b3235cb Merge "Remove duplicate parser v2 code" into main 2023-10-17 23:10:36 +00:00
Daniel Zheng f2270d2bb6 V3 writer header
V3 writer set up header. Anything related to cluster ops can be set to
zero, as V3 cow format will no longer support this. All footer related
code can also be dropped as the footer isn't being used.

Test: cow_api_test
Change-Id: I39ece8eaa0813c5991d53b5e0ff9271f27e0662a
2023-10-17 14:59:49 -07:00
Daniel Zheng f8c50df1c7 Remove v2_writer lseek call
Removing lseek call as writefully() should be sufficient in ensuring our
fd is moved to the correct spot

Test: cow_api_test
Change-Id: I404b192335ab1672ed61de426e17e63ab9d51ece
2023-10-17 14:59:49 -07:00
Daniel Zheng 94a732e026 Remove duplicate parser v2 code
Remove a duplicate check

Test: th
Change-Id: Ia9c3c8ff1ee524005f95aa57dc3d6da9641ce2e6
2023-10-17 14:59:49 -07:00
Daniel Zheng 2851af055e Merge "Add write_cow functionality" into main 2023-10-17 21:59:34 +00:00
Daniel Zheng d3445d98f0 Merge "Rename basic_v2_writer" into main 2023-10-17 20:40:24 +00:00
Daniel Zheng f0a28dae28 Add write_cow functionality
Adding gflags + some basic functionality to this binary. We should be
able to use this to write v2 or v3 cow, and then use inspect_cow to
inspect the contents

Test: write_cow
Change-Id: I44bf5a8c807c4c4759e54624c51e966f2ea18ce9
2023-10-17 12:47:19 -07:00
Daniel Zheng 06c086dd73 Rename basic_v2_writer
Gonna add to this binary options to write v2 + v3 cow, + some additional
configurations (for testing purposes). I think this binary can serve as
something to use in parallel with inspect_cow

Test: m write_cow
Change-Id: I93c703b246baa5b400044436a94b33a32e03ea68
2023-10-17 09:39:40 -07:00
Elliott Hughes 3aee719660 Merge "init: don't use magic numbers for RLIMIT_ constants." into main 2023-10-17 15:34:56 +00:00
Akilesh Kailash 57b34ae34c Merge "libsnapshot: Remove consistency check after merge" into main 2023-10-17 01:31:07 +00:00
Elliott Hughes 7a19bf8e0d init: don't use magic numbers for RLIMIT_ constants.
Also, why are we accepting the completely made-up "RLIM_AS" but not the
real "RLIMIT_AS" in .rc files?

Bug: http://b/293894041
Test: treehugger
Change-Id: I18b10b6dd77265a9a14b88bfdf1cc0b474800a94
2023-10-16 22:29:47 +00:00
Steven Moreland d9edd67b19 Merge changes from topic "libutils_binder_split" into main
* changes:
  libutils: split out libutils_binder
  libutils: remove unused 'CALLSTACKS'
2023-10-16 21:12:48 +00:00