Commit Graph

61 Commits

Author SHA1 Message Date
Treehugger Robot
addcc154ad Merge "add hide and unsupportedadppusage annotation to read library" into main am: 33e9bc04c2
Original change: https://android-review.googlesource.com/c/platform/build/+/3194521

Change-Id: Ie73f9ee1c657ab4f6dba44d2d3dfa4f6c6f47867
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-25 18:56:21 +00:00
Zhi Dou
fa988f0a34 add hide and unsupportedadppusage annotation to read library
Test: presubmit
Bug: 349874828
Change-Id: I5b808d87fe7df2ba8a85c8c75ee7baa66ff22d6b
2024-07-25 16:56:48 +00:00
Zhi Dou
9cb3450ee4 Merge "make java reader library availiable for mainline" into main am: 8a9a52d140
Original change: https://android-review.googlesource.com/c/platform/build/+/3185681

Change-Id: I924cb6bdb8649f512dae9be8d33104c89f748ed2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-22 14:20:59 +00:00
Zhi Dou
b88c3e638b make java reader library availiable for mainline
Test: atest aconfig.test.java
Bug: 349874828
Change-Id: I2cabfa9665e5c474ba64f5969e96e9dae2fdcb9b
2024-07-19 21:01:27 +00:00
Zhi Dou
e944856ba0 Merge "add storage java reader" into main am: 6f9f7ccfe3
Original change: https://android-review.googlesource.com/c/platform/build/+/3168961

Change-Id: If1ee86dca35afb6fcc12e8c83b1934582a28176b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-12 14:06:23 +00:00
Zhi Dou
621323cfda add storage java reader
Test: atest aconfig_storage_read_api.test.java
Bug: 349874828
Change-Id: I4b1d5ccf4d48622a88712b6e8940ffe18e980927
2024-07-12 13:34:12 +00:00
Priyanka Advani
c92444463b Merge "Revert "add storage java internal reader"" into main am: bb9f03efbe
Original change: https://android-review.googlesource.com/c/platform/build/+/3168856

Change-Id: If3cf11fa94bcfeb70fa3c30442b0ba72406be48f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-11 20:36:14 +00:00
Priyanka Advani
16c8d3c47a Revert "add storage java internal reader"
This reverts commit 70b9ac0ddd.

Reason for revert: Droidmonitor created revert due to build breakages in b/352582602.

Change-Id: I8a8e38ccf3e715e9b4746ac333aed0cc13d11969
2024-07-11 19:59:24 +00:00
Zhi Dou
f9c1b73113 Merge "add storage java internal reader" into main am: 657d68aee4
Original change: https://android-review.googlesource.com/c/platform/build/+/3168136

Change-Id: I742f761e6722b49c0278960a8b6705cc8becf75e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-11 19:24:45 +00:00
Zhi Dou
70b9ac0ddd add storage java internal reader
Test: n/a
Bug: n/a
Change-Id: I852ab4080bee9240549dc4be0c09dbe1f72d06b0
2024-07-11 18:50:46 +00:00
Ivan Lozano
5a54b5cb5a Merge "Replace static_rlibs usage." into main am: 4ed15ef2fb
Original change: https://android-review.googlesource.com/c/platform/build/+/3146240

Change-Id: I2482648e776bfb3c88f4a74814cf7b19d7039d2f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-06-28 15:05:37 +00:00
Ivan Lozano
b6288a526e Replace static_rlibs usage.
static_rlibs has been folded into the normal static_libs and
whole_static_libs properties.

Bug: 254469782
Bug: 349129702
Test: m
Change-Id: I89d260f78947c3e0fe65148177c7f98d0d0c504d
2024-06-26 01:36:26 +00:00
Treehugger Robot
5eb148bea7 Merge "Switch to static_rlibs" into main am: f8b7517b02
Original change: https://android-review.googlesource.com/c/platform/build/+/3145804

Change-Id: If623a566fec1414dafb055ad918c11023f3ab9a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-06-25 22:00:13 +00:00
Treehugger Robot
f8b7517b02 Merge "Switch to static_rlibs" into main 2024-06-25 21:57:39 +00:00
Ted Bauer
b64fdac839 Switch to static_rlibs
When a dependency takes multiple rust_ffi_static dependencies in its
static_libs, their symbols collide. Switch to static_rlibs, which
resolves the collisions. See b/349129702 for context.

Bug: 349129702
Test: m
Change-Id: I6cd2fe92629c7d44e22d113795b340e06175f008
2024-06-25 17:21:40 +00:00
Xin Li
1a409255f2 Merge 24Q3 (ab/11976889) to aosp-main-future
Bug: 347831320
Merged-In: I23b7f7e8a1b43bbd5f49012c95a130d91098f92a
Change-Id: I72f3cb19133b7bd0e54a0ff7ca64cf70df2da057
2024-06-18 14:21:23 -07:00
Ted Bauer
6e11172c6b Add defaults target for shared linking
Add a defaults target that all targets linking to aconfig codegen with
the new storage API dependencies will need. The target takes the new
storage APIs conditionally behind a flag, so we can disable it easily.

In this topic, we add it to a single target to see that it builds and
adds the dependency. In follow-on CLs we can add it to the rest of the
targets.

Test: m audiopolicy_tests
Bug: 347701310
Change-Id: I67643205b283301f72c5466401060212b637388f
Merged-In: I67643205b283301f72c5466401060212b637388f
2024-06-17 21:16:51 +00:00
Ted Bauer
e8e66b8aa8 Read from new storage in Rust R/W flags
Bug: 346991641
Test: m
Change-Id: I23b7f7e8a1b43bbd5f49012c95a130d91098f92a
Ignore-AOSP-First: internal storage migration, this code will be deleted
2024-06-14 17:20:27 +00:00
Dennis Shen
a8e28dfe87 aconfig: update java read api for performance
With this update, cold flag read (first flag in a namespace) is now 6x
faster compared to device config.

Bug: b/321077378
Test: atest -c
Change-Id: I52ffd897fdd487b2a44d07be50f2975f0ef5b9b3
2024-06-04 17:24:53 +00:00
Dennis Shen
e5dd91bca7 aconfig: create first implementation of aconfig storage java read api
1, See AconfigStorageReadAPI.java to see java APIs to map storage files
and read flag values. It is using fast native annotation, in theory it
should be faster than regular JNI without much of the overhead.

2, The java api calls into Rust wrapper in srcs/lib.rs, note that
MappedByteBuffer is not copied during JNI. In the rust side
implementation we get the underlying raw pointer and buffer size and
reconstruct a rust slice. However, at current implmentation, the string
input such as package name and flag name are most likely copied. They
are converted from JStirng to JavaStr first without copy, then the
into() call to convert it to Rust string. We could potentially optimize
it to without copy.

3, Add an android_test target to lock down the API behaviors.

Bug: b/321077378
Test: atest -c
Change-Id: I8915fe70e8eb341be563c70f85e19e644e8aa6be
2024-05-30 00:32:42 +00:00
Dennis Shen
a0624828b2 aconfig: remove read api lib's dependency on libbase and liblog
Bug: b/321077378
Test: atest -c
Change-Id: I0bc7780de2123021e1cc9f7a29ca3f7dabebcd40
2024-05-23 12:30:31 +00:00
Dennis Shen
7b09e95c89 Merge "aconfig: update storage read api" into main 2024-05-22 20:52:40 +00:00
Dennis Shen
70208daaaa aconfig: update storage read api
Bug: b/321077378
Test atest -c

Change-Id: I53fe6c34466f32d5283d0bdbf4736c8ecd20ef99
2024-05-22 19:25:35 +00:00
Dennis Shen
5590478580 aconfig: update storage read api
Update storage read api to not find storage file location from a pb
file, instead directly read from /metadata copy. Previously for
package.map and flag.map, we are reading from the respective RO
partition. Now we are reading from /metadata/maps dir. This has a few
advantages:

1, early flag availability, since /metadata can be mounted much earlier
than mainline modules, so it would make mainline flags availabile even
before mainline modules are mounted.

2, we no longer need to read from a pb file to find where package.map
and flag.map are. Thus the read api can be further simplified and
downsized. With this change, we are able to shrink the cc flag read api
lib size from 171k to 120k.

Bug: b/321077378
Test atest -c

Change-Id: Ic9086fe4c49c139a4d1c66a8d472023a88c9dd17
2024-05-22 19:25:17 +00:00
Dennis Shen
d772eb3edc aconfig: make MutableMappedStorageFiles inherit MappedStoargeFiles
Bug: b/321077378
Test: atest -c
Change-Id: Ib052df74bf79b5bc2a0f8c793701e3ff18f4aa30
2024-05-07 15:28:09 +00:00
Dennis Shen
a49f1ba5c5 aconfig: update storage file mapping api
Return a pointer of MappedStorageFile/MutableMappedStorageFile instead
of an object of MappedStorageFile/MutableMappedStorageFile. Now added
destructor for MappedStorageFile/MutableMappedStorageFile to unmap the
in memory file to free up memory.

Bug: b/321077378
Test: atest -c
Change-Id: Iaa02696feb07ff383f0c7e46b645d82e57c38254
2024-05-06 17:25:59 +00:00
Dennis Shen
c0102331c8 Merge "aconfig: add a new aconfig storage file flag listing api" into main 2024-04-30 23:06:18 +00:00
Dennis Shen
45c94c6421 aconfig: add a new aconfig storage file flag listing api
added a new function called list_flag_with_info to list all the flags
given all four storage files (package.map, flag.map, flag.val, flag.info).
also exported this api thru cxx interface so aconfigd can use it.

Bug: b/312444587
Test: atest -c
Change-Id: Ibbfe657b980d40e25e5e28962b930338192e2d98
2024-04-30 17:52:44 +00:00
Ted Bauer
d724dd04e2 Add cc_defaults containing libs needed for static linking
Bug: 328444881
Test: m
Change-Id: I35cbce94301415381b3ad38d7e5c697f9c010856
2024-04-29 23:41:52 +00:00
Jared Duke
a97d385b69 Restrict aconfig version script to linux
Avoid breakage on other platforms.
Bug: 336657207
Test: m

Change-Id: I167dbbe934a133e8f08f630846707870404f62fd
2024-04-26 20:22:12 +00:00
Jared Duke
8782e1e858 Use a version script for libaconfig_storage_read_api_cc
Restrict the set of exported symbols to those in the aconfig_storage
namespace by way of a version script. This shrinks the shared lib size
by ~75%, from ~800KB to <200KB.

Bug: 336657207
Test: m
Change-Id: I56044fe667a713cf1d94f96c992f379a5725850f
2024-04-26 17:43:14 +00:00
Ted Bauer
966e558e9f Merge "Prune unnecessary symbols from read API" into main 2024-04-25 16:59:05 +00:00
Ted Bauer
ad07bd54f6 Prune unnecessary symbols from read API
Bug: 328444881
Test: m
Change-Id: I3b730a6c3390a5d116d467f15f17e74a9096961d
2024-04-25 15:51:15 +00:00
Dennis Shen
fe5065705c aconfig: update aconfig storage write api and test update
Simplify storage write api so that we don't need the storage records pb
file.

Bug: b/312444587
Test: atest -c
Change-Id: I7e336b1d7766983364715dae15786b91b0c0743f
2024-04-25 13:40:07 +00:00
Ted Bauer
171944d88a Merge "Update aconfig storage deps for CPP codegen" into main 2024-04-23 22:56:50 +00:00
Ted Bauer
8d20d51bf8 Update aconfig storage deps for CPP codegen
Bug: 328444881
Test: m AconfigDemoActivity
Change-Id: I12d746d3270dce39533e1afd213343e232044161
2024-04-23 18:07:40 +00:00
Dennis Shen
6f4c692948 aconfig: update flag info storage file
previously we store three bits per flag: is sticky, is read write, has
override. so when a local override arrives, is sticky bit as well has
override bit are set to true. this becomes problematic when the local
override is removed. we are not sure if we should remove has override
bit as well (server override could still be in place).

therefore restructuring the flag info for each flag into new three bits:
is read write, has server override and has local override. so now server
override and local override bits are independent from each other.

Bug: b/312444587
Test: atest -c
Change-Id: I03b2bb7312480773236c95f2b39f2589fee41924
2024-04-18 21:22:49 +00:00
Dennis Shen
36661d4cd0 aconfig: switch read api lib to cc_library
Bug: b/321077378
Test: atest -c
Change-Id: I8d64396797b01a8ce2f4bee165596701940836e4
2024-04-12 21:21:44 +00:00
Dennis Shen
f17dbcd8b7 aconfig: update flag info query api
Currently flag info query api is called get_boolean_flag_attribute, in
this change, we switched it over to a flag value type generic
implementation get_flag_attribute. So in the future we want to add more flag value types, this api can stay the same.

Bug: b/312444587
Test: atest -c
Change-Id: I2b272f3fa3cb1d0edc8b77a44bf37752ffe95925
2024-04-12 16:28:10 +00:00
Dennis Shen
d74941b42d aconfig: create flag info file write c api
Bug: b/312444587
Test: atest -c
Change-Id: I310e1ed727ced454bec2016afe48f7a29561fac3
2024-04-11 20:23:22 +00:00
Dennis Shen
4647c0e1f0 aconfig: create flag info file write rust api
Bug: b/312444587
Test: atest aconfig_storage_write_api.test; atest
aconfig_storage_write_api.test.rust

Change-Id: Icbedc78ae78b2c7590539f008521c507c2b3df5b
2024-04-11 20:23:00 +00:00
Dennis Shen
b18227e8d8 aconfig: update storage read api
With the update to store flag index instead of flag byte offset in
storage file. We need to update flag read api accordingly.

Bug: b/321077378
Test: atest -c
Change-Id: Iccbf939fc5b7fe0ce0f2c33f7e3aa403c268120a
2024-04-10 16:39:21 +00:00
Dennis Shen
9fa78d373c aconfig: return stored flag type enum as a part of flag offset info
Bug: b/321077378
Test: atest -c
Change-Id: I25bad6b226de570eedfef4b450e09be2ac75c5eb
2024-04-10 15:14:14 +00:00
Dennis Shen
58ada6f972 aconfig: add flag info read c api
Bug: b/321077378
Test: atest aconfig_storage_read_api.test.cpp
Change-Id: If6c258429b8d8ccc872cac9f72cb533cf454ecbd
2024-04-07 20:36:25 +00:00
Dennis Shen
2ac7a4c2bd aconfig: add flag info read rust api
Bug: b/321077378
Test: atest aconfig_storage_read_api.test; atest
aconfig_storage_read_api.test.rust

Change-Id: I382ac0145c5d91827952b3ddb01cabefd1539854
2024-04-07 20:34:28 +00:00
Dennis Shen
3e4c33c1bc aconfig: test updates
Previously, three seperate crates create their own test baseline which
are nearly identical. This is inconvinent when updating the baselines.
All three locations needs to be touched. This cl merges functions to
create test storage file base struct into aconfig_storage_file crate

Bug: b/321077378
Test: atest aconfig.test
Change-Id: Ic97437f856763347a11de8b449592292014bcce3
2024-04-02 13:01:26 +00:00
Dennis Shen
93d11b7bc4 aconfig: use an enum to represetn flag type
Flag type is encoded as a u16 in flag table file. Previously we are
assinging value of 1 for flag type to indicate that they are all boolean
flags. In this change, we formalize the flag type designation with an
enum.

ReadWriteBoolean -> 0
ReadOnlyBoolean -> 1
FixedReadOnlyBoolean -> 2

Bug: b/321077378
Test: atest aconfg.test; atest aconfig_storage_file.test
Change-Id: I114818435b44f1e82a611f0509787993a5a8e70e
2024-04-01 18:30:06 +00:00
Dennis Shen
88899887c0 Merge "aconfig: syntax update, as_bytes to into_bytes to be more appropriate" into main 2024-04-01 17:33:46 +00:00
Dennis Shen
87fc7cecd2 aconfig: syntax update, as_bytes to into_bytes to be more appropriate
Bug: b/321077378
Test: atest aconfig_storage_file.test; atest aconfig.test
Change-Id: I124387db54cd322bcce557a27c27e1b6a8c0f465
2024-04-01 15:19:13 +00:00
Dennis Shen
abf5ea2f46 Merge "aconfig_storage_file: add flag_info definition" into main 2024-04-01 14:20:34 +00:00