Commit graph

96331 commits

Author SHA1 Message Date
Dennis Shen
e9b9573def aconfig: add storage file type into storage file serialization
1, add storage file type into storage files serialization
2, update aconfig_storage_read_api integration tests to not rely on
soong to produce read only storage files. Instead, have the test process
create temp read only storage file copies.

Bug: b/312444587
Test: atest aconfig.test; atest.aconfig_storage_file.test
Change-Id: I1607fb000b48e8acffc966b16a5136578911ab3e
2024-03-12 12:43:31 +00:00
Treehugger Robot
672af9523b Merge "aconfig: create aconfig_storage_write_api crate" into main 2024-03-12 04:12:20 +00:00
Inseob Kim
cae6e565ca Merge "Add 202404 to PLATFORM_SEPOLICY_COMPAT_VERSIONS" into main 2024-03-12 00:10:16 +00:00
Dennis Shen
7e5fca5898 aconfig: create aconfig_storage_write_api crate
aconfig_storage_write_api crate is the lib to be used by aconfig storage
daemon to update flag value at a given offset.

Note that mmap api is unsafe from memmap2 crate. This is due to the
possibility of other code write to the file after mmaping the file into
memory. Therefore the api to write to storage value file is also marked
as unsafe. In reality, the persistent storage value file is protected by
SELinux policy to allow write access only to aconfig storage daemon. In
addition, aconfig storage daemon is single threaded. So at any time,
only one thread is writing to a storage file, and only thru the mmapped
file in memory (not thru direct file write). So it would safe for
storage daemon to call this api.

Bug: b/312444587
Test: m libaconfig_storage_write_api; atest
aconfig_storage_write_api.test

Change-Id: I93cffea0d94e4c40e711d809418c0b18b6d9bfe1
2024-03-11 14:26:38 +00:00
Zhi Dou
bf29fffff3 Merge "aconfig: remove UnsupportedAppUsage from java exported mode" into main 2024-03-11 13:43:49 +00:00
Zhi Dou
8837769f46 aconfig: remove UnsupportedAppUsage from java exported mode
UnsupportedAppUsage was added to support cts test access issue. For new
exported mode, if the cts tests code with exported flag, there won't be access issue. So this annotation is not needed. Removing this annotation also removes the dependency on this annotation in google3 code.

Test: atest aconfig.test
Bug: 311152507
Bug: 303773055
Change-Id: I8c190e69cdb514af7992ccca7fea152c917047dc
2024-03-11 13:04:51 +00:00
Inseob Kim
51193b144c Add 202404 to PLATFORM_SEPOLICY_COMPAT_VERSIONS
Bug: 327954176
Test: m selinux_policy
Change-Id: Ic2d628785e8fb2882d16a1920115b6b925d2d4a1
2024-03-11 16:19:33 +09:00
Lee Shombert
05b128bff7 Merge "Export the sqlite build flag to soong" into main 2024-03-10 16:20:29 +00:00
Treehugger Robot
39cfb1e9d2 Merge "Look for release_config_map.mk in more projects" into main 2024-03-09 02:36:51 +00:00
LaMont Jones
318dafeca0 Look for release_config_map.mk in more projects
This allows us to split up build/release for better clarity.

Bug: b/328495189
Test: manual
Change-Id: If810780de164b74c3e3ebc35260384843de2c084
2024-03-08 12:02:15 -08:00
Ted Bauer
71287f5e6b Merge "aflags: only permit enable/disable with root access." into main 2024-03-08 15:51:57 +00:00
Dennis Shen
760d21d991 Merge "aconfig: update aconfig_storage_file crate" into main 2024-03-08 13:33:37 +00:00
Treehugger Robot
318d87ef8d Merge "aflags: list flags as "enabled|disabled" instead of raw bool value" into main 2024-03-08 12:52:11 +00:00
Mårten Kongstad
f0c594d66d aflags: list flags as "enabled|disabled" instead of raw bool value
To keep things consistent and to reduce the risk of confusion, aconfig
flags are "enabled" or "disabled", not "true" or "false".

Do not represent flag states via a String. Instead, introduce a new
FlagValue enum and use this enum instead. FlagValue implements ToString
which returns "enabled" or "disabled".

Bug: N/A
Test: adb shell aflags list # verify that flags are "enabled" or "disabled"
Test: atest aflags.test
Change-Id: I9be998d7891656d118b7cc971449da58e17d5031
2024-03-08 10:27:14 +01:00
Jooyung Han
b8fef6528e Merge "checkvintf with all apexes" into main 2024-03-08 00:50:22 +00:00
Lee Shombert
bb7b87eb93 Export the sqlite build flag to soong
The soong variable is release_package_libsqlite3.  The domain is
libsqlite3.

Bug: 323176655
Change-Id: I7d32a8f1b8d1a22ebce603c06aab602c67f96838
2024-03-07 12:11:43 -08:00
Zhi Dou
5f1a854b11 Merge "aconfig_proto: add document for container filed" into main 2024-03-07 19:42:56 +00:00
Ted Bauer
a98448f4e7 aflags: only permit enable/disable with root access.
Bug: 324436145
Test: adb unroot && adb shell aflags enable com.android.window.flags.sync_window_config_update_flag # Fails
Test: adb root && adb shell aflags enable com.android.window.flags.sync_window_config_update_flag # Succeeds
Change-Id: I88db174b51462199a234eeb3b6fb70c4da538700
2024-03-07 17:55:27 +00:00
Treehugger Robot
a0a131aa3d Merge "aflags: remove unnecessary String conversions" into main 2024-03-07 16:17:05 +00:00
Treehugger Robot
53a37549e7 Merge "aflags: list: merge package and name into fully qualified name" into main 2024-03-07 15:45:46 +00:00
Dennis Shen
12705d46be aconfig: update aconfig_storage_file crate
Add android.bp target for the binary. Change the binary name to
aconfig-storage. And a number of small updates.

Bug: b/321077378
Test: m aconfig-stoarge; atest aconfig_storage_file.test
Change-Id: I9f560a031433407800ded1c2f4f2bdab459f5df7
2024-03-07 15:03:27 +00:00
Mårten Kongstad
b47f7bae6d aflags: remove unnecessary String conversions
Reduce the number of allocations by removing superfluous calls to
to_string: use a &str where possible, and avoid converting a String to a
String.

Bug: N/A
Test: adb shell aflags list
Change-Id: I373018e9ecb393137d11e039ca2c73c0ca5308d7
2024-03-07 15:29:00 +01:00
Mårten Kongstad
d408e96505 aflags: list: merge package and name into fully qualified name
Print the fully qualified name instead of splitting flag package and
flag name into separate columns. This aligns the output with the
expected input to `aflags enable <fully-qualified-name>` and makes it
easier to copy-and-paste the flag names.

Before this change:

  $ adb shell aflags list | head -n4
  android.app.admin.flags                   cross_user_suspension_enabled                                              false default read-write system
  android.app.admin.flags                   dedicated_device_control_enabled                                           false default read-write system
  android.app.admin.flags                   device_policy_size_tracking_enabled                                        false default read-write system
  android.app.admin.flags                   dumpsys_policy_engine_migration_enabled                                    false default read-write system

After this change:

  $ adb shell aflags list | head -n4
  android.app.admin.flags.cross_user_suspension_enabled                                                           false default read-write system
  android.app.admin.flags.dedicated_device_control_enabled                                                        false default read-write system
  android.app.admin.flags.device_policy_size_tracking_enabled                                                     false default read-write system
  android.app.admin.flags.dumpsys_policy_engine_migration_enabled                                                 false default read-write system

Bug: N/A
Test: adb shell aflags list
Change-Id: I3227c9c9c7355b5b0c1b75ada73b1a8f87d1be55
2024-03-07 14:58:14 +01:00
Treehugger Robot
7254e18aba Merge "aconfig: remove reference to non-existent workspace member "aconfig_storage_write_api"" into main 2024-03-07 12:27:37 +00:00
Jooyung Han
9738259f3e checkvintf with all apexes
Previously, checkvintf read only vendor apexes. Now, we support vintf
from other apexes.

Bug: 327365139
Test: m check-vintf-all
Change-Id: I46dc04ccdbe7d3f035ea9f63b1e45358ab31021b
2024-03-07 17:32:09 +09:00
Mårten Kongstad
2243581535 aconfig: remove reference to non-existent workspace member "aconfig_storage_write_api"
Commit bca2f3c28c incorrectly added "aconfig_storage_write_api" as a
workspace member even though that project has not yet been created. This
broke cargo.

Unbreak cargo by removing "aconfig_storage_write_api".

Bug: N/A
Test: croot build/make/tools/aconfig && cargo c
Change-Id: Ic0f71a53d49736228a376f64808aea24c2ec8ce5
2024-03-07 09:18:33 +01:00
Xin Li
85acebd157 Merge "Merge Android 14 QPR2 to AOSP main" into main 2024-03-07 06:41:05 +00:00
Treehugger Robot
c045176ceb Merge "aconfig: move aconfig_storage_metadata proto and its apis to aconfig_storage_file crate" into main 2024-03-07 02:00:15 +00:00
Dennis Shen
bca2f3c28c aconfig: move aconfig_storage_metadata proto and its apis to
aconfig_storage_file crate

Bug: b/321077378
Test: m aconfig_storage_file.test; m aconfig_storage_read_api.test
Change-Id: Ifeeeff62dc09e172b7e88c45860d2febccc29570
2024-03-06 22:05:02 +00:00
Dennis Shen
0329cda73e Merge "aconfig: create aconfig_storage_file binary to print the storage files" into main 2024-03-06 20:51:04 +00:00
Dennis Shen
190304985c aconfig: create aconfig_storage_file binary to print the storage files
To help debug storage files. We need a binary to parse the storage
binary files and print out the flag values like device_config list
command. In addition, aconfig_storage_file needs to provide a public api
to allow flag cli to call to get the flag values. Therefore creating
this change.

This change includes the following changes:

1, Implement debug print trait for package table, flag table, and flag
value struct. So the debug dump is more readable.

2, Add a list flag api to create a vector of flag name and value tuples
given the storage file names. This api will be used by
aconfig_storage_file binary as well as aconfig flag cli.

3, Add a main.rs to create aconfig_storage_file binary to debug print
storage files or list all the flags in storage files. It has two
subcommands.

3.1 print command:
aconfig_storage_file print --file <storage file> --type
<package_map|flag_map|flag_val>

This command produce a debug print of a single the storage file content

3.2 list command:
aconfig_storage_file list --package_map <package map file> --flag_map
<flag map file> --flag_val <flag value file>

This command parses all storage files to print out list of flag values
in the following form:

<package>/<flag>, <value>
...
<package>/<flag>, <value>

Bug: b/321077378
Test: manual test of the binary command
Change-Id: I000e216d13854f853cbd9b63cabb6db3a47dbece
2024-03-06 17:46:18 +00:00
Xin Li
c15eb7d5c3 Merge Android 14 QPR2 to AOSP main
Bug: 319669529
Merged-In: Icb3c8a629adb2b19e700af8c1a92cb1892ba2ca4
Change-Id: If96d30d00973a86cf05ee2f063607ca486005b01
2024-03-06 09:29:45 -08:00
Zhi Dou
2d2610c787 aconfig_proto: add document for container filed
Test: n/a
Bug: 328027300
Change-Id: Ieec2c24cb9024f429fcd7888ef6c7c89d212ff63
2024-03-06 15:36:34 +00:00
Dennis Shen
cdde8f39f8 Merge "aconfig: add a storage file read api to get file version number" into main 2024-03-06 13:39:23 +00:00
Clinton Ke
8a65d66269 Merge "Revert "Move frameworks/base/Android.mk to build/tasks"" into main am: 3ac6614666
Original change: https://android-review.googlesource.com/c/platform/build/+/2990390

Change-Id: Icb3c8a629adb2b19e700af8c1a92cb1892ba2ca4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-06 04:21:11 +00:00
Clinton Ke
3ac6614666 Merge "Revert "Move frameworks/base/Android.mk to build/tasks"" into main 2024-03-06 03:47:30 +00:00
Nelson Li
3c3a6ab8d7 Revert "Move frameworks/base/Android.mk to build/tasks"
Revert submission 2988149-framework_library

Reason for revert: Broken build 11534795 on git_aosp-main-future on sdk-next-userdebug

Reverted changes: /q/submissionid:2988149-framework_library

Change-Id: I065ac8d664cc0e508c849c49e95a52b49d423083
Bug: 328325889
Bug: 328326210
2024-03-06 03:35:37 +00:00
Treehugger Robot
2aba12de46 Merge "set exportable to true for aconfig.test.exported.flags" into main am: 07c3faa081
Original change: https://android-review.googlesource.com/c/platform/build/+/2989250

Change-Id: Ie190e7663df84fd652b24cd94f67f81ceebef3fa
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-06 01:48:48 +00:00
Treehugger Robot
9b3e3df245 Merge "Move frameworks/base/Android.mk to build/tasks" into main am: fa31735f7f
Original change: https://android-review.googlesource.com/c/platform/build/+/2988149

Change-Id: Ie4671e24d218d748ec4dd3fbb6842cebcf214d2e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-06 01:28:06 +00:00
Treehugger Robot
07c3faa081 Merge "set exportable to true for aconfig.test.exported.flags" into main 2024-03-06 01:10:49 +00:00
Treehugger Robot
fa31735f7f Merge "Move frameworks/base/Android.mk to build/tasks" into main 2024-03-06 01:10:10 +00:00
Daniel Zheng
694d3438f9 Merge "Turn on V3 cow" into main am: c09a15f81f
Original change: https://android-review.googlesource.com/c/platform/build/+/2973761

Change-Id: I75c1d1ed70edcc249de967553de52522342b195a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-06 00:36:59 +00:00
Ted Bauer
68d7013eb0 Merge "aflags: add initial enable and disable commands" into main am: ee09882e54
Original change: https://android-review.googlesource.com/c/platform/build/+/2986374

Change-Id: I0607dfaa51a7b072eee85028afc1e46c145a1f3a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-05 23:15:51 +00:00
Daniel Zheng
c09a15f81f Merge "Turn on V3 cow" into main 2024-03-05 23:04:46 +00:00
Zhi Dou
8320380d55 set exportable to true for aconfig.test.exported.flags
Test: m aconfig_test_java_library_exported
Bug: 310504781
Change-Id: Ib405febc739c49dff7340d43c65a7ec2b314d7de
2024-03-05 22:27:09 +00:00
Ted Bauer
ee09882e54 Merge "aflags: add initial enable and disable commands" into main 2024-03-05 22:23:57 +00:00
Elliott Hughes
b63961ff53 Merge "fs_config: remove -S option." into main am: a5c7819b34
Original change: https://android-review.googlesource.com/c/platform/build/+/2987371

Change-Id: I80d0ba528dedf8ce461e6d2f04c8a62484057583
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-05 21:06:17 +00:00
Elliott Hughes
a5c7819b34 Merge "fs_config: remove -S option." into main 2024-03-05 20:05:16 +00:00
Daniel Zheng
7102baaf65 Turn on V3 cow
On all api levels shipping higher than 34 (pixel 8), we want to enable
v3 cow version of the cow format

We need to make this change in product_config.mk since PRODUCT variables
have special interactions with inherit-product. PRODUCT_SHIPPING_API_LEVEL
is defined in device.mk and is unavailable to the parent makefile
(PRODUCT vars are cleared at the beginning of makefiles?).
Having the fallback vabc_cow_version in this file allows us to avoid the
hack below (we would have to modify each device.mk to add a temporary variable)

alternate solution:

We have to create a new variable SHIPPING_API_LEVEL that is a duplicate
of PRODUCT_SHIPPING_API_LEVEL. This is a hack to workaround the
inheritance flow (since vabc_features.mk -> android_t_baseline.mk ->
device.mk).This hack allows this variable to be seen by the parent
.mk file

Bug: 313962438
Test: u->v upgrade path for pixel 8.  v->u dowgrade path for pixel 8
Change-Id: I6e1480e461c20a2fb07c5339828df0e6f6c0f9ec
2024-03-05 12:01:05 -08:00
Ted Bauer
84883bd7a4 aflags: add initial enable and disable commands
Bug: 324436145
Test: adb shell aflags enable --help
Change-Id: I6b4af4bccbbc6000a9dcb78c3130f836b0f85bd0
2024-03-05 19:33:39 +00:00