Commit Graph

43915 Commits

Author SHA1 Message Date
Ivan Lozano
d86c6190a7 Merge "Add minimal-runtime support for integer overflows." into pi-dev 2018-03-22 20:17:38 +00:00
Bjoern Johansson
ca5bfb1ca7 Update SELinux rules to support emulator WiFi
SELinux policies have become stricter, this updates the emulator SELinux
rules to accomodate these changes. It also adds rules for the new
createns command with the accompanying execns changes that are needed
to work with an updated filesystem layout.

BUG: 74514143
Test: Compile emulator images and verify that WiFi works
Change-Id: I4b58cea681a1e41b0cb7368e1c696f74ce28f871
2018-03-22 12:59:49 -07:00
Bjoern Johansson
275bdb08cd Build emulator images with emulator WiFi HAL
Use the new emulator WiFi HAL. This is specified by the
BOARD_WLAN_DEVICE setting. This also requires that the wifi HAL service
is included.

BUG: 74514143
Bug: 68338427
Test: run cts -m CtsIncidentHostTestCases -t
com.android.server.cts.BatteryStatsValidationTest#testWifiDownload
Change-Id: Ib59550b6cfba1e2e8686a5c805cd6b3913e8508e
(cherry picked from commit 23073c6ee33eca56f1ae0c45615b87ec9aec712e)
(cherry picked from commit 2d51c9b2bf0774ac46837a93181c83329e6fc662)
2018-03-22 12:59:20 -07:00
Bjoern Johansson
54fbcaca21 Update makefiles for WiFi in Treble
Make sure files go in the right location on the vendor partition instead
of system or data. Also add the wificond package which is now needed for
WiFi to work.

BUG: 74514143
Test: Compile and manually test that WiFi is working
Change-Id: I7ea376bb1a23bb830f1ab3e4912799ec5e82e9bd
(cherry picked from commit 82dbefe40b9110b8171ff978d65f0caf0b395da7)
(cherry picked from commit ee5b4a90c41aec32d578f0fe6a3d323306cef796)
2018-03-22 12:59:19 -07:00
Bjoern Johansson
760871c753 Fix SELinux settings for WiFi in Treble
Update SELinux permissions to work with Treble and the much stricter
SELinux rules.

BUG: 74514143
Test: Compile and manually test that WiFi is working
Change-Id: Ic0a6417fb4fed1597fee70367924e5d59f37e725
(cherry picked from commit 37d7bc2adcc4bfd4c0f03dcddf1c7fbd31e87a4f)
(cherry picked from commit 1b0158a4ab6ca4f05b4b186ec3a080c689492b58)
2018-03-22 12:58:32 -07:00
Bjoern Johansson
3c4b342323 Add SELinux configuration for new DHCP programs
Add the dhcpclient and dhcpserver binary files to the makefile and
file_contexts and give them the appropriate SELinux permissions to run.

BUG: 74514143
Test: Build emulator image and manually verify WiFi functionality
Change-Id: Ia472ef4c86c9b6ba967c0fc7443db607aed1e485
(cherry picked from commit 917bda2587d219e35404a298c05a7179519815c1)
(cherry picked from commit 87b9f937113801b50612863cb13e6391cc1f3105)
(cherry picked from commit 760a19890ac99144f6b143015c36e7aaa3797c73)
2018-03-22 12:58:29 -07:00
Bjoern Johansson
12fd2d8824 Enable WiFi for arm, arm64 and x86_64
Set the required parameters in BoardConfigs to allow WiFi to work on
remaining architectures. Also update SELinux policy needed to make WiFi
work on arm and arm64. This was not required on x86 but refused to work
on arm without these changes.

BUG: 74514143
Test: Build emulator image and manually verify WiFi functionality
Change-Id: Ic645ccf7249f84ae0320770b0ef7b1b6102b7b14
(cherry picked from commit 6d28bfbeefea8fe1919ff0987ae3d935d974dc6d)
(cherry picked from commit 023a7ba64bd3b189a148ad388606ca5747ea20b1)
(cherry picked from commit 9c9cefdafbae50c0e371c30bcccb98a8b7697e98)
2018-03-22 12:57:41 -07:00
Bjoern Johansson
127395fc8f Add support for WiFi in emulator
Add required SELinux permissions to run services required for WiFi and
network namespaces. Add required executables and files required to run
WiFi services such as hostapd to create an access point and
wpa_supplicant to connect to it.

BUG: 74514143
Test: Build emulator image and manually verify WiFi functionality
Change-Id: I38461b878abcaae842b4656dea82792e23100174
(cherry picked from commit 21c5c3dcf91b1be71abe8618e2eb31529438e325)
(cherry picked from commit 68a36140f7a3a766b8adc16cd85c2f0c81bfb44b)
(cherry picked from commit e6dab593b8eebccb1e6311e626c8aca943ba6933)
2018-03-22 12:57:36 -07:00
Tao Bao
701d830acb Merge "Remove the hard-coded path of build_verity_metadata.py." am: 0793683e86
am: 2a8e13f75d

Change-Id: Ifb02ec1a445595f3858cbbbc96155fbe6b6b7e4b
2018-03-22 19:01:44 +00:00
Tao Bao
2a8e13f75d Merge "Remove the hard-coded path of build_verity_metadata.py."
am: 0793683e86

Change-Id: I5e181e5473e1727b5dec5951bdcfe12af701ec33
2018-03-22 18:55:12 +00:00
Tao Bao
0793683e86 Merge "Remove the hard-coded path of build_verity_metadata.py." 2018-03-22 18:41:06 +00:00
Tao Bao
f47bf0fecf releasetools: Fix an issue in GetMinSdkVersion.
The following is a buggy pattern that won't capture anything into err.
The issue is benign, since a failed run would be eventually captured by
a subsequent check.

  p = Run(["aapt", ...], stdout=subprocess.PIPE)
  output, err = p.communicate()
  if err:
    raise ...

This CL changes the error detection to be based on the return code from
aapt. It also adds some sanity test to ensure the call to aapt works.
The test app is built from AOSP com.android.cts.ctsshim (chosen mostly
because of its small size).

Test: python -m unittest test_common
Change-Id: I337f141bd0fc5f0801dfc628c601b88b7640789c
2018-03-22 10:27:04 -07:00
Tao Bao
80921986d1 releasetools: Capture and dump stdout/stderr outputs on errors.
For the functions in common.py, capture the stdout/stderr outputs when
shelling out to external tools. Dump the outputs on errors.

Bug: 76123422
Test: Inject errors to signapk.jar / brotli / unzip. Check the outputs.
Change-Id: Ib2d4272528b83a50bb727788cf8a5211e2ddade8
2018-03-22 00:09:33 -07:00
Bo Hu
2edc945376 Merge "emulator: allows drm hal vendor access" into pi-dev
am: 3972c88026

Change-Id: Ib672572f01a091e18e17d43a073778be6d417c31
2018-03-21 21:54:46 +00:00
Tao Bao
b4ec6d752a Remove the hard-coded path of build_verity_metadata.py.
build_image.py used to invoke build_verity_metadata.py with a hard-coded
path of 'system/extras/verity/build_verity_metadata.py', which makes it
hard to run unittests from non-$(ANDROID_BUILD_TOP) directory.

This CL adds the dependency on the tool, so that it gets installed to
$(HOST_OUT_EXECUTABLES), then removes the hard-coded path.

Bug: 74544459
Bug: 76015688
Test: `m dist`
Test: python -m unittest test_validate_target_files
Change-Id: I0dcf4eb067a0db6f099cb589eb99a151a05c7f2b
2018-03-21 21:15:59 +00:00
Bo Hu
3972c88026 Merge "emulator: allows drm hal vendor access" into pi-dev 2018-03-21 20:49:39 +00:00
Tao Bao
9123d812e0 Merge "releasetools: Handle two edge cases in FinalizeMetadata()." am: 2ebcf419e4
am: 1824427572

Change-Id: If1fb5a335eed960aa44bcf3acaf6a711fef4b0c9
2018-03-21 20:44:46 +00:00
Tao Bao
f279b6b66b Merge "releasetools: Handle two edge cases in FinalizeMetadata()." into pi-dev
am: b3e5d54efa

Change-Id: I0b0afd630a26e59ac4e94c1c921a65585aafb536
2018-03-21 20:42:26 +00:00
Tao Bao
1824427572 Merge "releasetools: Handle two edge cases in FinalizeMetadata()."
am: 2ebcf419e4

Change-Id: I469411e3870432c8b00a62d94919671d5177beef
2018-03-21 20:39:38 +00:00
TreeHugger Robot
b3e5d54efa Merge "releasetools: Handle two edge cases in FinalizeMetadata()." into pi-dev 2018-03-21 20:32:03 +00:00
Colin Cross
e14ce5eaf2 Merge changes I54b8ec9c,Ibef28507,Ia858de22,Ide3050ec,Ib6e00be4, ... am: 2a63439a31
am: 275e8caf92  -s ours

Change-Id: I58d6665207f8ec206d30ea4b1a6f105012d62578
2018-03-21 20:29:41 +00:00
Treehugger Robot
2ebcf419e4 Merge "releasetools: Handle two edge cases in FinalizeMetadata()." 2018-03-21 20:29:25 +00:00
Colin Cross
3d480add49 Merge changes I54b8ec9c,Ibef28507,Ia858de22,Ide3050ec,Ib6e00be4, ... into pi-dev
am: 8060af2e78

Change-Id: I0936c8e8d0f0b9da22d20eb8afed0bbff56af81a
2018-03-21 20:26:56 +00:00
Colin Cross
275e8caf92 Merge changes I54b8ec9c,Ibef28507,Ia858de22,Ide3050ec,Ib6e00be4, ...
am: 2a63439a31

Change-Id: Ied8afd9274082eaa3405412421f40d4ab70719a3
2018-03-21 20:26:14 +00:00
Colin Cross
2a63439a31 Merge changes I54b8ec9c,Ibef28507,Ia858de22,Ide3050ec,Ib6e00be4, ...
* changes:
  Add asan-specific CleanSpec
  Use a srcjar for aapt and aapt2 output
  Move R.txt and make aapt2 generate it
  Move aapt2.mk before java.mk
  Remove redundant renderscript_target_api computation
  Move java renderscript support to java_renderscript.mk
  Use srcjar and resource zip as output of renderscript rules
2018-03-21 19:59:41 +00:00
Colin Cross
8060af2e78 Merge changes I54b8ec9c,Ibef28507,Ia858de22,Ide3050ec,Ib6e00be4, ... into pi-dev
* changes:
  Add asan-specific CleanSpec
  Use a srcjar for aapt and aapt2 output
  Move R.txt and make aapt2 generate it
  Move aapt2.mk before java.mk
  Remove redundant renderscript_target_api computation
  Move java renderscript support to java_renderscript.mk
  Use srcjar and resource zip as output of renderscript rules
2018-03-21 19:58:08 +00:00
bohu
a9127502d3 emulator: allows drm hal vendor access
BUG: 76029272
Change-Id: Ib4de8b4cd5cf5899bee23c798156006d3680ab8d
2018-03-21 10:24:25 -07:00
Ivan Lozano
410e1f8389 Add minimal-runtime support for integer overflows.
Adds Make support for -fsanitze-minimal-runtime when using
the integer overflow sanitizers. This makes the crashes due to these
sanitizers less mysterious. This also cleans up the handling of the
integer_overflow flag.

Bug: 64091660
Test: Compiled and checked the generated compiler commands
Test: Checked program that overflows for the abort reason
Test: Checked integer_overflow flag still emits overflow checks

Change-Id: I11012ed0cbbf51935f549a08bd17109b5ce6f330
Merged-In: I11012ed0cbbf51935f549a08bd17109b5ce6f330
(cherry picked from commit 911cb99bc1)
2018-03-21 10:05:34 -07:00
Colin Cross
4be471a15a Merge changes from topic "zipsync" into pi-dev
am: ff413b1c4b  -s ours

Change-Id: I46a7a9d1ffb64eb1506f7279d5471c043cef5c32
2018-03-21 16:10:40 +00:00
Colin Cross
ff413b1c4b Merge changes from topic "zipsync" into pi-dev
* changes:
  Remove framework_res_package_export_deps
  Replace extract_srcjars.sh with zipsync
  Allow compiles with only srcjars
  Allow aapt2 rules to take zipped resource files
  Add LOCAL_SRCJARS support
  Remove unused .fs file suppport
  Remove unused file lists
  Remove sharding support from make
  Move aapt flags from java_common.mk to aapt_flags.mk
  Remove missed PRODUCT_AAPT_FLAGS
2018-03-21 15:57:39 +00:00
Bowgo Tsai
f1a138b296 Includes odm SELinux contexts files for recovery
Bug: 64240127
Test: normal boot and recovery boot a device
Change-Id: I475d2eef96d2091291b56410f403f14dd3292faa
Merged-In: I475d2eef96d2091291b56410f403f14dd3292faa
(cherry picked from commit 9967125332)
2018-03-21 20:33:53 +08:00
Bowgo Tsai
0311f6c29c Merge "Includes odm SELinux contexts files for recovery" am: d39eeb44f1
am: 6c73723b3d

Change-Id: I2b33fb2cbd83c40ff4fd2ed00cfadd992d9863ba
2018-03-21 07:26:21 +00:00
Bowgo Tsai
6c73723b3d Merge "Includes odm SELinux contexts files for recovery"
am: d39eeb44f1

Change-Id: Icc7dd3b0a3e1f4078411fa0953ba5a136ff8e068
2018-03-21 07:18:13 +00:00
Treehugger Robot
d39eeb44f1 Merge "Includes odm SELinux contexts files for recovery" 2018-03-21 07:02:36 +00:00
Tao Bao
d2ce2ed5de releasetools: Handle two edge cases in FinalizeMetadata().
In FinalizeMetadata and PropertyFiles, we need to reserve space between
the calls to Compute() and Finalize(). We used to put a 10-byte
placeholder, in the hope of covering the 'offset:length' space for the
metadata entry, as well as the possible value changes in other entries.

However, this could fail in two possible cases: (a) metadata entry
itself has a large offset (e.g. staying near the end of a 1-GiB package,
where the offset itself has 10-digit); or (b) the offsets for other
entries change substantially due to entry reordering. Note that for case
(b), it's space inefficient to always reserve 15-byte for _each_ token
in the property-files.

This CL handles both of these two cases. For (a), we bump up the 10-byte
to 15-byte, which is large enough to cover a package size up to 10-digit
number (i.e. ~9GiB) with a metadata entry size of 4-digit. All these
15-byte will be used for the metadata token alone.

For (b), we add a fallback flow that would retry one more time, but
based on the already signed package that has entries in desired order.

Bug: 74210298
Test: python -m unittest test_ota_from_target_files
Test: Generate aosp-bullhead full OTA with '--no_signing' flag.
Change-Id: If20487602d2ad09b3797465c01972f2fa792a1f1
(cherry picked from commit 3bf8c65029)
2018-03-21 06:19:28 +00:00
Nan Zhang
cef4859533 Merge "Add dist-for-goals for droiddoc docs.zip" am: 550a3b6dd9
am: 4db0821c0d  -s ours

Change-Id: I5ae515844dfdbc677f0de0a2b6dd21eb0422c090
2018-03-21 04:28:57 +00:00
Tao Bao
1751dd018d Merge changes from topic "system-as-root-recovery" into pi-dev
am: 5681de773d  -s ours

Change-Id: If55285dc047fe99d4f56d77ecc1a1f5363a61950
2018-03-21 04:10:27 +00:00
Tao Bao
490a806552 Use bsdiff to generate recovery-from-boot.p for system-root-image.
am: 2d2ce7dd02  -s ours

Change-Id: I5fdcb61196f9e34c28dbbea35d3bdcf32e1a932b
2018-03-21 04:09:44 +00:00
TreeHugger Robot
5681de773d Merge changes from topic "system-as-root-recovery" into pi-dev
* changes:
  Use bsdiff to generate recovery-from-boot.p for system-root-image.
  Conditionally generate META/boot_filesystem_config.txt.
2018-03-21 03:57:01 +00:00
Isaac Chen
4cf3e65be7 Move emulator fstab to vendor for "system as root"
In P, the root of the system image is used as the root of the
device, so all device (or vendor) spicific files need to be
moved to vendor partition. Relevant configuration files need to
be modified accordingly.

Bug: 76037265
Test: m -j; emulator # booted to home screen and
                     # checked fstab.ranchu is under vendor/etc

Change-Id: I88bfdbc1d7791f6afb64edf352b4898a50b41190
2018-03-21 10:40:44 +08:00
Nan Zhang
82d40c4874 Add dist-for-goals for droiddoc docs.zip
Old droiddoc will install the *-docs.zip & API files to the dist.

And also remove INTERNAL_PLATFORM_*API_FILE variables from config.mk and
get rid of the dependencies on api-stubs, system-api-stubs, test-api-stubs
timestamp.

Test: m -j api-stubs-docs
Bug: b/70351683
Change-Id: I08923bb5f62d2f55961d9a2865723d7b3fae7206
Merged-In: I08923bb5f62d2f55961d9a2865723d7b3fae7206
2018-03-20 16:23:22 -07:00
Colin Cross
50e8751056 Add asan-specific CleanSpec
ASAN builds run as two consecutive builds.  The cleanspec is applied by
the first one, which cleans the obj directory, and ignored by the
second.  This can result in old entries in the obj_asan directory.

Bug: 73885582
Test: obj_asan dirs are deleted
Change-Id: I54b8ec9cff581fcd9ec2a843aa7126805340c387
Merged-In: I54b8ec9cff581fcd9ec2a843aa7126805340c387
(cherry picked from commit 4e2da3277a)
2018-03-20 15:48:03 -07:00
Colin Cross
65c7cdf2a7 Remove framework_res_package_export_deps
framework_res_package_export is now always either the prebuilt
android.jar from an SDK or a package-export.apk generated by
Soong, so the dependency on R.stamp is never useful.  Remove
all assignments to framework_res_package_export_deps, and replace
usages with frameworks_res_package_export.

Bug: 73885582
Test: m checkbuild
Change-Id: If484e9eb08061cb0ed0697755f13db71d741aaab
Merged-In: If484e9eb08061cb0ed0697755f13db71d741aaab
(cherry picked from commit 6e136922f3)
2018-03-20 15:47:45 -07:00
Colin Cross
ccf8992ac2 Use a srcjar for aapt and aapt2 output
Dumping files in the *_intermediates/src causes incremental build
problems, because we don't know when to delete them if they are
no longer generated.  Switch to outputting a srcjar instead, and
pass it in to the turbine and javac compiles.

Bug: 73885582
Test: m checkbuild
Change-Id: Ibef28507522339d930c09426d0c98372eb864cb6
Merged-In: Ibef28507522339d930c09426d0c98372eb864cb6
(cherry picked from commit 2d1cddd567)
2018-03-20 15:47:45 -07:00
Colin Cross
a73ea16f95 Replace extract_srcjars.sh with zipsync
Use zipsync instead of extract_srcjars.sh.

Also fixes an issue where unzipping a resource zip would
ignore anything that wasn't a *.java file.

Bug: 73885582
Test: m checkbuild
Change-Id: I1c25f65afa196614879071c8655866febebac185
Merged-In: I1c25f65afa196614879071c8655866febebac185
(cherry picked from commit 3f99cd5933)
2018-03-20 15:47:45 -07:00
Colin Cross
b543a4f80c Move R.txt and make aapt2 generate it
Move R.txt from $(intermediates.COMMON)/src to $(intermediates.COMMON)
in preparation for moving aapt/aapt2 java files out of src.  Also
make aapt2 generate R.txt, and make it an implicit output of the rule
and and input to the aar rule.

Bug: 73885582
Test: m out/target/common/obj/JAVA_LIBRARIES/SettingsLib_intermediates/javalib.aar
Test: m checkbuild
Change-Id: Ia858de226355965b69794c002f841333df16a612
Merged-In: Ia858de226355965b69794c002f841333df16a612
(cherry picked from commit 7c24f8ec85)
2018-03-20 15:47:45 -07:00
Colin Cross
ce99f05025 Allow compiles with only srcjars
Some javac and turbine compiles have no source files but sources
from srcjars.  Continue with compilation if the java source list
is empty but the srcjar source list is not.

Bug: 73885582
Test: m checkbuild
Change-Id: Ica412de2dd1b1bfc12c01c3eafca884220d42771
Merged-In: Ica412de2dd1b1bfc12c01c3eafca884220d42771
(cherry picked from commit 0c0adb993c)
2018-03-20 15:47:45 -07:00
Colin Cross
8a33456e7d Move aapt2.mk before java.mk
aapt2.mk will export a srcjar that will be compiled by java.mk, so
it needs to be evaluated first.  Also move java_renderscript.mk
before aapt2.mk so that the generated resoures are available.

Bug: 73885582
Test: m checkbuild
Test: rm -rf out/target/common/obj/APPS/RsHelloCompute_intermediates &&
      m out/target/common/obj/APPS/RsHelloCompute_intermediates/src/R.stamp
Change-Id: Ide3050ec993a945f7077b75e952c3b3532306ede
Merged-In: Ide3050ec993a945f7077b75e952c3b3532306ede
(cherry picked from commit 8528eabbba)
2018-03-20 15:47:45 -07:00
Colin Cross
0a717ccd3f Allow aapt2 rules to take zipped resource files
Allow aapt2 rules to take zipped resource files similar to the
way the javac rules take srcjars.  For now, unzip the files using
extract_srcjars.sh, and then use aapt2 compile --dir.  Eventually
it could be done with aapt2 compile --zip.

Bug: 73885582
Bug: 74574557
Test: m checkbuild
Change-Id: I97ea3ff305e7a9ef2a908b4cf0bca903af62c6b1
Merged-In: I97ea3ff305e7a9ef2a908b4cf0bca903af62c6b1
(cherry picked from commit bc0c494d3a)
2018-03-20 15:47:45 -07:00
Colin Cross
65c5bcf79e Remove redundant renderscript_target_api computation
renderscript_target_api is set by java_renderscript.mk, it doesn't
need to be computed again in static_java_library.mk and
package_internal.mk.

Bug: 73885582
Test: no change to ninja file
Change-Id: Ib6e00be425c385f4911def19ed5042a740f2c79b
Merged-In: Ib6e00be425c385f4911def19ed5042a740f2c79b
(cherry picked from commit 55cce23360)
2018-03-20 15:47:45 -07:00