Commit graph

41196 commits

Author SHA1 Message Date
Ivan Lozano
c5ef21febf Revert "Overflow sanitization in frameworks/ and system/."
This reverts commit c2d7db1c7d.

Change-Id: I3bab6a359bcec605a8120bf106bf121090eb63fe
2018-01-20 01:44:11 +00:00
Treehugger Robot
00844ccf77 Merge "Reland: Add boot.art.rel files to system image" 2018-01-20 01:01:29 +00:00
Ng Zhi An
9446c1df98 Fix order of args passed to mksquashfsimage.sh
Bug: 72234456
Test: make systemimage
Change-Id: I1b4b07f0a488eade2f297fea12d02b6e8ccba7d8
2018-01-19 15:55:39 -08:00
Treehugger Robot
3221f0f387 Merge "releasetools: Dump mkfs/fsck/simg2img outputs on error." 2018-01-19 22:35:47 +00:00
Alex Klyubin
a1b5dfe151 Reland: Add boot.art.rel files to system image
This file is used to verify that all differences between /system
boot*.art and /data/dalvik-cache boot*.art only consist of relocation
changes. The goal is to mitigate /data/dalvik-cache boot*.art files
being a persistence vector.

Test: Build and ensure boot.art.rel files are on the image.
Bug: 66697305
Change-Id: I68c445da46b2d3099ee347a04af4fbb84da85b0d
2018-01-19 14:34:32 -08:00
Yifan Hong
65310d6b06 Merge "move VINTF metadata to /etc/vintf/ ." 2018-01-19 22:01:28 +00:00
Tao Bao
fabe08352c releasetools: Add PayloadSigner class.
Create a wrapper class that handles the payload signing, which unifies
the paths with and without external signer. Also add tests for the newly
added class.

The test keys under testdata/ are created with the script in
development/tools/make_key. testdata/testkey_with_passwd.pk8 uses
password "foo".

Test: python -m unittest test_ota_from_target_files
Test: Get identical A/B OTA packages w/ and w/o the CL.
Change-Id: Ic770aec726498a3babb88ec509985e7f1210fb18
2018-01-19 13:25:04 -08:00
Steven Moreland
3ea4e46429 Add 'blank_screen' to embedded.mk.
This utility shuts off the screen.

Bug: 70846424
Test: manual + w/ init
Change-Id: I11bf8b709e81dd127de7d12c50da4ab5be456cfb
2018-01-19 13:01:13 -08:00
Treehugger Robot
a5b48fcf7f Merge "releasetools: Clean up three functions in add_img_to_target_files.py." 2018-01-19 20:33:29 +00:00
Treehugger Robot
1eddcad909 Merge "releasetools: Refactor AddImagesToTargetFiles()." 2018-01-19 20:31:21 +00:00
Tao Bao
cd53a89599 releasetools: Dump mkfs/fsck/simg2img outputs on error.
The output (stdout and stderr combined) would be helpful in understanding
the cause of the failure.

Not changing other occurrences in build_image.py yet, since it's less
obvious if a failed call should be considered fatal (thus whether to
dump such outputs). For example, GetVeritySize() simply returns 0 on
failed calls. They deserve further clean-ups in later CLs (with unit
tests).

Bug: 71864688
Test: Inject errors into mke2fs/e2fsck/simg2img. `m snod` prints outputs.
Test: `m snod` remains quiet on successful runs.
Change-Id: I172403f6cd05bce93767265dbcb110271a68e2a8
2018-01-19 11:15:42 -08:00
Yifan Hong
8f863693c9 move VINTF metadata to /etc/vintf/ .
In particular,
/vendor/manifest.xml => /vendor/etc/vintf/manifest.xml
/system/manifest.xml => /system/etc/vintf/manifest.xml
/vendor/compatibility_matrix.xml =>
    /vendor/etc/vintf/compatibility_matrix.xml

Test: verify that fileis exist in destination
Test: hwservicemanager can read these files
Bug: 36790901
Change-Id: Ic361a48e170fb9a77faec76ad0e829625427820d
2018-01-19 10:52:27 -08:00
Ivan Lozano
ee960154e5 Merge "Overflow sanitization in frameworks/ and system/." 2018-01-19 15:55:38 +00:00
Treehugger Robot
d3a6ff9bdb Merge "Revert "Add boot.art.rel files to system image"" 2018-01-19 14:35:01 +00:00
Badhri Jagan Sridharan
09935e4174 Build usbd
Bug: 63669128
Test: Manually tested whether usbd was able to configure
usb stack while boot-up.
Change-Id: I28ff31d14a6c12a7a85316f41409ceda3ca2a170
2018-01-19 06:30:13 -08:00
Ian Pedowitz
74076b7556 Revert "Add boot.art.rel files to system image"
This reverts commit d616e0e820.

Reason for revert: b/72207339 - user builds are failing with this change

Bug: 72207339
Bug: 66697305
Change-Id: Ia309d04d837851ae11518f05aca468ecca895e6f
Test: Before the revert, taimen-user does not build.  After the revert taimen-user builds
2018-01-19 12:43:38 +00:00
Tao Bao
a2ff4c9b06 releasetools: Clean up three functions in add_img_to_target_files.py.
This CL makes the following changes:
 (a) cleans up the similar codes in AddCareMapTxtForAbOta() that handle
     'system' and 'vendor' partitions;
 (b) fixes an issue with the arcname in AddPackRadioImages() and
     AddRadioImagesForAbOta(), where forward slash should always be used
     in zip entry names;
 (c) refactors the branching statements in AddRadioImagesForAbOta() to
     reduce indentation levels.

Test: python -m unittest test_add_img_to_target_files
Test: `m dist` with aosp_marlin-userdebug. Check META/care_map.txt in the
      generated target_files.zip.
Change-Id: I3d6f794962d0c68390fbd18eb13c2622acab3ff5
2018-01-18 23:37:29 -08:00
Tao Bao
bea20ac722 releasetools: Refactor AddImagesToTargetFiles().
Separate three functions out of AddImagesToTargetFiles(), into
AddCareMapTxtForAbOta(), AddRadioImagesForAbOta() and
AddPackRadioImages() respectively. This CL tries to apply minimal
changes for the refactoring purpose.

Also add tests for AddRadioImagesForAbOta() and AddPackRadioImages().
The tests for AddCareMapTxtForAbOta() require better testing support to
mock sparse_img.SparseImage, which will be added in later CLs.

Test: python -m unittest test_add_img_to_target_files
Test: `m dist` with aosp_marlin-userdebug. Check META/care_map.txt in
      the generated target_files.zip.
Change-Id: I1bb723c15237ff721f165cfce0ce996008ce9948
2018-01-18 23:37:23 -08:00
Jiyong Park
641b6cc6b0 Add PLATFORM_SYSTEMSDK_VERSIONS and BOARD_SYSTEMSDK_VERSIONS
PLATFORM_SYSTEMSDK_VERSIONS is the list of System SDK versions that the
platform is supporting. Contrary to the public SDK where platform
essentially supports all previous SDK versions, platform support only a
few recent System SDK versions, since some of old System APIs are
gradually deprecated, removed from the following SDKs and then finally
deleted from the platform. This will be part of the framework manifest.

The list can be specified by setting PLATFORM_SYSTEMSDK_MIN_VERSION. If
it is set to an old version number, then System SDKs from the version
to the current version (PLATFORM_SDK_VERSION) are considered to be
supported by the platform. If PLATFORM_SYSTEMSDK_MIN_VERSION is not set,
only the latest System SDK version is supported.

Next, BOARD_SYSTEMSDK_VERSIONS is the list of System SDK versions that
the device is using. This is put to the device compatibility matrix
device is using. The device and the platform is considered as compatible
only BOARD_SYSTEMSDK_VERSIONS in the device compatibility matrix are
in the PLATFORM_SYSTEMSDK_VERSIONS in the framework manifest.

When BOARD_SYSTEMSDK_VERSIONS is set, a Java app or library in vendor or
odm partitions which didn't specify LOCAL_SDK_VERSION  is forced to use
System SDK. Also, the build system does the additional integrity check
to ensure that LOCAL_SDK_VERSION is within BOARD_SYSTEMSDK_VERSIONS or
PLATFORM_SYSTEMSDK_VERSIONS (if BOARD_SYSTEMSDK_VERSIONS isn't set).

Bug: 69088799
Test: m -j
Test: BOARD_SYSTEMSDK_VERSIONS=P m -j
Change-Id: If4d59f6030e4cc402e015701d0caf94aeec37263
2018-01-19 15:42:05 +09:00
Treehugger Robot
eb38b51733 Merge "Add boot.art.rel files to system image" 2018-01-19 05:14:36 +00:00
Treehugger Robot
8b4b0cc5a1 Merge "Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P" 2018-01-19 04:47:05 +00:00
Treehugger Robot
469aafe421 Merge "Normalize the 2nd CPU architect of 64 bits arm GSI" 2018-01-19 04:26:40 +00:00
Treehugger Robot
866cdf8c07 Merge "Separate vndk_snapshot_package from vndk_package" 2018-01-19 03:06:34 +00:00
Treehugger Robot
7e41fb46db Merge "emulator: enable 32bit x86 to run on 64bit kernel" 2018-01-19 02:00:20 +00:00
Justin Yun
992ef6c6e0 Separate vndk_snapshot_package from vndk_package
vndk_package only includes current VNDK builds without snapshots.
The snapshots will be included by PRODUCT_EXTRA_VNDK_VERSIONS
regardless of vndk_package in PRODUCT_PACKAGES.

Bug: 71609233
Test: Generate snapshot files and include the version in
      PRODUCT_EXTRA_VNDK_VERSIONS. Check if snapshots are installed.

Change-Id: If788af2f7773dd50b8b9ceb1957b8e54fde9ca9f
2018-01-19 09:51:24 +09:00
Dan Willemsen
a236bf8e5f Add Nan to OWNERS
Test: none
Change-Id: Ifdec77927a4b56c65fa09c688a595e984d532838
2018-01-18 15:50:07 -08:00
Treehugger Robot
13f228ebde Merge "releasetools: Remove the reloading of target info dict." 2018-01-18 22:48:15 +00:00
Nicolas Geoffray
3972a47e9f Tighter control of stripping in dex_preopt_odex_install.
- Move logic to uncompress dexs in an APK in dex_preopt_odex_install.mk
  and definitions.mk.
- Explicitly mark nostripping cases where dexpreopt will not embed the dex
  file in the APK.

bug: 63920015
Test: m
Test: verify priv-apps dexs are uncompressed and unstripped
Test: Verify a non priv-app APK with uncompressed dex doesn't get stripped.

Change-Id: I624a03e3d965cebc0cae43fd6f7a6260178e6b8a
2018-01-18 22:42:46 +00:00
bohu
1695288dc0 emulator: enable 32bit x86 to run on 64bit kernel
BUG: 71861550
Change-Id: Iea8fae11375d66a141babd40f66dd2e3da6075e0
2018-01-18 22:26:32 +00:00
Jaekyun Seok
0538ff796f Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P
PRODUCT_COMPATIBLE_PROPERTY will be set as true for products shipping
with Android P, and ro.actionable_compatible_property.enabled will be set
as a system default property accordingly.
But if PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE is set,
ro.actionable_compatible_property.enabled will be false.

Bug: 38146102
Test: tested on walleye with PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE=true
Merged-In: Ifc1279a360b140c4d94edd32db7de3c6c7317297
Change-Id: Ifc1279a360b140c4d94edd32db7de3c6c7317297
(cherry picked from commit 2528cd26c0)
2018-01-18 21:11:53 +09:00
Treehugger Robot
57923be123 Merge "Warn: Change GuardedBy regular expressions" 2018-01-18 10:19:34 +00:00
Andreas Gampe
7f494c121f Warn: Change GuardedBy regular expressions
This was modified in commits 20a8664 "Change canonical name for
GuardedByChecker to GuardedBy" and 1f6dc3dc "Merge GuardedByValidator
into GuardedByChecker."

Test: m
Test: manual
Change-Id: I07305e59694a955e52bd69c1cbe53346808b78aa
2018-01-17 21:28:21 -08:00
Treehugger Robot
3fbfab7896 Merge "add <vendor-ndk> to VINTF." 2018-01-18 00:02:12 +00:00
Alex Klyubin
d616e0e820 Add boot.art.rel files to system image
This file is used to verify that all differences between /system
boot*.art and /data/dalvik-cache boot*.art only consist of relocation
changes. The goal is to mitigate /data/dalvik-cache boot*.art files
being a persistence vector.

Test: Build and ensure boot.art.rel files are on the image.
Bug: 66697305
Change-Id: I41486dd541e429f2f2b4c4a521009ee5e81e50b9
2018-01-17 15:20:06 -08:00
Mathieu Chartier
dc9f2de809 Merge changes Iba0c3893,Icf3039ef
* changes:
  Don't default my_use_profile_for_boot_image to true for PDK builds
  Enable profile based boot image by default
2018-01-17 21:25:09 +00:00
Treehugger Robot
65c90ca5b9 Merge "releasetools: Add a note for the ZipInfo._decodeExtra() workaround." 2018-01-17 19:53:36 +00:00
Tao Bao
d32e78fd3c releasetools: Add a note for the ZipInfo._decodeExtra() workaround.
Test: N/A
Change-Id: I9e84fc27230182f17c2fda0df57a2c149281dcda
2018-01-17 10:10:00 -08:00
Mathieu Chartier
8fd29b3653 Don't default my_use_profile_for_boot_image to true for PDK builds
This causes an unsatisfiable dependency on frameworks/base.

Bug: 67663308
Test: make

(cherry-picked from commit 83bae866e6)

Change-Id: Iba0c3893b49386591f84eb893abf0b577b9716a0
Merged-In: I06e45e8ca66ab6547bf1df25119dda80d44e50f6
2018-01-16 20:02:27 -08:00
Mathieu Chartier
ce94494b93 Enable profile based boot image by default
Use profile based boot image instead of the compiled classes version.

Results using profile from ag/2815407
Storage savings:
Boot art+vdex+oat size: 78305556->61539326 (-17MB)

New system server profile has more methods (1.5MB -> 4MB oat) since it
has more coverage from use cases.

Ram savings (sample averages for CUJ test):
Average PSS of 3 runs (~100 samples total):
.Boot_vdex: 9359K -> 9902K
.oat_mmap: 21857K -> 13372K
.Heap: 29779K -> 29483K
.Boot_art: 15736K -> 18096K
.LinearAlloc: 9112K -> 8965K
Total PSS: 85846K -> 79819K (-6MB)

Average pages read from flash (512MB device) for CUJ tests (3 samples):
1508MB -> 1183MB

Bug: 37966211
Test: make and flash

(cherry-picked from commit bf9023ae7a)

Change-Id: Icf3039ef871b68d806ef7b7c8ad2220c3a37ce90
Merged-In: Id8f9b08490a50e2ccf39e8acc00b0c4e8ec782b0
2018-01-16 20:02:18 -08:00
Tao Bao
676c20f285 Merge "releasetools: Consolidate the codes that generate metadata dict." 2018-01-17 01:46:07 +00:00
Tao Bao
df3a48b43e releasetools: Consolidate the codes that generate metadata dict.
Now they (A/B, non-A/B full and non-A/B incremental) share the same
code. Also add tests for the newly added function.

Test: python -m unittest test_ota_from_target_files
Test: Build A/B and non-A/B packages respectively.
Change-Id: I5499dd9c683ac1a18d8a24f21ff8845fe69f343e
2018-01-16 15:34:27 -08:00
Yifan Hong
238c6ba8fe add <vendor-ndk> to VINTF.
Test: libvintf_test
Test: vintf_object_test
Test: build and verify that <vendor-ndk> tags
are in framework manifest and device compatibility
matrix.

Fixes: 36400653

Change-Id: I4d44bff81fecc8fd2f7ab8e15770544b7b85aef9
2018-01-16 21:49:52 +00:00
Ivan Lozano
c2d7db1c7d Overflow sanitization in frameworks/ and system/.
Enables signed and unsigned integer overflow sanitization on-by-default
for modules in frameworks/ and system/ by using the integer_overflow
sanitization setting. This applies sanitization to dynamically linked
binaries and shared libraries, and comes with a default set of regex for
functions to exclude from sanitization.
(see build/soong/cc/config/integer_overflow_blacklist.txt)

Prepare to enable minimal runtime diagnostics for integer overflow
sanitization on userdebug and eng builds.

Adds an additional Make and product variable pair to apply integer
overflow sanitization by default to additional code paths.

Bug: 30969751
Bug: 63927620

Test: Included paths are being sanitized.

Test: CTS test suite run on Pixel, runtime errors resolved.
Test: Performance impact in benchmarks acceptable.
Test: Boot-up successful on current Google devices.
Test: Teamfooded in diagnostics mode on Pixel for a month.

Test: Phone calls, camera photos + videos, bluetooth pairing.
Test: Wifi, work profiles, streaming videos, app installation.
Test: Split-screen, airplane mode, battery saver.
Test: Toggling accessibility settings.

Change-Id: Icc7a558c86f8655267afb4ca01b316773325c91a
2018-01-16 10:17:02 -08:00
David Brazdil
97b22ce9a8 Add new API file names
Doclava now generates new API signature files. Add their filenames
to config.mk.

Bug: 64382372
Test: make
Change-Id: I6aed1b2e0575ddb8c89cea5fa7709023eb6f30a3
2018-01-16 15:02:28 +00:00
Tianjie Xu
a7229a08b7 Merge "Iterate through the sorted file map when finding transfers" 2018-01-13 00:01:03 +00:00
Tianjie Xu
20a86cdd8d Iterate through the sorted file map when finding transfers
This helps to generate a deterministic package.

Bug: 71770360
Test: Generate a incremental package and transfers are added by file name.
Change-Id: I7562a200b97a1babbb09a77801324cc9408cc01f
2018-01-12 12:21:00 -08:00
Stephen Hines
504bd79e86 Merge "Remove unnecessary USE_CLANG_PLATFORM_BUILD." 2018-01-12 18:19:45 +00:00
Tao Bao
2db1385db5 releasetools: Remove the reloading of target info dict.
In non-A/B OTA path, we've been loading the info dict for the target
build twice (once to have a peek at the OTA type, with a reload after
unzipping the target-files zip). Remove the reloading.

This CL moves the loading of the source info dict up a bit to avoid
having two copies in the A/B and non-A/B paths. It also moves up the
sanity checks of the loaded info dicts before unzipping the target-files
zips.

Test: Generate full and incremental packages for bullhead and marlin.
Change-Id: Iccb953feb0b6ecf62e6f73d6e9ceea00077d098d
2018-01-11 21:59:30 -08:00
Treehugger Robot
ba4641931b Merge "Disable availability macros in libc++ on Darwin." 2018-01-11 23:44:22 +00:00
Dan Shi
6704727b69 Merge "Add a flag to disable auto-generating test configs." 2018-01-11 22:59:39 +00:00