* changes:
add support to non-A/B for multiple kernels, boot images
add BOARD_GKI_NONAB_COMPAT for non-A/B compatability with GKI
fix recoveryimage-nodeps
Merge all the proguard_usage.zip files produced by the R8 rules and
dist the result.
Bug: 151857441
Test: m TARGET_BUILD_APPS=DocumentsUI dist
Change-Id: I7e6d73241478016093a203dc7bd86407ab86a4ac
Bug: 163854285
Test: m on crosshatch. Vendor overrides are included in
system/build.prop on legacy devices.
Change-Id: Ib134f934de8546af3dff27312f6877eafe5ed22c
The new default points to prebuilts/remoteexecution-client/live.
Also sets the default exec strategy of Javac/R8/D8 to remote local
fallback.
Test: simple one action build
Change-Id: I3392a0f7ac6de818d0c5ba2e113fcb035c6fa0ae
ASAN SANITIZE_TARGET build may have missing dependencies due to
executables being skipped, thus bypass the required module check.
https://source.android.com/devices/tech/debug/asan#sanitize_target
Also streamline the bypassing logic.
Fix: 163802658
Test: TH
Test: lunch aosp_cf_x86_pasan-userdebug &&
m SANITIZE_TARGET=address nothing
Change-Id: Ia43c942ce7eae718bf6fcd254307535e418a70e7
These result in weird command line invocations when used with RBE.
Test: Ran an RBE build locally and made sure it still worked as expected
after the change.
Bug: b/163618332
Change-Id: Ic8a8adb3fffb357754384ddbf13684d944a9767e
Allow hermetically running the test suites by packaging the JDK
into the output zip file.
Bug: 139202337
Test: m cts && zipinfo out/host/linux-x86/cts/android-cts.zip
Change-Id: I6a59bb97a33113c83df9c7162e9c65ca90a8c196
All uses of this property have been migrated to
LOCAL_SANITIZE_BLOCKLIST.
Update language to comply with Android’s inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for
reference
Bug: 161896447
Bug: 162245450
Test: Add the old property to an Android.mk and ensure error is thrown.
Change-Id: I797ff651f03b954b410f76f4d201a962ded717df
So we don't accidentally create phony rules like
`MODULES-IN-: MODULES-IN-` and `MODULES-IN-.: MODULES-IN-*`
Bug: 162918277
Test: m com.android.art
Test: ninja -t browse
Change-Id: Id0656d1b08bc933df57914df162853934352593b
This hasn't worked for a couple years, and continues to bitrot. Just
remove it.
Test: treehugger
Change-Id: Iea6caf3c08252a560155e095135c5ddaad712991
Merged-In: Iea6caf3c08252a560155e095135c5ddaad712991
Allow for relocated partition directories in out, mainly for
devices which do not possess e.g. /product but must
distribute it in /system/product.
Use argparse to cope with increased argument count.
Test: Device without physical /product partition
m out/target/product/<device>/shareduid_violation_modules.json
-> Observe addition of violating apks from product
partition in shareduid_violation_modules.json
Signed-off-by: Felix <google@ix5.org>
Change-Id: I2d7826b41fb5b924f15ae21a73178fa4eec6a879
It should happen after adjusting vendor and product variables.
Bug: 162476652
Test: see image variant with LOCAL_PROPRIETARY_MODULE := true
Change-Id: I071434916c9ad18572c559a26e3ef6abb8c47303
The directory structure of several ramdisks are different depending on
whether the target is A/B or non-A/B. When the target needs to be
compatible with the GKI however, which is always built as A/B, it is
necessary to build these ramdisks using the A/B file hierarchy. Provide
a flag to enable this override when necessary.
Bug: 161579556
Change-Id: I1cf9a0ef5a338b0b5152113533b62804f3088c83
Now that they're defined with prebuilt_build_tool, we don't need to set
them here.
In future changes we can replace more of these definitions with
prebuilt_build_tool, as it can centralize the selection of
build-from-source or prebuilt for Make, Soong, and user-defined
genrules.
Test: treehugger
Change-Id: I5821bbad1b655d561919245320d7c184a6eac737
This will let us quickly check the system image build type,
and modify *.rc behavior based on that.
Bug: 142430632
Test: adb shell getprop ro.sanitize.hwaddress in hwasan build
Change-Id: Id1738ebc94a7c29ea9902a063f5d8dd6deb48f1b
This improved NOTICE bundling now includes TARGET_OUT deps that Android
Test Suites packages need, especially those for .apk files.
Bug: b/141258651
Test: $ make cts && \
unzip -p out/host/linux-x86/cts/android-cts.zip \
android-cts/NOTICE.txt \
| less -N
Change-Id: I4c84d194ff5982fc57b6a8097602d4a9df68d61c
Merged-In: I4c84d194ff5982fc57b6a8097602d4a9df68d61c
(cherry picked from commit e73186d2ac)
- the NOTICE file is only taken from out/host.
- currently only enabled from cts by setting flag "test_suite_notice"
Test: $ make cts && unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
$ make pts && \ unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
Bug: b/141258651
Change-Id: I696b424e5f2b09d28d53ccbd9198e1f4f301ec01
Merged-In: I696b424e5f2b09d28d53ccbd9198e1f4f301ec01
(cherry picked from commit 93d2fbbcad)
In Make, clang-tidy and clang run in the same action, but only clang can
be remoted via RBE/GOMA. So to prevent running up to 500 clang-tidy
instances at the same time and overloading the machine, use the local
pool when using clang-tidy. This does limit the parallelism of the clang
actions attached to clang-tidy, but hopefully that's not that much of a
problem. Clang-tidy isn't enabled by default (opt-in per-build /
per-module), and Soong does not run into this problem.
Bug: 162615762
Test: m WITH_TIDY=1 nothing; build-aosp_flame.ninja is identical before/after
Test: use_rbe m WITH_TIDY=1; inspect build-aosp_flame.ninja, see local_pool
Change-Id: I7dd196fcf4183d175b9608d3d48cdcdf81b514ce
Merged-In: I7dd196fcf4183d175b9608d3d48cdcdf81b514ce
This is a list of KMI versions used to filter gki_apex modules. Only
gki_apex modules with kmi_version field that are in the list are created.
Test: build GKI APEXes
Bug: 162888350
Change-Id: I0f582f6ea200d52482fd4065c8f4f8b32efc4dee
Dependencies of makefile modules are being redirected according to
SOONG_CFI_STATIC_LIBRARIES and SOONG_HWASAN_STATIC_LIBRARIES. But the
variables are shared among all variants (e.g. core, vendor, product,
arch), which can cause build error.
This splits the Makefile variables into several lists, one list per each
arch and each image variant, to correctly make the redirection.
Bug: 162476652
Test: build and inspect ninja
Change-Id: I8a46804d4b7c1c485e59e10710cc514a89333fa4
Instead of TARGET_BUILD_APPS, introduce DISABLE_PREOPT,
which is true when TARGET_BUILD_UNBUNDLED_IMAGE or TARGET_BUILD_APPS is set.
Test: TARGET_BUILD_UNBUNDLED_IMAGE=true m vendorimage and then
check if there is no preopt
Bug: 160390776
Change-Id: Id27030e602a29ebd438678270db13744dd145143
- TARGET_BUILD_UNBUNDLED_IMAGE is similar to TARGET_BUILD_APPS, but
its targets are the unbundled partitions instead of apps.
- Rename TARGET_BUILD_APPS_USE_PREBUILT_SDK to TARGET_BUILD_USE_PREBUILT_SDKS
because it is used even without TARGET_BUILD_APPS.
-Instead of TARGET_BUILD_APPS, use TARGET_BUILD_USE_PREBUILT_SDKS
to build java modules with prebuilt sdks, and propagate to Soong.
Bug: 160390776
Test: TARGET_BUILD_UNBUNDLED_IMAGE=true m vendorimage
Change-Id: Ie096212ccbcca0018baae55e106af693b002c9e5
The prop list the name of the a/b partitions that are supposed to
update via an OTA. The list varies by product, and update engine
needs to know these partitions to install the GKI update correctly.
Test: build and check the property
Change-Id: I5258955a5c3303bdc61b97fc92f5dfa1905f7c37
It'll replace LOCAL_SANITIZE_BLACKLIST.
Update language to comply with Android’s inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for
reference
Bug: 161896447
Bug: 162245450
Test: n/a (no users in AOSP for this property).
Change-Id: Ie31c35af722d05011a528e1170b0c026b50fbf88
Update android_app_set make files to use INSTALL rather than MASTER for
android_app_sets, this better matches the wording used for apex_set.
See https://source.android.com/setup/contribute/respectful-code for
reference
Bug: 161896447
Test: m nothing
Change-Id: I7f37a72914f4b18a839942cc3db98b1c57db921e
There are a few extra flags and a few changes to flags that have
happened over the course of getting Robolectric to run under Tradefed
that need adding to the autogenerated config.
Bug: b/157635117
Test: manual
Change-Id: Ifdf90bb512a6e92ed39e671aeff65e0ddf2d0c4f
This improved NOTICE bundling now includes TARGET_OUT deps that Android
Test Suites packages need, especially those for .apk files.
Bug: b/141258651
Test: $ make cts && \
unzip -p out/host/linux-x86/cts/android-cts.zip \
android-cts/NOTICE.txt \
| less -N
Change-Id: I4c84d194ff5982fc57b6a8097602d4a9df68d61c
(cherry picked from commit e73186d2ac)
Apparently needed for cts tests due to apks putting intermediate files under
TARGET_OUT even when going to HOST_OUT.
Test: m with and without change verified no differences in notice files
Bug: 141258651
Change-Id: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
(cherry picked from commit 5e9e1fbe83)
Merged-In: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
(cherry picked from commit 74a6a0a32a)
- the NOTICE file is only taken from out/host.
- currently only enabled from cts by setting flag "test_suite_notice"
Test: $ make cts && unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
$ make pts && \ unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
Bug: b/141258651
Change-Id: I696b424e5f2b09d28d53ccbd9198e1f4f301ec01
(cherry picked from commit 93d2fbbcad)
The change enables conversion of
hardware/interfaces/drm/1.0/default from make to Soong
by exporting a variable used in a conditional check by
the modules in that directory.
Bug: 161571531
Bug: 123557988
Test: Build with TARGET_ENABLE_MEDIADRM_64 :=
Test: Build with TARGET_ENABLE_MEDIADRM_64 := true
Test: Insepction of out/soong/soong.variables for each
Test: Inspection of target files package for each
Test: Verify inclusion of modules in vendor snapshot
Change-Id: I5737d9d4687e182595a213be000b2e56c7536b8a
Revert "Track allowed transitive deps in any updatable module."
Revert submission 1312796-apex-allowed-deps
Reason for revert: b/161974327
Reverted Changes:
I52a4be72e:Add a check for apex/allowed_deps.txt to droidcore...
I56771ba3f:Track allowed transitive deps in any updatable mod...
Change-Id: I20ad7bf2001e76b5e3ca4aaf3baa5318e270f3dc
The check ensures that build graph for updatable modules contains only
allowed dependencies at build time.
Bug: 149622332
Test: m
Change-Id: I52a4be72efaa523d53827dd11822a7802543dd10
Merged-In: I5695dd1003386191dbbe0ea511ef5b615d0d5e4e
Exempt-From-Owner-Approval: cp
Apparently needed for cts tests due to apks putting intermediate files under
TARGET_OUT even when going to HOST_OUT.
Test: m with and without change verified no differences in notice files
Change-Id: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
Android S would not support upgrade from O-MR1 devices, so VNDK Lite
configuration is no more valid. This change removes all VNDK-Lite
related steps and makr BOARD_VNDK_RUNTIME_DISABLE as deprecated
variable.
Bug: 158719241
Test: m -j passed
Change-Id: Ifb355da936933843862426e7ddfce9c7f69cea61
Merged-In: Ifb355da936933843862426e7ddfce9c7f69cea61
* changes:
Create $OUT/{vendor,odm}/lib before symlink modules
Add odm_dlkm/etc/build.prop
Install ODM dlkm to appropriate place and symlink
Add notice files for odm_dlkm
Add odm_dlkm partition.
Test: Verified in conjunction with changes to soong (aosp/1359742)
Test: Treehugger to verify backwards compatibility
Change-Id: I39d2669ff74b4387606b6416e8afefc1f6507348
When building an app in Soong with JNI libraries copy the unstripped
libraries to the symbols directory in directory that matches the
installed path of the APK.
Bug: 159726429
Test: forrest
Change-Id: If8e423c7cdf3afd518761b5ab6bc857321acda46
Merged-In: If8e423c7cdf3afd518761b5ab6bc857321acda46
(cherry picked from commit e926cab372)
In the concept of system/vendor build split, usually vbmeta.img
won't be built in a system-only build and/or a vendor-only build.
Instead, vbmeta.img will be generated later when combining system
and vendor artifacts.
- system-only artifacts: system.img, system_ext.img,
product.img and vbmeta_system.img
- vendor-only artifacts: boot.img, vendor.img, odm.img and
vbmeta_vendor.img
PRODUCT_BUILD_VBMETA_IMAGE can be used to disable building vbmeta.img.
However, it also disables vbmeta_system.img and vbmeta_vendor.img
generation because both are only depended by vbmeta.img.
This change adds both vbmeta_[system|vendor].img into droidcore,
so they will be built even if PRODUCT_BUILD_VBMETA_IMAGE is set
to false, when we're building system-only artifacts or vendor-only
artifacts.
Bug: 161425613
Test: sets PRODUCT_BUILD_VBMETA_IMAGE := false then build, checks
vbmeta_system.img is generated but vbmeta.img is not.
Change-Id: I39d9819da4704195b0e1ee58d13c848ae97d474a
* changes:
LOCAL_JNI_SHARED_LIBRARIES is no longer bad, so remove from my_soong_problems
Add mk2bp_catalog.py that outputs more data about makefiles to be converted to soong.
- Adds makefile and which files are installed to the SOONG_CONV CSV file
- Updates soong_to_convert.py to be able to parse that
- Adds new script that is more detailed.
- Outputs that file as part of the droidcore build to
$(OUT_DIR)/target/product/$(TARGET_DEVICE)/mk2bp_remaining.html
Test: m out/target/product/$(get_build_var TARGET_DEVICE)/mk2bp_remaining.html
Change-Id: I7c380b6070754f4329bf3965595751e4dac794a0
Dist the transitive lint report for each unbundled app built by Soong
when lint-check is on the command line.
Bug: 153485543
Test: m TARGET_BUILD_APPS=Gallery2 lint-check dist
Change-Id: Icd2b6f884396fa5f743746099301c325ca82a324
Merged-In: Icd2b6f884396fa5f743746099301c325ca82a324
(cherry picked from commit b842952421)
aosp/1317598 has made a regression that the dependency from
buildinfo.prop to INSTALLED_ANDROID_INFO_TXT_TARGET is removed. As a
result, buildinfo.prop is not re-builty even after installclean, which
caused inconsistency between ro.build.display.id (from buildinfo.prop)
and ro.system.build.fingerprint (from build.prop which is re-built).
Fixing the issue by moving buildinfo.prop from $(call
intermediates-dir-for,ETC) to $(call intermediates-dir-for,PACKAGING)
so that it gets deleted by installclean.
Bug: 158583916
Test: m out/target/product/generic_arm64/system/build.prop
m installclean
m out/target/product/generic_arm64/system/build.prop
Inspect out/soong/verbose.gz and check that buildinfo.prop was newly
created.
Change-Id: Id82b8fdc872deffb6a1764ca6d3c7114301dee1d
Dump $(modules_to_install) instead of $(product_target_FILES) to get a
more complete list of target files.
Use `echo $(modules_to_install) | tr -s ' ' '\n'` instead of
`$(foreach m,$(modules_to_install),$(info $(m)))`.
This way only one `echo` command is emitted instead of emitting `echo`
command for each file. This speeds up the invocation speed tremendously.
Bug: 159195410
Test: m dump-files
Change-Id: I06549cecc64177f1eb5a01e31a55d5eed307fcfd
We put reproducible timestamps in zip files so that the artifacts
are consistent, but that leads to old timestamps in the output
directory if they are unzipped as part of the build. Use
unzip -DD when unzipping to update the timestamps.
Bug: 161015009
Test: touch -d 2020-01-01 ref; find $OUT/system -not -newer ref
Change-Id: I6f08ba8695d90a8225cfc04e679755e6296deed0
Merged-In: I6f08ba8695d90a8225cfc04e679755e6296deed0
(cherry picked from commit c27d795b63)
We put reproducible timestamps in zip files so that the artifacts
are consistent, but that leads to old timestamps in the output
directory if they are unzipped as part of the build. Use
unzip -DD when unzipping to update the timestamps.
Bug: 161015009
Test: touch -d 2020-01-01 ref; find $OUT/system -not -newer ref
Change-Id: I6f08ba8695d90a8225cfc04e679755e6296deed0
Dist the transitive lint report for each unbundled app built by Soong
when lint-check is on the command line.
Bug: 153485543
Test: m TARGET_BUILD_APPS=Gallery2 lint-check dist
Change-Id: Icd2b6f884396fa5f743746099301c325ca82a324
When building an app in Soong with JNI libraries copy the unstripped
libraries to the symbols directory in directory that matches the
installed path of the APK.
Bug: 159726429
Test: forrest
Change-Id: If8e423c7cdf3afd518761b5ab6bc857321acda46
All known uses of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` (in AOSP and downstream branches) have
been replaced with `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
This reverts commit 62d9912677.
Reason for revert: The cause of the build breakages caused by the
initial change has been addressed.
Test: m nothing
Test: Check that `m nothing COVERAGE_PATHS=art` fails.
Test: Check that `m nothing COVERAGE_EXCLUDE_PATHS=art` fails.
Test: Check the Android Build for build errors related to these variables.
Bug: 158212027
Bug: 160769227
Change-Id: Ic267e1b61e84bc6f016a3eb57efe7f9b859adb42
for compatibility with across branches, still need to
export tradefed.jar.
Test: make cts
Bug: 149758913
Change-Id: I101cba5dc3abe483b4dfbe6a113e24960e0e07ba
All known uses of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` have been replaced with
`NATIVE_COVERAGE_PATHS` and `NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
Test: m nothing
Test: Check that `m nothing COVERAGE_PATHS=art` fails.
Test: Check that `m nothing COVERAGE_EXCLUDE_PATHS=art` fails.
Test: Check the Android Build for build errors related to these variables.
Bug: 158212027
Change-Id: Icc7c1d9734e78c2bf327f00f04355700b5476648
add-all-host-to-target-required-modules-deps and
add-all-target-to-host-required-modules-deps permit errors when
ALLOW_MISSING_DEPENDENCY is set to true.
The previous behavior may break when doing unbundled builds.
Bug: 160318430
Bug: 7456955
Test: TH art-target-arm build pass
Change-Id: I00818d27ce18f4072eff9fa98958be820b5cd1f8
Merged-In: I00818d27ce18f4072eff9fa98958be820b5cd1f8
(cherry picked from commit 2c7c8bb657)
Previously, only system/build.prop was registered as dist out. This
change adds build.prop in the other partitions to the dist out. This
will allow us to examine those build.prop files without downloading
the entire target-files.zip file.
Bug: 117892318
Test: examine the dist out
Change-Id: I6f4ba16d765336a57f0da90edba788a627f25e60
This is used when Soong and Make don't know the full output file list,
and so use a tool to generate a per-module apkcerts.txt file instead.
Fixes: 160119159
Test: m apkcerts-list
Merged-In: I48183bc8cbf9dcc521f791812734205ed3f28f4c
Change-Id: I48183bc8cbf9dcc521f791812734205ed3f28f4c
These values are used in two out of the many possible sdk_version
configurations, and therefore weren't really defaults in any
meaningful sense. Giving them more descriptive names makes the code
easier to follow.
Bug: 157640067
Test: m java
Change-Id: I67767b2be72ed3d8cc879280036850096eb65415
build.prop files under system_ext, product, and odm partitions are moved
to the ./etc subdirectory. This is to be in-line with the established
practice of having all configuration files under ./etc subdir.
build.prop doesn't need to be an exception.
However, system/build.prop and vendor/build.prop were not moved because
there are a lot of apps and tools that depend on the path.
Bug: 158735147
Test: device has build.prop under ./etc and is bootable
Change-Id: I37c79f7337680f92406d9e196e5762bb8e7da5d8
* changes:
Handle the case when non-optional props have the same value
BUILD_BROKEN_DUP_SYSPROP as escape hatch for the new sysprop restriction
pm.dexopt.* props in runtime_libart.mk becomes optional
Some properties are set as optional
ro.zygote in base_system.mk is optional
Don't inherit tablet-dalvik-heap for GSI and emulator
Support optional prop assignments
As the final step for the refactoring of sysprop configuration, this
change adds BUILD_BROKEN_DUP_SYSPROP which is the escape hatch for
the new restriction. When it is turned on, the new syntax `a ?= b`
collapses to the old syntax `a = b`, duplicated assignments are allowed,
and the dups are resolved following the legacy rule of preferring the
first.
This change also summarizes all the user-facing changes to the Change.md
file.
Lastly, post_process_prop.py is refactored to accept new argument
'--allow-dup' which when turned on allowes duplicated sysprops.
Bug: 117892318
Bug: 158735147
Test: atest --host post_process_prop_unittest
Exempt-From-Owner-Approval: cherry-pick from master
Merged-In: I7bdfffd47d50aad66a78e28a30c3dad7ebac080c
(cherry picked from commit b302cdf6a4)
Change-Id: I7bdfffd47d50aad66a78e28a30c3dad7ebac080c
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
As the final step for the refactoring of sysprop configuration, this
change adds BUILD_BROKEN_DUP_SYSPROP which is the escape hatch for
the new restriction. When it is turned on, the new syntax `a ?= b`
collapses to the old syntax `a = b`, duplicated assignments are allowed,
and the dups are resolved following the legacy rule of preferring the
first.
This change also summarizes all the user-facing changes to the Change.md
file.
Lastly, post_process_prop.py is refactored to accept new argument
'--allow-dup' which when turned on allowes duplicated sysprops.
Bug: 117892318
Bug: 158735147
Test: atest --host post_process_prop_unittest
Exempt-From-Owner-Approval: cherry-pick from master
Merged-In: I7bdfffd47d50aad66a78e28a30c3dad7ebac080c
(cherry picked from commit b302cdf6a4)
Change-Id: I7bdfffd47d50aad66a78e28a30c3dad7ebac080c
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
This is used when Soong and Make don't know the full output file list,
and so use a tool to generate a per-module apkcerts.txt file instead.
Fixes: 160119159
Test: m apkcerts-list
Change-Id: I48183bc8cbf9dcc521f791812734205ed3f28f4c
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
Merged-In: Ib26a0e29f09b87400fd8bc41d2c06a4a8a397a19
Change-Id: Ib26a0e29f09b87400fd8bc41d2c06a4a8a397a19
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
Merged-In: I5de6eb460709d7d66d81e3432e11f94ff14dd1c9
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
Merged-In: I409dbb04b09744a7bd95a4b69361e858b9f89e23
Change-Id: I409dbb04b09744a7bd95a4b69361e858b9f89e23
(cherry picked from commit bad8b386e6)
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
(cherry picked from commit 3031c29905)
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
The gcc tools are deprecated; replace with the llvm equivalent.
Bug: 158484106
Merged-In: I9c3717bde281667eec82cc21dc63dc7fd5592a46
Change-Id: I9c3717bde281667eec82cc21dc63dc7fd5592a46
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