Commit graph

32318 commits

Author SHA1 Message Date
Colin Cross
51c1eeefb3 Merge "Fix warning with AAPT2 and LOCAL_STATIC_ANDROID_LIBRARIES"
am: 1498712a6b

Change-Id: Iec7d58d837879bc4a63818d09881873f56d14779
2016-12-02 22:00:26 +00:00
Colin Cross
1498712a6b Merge "Fix warning with AAPT2 and LOCAL_STATIC_ANDROID_LIBRARIES" 2016-12-02 21:47:58 +00:00
dcashman
c316783843 Sort SELinux package inclusion.
This section will be modified as part of splitting these packages into platform
and non-platform components.  Sort them all to avoid conflicts.

Bug: 31363362
Test: Builds
Change-Id: I91fb4d4d7c0a6971a19047ef2eb2981770a122ff
2016-12-02 09:34:23 -08:00
Tao Bao
d07f9995b8 Merge "Build recovery-two-step.img for two-step OTAs."
am: 06e14e438f

Change-Id: I9c5d6e5f71da88bc0f662373335b024a55ca193e
2016-12-02 15:19:00 +00:00
Tao Bao
06e14e438f Merge "Build recovery-two-step.img for two-step OTAs." 2016-12-02 15:09:13 +00:00
Yohann Roussel
5360e0160b Set platform min sdk for Jack to o-b1
Test: m core-all
(cherry picked from commit 94acfe908b3e70cdd11920c92715ef06de7ed212)

Change-Id: I26a558677f2fa8ede09ad1ae7f31b786c4ba0a43
2016-12-02 08:36:24 +00:00
Tao Bao
d42e97ebb4 Build recovery-two-step.img for two-step OTAs.
In two-step OTAs, we write recovery image to /boot as the first step so
that we can reboot from there and install a new recovery image to
/recovery. However, bootloader will show "Your device is corrupt"
message when booting /boot with the recovery image. Because the recovery
image encodes the path of "/recovery" as part of the signature metadata,
which fails the verified boot.

This CL generates a special "recovery-two-step.img" in addition to the
regular recovery.img. This image encodes "/boot" when being signed,
which will be flashed to /boot at stage 1/3 in a two-step OTA.

Here are the desired changes:

- 'IMAGES/recovery-two-step.img' exists in target_files.zip for non-A/B
targets (e.g. bullhead). The image should not exist for targets that
don't have a recovery partition (e.g. A/B devices like sailfish).

- <device>-img.zip should not contain 'recovery-two-step.img'.

- Nothing should change when building non-two-step OTAs. For two-step
OTAs, 'recovery-two-step.img' should be included in the OTA package;
'updater-script' should flash this image to /boot at stage 1/3.

- When building a two-step OTA with an input TF.zip that doesn't have
  IMAGES/recovery-two-step.img, it should use the existing
  IMAGES/recovery.img instead.

Bug: 32986477
Test: Tested the steps above on bullhead and sailfish.
Change-Id: I34e6c599bcf2011d4cd5c926999418b3975d6d0f
2016-12-01 17:47:59 -08:00
Pirama Arumuga Nainar
0cc559f7d8 Merge "Do not *directly* package libbcc.so"
am: ec0d7cbc49

Change-Id: I15871b1ca4cb5fa5488721a5f6a21bfa2a72feab
2016-12-01 18:11:13 +00:00
Pirama Arumuga Nainar
ec0d7cbc49 Merge "Do not *directly* package libbcc.so" 2016-12-01 17:58:47 +00:00
Tao Bao
2e3f1c5258 Merge "releasetools: Remove dead parameter in GetBootableImage()."
am: 8df4fea85f

Change-Id: I192af3927849d0d8f995f0002b8b8f2e191b794f
2016-12-01 17:09:07 +00:00
Tao Bao
8df4fea85f Merge "releasetools: Remove dead parameter in GetBootableImage()." 2016-12-01 17:02:07 +00:00
Paul Duffin
74f8ee05de Merge "Replace core-junit with legacy-test"
am: 32cc1f80e5

Change-Id: Id425eff2aaafdf8ad63bc66ef2d28f71d32d6e8b
2016-12-01 10:42:16 +00:00
Paul Duffin
32cc1f80e5 Merge "Replace core-junit with legacy-test" 2016-12-01 10:34:07 +00:00
Tao Bao
2a4336bc04 releasetools: Remove dead parameter in GetBootableImage().
The 'system_img_path' parameter was introduced in commit
d995f4b04d, but became obsolete since
commit 2ce63edab7.

Test: m dist
Change-Id: Iffd496d929db5cc3dfc955a48bfc1b1317bd012f
2016-12-01 00:08:27 -08:00
Andreas Gampe
d3708a5aeb Merge changes from topic 'simplify_app_process_asan_modules'
am: 9a3bd76ab4

Change-Id: I07d79da80ce2fce035c87e768d12c1b136bf6fdd
2016-12-01 02:48:21 +00:00
Andreas Gampe
d77b29fdb3 Revert "Build: Add sanitized app_process"
am: 88d43677f5

Change-Id: I358a67f5e89bf72e7bba9d97a16d34d9a3e79afb
2016-12-01 02:47:34 +00:00
Andreas Gampe
92058120b2 Revert "Build: Add asanwrapper in SANITIZE_LITE"
am: 4938f3300a

Change-Id: Ic3745664db0b89baaea8b98b79ead63a77e95440
2016-12-01 02:47:29 +00:00
Treehugger Robot
9a3bd76ab4 Merge changes from topic 'simplify_app_process_asan_modules'
* changes:
  Revert "Build: Add sanitized app_process"
  Revert "Build: Add asanwrapper in SANITIZE_LITE"
2016-12-01 02:38:29 +00:00
Andreas Gampe
88d43677f5 Revert "Build: Add sanitized app_process"
This reverts commit a35d92e431.

The app_process__asan module is merged into app_process.

Bug: 33224213
Test: m
Change-Id: I5e3e836c67b5bd17cf967f1b2429e39c4e18557b
2016-11-30 16:40:13 -08:00
Andreas Gampe
4938f3300a Revert "Build: Add asanwrapper in SANITIZE_LITE"
This reverts commit eee31511f7.

Rewriting of app_process adds an automatic dependency.

Bug: 33224213
Test: m
Change-Id: Idd9509d116692954224f4d2ffd6c81b69e9a85a3
2016-11-30 16:39:40 -08:00
Andreas Gampe
88757661d5 Merge changes from topic 'app_process_sanitized_binaries'
am: de24e6198e

Change-Id: Ie077774c7816e7bf19c4474e9fa36824e10d58d4
2016-12-01 00:09:03 +00:00
Andreas Gampe
3c326183ca Build: Add asanwrapper in SANITIZE_LITE
am: eee31511f7

Change-Id: I2fda3c98543296418b7c4741e8425f1ab35f7fb1
2016-12-01 00:06:26 +00:00
Andreas Gampe
2ceff14391 Build: Add sanitized app_process
am: a35d92e431

Change-Id: Idc10fa334820dab5de1a697092e4c14fb6023425
2016-12-01 00:06:20 +00:00
Pirama Arumuga Nainar
f3121cd73f Do not *directly* package libbcc.so
Bug: http://b/28866258

Remove libbcc.so from the list of directly packaged modules.  64-bit
libbcc.so gets included as a dependency for the bcc executable (which is
a required package).  32-bit libbcc.so is no longer necessary on 64-bit
devices.

This change also removes 32-bit libLLVM.so from a 64-bit system image
(leading to a 13M reduction in Angler's system image on AOSP) and a
considerable reduction in build time.

Test: - Build all topics in this CL
      - RsTest (including the 32-bit ABI) and CTS tests pass on x86 and
        x86_64 emulators and Angler.

Change-Id: I10f07e322a615f37d6967b7c938635f544ddceff
2016-11-30 15:45:25 -08:00
Treehugger Robot
de24e6198e Merge changes from topic 'app_process_sanitized_binaries'
* changes:
  Build: Add asanwrapper in SANITIZE_LITE
  Build: Add sanitized app_process
2016-11-30 21:00:56 +00:00
Andreas Gampe
eee31511f7 Build: Add asanwrapper in SANITIZE_LITE
Add asanwrapper helper binary to PRODUCT_PACKAGES when building with
SANITIZE_LITE=true.

Bug: 33224213
Test: m SANITIZE_TARGET=address SANITIZE_LITE=true && ls $OUT/system/bin/asanwrapper
Change-Id: Ic4d8973b9e9ddfd9ef8663735bf5f70d8f9f70e1
2016-11-30 10:20:20 -08:00
Paul Duffin
6470f4fa99 Replace core-junit with legacy-test
m -j32 checkbuild cts droid
adb reboot bootloader
fastboot flashall -w
cts-tradefed run cts -m CtsLibcoreTestCases

Bug: 30188076
Test: As above
Change-Id: I2d49cb3c451cb265d026f9a700a61b3fc0d2ed82
2016-11-30 13:50:56 +00:00
William Roberts
92ec0ab5e8 fs_config: add unit tests
Add some initial unit tests.

The unit tests themselves are inlined into the tool and
can be executed by running the "test" commandlet.

Example:
$ python -m unittest test_fs_config_generator.Tests
.............
----------------------------------------------------------------------
Ran 13 tests in 0.004s

OK

Test: run the test commandlet and observe for failures.

Change-Id: I1bada385fa841fd50fa958997d440f1198e15198
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 22:05:39 -08:00
Andreas Gampe
a35d92e431 Build: Add sanitized app_process
Add sanitized app_process module to PRODUCT_PACKAGES when building
with SANITIZE_LITE=true

Bug: 33224213
Test: m SANITIZE_TARGET=address SANITIZE_LITE=true && ls $OUT/system/bin/asan
Change-Id: Ic67976f1b897b638d569ec6f42d5a8d59f8a9285
2016-11-29 19:22:01 -08:00
Andreas Gampe
f606cc1677 Merge "Revert "Build: Bring back SDK dependencies""
am: 2bbeae7f8a

Change-Id: I9560d6a8f9971db89c87499b2e177bd0bb921cff
2016-11-30 00:48:39 +00:00
Treehugger Robot
2bbeae7f8a Merge "Revert "Build: Bring back SDK dependencies"" 2016-11-30 00:39:34 +00:00
William Roberts
7fe8b6d817 fs_config: drop fs_config_files/dirs PRODUCT_PACKAGES requirement
When configuring fs_config_files or fs_config_dirs for file_system
capabilities, drop the requirement that OEMs must add the target
to PRODUCT_PACKAGES. This limits the configuration requirement
to only needing to set the new and preferred TARGET_FS_CONFIG_GEN
or the older TARGET_ANDROID_FILESYSTEM_CONFIG_H method.

Test: That only setting TARGET_FS_CONFIG_GEN results in passwd and
group in the build image.
Change-Id: I818854fa1b3e94edaff59a32bd7cf23cf9b504aa
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
2127b35526 fs_config: add group to build
Setup PRODUCT_PACKAGES for the group file.

The group file is always included in the product
build but may be empty.

Test: That the group file is in the build.
Change-Id: I2ed1759fbe42a7e6833bb754b00cadaf949f128d
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
1c4721c3c5 fs_config: introduce group generator
Introduce a generator that outputs group files per man(5) group.

Succinctly, the output is a colon delimited string containing the following
fields:
  * group name
  * encrypted password (optional)
  * gid (int)
  * userlist (str,...)

Multiple colon delimited lines may exist, but will not be separated
across lines.

Sample generator output:
foo::2900:
foo_bar::2901:
custom_oem1::2902:

Test: That make group produces the group file.
Change-Id: Idd3fe925a09a227c6e894e1b5d2b3873b01531c6
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
6d5e0c5df2 fs_config: add passwd to build
Setup PRODUCT_PACKAGES for the passwd file.

The passwd file is always included in the product
build but may be empty.

Test: That the passwd file is in the build image.
Change-Id: Iedbb81b15d3b281ff4ad36d28adc2ba4523785f2
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
316f9462af fs_config: introduce passwd generator
Introduce a generator that outputs passwd files per man(5) passwd.

Succinctly, the output is a colon delimited string containing the following
fields:

  * login name
  * encrypted password (optional)
  * uid (int)
  * gid (int)
  * User name or comment field
  * home directory
  * interpreter (optional)

Multiple colon delimited lines may exist, but will not be separated
across lines.

When run, produces:

foo::2900:2900::/:/system/bin/sh
foo_bar::2901:2901::/:/system/bin/sh
custom_oem1::2902:2902::/:/system/bin/sh

Note that this generator allows for 0 or more config.fs files. This allows for:
  * Unconditional inclusion of /system/etc/passwd in the generated image
  * A blank passwd file if no config.fs files are specified.

This ensures that when OEMs add config.fs files, there is no additional steps
for proper functionality (simpler for OEMs).

The one draw back is the additional inode consumption on system for a possible
blank file.

Test: That it produces a valid passwd file.
Change-Id: I19691c8260f02147ed861f8a319aeab3f5b1738e
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
8f42ce71ac fs_config: generate friendly in AID class
Generate the friendly name in one location. This prepares
the tool for generatting passwd and group files.

Also support mapping friendly names to identifiers.

Test: That output files stay the same as before.
Change-Id: I12198611126613eae81ca61614ed269c2439b72b
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
5f059a7691 fs_config: limit characters for AID_<name> sections
When generating files restrict the characters allowed in
AID_<name> to upercase, numbers, and underscores.

This detects errors ahead of time for generated C files as
well as handles seperation characters for passwd/group files.

This also lends itself to automatic detection of collisions
on friendly names, since freindly names are the lowercase
version of <name>.

Test: That invalid aid values result in a build failure.
Test: That the output files are consistent with ones before
this change (hash and diff checks)
Change-Id: Ie8ec44c1157ba9c22100e9169d9187f615e71280
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
cfc51f5347 fs_config: generate oem AID header file
Generate an OEM AID_<name> header file seperate from fs_config
header file and provide details on how to export this interface
into native code.

Test: That ls, ps, chown and services function for built in
services as before.
Change-Id: Ie8ce6585e0721b52633ee50d62dcfe796e178f65
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
d7104bca65 fs_config: android_id header generator
Implement an android_id generator that takes the data
acquired from parsing private/android_filesystem_config.h
and generates the android_id friendly name to uid mapping
for consumption in Bionic.

Test: That ls, ps, mkdir, chown, chgrp and services for built
in names work.
Change-Id: I1e55a401be0fca0ad162f8dc1e072e6afde7b927
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
64edf5bb97 fs_config: support parsing android_filesystem_config.h
Rather than hardcode the OEM ranges, parse and extract
AID values from android_filesystem_config.h.

An AID is defined to the tool as:
  * #define AID_<name>

An OEM Range is defined to the the tool as:
  * AID_OEM_RESERVED_START
  * AID_OEM_RESERVED_END
  or
  * AID_OEM_RESERVED_N_START
  * AID_OEM_RESERVED_N_END

Where N is a number.

While parsing, perform sanity checks such as:
1. AIDs defined in the header cannot be within OEM range
2. OEM Ranges must be valid:
   * Cannot overlap one another.
   * Range START must be less than range END
3. Like the C preproccessor, multiple matching AID_<name> throws
   en error.

The parser introduced here, prepares the tool to output android_ids
consumable for bionic.

Note that some AID_* friendly names were not consistent, thus a small
fixup map had to be placed inside the tool.

Test: tested parsing and dumping the data from android_filesystem_config.h
file.
Change-Id: Ifa4d1c9565d061b60542296fe33c8eba31649e62
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
William Roberts
11c29283ec fs_config: modularize fs_config_generator
This internally structures fs_config_generator.py to be able
to plug in generators to produce different outputs. This
prepares this tool for group and pwd file outputs.

Test: Checked diff and hash of before and after files.
Change-Id: Ie558518ac227dd946d70ab48027698b72a9bc94a
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2016-11-29 16:21:17 -08:00
Dan Willemsen
474bba8831 Merge changes from topic 'basic_vndk'
am: e69f15c9dc

Change-Id: Idf95a23c4b1341145f9e39364235413c82f659ac
2016-11-29 20:42:40 +00:00
Dan Willemsen
dc556b4bc0 Prohibit host modules from using LOCAL_COPY_HEADERS
am: 6e51ef61a7

Change-Id: Id7c80e4dba5a505a04ce47d459c0a525debc4d53
2016-11-29 20:42:37 +00:00
Dan Willemsen
323efd3035 Add basic VNDK support in Make
am: bab0fa6928

Change-Id: Ie2bc9062891b2f8000b1db471b27f58c74190e92
2016-11-29 20:42:32 +00:00
Dan Willemsen
28cf7d49ab Remove GLOBAL_LD_DIRS
am: e5836c4bb0

Change-Id: I6683ed19bff601075e82065c5c1dc783d62249b4
2016-11-29 20:42:26 +00:00
Treehugger Robot
e69f15c9dc Merge changes from topic 'basic_vndk'
* changes:
  Prohibit host modules from using LOCAL_COPY_HEADERS
  Add basic VNDK support in Make
  Remove GLOBAL_LD_DIRS
2016-11-29 20:36:04 +00:00
Colin Cross
fe10963496 Fix warning with AAPT2 and LOCAL_STATIC_ANDROID_LIBRARIES
Building with LOCAL_STATIC_ANDROID_LIBARIES and LOCAL_USE_APPT2
causes a warning:
build/core/package_internal.mk:143: Empty argument supplied to find-subdir-assets

Only call find-subdir-assets if my_res_dir is not empty.

Also improve the warning message to make it easier to find the module
that caused it.

Test: m -j
Change-Id: I9a71162c7e2ed82f64d6844baca256968ac77317
2016-11-29 11:12:56 -08:00
Dan Willemsen
6e51ef61a7 Prohibit host modules from using LOCAL_COPY_HEADERS
There are no users left, so remove all of this.

Test: lunch aosp_arm-eng; m -j native
Test: build/tools/kati_all_products.sh on aosp and internal master
Change-Id: I32f5c8b470a43dd203d7e20c192167630e4e6888
2016-11-28 13:46:17 -08:00
Dan Willemsen
bab0fa6928 Add basic VNDK support in Make
Add BOARD_VNDK_VERSION and LOCAL_USE_VNDK to specify the version of the
VNDK that will be used globally, and whether to use the VNDK on a module
basis.

If the board is using the VNDK:

* LOCAL_COPY_HEADERS may only be used by modules defining LOCAL_USE_VNDK
* LOCAL_USE_VNDK modules will compile against the NDK headers and stub
  libraries, but continue to use the platform libc++.
* LOCAL_USE_VNDK modules will not have the global includes like
  system/core/include, but it will use device-specific kernel headers.

This change does not attempt to enforce any linking constraints, that
will come in a later patch.

Test: out/build-aosp_arm.ninja is identical before/after
Change-Id: Icce65d4974f085093d500b5b2516983788fe2905
2016-11-28 13:46:17 -08:00