Commit Graph

3481 Commits

Author SHA1 Message Date
Dan Willemsen
08420cbc8a Ensure prebuilt executables are executable
Use 'chmod +x' to make sure that they're executable, even if the source
file is not.

Change-Id: Id155f6b4ff188f5c909fd6237fd64183af264f79
2016-03-01 22:11:41 -08:00
Dan Willemsen
479311bc7c Remove LOCAL_ACP_UNAVAILABLE
Now that copy-file-to-target doesn't use acp, nothing in the acp build
path uses acp, so we don't need to special case it to prevent loops.

Change-Id: I12810c1b064d0c03135a80077a76bc4c9cc18b24
2016-03-01 13:16:53 -08: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
Tao Bao
8608cde944 releasetools: Add --oem_no_mount option.
We may have devices with OEM-specific properties but without an OEM
partition (e.g. the properties might be set by init based on hardware
SKUs). For such devices, we supply --oem_no_mount to skip mounting the
OEM partition in the updater-script. The option is only meaningful when
-o (--oem_settings) is specified.

Bug: 27359929
Change-Id: Ic08396e478a82be4188e980e704b33b4f704a8d7
2016-02-26 16:07:16 -08:00
Tao Bao
5d1825664a releasetools: Support generating downgrade incremental OTAs.
Add --downgrade flag to ota_from_target_files.py script. It allows
generating an incremental OTA that updates from a newer build to an
older one (based on timestamp comparison). "post-timestamp" line in the
metadata file will be replaced by "ota-downgrade=yes". A data wipe will
always be enforced, so "ota-wipe=yes" will also be included in the
metadata file.

Bug: 26883782
Change-Id: Iaa05f662d948b7ab632a9fbb7051cc3f8bf68c21
2016-02-24 11:31:17 -08:00
Alex Klyubin
d131a5a813 Merge "Switch to production constant for v2 signing scheme ID." 2016-02-17 16:41:14 +00:00
Alex Deymo
1bd78f399f Merge "Include Brillo's cannonical .clang-format file." 2016-02-16 22:32:06 +00:00
Alex Deymo
665110e38c Include Brillo's cannonical .clang-format file.
Many Brillo repositories need to share a common .clang-format file to
ensure the same formatting rules. This patch moves the .clang-format
file already in system/core/metricsd to a common location to be shared
by other Brillo repositories.

Bug: 27121653
TEST=symlink from system/update_engine, ran clang-format.

Change-Id: Ie04a5a9cf54b9cc24f180fe3896501db4d883a64
2016-02-16 14:29:45 -08:00
Colin Cross
03f0a03857 Merge "makeparallel: unset MAKEFLAGS and MAKELEVEL" 2016-02-16 21:08:59 +00:00
Alex Klyubin
97dd58a071 Switch to production constant for v2 signing scheme ID.
Bug: 25794543
Change-Id: I0e06f31ea3117c6865d18f853f99304964b323b4
2016-02-16 12:42:37 -08:00
William Roberts
78626c480a fs_config: error on multiple specifications of android_filesystem_config.h
Multiple files added to TARGET_ANDROID_FILESYSTEM_CONFIG_H will build,
however the tooling will only respect the first header found. The
sanity check in the makefile will only check the first path found for
proper naming convention. One can end up with a successful build that
does not respect all files in the TARGET_ANDROID_FILESYSTEM_CONFIG_H.

Check that one and only one item is set to
TARGET_ANDROID_FILESYSTEM_CONFIG_H variable.

Output:
*** Multiple fs_config files specified, see "device/lge/bullhead/two/android_filesystem_config.h device/lge/bullhead/one/android_filesystem_config.h"..

Change-Id: I70a43f44713b273cb9a78f54ff16854b9e11af4a
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-02-11 10:47:06 -08:00
Alex Klyubin
07d3dbd2ed Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." 2016-02-10 21:35:06 +00:00
Sami Tolvanen
7855c9aadf Merge "Fix metadata location when file system doesn't span the partition" 2016-02-10 18:50:17 +00:00
Alex Klyubin
2cfd1d108c 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: I3f2faaf49c6fa392ffbf1ee9f30de476f9f73231
2016-02-10 09:40:31 -08:00
Sami Tolvanen
6a8781a251 Fix metadata location when file system doesn't span the partition
Pad the sparse image with a zero fill chunk to correctly position
verity and FEC metadata at the end of the partition.

Bug: 27073791
Change-Id: I9f70d579a42e5007d50e9c02a98a608d2815f0ed
2016-02-10 09:37:59 -08:00
Tao Bao
8290ba9e0d Merge "releasetools: Add two new entries to metadata." 2016-02-10 17:05:47 +00:00
Doug Zongker
ae91d54e89 Merge "improve performance of blockimgdiff" 2016-02-10 16:52:10 +00:00
Doug Zongker
2d2dd1526d improve performance of blockimgdiff
Substantially improves the performance of some BlockImageDiff steps on
large images.  GenerateDigraph and AssertSequenceGood are now linear in
the number of blocks in the target image rather than quadratic in the
size of the partition.  FindVertexSequence tracks the score of each
vertex, the set of sources and sinks, and maintains a heap for finding
the best vertex to use for the greedy step, instead of repeatedly
re-scanning the set of remaining vertexes.

Change-Id: Ifeea5053d80ef4f06a5aa239c9a1797dd5e47841
2016-02-10 07:44:21 -08:00
Alex Klyubin
f735851fa9 Use Jan 1 2009 as timestamp in OTA update ZIPs.
This is a follow-up to 6c41036bcf where
I forgot to update a section of OTA update ZIP code.

Bug: 26864066
Change-Id: Idbcde71d6377a16807e41c999120eeddd5b4d8a4
2016-02-09 13:09:57 -08:00
Dan Willemsen
a465cf681b Merge "Revert "Do not diff .odex files"" 2016-02-08 22:40:33 +00:00
Dan Willemsen
86c8ebb6ef Revert "Do not diff .odex files"
The bug has been fixed, .odex files are deterministic.

This reverts commit c4438d3d29.

Bug: 26956807
Change-Id: Iaa42dfba5cf79ee64ac20cf4f1f3a4598f4275f4
2016-02-08 20:48:48 +00:00
Tao Bao
d8d14bec0d releasetools: Add two new entries to metadata.
Add "ota-required-cache" into the metadata file in an OTA package,
which shows the minimum free space on /cache to apply the update.

Add "ota-type" into the metadata file, which shows the OTA type for
this package (i.e. one of FILE, BLOCK and AB).

Also add the cache free space check into updater-script when generating
block-based incremental OTAs (we only had such lines for file-based
incrementals before).

Bug: 26731903
Change-Id: Id6ff0fc4cdfb1443636b0b3800b0f8bddb5bb1d0
2016-02-08 11:00:27 -08:00
Alex Deymo
db82f72752 Merge "ota_from_target_files: Include the payload properties." 2016-02-05 23:11:18 +00:00
Colin Cross
d8f0d68b78 makeparallel: unset MAKEFLAGS and MAKELEVEL
makeparallel inherits values for MAKEFLAGS and MAKELEVEL from make
through the environment, but they should not be propagated to the child
process in case the child process tries to run make again.

Change-Id: I4c5df10ea8055cd1f1f61a892d5b1a7acb287bbb
2016-02-05 00:10:20 -08:00
Alex Deymo
19241c11bd ota_from_target_files: Include the payload properties.
When building an A/B OTA package, include the payload.bin properties as
a key-value pairs text file, so it can easily be passed to
update_engine during payload application.

Bug: 26991255
TEST=`ota_from_target_files out/dist/${BOARD}-target_files.zip full-ota.zip` includes the properties.

Change-Id: I445c8a8e412a8e16b48b6ee626db8e27d48a38a9
2016-02-04 23:29:50 -08:00
Dan Willemsen
c4438d3d29 Do not diff .odex files
They still are not deterministic -- only the boot images were made
deterministic (.oat/.art).

Bug: 26956807
Change-Id: I2e00bb6662b4c8d184c48ef9aa34b39142c94893
2016-02-03 10:46:39 -08:00
Dan Willemsen
8c915ee2ef Diff libpac.so now that it is deterministic
Bug: 25348136
Change-Id: I008902299281b5ddd55a9b8c405d53eea2d56c8b
2016-02-03 10:45:25 -08:00
Dan Willemsen
734d78cdf6 Diff .art/.oat/.odex files now that they are deterministic
This also whitelists the ro.build.user property, which may change based
on host username.

Bug: 26687569
Change-Id: I8f3244c2325dd80a7961c474655f0c50670d1b46
2016-02-01 13:41:30 -08:00
Dan Willemsen
0d85dab09a Merge "Use Jan 1 2009 as timestamp in APKs and OTA update ZIPs." 2016-01-30 02:44:27 +00:00
Alex Klyubin
01ac26d942 Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible." This is breaking CTS." 2016-01-29 23:58:27 +00:00
Alex Klyubin
061289c432 Revert "Sign APKs using SHA-256 instead of SHA-1 when possible." This is breaking CTS.
This reverts commit c2a36afd67.

Change-Id: I4389bf99aeb213198c1c501ba9462bd4a4540d0a
2016-01-29 23:56:44 +00:00
Lee Campbell
6c8e3e4108 Merge "brillo: Remove dependency on java for Brillo" 2016-01-29 23:42:19 +00:00
Lee Campbell
3d8bf2994c brillo: Remove dependency on java for Brillo
Brillo does not require Java. Add a JAVA_NOT_REQUIRED
flag to the build system to make the jdk requirment optional

Also don't build signapk for Brillo

BUG: 25281898
Change-Id: I31e68cc7d076bf6c234699c77c0ea1ea428be4f5
2016-01-29 15:38:53 -08:00
Alex Klyubin
6c41036bcf Use Jan 1 2009 as timestamp in APKs and OTA update ZIPs.
Previously, the timestamp was one hour ahead of NotBefore of the
signer's certificate, adjusted for the current timezone. With this
change the MS-DOS timestamp in output APK/ZIP files is
Jan 1 2009 00:00:00.

Bug: 26864066
Change-Id: Id6263c38ac7042489ab695454f8e0fb2d85a3958
2016-01-29 13:10:03 -08:00
Alex Klyubin
c2a36afd67 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

(cherry picked from commit de5bc04717)

Change-Id: I4b100750e47788ab6ed897a0a5abfd33542e8676
2016-01-29 10:17:02 -08:00
Alex Klyubin
4a97cde443 Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."" 2016-01-27 17:49:40 +00:00
Alex Klyubin
a80a8085e0 Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."
This reverts commit 74df828cb5. This commit is breaking a build, again...

Change-Id: I2df561d68302ba4c83e90a64a7bf203645033a3b
2016-01-27 17:45:42 +00:00
Alex Klyubin
72d152f478 Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." 2016-01-27 16:55:16 +00:00
Neil Fuller
8f7d4b7474 Doclava template changes associated with default methods
The ordering of method declaration modifiers changed slightly
to reflect the ordering given in:

http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.3
http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.4

Bug: 26241119
(cherry-picked from commit ca59875e12)

Change-Id: I8489ad5010fc811b22167af50ba29221aac8b6cb
2016-01-27 11:57:34 +00:00
Alex Klyubin
74df828cb5 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: I058393e0971d0d6559dbd69ea902754c6c7cab14
(cherry picked from commit de5bc04717)
2016-01-26 18:41:57 +00:00
Alex Klyubin
7382bdf8c1 Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."" 2016-01-25 17:19:02 +00:00
Alex Klyubin
1429d5e14c Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."
This reverts commit de5bc04717 because it's breaking some builds. Turns out some APKs have multiple sdkVersion attributes returned by aapt.

Change-Id: I013d6ef5eac473dd3900e0b9edf4c32cdc838bab
2016-01-25 17:17:09 +00:00
Alex Klyubin
b763b29267 Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." 2016-01-25 16:42:27 +00:00
Tao Bao
bc6a66826a Merge "Generate OTA packages for A/B update." 2016-01-22 17:23:28 +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
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
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
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
Neil Fuller
8cb9be66b7 Merge "Remove synchronized from the public API docs" 2016-01-18 19:36:27 +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