Commit Graph

2021 Commits

Author SHA1 Message Date
Treehugger Robot 1b8939b946 Merge "Add BUILD_USERNAME and BUILD_HOSTNAME" 2019-01-10 21:29:47 +00:00
Anton Hansson fe9f373e10 Merge "Fix qemu image definition conditionals" 2019-01-09 10:33:51 +00:00
Tao Bao 519d18286e Don't build retrofit OTA package if vendor.img is unavailable.
We used to build retrofit full OTA package as long as
PRODUCT_RETROFIT_DYNAMIC_PARTITIONS is true. This doesn't work with AOSP
targets that have the flag set but without any available vendor image.

This CL detects such a condition and uses a separate flag to guard the
retrofit OTA building as well as the split super images generation.

Bug: 120852744
Test: `m -j dist` on blueline (w/ vendor images) and aosp_blueline (w/o
      vendor images).
Change-Id: I65726f24f8fc546be6802941a6a06590a3804c16
2019-01-07 12:22:48 -08:00
Tianjie Xu daf0839f0b Merge "recovery text images: Use center_alignment for background texts" 2019-01-04 07:26:32 +00:00
Tao Bao beea6c0828 Pack libsquashfs_utils.so into otatools.zip.
Overlooked the transitive dependency on this lib in my previous CL that
packs libfec.so.

Bug: 122280472
Test: Build `otatools.zip`. Unzip and check that
      `ldd bin/delta_generator` no longer shows any missing lib.
Change-Id: I7b633ea870f05b86ee7760c736dac7c74dee5dc2
2019-01-03 12:34:40 -08:00
Tao Bao a19f8e993b Pack libfec.so into otatools.zip.
delta_generator now has a dependency on libfec.so [1], for generating
A/B incrementals.

[1] https://android-review.googlesource.com/c/platform/system/update_engine/+/854154

Bug: 122280472
Test: `m -j otatools-package` with aosp_marlin-userdebug. Check that
      `otatools.zip` contains libfec.so.
Change-Id: Ia6642bb2c7ccb0f89ad3079bdf65e4dbffee13f5
2019-01-02 23:24:51 -08:00
Dan Willemsen 63e48db6d1 Add BUILD_USERNAME and BUILD_HOSTNAME
These replace $USER and `hostname`, which will soon become stable values
due to sandboxing the build on Linux.

Bug: 122270019
Test: check build.prop
Change-Id: I7493e45a2a2defbdba5d82596cb91d68480f0187
2019-01-02 14:33:29 -08:00
Dan Willemsen ad6a15433e Produce ro.build.version.preview_sdk_fingerprint
This is just a hash of the current.txt and system-current.txt right now,
though it may expand to include other API surfaces in the future.

Once prebuilts/sdk/current is populated with api_fingerprint.txt files,
we can use those for unbundled builds, but until then, just use the
PLATFORM_PREVIEW_SDK_VERSION as a placeholder.

MD5 was just the most convenient, since we don't have a sha tool that we
can use on Mac currently. I'm hoping we can get a toybox-based tool in
the future that standardizes that, but we aren't currently using sha*sum
from toybox on Linux, much less on Darwin yet.

Test: m dist out/dist/api_fingerprint.txt
Test: m out/target/product/.../system/build.prop
Change-Id: If69f270560d05135cb81a9bb2d1b208ea78f86df
2018-12-27 12:30:05 -08:00
xunchang dbe55e147e recovery text images: Use center_alignment for background texts
It's desirable that the background texts display in the center of the
screen. So we will add the flag "--center_alignment" when generating
these images.

Bug: 121280655
Test: check and run the graphic tests
Change-Id: I6ba73ba7ef130288e950f95748e0e3fe28aa0827
2018-12-20 11:18:26 -08:00
Tao Bao 943fa4c523 Don't write vendor to dynamic_partitions_info.txt if it's unavailable.
If an AOSP target is built with dynamic partitions support but without
vendor.img available at build time, don't write 'vendor' to
dynamic_partitions_info.txt that will be used for building OTA packages.

We can't remove the partition from BoardConfig file, because the name
will be still needed in other places, such as generating the partition
metadata (super_empty.img). Otherwise manually flashing vendor.img at a
later point would require additional steps (e.g. `fastboot
create-logical-partition`).

Bug: 120852744
Test: `m -j dist` with and without vendor projects.
Change-Id: Ia1c3ed5bbea0255f1908958140dac97a1597586d
2018-12-19 14:17:55 -08:00
Colin Cross 6db5b0ea9a Move dexpreopting to Soong
Move the dexpreopting logic into Soong.  Make modules will be
dexpreopted by executing the Soong logic in the standalone
dexpreopt_gen binary, which will generate scripts that will
perform dexpreopting for each module.  Export global configuration
as JSON to $OUT/dexpreopt.config, which will be used by
dexpreopt_gen and Soong, and per-module JSON configuration that
will be used by dexpreopt_gen.

This relands I59b20c931ee3e5a8d35eb30da4148691c5095502,
I39d580999947ee54cfefe875b57a028be5333bd7,
Ie7daa94e107d53eff075ca58dbe721bd9d7fc8c2 and
Ica006a007d112c232311435aaac0c0e476232b67, with a minor
update to match the changes made to dexpreopt_gen arguments
and a fix to correctly keep dexpreopt disabled on mac builds.

Bug: 119412419
Bug: 120273280
Test: no differences to dexpreopt outputs on aosp_sailfish system/,
      only expected changes to dexpreopt outputs on system_other
      (.vdex files for privileged Soong modules no longer incorrectly
      contain .dex contents).
Change-Id: I25163e91886cea6941afa25cdb529ed053278dcb
2018-12-17 13:46:17 -08:00
Colin Cross b8901d7fb8 Revert "Move dexpreopting to Soong"
This reverts commit e736c58043.

Test: none
Bug: 119412419
2018-12-14 11:49:55 -08:00
Tao Bao 7732b434e9 Merge "Set PATH when calling build_super_image.py." 2018-12-14 04:23:01 +00:00
Tao Bao 403a2f9051 Set PATH when calling build_super_image.py.
build_super_image.py calls `lpmake` and expects that (i.e.
HOST_OUT_EXECUTABLES) in PATH. However, we have to explicitly set up
that inside the build.

Bug: 120553014
Test: Set OUR_DIR and build blueline-userdebug.
Change-Id: I000f9d069902a902c9504a2ba31dba6dbc6917a2
2018-12-13 10:53:12 -08:00
Anton Hansson 32c76fe219 Fix qemu image definition conditionals
BOARD_USES_<X>IMAGE is not equivalent with that image actually
existing. Since these targets depend on the INSTALLED_<X>IMAGE
variables being defined, gate the conditionals on that instead.

This logic is used in other places in Makefile

Bug: 120974093
Test: make
Change-Id: I6766042c801bf7fddc4b84671dbe5d3a157aea6b
2018-12-13 16:46:05 +00:00
Colin Cross e736c58043 Move dexpreopting to Soong
Move the dexpreopting logic into Soong.  Make modules will be
dexpreopted by executing the Soong logic in the standalone
dexpreopt_gen binary, which will generate scripts that will
perform dexpreopting for each module.  Export global configuration
as JSON to $OUT/dexpreopt.config, which will be used by
dexpreopt_gen and Soong, and per-module JSON configuration that
will be used by dexpreopt_gen.

Bug: 119412419
Bug: 120273280
Test: no differences to dexpreopt outputs on aosp_sailfish system/,
      only expected changes to dexpreopt outputs on system_other
      (.vdex files for privileged Soong modules no longer incorrectly
      contain .dex contents).
Change-Id: I59b20c931ee3e5a8d35eb30da4148691c5095502
2018-12-12 17:21:22 -08:00
Treehugger Robot 53de7a71f6 Merge "Add recovery_acpio option to make recovery image" 2018-12-12 08:13:46 +00:00
Chen, ZhiminX 752439b321 Add recovery_acpio option to make recovery image
Test: can generate recovery image with recovery_acpio
Fixes: 111871613

Change-Id: I9174a4741f571a00bcadc548cd9e1316b4175132
2018-12-11 15:23:28 +08:00
xunchang cc57d31c91 recovery text image: use zopflipng to compress the generated images
Generate the images for recovery's wipe data menu. And use the lossless
tool zopflipng to compress the generated image. This saves space
in the boot image at the cost of the increase of build time. In practice,
it adds about ~20 seconds to build the bootimage with 32 threads.

zopflipng generally runs slower. Even with a predefined filters
strategy, it runs about 3 times slower than pngcrush, e.g. ~40s vs 15s
to compress a 1.8M png file. However, zopflipng also gives a better
compression: ~1.4M vs 1.6M for the same image. So I guess the time
consumption is a price worth paying.

Bug: 74397117
Test: build the bootimage and check the resource images
Change-Id: I3e71f8bedd3c183a3374b1a9464bf05500e1aa61
2018-12-10 19:53:38 -08:00
Tianjie Xu 81c88ad58b Generate the recovery text images at build time
We used to manually generate the background text images for recovery. That
process requires opening various emulators and takes a long time. Now that
the host Java tool is ready to generate these images, we can embed the
generation step into the build of the recovery image.

Since there's currently no make variable that defines screen width of the
device, we put the commonly used values for pixels here, i.e. 1440 for
xxxhdpi and 1080 for xxhdpi. Devices with other dpi can still use this
feature if they define the screen width in their config files.

Test: build bootimage with screen with set/unset
Change-Id: Ic8389a527e6e7194de58a9c50763e841e886652b
2018-12-06 01:10:38 -08:00
Yifan Hong 5df29604b9 Merge changes from topic "super_target_files"
* changes:
  add_img_to_target_files uses build_super_image
  Build super_empty with build_super_image.py
  Build super.img from images in target_files
2018-12-04 23:20:21 +00:00
Yifan Hong 055e6cf5c8 add_img_to_target_files uses build_super_image
Use the new script to build super_empty and super split images. No more
transformation to lpmake_args.

Test: build target_files_package for retrofit device
Change-Id: Id5f6bd607654ca869bcdf58d86b7ae300e3927eb
2018-12-03 11:33:44 -08:00
Yifan Hong 8b79d168eb Build super_empty with build_super_image.py
Use the script to build it to avoid having duplicate logic in
build-superimage-target-args and build_super_image.py
Test: build it

Change-Id: I82f74d56d744c5f5b8dd38d41fedd264b042bc7a
2018-12-03 11:33:44 -08:00
Yifan Hong 2b891ac024 Build super.img from images in target_files
For non-retrofit (launch) devices, super.img is used for factory, so
source images should be from target_files.

In this change, build-superimage-target procedure is converted to a
more flexible script so that it can be built.

Bug: 119322123
Test: build target files for device launch with dynamic partitions
Change-Id: I6ee0cc3e145357dfc74be248f81f5f8f4e51fc5c
2018-12-03 11:33:44 -08:00
Tom Cherry 3871f0fc61 Remove copying of TARGET_OUT_RAMDISK to recovery image
This was only needed for pushing first stage init to the recovery
image.  This isn't actually needed however, as the recovery image can
be fully shared and can run full init as long as there is a symlink
from /init to /system/bin/init, so that is added instead.

Bug: 80395578
Test: boot to recovery via this symlink
Change-Id: I8910543525a841401b209bfd98af30c5a0dc2688
2018-11-28 08:53:38 -08:00
Anton Hansson 6d81498baf Improve consistency of indentation in Makefile
Only use one consecutive tab in make rules and use spaces
for any additional indentation. This should generally prevent
tabs from appearing on the cmdline.

This cl is the result of 3 regex replaces:
\\\n\t\t([^\t]) -> \\\n\t    \1
\\\n\t\t\t([^\t]) -> \\\n\t        \1
\\\n\t\t\t\t([^\t]) -> \\\n\t            \1

Test: make mainline_system_arm64
Change-Id: Ic3f72deed35e39e4b1a4b492db65aeabc5bef0d5
2018-11-26 18:12:05 +00:00
Anton Hansson 5d218a123f Merge "Add support for TARGET_PRODUCT_PROP" 2018-11-26 17:51:13 +00:00
Anton Hansson e9ee80e24a Add support for TARGET_PRODUCT_PROP
Like TARGET_SYSTEM_PROP, but is merged into /product/build.prop.

Also change the formatting of the output of both of these macros
slightly, so make the start and end clearer.

Bug: 119911662
Test: migrate downstream products to use this
Change-Id: Iddae7aac3c51b5706f3fb2690c5ca5a98840ad34
2018-11-22 15:27:35 +00:00
Yifan Hong 50611038e9 dynamic_partition_use -> use_dynamic_partitions.
Test: build OTA package
Change-Id: Ia43d23f49fc024ecc767da1c2186c4b446c034de
2018-11-21 13:00:57 -08:00
Yifan Hong d585de5933 Merge changes from topic "dp_retrofit_gen"
* changes:
  Generate retrofit OTA.
  Add split super images to target_files.
2018-11-20 22:44:06 +00:00
Treehugger Robot fec2671f00 Merge "Fix size checks for retrofit dynamic partitions." 2018-11-20 22:30:56 +00:00
Yifan Hong 50e7954ac9 Generate retrofit OTA.
Test: m otapackage -j, manual apply on top of P
Bug: 118506262

Change-Id: Iedc389a1058007a604de0482f2348a9ef0d5892a
2018-11-20 11:17:39 -08:00
Yifan Hong c767f7cbfc Add split super images to target_files.
Test: build target files package
Bug: 118506262
Change-Id: Iee6143987c9bfa6f2d287e20c06ea5ef25e82985
2018-11-20 11:17:39 -08:00
Yifan Hong f39d8af57e Fix size checks for retrofit dynamic partitions.
Now that we have two supers for retrofit devices, modify
the size checks. Only A/B devices launched with dynamic partitions
will get the / 2.

Test: builds
Bug: 116608795
Change-Id: Icdddcc0b3f3be307b3907e1c789933c2ace61867
2018-11-19 14:37:45 -08:00
Haibo Huang ee0531da7a Add cpu variant information to vendor/default.prop
Test: build and check vendor/default.prop
Change-Id: I8d86d58c72118c7dda65e75d09680e20c9428c24
2018-11-19 18:57:36 +00:00
Evgenii Stepanov f05ff886b8 Merge "Build ota packages for SANITIZE_TARGET other than "address"." 2018-11-15 22:26:39 +00:00
Evgenii Stepanov 5d06f240e3 Build ota packages for SANITIZE_TARGET other than "address".
HWASan OTAs should work fine.

Bug: 119436631
Test: make SANITIZE_TARGET=hwaddress dist
Change-Id: I87c8ca58b924a478679879d09a34c44cd5832470
2018-11-15 11:14:09 -08:00
Anton Hansson 8ee39f031c Merge changes Idc621b16,I00fcdce3
* changes:
  Fix dependencies of notice files
  Refactor logic for notice files
2018-11-14 12:48:55 +00:00
Yifan Hong b7ea9d3870 Merge changes from topic "dp_retrofit"
* changes:
  Add build flags for spanning the super partition across multiple block devices.
  logical partitions -> dynamic partitions
2018-11-13 20:29:18 +00:00
Anton Hansson 6ad6f6c8ab Fix dependencies of notice files
Filter out the relevant deps for /vendor, /product and
/product_services, and make the /system version depend
on the rest.

Also filter out phony packages, which do not produce
license files on their own (though their deps might).

Bug: 118089975
Test: diff blueline notice files before and after
Change-Id: Idc621b16237dfecafd0befa742c8d3b93be1f611
2018-11-13 16:53:46 +00:00
Anton Hansson bfbaa98bb7 Refactor logic for notice files
Move things around so that we don't need to check whether
we're in the "split license file mode" over and over, and
some other moves to improve readability.

Also rename the html_or_xml variables to the correct name
given the branch of the conditional we're in, to make it
easier to grok.

Bug: 118089975
Test: diff notice files for blueline before and after
Change-Id: I00fcdce31503c543c6c0ab6901531c54c9705617
2018-11-13 16:53:18 +00:00
Anton Hansson 1de3ef4a73 Merge "Fix cmdline args to generate-notice-files.py" 2018-11-13 08:35:01 +00:00
David Anderson 619fe2da5a Add build flags for spanning the super partition across multiple block devices.
This adds BOARD_SUPER_PARTITION_BLOCK_DEVICES, which must contain a list
of the (non-A/B suffixed) partitions that will comprise the super
partition. It is only intended for devices which cannot have a partition
named "super". For each entry, there must be a
BOARD_SUPER_PARTITION_x_DEVICE_SIZE variable defined with the exact size
of that partition (not its image size). The sum of these sizes must be
equal to BOARD_SUPER_PARTITION_SIZE.

Bug: 116802789
Test: device with BOARD_SUPER_PARTITION_BLOCK_DEVICES builds
Change-Id: I1a79c2e08ca99ce7e42207893ef3285caffecf44
2018-11-12 16:12:51 -08:00
Anton Hansson d0ca2e6221 Fix cmdline args to generate-notice-files.py
-e should be provided multiple times to pass a list. This fixes
stripping of the NOTICE file on /system to not have /product,
/vendor and /product_services entries in it.

Previously it was trying to stirp entries from the
vendor,product,product_services subdir.

Bug: 118089975
Test: m sync, inspect NOTICES file
Change-Id: I7c336b1c593565a98aa4976305f8b69bbd0c09b5
2018-11-12 23:24:22 +00:00
Anton Hansson 30e061b6a5 Provide a syncsys target to build /system files
Builds just the files on /system, but not system.img. Like sync,
but just for /system.

Test: m syncsys
Change-Id: Ic5fc60d79d20315a5aca031dff5e2394e58d6b1c
2018-11-12 13:46:05 +00:00
Yifan Hong c5c0124e7d logical partitions -> dynamic partitions
Reflect a name change.

* PRODUCT_USE_LOGICAL_PARTITIONS is deprecated and
will be removed in the future.

* ro.boot.dynamic_partitions is created. ro.boot.logical_partitions
will be removed once all the usage is removed.

Bug: 119286600
Test: builds

Change-Id: I5cb8bb1f5ebcee893fbef3a0f047c32de8773830
2018-11-09 16:02:59 -08:00
Anton Hansson 0625f9a524 Merge "Move ro.build.characteristics to /product props" 2018-11-06 08:52:02 +00:00
Anton Hansson 5ac408badd Move ro.build.characteristics to /product props
This property is not device-generic, as it's used for things like
whether the product is phone/tablet/other and whether it has an
sdcard or not.

Bug: 118618261
Test: adb shell getprop ro.build.characteristics for aosp_blueline
Change-Id: I6bbf1d4c36d7f37f92c67bebde58d72aba9d0852
2018-11-05 17:29:28 +00:00
Dan Willemsen 37a1986454 De-dup INTERNAL_SYSTEMIMAGE_FILES to fix PDK builds
On PDK builds, we sometimes end up with multiple entries in
INTERNAL_SYSTEMIMAGE_FILES, if we've got the definition for it, and it's
in PDK_FUSION_SYSIMG_FILES. This causes us to define multiple rules in
sdk_font.mk, leading to overriding commands errors.

Bug: 118634643
Test: attempt PDK build
Change-Id: Ieb4f46c0eece96cf246197af4b03e693493cc6a1
2018-10-31 16:39:29 -07:00
Yifan Hong 779dc30020 Merge changes from topic "dpgroup"
* changes:
  Add dynamic partition info to target files
  BOARD_{GROUP}_SIZE must not be empty.
  Add _a and _b to group names to super.
2018-10-26 18:23:53 +00:00