Commit Graph

96457 Commits

Author SHA1 Message Date
Peiyong Lin
cc63340cd1 Clean up ANGLE on system build configuration.
Now that ANGLE on system is in fully released, clean up the build file
configuration and remove the flags.

Bug: b/293503000
Test: atest CtsAngleIntegrationHostTestCases
Change-Id: Ie8294b6494e2fad44ff102ecf0018916d61b082a
Merged-In: Ie8294b6494e2fad44ff102ecf0018916d61b082a
2024-03-14 19:26:24 +00:00
Dennis Shen
435fe14146 aconfig: c++ read api to return an android::base::Result and cargo fmt
Bug: b/312444587
Test: atest aconfig_storage_read_api.test.rust; atest
aconfig_storage_write_api.test.cpp

Change-Id: I6beb6e8d43b6f5418476101a929374e97832e27f
2024-03-14 19:25:07 +00:00
Dennis Shen
aa0287641e Merge "aconfig_storage: create aconfig storage c++ flag value write api" into main 2024-03-14 19:21:38 +00:00
Yu Liu
5e6cae4997 Merge "Validate aconfig libs are built with the correct modes." into main 2024-03-14 18:39:13 +00:00
Treehugger Robot
4e5aa5d0f5 Merge "Remove fs_get_stats." into main 2024-03-14 17:13:26 +00:00
Dennis Shen
1fdb6cc456 aconfig_storage: create aconfig storage c++ flag value write api
Bug: b/312444587
Test: atest aconfig_storage_write_api.test.cpp
Change-Id: Ib08575b7e6ca23141ebbf739bf604a66da472dc2
2024-03-14 16:06:03 +00:00
Elliott Hughes
b904c27e12 Remove fs_get_stats.
This was only used by the tarball-building support that was removed
in 2019.

Test: treehugger
Change-Id: I719364699d426d21010c3ab913d12f15128f2538
2024-03-14 15:32:24 +00:00
Dennis Shen
7c30411d3d Merge changes from topic "read_api" into main
* changes:
  aconfig: update aconfig_storage_read_api c++ lib
  aconfig: update aconfig_storage_read_api
2024-03-14 14:43:12 +00:00
Treehugger Robot
be19783c7a Merge "Replace some ByteBuffers with DataSource" into main 2024-03-13 23:57:51 +00:00
Tomasz Wasilczyk
4b114c29ec Replace some ByteBuffers with DataSource
This avoids ByteArray 2GiB limit in a few places, but requires more
changes to SignApk to fully support large archives.

Bug: 302112430
Test: build/soong/soong_ui.bash --make-mode TARGET_PRODUCT=aosp_x86_64 TARGET_RELEASE=trunk_staging CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS="art external/aac external/boringssl external/conscrypt external/cpu_features external/dlmalloc external/fdlibm external/libaom external/libavc external/libcxx external/libfuse external/libgav1 external/libgsm external/libhevc external/libmpeg2 external/libopus external/libtextclassifier external/libvpx external/libxaac external/oj-libjdwp external/sonivox external/speex external/tremolo external/vixl frameworks/av frameworks/base/media libcore libnativehelper packages/modules/Bluetooth packages/modules/Connectivity packages/modules/DnsResolver packages/modules/ExtServices packages/modules/NetworkStack packages/modules/NeuralNetworks packages/modules/SdkExtensions packages/modules/StatsD packages/providers/MediaProvider system/core/base system/core/libcutils system/core/libstats system/media/audio_utils system/netd/resolv" com.android.art.testing
Change-Id: Ie7fc0bbce9ef43b6331143703ac5568cf1b2186a
2024-03-13 21:43:13 +00:00
Dennis Shen
808bf915a8 aconfig: update aconfig_storage_read_api c++ lib
Now the read api lib no longer owns the memory mapped file. The rust lib
aconfig_storage_read_api api to get memory mapped file just returns an
Mmap rust struct. However cxx does not support Mmap data type, so we
cannot export the api to get memory mapped file from rust to c++. This
means we have to implement c++ apis to get memory mapped files.

This change is basically implementing c++ api to get memory mapped files,
mirroring the rust implementation. In addition, the integration test is
also updated to lock down the new c++ api implementation.

Bug: b/321077378
Test: atest aconfig_storage_read_api.test.cpp
Change-Id: I5e93a220cdd05cc0e5b0eb441284ac3e9dc34da7
2024-03-13 20:29:13 +00:00
Dennis Shen
71f9303dc0 aconfig: update aconfig_storage_read_api
Right now, aconfig_storage_read_api rust lib would own mapped files. So
individual flag lib does not need to. The original intent is that all
these flag lib can dynamically link against this lib. So say we have
different variants of flag lib for one flag package, there is just one
unique memory mapped file. In addition, the exposed rust apis hides the
memory mapped files. So when exporting these apis to c++/java, we don't
have to implement memory mapping in c++/java flag read api lib.

However, this design has its own downside. The biggest being that these
memory mapped files are stored in a mutable static hash map. For rust,
it must be protected by a mutex lock. The real effect on the lock is
mostly minimal as it immediately unlocks when the clone of memory
mapping is returned. But still we could get more performance out of it
in exchange of having more c++/java side implementation of mapping
files. (Note, apis that interpret mapped files are still exported by
Rust, so no c++/java implementation needed).

In this change, aconfig_storage_read_api give away its ownership of
memory mapped file in its api to get memory mapped file. The memory
mapped file is supposed to be owned by generated flag lib. By doing so,
no more mutex lock is needed. Also, since each flag lib has one flag
package, which maps to a single owning container. The flag lib can have
the memory mapped files as non mutable static variables. So no mutex
lock penalty on flag lib side.

Bug: b/321077378
Test: atest aconfig_storage_read_api.test; atest
aconfig_storage_read_api.test.rust

Change-Id: I29060bae90db6f7d296252ed73f7e312143f4b7e
2024-03-13 18:10:19 +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
Dennis Shen
c89032cd2f Merge "aconfig: update aconfig_storage_file crate unit test to lockdown file size" into main 2024-03-13 13:10:18 +00:00
Seungjae Yoo
933d07a1b3 Merge "Add unit test for parsing avb info" into main 2024-03-13 01:39:42 +00:00
Dennis Shen
7355446c7e Merge "aconfig: add rust integration test for aconfig_storage_write_api" into main 2024-03-12 22:42:37 +00:00
Dennis Shen
7176a4fdfa aconfig: update aconfig_storage_file crate unit test to lockdown file
size

Bug: b/321077378
m: atest aconfig_storage_file.test
Change-Id: Ic5e7e7a9fd7ac53bb1207a13acc0c992fe0afd2d
2024-03-12 22:40:53 +00:00
Dennis Shen
1d9f0dd291 aconfig: add rust integration test for aconfig_storage_write_api
Bug: b/312444587
Test: atest aconfig_storage_write_api.test.rust
Change-Id: I05f992ea93a19507ad865e97315c128473841a33
2024-03-12 19:09:04 +00:00
Dennis Shen
ee18b35565 Merge "aconfig: add storage file type into storage file serialization" into main 2024-03-12 14:38:50 +00:00
Treehugger Robot
1986c86bb2 Merge "aflags: make flag storage error message more user-friendly" into main 2024-03-12 13:20:21 +00:00
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
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
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
Seungjae Yoo
b345651e6c Add unit test for parsing avb info
Bug: 328195652
Test: atest --host releasetools_test
Test: sign_target_files_apks
Change-Id: Ie38c3883907bc70c794606b20caf55a70dbcdf7c
2024-03-11 14:41:22 +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
Nelson Li
2b27ed0077 Move frameworks/base/Android.mk to build/core
1. Move the work of `declare-1p-copy-files` to
  `build/core/tasks/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 work of `offline-sdk-docs` to
   `build/core/tasks/offline-sdk-docs.mk` because Soong cannot specify
   the output path to `$(OUT_DOCS)/`.
5. Move the work of `framework-doc-stubs` to `build/core/Makefile`
   because Soong cannot specify the output path to
   `framework-doc-stubs-metadata_intermediates`, and because
   `SDK_METADATA_FILES` is a dependency of the SDK, it must be moved
   before the SDK's dependencies are determined, and it cannot be moved
   to `build/core/tasks`.
6. `ANDROID_BUILD_EMBEDDED` can be removed because the `.mk` files that
   use this variable are currently not used.

Bug: 322732227
Test: m sdk docs offline-sdk-docs framework-doc-stubs
Change-Id: Ieef40808a0bbaa63a73491ddde0949ae1780e615
2024-03-07 11:25:57 +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