Go to file
Jiyong Park cddea9b426 Add TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION
The APEX symlink optimization is a build-time trick to save the
storage/RAM usage of APEX by replacing some files in APEX with symlinks
to the files in the system partition. The optimization however is
automatically turned off for 'updatable: true' APEXes because doing the
optimization for them will hide the sys-health implication until when
the APEXes are built unbundled (i.e. prebuilt) and thus the
optimization is impossible.

TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION forcibly disables the safety net.
When it is set to true, the symlink optimization is done regardless of
the 'updatable' property. This is useful for some of the devices like Go
where most APEXes (even the 'updatable: true' ones) should be
effectively non-updatable.

Bug: 175630508
Test: TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION=true m and check that
updatable APEXes have symlinks to system libs

Change-Id: I261fd4ab2dd8e62ff435306b11168121cbcf662a
2021-01-05 21:03:30 +09:00
common Add a rule to get numbers greater or equal to a minimum number. 2020-10-29 22:29:27 +00:00
core Add TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION 2021-01-05 21:03:30 +09:00
packaging Fix creating _dist_<goal> targets under !dist 2018-10-21 08:56:27 -07:00
target Merge "Include snapuserd in recovery for VABC builds." 2020-12-30 08:27:43 +00:00
tests Only set TARGET_PLATFORM version in lunch when explicitly requested 2017-05-01 14:26:40 -07:00
tools Merge "Swich TEST_MAPPING config to unit_tests:true" 2020-12-22 21:32:31 +00:00
.gitignore Add build subprojects to .gitignore 2015-07-23 13:18:47 -07:00
Changes.md Require required modules to exist 2020-08-06 06:41:09 +00:00
CleanSpec.mk Add clean step to remove Soong's host copies of libconscrypt_openjdk_jni.so 2020-10-09 08:42:13 +00:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
OWNERS Refactor OWNERS files in platform/build/make. 2020-10-08 16:14:44 -07:00
README.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
Usage.txt Remove the PRODUCT-* goal 2019-07-29 14:27:04 -07:00
buildspec.mk.default Add TARGET_PLATFORM_VERSION to lunch 2017-03-23 09:44:08 -07:00
envsetup.sh Pipe bazel() note text to stderr. 2020-12-14 18:51:50 -05:00
help.sh Revert "Add modules partition." 2020-09-15 19:09:26 +00:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
rbesetup.sh Switch default execution strategy to racing for developer builds 2020-11-25 12:14:16 -05:00
tapasHelp.sh Remove unused mips workarounds. 2020-03-06 16:46:59 -08:00

README.md

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.