Commit graph

45923 commits

Author SHA1 Message Date
Mathew Inwood
edb1c84f03 Support for adding dark greylist members from annotations.
Currently, we support maxTargetSdk values of 26 & 28, corresponding to
the P blacklist (existing dark grey list) and upcoming Q blacklist.

For now, just put the two into the same list, as the runtime support to
distinguish between the two does not exist yet.

Bug: 114361293
Test: m
Change-Id: I2f8d206e8dd22afc6c0e98fb5e53b1d78a534125
2018-09-07 16:52:16 +01:00
David Brazdil
5ec2688d71 Merge "Add hidden API public/private list to KATI_RESTAT" 2018-09-07 09:31:37 +00:00
Treehugger Robot
adee0d54d0 Merge "ATest: Change module_name from list to single string." 2018-09-07 07:07:13 +00:00
Hridya Valsaraju
3482c89303 Add fastboot HAL to VNDK
Bug: 79480454
Bug: 78793464
Test: make

Change-Id: Ib9fa4161579d666a3276a1a4193b750b64653760
2018-09-06 21:21:16 -07:00
Treehugger Robot
5a3ddef8da Merge "Remove GCC support from Make" 2018-09-07 02:42:27 +00:00
Treehugger Robot
1a9bb089c2 Merge "Use vendor variants of Soong header libraries for vendor modules" 2018-09-07 01:41:10 +00:00
Treehugger Robot
7d1be8148e Merge "Rename to android.test.base.impl" 2018-09-07 01:01:59 +00:00
Tao Bao
744c4c7604 Support building chained VBMeta images.
Bug: 112007947
Test: `m dist` with aosp_taimen-userdebug.
Test: Set up a target that uses chained VBMeta images of
      `vbmeta_mainline` and `vbmeta_vendor`. `m dist` and check the
      build log, as well as outputs from
      `avbtool info_image --image vbmeta.img`,
      `avbtool info_image --image vbmeta_mainline.img`,
      `avbtool info_image --image vbmeta_vendor.img`.
Change-Id: Ib1d4e97f583b65245703eae15d211adcd9e83741
2018-09-06 16:55:51 -07:00
Colin Cross
c47911812d Use vendor variants of Soong header libraries for vendor modules
Mark Soong header libraries with vendor variants as SPLIT_VENDOR
so that Make will use the vendor variant for vendor modules.

Bug: 114238698
Test: m checkbuild
Change-Id: I912ab9f4e19d73a1213d60b9795ee30ca87ef614
2018-09-06 16:25:02 -07:00
Dan Willemsen
f063839de9 Remove GCC support from Make
Test: out/build-aosp_arm64.ninja is the same before/after
Test: build_test on downstream branches
Change-Id: If7f8c12f2f288b1e589689361f9457acae634882
2018-09-06 15:40:00 -07:00
David Brazdil
e3fb5f6d09 Add hidden API public/private list to KATI_RESTAT
Change hidden API public/private list generation build rule so that it
checks if outputs have changed and only commit them when changes have
been made. .KATI_RESTAT instructs ninja to restat the outputs and remove
reverse dependencies when rebuilding dependencies is not needed.

Bug: 113278235
Test: m appcompat
Change-Id: Iad23e302b6c30f9a021200acd4bb20e6062de5a2
2018-09-06 18:00:57 +01:00
Tao Bao
5f99923ef1 Expose libminui related variables as vendor default properties.
TARGET_RECOVERY_DEFAULT_ROTATION, TARGET_RECOVERY_OVERSCAN_PERCENT and
TARGET_RECOVERY_PIXEL_FORMAT are vendor-specific properties used by
libminui. So they are needed by both of recovery and charger modes.

We used to pass them to libminui as build-time flags (pre-Q), and
switched them to runtime properties recently (available to recovery
only). Since /sbin/charger lives on system image, the values should be
still passed as runtime properties, but need to be additionally
available under charger mode, and overridable by vendor-init.

This CL writes these variables as vendor default properties (i.e.
/vendor/default.prop if property_overrides_split_enabled is true,
otherwise into /default.prop). Note that writing them as vendor build
properties doesn't work, as init doesn't load /vendor/build.prop under
charger mode.

Bug: 113567255
Test: Build along with other CLs in the topic (for sepolicy and
      libminui changes). Boot into charger mode.
Test: Boot into recovery. Run graphics test.
Change-Id: Iccc4de0fbff508d489fc93b45c2ecfd0fb96053c
2018-09-06 09:25:22 -07:00
Treehugger Robot
71034e3764 Merge "Adding better AVB error message" 2018-09-06 07:45:34 +00:00
Treehugger Robot
076662d015 Merge "Add care_map_generator as a dependency of BUILT_TARGET_FILES_PACKAGE" 2018-09-06 06:45:28 +00:00
Tao Bao
f2dd520c1c Merge "Map numeric dpi value to density bucket for recovery resources." 2018-09-06 04:05:27 +00:00
Bowgo Tsai
9d28638cfc Enable AVB signing on GSI
In current GSI builds, AVB signing is not allowed.
We should allow signing GSI image, while building a vbmeta.img with
AVB_VBMETA_IMAGE_FLAGS_VERIFICATION_DISABLED (flag 2).

When need to disable AVB, use the vbmeta.img above together with the
GSI. When need enable AVB on GSI, include the GSI public key into the
device-specific vbmeta.img. Note that GSI is a chain partition so the
keys used to sign GSI and vbmeta.img are different.

Bug: 112293933
Test: build aosp_arm64-userdebug, checks flag 2 is set in vbmeta.img
      and there is AVB HASHTREE in system.img
      `avbtool info_image --image $OUT/system.img`
      `avbtool info_image --image $OUT/vbmeta.img`

Change-Id: If1eff317621882994e7dcbf37cd35f5bfa16b69a
2018-09-06 09:41:42 +08:00
Bowgo Tsai
99ed1b4fbd Adding better AVB error message
Also removing the requirement of BOARD_BOOTIMAGE_PARTITION_SIZE when
BOARD_AVB_ENABLE is set. Some targets (e.g., emulator) doesn't build
boot.img when AVB is enabled.

Bug: 112293933
Test: build a failure case and checks the error output is expected
Change-Id: I290c707719193ddaedcd9fd0b31de566ad17078c
2018-09-06 09:38:45 +08:00
SzuWei Lin
6c4578b64e Add VNDK v28 to GSI from Android Q
From Android Q, Legacy GSI (aosp_$arch_a(b)-userdebug) can only
support the devices which upgraded from O or O-MR1.

The normal GSI (aosp_$arch-userdebug) will support the device which
launch from P or Q.

The patch add VNDK v28 to Legacy GSI and normal GSI.

Bug: 113560265
Test: lunch aosp_arm64_ab-userdebug; make -j
      Check the folder $OUT/system/lib64/vndk-28 existing

Change-Id: I941d2cd56264fffc3ded338871409594a430dce5
2018-09-06 09:25:16 +08:00
Steven Moreland
5fd1022106 Merge "Install libbinder_ndk to the system." 2018-09-06 00:04:38 +00:00
Treehugger Robot
58683b1b4d Merge "releasetools: Handle the case of not having ro.vendor.build.fingerprint." 2018-09-05 21:50:17 +00:00
Tianjie Xu
573322279a Use the new executable for mkuserimg_mke2fs
This is in line with the change of mkuserimg_mke2fs.sh to python binary.

Bug: 112555072
Bug: 63866463
Test: unittests pass
Change-Id: I82c0be1e5bbc685edc15120da73aa43fdc9f2f05
2018-09-05 20:52:47 +00:00
Tao Bao
ea6cbd0765 releasetools: Handle the case of not having ro.vendor.build.fingerprint.
Commit d572632f3d added support in build
system to blacklist given vendor properties. When
ro.vendor.build.fingerprint gets blacklisted, the OTA generation script
can't rely on those properties to determine a change in vendor images.
This CL considers such a case as "vendor images must have changed"
between the two builds.

Bug: 113892939
Test: Generate an incremental package with builds not having
      ro.vendor.build.fingerprint.
Test: python -m unittest test_ota_from_target_files
Change-Id: I188de9c3cbeecf26132c92b9356e9d5fef75205e
2018-09-05 13:14:55 -07:00
Treehugger Robot
48a575c029 Merge "Remove droiddoc.mk from Make!" 2018-09-05 17:48:43 +00:00
Treehugger Robot
9b165a2bd4 Merge "Add doc update for phony targets" 2018-09-05 02:20:22 +00:00
Dan Willemsen
5fb16a6245 Add doc update for phony targets
Test: view rendered markdown in gitiles
Change-Id: Ifb45b8ab1b27f3eb6b48350da2a4a7a08c7d9e17
2018-09-04 16:27:16 -07:00
Tianjie Xu
19174ba4dc Add care_map_generator as a dependency of BUILT_TARGET_FILES_PACKAGE
This solves the missing host executable when calling
add_img_to_target_files.py.

Bug: 113877667
Test: make target-files-package for aosp_sailfish
Change-Id: I133064ef86a1f9c5b4ec6d27345fb49c61a729e5
2018-09-04 15:33:58 -07:00
Evgenii Stepanov
9b82b3fa34 (make) Add -fsanitize= argument to assembly flags.
It allows use of sanitizer preprocessor macros (like __has_feature())
in assembly files.

Bug: 112438058
Test: SANITIZE_TARGET=hwaddress
Change-Id: If9da7493d69fa2e03649754c38117e36eb8d222c
2018-09-04 14:38:38 -07:00
Nan Zhang
2132fbc7a8 Remove droiddoc.mk from Make!
Test: m -j
Bug: b/70351683, b/78245848
Change-Id: I3348461d742c45d5dae105d26a5c3e8680a08029
2018-09-04 10:54:11 -07:00
Treehugger Robot
0e0ef050f9 Merge "Provisionally increase PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION to 23." 2018-09-03 14:14:37 +00:00
Treehugger Robot
2c341a7b01 Merge "Recognize -Wimplicit-fallthrough." 2018-09-01 01:24:27 +00:00
Treehugger Robot
690e1a17a4 Merge "Switch protoc javastream plugin to using explicit path" 2018-09-01 00:58:26 +00:00
Chih-Hung Hsieh
e1672866a7 Recognize -Wimplicit-fallthrough.
Test: warn.py build.log
Change-Id: Ie55248f7348b20d09909a856fe7581a0476b9d9b
2018-08-31 16:19:19 -07:00
Dan Willemsen
5771e8cbf1 Switch protoc javastream plugin to using explicit path
The previous PATH=$PATH:out/... logic was incorrect, since the version
in $PATH would override the one out. And now that we're limiting what's
accessible via $PATH, that caused an error.

Instead, ensure that all protoc plugins are specified explicitly with
--plugin, then remove the PATH modification.

Test: cd frameworks/base/cmds/am; mma    (with protoc-gen-javastream in $PATH)
Change-Id: I6690727504f67f84fdc95ed93eabdf3351e5cb0b
2018-08-31 15:59:23 -07:00
Tao Bao
3e9e6af0ff Merge "releasetools: common.LoadInfoDict() takes a bool parameter for repacking." 2018-08-31 22:08:41 +00:00
Tao Bao
639fe0c7cd Merge "releasetools: Track edify function API changes." 2018-08-31 21:24:31 +00:00
Tri Vo
647e32fa09 Merge "Add android.system.suspend@1.0-service to base_system.mk" 2018-08-31 20:20:49 +00:00
Treehugger Robot
3536f6abe4 Merge "Fix misleading comment in version_defaults.mk" 2018-08-31 19:46:25 +00:00
David Brazdil
89e35e5ca9 Merge "Encode use of private API in manifest" 2018-08-31 09:59:39 +00:00
Treehugger Robot
b1230b608f Merge "Add super_empty.img to target-files and the update package." 2018-08-31 01:48:10 +00:00
David Anderson
1ef03e2b79 Add super_empty.img to target-files and the update package.
super_empty.img is needed for "fastboot update" to work, as such, it
must be included in the update package. This change adds lpmake
parameters to misc_info.txt for add_img_to_target_files.py, and ensures
that lpmake is packaged with otatools.zip.

The build-superimage-target macro is now split into two functions - one
to generate the device-specific arguments, and another to build the full
command-line for convenience. The former is used to pass arguments
directly to add_img_to_target_files.

Bug: 113524256
Test: make updatepackage builds and includes super_empty.img
      make otatools includes lpmake

Change-Id: I25091c964b036beeea2a8b8f738e2c18937c1eb4
2018-08-30 16:02:23 -07:00
David Brazdil
354cc2dde6 Merge "Adjust build rule for hidden API list generation" 2018-08-30 17:59:02 +00:00
Nan Zhang
d74327b7a4 Merge "Follow minor Jetifier usage change" 2018-08-30 15:28:46 +00:00
David Brazdil
cf163d38d6 Adjust build rule for hidden API list generation
Associated CL in frameworks/base/ migrates hidden API list generation
logic from Makefile/Bash to Python. Instead of four different build
targets, there is now just one. Adjust definitions.mk accordingly.

Bug: 113278235
Test: m appcompat
Change-Id: I01130729a0f783ff37cb4e942bc9ad179fe24e4e
2018-08-30 13:45:22 +01:00
Tao Bao
e1e829efe1 Map numeric dpi value to density bucket for recovery resources.
When choosing the density for recovery resources, the code used to
handle primary density values only, i.e. mdpi, hdpi, xhdpi, 400dpi,
xxhdpi, 560dpi and xxxhdpi. Unlisted values, such as 500dpi, will be
categorized as xhdpi, but with tiny font size selected for recovery.

This CL improves the handling of numeric dpi values. It allows targets
using numeric values in PRODUCT_AAPT_PREF_CONFIG, and maps that to a
proper density bucket. Targets can still specify the density bucket
directly, which will take priority.

Bug: 111559919
Test: `m -j bootimage` with marlin/sailfish/walleye/taimen respectively.
      Check the chosen density bucket for recovery resources
      (xxxhdpi/xxhdpi/xxhdpi/xxxhdpi).
Test: Set PRODUCT_AAPT_PREF_CONFIG to 279/280/281/500/559/560/640. Check
      the computed bucket and the selected recovery font file.
Change-Id: Ia40fcdec5a2752c08172716bcc622a36a2a83cea
2018-08-29 22:08:37 -07:00
Tao Bao
410ad8bb92 releasetools: common.LoadInfoDict() takes a bool parameter for repacking.
It used to accept a non-None input_dir to indicate the need to
re-generate images (called from add_img_to_target_files.py). During that
flow, both of the two parameters redundantly refer to the same input
dir. This CL replaces the second parameter with a bool value instead.

Test: `python -m unittest test_common`
Test: `m dist` with aosp_taimen-userdebug
Test: `zip -d aosp_taimen-target_files-eng.zip IMAGES/\* &&
       add_img_to_target_files.py -a aosp_taimen-target_files-eng.zip`
Change-Id: I0a5a164366acb116407f94bb350872a3a0b207d1
2018-08-29 22:07:21 -07:00
yangbill
f90b734c0c ATest: Change module_name from list to single string.
ATest's original module_name is designed as a single string.
The different type maybe cause some problem when loading module_name
data. Due to it expected it as a list but actually it will be a single
string after mod-info obj handling this data.

Bug: 113317515
Test: atest aapt2_tests
      atest hello_world_test
      atest BluetoothInstrumentationTests
      atest packages/apps/Bluetooth/tests/unit/Android.mk
      atest RunBluetoothRoboTests
      atest com.android.bluetooth
      atest libcore/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
        Multiple tests found:
	  0: libjavacore-unit-tests
          1: jsr166-tests
          2: core-ojtests-public
	  ...
      atest SSLSocketTest # Brings up 2 prompts, one for which file then one for which module
      make -j bit
      bit Settings
      bit hello_world_test
      bit BluetoothInstrumentationTests
      bit RunBluetoothRoboTests (Could not find module, but the same situation
          before applying this patch)


Change-Id: I46a14c675eabd7cebd82562954380a9a769e80b5
2018-08-30 05:06:32 +00:00
Steven Moreland
9d5549675a Install libbinder_ndk to the system.
This library is in the NDK, so it needs to be guaranteed to be
installed even thought there are no platform dependencies on it.

Bug: 111445392
Test: it is installed
Change-Id: Iba7b224f0d95c62634a728ce7e178af6d08aa7dc
2018-08-29 20:52:48 -07:00
Tri Vo
7a7e441379 Add android.system.suspend@1.0-service to base_system.mk
Bug: 78888165
Test: presubmit
Change-Id: I644ebc0704749dbbb7840563d237736babcb003a
2018-08-29 20:35:13 -07:00
Tao Bao
5121655643 releasetools: Track edify function API changes.
In particular, it replaces the generated calls to edify function of
`apply_patch()` and `apply_patch_check()` with `patch_partition()` and
`patch_partition_check()` instead.

It adds two functions to EdifyGenerator: PatchPartition() and
PatchPartitionCheck() for Python releasetools callers. It also tries to
handle the callers of obsolete EdifyGenerator.PatchCheck() and
EdifyGenerator.ApplyPatch(), if their inputs are in known format.
Otherwise it raises an exception to avoid generating an OTA that updater
doesn't understand.

It requires the matching updater changes in the same topic.

Bug: 110106408
Test: Generate an incremental package with the new script and updater.
      Apply the package on device.
Test: Revert the change in ota_from_target_files.py, so that it calls
      the obsolete EdifyGenerator functions. Check that it generates the
      same incremental package.
Change-Id: Ifc55cb40d3a45116fd4d408536d037eca249effa
2018-08-29 11:53:19 -07:00
Treehugger Robot
acdaa8fbac Merge "Do not call sort when setting ALL_DEPS.MODULES." 2018-08-29 18:28:41 +00:00