Commit Graph

24 Commits

Author SHA1 Message Date
Ted Bauer
431f44a314 Don't show staged value if flag is RO
Bug: 324436145
Change-Id: I493421f29d6e7f5e844dd47cc6417b3d5fe9cdbb
Test: m aflags && aflags list
2024-09-16 15:50:50 +00:00
Ted Bauer
83d2a58dd9 Show containers in list new storage
Test: m
Bug: 324436145
Change-Id: I695aa130aee356451aa8196911d31b87d45d745d
2024-09-13 17:08:31 +00:00
Ted Bauer
b1edaae899 Add flag for enabling only new storage and use in aflags
Change-Id: I73218de38d005d77987d5103364a102cec3abc07
Test: m && cargo t
Bug: 324436145
2024-09-11 20:24:47 +00:00
Ted Bauer
c50121613d Don't show container in list new storage
Change-Id: I24263e244d5b86ef066cd2efd511a890b03bf6e7
Test: m
Bug: 324436145
2024-09-04 18:11:59 +00:00
Zhi Dou
8ee1a5b785 DO NOT MERGE: manually cherry pick
Change-Id: I47b6d783f32b7c260dd806898ed880901b5f784b
Test: presubmit
Bug: n/a
2024-08-07 18:51:23 +00:00
Ted Bauer
05fea28d9c feat: show if flag is locally overridden
Bug: 324436145
Test: adb shell aflags list
Change-Id: Id239a760e86e469f77d1e99f7a6f27d54cb87206
2024-07-19 13:11:42 +00:00
Ted Bauer
bbbe092496 Read from new storage in aflags
Bug: 324436145
Test: adb shell aflags list --use-new-storage
Change-Id: Ib615e25bc0bc7f2b0362e286a45ce40ebf21f92d
2024-07-17 18:39:25 +00:00
Ted Bauer
5223a70887 Add root check to aflags
aflags scans the apex/ dir, which requires root access to read.
Currently the command fails with "Error: Permission denied", which
doesn't tell the user how to fix the problem. This CL adds a more
descriptive error message.

Test: adb unroot && adb shell aflags list
Bug: 347692127
Change-Id: I98a7a1ba10ef52ec47035816fa66119ea84f281d
2024-06-17 15:25:02 +00:00
Ted Bauer
aeb96092af Add filter by container to aflags
Test: m -j120 && acloud create --local-image && adb shell aflags list --c system
Test: cargo t
Bug: 340840507
Change-Id: I5db7f204673accdbd3c4ad62e88b213028a8d5ab
2024-05-15 10:06:25 -04:00
Chris Wailes
e6bb2e951d Replace impl ToString with impl Display
If the Display interface is implemented the compiler will automatically
derive an implementation of ToString.

Test: m aflags
Bug: 333887339
Change-Id: I861a3065edbef0da1684a6ea28cc374acd0d774a
2024-05-09 15:14:22 -07: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
206d44aff5 aflags: read protos from all containers
Create one library for reading protos from all containers, instead of
having numerous libraries perform the same logic. For Java, we will
create a similar library reusing the same
partition_aconfig_flags_paths.txt.

Bug: 324436145
Test: adb shell aflags list # Confirm that various containers appear
Change-Id: I924e281a50f9a609e1c07c03267eebe3dce52752
2024-04-18 14:38:41 +00:00
Dennis Shen
7d12daf9b4 aconfig: add flag type information to list flag api
Bug: b/321077378
Test: atest aconfig_storage_file.test
Change-Id: I1880e9aa441c423c3225a0ef86c6edde096d7ba3
2024-04-02 17:51:21 +00:00
Ted Bauer
6d4db66026 aflags: add new storage mode
Add a mode that lets the user use the new aconfig storage.

Bug: 324436145
Test: adb shell aflags list --use-new-storage
Change-Id: I97d7a229a64c6ef1aea844281298ce5449b02570
2024-03-29 16:57:42 +00:00
Treehugger Robot
c7704f1650 Merge "aflags: show staged values for each flag." into main 2024-03-13 17:01:14 +00:00
Ted Bauer
46d758bd49 aflags: show staged values for each flag.
Lines now have a new column, and look like this:

com.android.example.flag1 enabled -            server read-write system
com.android.example.flag2 enabled (->disabled) server read-write system

The dash represents no change on boot, the (->value) represents a change
to value on the next boot.

Test: adb shell device_config put staged multitasking*com.android.wm.shell.enable_taskbar_navbar_unification true && adb shell aflags list | grep navbar_unification
Bug: 324436145
Change-Id: I022460bc69fcb2ccd9c6db8f060fcbd0337d1ea6
2024-03-13 14:46:31 +00:00
Ted Bauer
e52434aa18 aflags: make flag storage error message more user-friendly
Bug: 328577149
Test: adb shell stop && sleep 10 && adb shell aflags list
Change-Id: Idb28c93f883b72031cf3e1ff4e8d396c4df708e2
2024-03-11 14:12:58 +00:00
Ted Bauer
71287f5e6b Merge "aflags: only permit enable/disable with root access." into main 2024-03-08 15:51:57 +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
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
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
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
Ted Bauer
4dbf58a187 aconfig: introduce new aflags CLI
Add a new CLI binary that we can use as the officially recommended CLI
for reading and writing flags. For now, the CLI invokes commands to
interact with DeviceConfig and aconfig protos, but we will switch it to
interact with the forthcoming mmap-file-based aconfig storage. In the
meantime, we can add improved formatting and error reporting in a
separate layer.

This CL starts with the list command, which outputs a table of the
flags when you type `adb shell aflags list`.

Bug: 324436145
Test: atest aflags.test
Change-Id: Idd8aa78ccaace22a7e490014d410ad741f8f6fc6
2024-02-21 13:23:49 -05:00