Commit graph

26572 commits

Author SHA1 Message Date
Colin Cross
41ee5fc07a Merge "Set flag when using sdk tools in place" 2016-01-21 23:36:26 +00:00
Tao Bao
27a1201989 Merge "Makefile: Fix the location for payload signing key." 2016-01-21 22:37:46 +00: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
Dan Willemsen
60c9200c1e Merge "Pass the arm/thumb cflags to assembly files" 2016-01-21 22:31:11 +00:00
Tao Bao
b49d05e72e Merge "Makefile: Add the payload public key into system image." 2016-01-21 22:21:31 +00:00
Alex Klyubin
de5bc04717 Sign APKs using SHA-256 instead of SHA-1 when possible.
This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c1).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280
Change-Id: I048393e0971d0d6559dbd69ea902754c6c7cab14
2016-01-21 10:25:12 -08:00
Christopher Wiley
8edda3afdf Merge "Separate aidl dependencies from compiler dependencies" 2016-01-21 18:19:05 +00:00
Christopher Wiley
11feb8b075 Merge "Keep aidl generated C++ inside the generated folder" 2016-01-21 18:17:29 +00: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
Colin Cross
d3f3ab77fd Set flag when using sdk tools in place
New version of build/ execute the tools from prebuilts/sdk/tools in
place, old versions copy them to $(HOST_OUT_EXECUTABLES).  build/ and
prebuilts/sdk often use mixed versions, set a flag that
prebuilts/sdk/tools/Android.mk can use to determine when it is using an
old build/ directory.

Change-Id: Iad2f96c35203fd3b0976946d229bfa8ab4acb150
2016-01-20 16:08:49 -08:00
Alex Klyubin
dd910c5945 Make signapk sign using APK Signature Scheme v2.
APKs are now signed with the usual JAR signature scheme and then
with the APK Signature Scheme v2.

APK Signature Scheme v2 is a whole-file signature scheme which aims
to protect every single bit of the APK as opposed to the JAR signature
scheme which protects only the names and uncompressed contents of ZIP
entries.

The two main goals of APK Signature Scheme v2 are:
1. Detect any unauthorized modifications to the APK. This is achieved
   by making the signature cover every byte of the APK being signed.
2. Enable much faster signature and integrity verification. This is
   achieved by requiring only a minimal amount of APK parsing before
   the signature is verified, thus completely bypassing ZIP entry
   decompression and by making integrity verification parallelizable
   by employing a hash tree.

Bug: 25794543
Change-Id: I275d2a6d0a98504891985309b9dfff2e0e44b878
2016-01-20 13:35:21 -08:00
Alex Klyubin
3cc3605010 Merge "Command-line flag to disable signing with APK Signature Scheme v2." 2016-01-20 21:02:29 +00:00
Alex Klyubin
9b54a565c9 Command-line flag to disable signing with APK Signature Scheme v2.
This change makes signapk not reject the --disable-v2 command-line
flag which may be used by build scripts in some branches. The flag
is currently ignored.

This change is landed separately from the actual support for APK
Signature Scheme v2 because of unbundled branches which use prebuilt
versions of signapk.

Bug: 25794543
Change-Id: I900966244b8b6296b1f443bf98830cc7f7cc81a8
2016-01-20 12:55:16 -08:00
Christopher Wiley
087f327304 Separate aidl dependencies from compiler dependencies
Both aidl and clang/gcc were putting their dependencies in the same
place.  Move aidl's dependencies to a file ending with .aidl.P rather
than the compiler's .P.

While here, inform kati that we have these special dep files.

Bug:26409006
Test: Rebuild, note both files being generated

Change-Id: I29d2eea822235d60713c2059f3a314e475eb5aa3
2016-01-20 12:54:09 -08:00
Christopher Wiley
257796c62d Keep aidl generated C++ inside the generated folder
Transform ../ to dotdot/ for C++ generateds from .aidl source files.
This forces us to use one layer of indirection to calculate the build
rules for .aidl files, since we can no longer use a pattern rule.

This was tested by modifying system/tools/aidl's Android.mk to refer to
its .aidl files by going up two directories and then repeating the
directories again.  When I print the build rules with $(info) I see that
dotdot/ appears in appropriate places (C++ paths, but not .aidl paths).

Bug: 26407018
Test: Described above.

Change-Id: I397c9d10408c0c66d8b5a247a1f34eb4bf4f74ce
2016-01-20 09:17:20 -08:00
Tao Bao
c098e9efd9 Generate OTA packages for A/B update.
It calls brillo_update_payload to generate the payload for A/B update.
And packages the payload according to Android OTA package format.

Note that it only supports generating full/incremental OTAs with this
CL. Signing for release may not work properly at the moment.

Bug: 25715402
Change-Id: I4ac8505bacad28a572a9320dc8b52dd0f1ce47f5
2016-01-19 15:46:34 -08:00
Chih-hung Hsieh
c36a9760e1 Merge "Set USE_CLANG_PLATFORM_BUILD to default true." 2016-01-19 23:40:56 +00:00
Tao Bao
4dc400e753 Merge "Makefile: Pack brillo_update_payload and shflags into otatools." 2016-01-19 22:57:25 +00: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
Dan Willemsen
45d38c06b4 Pass the arm/thumb cflags to assembly files
This effectively changes the default instruction set of assembly files
from arm to thumb in order to match the default for C/C++.

Change-Id: I8684f144a1195b53b3e0fdd04cacf77f6a131c7e
2016-01-19 12:37:17 -08:00
Chih-Hung Hsieh
8dd69d97f6 Set USE_CLANG_PLATFORM_BUILD to default true.
BUG: 26102335
Change-Id: I3b9fa2dfbee361410caf163147945ab448bb8ddf
2016-01-19 11:43:44 -08:00
Neil Fuller
75bbddecaa Merge "Remove synchronized from the public API docs"
am: 8cb9be66b7

* commit '8cb9be66b7878478aa61e7b752e3c8b916811299':
  Remove synchronized from the public API docs
2016-01-18 19:40:31 +00:00
Neil Fuller
8cb9be66b7 Merge "Remove synchronized from the public API docs" 2016-01-18 19:36:27 +00:00
Dan Willemsen
9f41040b00 Merge "Add -Werror=date-time to target builds"
am: 5c3f812507

* commit '5c3f812507bd025da2fc3d5fa40e8a278535dff2':
  Add -Werror=date-time to target builds
2016-01-16 20:17:01 +00:00
Dan Willemsen
5c3f812507 Merge "Add -Werror=date-time to target builds" 2016-01-16 20:13:30 +00:00
Tianjie Xu
dabcd36224 Merge "Fix print error of numbers of blocks"
am: 2acd8a2eef

* commit '2acd8a2eef88973ce222a4ed90efaa94ede1a30b':
  Fix print error of numbers of blocks
2016-01-15 19:21:00 +00:00
Tianjie Xu
2acd8a2eef Merge "Fix print error of numbers of blocks" 2016-01-15 19:07:22 +00:00
Neil Fuller
79a6f53d7d Remove synchronized from the public API docs
The information is not useful. Javadoc hasn't included this
information for years.

Bug: 25767152
(cherry-picked from commit a37bdc89b4)

Change-Id: Id03a6e383118ab716ce870a1d7a3740656420fe7
2016-01-15 04:52:22 +00:00
Tianjie Xu
ebe39a096a Fix print error of numbers of blocks
The total number of blocks to pack as new data was printed incorrectly.
Fix printing.

Change-Id: I6a6bb8dd6682d9c57943ceb1a728995f9529e2fd
2016-01-14 19:13:21 -08:00
Tianjie Xu
9ccf073210 Merge "Adjust the size limit for splitting large files"
am: 9b2fe7e0b8

* commit '9b2fe7e0b864a7fd2deae831674d97c72fe29f64':
  Adjust the size limit for splitting large files
2016-01-14 19:22:39 +00:00
Tianjie Xu
9b2fe7e0b8 Merge "Adjust the size limit for splitting large files" 2016-01-14 19:17:00 +00:00
Tianjie Xu
bb86e1d9c2 Adjust the size limit for splitting large files
Modify the number of max blocks per transfer to reduce splitting of
large files during patch generation. This will reduce the size of
final incremental OTA updater package. In specific, the size limit
for each file to transfer is set to 1/8 cachesize instead of a fix
number.

Bug: 26472126

Change-Id: Iffb135e378c4c7a91640f2fc4c40e9e93d1fe4bb
2016-01-13 18:21:26 -08:00
Dan Willemsen
766eeb747e Merge "Allow building kati & makeparallel with soong"
am: 77cde9e244

* commit '77cde9e244de9b043793ef528818de0ffea862e1':
  Allow building kati & makeparallel with soong
2016-01-14 02:05:24 +00:00
Dan Willemsen
77cde9e244 Merge "Allow building kati & makeparallel with soong" 2016-01-14 00:40:26 +00:00
Colin Cross
dbd43849fb Don't force color diagnostics outside of ninja
Building with USE_NINJA=false and piping build output to a file will
result in ANSI color codes in the build output.  Only force ANSI codes
on when building with ninja, which strips the ANSI codes when writing
build output to a non-TTY.

Change-Id: Ifd2fb53799fd99c23b7ad91cdb84d943bf707db0
2016-01-13 14:05:54 -08:00
Andy Huang
400d9ff4ba Merge "remove Exchange2 from core.mk" into mnc-dr1.5-dev am: 0936632c93
am: 624ecb988b

* commit '624ecb988b037a4eee46d06b3618bee1e5d2b9cb':
  remove Exchange2 from core.mk
2016-01-13 21:28:07 +00:00
Andy Huang
624ecb988b Merge "remove Exchange2 from core.mk" into mnc-dr1.5-dev
am: 0936632c93

* commit '0936632c93caf436732a85bbf7beb3c5cecafd5b':
  remove Exchange2 from core.mk
2016-01-13 21:26:14 +00:00
Andy Huang
0936632c93 Merge "remove Exchange2 from core.mk" into mnc-dr1.5-dev 2016-01-13 21:23:07 +00:00
Dan Willemsen
3f60c4b6c0 Allow building kati & makeparallel with soong
This uses far fewer hacks in order to build these host tools, but will
require more libraries(libc++,etc) from unbundled and stripped down
branches.

Once this becomes the only option, all builds will happen after soong
runs. Then the toolchain / global cflags information will be able to be
moved from make to soong (and exported back to make).

Change-Id: I270b1d92bcef28a96fbc3ec9910d9bd0c101ac0f
2016-01-13 13:08:29 -08:00
Stephen Hines
4f14e16324 Merge "Switch to Vista instead of Win2K."
am: c8299320da

* commit 'c8299320dac3a399430be37e0581bc263bef997e':
  Switch to Vista instead of Win2K.
2016-01-13 20:52:09 +00:00
Stephen Hines
c8299320da Merge "Switch to Vista instead of Win2K." 2016-01-13 20:47:13 +00:00
Colin Cross
dc74441928 Merge "makeparallel: print path on exec failure"
am: e56ef1bee7

* commit 'e56ef1bee78f7b9a0c74c25087a869f382599080':
  makeparallel: print path on exec failure
2016-01-13 20:43:27 +00:00
Colin Cross
1ed08efbb9 Merge "Ignore Android.mk files with USE_SOONG=true"
am: 19f6638026

* commit '19f6638026b8481e04003fcbd5a8ef017a66d9c8':
  Ignore Android.mk files with USE_SOONG=true
2016-01-13 20:43:22 +00:00
Colin Cross
e56ef1bee7 Merge "makeparallel: print path on exec failure" 2016-01-13 20:32:45 +00:00
Colin Cross
19f6638026 Merge "Ignore Android.mk files with USE_SOONG=true" 2016-01-13 20:32:26 +00:00
Alex Klyubin
45f1403b7e Merge "Unconditionally use SHA-256 when minSdkVersion is 18 or higher."
am: fbee4f2e42

* commit 'fbee4f2e42c31aa392869d813687c7648ae41e80':
  Unconditionally use SHA-256 when minSdkVersion is 18 or higher.
2016-01-13 18:46:25 +00:00
Alex Klyubin
fbee4f2e42 Merge "Unconditionally use SHA-256 when minSdkVersion is 18 or higher." 2016-01-13 17:15:34 +00:00
Stephen Hines
625e7159ff Switch to Vista instead of Win2K.
Bug: http://b/26524325
Bug: http://b/25282907

The latest Clang/LLVM requires Vista APIs in order to execute, so we
need to bump the minimum required Windows version for our host tools.

Change-Id: Ic1a760bc240060f5de39ce3a68484886021ff3d9
2016-01-12 17:56:47 -08:00
Dan Willemsen
b2cfef28fb Merge "Remove -Wa,noexecstack from unsupported arm clang flags"
am: d29a84161e

* commit 'd29a84161edf1c82b988c8b181638b9b37540e6d':
  Remove -Wa,noexecstack from unsupported arm clang flags
2016-01-13 01:02:40 +00:00
Dan Willemsen
d29a84161e Merge "Remove -Wa,noexecstack from unsupported arm clang flags" 2016-01-13 00:56:59 +00:00