No description
Find a file
Spandan Das d22b1390b9 Make system_server.zip compatible with prebuilt apex builds
This artifact contains the system server jars that were used in the
build. At ToT, this was disabled when prebuilts were enabled to prevent
version skew between the system server jars built from source, and the
system server jars deapexed from the prebuilt apex that was installed
into the system image.

With this CL, this artifact is now compatible with prebuilts. If a
google prebuilt apex is used, system_server.zip will contain the .jar
deapexed from that prebuilt. e.g. if art _and_ btservices prebuilts are
enabled, then system_server.zip will contain the prebuilt jars for those
apexes, and sources for others.

This implementation leverages the fact that soong copies the _selected_
system server jars to out/soong/system_server_dexjars for dex2oat. Soong
is aware of source/prebuilts, and populates this directory with the
correct system server jar.

One side effect of this change is that affects the directory structure
of the zip. Previously, service-art.jar will be present in the zip file
at apex/com.android.art/java/service-art.jar. After this change
service-art.jar will be present in the top-level directory of the zip

Bug: 308188056
Test: the zip is not bit-identical, but I checked that the file contents are indentical (discussed below)
Test: unzip out/target/product/vsoc_x86_64/system_server.zip.before -d system_server.before
Test: unzip out/target/product/vsoc_x86_64/system_server.zip.before -d system_server.after
Test: find system_server.before/ -type f -printf '%s\t%p\n' | sort -n | cut -f2- | xargs cat | shasum
Test: find system_server.after/ -type f -printf '%s\t%p\n' | sort -n | cut -f2- | xargs cat | shasum
Test: the shasums are identical

Test: in internal, lunch cf_x86_64_phone-next-userdebug (next uses bt
prebuilts)
Test: m nothing
Test: aninja -t path out/target/product/vsoc_x86_64/system_server.zip <vendor_dir_path>/BluetoothGooglePrebuilt/com.google.android.btservices.apks; path exists

Change-Id: I213150b7ee2b012fd649b308f3c72bebf5ca7bf8
2024-04-26 16:43:52 +00:00
ci Stream build process output 2024-04-18 19:02:50 +00:00
common math.mk supports larger number comparison 2023-10-30 10:58:25 +09:00
core Make system_server.zip compatible with prebuilt apex builds 2024-04-26 16:43:52 +00:00
packaging Trace time spent in cp rules for dist targets. 2023-06-26 23:31:30 +00:00
target Merge "Adding avatar picker to install on all platform phones and tablets" into main 2024-04-24 08:03:32 +00:00
teams Configure AILabs team 2024-04-11 00:22:39 +00:00
tests Add Trendy team for the run_tool_with_logging_test 2024-04-19 18:12:25 +00:00
tools Allow boot_variable_file to be read from input_target_files 2024-04-25 17:11:13 +00:00
.gitignore ignore .iml files (IntelliJ) 2022-06-17 12:17:53 -04:00
Android.bp Add a facility to log tool invocations 2024-04-17 22:41:58 +00:00
banchanHelp.sh Allow selecting a different product in banchan. 2021-04-19 18:32:00 +01:00
buildspec.mk.default Add TARGET_PLATFORM_VERSION to lunch 2017-03-23 09:44:08 -07:00
Changes.md Revert^2 "Enable genrule sandboxing by default" 2023-10-18 22:50:28 +00:00
CleanSpec.mk Clean out old rustc compiler intermediates 2023-10-03 10:35:32 -07:00
cogsetup.sh Fix cogsetup.sh to work from non-root dirs 2024-01-31 17:20:13 -05:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
envsetup.sh Support tool event logging for ADB invocations 2024-04-19 17:38:17 +00:00
help.sh Add sync to m help 2022-09-22 02:26:10 +00:00
METADATA Move comment to license_note 2022-03-03 14:57:46 -08:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
OWNERS Remove lberki@google.com from OWNERS 2023-11-30 16:41:22 +00:00
PREUPLOAD.cfg check-flagged-apis: add new CLI to verify @FlaggedApi APIs 2024-04-16 10:32:17 +02:00
rbesetup.sh fix RE for metalava actions 2023-11-15 20:39:45 +00:00
README.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
shell_utils.sh Pull common methods into shell_utils.sh, which can be included by scripts. 2023-01-03 14:12:43 -08:00
tapasHelp.sh Add a keys argument to tapas 2022-02-07 18:50:22 +00:00
Usage.txt Remove the PRODUCT-* goal 2019-07-29 14:27:04 -07:00

Android Make Build System

This is the Makefile-based portion of the Android Build System.

For documentation on how to run a build, see Usage.txt

For a list of behavioral changes useful for Android.mk writers see Changes.md

For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.

This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.