Commit graph

76002 commits

Author SHA1 Message Date
Dmitrii Merkurev
494358dec8 Merge "Introduce EROFS compress hints to the Android build system" 2022-05-19 11:00:11 +00:00
Joe Onorato
9327b9cb4d Merge "Generate ninja files for api assembly and run ninja." 2022-05-19 05:56:48 +00:00
Chih-hung Hsieh
b28e4c2235 Merge "Handle more mixed warning lines from RBE" 2022-05-18 21:31:22 +00:00
Chih-hung Hsieh
89703b6374 Merge "Add warning type into TopDirs and TopFiles index" 2022-05-18 21:03:32 +00:00
Issei Suzuki
3a294b6ca2 Merge "Revert "Slim down the sdk product"" 2022-05-18 12:26:01 +00:00
Joe Onorato
51497185fd Generate ninja files for api assembly and run ninja.
Change-Id: I003536e4ed4481acbdc041a6450106f8459d5978
2022-05-18 05:24:48 -07:00
Issei Suzuki
8d4de90683 Revert "Slim down the sdk product"
Revert submission 2096601-sdkprod

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/build-details/8608272/targets/sdk, bug b/233036676
Reverted Changes:
I5ef671781:Update sdk parent
I940655c39:Slim down the sdk product
I926d520ce:Update sdk parent

Change-Id: I16953ba601a22b469c312dc481c45ec351ac8cbc
2022-05-18 11:36:23 +00:00
Anton Hansson
8033f34ec2 Merge "Slim down the sdk product" 2022-05-18 10:07:49 +00:00
Dmitrii Merkurev
8ab6603a43 Introduce EROFS compress hints to the Android build system
Make it possible to provide a prebuilt hints file to specify different compression strategies on a file basis for all partitions using:

BOARD_EROFS_COMPRESS_HINTS := <path>/erofs-hints.txt

or separately for every partition using:

BOARD_SYSTEMIMAGE_EROFS_COMPRESS_HINTS := <path>/system-partition-erofs-hints.txt
BOARD_VENDORIMAGE_EROFS_COMPRESS_HINTS := <path>/vendor-partition-erofs-hints.txt

Hints format: Each line is defined by tokens separated by spaces in the following form:

<pcluster-in-bytes> <match-pattern>

pcluster-in-bytes can be specified as 0 which mean file will not be compressed

Bug: 231934752
Test: used dump.erofs -S system.img to verify the system image isn't compressed after specifying BOARD_SYSTEMIMAGE_EROFS_COMPRESS_HINTS := no-compress.txt, where no-compress.txt contains 0 .*
Test: used dump.erofs --nid=<inode-for-all-apk-files> vendor.img to verify apk files are not compressed (the rest of the partition content is compressed)
Test: used dump.erofs -S <all-images> to verify all images are not compressed after specifying BOARD_EROFS_COMPRESS_HINTS := <path>/no-compress.txt
Change-Id: I64054e26af5ea5781c45d2183b7796a9ad2b7927
2022-05-17 23:10:37 +00:00
Chih-Hung Hsieh
a55837c7d1 Handle more mixed warning lines from RBE
* Use android_root or __file__ path to find
  the source tree root and its sub directories.
* Use the sub directory list to clean up RBE-returned
  warning lines, removing all mixed prefix before
  the top sub directories.
* Change some re.match rules and order to save
  unnecessary comparisons.

Test: warn.py --url=http://cs/android --separator='?l=' build.log > warnings.html
Test: warn.py --gencsv build.log > warnings.csv
Bug: 198657613
Change-Id: I78cc17d04b8ab9e12935ef04797f3272298d5267
2022-05-17 11:46:58 -07:00
Chih-Hung Hsieh
4b020cd1d3 Add warning type into TopDirs and TopFiles index
* The index was a directory or file path.
  This change adds additional entries that have
  warning type prefix in the index.
* In the "Directories/Files with at least 1% warnings"
  section, the list will include number of warnings for
  (1) "all warnings in a directory/file"
  (2) "warnings of a type in a directory/file"
  (3) "warnings of a type in all directories/files"
  Examples:
    4273 (8.7%) frameworks/av/...
    4130 (8.4%) packages/...
    2427 (5.0%) [google-explicit-constructor] */...
    1628 (3.3%) [cert-err34-c] */...
    1099 (2.2%) [google-runtime-int] bionic/tests/math_data/...
     608 (1.2%) [cert-err34-c] external/...

Bug: 231245501
Test: warn.py --url=http://cs/android --separator='?l=' build.log > warnings.html
Test: warn.py --gencsv build.log > warnings.csv
Change-Id: I13bb54c846ad514334f78c5a71e994a131a92963
2022-05-17 11:46:15 -07:00
Treehugger Robot
d528b3c553 Merge "Create $(zip_root)/PVMFW & archive prebuilt used" 2022-05-17 16:34:22 +00:00
Treehugger Robot
3eb3ca0c9b Merge "Add keep rules for @KeepForWeakReference annotation" 2022-05-16 21:19:03 +00:00
Treehugger Robot
266225ccb2 Merge "Revert "Do not compress zip file for unit tests."" 2022-05-13 23:44:57 +00:00
Sam Saccone
7d7ae94bef Revert "Do not compress zip file for unit tests."
This reverts commit a24c755f66.

Reason for revert: not worth the additional storage cost.

Change-Id: I8ed24ddef4ac3f640bf35e79cddf433e0df0854d
2022-05-13 19:55:25 +00:00
Anton Hansson
59f95bcd1c Merge "Remove unused dependencies from sdk goals" 2022-05-13 08:55:55 +00:00
Treehugger Robot
69b1b0c10a Merge "Lightweight ninja writer in Python" 2022-05-12 23:46:55 +00:00
Treehugger Robot
a96be433c4 Merge "Checkpoint new build orchestrator" 2022-05-12 22:55:33 +00:00
Anton Hansson
af94854296 Slim down the sdk product
The sdk_phone_armv7 product is designed to build system images, which
adds unnecessary dependencies and enables unnecessary checks (such as
verifying dexpreopt artifacts).

Bug: 205008975
Test: m sdk sdk_repo dist && diff android-sdk.zip (only build.prop diffs)
Change-Id: I940655c39a3ae58839521416abafaf461df44921
2022-05-12 22:41:02 +00:00
Joe Onorato
7cf6f97775 Checkpoint new build orchestrator
Test: rm -rf out && multitree_build
Change-Id: Ic274182f0925f30d56227597b65e5b9ef3b19707
2022-05-12 12:12:38 -07:00
Spandan Das
aacf2376a5 Lightweight ninja writer in Python
Summary:
- Create python classes for ninja vocbulary in `ninja_syntax.py`. These
  classes will be serialized to a ninja file
- Create a Writer class in `ninja_writer.py`. The current API supports
  adding variables,rules,build actions, etc. This can be extended in the
  future (See `test_ninja_writer.py` for examples)

Future Work:
 - Update the `Subninja` class once chDir is supported (aosp/2064612)
 - Support a width parameter that will be used to wrap long lines of
   text. This will improve readability of the generated files

Expected Use Case: Multi-tree build orchestrator

Test: python ./test_ninja_syntax.py
Test: python ./test_ninja_writer.py

Change-Id: I90c7ee69ddeb7c20c3fd4fca5a911dddbf2253bd
2022-05-12 17:47:29 +00:00
Michael Groover
9d1a0a47d5 Merge "Add support for -providerArg in signapk" 2022-05-12 17:40:31 +00:00
Colin Cross
544aedda27 Merge "Remove HOST_DALVIK_*" 2022-05-12 15:44:20 +00:00
Pierre-Clément Tosi
c7b837872d Create $(zip_root)/PVMFW & archive prebuilt used
It might be useful to have access to the prebuilt that the Android build
used to create the pvmfw partition so add a new directory (similarly to
other partitions) containing the prebuilt (which is also the only
content of the partition). This is particularly useful in ATC, when
detecting if the prebuilt was updated by the build.

Bug: 232253742
Test: m
Change-Id: I1116d91ffb073821568bcaeed30bbb43873dcafa
2022-05-12 16:37:46 +01:00
Anton Hansson
55a8f02ea8 Remove unused dependencies from sdk goals
The SDK no longer includes system images, so no longer needs to depend
on targets that are only relevant for the system images.

Remove all the explicit dependencies that end up depending on
"everything" but are not included in the sdk zip.

Two positive side-effects:
- fewer unused things get built (now ~32k targets, down from ~108k)
- apexes no longer get built, eliminating the risk of mismatch between
  module sdk prebuilts and source-built AOSP apexes.

There are some potential risks with this CL:
- because we no longer forcefully rebuild everything, if there are bugs
  in dependencies of exising files in the SDK, incremental builds may
  not rebuild them.
- some files that get built into the SDK may be being built as a
  side-effect of other files included in the SDK, so removing one file
  may cause another to not get built. The solution to that is to add
  the file not getting built to ALL_SDK_FILES.

Bug: 205008975
Test: m sdk sdk_repo dist && diff sdk.zip before/after (identical)
Change-Id: I97284864f66aa88556fbe16864f45b04be97634e
2022-05-12 12:28:49 +00:00
Treehugger Robot
b4eef93771 Merge "Remove -j1 for aidl-freeze-api" 2022-05-11 23:12:07 +00:00
Michael Groover
2f8aad4f7f Add support for -providerArg in signapk
signapk currently accepts a Provider class that can be instantiated
and inserted before the signing. This commit adds support to specify
a -providerArg parameter that can be used to configure the Provider.
Prior to JDK 9 a Provider would accept a providerArg in a constructor
accepting a String; in JDK 9+ a Provider should first be instantiated
with the zero-arg constructor, then the configure method should be
called with the providerArg.

Bug: 142334653
Bug: 190974913
Fixes: 232134730
Test: Manually verified new Provider can be inserted with pre- and
      post-JDK 9 behavior.
Change-Id: I96f027640c59d3357e8dcf656626d1601bfef861
2022-05-11 21:55:24 +00:00
Treehugger Robot
a09c684e27 Merge "Remove all_product_makefiles" 2022-05-11 18:31:14 +00:00
Jared Duke
7d0c90b51f Add keep rules for @KeepForWeakReference annotation
Ensure annotated fields are kept when treeshaking-related optimizations
are enabled. Note that this still allows field removal if tree shaking
reveals no references, but will avoid removal if there are references
that might impact downstream usage, e.g., weak references.

Bug: 227455445
Test: atest InternalAnnotationsTest
Change-Id: I59c6277c43b14c5de8154fa1eefad01f0702e413
2022-05-11 09:47:12 -07:00
Colin Cross
a9203e6d87 Remove HOST_DALVIK_*
There are no more BUILD_HOST_DALVIK_* modules, remove the host dalvik
support.  The equivalent support in Soong just copies the device dex
file to the host dalvik location.

Test: m checkbuild
Change-Id: I4bcf916518317b28d3217994b2fe9ee95d7f50d6
2022-05-11 08:17:45 -07:00
Jeongik Cha
26e9dd30a4 Remove -j1 for aidl-freeze-api
Because bpmodify is safe in multi-process env.

Bug: 190577319
Bug: 229413853
Test: aidl-freeze-api
Change-Id: Ie47afc25e2259bbcbbff50f98fa9d36887558d27
2022-05-11 01:25:19 +00:00
Cole Faust
4edc0b30ff Remove all_product_makefiles
It was unused, along with all_product_configs.

Bug: 228518445
Test: Presubmits
Change-Id: Ibd105241581f8b03254b8fee382d916ea3a98890
2022-05-10 15:39:10 -07:00
Cole Faust
8ccac5198d Merge "Add function for flattening 2d lists" 2022-05-10 05:26:03 +00:00
Treehugger Robot
4890a4ea35 Merge "Temporary hack for making T->S downgrade work" 2022-05-10 04:23:32 +00:00
Kelvin Zhang
9a698e6a9f Temporary hack for making T->S downgrade work
Downgrade OTA was broken because generic_ramdisk was removed from boot
partition in android T. Neither does O6 have init_boot. O6 also doesn't
include generic ramdisk in vendor boot, so no way for otatools to locate
contents of generic ramdisk. As a hack, omit boot partition timestamp if
we can't find ramdisk.

Test: generate T->S downgrade OTA for O6
Bug: 231656318
Change-Id: I9f5359462332aadadc324348873a3a4b2b126068
2022-05-09 10:20:52 -07:00
Treehugger Robot
46c4bb37d1 Merge "Disable verity for VABC updates on android R" 2022-05-06 00:03:20 +00:00
Cole Faust
6f6060a358 Add function for flattening 2d lists
Bug: 226974242
Test: ./out/rbcrun ./build/make/tests/run.rbc
Change-Id: Iae977b34ca0ac156ec795c54f4951c769fa994dd
2022-05-05 11:41:59 -07:00
Ulya Trofimovich
de1949b562 Merge "Extend hardcoded list of optional uses-libraries." 2022-05-05 12:57:54 +00:00
Treehugger Robot
1ef63b944e Merge "envsetup.sh: fix adb tab completion" 2022-05-05 07:52:42 +00:00
Kelvin Zhang
a9a87ec204 Disable verity for VABC updates on android R
Bug: 230277030
Test: th
Change-Id: I2872c490c852fb7d3784721e191ece80b4b1fd58
2022-05-04 16:45:14 -07:00
Xin Li
c01930f7d7 Merge "Merge SP2A.220505.002" 2022-05-04 20:30:21 +00:00
Treehugger Robot
5161627644 Merge "fixup! Embed host liblz4.so in target_files" 2022-05-04 17:23:40 +00:00
Mårten Kongstad
cb5c73fd9e envsetup.sh: fix adb tab completion
The adb module has been moved from system/core to packages/modules/adb.
Update the path to the adb tab completion script accordingly.

Also teach envsetup.sh to complain if completion files are not found.

Test: manual: adb tab completion works
Test: source build/envsetup.sh && declare -F _adb
Change-Id: I7d6fda3813b95e64de7b1953675f66659e750c31
2022-05-04 14:47:20 +00:00
Ulya Trafimovich
0932a821c0 Extend hardcoded list of optional uses-libraries.
This is a temporary workaround that should be replaced with build logic
that would propagate optionality via generated exported-sdk-libs files.

Bug: 214255490
Test: lunch aosp_cf_x86_64_phone-userdebug && m && launch_cvd \
    && adb wait-for-device && adb root \
    && adb logcat | grep -E 'ClassLoaderContext [a-z ]+ mismatch'
    # empty output, no errors at boot
Change-Id: I05e22e5f72a9f936b6e0010240f5e71849a9b2b0
2022-05-04 13:36:47 +01:00
Treehugger Robot
7b53ae67f1 Merge "Only enable zucchini if configuration file exists" 2022-05-04 02:39:39 +00:00
Treehugger Robot
83b8158d3e Merge "Adding -j1 for aidl-freeze-api" 2022-05-04 01:15:38 +00:00
Xin Li
a08bbcebb4 Merge SP2A.220505.002
Bug: 231319788
Merged-In: I5a35451e14cba5f115ab66926d62c4fa4556a267
Change-Id: Iebd16f49429a66da431c4277c60de7030b55b7a5
2022-05-03 20:54:36 +00:00
Treehugger Robot
7d2d41ce2e Merge "Remove RBC_BOARD_CONFIG" 2022-05-03 17:22:56 +00:00
Håkan Kvist
3db1ef61de Only enable zucchini if configuration file exists
Only enable zucchini if configuration file zucchini_config.txt exits
in target files and version in source and target is the same.

Without this patch zucchini would be enabled if configuration file
was missing from both target files.

Bug: 231204699
Test: Run ota package generation with zucchini_config.txt missing from
      both source and target zips. Confirm that zucchini is disabled.
Change-Id: Ia34998fd911d5860b38fe49fa5a88056a22d661e
2022-05-03 13:00:32 +02:00
Treehugger Robot
98050a4e97 Merge "Expose GetRamdiskFormat and use in ota_utils.py" 2022-05-03 08:27:35 +00:00