This changes the build system to uncompress native libraries in
preinstalled APKs only if the libraries are actually compressed.
Previously, any preinstalled APK containing native libraries was
modified by having all native libraries removed from the APK and then
re-added to the APK in uncompressed form.
Bug: 27887819
Change-Id: I3db172133e141bb6282bf3ed7070b068a826724e
The APK signing tool, build/tools/signapk, needs to know the API Level
of the oldest platform supported by the APK. The APK's minSdkVersion
may reference that using a number (API Level) or a version code. To
handle the version code case, the existing logic was to see if it
matches $PLATFORM_VERSION_CODENAME and then substitute it with
$PLATFORM_SDK_VERSION.
However, some platforms support multiple version codes. To handle this
scenario, this commit changes the logic for computing the min API
Level for signing purposes to treat any non-numeric minSdkVersion as
$PLATFORM_SDK_VERSION.
Bug: 28715556
Change-Id: I292c96e8928b7e2f8d9716ef2be33a23a87764c4
Enable mini-debug-info for the boot image by default. This
can be disabled with WITH_DEXPREOPT_DEBUG_INFO=false.
Bug: 28474219
(cherry picked from commit 58f6bfaa37)
Change-Id: Ifd59d854f01ad8cf703f16d7a6e88c2c82d47feb
Pack the base_fs files ({system,vendor}.map) into target_files.zip,
which would be needed when rebuilding the images at signing.
Reset the base_fs paths to point to the files in META/.
Also add blk_alloc_to_base_fs into otatools.zip.
Bug: 27698960
Change-Id: If4eb274b3f3d839c4365624f46f0dc89bd2fa440
This reverts commit 1d4ad6a527.
This topic has been reverted because it causes build flakiness and
bogus verification failures on most active changes.
Change-Id: I4a935c9a861e063e28ddc1c35bc3fa015174e81d
By resetting we lose LOCAL_*MODULE_STEM values for the second include
of the *_internal.mk.
We don't need to reset because we now store the default value to a
temporary variable my_*module_stem in configure_module_stem.mk.
Bug: 27775991
(cherry picked from commit c160c3f21a)
Change-Id: I5d9b7f7214d98a1bf953fadb9951a8af1e993057
Allows setting the min sdk version for target Jack commands,
overriding the default value obtained from LOCAL_SDK_CURRENT.
Bug: 28188420
(cherry picked from commit 109141ccc9)
Change-Id: Id9c5275bc71b8d9042173bf1e40aa3199e9508e6
The following tools are essential to create squashfs and f2fs images
during signing (if applicable).
squashfs: mksquashfs and mksquashfsimage.sh
f2fs: make_f2fs and mkf2fsuserimg.sh
Bug: 28179154
Change-Id: Ia48bc6d9a40d2667bc6f2c973bd0c55eed7a06fc
Allow to modify the boot image compilation. Can be used to easily
dump initialization failures.
Bug: 27265238
(cherry picked from commit 907fb03273)
Change-Id: I9d54c562a2e623b23b7c1dea9cdbe303786c95dd
Use 'chmod +x' to make sure that they're executable, even if the source
file is not.
Bug: 28097475
Change-Id: Id155f6b4ff188f5c909fd6237fd64183af264f79
(cherry picked from commit 08420cbc8a)
Replaces old LOCAL_EMMA_COVERAGE_FILTER by new variables:
- LOCAL_JACK_COVERAGE_INCLUDE_FILTER for included classes
- LOCAL_JACK_COVERAGE_EXCLUDE_FILTER for excluded classes
Both variables can contain a comma-separated list of class names,
where * and ? are accepted wildcard (like foo.?ar.*).
When code coverage is enabled, we will use these variables to
pass code coverage filters on the Jack command-line.
Bug: 28014424
(cherry picked from commit 74ec3f49d1)
Change-Id: Ie4253981c0e6a62422ab84dfd67ef5eebc0b0284
Now that mac compatibility has been fixed
BUG: 27657762
Change-Id: I49933ccedf74b9d172967dad721971a752047da6
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
Bug: 19735423
- Unlike other archs, x86_64 has both usr/lib and usr/lib64. we need
to search for libm.so and libc.so in lib64/. Otherwise the linker
will report error.
Change-Id: I2859bee066a9eb100828d90da8adf0f9817d77e6
When building apps with EMMA_INSTRUMENT=true, we must ensure that
jacoco is at least on the classpath (or even embedded for unbundled
branches) and that proguard will ignore jacoco classes. Otherwise
the Jack compilation would fail.
For unbundled build, we include the proguard configuration file
build/core/proguard.jacoco.flags to ignore jacoco classes.
For full build, we ensure jacoco is on the classpath during the
jack compilation.
Bug: 27607712
Change-Id: I0ad37d74e63028a8144a125f052dc1c5fa10fc66
My previous attempt at properly handling symlinked OUT_DIRs only worked
if the symlink was to a different directory, not one in the same
directory.
This time, make sure that both make and soong use the same
representation of the output directory by passing BUILDDIR to
bootstrap.bash. Soong has been updated to pick whether to use a relative
or absolute path back to the source tree depending on what makes sense.
If the BUILDDIR or the path back to the source tree change, re-run the
bootstrap.
Also, move the $OUT_DIR/Android.mk and $OUT_DIR/CleanSpec.mk generation
to before Kati runs. In the case that $TOP/out was symlinked to
$TOP/out.angler:
1) Soong generates out.angler/soong/Android.mk
2) Kati's find generator produces in-memory tree of the filesystem
3) $(shell ) creates out.angler/Android.mk
4) The emulated findleaves Android.mk search finds
out.angler/soong/Android.mk since the in-memory tree is never updated.
This doesn't happen in the normal case, because we pass --prune=$OUT_DIR
to findleaves.
Change-Id: Ib0fdae2e80f75ddcf33a3c8c5ea0978f5308b437
(cherry picked from commit cc60f01357)
[ccross: resolved conflicts in nyc-dev]
Soong needs to be able to reverse the relative path to out. Switch to
absolute paths if .. won't work because of out being a symlink to
somewhere else.
Bug: 27612837
Change-Id: Ib8b9e0f80523148cfd4b69a03d164578916d8fd5
(cherry picked from commit d53c0c7b45)
[ccross: resolved conflicts in nyc-dev]
In order to compile lambda code javac requires various invokedynamic-
related classes to be present. This change adds stubs needed for
javac to compile lambdas.
Bug: 27475234
Bug: 26753820
Bug: 26604040
Change-Id: Ifc79eebabfc6b64c0daf6b9ca236d1967a45a735
We no longer use emma with Jack. However, during the process of a
full build, we may run the emma task and overwrite the coverage file
generated by Jack with the one from emma because they use the same
filename.
This CL renames coverage files generated by emma so they no longer
break those created by Jack.
Keep coverage.em file name for host rules where Jack is not called.
Bug: 27822188
(cherry picked from commit 491c9ce48a
&& commit 8f0e52c3a6)
Change-Id: I26beee5a8d42a2ef1d476661e4b591fb09f1276f
Hardware-backed keystore attestation and version binding rely on
PLATFORM_SECURITY_PATCH having the format YYYY-MM-DD.
Bug: 22914603
Change-Id: If116e3ca5611920021b098d6b610ae609956aa5c
In commit e758f9319d we switched from
TARGET_AAPT_CHARACTERISTICS to PRIVATE_TARGET_AAPT_CHARACTERISTICS in
add-assets-to-package but forgot to set the variable when we are running
the old aapt.
Bug: 27874886
Change-Id: I03ced3030dcb9f024eef5b23dbfd5d99157952ea
There was a typo in binary.mk. compile-dotdot-XXX-file in
definitions.mk was also using -include.
Bug: 26839129
Bug: 27886012
Change-Id: I4a0145fb70413998cc65d30d2efcd68af07b4800
(cherry picked from commit 72904774a3)
Also specify "-d keepdepfile" to ninja so .P files won't be
deleted by ninja.
-include for .s files are removed because GCC doesn't
generate .d files for .s files.
Bug: 26839129
Bug: 27886012
Change-Id: If00e93c7a33449ec314a5cdba438475a32979f4e
(cherry picked from commit 4037c4225a)
When USE_SOONG=true, ignore any Android.mk file that has an Android.bp
file in the same directory.
Change-Id: Id79bd90c2aed5dafc2f8ad2c5b7eb0aa6e81dc18
(cherry picked from commit 861ab99536)
am: 880e914
* commit '880e914ec6b8ce053ad5b766a2907afaf0c79673':
Update Security String to 2016-04-02 in preparation for April 2016 Security OTA v2 - kernel updates with patches for CVE-2015-1805
am: d7bf980
* commit 'd7bf9800f4f5fdc83b2ffb163207025459b26b36':
Update Security String to 2016-04-02 in preparation for April 2016 Security OTA v2 - kernel updates with patches for CVE-2015-1805
am: fa24625
* commit 'fa2462551694090da0d0c941d805165c2e2f6dc2':
Update Security String to 2016-04-02 in preparation for April 2016 Security OTA v2 - kernel updates with patches for CVE-2015-1805
am: b90d094
* commit 'b90d09439a5901f78e9eae332f163cdc1ff98f49':
Update Security String to 2016-04-02 in preparation for April 2016 Security OTA v2 - kernel updates with patches for CVE-2015-1805
am: df28b90
* commit 'df28b90a7c45a02c4ba9896ad89f745a48fac7df':
Update Security String to 2016-04-02 in preparation for April 2016 Security OTA v2 - kernel updates with patches for CVE-2015-1805
am: 2b71be5
* commit '2b71be536b6de0d16d0ae3224d1b00c41bec467e':
Update Security String to 2016-04-02 in preparation for April 2016 Security OTA v2 - kernel updates with patches for CVE-2015-1805
http://b/26987366
- Use clang-2690385 to build RenderScript toolchain.
- Use armv7-linux-androideabi as the triple used to build RenderScript
runtime libraries.
(cherry picked from commit 41f4b242e3)
Change-Id: I50751f410a2f7c83532cec9b96c50d9afe1224c1
This is just to ensure no dex file is built with dx any more, cleaning
of the build rules from Jack optionality is still to be done.
Bug: 27218410
(cherry picked from commit 22313f2b2a)
Change-Id: I1e7f2f5dcc7f95a44f5ebf2e4ba99931ff3ba014
After adding java.util.stream, doc-comment-check target
started to fail due to "Too many words" while
generating out/target/common/docs/doc-comment-check-timestamp.rsp
This change extends number of dumped words to 5400.
Bug: 27692239
Change-Id: Ifa75cada7b90c5737fc7a1d10325f3a49a2238ac
Also ensure that sdk.atree can find jack.jar and jill.jar from prebuilt.
Bug: 27372042
(cherry picked from commit 233584bb80)
Change-Id: Ie266104e51c09fa21ccb09c1f27ad7068472965c
Set Jack min sdk according to LOCAL_SDK_VERSION. Gives Jack current
version when LOCAL_SDK_VERSION is not available.
Bug: 27371864
(cherry picked from commit c6383d6ec6)
Change-Id: Ieba0219494f29d2737d2ca234317c3af7e5e72c8
There seems to be bug in Kati that when we write it as:
LIBART_TARGET_BOOT_ART_EXTRA_FILES += boot.oat $(patsubst
%.art,%.oat,$(LIBART_TARGET_BOOT_ART_EXTRA_FILES))
boot.oat ends up in the value twice.
This works around the bug, filed as bug/27676615.
Bug: 27546601
Change-Id: Ifc330280496083a4c817e53bc5c77c86e48a2426
To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the
platform.zip. We also save the build variables that may affect how we
rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).
In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the platform.zip, using
configuration stored in pdk_dexpreopt_config.mk.
With the prebult modules, we override the implicit rule that directly
copies the odex from the platform.zip.
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to prebiult_internal.mk. An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the platform.zip, we install the stripped version from
platform files inside platform.zip, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this
point.
We generate prebuilt module only if it's not already defined in the
source tree.
Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
Bug: http://b/27482631
This fixes an issue where krait compiles were not passing the proper
flags to the assembler when -no-integrated-as is used. This was
preventing ART from switching to clang in some cases.
(cherry picked from commit c503d8ef58)
Change-Id: I4a0efb78f37fee73bf61841f0347328b8f61c192
As a middle way between full preopt/high performance/long builds,
and no preopt/low performance/fast turnaround, preopt only the
boot image in eng builds.
Bug: 26794212
Change-Id: I4a2692f3ce84823cd40c6b7d672fd73257739ef8
The rule that builds boot.art also produces boot.oat, boot-*.art, and
boot-*.oat as a side effect, and the install rule for boot.art was
installing them using *.art and *.oat. This meant that PDK builds had
no rule to install the extra files, so it used the ones from the
platform.zip file instead of the locally built ones.
Generate a list of the files that should be produced by the boot.art
build, and manually create install rules for them that depend on the
built boot.art and are depended on by the installed boot.art.
Bug: 27546601
Change-Id: I9734491c3179bca2d4b2ae13b0c6a03e4c26b0b2
Any artifacts that are targeting SDK versions < 24
and not explicitly setting the LOCAL_JAVA_LANGUAGE_VERSION
are now defaulted to 1.7.
Bug: 27495650
Bug: 26753820
Bug: 27377071
Change-Id: Ia903cd5bf14c1947c485384d095a93c0aa23d272
It is needed to insert testdata section into simpleperf cts test.
Bug: 27387280
Change-Id: I58cea106d135f535626d8624a016bd2aaceeb8ea
(cherry picked from commit 273e9109c1)
Calling $(abspath) is better than checking and prepending $(PWD) if
necessary.
Bug: 27429759
Change-Id: Ia156f8a5d6b88b6090f4d23c7f9166bd62d3ab70
(cherry-pick from commit 80ceadc945)