Commit graph

82014 commits

Author SHA1 Message Date
Hongguang Chen
32f6920404 Only restart media.tuner when it's running
Fix: 287520719
Test: Kill system_server on TV device w/o tuner. media.tuner is not restarted.
Change-Id: I13006f16746a12c33960feca1288aa17ef2ed9c9
2023-09-08 04:19:34 +00:00
Chun-Wei Wang
66b68dde92 Merge "Disallow fastboot to modify locked DSU" into main 2023-09-08 02:59:32 +00:00
Elliott Hughes
f00639393a Merge "Remove stray newline from err() call." into main 2023-09-07 20:39:36 +00:00
Julien Desprez
5b3f7c3283 Merge "Reland exporting create_snapshot" into main 2023-09-07 20:15:59 +00:00
Elliott Hughes
a8e259db66 Remove stray newline from err() call.
err() does this itself, and includes strerror() too.

Test: treehugger
Change-Id: I0e844f9cc3992e80a302b2f3ca1084b165582a9b
2023-09-07 19:30:31 +00:00
Julien Desprez
670f983f45 Reland exporting create_snapshot
Previous attempt: aosp/2743815
Disabled on windows & mac.

Test: presubmit, (previously failed build: https://android-build.googleplex.com/builds/abtd/run/L06100000962955289?referrer=email now passing)
Bug: 290951369
Change-Id: I3d8084c13d843ea5919e3b50a0513faf386ccfed
2023-09-07 17:05:50 +00:00
Daniel Zheng
7d8ac7f122 Merge "Adding testing for optimized flash super" into main 2023-09-07 16:12:30 +00:00
Marvin Ramin
b03378fe71 Merge "Revert "Export create_snapshot to sdk targets"" into main 2023-09-07 09:11:57 +00:00
Marvin Ramin
a4d34c5715 Revert "Export create_snapshot to sdk targets"
This reverts commit bf72b25a07.

Reason for revert: DroidMonitor: Culprit for b/299411079

Change-Id: I9d46abcbcc81d43fde23d4431b6757d3520d4b2c
2023-09-07 09:03:25 +00:00
Chun-Wei Wang
e72b3ad204 Disallow fastboot to modify locked DSU
This enhances the security requirement by only allowing
the owner app to change a locked DSU.

Bug: 277691885
Bug: 296985785
Test: 1. ensure device is OEM locked
      2. adb shell am start-activity \
         -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
         -a android.os.image.action.START_INSTALL \
         --el KEY_USERDATA_SIZE 2147483648 \
	 --es KEY_DSU_SLOT foo.lock
      3. adb reboot fastboot
      4. `fastboot gsi disable|wipe` should be blocked

Change-Id: I1a0cb8a074412468d16043ddf4101fbb76490115
2023-09-07 15:18:23 +08:00
Julien Desprez
2095008f32 Merge "Export create_snapshot to sdk targets" into main 2023-09-07 00:20:51 +00:00
Julien Desprez
bf72b25a07 Export create_snapshot to sdk targets
Similar to fastboot binaries. This will ease the
automation to use this tool

Test: presubmit
Bug: 290951369
Change-Id: I5c879acc7cdecbafebfa074ef76034403cb0cd72
2023-09-06 11:10:03 -07:00
Treehugger Robot
51e3b9cbca Merge "snapshotctl: Create and write pre-created snapshots" into main 2023-09-06 09:02:07 +00:00
Andrei Diea
15956777be Merge "debuggerd: add socksetopt to seccomp policy" into main 2023-09-06 07:11:37 +00:00
Akilesh Kailash
9ccb84a8ba snapshotctl: Create and write pre-created snapshots
Extend snapshotctl binary on the device
to create and apply pre-created snapshots.

snapshotctl map-snapshots <directory-where snapshot patches are present>

1: snapshotctl creates the block device based on the size of the
       snapshot patches.

2: snapshotctl will copy the data to the block device.

unmap and delete snapshots will cleanup.

No change in libsnapshot library except with minor refactoring.

This patch doesn't yet prepare the device to reboot from these
snapshots.

On Pixel 6 Pro, applying pre-created snapshots for all partitions
takes ~3 seconds wherein the delta between two builds are 24 hours apart.

Bug: 299011882

Test: snapshotctl map-snapshots /data/test-snapshots/
snapshotctl unmap-snapshots
snapshotctl delete-snapshots

Change-Id: I98a0fbd9cf7234c2188bad85cdd092ded8997710
Signed-off-by: Akilesh Kailash <akailash@google.com>
2023-09-06 06:02:51 +00:00
Akilesh Kailash
3c41230654 Merge "create_snapshot: Create snapshot patch comparing two partition images" into main 2023-09-06 06:02:39 +00:00
Thiébaud Weksteen
158a26da4a Merge "Revert "Use Apex sepolicy if it's available"" into main 2023-09-06 04:16:41 +00:00
Hsin-Yi Chen
c2b4411b43 Merge "Check the ABI of libutils for vendor and product only" into main 2023-09-06 02:43:32 +00:00
Thiébaud Weksteen
50f03fd58e Revert "Use Apex sepolicy if it's available"
This reverts commit baeece6d0c.

Test: boot aosp_cf_x86_64_phone-userdebug
Bug: 297794885
Change-Id: I0515bc30eba42589c407deb587684b4da011aead
2023-09-06 10:52:49 +10:00
Akilesh Kailash
214d62e3f7 create_snapshot: Create snapshot patch comparing two partition images
This is a host based tool wherein it compares two Android images and generates snapshot patches which are similar to Android OTA format.

There are few advantages:

1: All the computation of snapshot logic is pushed onto the host.
2: Each partition can have different compression algorithm.
3: All the libsnapshot_cow changes can be tested very quickly.

Here is the test run. This compares two builds which are 24 hours apart.

```

create_snapshot --source=$ANDROID_PRODUCT_OUT/system.img --target=./images/system.img --compression="zstd" &
create_snapshot --source=$ANDROID_PRODUCT_OUT/product.img --target=./images/product.img --compression="lz4" &
create_snapshot --source=$ANDROID_PRODUCT_OUT/vendor.img --target=./images/vendor.img &
create_snapshot --source=$ANDROID_PRODUCT_OUT/system_ext.img --target=./images/system_ext.img --compression="gz" &
create_snapshot --source=$ANDROID_PRODUCT_OUT/vendor_dlkm.img --target=./images/vendor_dlkm.img &

echo "Waiting for snapshot patch creation"
wait $(jobs -p)
echo "Snapshot patch creation completed"
```

========================================
Waiting for snapshot patch creation
Snapshot patch: vendor_dlkm.patch created successfully
Snapshot patch: vendor.patch created successfully
Snapshot patch: system_ext.patch created successfully
Snapshot patch: product.patch created successfully
Snapshot patch: system.patch created successfully
Snapshot patch creation completed

real	0m3.848s
user	0m14.239s
sys	0m8.045s
========================================

It takes ~4 seconds to generate the snapshot patches on the host. Snapshot patches are named as <partition-name>.patch.

Bug: 299011882
Test: create_snapshot between two builds as mentioned above.
Change-Id: Ic87dd3349a866b5626fa03f1f879f417a8116cc2
Signed-off-by: Akilesh Kailash <akailash@google.com>
2023-09-05 15:42:11 -07:00
Chun-Wei Wang
62051237a2 Merge "Add a fastboot command to show GSI status" into main 2023-09-05 22:18:40 +00:00
Andrei Diea
e3bda36e0b debuggerd: add socksetopt to seccomp policy
aosp/2734054 added socket timeouts for nonblocking liblog ops.
seccomp policy was not updated so tests failed when unallowed
socksetopt syscall was made.

Bug: 298420226
Test: atest debuggerd_test

Change-Id: Iace232ec8b94e5d316d344abc5d866fe314607e0
Signed-off-by: Andrei Diea <adiea@google.com>
2023-09-05 19:29:13 +00:00
Chun-Wei Wang
671a2a551a Add a fastboot command to show GSI status
The command will be used by RMA tool to skip
device wiping when it is already in GSI mode.

This change also makes it easier to add more
gsi commands in the future without needing to
update the host side tool (fastboot).

Bug: 298130522
Bug: 298138572
Test: 1. reboot into fastboot mode
      2. fastboot gsi status
Change-Id: Ic81f89a93b854f9ec70aebe2d209bfd1f98e3645
2023-09-05 23:31:01 +08:00
Dmitrii Merkurev
f667b6d8ba Merge "fastboot: get rid of manual transport memory management" into main 2023-09-05 14:04:54 +00:00
Thiébaud Weksteen
9fb6b49131 Merge "Remove SeamendcHostTest from TEST_MAPPING" into main 2023-09-05 05:10:01 +00:00
Hsin-Yi Chen
e474f21a45 Check the ABI of libutils for vendor and product only
It is not necessary to compare the dumps with the library installed in
system partition.

Test: m out/target/product/generic_x86_64/lsdump_paths.txt
Bug: 280008249
Change-Id: I8fc39ad17d37cd43bf1d77ba23dde55d05dadce1
2023-09-04 03:38:15 +00:00
Dmitrii Merkurev
0b627d92c4 fastboot: get rid of manual transport memory management
Existing code has transport memory leaks. Use smart pointers
for transport to get rid of those cases and manual memory
management

Test: atest fastboot_test
Test: manually checked transport isn't leaking anymore
Bug: 296629925
Change-Id: Ifdf162d5084f61ae5c1d2b56a897464af58100da
Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
2023-09-03 17:30:46 +01:00
Treehugger Robot
a5c51c9cee Merge "Ignore 16K kernel modules when running on 4K kernel" into main 2023-09-01 21:27:25 +00:00
Kelvin Zhang
dba385edda Ignore 16K kernel modules when running on 4K kernel
Test: th
Bug: 293313353
Change-Id: I02ea01c8e67b9ded164c7492eea3be0aead75de1
2023-09-01 09:55:35 -07:00
Thiébaud Weksteen
18ff56d8d7 Remove SeamendcHostTest from TEST_MAPPING
Bug: 297794885
Test: TH
Change-Id: I49c6caa575ccd570085de15ddf51ea9a71abe90f
2023-08-31 14:22:48 +10:00
Daniel Zheng
1fff690c18 Adding testing for optimized flash super
Adding test cases for correct formation of optimized flash super task.
We are adding an explicit pattern match for this task to be correctly
formed. Changing Optimized flash task to only remove the reboot to
userspace as a user might want to reboot back to bootloader after
flashing. We also need to change a couple functions to take a
IFastbootDriver to mock up the initialization path.

Test: fastboot_test
Bug: 297085098
Change-Id: Ic5c63bd4057ca6d64647134e5ce33fef12077fdb
2023-08-30 12:59:26 -07:00
Daniel Zheng
09a61fad87 Merge "Fixing optimization logic" into main 2023-08-30 17:46:44 +00:00
Daniel Zheng
1ef66b70ff Fixing optimization logic
Adding a hard pattern check for optimized task formation. To keep
behavior consistent, we will remove the old initialization path and add
resize tasks after attempting optimization.

Test: fastboot_test
Bug: 297085098
Change-Id: Ie0e656af9be7abdd130290fe547ffbf385ce75d6
2023-08-30 09:39:30 -07:00
David Anderson
5b91ae9f4e Merge "snapuserd: Add snapuserd_test to presubmit and VTS." into main 2023-08-29 22:10:27 +00:00
Treehugger Robot
5aa25bf3ae Merge "Make simg2img host-only" into main 2023-08-28 17:44:24 +00:00
Cole Faust
81c4e225bf Make simg2img host-only
This is supposed to be a host tool, but was being installed on
cuttlefish devices.

Bug: 205632228
Test: Presubmits
Change-Id: I9eb1ae1a5c171253617fa12283e2ec651afb5539
2023-08-28 09:53:30 -07:00
Treehugger Robot
18560efc30 Merge "Migrate from android::String isEmpty to empty" into main 2023-08-25 17:07:42 +00:00
David Anderson
c718295a58 Merge "snapuserd: Fix race condition in MergeWorker::WaitForMergeBegin." into main 2023-08-25 16:09:35 +00:00
Snehal Koukuntla
c174f14617 Merge "Add UUIDs to profraw filenames" into main 2023-08-25 14:21:23 +00:00
Treehugger Robot
89b4f96d50 Merge "Increase the number of service supplementary group" into main 2023-08-25 09:37:25 +00:00
Yinchu Chen
3343ca2380 Increase the number of service supplementary group
OEM can add self-owned groups, but the system init cannot support if the group numbers are over than 12, relax some restrictions as appropriate.

Bug: b/296826987

Signed-off-by: Haichao Li <liuhc3@motorola.com>
Change-Id: I231d9f6c82e93c08bc97ca32df70e5b28760acbc
2023-08-25 04:24:48 +00:00
Tomasz Wasilczyk
9578c774a9 Merge "Implement String8|16::empty and String16::length" into main 2023-08-24 18:31:56 +00:00
Tomasz Wasilczyk
92ad0d32c0 Merge "Lose convertToResPath to aapt." into main 2023-08-24 16:46:49 +00:00
Treehugger Robot
c728c39121 Merge "Update bug component from Android Systems to OTA client" into main 2023-08-24 11:13:12 +00:00
Elliott Hughes
1d98fe0d39 Lose convertToResPath to aapt.
aapt (not aapt2) is the only user.

Test: treehugger
Change-Id: Ie69f84f4f805c69f838e345b44755a316b9f9b06
2023-08-24 04:33:05 +00:00
Treehugger Robot
47fc3df9a0 Merge "Drop String::empty()" into main 2023-08-24 03:58:55 +00:00
Daniel Zheng
f278b54731 Merge "Add unit test for cow compressor performance" into main 2023-08-23 19:45:55 +00:00
Daniel Zheng
beeeef7b34 Merge "Add documentation to README" into main 2023-08-23 19:45:27 +00:00
Treehugger Robot
b5f51166e7 Merge "Fix one liner" into main 2023-08-23 18:09:32 +00:00
Daniel Zheng
eb70926ad6 Add unit test for cow compressor performance
Adding test to measure performance differences between cow compression
algorithms + levels. This gives us an easy way to test performance
between the tunables without having to run an OTA every time. Ultimately we want this to be separate from
cow_api_test so it would be nice to have this be it's own binary. Can
add some tests for decompression + compressing from a part of an actual
img file too.

Test: m cow_benchmark
Change-Id: Iba92ae3c0b2ad4ff6f842556b701b223d7d37823
2023-08-23 10:20:15 -07:00