Commit Graph

9037 Commits

Author SHA1 Message Date
Zhi Dou
9cd08c66a4 Merge "aconfig: update error message in modify_parsed_flags_based_on_mode" into main 2023-12-20 16:46:32 +00:00
Zhi Dou
e381a17cfc Merge "aconfig: update codegen templates" into main 2023-12-20 16:29:44 +00:00
Zhi Dou
ea48335042 aconfig: update error message in modify_parsed_flags_based_on_mode
This commit updates the error message in
modify_parsed_flags_based_on_mode, when there is no certain mode flags
in the corresponding library, and this change remove "." at the end of
the error message to conform to existing standard in this project.

Bug: 311152507
Test: atest aconfig.test
Change-Id: Ib120e7f7252981bbeb6ca1cf785da24f329507b4
2023-12-20 15:42:49 +00:00
Zhi Dou
7068151c6d Merge changes I74045709,I69b9a843 into main am: 34785f4261 am: c1daacbc8a am: 55b94e59db
Original change: https://android-review.googlesource.com/c/platform/build/+/2883369

Change-Id: I832ab79c603f84897a71984a077373691d03001b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-20 15:41:37 +00:00
Treehugger Robot
e1f89d9336 Merge "aconfig: add missing tests to TEST_MAPPING" into main 2023-12-20 15:35:33 +00:00
Ludovic Barman
d842f5d074 Merge "Remove unused use_protobuf3 flag" into main 2023-12-20 15:27:57 +00:00
Zhi Dou
34785f4261 Merge changes I74045709,I69b9a843 into main
* changes:
  aconfig: modify and filter flags before passing into java codegen
  aconfig: modify_parsed_flags_based_on_mode return Result
2023-12-20 14:00:05 +00:00
Mårten Kongstad
328d700b93 aconfig: remove support for --format=text
This CL is part of a larger effort to simplify maintenance by removing
format aliases: with the new --format option, clients of `aconfig dump`
can specify the format they need themselves.

This CL removes the last of the format aliases.

Bug: 317044914
Test: m
Change-Id: I09b706b9931a85a86c17be359902245b9b53d584
2023-12-20 13:41:07 +01:00
Mårten Kongstad
ce3a299f23 aconfig: remove support for --format=verbose
This CL is part of a larger effort to simplify maintenance by removing
format aliases: with the new --format option, clients of `aconfig dump`
can specify the format they need themselves.

Bug: 317044914
Test: m
Change-Id: I4db31eb3fe03c34118d61a0a1911e12f5049b77d
2023-12-20 13:39:58 +01:00
Mårten Kongstad
3d76d1afe0 aconfig: remove support for --format=bool
This CL is part of a larger effort to simplify maintenance by removing
format aliases: with the new --format option, clients of `aconfig dump`
can specify the format they need themselves.

Bug: 317044914
Test: m
Change-Id: I11efc5d7280402f503ddd05f2dc65bb15ffd8ac7
2023-12-20 13:39:58 +01:00
Mårten Kongstad
ce09eb2f31 aconfig: add missing tests to TEST_MAPPING
A few new aconfig tests have been created. Add them to TEST_MAPPING as
postsubmit tests.

Bug: N/A
Test: atest :all
Change-Id: Ifa4d764d26114367227c9c5622fb31b304a6972c
2023-12-20 10:32:50 +01:00
Håkan Kvist
b77972402e Detect downgrade by checking build time for all partitions
Checking ro.build.date.utc to detect a downgrade is not enough in the
case where several target files are merged, as timestamps can differ
for each partition.

The solution is to check the build timestamp for each partition and
ro.build.date.utc.

With this change ota generation will be aborted during creation
instead of rejected when installing on device.

This also fixes the --override_timestamp so it is possible to generate
a package where timestamps are reversed, as was added in:
3e6161a3b3.

Issue: 315913966
Test: Manual, confirm that ota generation is aborted when timestamp
  on post vendor partitions is newer than on pre.
  Ota created successfully with --override_timestamp parameter and
  installation successful
Test: atest --host releasetools_test
Change-Id: I275e67a3840f4ef2263381c253231068e72f47d2
2023-12-20 08:45:26 +01:00
Joe Onorato
0543464834 Add --dist-one flag to the benchmark script to make it copy a single set of build metrics to a dist dir.
Change-Id: Id392a33c42fed6c5014b2fd5dd69fa80fa0d9f0f
2023-12-20 05:00:04 +00:00
Joe Onorato
01277d4067 Add the rest of the CUJs to the new benchmark script.
Change-Id: Iabf8875f9d77a3d50a37f6ab1230bc9f473a15dd
2023-12-20 04:00:42 +00:00
Treehugger Robot
d519cf3846 Merge "aconfig: rename subcommand 'dump' -> 'dump-cache'" into main am: 45e9ce5d49 am: 9081cb0cbc am: 35a10cfab9
Original change: https://android-review.googlesource.com/c/platform/build/+/2882087

Change-Id: I8cddadc12c4340d210acde4936ad359e8db8f238
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 23:46:49 +00:00
Treehugger Robot
45e9ce5d49 Merge "aconfig: rename subcommand 'dump' -> 'dump-cache'" into main 2023-12-19 22:00:40 +00:00
Zhi Dou
9dd51e08a1 Merge "aconfig: move CodegenMode to codegen crate" into main am: 8351b78234 am: 0bd14fbe08 am: b05e1cc37a
Original change: https://android-review.googlesource.com/c/platform/build/+/2883367

Change-Id: Ice625bd3821c0a1846a61aeba5f8d9d1b211965e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 21:53:14 +00:00
Zhi Dou
533421c194 aconfig: update codegen templates
This change removes empty lines and spaces in generated code.

Bug: 311152507
Test: atest aconfig.test
Change-Id: Ib41e633323ffcce348299afa5a09bd0252db1bb9
2023-12-19 21:48:51 +00:00
David Srbecky
ed542a0f65 Merge "Use min_sdk_version 34 for com.android.configinfrastructure" into main 2023-12-19 21:21:26 +00:00
Mårten Kongstad
c91ebf8153 aconfig: rename subcommand 'dump' -> 'dump-cache'
Rename the 'dump' subcommand to 'dump-cache' for better symmetry with
'create-cache', and to prepare for a potentially upcoming
'dump-storage' subcommand.

Keep 'dump' as an alias for 'dump-cache' for backwards compatibility.

Bug: N/A
Test: m
Change-Id: I521ce507985e4cf450ee1b8517993b798f11430c
2023-12-19 22:06:24 +01:00
Zhi Dou
eeed7990de aconfig: modify and filter flags before passing into java codegen
Before this change java codegen filter flags for exported mode in the
template. This change move the filter process to commands as other
codegen. Thus the codegen code will only generate code based on the
passed in flags.

Bug: 311152507
Test: atest aconfig.test aconfig.test.java AconfigJavaHostTest
Change-Id: I74045709cde19e6c687c3eb0d94050ea40cf5042
2023-12-19 20:32:59 +00:00
Dennis Shen
704e824b41 Merge "aconfig: package.map file serialization" into main am: 4575b273fe am: b879ecf236 am: 8d122362cd
Original change: https://android-review.googlesource.com/c/platform/build/+/2869374

Change-Id: Ia94d38d8c4ebed94fc90c24ec4848010074a5fc6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 20:29:24 +00:00
Treehugger Robot
ec30566aee Merge "aconfig: add support for dump --filter='{fully_qualified_name}:...'" into main am: 8d1e52319e am: e4f5cc42a4 am: ffbee9f064
Original change: https://android-review.googlesource.com/c/platform/build/+/2882086

Change-Id: Iac8138ebd3dd66a9f12fb052a31f02ce0908c1b7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 20:29:11 +00:00
Zhi Dou
89a5d25df2 Merge "aconfig: add exported mode in rust codegen" into main am: 0f1b9da4d9 am: 3fcebe3bf1 am: 16c0970337
Original change: https://android-review.googlesource.com/c/platform/build/+/2881246

Change-Id: I1f895f328ee54322a70f1808143f20b8ada1758a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 20:28:58 +00:00
Zhi Dou
b026e66f8b Merge changes Iadea7ba2,Iaedb8a68,I511e05ab into main am: 123ec684da am: b8ed9f606c am: 33913ea6af
Original change: https://android-review.googlesource.com/c/platform/build/+/2879146

Change-Id: I9c3a83ba5aff26333976881a8405c2701de06935
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 20:28:41 +00:00
Zhi Dou
80040d2d2c aconfig: modify_parsed_flags_based_on_mode return Result
This commit changes modify_parsed_flags_based_on_mode to return Result
instead of vector. This change will have two consequences.
1. Error will be thrown if no flags fit into the current codegen mode
2. Error will be thrown if the flag declaration is empty

Bug: 311152507
Test: atest aconfig.test
Change-Id: I69b9a84312faed9f757bf3974b3cea49c5c5e285
2023-12-19 20:28:23 +00:00
Zhi Dou
8351b78234 Merge "aconfig: move CodegenMode to codegen crate" into main 2023-12-19 20:00:56 +00:00
Zhi Dou
dcfa0400c9 aconfig: move CodegenMode to codegen crate
This change moves CodegenMode to codegen crate.

Bug: 311152507
Test: ateset aconfig.test
Change-Id: I4f64cdbdc3d1b419412012560bfe03344b2b8faf
2023-12-19 18:59:26 +00:00
Dennis Shen
4575b273fe Merge "aconfig: package.map file serialization" into main 2023-12-19 18:57:24 +00:00
Treehugger Robot
8d1e52319e Merge "aconfig: add support for dump --filter='{fully_qualified_name}:...'" into main 2023-12-19 18:56:40 +00:00
Treehugger Robot
4a89bbf7b6 Merge "Rewrite the build system benchmarks to be much simpler and not require bazel." into main am: ba541c7e06 am: 802cd94fbb am: 581030e5b1
Original change: https://android-review.googlesource.com/c/platform/build/+/2881635

Change-Id: Ie797d83cdc4ebd5568261aed4aeab7cf82006ee5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-19 18:47:08 +00:00
Zhi Dou
0f1b9da4d9 Merge "aconfig: add exported mode in rust codegen" into main 2023-12-19 18:32:46 +00:00
Zhi Dou
123ec684da Merge changes Iadea7ba2,Iaedb8a68,I511e05ab into main
* changes:
  aconfig: add c/c++ codegen exported mode integration test
  aconfig: add new testing flag enabled_fixed_ro_exported
  aconfig: add exported mode in c/c++ codegen
2023-12-19 18:32:22 +00:00
Dennis Shen
adc7b732ca aconfig: package.map file serialization
For each container, there will be three storage files: package.map,
flag.map and flags.val. This change adds package.map creation.

package.map is a hash table in file that maps a package name to its
package id and package value offset. This file will be used by flag
storage client lib to locate the fixed offset of a flag in flag value
file. package.map provides the file byte offset to the start of all flag
values for this package. Together with flag value offset within its package
which will be provided by flag.map, we can locate a flag's value in the
value file.

The top level struct for this file is called "PackageTable". The struct
consists of three parts: (1) table header which includes the file
version and other metadata such as number of packages and etc. (2) table
buckets which is an array of u32, each bucket stores the package.map
file offset to the package table node. (3) package table node array.
each node stores package name, package id, package value offset and
offset to the next package table node.

The table uses fixed format serialization. All u32 are encoded using
little endian format as that is the Android format. All strings are UTF8
encoded. This is to ensure cross platform compatibility.

Bug: b/312243587
Test: atest aconfig.test
Change-Id: I1041405db42862573ec320c0e557948732c28eb8
2023-12-19 17:20:27 +00:00
David Srbecky
2cbeb436cd Use min_sdk_version 34 for com.android.configinfrastructure
This fixes crash in mainline_configinfrastructure_gce_boot_test,
and it is also needed before we bump the dex file format version.

Ignore-AOSP-First: Needs to be in topic with internal change
Bug: 317058003
Bug: 266950186
Test: device boots after installing configinfrastructure APEX on U
Change-Id: I0059903da4251985de80acbe99b7af1569b03809
2023-12-19 17:17:20 +00:00
Zhi Dou
e8a4ee7288 aconfig: add exported mode in rust codegen
This commit adds exported mode to rust codegen.

When the codegen mode is exported
1. only flags with exported: true will be generated
2. the generated getter should be in a read_write format and with
   default value as false, regardless the original permission and state
   of the flag

This commit adds integration test for rust codegen exported mode.

Bug: 316357104
Test: atest aconfig.test aconfig.test_mode.test.rust aconfig.exported_mode.test.rust
Change-Id: Ib7dae666e13eb8898289b06d42a4f89326e175c4
2023-12-19 16:58:06 +00:00
Zhi Dou
2909666ae4 aconfig: add c/c++ codegen exported mode integration test
This commit adds c/c++ codegen exported mode integration test

Bug: 316357680
Test: atest aconfig.test.cpp.exported_mode

Change-Id: Iadea7ba2459eb3e80c7ffc7dea83cc9c386798e5
2023-12-19 16:40:53 +00:00
Zhi Dou
b52465da31 aconfig: add new testing flag enabled_fixed_ro_exported
This commit adds a new testing flag enabled_fixed_ro_exported to test
the case of a exported and fixed_read_only flag.

Test: atest aconfig.test aconfig.test.java AconfigJavaHostTest
aconfig.test.cpp aconfig.test.cpp.test_mode aconfig.prod_mode.test.rust
Bug: 316357680

Change-Id: Iaedb8a6875166c6a6d24c7c3deee701a496b4964
2023-12-19 16:40:53 +00:00
Zhi Dou
c1d0a14b69 aconfig: add exported mode in c/c++ codegen
This commit adds exported mode to c/c++ codegen.

When the codegen mode is exported
1. only flags with exported: true will be generated
2. the generated getter should be in a read_write format and with
   default value as false, regardless the original permission and state
   of the flag

This change moves process parsed_flags funciton into codegen crate. The
process function is used to process parsed_flags based on the codegen
mode.

The template has also modified to keep readability.

Bug: 316357680
Test: atest aconfig.test aconfig.test.cpp aconfig.test.cpp.test_mode

Change-Id: I511e05ab93b07a04236055d956d1926f4ed89f36
2023-12-19 16:35:13 +00:00
Treehugger Robot
ba541c7e06 Merge "Rewrite the build system benchmarks to be much simpler and not require bazel." into main 2023-12-19 16:34:35 +00:00
Joe Onorato
88ede35828 Rewrite the build system benchmarks to be much simpler and not require bazel.
Test: ./benchmarks && ./format_benchmarks
Change-Id: I907421ed0c85e961d78342a3e58b2d4ab4aaf6ac
2023-12-19 15:39:56 +00:00
Mårten Kongstad
009a494572 aconfig: add support for dump --filter='{fully_qualified_name}:...'
Add support for filtering by fully qualified flag name. (This should
have been part of aosp/2878034.)

Bug: 315487153
Test: atest aconfig.test
Change-Id: I4cd209d6f6940dcaa138e8e0b8e580cea99c350f
2023-12-19 10:24:35 +01:00
Dennis Shen
f0b39b9e0d Merge "aconfig: update c/c++ codegen" into main am: 4dc569ae49 am: 03147c189d am: 897f4ef530
Original change: https://android-review.googlesource.com/c/platform/build/+/2878827

Change-Id: I914eb14f50e778e18085ab5f5c9df936abbf5400
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-18 15:25:51 +00:00
Dennis Shen
d555bbfa80 aconfig: update c/c++ codegen
1, Current codegen would still include an empty flag value cache even if
there are no read write flags. This is important as the flag value cache
is a std::vector. Thus adding this cache would automatically pull in
libc++ dependency which we should not.

2, There lacks of c/c++ codegen unit tests to lock down the generated
code when a flag package contains only read only flags. It should not
include server_configurable_flags header. And it should not include the
flag cache.

Bug: b/316614694
Test: atest aconfig.test
Change-Id: Iee4366672932ee507694f5fc73b526c66fcf0e9b
2023-12-18 13:43:22 +00:00
Ludovic Barman
8af1ac2a90 Remove unused use_protobuf3 flag
This is a No-op.
Protobuf3 is used regardless of this flag since https://android-review.git.corp.google.com/c/platform/build/soong/+/2817733

Test: m rust

Bug: 308790516
Change-Id: Ib84a01b76a2998249a836fb0278602a5229bd242
2023-12-16 10:56:26 +00:00
Treehugger Robot
123f1b02e9 Merge "Raise go.mod version of build/make/tools/rbcrun" into main am: 1a03031a99 am: b9b1ba6a58 am: a8f3534fca
Original change: https://android-review.googlesource.com/c/platform/build/+/2875798

Change-Id: I24c9b274637d1c5b01eaca08c9259941cf8c672c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-16 00:28:03 +00:00
Treehugger Robot
1a03031a99 Merge "Raise go.mod version of build/make/tools/rbcrun" into main 2023-12-15 22:52:32 +00:00
Mårten Kongstad
8774804533 Merge changes from topic "aconfig-dump-format-and-filter-args" into main am: 9c80abc3ec am: c910aa0e13 am: aee3d36e56
Original change: https://android-review.googlesource.com/c/platform/build/+/2878034

Change-Id: I53f53d9d1fe7d13d0a73c4097fa7cb0491e016a1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-15 18:11:05 +00:00
Treehugger Robot
fa68dcace6 Merge changes from topic "aconfig-codegen-ownership" into main am: ca2175d3af am: d095d94ff8 am: a4fbccf173
Original change: https://android-review.googlesource.com/c/platform/build/+/2877856

Change-Id: Ia47775743503e4c9fa68092de96aa6686b50fc1a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-15 17:04:47 +00:00
Mårten Kongstad
9c80abc3ec Merge changes from topic "aconfig-dump-format-and-filter-args" into main
* changes:
  aconfig: dump --filter: implement predicates
  aconfig: dump --filter: hook up command line args to dump.rs
  aconfig: support custom `dump format` specs
2023-12-15 16:35:35 +00:00