This CL adds a number of changes to make the assignment of system
properties to be less confusing.
1. Added `a ?= b` syntax, which is called optional prop assignments. The
prop `a` gets the value `b` only when there is no non-optional prop
assignment for `a` such as `a = c`. This is useful for props that
provide some reasonable default values as fallback.
2. With the introduction of the optional prop assignment syntax,
duplicated non-optional assignments is prohibited; e.g., the follwing
now triggers a build-time error:
a = b
a = c
, but the following doesn't:
a ?= b
a = c
Note that the textual order between the optional and non-optional
assignments doesn't matter. The non-optional assignment eclipses the
optional assignment even when the former appears 'before' the latter.
a = c
a ?= b
In the above, `a` gets the value `c`
When there are multiple optional assignments without a non-optional
assignments as shown below, the last one wins:
a ?= b
a ?= c
`a` becomes `c`. Specifically, the former assignment is commented out
and the latter is converted to a non-optional assignment.
3. post_process_props.py is modified so that when a prop assignment is
deleted, changed, or added, the changes are recorded as comments. This
is to aid debugging. Previously, it was often difficult to find out why
a certain sysprop assignment is missing or is added.
4. post_process_prop.py now has a unittest
Bug: 117892318
Bug: 158735147
Test: atest --host post_process_prop_unittest
Exempt-From-Owner-Approval: cherry-pick from master
Merged-In: I9c073a21c8257987cf2378012cadaeeeb698a4fb
(cherry picked from commit 7aeb8de74e)
Change-Id: I9c073a21c8257987cf2378012cadaeeeb698a4fb
If multiple kernels are defined for a build, use the first one when
generating the kernel config file.
Bug: 159975506
Change-Id: Ia136264eb0d0b544bf0685bc22e600de187a9a9b
* As a side product .strip() calls in releasetools are redunant,
but since these scripts are also used out of tree we can't
remove them to guarantee compatibility
Test: m dist
Change-Id: I5c513a4654e293c3d4eab98c8759ea094015fab1
build.prop for the ODM partition should be placed under ./etc directory
to support GSI. For detailed reasons, see
I0733c277baa67c549bb45599abb70aba13fbdbcf
The path was changed to /odm/build.prop during the recent refactoring
around build.prop filems and this change fixes the mistake.
Bug: 132128501
Test: check if odm/etc/build.prop is created
Change-Id: Icc2c564250aa08786f32294a839cc81e86b7d368
If the BoardConfig defined BOARD_VENDOR_KERNEL_MODULES_LOAD and
BOARD_VENDOR_CHARGER_KERNEL_MODULES_LOAD, generate both a
modules.load and modules.load.charger respectively on
/vendor/lib/modules.
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 159424228
Bug: 151950334
Test: build, confirm, change to charger mode, confirm set of modules loads
Change-Id: I55677ed74d80ff3909fe8cbe26e6766f9b5283d5
This script belongs with other manifest-related scripts, and the future
plan is to rewrite it in Python and share common functionality with
other scripts.
Test: lunch aosp_cf_x86_phone-userdebug && m
Bug: 132357300
Change-Id: I4b90129e5023ca1a2c818fc160c34b0b7da943ef
A call to lz4 was added in http://go/aog/1329115. But the binary
isn't added to otatools, leading to a signing failure.
Bug: 159656873
Test: build otatools
Change-Id: I9cab00f36ce3c39cc174b4c9feffdf360f0364ef
Add select-bitness-of-target-host-required-modules that resolves module
bitness for TARGET_REQUIRED_FROM_HOST and HOST_REQUIRED_FROM_TARGET.
Also re-indent select-bitness-of-required-modules.
Bug: 7456955
Test: TH
Test: compare value of ALL_MODULES.<*>.*_REQUIRED_FROM_*
Change-Id: I9483685d8dd528cb1a4ef1e2ec53cbe2caa598a4
Virtually nothing uses libunwind, and no one should start using it, so
it's unlikely to be critical.
(Code should use libunwindstack.so to collect backtraces, and it should
use libc.so's _Unwind_* APIs for C++ exception handling unwinding.)
Test: build Android
Change-Id: I81882a4634ff4d397abe8a7cf5ff15a22a3eed2f
Merged-In: I81882a4634ff4d397abe8a7cf5ff15a22a3eed2f
(cherry picked from commit 9355aeba79)
The extension for the generated vendor ramdisk should be updated based
on the compression scheme used.
Bug: 158433703
Change-Id: I25fff0b8a7879f6aa6d6fe2fce9f5a53f90eb636
Protect against an invalid boot jar, e.g. one containing .dex files is
used instead of .class files.
Test: add a prebuilt for framework-tethering
Run `m check-boot-jars` with the first fix from
https://r.android.com/1341756 and the build fails due to no
.class files because a dex jar is used.
Run `m check-boot-jars` with all fixeds from
https://r.android.com/1341756 and the build works.
Bug: 158304459
Bug: 159112414
Merged-In: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
Change-Id: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
(cherry picked from 92d41de8f2)
Update parsed NDK api xml file directory name.
Test: m ndk
Forrest test build pass: http://shortn/_E5mhRtD4zW
Change-Id: Ic20780d969e33103c45953c9cdd81efe4262b4a9
Used to select SDK variants of native libraries when building unbundled
apps only. This allows unbundled modules to access the platform
variants (and typically their versioned APEX stubs).
Test: m (on AOSP master)
Test: TH (including ub-launcher3-master)
Bug: 157549171
Change-Id: I74f0bcebe8b66b81b2c80e9d448f5d24dc9ab991
Pass the NATIVE_COVERAGE Make variable to Soong as the more accurate
GcovCoverage. Also remove NATIVE_LINE_COVERAGE, it doesn't do anything
different from NATIVE_COVERAGE, and NATIVE_COVERAGE is always set when
NATIVE_LINE_COVERAGE is set.
Bug: 159059537
Test: m checkbuild
Change-Id: Ib26a0e29f09b87400fd8bc41d2c06a4a8a397a19
Unlike the previous performance patches, this does change the ninja
file, shrinking build-aosp_crosshatch.ninja on aosp-master from 393MB to
387MB, while reducing kati runtime from 28.6s to 27.7s.
Previously, MODULES-IN-art would depend on every target defined under
art/***. After this change, it only depends on the modules names that
were directly defined under it, and depends on the MODULES-IN-art-*
for its subfolders.
Bug: 158488548
Test: mmma system/core/adb
Test: mmma system/core
Change-Id: Idfe80f707738faae4777e0d6dc9fd08014775696
The use of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` has been deprecated since they have been
replaced by `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
Test: m nothing
Bug: 158212027
Change-Id: I1c48dc4da15c630201168cce34edb920960c93d4
This makes the dependencies of the jni lib .so appear in
product_target_FILES. Previously, only the jni lib .so
itself appeared, as an effect of being added to the
INSTALLED files of the app.
Bug: 129323707
Test: compare the output between `m dump-files` and installed-files.txt
Test: noop in terms of build artifacts
Change-Id: Ie391bb45ad7758e51368cabb1ecba5caeae2f09c
Introduce product variables `JavaCoveragePaths` and
`JavaCoverageExcludePaths` (resp. populated from environment variables
`JAVA_COVERAGE_PATHS` and `JAVA_COVERAGE_EXCLUDE_PATHS`). Use them to
control which Java modules are candidate for instrumentation based on
their source path. By default (when `JavaCoveragePaths` is empty),
have all Java modules be candidate for instrumentation, to preserve
the existing behavior.
Test: export EMMA_INSTRUMENT=true \
&& export EMMA_INSTRUMENT_FRAMEWORK=true \
&& export JAVA_COVERAGE_PATHS=art \
&& m
Bug: 158212027
Bug: 156284897
Change-Id: I5de6eb460709d7d66d81e3432e11f94ff14dd1c9
Rename `CoveragePath` and `CoverageExcludePaths` as
`NativeCoveragePath` and `NativeCoverageExcludePaths` (resp.).
Also, populate `NativeCoveragePath` and `NativeCoverageExcludePaths`
from environment variables `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
Test: m nothing
Bug: 158212027
Change-Id: I409dbb04b09744a7bd95a4b69361e858b9f89e23
Instead of copying the logic (which led to divergences), use the
same list of dependencies for both users of build-recoveryimage-target
Change-Id: I8f8c006432f3b8120df1f39c98009155fdff32ad
Test: treehugger