Commit graph

82102 commits

Author SHA1 Message Date
Daniel Zheng
301acae35b Add copyright to libsnapshot/tools
Adding copyright to cow_benchmark + basic_v2_cow_writer

Test: th
Change-Id: Ic6c32b68bbeaa3c0c365f146ef4342356e13706a
2023-09-26 16:51:53 -07:00
Daniel Zheng
d7c5511095 Add binary to write basic COW
Adding small binary to write a simple COW for version 2. We will then
use updated reader to make sure we can read this version 2 cow. Think it
would be a good idea to keep the binary here to see how exactly we
generated the cow (useful for debugging and if we ever need to recreate
this cow)

Test: m basic_v2_cow_writer
Change-Id: I28435025b7a8280fc5c4574876cc9110b391cb0e
2023-09-26 16:51:48 -07:00
Elliott Hughes
8d983ee878 Merge "Stop duplicating <linux/capabilities.h>." into main 2023-09-26 17:59:53 +00:00
Elliott Hughes
94ccdc06d0 Stop duplicating <linux/capabilities.h>.
This doesn't help the person who wants CAP_BPF, but we can fix that
better by adding it to our stale glibc (and our future switch to musl
will mean we'll never have similar problems again).

I think this just dates from when we still supported building the OS on
darwin, but those days are long gone, and I think this hack can be put
to rest now...

Test: treehugger
Change-Id: I3c2e56c68a5b00c1ad0aed422c6ce60886063f50
2023-09-25 20:33:02 +00:00
Daniel Zheng
d774be9b05 Merge "is_retrofit_device to work in bootloader" into main 2023-09-25 18:21:36 +00:00
Thiébaud Weksteen
911d309224 Merge "Skip /metadata/sepolicy creation" into main 2023-09-25 07:40:02 +00:00
Thiébaud Weksteen
a6b5f94687 Skip /metadata/sepolicy creation
Bug: 297794885
Test: presubmit
Change-Id: I93f94f319d0f86e1cad6f2a4912b5df3aae09cec
2023-09-25 16:07:47 +10:00
Treehugger Robot
a2cd2202f0 Merge "Create_cow: Hash of target blocks should not be stored." into main 2023-09-24 00:46:55 +00:00
Treehugger Robot
6d01651ab9 Merge "Do not check with vendor vndk version" into main 2023-09-23 13:06:15 +00:00
Kiyoung Kim
45d88d496e Do not check with vendor vndk version
Current libcutils checks if memfd is supported with vendor VNDK version,
but this is no longer valid if VNDK is deprecated. As we can assume that
any vendor using this code is supported as long as it is treblelized,
simplify logic to check if memfd is valid to vendor only with
'ro.treble.enabled' property.

Bug: 290159430
Test: Cuttlefish with VNDK deprecated worked without error from
libcutils

Change-Id: I351f0798da99cb4827bc3e424b63a2eaee5c7461
2023-09-23 21:06:57 +09:00
Akilesh Kailash
810274071d Create_cow: Hash of target blocks should not be stored.
Target block hash was in-correctly getting added to map thereby
overriding the source-hash.

Bug: 299011882
Test: Flash Pixel 6 Pro from A->B and from B->A
Change-Id: Ib3887c29cd6b8f2abd50e932273a5cfc2a096bd5
Signed-off-by: Akilesh Kailash <akailash@google.com>
2023-09-23 01:07:47 -07:00
Elliott Hughes
d091aa44b3 Merge "Remove Windows workaround in file not built for Windows." into main 2023-09-22 22:56:38 +00:00
Treehugger Robot
73fcd754ee Merge "Only skip _16k/_64k kernel modules dirs on 4K builds" into main 2023-09-22 21:55:11 +00:00
Daniel Zheng
5cbcdfae4e is_retrofit_device to work in bootloader
Changing is_retrofit_device() to work in bootloader. Previously flashall
flow was to boot into fastbootd and then  make a call to get
"super-image-name", however this does not work in bootloader. Since all
tasks are generated ahead of time, this old check will now fail and we
will fail to add the correct delete tasks in collectTasks(). This change
does make it so that is_retrofit check only works during fastboot
flashall + fastboot update (since this function is only used here,
nothing is currently affected).

To determine if a device is retrofit, it must satisfy two conditions -> Has
dynamic partitions && does not contain a super partition. The check for
if source has super_empty.img is sufficient for determining if a device
has dynamic partitions and if any single partition has
LP_PARTITION_ATTR_SLOT_SUFFIXED it is determined to be retrofit

Test: logs from fastboot update on sargo device confirms this check
returns true. Fastboot update on sargo
Bug: 300287332

Change-Id: Iadf5c56de51993a79307c60e45d6cc4988436f23
2023-09-22 13:22:57 -07:00
Daniel Zheng
c4463ebee6 Merge "Removing extra includes" into main 2023-09-22 19:51:59 +00:00
Daniel Zheng
3d0d8e4b8f Merge changes I343272f4,I5481893a into main
* changes:
  Removing headers + using string
  Removing double delete from flashall
2023-09-22 19:51:25 +00:00
Ryan Prichard
532a608f58 Merge changes I7790dde8,I065907a5,Id2e82024 into main
* changes:
  Add missing <assert.h> include
  Add missing <functional> and <vector> includes
  snapuserd_test: don't discard result of std::async
2023-09-22 19:42:45 +00:00
Treehugger Robot
59a2cde894 Merge "Remove unused files." into main 2023-09-22 18:01:48 +00:00
Treehugger Robot
46c366b0ed Merge "Don't duplicate uapi ioprio constants." into main 2023-09-22 18:00:19 +00:00
Treehugger Robot
d5b09b4b97 Merge "Remove redefinition of uapi constant added in R." into main 2023-09-22 17:58:03 +00:00
Kelvin Zhang
b4987345ff Only skip _16k/_64k kernel modules dirs on 4K builds
The initramfs.img from kernel builds do not store kernel modules under
_16k directory. Currently, init is programmed to only load kernel
modules from _16k dir if running on 16K page size kernel. Relax this
restriction so that booting on custom 16K kernel would work without
going through platform rebuild.

Test: th
Bug: 293313353
Bug: 300184677

Change-Id: I9ee3c74066ad9ec5127f1e8662f7c1273445994c
2023-09-22 09:14:43 -07:00
Elliott Hughes
f6a84e4462 Remove Windows workaround in file not built for Windows.
Test: treehugger
Change-Id: I311cfbc9245cbe90ed6fc4fa379ff5b9abdf21e7
2023-09-22 15:44:42 +00:00
Elliott Hughes
3369fe9cbb Don't duplicate uapi ioprio constants.
This code is only used in init and vold, so I suspect all the
conditional compilation could be moved into the .bp file instead, but
I'm just trying to clean up duplication today...

Test: treehugger
Change-Id: I97013f5de41e109a0cc377400c396145aed569db
2023-09-22 14:51:26 +00:00
Elliott Hughes
1faedd02a3 Remove redefinition of uapi constant added in R.
Test: treehugger
Change-Id: If0ef9c36b2f54eb59d222dedc6bf575d46c9db1d
2023-09-22 14:45:20 +00:00
Elliott Hughes
7107c582fa Remove unused files.
Test: treehugger
Change-Id: I7ea71395b87eb12044fb3e7d19c171149f4cc90b
2023-09-22 14:33:47 +00:00
Ryan Prichard
87c90e7b65 Add missing <assert.h> include
Bug: 175635923
Test: m MODULES-IN-system-core-trusty
Change-Id: I7790dde8eba948cf95cb14dd2b436c3f6f88765a
2023-09-21 19:44:47 -07:00
Ryan Prichard
999efbef09 Add missing <functional> and <vector> includes
Bug: 175635923
Test: m MODULES-IN-system-core-libutils
Change-Id: I065907a58a88723ae512f155dfde2d2fcb3fc322
2023-09-21 17:52:29 -07:00
Ryan Prichard
93377e99e2 snapuserd_test: don't discard result of std::async
std::async returns a std::future whose destructor blocks until the
async function has completed, which defeats the purpose of using
std::async. The future needs to be kept alive to allow the function to
run concurrently.

Starting in C++20, std::async marked [[nodiscard]] to help catch this
misuse. Upgrading libc++ adds the [[nodiscard]] attribute to
std::async, so fixing this bug is necessary to keep the code compiling
after libc++ is updated.

Bug: 175635923
Test: treehugger
Test: m && m snapuserd_test
Change-Id: Id2e820248c2b6111aa843fb709e08a2c19677066
2023-09-21 17:52:18 -07:00
Treehugger Robot
9c562cf82b Merge "Delete unused DATA_MNT_POINT macro" into main 2023-09-21 17:33:28 +00:00
Andrew Scull
f06e218e82 Delete unused DATA_MNT_POINT macro
The macros isn't used anywhere but was a distraction when tracking down
/data mounting behaviour.

Test: build
Change-Id: Ie23574326cbebd7f515c8409e1dcb91a00cafc6f
2023-09-21 14:50:55 +00:00
Treehugger Robot
fad3b2fbad Merge "Remove unnecessary keyword setting" into main 2023-09-20 22:25:07 +00:00
Dan Shi
43c87b3291 Remove unnecessary keyword setting
These 2 tests can run on aosp cf.

Bug: 300519349
Test: atest presubmit check
Change-Id: I8ee41c2abe464be2c2ee4537de5edf86308183aa
2023-09-20 13:26:18 -07:00
Dan Shi
19224ed589 Merge "Move CF only tests to CF test mapping suite" into main 2023-09-20 20:20:35 +00:00
Dan Shi
a95ed0aeac Move CF only tests to CF test mapping suite
This change doesn't modify presubmit coverage, the tests will still
run in the lab as test mapping suite, just on a different ATP test
config that dedicated to tests can only run on CF (not aosp_cf), on
git_main branch.

Bug: 300519349
Test: atest presubmit check
Change-Id: Ib179c034dc58f8d8a763d374af0d103baf51343b
2023-09-20 18:27:43 +00:00
Tomasz Wasilczyk
24636e4e30 Merge "Don't depend on String8 cast to C string" into main 2023-09-20 17:02:45 +00:00
Elliott Hughes
cc8d909ccb Merge "arm64: update the "minimum maximum" comment." into main 2023-09-20 15:55:18 +00:00
Tomasz Wasilczyk
2b1a0599c4 Don't depend on String8 cast to C string
Bug: 295394788
Test: m checkbuild
Change-Id: I5b86ae56250d409a23ab3f2bc72b725bcf6ab23e
2023-09-20 15:11:54 +00:00
Daniel Zheng
78fb21c0f8 Removing extra includes
Removing includes we aren't using

Test: th
Change-Id: Ia5d00436f34138789e43008ecd73d65cbad84bde
2023-09-19 22:23:11 -07:00
Daniel Zheng
8aba6d022c Removing headers + using string
Removing some unused headers and swapping out std::string_literal to
strings

Test: fastboot flashall
Change-Id: I343272f4a678398a0446660a639c525e42e25891
2023-09-19 17:01:23 -07:00
Daniel Zheng
2e6aee5316 Removing double delete from flashall
From aosp/2475604 the functionality of deleting retrofit partitions
wasn't added back correctly. aosp/837186 adds this logic in. We should
only have one delete that exists if the image is secondary and is
dynamic.

Unfortunately don't have a retrofit device to test on, but from an eye
test this logic seems to match the old functionality and should be
working

Test: m fastboot
Change-Id: I5481893ab1638541d21813efe1c4aab5219e1dcd
2023-09-19 16:17:52 -07:00
Elliott Hughes
d741c23288 Merge "riscv64: minor ASLR bits changes." into main 2023-09-19 21:23:00 +00:00
Elliott Hughes
6bc53ff7dd arm64: update the "minimum maximum" comment.
Noticed while looking at riscv64. Looks like a bug, but actually nothing
we can do about it now or for the foreseeable future.

Bug: https://github.com/google/android-riscv64/issues/45
Test: treehugger
Change-Id: I2be81b2fd7095df40958a1f641d7b89cf5a8e41d
2023-09-19 20:08:41 +00:00
Elliott Hughes
b60befa806 riscv64: minor ASLR bits changes.
Improve the comment, and increase the "minimum maximum" to 24 --- we
only support 64-bit, and 64-bit never has less than 24 bits.

Bug: https://github.com/google/android-riscv64/issues/1
Test: treehugger
Change-Id: I478c7649aa19258352c908a449cabe12da94952c
2023-09-19 18:47:18 +00:00
Daniel Zheng
1b52ac6efe Merge "Updating comments on cow layout" into main 2023-09-19 16:32:28 +00:00
Treehugger Robot
53a71f6b18 Merge "Add static_assert to check sizeof off_t" into main 2023-09-18 22:39:48 +00:00
Daniel Zheng
a10bfe1d13 Merge "Add CowOperationV2" into main 2023-09-18 21:30:29 +00:00
Akilesh Kailash
6ea36bd1e4 Add static_assert to check sizeof off_t
Add compile time flags which got dropped during refactoring.

Bug: 300178204
Test: Build on 32-bit userspace
Change-Id: I16be0973cb2cb2e174ff98c8b10fde27f997e4ab
Signed-off-by: Akilesh Kailash <akailash@google.com>
2023-09-18 14:09:27 -07:00
Daniel Zheng
cc44c37468 Updating comments on cow layout
Updating comments to match current format. Scratch space exists in
between header and operation

Test: th
Change-Id: I2f86e9dc4078f03370cdc38918136c894c6ca484
2023-09-18 14:02:17 -07:00
Daniel Zheng
d2ad53cf81 Add CowOperationV2
this is going to replace the current version of CowOperation and will
work with writer v2 and parser v2. This will be the on disk format of
the cow, while CowOperation will be updated to be the in memory format
of 15 bytes (implicitly will be the v3 version).

Test: m libsnapshot

Test: m libsnapshot
Change-Id: Ibd00ef014a9fc11cdf2bad97c52462db8eef9502
2023-09-18 12:47:59 -07:00
Akilesh Kailash
81400915ef Merge "Compile with -D_FILE_OFFSET_BITS to support 32-bit userspace" into main 2023-09-17 19:01:45 +00:00