Commit graph

978 commits

Author SHA1 Message Date
Sen Jiang
f1ae051bb0 Remove libdivsufsort shared library from otatools.
The library is now a static library.

Bug: 26955860
Change-Id: I64525737da1451895c255a30904a1e3e4ad8d253
2016-04-04 13:44:06 -07:00
Shinichiro Hamaji
d3ce14c325 Fix dependencies around tools/*-event-log-tags.py
We should regenerate merged tag files and java sources when
these scripts are updated.

Change-Id: Id5f11d6f480f3f74dab08f01e929ee2d7fafd2d0
2016-03-30 03:04:40 +09:00
Ying Wang
fbc5b9f56b Rebuild odex files in PDK fusion build.
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
(cherry-pick from commit 3a61eeb6cb)
2016-03-25 11:06:04 -07:00
Johan Redestig
8f800df5f0 Add libbase to otatools
build_verity_tree uses libbase since b104044.

Change-Id: I6d3406a107ceb6cd58d1a51aa79935209d4c435f
2016-03-24 14:17:51 +01:00
Dan Willemsen
3006962257 Remove ALL_PREBUILT, all users have been removed
Change-Id: I37154506ef419e7a68ce7e2d864624d2ae53206f
2016-03-23 14:15:16 -07:00
David Zeuthen
d995f4b04d Add support for Brillo Verified Boot.
The following variables are introduced

 BOARD_BVB_ENABLE: can be set to true to build boot.img and system.img
 files compatible with Brillo Verfied Boot.

 BOARD_BVB_ROLLBACK_INDEX: can be set to an integer to use for the
 rollback index.

 BOARD_BVB_KEY_PATH, BOARD_BVB_ALGORITHM: If set, the former must be a
 path to the private key used to sign the boot image and the latter must
 be the algorithm to use. If unset, a test-key stored in the tree will
 be used.

 BOARD_BVB_MAKE_BOOT_IMAGE_ARGS: Extra options to pass to 'bvbtool
 make_boot_image'.

 BOARD_BVB_SIGN_BOOT_IMAGE_ARGS: Extra options to pass to 'bvbtool
 sign_boot_image'.

 BOARD_BVB_ADD_IMAGE_HASHES_ARGS: Extra options to pass to 'bvbtool
 add_image_hashes'.

 BOARD_CUSTOM_BVBTOOL: Can be set to specify what bvbtool program to
 use.

The existing BOARD_KERNEL_CMDLINE variable is also used, as are existing
kernel and initrd-related variables. Therefore, simply adding

 BOARD_BVB_ENABLE := true

to an existing Makefile should do the trick.

Bug: 26185038
TEST=Added 'BOARD_BVB_ENABLE := true' to hardware/bsp/intel/soc/edison/soc.mk
  and built an image and then ran bvbtool's info_boot_image and
  info_image_hashes commands on the resulting boot.img and system.img
  files and verified that the information was correct. Also ran 'm dist'
  and verified that the boot.img and system.img files in the resulting
  target_files.zip file had similar information.

Change-Id: I08045ed8b0cbddc7c3acdd3a6f2c4bb75cb44bbc
2016-03-18 15:25:43 -04:00
Yohann Roussel
c8cfac947b Merge "Remove JILL, JACK_JAR and JILL_JAR" 2016-03-18 08:54:30 +00:00
Yohann Roussel
233584bb80 Remove JILL, JACK_JAR and JILL_JAR
Also ensure that sdk.atree can find jack.jar and jill.jar from prebuilt.

Bug: 27372042
Change-Id: Ie266104e51c09fa21ccb09c1f27ad7068472965c
2016-03-17 15:21:28 +01:00
Sen Jiang
4438fd909e Add zlib_fingerprint to target_files.zip
Test: make dist on edison-userdebug
Bug: 27156099

Change-Id: I4ba9095ecc5bb1730b8d0ba2d56d20fdbff3acaa
2016-03-16 11:28:19 -07:00
Sen Jiang
040141becb Revert "Add zlib_fingerprint to target_files.zip"
This reverts commit d8c715bf34.

Change-Id: Ie0c3c5b2db89fe076d678b67f013c20e836d825f
2016-03-16 03:38:29 +00:00
Sen Jiang
d8c715bf34 Add zlib_fingerprint to target_files.zip
Test: make dist
Bug: 27156099

Change-Id: I4608de70ad4dfe6523b832bbf7002dcccefe932f
2016-03-10 13:46:47 -08:00
Sami Tolvanen
450f15111c Merge "build: pass version and patch level to mkbootimg"
am: b32d845090

* commit 'b32d845090d19d2dfbbf32d4628ef81478325927':
  build: pass version and patch level to mkbootimg
2016-03-08 16:08:14 +00:00
Sami Tolvanen
8fb47f191f build: pass version and patch level to mkbootimg
Add --os_version and --os_patch_level arguments to mkbootimg.

Needs matching changes from
  I57682611e0c27fec5ed284da7d9a788383ff98b1

Bug: 27498078
Bug: 22914603
Change-Id: I04e20b0de40d864aac92ac7bcf466a6cbde3d0e4
2016-03-07 11:55:22 -08:00
Dan Willemsen
cdaf748e3a Merge changes I12810c1b,I62287a80,Ied96fdc3
am: a65b01fc09

* commit 'a65b01fc09b47c83e59dc4757c76eafba1e15cbc':
  Remove LOCAL_ACP_UNAVAILABLE
  Remove unused dependencies on $(ACP)
  Replace some uses of acp with cp
2016-03-01 23:19:33 +00:00
Dan Willemsen
7f016150a0 Remove unused dependencies on $(ACP)
Most of these are calling to copy-file-to-target or similar, which no
longer use $(ACP).

Change-Id: I62287a80c577c34df587b74e70055c2f56050ce7
2016-03-01 13:15:35 -08:00
Dan Willemsen
25afe2deec Merge "Warn more clearly when there are duplicate copied headers"
am: ca4b755563

* commit 'ca4b755563aa8d6d7544b38067bb82567f5fa255':
  Warn more clearly when there are duplicate copied headers
2016-02-23 23:53:58 +00:00
Dan Willemsen
6f60f020d7 Warn more clearly when there are duplicate copied headers
When more than one makefile tries to copy a header to the same
destination, the warning is not clear, and hard to track down and assign
blame:

build/core/copy_headers.mk:15: warning: ignoring old commands for target `out/target/product/bullhead/obj/include/qcom/display/copybit.h'

With this change, the same behavior is kept, but the warning message is
more descriptive, and contains the offending Android.mk files:

build/core/Makefile:54: Duplicate header copy: out/target/product/bullhead/obj/include/qcom/display/copybit.h
build/core/Makefile:54: Defined in: hardware/qcom/display/msm8994/libcopybit/Android.mk hardware/qcom/display/msm8994/libcopybit/Android.mk

In this case, a $(CLEAR_VARS) is missing, so the same Android.mk file is
copying the same headers twice.

Bug: 27302058
Change-Id: Icf8f580ae71a78741db21c1d8f3213424459e637
2016-02-23 13:40:07 -08:00
Bill Yi
4a459aee75 Merge commit '75bbddecaa9f9d82c2f2751b389188f0a41e3284' into HEAD 2016-02-17 09:50:15 -08:00
Tao Bao
3124af3028 Makefile: Add the missing library in otatools.zip.
With the change in [1], delta_generator now needs
libprotobuf-cpp-lite.so instead of libprotobuf-cpp-lite-rtti.so to
generate A/B payloads.

[1] commit ab5bd668f6be600a8cceb8772e426c0aa902a5e1

Bug: 27145830
Change-Id: Ib9a93bf0fbe7fa44fc5fb94668d17fa1a2e07b05
(cherry picked from commit fdd2693b65)
2016-02-11 10:50:05 -08:00
Colin Cross
481cc5a005 Don't build otatools for PDK
Change-Id: I5e73d103300ac938f80b3ff0af978c123d649fed
2016-02-04 15:09:23 -08:00
Alex Deymo
92cfd6fc2b Place the META/ dir first in the target_files.zip.
To help early verification of a target_files.zip being uploaded to our
servers, we place the META/ directory first in the .zip file, so checks
against the product_id.txt and product_version.txt don't need to wait
for the whole file to upload.

Note that META/*filesystem_config.txt files are generated and added to
the .zip file at a later point, so they are not included at the
beginning.

Bug: 26806325
TEST=`make dist` and `unzip -l out/dist/edison-target_files-eng.$USER.zip` shows most META/ files first.

Change-Id: I1955645412688f5c7823063ed56606b251daccfd
2016-01-26 18:52:10 -08:00
Tao Bao
23c3db9372 Makefile: Fix the location for payload signing key.
CL in [1] put it in a wrong path.

[1] commit 38812d684b

Bug: 25715402
Change-Id: I01a105888844011eee083d5f4d694223599fa067
2016-01-21 14:33:22 -08:00
Tao Bao
38812d684b Makefile: Add the payload public key into system image.
For non-Brillo devices using AB update, add the payload signing public
key to the system image
(system/etc/update_engine/update-payload-key.pub.pem).

We first need to sign the payload with some private key, and pack it
into an Android OTA package. Then the whole zip package will be signed
again with the device key. This is to comply with the two existing OTA
flows (Android and CrOS).

We use the same device key to do the two signings, but update_engine
expects the key in RSA public key format. This CL extracts the public
key from x509 certificate and adds it to the system image.

Bug: 25715402
Change-Id: I6f6c1148534250ddb6d9e554175c7a35bceda99e
2016-01-20 21:29:00 -08:00
Tao Bao
6d8a8cc634 Makefile: Pack brillo_update_payload and shflags into otatools.
brillo_update_payload and shflags are the scripts to generate A/B OTA
package (payload). Include them into otatools.zip.

brillo_update_payload was already included in previous CL. Move it to
the folder for executables.

Bug: 25715402
Change-Id: Idf9c05767c24c55d058cc30e696f06d4eb5fd53b
2016-01-19 14:51:51 -08:00
Tao Bao
506cbfa8b4 Merge "Fix mounting /sdcard under recovery."
am: 948b9c30b4

* commit '948b9c30b4197a709846e604c8e571d90161b17f':
  Fix mounting /sdcard under recovery.
2016-01-12 22:32:11 +00:00
Tao Bao
3f56a33041 Fix mounting /sdcard under recovery.
The CL in [1] changed to create a symlink to /storage/self/primary for
/sdcard. It breaks the mount of /sdcard under recovery.

[1] commit 595003a3d06a13862052ef2f4f578371dae5ad65

Bug: 26509280
Change-Id: I98d02d54d707c2c8826c5ee119cf1a3ffa0c4bc9
2016-01-12 11:40:30 -08:00
Tao Bao
7da6338cf3 Merge "Build delta_generator for A/B update."
am: bf4213ebae

* commit 'bf4213ebaee1c505fa5070419aba4cd5ddccaae2':
  Build delta_generator for A/B update.
2016-01-04 19:51:30 +00:00
Tao Bao
f8e6fbe2f5 Build delta_generator for A/B update.
delta_generator computes the OTA package (aka payload) for A/B update.
Also add its dependent libraries into otatools.zip.

Bug: 25715402
Change-Id: Iddf4b9ac188cc4c8bf3f89ce3641d68451632ba1
2016-01-04 09:57:32 -08:00
Tao Bao
647a1d779a Merge "Makefile: Clean up the condition for RECOVERY_RESOURCE_ZIP."
am: 9d4dbe09ed

* commit '9d4dbe09edcaeccd461138b5aefceb76759f5fd9':
  Makefile: Clean up the condition for RECOVERY_RESOURCE_ZIP.
2015-12-22 14:27:04 -08:00
Tao Bao
4594d0e0fd Makefile: Clean up the condition for RECOVERY_RESOURCE_ZIP.
Change-Id: I6909d4572bd54da48f7fd6b76d4a5ee03c84206c
2015-12-22 11:28:35 -08:00
Tao Bao
c27ad030b6 Merge "Allow building recovery as boot."
am: 781b7b20d4

* commit '781b7b20d41cfe80472707aec46d0eac5473bfc5':
  Allow building recovery as boot.
2015-12-21 19:22:00 +00:00
Daniel Rosenberg
40ef35b9e9 Allow building recovery as boot.
With BOARD_USES_RECOVERY_AS_BOOT = true, we skip building the
non-ramdisk boot.img but building the recovery image as boot.img. It
contains recovery's ramdisk (e.g. with /sbin/recovery). It depends on
the bootloader parameter (skip_initramfs) to determine the actual mode
to boot into.

Change-Id: Id6e2d0a2b94383944ca8f35bba688c6401745622
(cherry picked from commit d80bef2b9e)
2015-12-21 11:17:08 -08:00
Todd Poynor
77d1b2ec31 Merge "Make squashfs sparse image generation optional"
am: ffce16c7e6

* commit 'ffce16c7e6bdabb909a36c2b97b7881eddd5ba54':
  Make squashfs sparse image generation optional
2015-12-16 22:32:31 +00:00
Todd Poynor
b2a555e6fc Make squashfs sparse image generation optional
Allow non-sparse squashfs image generation, a la ext filesystems.

Bug: 26218766
Change-Id: Ifd596af16411e0cf69a2e7e05d725fd9442dc79c
2015-12-15 20:11:12 -08:00
Alex Klyubin
dfd2199ef6 Merge "Make signapk use Conscrypt."
am: 7884a63731

* commit '7884a63731a876f483c13288c87d8e7af7a533e4':
  Make signapk use Conscrypt.
2015-12-11 10:37:16 -08:00
Alex Klyubin
9667b18f23 Make signapk use Conscrypt.
This makes the signapk tool use Conscrypt (where possible) instead of
the platform-default JCA providers and the Bouncy Castle JCA provider.
This speeds up (by 10-30%) APK and OTA update signing because
Conscrypt's crypto primitives are backed by BoringSSL.

Previously, the signapk tool consisted only of the signapk.jar.
Because Conscrypt is backed by native code, signapk now consists of
signapk.jar and crypto_openjdk_jni shared library. This requires that
users of the tool be updated to provide a suitable -Djava.library.path
argument to the Java runtime. This change updates all known users of
the tool inside the Android source tree to do so.

Bug: 26097626
Change-Id: I8411b37d7f771ed99269751a3007dff103083552
2015-12-11 08:36:42 -08:00
Alex Deymo
2001743c7a Merge "Rename libext2 host libraries to standard suffix."
am: 6950168f1d

* commit '6950168f1d4bd6ddfd64755c26d7de6ef3709f00':
  Rename libext2 host libraries to standard suffix.
2015-12-10 14:28:46 -08:00
Alex Deymo
41ac44ed2b Rename libext2 host libraries to standard suffix.
libext2_uuid_host was renamed to libext2_uuid-host to match the
"-host" suffix used in most libraries.

Bug: 24619596
TEST=make dist

Change-Id: Ic5faccb4d5fdbbf3d3bba6f4a35cf99d4961bb54
2015-12-09 18:02:56 -08:00
Ying Wang
8d5ff73ce4 Merge "Fix TARGET_ASAN build." am: 9bbc67b55a
am: 4f0cb0307b

* commit '4f0cb0307b93b407abe110f3d17085d7807c137c':
  Fix TARGET_ASAN build.
2015-12-08 03:01:18 +00:00
Ying Wang
03b6e8b6c4 Fix TARGET_ASAN build.
Bug: 26044735
Change-Id: I9c6b3b16637ca2d0da4765e896a9f03c1d5dc51c
2015-12-07 10:45:19 -08:00
Ying Wang
4c6b66e617 Merge "make USER limited to 6 characters when generating BF_BUILD_NUMBER" am: 88ca8aff3e
am: 79215cdeab

* commit '79215cdeabbc43e47cbfe212eed02e6958ebfb8b':
  make USER limited to 6 characters when generating BF_BUILD_NUMBER
2015-12-02 17:55:18 +00:00
wei qiao
6fa82b50f4 make USER limited to 6 characters when generating BF_BUILD_NUMBER
the value of USER is dependent from the compilation environment,so
when compiling one same device project, the BUILD_FINGERPRINT may
exceed 91 characters because ${USER} is long, but with short ${USER}
the compilation can pass.

Signed-off-by: wei qiao <qiaowei224@gmail.com>
Change-Id: Ia0f7dfa9cf7d605f1f2603f70dd0e6877482eb8a
2015-12-02 11:47:27 +08:00
Tao Bao
2867533add Merge "Stop packaging obsolete OTA tools." am: b98fa19703
am: e82ea963e8

* commit 'e82ea963e8cf5d7eb2dd6d2c7aacee86ddfba853':
  Stop packaging obsolete OTA tools.
2015-12-01 02:31:24 +00:00
Tao Bao
a04fca31bf Stop packaging obsolete OTA tools.
applypatch, applypatch_static and sqlite3 are no longer needed.

Bug: 24621915
Change-Id: I6de5bc45bc8434b9c387e1d3d1b6c347c23a5290
2015-11-30 12:22:24 -08:00
Tao Bao
c684a97329 Add ro.build.ab_update property.
am: 532fdf4479

* commit '532fdf4479acb50cdb480e6fdfe24f0698fcd67b':
  Add ro.build.ab_update property.
2015-11-19 18:42:52 +00:00
Tao Bao
532fdf4479 Add ro.build.ab_update property.
Set ro.build.ab_update if AB_OTA_UPDATER is true. Device will depend on
this property to call the proper update API.

Change-Id: I5916ef5b30ea3351d323382f7ce83a17df2b0a70
2015-11-16 12:38:07 -08:00
Tao Bao
f4d759930c build: Fix "adb shell" in recovery for system_root_image.
For system images that contain the root directory, "adb shell" in
recovery stops working if the image is mounted at "/system", because
sh now locates at /system/system/bin/sh. We fix the issue by mounting
the image on /system_root and create a symlink to /system_root/system
for /system.

Bug: 22855115
Change-Id: Ia6b257b75aeb67687c3909063d1725a23a5ccd60
2015-11-16 12:38:07 -08:00
Tao Bao
97b906b004 build: Support packaging for system_root_image.
If system image contains the root directory
(BOARD_BUILD_SYSTEM_ROOT_IMAGE == "true"), we package the root directory
into ROOT/ instead of BOOT/RAMDISK/ in the target_files zip.

Change-Id: I817776ca97194991308b2131d0e34ab136283464
2015-11-16 12:02:24 -08:00
Tao Bao
6ed1491402 Support systems that use a full copy of recovery image.
If BOARD_USES_FULL_RECOVERY_IMAGE == true, a full copy of recovery
image will be carried as /system/etc/recovery.img instead of a patch
at /system/recovery_from_boot.p.

Bug: 22641135
Change-Id: Ie271d3e2d55d7b003f667ac5b44203d69b23c63b
(cherry picked from commit 8beab69bd5)
2015-11-16 12:02:24 -08:00
Daniel Rosenberg
752ecc219a build: core: Fix issue in recovery
Now that symlinks are created at build time, the rsync while
making recovery runs into issues around the etc symlink

Change-Id: Ie781507b22e4661629840075b274eaab2f712de6
2015-11-16 12:02:24 -08:00