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
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
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
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
Previously, checkvintf read only vendor apexes. Now, we support vintf
from other apexes.
Bug: 327365139
Test: m check-vintf-all
Change-Id: I46dc04ccdbe7d3f035ea9f63b1e45358ab31021b
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
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
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
1, Add unit tests in aconfig_storage_file crate to lock down that the
first four bytes of serialized storage files must be the version number.
2, Add a storage file read api to read version number directly from a
file without mmapping the file. This api is need by aconfig storage
daemon.
3, Update integration tests (rust and c++) to include this api.
Bug: b/321077378
Test: atest aconfig_storage_file; atest aconfig_storage_read_api; atest
aconfig_storage_read_api.test.rust; atest
aconfig_storage_read_api.test.cpp
Change-Id: I432893d43895ad5022fcb614aa14de89acd9d220
1. Move the work of `declare-1p-copy-files` to `meta-lic.mk`.
2. Remove `$(LOCAL_PATH)/pathmap.mk` because the variables defined in
it are no longer used.
3. The variable `ONE_SHOT_MAKEFILE` is deprecated and can be removed
directly.
4. Move the main work of generating the targets `docs`,
`offline-sdk-docs`, and `framework-doc-stubs` to
`framework_library.mk`. Because Soong cannot specify the output
to paths such as `$(OUT_DOCS)/` and
`framework-doc-stubs-metadata_intermediates/`.
5. `ANDROID_BUILD_EMBEDDED` can theoretically be removed because the
`.mk` files that use this variable are not currently in use, but
since it involves many other files that are unrelated to this task,
the work of removing this variable will be moved to other changes.
Bug: 322732227
Test: m docs offline-sdk-docs framework-doc-stubs
Change-Id: Ie51dbf88c78861fc60c6ba9c40542455e4cd4f55