No description
Find a file
Tianjie Xu 9afb221c9e Reland "Calculate the runtime fingerprint prefixes from build prop"
This reverts commit b21e48b499.

In practice, some partners use the 'import' statement to override
the device fingerprint at runtime. The runtime fingerprint will
later add to the metadata of OTA package, so that the OTA server
can deliver the package to corresponding devices correctly.

This CL supports parsing a subset of import statement that the init
process recognizes. And we loose the restriction based on how the
dynamic fingerprint is used in practice. Right now, we only searches
for the override of brand, name and device. And the placeholder
format should be ${placeholder}, with its value supplied by the
script caller.

As part of the implementation, we generate all the possible
combinations of the input boot variables. And recalculate the
fingerprint for each of the combination. Though we load the
build.prop multiple times, the logic is easier to follow. Also,
it's more convenient to enhance the logic if we only want to
allow some of the boot variables combination later.

Bug: 152167826
Change-Id: I4a9fa35c7ac037ff1cf4f9a4bdff602beac3894b
Test: unittests pass
2020-05-10 21:49:53 +00:00
common strings.mk: Allow empty RHS values for inputs of collapse-pairs 2020-04-02 03:34:49 +09:00
core Merge "rename libvixl to libvixl.com.android.art.debug" 2020-05-07 03:35:03 +00:00
packaging Fix creating _dist_<goal> targets under !dist 2018-10-21 08:56:27 -07:00
target Revert "Move core-icu4j into i18n APEX" 2020-05-05 11:11:30 +00:00
tests Only set TARGET_PLATFORM version in lunch when explicitly requested 2017-05-01 14:26:40 -07:00
tools Reland "Calculate the runtime fingerprint prefixes from build prop" 2020-05-10 21:49:53 +00:00
.gitignore
buildspec.mk.default Add TARGET_PLATFORM_VERSION to lunch 2017-03-23 09:44:08 -07:00
Changes.md Mark (BUILD_|LOCAL_)COPY_HEADERS as [more] deprecated 2020-01-27 19:45:04 -08:00
CleanSpec.mk Cleanup VTS-Core and VTS10 related artifacts 2020-04-03 10:16:21 -07:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
envsetup.sh Update refreshmod docs. 2020-04-09 12:05:34 -07:00
help.sh Rename product_services to system_ext 2019-07-09 08:57:19 +00:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
OWNERS Merge "Update OWNERS for version_defaults.mk with pscovanner & lubomir Bug: 141272605" into qt-dev am: 5d0a024d7b am: 479c9c549b 2019-10-16 11:30:32 -07:00
rbesetup.sh Add an RBE setup script that developers can source to run RBE builds 2020-03-05 17:37:26 -08:00
README.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
tapasHelp.sh Remove unused mips workarounds. 2020-03-06 16:46:59 -08: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.