aboutsummaryrefslogtreecommitdiff
path: root/en
diff options
context:
space:
mode:
Diffstat (limited to 'en')
-rw-r--r--en/compatibility/cts/downloads.html72
-rw-r--r--en/compatibility/cts/setup.html10
-rw-r--r--en/devices/_toc-interfaces.yaml2
-rw-r--r--en/devices/architecture/vintf/comp-matrices.html10
-rw-r--r--en/devices/bluetooth/ble.html148
-rw-r--r--en/devices/graphics/images/graphics_pipeline.pngbin24878 -> 26540 bytes
-rw-r--r--en/devices/graphics/run-tests.html2
-rw-r--r--en/devices/tech/debug/native-memory.html8
-rw-r--r--en/devices/tech/debug/valgrind.html7
-rw-r--r--en/devices/tech/ota/ab/index.html7
-rw-r--r--en/security/bulletin/2018-03-01.html11
-rw-r--r--en/security/bulletin/_translation.yaml64
-rw-r--r--en/security/bulletin/pixel/2018-02-01.html9
-rw-r--r--en/security/bulletin/pixel/2018-04-01.html9
-rw-r--r--en/security/overview/acknowledgements.html39
-rw-r--r--en/setup/build/building.html26
-rw-r--r--en/setup/build/devices.html5
-rw-r--r--en/setup/build/downloading.html155
-rw-r--r--en/setup/build/initializing.html19
-rw-r--r--en/setup/build/jack.html53
-rw-r--r--en/setup/build/known-issues.html30
-rw-r--r--en/setup/build/running.html6
-rw-r--r--en/setup/contribute/report-bugs.html6
-rw-r--r--en/setup/develop/new-device.html30
-rw-r--r--en/setup/start/build-numbers.html1
-rw-r--r--en/setup/start/faqs.html2
-rw-r--r--en/setup/start/licenses.html2
27 files changed, 445 insertions, 288 deletions
diff --git a/en/compatibility/cts/downloads.html b/en/compatibility/cts/downloads.html
index ef52c343..694587a6 100644
--- a/en/compatibility/cts/downloads.html
+++ b/en/compatibility/cts/downloads.html
@@ -31,77 +31,77 @@ R&lt;number&gt; in the link name.</p>
<h2 id="android-81">Android 8.1</h2>
<p>Android 8.1 is the release of the development milestone code-named Oreo-MR1.
The source code for the following tests can be synced with the
-'android-cts-8.1_r3' tag in the open-source tree.</p>
+'android-cts-8.1_r4' tag in the open-source tree.</p>
<ul>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-8.1_r3-linux_x86-arm.zip">Android
-8.1 R3 Compatibility Test Suite (CTS) - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-8.1_r4-linux_x86-arm.zip">Android
+8.1 R4 Compatibility Test Suite (CTS) - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-8.1_r3-linux_x86-x86.zip">Android
-8.1 R3 Compatibility Test Suite (CTS) - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-8.1_r4-linux_x86-x86.zip">Android
+8.1 R4 Compatibility Test Suite (CTS) - x86</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r3-linux_x86-arm.zip">Android
-8.1 R3 CTS Verifier - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r4-linux_x86-arm.zip">Android
+8.1 R4 CTS Verifier - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r3-linux_x86-x86.zip">Android
-8.1 R3 CTS Verifier - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r4-linux_x86-x86.zip">Android
+8.1 R4 CTS Verifier - x86</a></li>
</ul>
<h2 id="android-80">Android 8.0</h2>
<p>Android 8.0 is the release of the development milestone code-named Oreo.
The source code for the following tests can be synced with the
-'android-cts-8.0_r7' tag in the open-source tree.</p>
+'android-cts-8.0_r8' tag in the open-source tree.</p>
<ul>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-8.0_r7-linux_x86-arm.zip">Android
-8.0 R7 Compatibility Test Suite (CTS) - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-8.0_r8-linux_x86-arm.zip">Android
+8.0 R8 Compatibility Test Suite (CTS) - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-8.0_r7-linux_x86-x86.zip">Android
-8.0 R7 Compatibility Test Suite (CTS) - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-8.0_r8-linux_x86-x86.zip">Android
+8.0 R8 Compatibility Test Suite (CTS) - x86</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r7-linux_x86-arm.zip">Android
-8.0 R7 CTS Verifier - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r8-linux_x86-arm.zip">Android
+8.0 R8 CTS Verifier - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r7-linux_x86-x86.zip">Android
-8.0 R7 CTS Verifier - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r8-linux_x86-x86.zip">Android
+8.0 R8 CTS Verifier - x86</a></li>
</ul>
<h2 id="android-71">Android 7.1</h2>
<p>Android 7.1 is the release of the development milestone code-named Nougat-MR1.
The source code for the following tests can be synced with the
-'android-cts-7.1_r15' tag in the open-source tree.</p>
+'android-cts-7.1_r16' tag in the open-source tree.</p>
<ul>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-7.1_r15-linux_x86-arm.zip">Android
-7.1 R15 Compatibility Test Suite (CTS) - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-7.1_r16-linux_x86-arm.zip">Android
+7.1 R16 Compatibility Test Suite (CTS) - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-7.1_r15-linux_x86-x86.zip">Android
-7.1 R15 Compatibility Test Suite (CTS) - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-7.1_r16-linux_x86-x86.zip">Android
+7.1 R16 Compatibility Test Suite (CTS) - x86</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r15-linux_x86-arm.zip">Android
-7.1 R15 CTS Verifier - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r16-linux_x86-arm.zip">Android
+7.1 R16 CTS Verifier - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r15-linux_x86-x86.zip">Android
-7.1 R15 CTS Verifier - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r16-linux_x86-x86.zip">Android
+7.1 R16 CTS Verifier - x86</a></li>
</ul>
<h2 id="android-70">Android 7.0</h2>
<p>Android 7.0 is the release of the development milestone code-named Nougat.
The source code for the following tests can be synced with the
-'android-cts-7.0_r19' tag in the open-source tree.</p>
+'android-cts-7.0_r20' tag in the open-source tree.</p>
<ul>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-7.0_r19-linux_x86-arm.zip">Android
-7.0 R19 Compatibility Test Suite (CTS) - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-7.0_r20-linux_x86-arm.zip">Android
+7.0 R20 Compatibility Test Suite (CTS) - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-7.0_r19-linux_x86-x86.zip">Android
-7.0 R19 Compatibility Test Suite (CTS) - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-7.0_r20-linux_x86-x86.zip">Android
+7.0 R20 Compatibility Test Suite (CTS) - x86</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r19-linux_x86-arm.zip">Android
-7.0 R19 CTS Verifier - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r20-linux_x86-arm.zip">Android
+7.0 R20 CTS Verifier - ARM</a></li>
<li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r19-linux_x86-x86.zip">Android
-7.0 R19 CTS Verifier - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r20-linux_x86-x86.zip">Android
+7.0 R20 CTS Verifier - x86</a></li>
</ul>
<h2 id="android-60">Android 6.0</h2>
diff --git a/en/compatibility/cts/setup.html b/en/compatibility/cts/setup.html
index cb235b63..a09efbce 100644
--- a/en/compatibility/cts/setup.html
+++ b/en/compatibility/cts/setup.html
@@ -154,11 +154,11 @@ ro.product.first_api_level=21
</pre>
<aside class="note">
-<b>Note:</b> The property ro.product.first_api_level should be unset (0) for the first build of a
-product, and set to the correct API level value for all subsequent builds. This
-way the property can correctly identify a new product, and we have lost no
-information about the first API level of the product (0 value implies
-ro.product.first_api_level = Build.VERSION.SDK_INT).
+ <b>Note:</b> The property <code>ro.product.first_api_level</code> should be unset (removed)
+ for the first build of a product, and set to the correct API level value for all subsequent
+ builds. This way the property can correctly identify a new product, and we have lost no
+ information about the first API level of the product. If the flag is unset, Android will assign
+ <code>Build.VERSION.SDK_INT</code> to <code>ro.product.first_api_level</code>.
</aside>
<h3 id=cts-shim-apps>CTS Shim apps</h3>
diff --git a/en/devices/_toc-interfaces.yaml b/en/devices/_toc-interfaces.yaml
index dba14fbe..504b9b72 100644
--- a/en/devices/_toc-interfaces.yaml
+++ b/en/devices/_toc-interfaces.yaml
@@ -215,6 +215,8 @@ toc:
path: /devices/bluetooth
- title: Services
path: /devices/bluetooth/services
+ - title: Bluetooth Low Energy
+ path: /devices/bluetooth/ble
- title: BLE Advertising
path: /devices/bluetooth/ble_advertising
- title: Verifying and Debugging
diff --git a/en/devices/architecture/vintf/comp-matrices.html b/en/devices/architecture/vintf/comp-matrices.html
index d3512e70..74589eef 100644
--- a/en/devices/architecture/vintf/comp-matrices.html
+++ b/en/devices/architecture/vintf/comp-matrices.html
@@ -22,7 +22,7 @@
-->
<p>This section describes the framework and device compatibility matrices and
-the <a href="#compatiblity-matrix-schema">compatibility matrix schema</a>. For
+the <a href="#compatibility-matrix-schema">compatibility matrix schema</a>. For
match rules, see <a href="/devices/architecture/vintf/match-rules.html">Matching
Rules</a>.</p>
@@ -102,7 +102,7 @@ device manifest (requirements enforced at launch and OTA time).</p>
&lt;version>1.0&lt;/version>
&lt;path>/system/etc/media_profile_V1_0.dtd&lt;/path>
&lt;/xmlfile>
-&lt;/compatiblity-matrix>
+&lt;/compatibility-matrix>
</pre>
<h2 id="device-compatibility-matrix">Device compatibility matrix</h2>
@@ -154,12 +154,12 @@ expects from the framework (requirements enforced at launch and OTA time).
&lt;/compatibility-matrix>
</pre>
-<h2 id="compatiblity-matrix-schema">Compatiblity matrix schema</h2>
+<h2 id="compatibility-matrix-schema">Compatibility matrix schema</h2>
<dl>
<dt><code>?xml</code></dt>
<dd>Optional. It only provides information to the XML parser.</dd>
<dt><code>compatibility-matrix.version</code></dt>
-<dd>Required. Version of this compatiblity matrix. Describes the elements
+<dd>Required. Version of this compatibility matrix. Describes the elements
expected in the manifest. Unrelated to XML version.</dd>
<dt><code>compatibility-matrix.type</code></dt>
<dd>Required. Type of this compatibility matrix:
@@ -202,7 +202,7 @@ device) expects.</dd>
<dd>Optional, can repeat. A list of required interfaces of this HAL.</dd>
<dt><code>compatibility-matrix.hal.interface.name</code></dt>
<dd>Required. Name of the interface.</dd>
-<dt><code>compatibility-matrix.hal.interface</code></dt>
+<dt><code>compatibility-matrix.hal.interface.instance</code></dt>
<dd>Optional, can repeat. A list of required instances of this interface.</dd>
<dt><code>compatibility-matrix.kernel.version</code></dt>
<dd>Required. Kernel version. Format is
diff --git a/en/devices/bluetooth/ble.html b/en/devices/bluetooth/ble.html
new file mode 100644
index 00000000..15b909f1
--- /dev/null
+++ b/en/devices/bluetooth/ble.html
@@ -0,0 +1,148 @@
+<html devsite>
+ <head>
+ <title>Bluetooth Low Energy</title>
+ <meta name="project_path" value="/_project.yaml" />
+ <meta name="book_path" value="/_book.yaml" />
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
+ not use this file except in compliance with the License. You may obtain a
+ copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and limitations
+ under the License.
+ -->
+
+ <p>
+ Bluetooth Low Energy (BLE), available in Android 4.3 and later, creates
+ short connections between devices to transfer bursts of data. BLE
+ remains in sleep mode when not connected. This lets BLE provide lower
+ bandwidth and reduced power consumption compared to Classic Bluetooth.
+ It is ideal for applications such as a heart-rate monitor or a wireless
+ keyboard. To use BLE, devices need to have a chipset that supports BLE.
+ </p>
+
+ <h2 id="implementation">Implementation</h2>
+
+ <p>
+ All current BLE application profiles are based on the
+ <a href="https://www.bluetooth.com/specifications/gatt">Generic
+ Attribute Profile</a> (GATT). When an Android device interacts with a
+ BLE device, the device that sends information is the server and the
+ device that receives information is the client. Android includes
+ <a href="https://developer.android.com/guide/topics/connectivity/bluetooth-le.html">
+ developer APIs for BLE</a>, including APIs for interactions between
+ GATT servers and GATT clients. To fully leverage the BLE APIs,
+ implement the
+ <a href="/devices/bluetooth/hci_requirements.html">
+ Android Bluetooth HCI Requirements</a>.
+ </p>
+
+ <h2 id="device-modes">Device modes</h2>
+
+ <p>
+ When using BLE, an Android device can act as a peripheral device, a
+ central device, or both. Peripheral mode lets devices send
+ advertisement packets. Central mode lets devices scan for
+ advertisements. An Android device acting as both a peripheral and
+ central device can communicate with other BLE peripheral devices while
+ sending advertisements in peripheral mode. Devices supporting
+ Bluetooth 4.1 and earlier can only use BLE in central mode. Older
+ device chipsets may not support BLE peripheral mode.
+ </p>
+
+ <h2 id="ble-scanning">BLE scanning</h2>
+
+ <p>
+ An Android device can target and scan for specific Bluetooth devices
+ more efficiently when using BLE. BLE APIs let app developers create
+ filters for finding devices with less involvement from the host
+ controller.
+ </p>
+
+ <aside class="caution">
+ <strong>Caution:</strong> BLE scanning needs location permissions as BLE
+ scanning identifies objects that could be used for geolocation. Turning
+ off Location services will turn off Bluetooth scanning.
+ </aside>
+
+ <h3 id="location-scanning">Location scanning</h3>
+
+ <p>
+ A device's location services can use Bluetooth to detect Bluetooth
+ beacons and provide a more accurate location. This is how users
+ enable the feature:
+ </p>
+
+ <ol>
+ <li>Go to <strong>Settings</strong> &gt; <strong> Security &amp;
+ Location</strong> &gt; <strong>Location</strong>.</li>
+ <li>Check that the Location <strong>On</strong>/<strong>Off</strong>
+ toggle is in the <strong>On</strong> position.</li>
+ <li>Go to <strong>Mode</strong>.</li>
+ <li>Select either <strong>High accuracy</strong> or <strong>Battery
+ saving</strong> mode.</li>
+ </ol>
+
+ <p>
+ Individual apps need location permissions to use BLE scanning, even
+ if they are scanning only to find devices to connect to. If the user
+ disables location scanning, or does not give an app location
+ permissions, then the app will not receive any BLE scanning results.
+ </p>
+
+ <p>
+ Users can disable system-level Bluetooth background scanning by
+ going to <strong>Settings</strong> &gt; <strong>Security &amp;
+ Location</strong> &gt; <strong>Location</strong> &gt; <strong>
+ Scanning</strong> and disabling the toggle for <strong>Bluetooth
+ scanning</strong>. This does not affect BLE scanning for location or
+ local devices.
+ </p>
+
+ <h3 id="filtering-scan-results">Filtering scan results</h3>
+
+ <p>
+ Android 6.0 and later includes BLE scanning and filter-matching on
+ the Bluetooth controller. A device can filter scan results and
+ report <strong>found</strong> and <strong>lost</strong> events
+ related to BLE devices to the application processor (AP). Filtering
+ also works for batch scans, which helps save power as BLE scanning is
+ offloaded to the firmware. Batch scans reduce how often the AP wakes
+ up due to BLE scanning for devices or beacons.
+ </p>
+
+ <p>
+ The <code>OnFound</code>/<code>OnLost</code> feature is implemented
+ in the Bluetooth controller and then tested to confirm that BLE
+ devices are not missed in scans. This provides power savings, and it
+ can also provide the following benefits:
+ </p>
+
+ <ul>
+ <li>For an <code>OnFound</code> event, the main AP wakes up upon the
+ discovery of a specific device.</li>
+ <li>For an <code>OnLost</code> event, the AP wakes up when a
+ specific device cannot be found.</li>
+ <li>Framework apps get fewer unwanted notifications when a nearby device is in range.</li>
+ <li>Continuous scans enable framework apps to be notified when a device is out of range.</li>
+ </ul>
+
+ <p>
+ A scan filter can be based on the discovery of a device's
+ advertisements (the <code>OnFound</code> event). The Java layer can
+ specify parameters such as first discovery (or a specified number of
+ advertisements since first discovery). Implement BLE filtering using
+ the <a href="/devices/bluetooth/hci_requirements#advertisement-packet-content-filter">
+ Advertising Packet Content Filter HCI command</a>.
+ </p>
+</body>
+</html> \ No newline at end of file
diff --git a/en/devices/graphics/images/graphics_pipeline.png b/en/devices/graphics/images/graphics_pipeline.png
index 6033b4f9..60fb0fc1 100644
--- a/en/devices/graphics/images/graphics_pipeline.png
+++ b/en/devices/graphics/images/graphics_pipeline.png
Binary files differ
diff --git a/en/devices/graphics/run-tests.html b/en/devices/graphics/run-tests.html
index 0eb83d00..7824e76b 100644
--- a/en/devices/graphics/run-tests.html
+++ b/en/devices/graphics/run-tests.html
@@ -271,7 +271,7 @@ supporting <code>NativeActivity,</code> use the following commands.</p>
<pre class="devsite-terminal devsite-click-to-copy">
adb -d shell am start -n com.drawelements.deqp/android.app.NativeActivity -e \
-cmdLine "deqp --deqp-case=dEQP-GLES2.info.* --deqp-log-filename=/sdcard/dEQP-Log.qpa
+'cmdLine "deqp --deqp-case=dEQP-GLES2.info.* --deqp-log-filename=/sdcard/dEQP-Log.qpa"'
</pre>
<h3 id=debugging_on_android>Debugging on Android</h3>
diff --git a/en/devices/tech/debug/native-memory.html b/en/devices/tech/debug/native-memory.html
index b690793d..afa0d220 100644
--- a/en/devices/tech/debug/native-memory.html
+++ b/en/devices/tech/debug/native-memory.html
@@ -21,6 +21,14 @@
limitations under the License.
-->
+<h2 id="asan">Address Sanitizer</h2>
+
+<p>Android platform developers use <a href="/devices/tech/debug/asan.html">AddressSanitizer</a>
+(ASan) to find memory bugs in C/C++.</p>
+
+</p>Since Android 8.0 (Oreo) it's also possible to use ASan to debug apps on non-rooted production
+devices. You can find instructions on the
+<a href="https://github.com/google/sanitizers/wiki/AddressSanitizerOnAndroidO">ASan wiki</a>.</p>
<h2 id="malloc_debug">Malloc debug</h2>
diff --git a/en/devices/tech/debug/valgrind.html b/en/devices/tech/debug/valgrind.html
index 9ae0f088..6abbc999 100644
--- a/en/devices/tech/debug/valgrind.html
+++ b/en/devices/tech/debug/valgrind.html
@@ -25,9 +25,10 @@
(for detecting memory-related errors in C and C++), Cachegrind (a cache
profiler), Massif (a heap profiler), and several other tools.</p>
-<p class="note"><strong>Note:</strong> While you can use Valgrind for Android
-debugging, most Android platform developers use
-<a href="/devices/tech/debug/asan.html">AddressSanitizer</a> instead.</p>
+<p class="warning"><strong>Note:</strong> While you can still use Valgrind for Android
+debugging, Android platform developers use
+<a href="/devices/tech/debug/asan.html">AddressSanitizer</a> instead.
+Valgrind will be removed from the platform in a future release.</p>
<h2 id=build-valgrind>Building Valgrind</h2>
<p>To build Valgrind:</p>
diff --git a/en/devices/tech/ota/ab/index.html b/en/devices/tech/ota/ab/index.html
index c2a9c447..f494c825 100644
--- a/en/devices/tech/ota/ab/index.html
+++ b/en/devices/tech/ota/ab/index.html
@@ -21,7 +21,8 @@
limitations under the License.
-->
- <p>A/B system updates, also known as seamless updates, ensure a workable
+ <p>
+ A/B system updates, also known as seamless updates, ensure a workable
booting system remains on the disk during an <a href="/devices/tech/ota/index.html">
over-the-air (OTA) update</a>. This approach reduces the likelihood of
an inactive device after an update, which means fewer device
@@ -31,8 +32,10 @@
updates successfully.
</p>
- <p>For more information about A/B system updates and how they work, see
+ <p>
+ For more information about A/B system updates and how they work, see
<a href="#slots">Partition selection (slots)</a>.
+ </p>
<p>A/B system updates provide the following benefits:</p>
diff --git a/en/security/bulletin/2018-03-01.html b/en/security/bulletin/2018-03-01.html
index b50f6331..862aa466 100644
--- a/en/security/bulletin/2018-03-01.html
+++ b/en/security/bulletin/2018-03-01.html
@@ -691,15 +691,16 @@ site</a>.
</p>
<p>
<strong>6. Why are security vulnerabilities split between this bulletin and
-device/partner security bulletins, such as the Pixel / Nexus bulletin?</strong>
+device/partner security bulletins, such as the Pixel&hairsp;/&hairsp;Nexus bulletin?</strong>
</p>
<p>
Security vulnerabilities that are documented in this security bulletin are
required in order to declare the latest security patch level on Android devices.
-Additional security vulnerabilities that are documented in the device/partner
-security bulletins are not required for declaring a security patch level.
-Android device and chipset manufacturers are encouraged to document the presence
-of other fixes on their devices through their own security websites, such as the
+Additional security vulnerabilities that are documented in the
+device&hairsp;/&hairsp;partner security bulletins are not required for declaring
+a security patch level. Android device and chipset manufacturers are encouraged
+to document the presence of other fixes on their devices through their own security
+websites, such as the
<a href="https://security.samsungmobile.com/securityUpdate.smsb">Samsung</a>,
<a href="https://lgsecurity.lge.com/security_updates.html">LGE</a>, or
<a href="/security/bulletin/pixel/">Pixel&hairsp;/&hairsp;Nexus</a>
diff --git a/en/security/bulletin/_translation.yaml b/en/security/bulletin/_translation.yaml
index 88a35ea5..af2c6b7f 100644
--- a/en/security/bulletin/_translation.yaml
+++ b/en/security/bulletin/_translation.yaml
@@ -1,36 +1,36 @@
ignore_paths:
-- /security/bulletin/2017.html
-- /security/bulletin/2017-12-01.html
-- /security/bulletin/2017-11-01.html
-- /security/bulletin/2017-10-01.html
-- /security/bulletin/2017-09-01.html
-- /security/bulletin/2017-08-01.html
-- /security/bulletin/2017-07-01.html
-- /security/bulletin/2017-06-01.html
-- /security/bulletin/2017-05-01.html
-- /security/bulletin/2017-04-01.html
-- /security/bulletin/2017-03-01.html
-- /security/bulletin/2017-02-01.html
-- /security/bulletin/2017-01-01.html
-- /security/bulletin/2016.html
-- /security/bulletin/2016-12-01.html
-- /security/bulletin/2016-11-01.html
-- /security/bulletin/2016-10-01.html
-- /security/bulletin/2016-09-01.html
-- /security/bulletin/2016-08-01.html
-- /security/bulletin/2016-07-01.html
-- /security/bulletin/2016-06-01.html
-- /security/bulletin/2016-05-01.html
-- /security/bulletin/2016-04-02.html
-- /security/bulletin/2016-03-01.html
-- /security/bulletin/2016-02-01.html
-- /security/bulletin/2016-01-01.html
-- /security/bulletin/2015.html
-- /security/bulletin/2015-12-01.html
-- /security/bulletin/2015-11-01.html
-- /security/bulletin/2015-10-01.html
-- /security/bulletin/2015-09-01.html
-- /security/bulletin/2015-08-01.html
+- /security/bulletin/2017
+- /security/bulletin/2017-12-01
+- /security/bulletin/2017-11-01
+- /security/bulletin/2017-10-01
+- /security/bulletin/2017-09-01
+- /security/bulletin/2017-08-01
+- /security/bulletin/2017-07-01
+- /security/bulletin/2017-06-01
+- /security/bulletin/2017-05-01
+- /security/bulletin/2017-04-01
+- /security/bulletin/2017-03-01
+- /security/bulletin/2017-02-01
+- /security/bulletin/2017-01-01
+- /security/bulletin/2016
+- /security/bulletin/2016-12-01
+- /security/bulletin/2016-11-01
+- /security/bulletin/2016-10-01
+- /security/bulletin/2016-09-01
+- /security/bulletin/2016-08-01
+- /security/bulletin/2016-07-01
+- /security/bulletin/2016-06-01
+- /security/bulletin/2016-05-01
+- /security/bulletin/2016-04-02
+- /security/bulletin/2016-03-01
+- /security/bulletin/2016-02-01
+- /security/bulletin/2016-01-01
+- /security/bulletin/2015
+- /security/bulletin/2015-12-01
+- /security/bulletin/2015-11-01
+- /security/bulletin/2015-10-01
+- /security/bulletin/2015-09-01
+- /security/bulletin/2015-08-01
enable_continuous_translation: True
title: Android Security Bulletins
description: Translations for Android Security Bulletins
diff --git a/en/security/bulletin/pixel/2018-02-01.html b/en/security/bulletin/pixel/2018-02-01.html
index c8bcb259..ebd55505 100644
--- a/en/security/bulletin/pixel/2018-02-01.html
+++ b/en/security/bulletin/pixel/2018-02-01.html
@@ -22,7 +22,7 @@
-->
-<p><em>Published February 5, 2018 | Updated April 2, 2018</em></p>
+<p><em>Published February 5, 2018 | Updated April 30, 2018</em></p>
<p>
The Pixel&hairsp;/&hairsp;Nexus Security Bulletin contains details of security
@@ -353,7 +353,7 @@ QC-CR#2115365</a></td>
<tr>
<td>CVE-2017-15852</td>
<td>A-36730614<a href="#asterisk">*</a><br />
- QC-CR#2046770</td>
+ QC-CR#2028702</td>
<td>EoP</td>
<td>Moderate</td>
<td>Framebuffer</td>
@@ -635,6 +635,11 @@ bulletin, are not required for declaring a security patch level.
<td>April 2, 2018</td>
<td>Moved CVE-2017-15817 from the February Android Bulletin to the February Pixel Bulletin.</td>
</tr>
+ <tr>
+ <td>1.4</td>
+ <td>April 30, 2018</td>
+ <td>Updated CVE-2017-15852 from CR 2046770 to CR 2028702.</td>
+ </tr>
</table>
</body></html>
diff --git a/en/security/bulletin/pixel/2018-04-01.html b/en/security/bulletin/pixel/2018-04-01.html
index 0322f70a..fa87a16d 100644
--- a/en/security/bulletin/pixel/2018-04-01.html
+++ b/en/security/bulletin/pixel/2018-04-01.html
@@ -22,7 +22,7 @@
-->
-<p><em>Published April 2, 2018 | Updated April 4, 2018</em></p>
+<p><em>Published April 2, 2018 | Updated April 10, 2018</em></p>
<p>
The Pixel&hairsp;/&hairsp;Nexus Security Bulletin contains details of security
@@ -900,7 +900,7 @@ and a summary of the issue.
<tr>
<td>A-72871435</td>
<td>Logging</td>
- <td>Improve network logging</td>
+ <td>Improve network performance when both VPN and Wi-Fi are enabled</td>
<td>All</td>
</tr>
</table>
@@ -1033,5 +1033,10 @@ bulletin, are not required for declaring a security patch level.
<td>April 4, 2018</td>
<td>Bulletin revised to include AOSP links.</td>
</tr>
+ <tr>
+ <td>1.2</td>
+ <td>April 10, 2018</td>
+ <td>Bulletin revised to update description for A-72871435.</td>
+ </tr>
</table>
</body></html>
diff --git a/en/security/overview/acknowledgements.html b/en/security/overview/acknowledgements.html
index 74c88b2e..bd66f9dc 100644
--- a/en/security/overview/acknowledgements.html
+++ b/en/security/overview/acknowledgements.html
@@ -54,7 +54,16 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td><a href="http://weibo.com/csddl">Chong Wang</a> and <a href="http://weibo.com/ele7enxxh">Zinuo Han</a> from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd
+ <td><a href="http://weibo.com/csddl">Chong Wang</a> of Chengdu Security Response Center, Qihoo
+ 360 Technology Co. Ltd
+ </td>
+ <td>CVE-2017-13287
+ </td>
+ </tr>
+ <tr>
+ <td><a href="http://weibo.com/csddl">Chong Wang</a> and
+ <a href="http://weibo.com/ele7enxxh">Zinuo Han</a> of Chengdu Security Response Center, Qihoo 360
+ Technology Co. Ltd
</td>
<td>CVE-2017-13289, CVE-2017-13286
</td>
@@ -72,7 +81,8 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td>Dinesh Venkatesan (<a href="https://twitter.com/malwareresearch">@malwareresearch</a>) from Symantec
+ <td>Dinesh Venkatesan (<a href="https://twitter.com/malwareresearch">@malwareresearch</a>) of
+ Symantec
</td>
<td>CVE-2017-13295
</td>
@@ -84,7 +94,8 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td>En He(<a href="https://twitter.com/heeeeen4x">@heeeeen4x</a>) and Bo Liu of <a href="http://www.ms509.com">MS509Team</a>
+ <td>En He (<a href="https://twitter.com/heeeeen4x">@heeeeen4x</a>) and Bo Liu of
+ <a href="http://www.ms509.com">MS509Team</a>
</td>
<td>CVE-2017-13294
</td>
@@ -114,25 +125,20 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td>Jianjun Dai(<a href="https://twitter.com/Jioun_dai">@Jioun_dai</a>) and Guang Gong of Alpha Team, Qihoo 360 Technology Co. Ltd
+ <td>Jianjun Dai (<a href="https://twitter.com/Jioun_dai">@Jioun_dai</a>) and Guang Gong of Alpha
+ Team, Qihoo 360 Technology Co. Ltd
</td>
<td>CVE-2017-13291, CVE-2017-13283, CVE-2017-13282, CVE-2017-13281, CVE-2017-13267
</td>
</tr>
<tr>
- <td><a href="https://github.com/michalbednarski">Michał Bednarski</a>
- </td>
- <td>CVE-2017-13287
- </td>
- </tr>
- <tr>
- <td>Patrick Delvenne (<a href="https://twitter.com/wintzx">@wintzx</a>) Orange Labs
+ <td>Patrick Delvenne (<a href="https://twitter.com/wintzx">@wintzx</a>) of Orange Labs
</td>
<td>CVE-2018-3584
</td>
</tr>
<tr>
- <td>Pengfei Ding(丁鹏飞), Chenfu Bao(包沉浮), Lenx Wei(韦韬) of Baidu X-Lab(百度安全实验室)
+ <td>Pengfei Ding (丁鹏飞), Chenfu Bao (包沉浮), Lenx Wei (韦韬) of Baidu X-Lab (百度安全实验室)
</td>
<td>CVE-2017-13306, CVE-2017-13290, CVE-2017-15837
</td>
@@ -156,13 +162,15 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td><a href="mailto:huahuaisadog@gmail.com">Yang Dai</a> and <a href="http://weibo.com/panyu6325">Yu Pan</a> of Vulpecker Team, Qihoo 360 Technology Co. Ltd
+ <td><a href="mailto:huahuaisadog@gmail.com">Yang Dai</a> and
+ <a href="http://weibo.com/panyu6325">Yu Pan</a> of Vulpecker Team, Qihoo 360 Technology Co. Ltd
</td>
<td>CVE-2017-13304
</td>
</tr>
<tr>
- <td>Yonggang Guo (<a href="https://twitter.com/guoygang">@guoygang</a>) of IceSword Lab, Qihoo 360 Technology Co. Ltd
+ <td>Yonggang Guo (<a href="https://twitter.com/guoygang">@guoygang</a>) of IceSword Lab,
+ Qihoo 360 Technology Co. Ltd
</td>
<td>CVE-2017-8269, CVE-2017-13307, CVE-2018-5826
</td>
@@ -174,7 +182,8 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td><a href="http://weibo.com/ele7enxxh">Zinuo Han</a> from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd
+ <td><a href="http://weibo.com/ele7enxxh">Zinuo Han</a> of Chengdu Security Response Center,
+ Qihoo 360 Technology Co. Ltd
</td>
<td>CVE-2017-13288, CVE-2017-13298, CVE-2017-13296, CVE-2017-13299, CVE-2017-13275, CVE-2017-13285
</td>
diff --git a/en/setup/build/building.html b/en/setup/build/building.html
index ab57d087..43054987 100644
--- a/en/setup/build/building.html
+++ b/en/setup/build/building.html
@@ -45,8 +45,8 @@ AOSP release branches from <a
href="https://developers.google.com/android/drivers" class="external">Google's
drivers</a>. These binaries add access to additional hardware capabilities
with non-open source code. To instead build the AOSP master branch, use the
-<a href="https://developers.google.com/android/blobs-preview" class="external">Binaries
-Preview</a>. When building the master branch for a device, use
+<a href="https://developers.google.com/android/blobs-preview" class="external">
+Binaries Preview</a>. When building the master branch for a device, use
the binaries for the <a href="/setup/start/build-numbers.html">most recent
numbered release</a> or with the most recent date.</p>
@@ -89,7 +89,7 @@ lunch aosp_arm-eng
target from the menu.</p>
<p>All build targets take the form <code>BUILD-BUILDTYPE</code>, where the
<code>BUILD</code> is a codename referring to the particular feature
-combination. The BUILDTYPE is one of the following:</p>
+ combination. The <code>BUILDTYPE</code> is one of the following:</p>
<table>
<thead>
<tr>
@@ -122,7 +122,7 @@ debugging</td>
<a href="running.html">Running Builds</a> for detailed instructions on building
Android.</p>
-<p>Build everything with <code>make</code>. GNU make can handle parallel
+ <p>Build everything with <code>make</code>. GNU <code>make</code> can handle parallel
tasks with a <code>-jN</code> argument, and it's common to use a number of
tasks N that's between 1 and 2 times the number of hardware
threads on the computer being used for the build. For example, on a
@@ -138,7 +138,7 @@ make -j4
<p>You can either run your build on an emulator or flash it on a device. Please
note that you have already selected your build target with <code>lunch</code>,
-and it is unlikely at best to run on a different target than it was built
+and it is unlikely to run on a different target than it was built
for.</p>
<aside class="note"><strong>Note:</strong> Remember to <a
@@ -183,11 +183,13 @@ Please follow the machine setup instructions at
************************************************************
</pre>
-<p>This may be caused by:</p>
+<p>Here are the likely causes and solutions:</p>
<ul>
<li>Failing to install the correct JDK as specified in <a
-href="requirements.html#jdk">JDK Requirements</a>.</li>
+href="requirements.html#jdk">JDK Requirements</a>. Make sure you have followed
+the steps in <a href="building.html#initialize">Set up environment</a> and
+<a href="building.html#choose-a-target">Choose a target</a>.</li>
<li>Another JDK previously installed appearing in your path. Prepend the
correct JDK to the beginning of your PATH or remove the problematic JDK.</li>
</ul>
@@ -195,7 +197,7 @@ correct JDK to the beginning of your PATH or remove the problematic JDK.</li>
<h3 id="python-version-3">Python version 3</h3>
<p>Repo is built on particular functionality from Python 2.x and is
-unfortunately incompatible with Python 3. In order to use repo, please install
+unfortunately incompatible with Python 3. In order to use repo, please install
Python 2.x:</p>
<pre class="devsite-terminal devsite-click-to-copy">
@@ -212,15 +214,13 @@ You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************
</pre>
-<p>Please follow the instructions in <a href="initializing.html">Establishing a
-Build Environment</a> for creating a case-sensitive disk image.</p>
+<p>Please follow the instructions in <a href="initializing.html#creating-a-case-sensitive-disk-image">Creating a case-sensitive disk image</a>.</p>
<h3 id="no-usb-permission">No USB permission</h3>
<p>On most Linux systems, unprivileged users cannot access USB ports by
-default. If you see a permission denied error, follow the instructions
-<a href="initializing.html">Initializing the Build Environment</a> for
-configuring USB access.</p>
+default. If you see a permission denied error, follow the instructions in
+<a href="initializing.html#configuring-usb-access">Configuring USB access</a>.</p>
<p>If adb was already running and cannot connect to the device after
getting those rules set up, it can be killed with <code>adb kill-server</code>.
diff --git a/en/setup/build/devices.html b/en/setup/build/devices.html
index 01dee33b..20aa2a80 100644
--- a/en/setup/build/devices.html
+++ b/en/setup/build/devices.html
@@ -217,7 +217,7 @@ use: <code>$ make -j32 TARGET_USERDATAIMAGE_4GB=true</code>.</p>
<ol>
<li>Select special bootloader mode by linking J15 1-2 and 3-4 pins (for details,
refer to the
-<a href="https://www.96boards.org/wp-content/uploads/2015/02/HiKey_User_Guide_Rev0.2.pdf" class="external">HiKey
+<a href="https://github.com/96boards/documentation/blob/master/consumer/hikey/hardware-docs/HiKey_Hardware_User_Manual_Rev0.2.pdf" class="external">HiKey
user guide</a>).</li>
<li>Connect USB to PC to get ttyUSB device (ex: <code>/dev/ttyUSB1</code>).</li>
<li>Power the board:
@@ -234,7 +234,10 @@ user guide</a>).</li>
<li>Enter fastboot mode by linking J15 1-2 and 5-6 pins.</li>
<li>Run the following commands:
<pre class="devsite-click-to-copy">
+<code class="devsite-terminal">fastboot flash ptable device/linaro/hikey/installer/hikey/ptable-aosp-8g.img</code>
+<code class="devsite-terminal">fastboot reboot-bootloader</code>
<code class="devsite-terminal">fastboot flash boot out/target/product/hikey/boot.img</code>
+<code class="devsite-terminal">fastboot flash vendor out/target/product/hikey/vendor.img</code>
<code class="devsite-terminal">fastboot flash -w system out/target/product/hikey/system.img</code>
</pre>
</li>
diff --git a/en/setup/build/downloading.html b/en/setup/build/downloading.html
index 0d53f39b..ced8aa2a 100644
--- a/en/setup/build/downloading.html
+++ b/en/setup/build/downloading.html
@@ -24,10 +24,10 @@
<p>
- The Android source tree is located in a Git repository hosted by Google. The Git repository
- includes metadata for the Android source, including those related to changes to the source
- and the date they were made. This document describes how to download the source tree for a
- specific Android code-line.
+ The Android source tree is located in a Git repository hosted by Google. The
+ Git repository includes metadata for the Android source, including those
+ related to changes to the source and the date they were made. This document
+ describes how to download the source tree for a specific Android code-line.
</p>
<p>
To instead start with a factory image for a specific device, see
@@ -37,8 +37,9 @@
Installing Repo
</h2>
<p>
- Repo is a tool that makes it easier to work with Git in the context of Android. For more
- information about Repo, see the <a href="../develop/repo.html">Repo Command Reference</a>.
+ Repo is a tool that makes it easier to work with Git in the context of
+ Android. For more information about Repo, see the
+ <a href="../develop/repo.html">Repo Command Reference</a>.
</p>
<p>
To install Repo:
@@ -46,8 +47,8 @@
<ol>
<li>
<p>
- Make sure you have a bin/ directory in your home directory and that it is included in
- your path:
+ Make sure you have a <code>bin/</code> directory in your home directory
+ and that it is included in your path:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir ~/bin</code>
@@ -65,25 +66,30 @@
</li>
</ol>
<p>
- For version 1.21, the SHA-1 checksum for repo is b8bd1804f432ecf1bab730949c82b93b0fc5fede
+ For version 1.21, the SHA-1 checksum for repo is
+ <code>b8bd1804f432ecf1bab730949c82b93b0fc5fede</code>.
</p>
<p>
- For version 1.22, the SHA-1 checksum for repo is da0514e484f74648a890c0467d61ca415379f791
+ For version 1.22, the SHA-1 checksum for repo is
+ <code>da0514e484f74648a890c0467d61ca415379f791</code>.
</p>
<p>
- For version 1.23, the SHA-256 checksum for repo is e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5
+ For version 1.23, the SHA-256 checksum for repo is
+ <code>e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5</code>.
</p>
<h2 id="initializing-a-repo-client">
Initializing a Repo client
</h2>
<p>
- After installing Repo, set up your client to access the Android source repository:
+ After installing Repo, set up your client to access the Android source
+ repository:
</p>
<ol>
<li>
<p>
- Create an empty directory to hold your working files. If you're using MacOS, this has to
- be on a case-sensitive filesystem. Give it any name you like:
+ Create an empty directory to hold your working files. If you're using
+ MacOS, this has to be on a case-sensitive filesystem. Give it any name you
+ like:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir WORKING_DIRECTORY</code>
@@ -92,11 +98,11 @@
</li>
<li>
<p>
- Configure git with your real name and email address. To use the Gerrit code-review tool,
- you will need an email address that is connected with a <a href=
- "https://www.google.com/accounts">registered Google account</a>. Make sure this is a live
- address at which you can receive messages. The name that you provide here will show up in
- attributions for your code submissions.
+ Configure git with your real name and email address. To use the Gerrit
+ code-review tool, you will need an email address that is connected with a <a href=
+ "https://www.google.com/accounts">registered Google account</a>. Make sure
+ this is a live address at which you can receive messages. The name that
+ you provide here will show up in attributions for your code submissions.
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">git config --global user.name "Your Name"</code>
@@ -105,17 +111,18 @@
</li>
<li>
<p>
- Run <code>repo init</code> to bring down the latest version of Repo with all its most
- recent bug fixes. You must specify a URL for the manifest, which specifies where the
- various repositories included in the Android source will be placed within your working
- directory.
+ Run <code>repo init</code> to bring down the latest version of Repo with
+ all its most recent bug fixes. You must specify a URL for the manifest,
+ which specifies where the various repositories included in the Android
+ source will be placed within your working directory.
</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo init -u https://android.googlesource.com/platform/manifest
</pre>
<p>
- To check out a branch other than "master", specify it with <code>-b</code>. For a list of branches, see
- <a href="../start/build-numbers.html#source-code-tags-and-builds">Source Code Tags and Builds</a>.
+ To check out a branch other than "master", specify it with <code>-b</code>.
+ For a list of branches, see <a href="../start/build-numbers.html#source-code-tags-and-builds">
+ Source Code Tags and Builds</a>.
</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
@@ -123,38 +130,41 @@ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1
</li>
</ol>
<p>
- A successful initialization will end with a message stating that Repo is initialized in your
- working directory. Your client directory should now contain a <code>.repo</code> directory
- where files such as the manifest will be kept.
+ A successful initialization will end with a message stating that Repo is
+ initialized in your working directory. Your client directory should now
+ contain a <code>.repo</code> directory where files such as the manifest will
+ be kept.
</p>
<h2 id="getting-the-files">
Downloading the Android source tree
</h2>
<p>
- To pull down the Android source tree to your working directory from the repositories as
- specified in the default manifest, run
+ To pull down the Android source tree to your working directory from the
+ repositories as specified in the default manifest, run
</p>
<pre class="devsite-terminal devsite-click-to-copy">repo sync</pre>
<p>
- The Android source files will be located in your working directory under their project names.
- The initial sync operation will take an hour or more to complete. For more about <code>repo
- sync</code> and other Repo commands, see <a href="../develop/index.html">Developing</a>.
+ The Android source files will be located in your working directory under their
+ project names. The initial sync operation will take an hour or more to
+ complete. For more about <code>repo sync</code> and other Repo commands, see
+ <a href="../develop/index.html">Developing</a>.
</p>
<h2 id="using-authentication">
Using Authentication
</h2>
<p>
- By default, access to the Android source code is anonymous. To protect the servers against
- excessive usage, each IP address is associated with a quota.
+ By default, access to the Android source code is anonymous. To protect the
+ servers against excessive usage, each IP address is associated with a quota.
</p>
<p>
- When sharing an IP address with other users (e.g. when accessing the source repositories from
- beyond a NAT firewall), the quotas can trigger even for regular usage patterns (e.g. if many
- users sync new clients from the same IP address within a short period).
+ When sharing an IP address with other users (e.g. when accessing the source
+ repositories from beyond a NAT firewall), the quotas can trigger even for
+ regular usage patterns (e.g. if many users sync new clients from the same IP
+ address within a short period).
</p>
<p>
- In that case, it is possible to use authenticated access, which then uses a separate quota
- for each user, regardless of the IP address.
+ In that case, it is possible to use authenticated access, which then uses a
+ separate quota for each user, regardless of the IP address.
</p>
<p>
The first step is to create a password with <a href=
@@ -162,10 +172,11 @@ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1
and follow the instructions on the password generator page.
</p>
<p>
- The second step is to force authenticated access, by using the following manifest URI:
- <code>https://android.googlesource.com/a/platform/manifest</code>. Notice how the
- <code>/a/</code> directory prefix triggers mandatory authentication. You can convert an
- existing client to use mandatory authentication with the following command:
+ The second step is to force authenticated access by using the following
+ manifest URI: <code>https://android.googlesource.com/a/platform/manifest</code>.
+ Notice how the <code>/a/</code> directory prefix triggers mandatory
+ authentication. You can convert an existing client to use mandatory
+ authentication with the following command:
</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo init -u https://android.googlesource.com/a/platform/manifest
@@ -174,18 +185,20 @@ repo init -u https://android.googlesource.com/a/platform/manifest
Troubleshooting network issues
</h2>
<p>
- When downloading from behind a proxy (which is common in some corporate environments), it
- might be necessary to explicitly specify the proxy that is then used by repo:
+ When downloading from behind a proxy (which is common in some corporate
+ environments), it might be necessary to explicitly specify the proxy that is
+ then used by Repo:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">export HTTP_PROXY=http://&lt;proxy_user_id&gt;:&lt;proxy_password&gt;@&lt;proxy_server&gt;:&lt;proxy_port&gt;</code>
<code class="devsite-terminal">export HTTPS_PROXY=http://&lt;proxy_user_id&gt;:&lt;proxy_password&gt;@&lt;proxy_server&gt;:&lt;proxy_port&gt;</code>
</pre>
<p>
- More rarely, Linux clients experience connectivity issues, getting stuck in the middle of
- downloads (typically during "Receiving objects"). It has been reported that tweaking the
- settings of the TCP/IP stack and using non-parallel commands can improve the situation. You
- need root access to modify the TCP setting:
+ More rarely, Linux clients experience connectivity issues, getting stuck in
+ the middle of downloads (typically during "Receiving objects"). It has been
+ reported that tweaking the settings of the TCP/IP stack and using non-parallel
+ commands can improve the situation. You need root access to modify the TCP
+ setting:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">sudo sysctl -w net.ipv4.tcp_window_scaling=0</code>
@@ -195,15 +208,17 @@ repo init -u https://android.googlesource.com/a/platform/manifest
Using a local mirror
</h2>
<p>
- When using several clients, especially in situations where bandwidth is scarce, it is better
- to create a local mirror of the entire server content, and to sync clients from that mirror
- (which requires no network access). The download for a full mirror is smaller than the
- download of two clients, while containing more information.
+ When using several clients, especially in situations where bandwidth is
+ scarce, it is better to create a local mirror of the entire server content,
+ and to sync clients from that mirror (which requires no network access). The
+ download for a full mirror is smaller than the download of two clients, while
+ containing more information.
</p>
<p>
- These instructions assume that the mirror is created in <code>/usr/local/aosp/mirror</code>.
- The first step is to create and sync the mirror itself. Notice the <code>--mirror</code> flag, which
- can be specified only when creating a new client:
+ These instructions assume that the mirror is created in
+ <code>/usr/local/aosp/mirror</code>. The first step is to create and sync the
+ mirror itself. Notice the <code>--mirror</code> flag, which can be specified
+ only when creating a new client:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir -p /usr/local/aosp/mirror</code>
@@ -212,8 +227,8 @@ repo init -u https://android.googlesource.com/a/platform/manifest
<code class="devsite-terminal">repo sync</code>
</pre>
<p>
- Once the mirror is synced, new clients can be created from it. Note that it's important to
- specify an absolute path:
+ Once the mirror is synced, new clients can be created from it. Note that it's
+ important to specify an absolute path:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir -p /usr/local/aosp/master</code>
@@ -222,8 +237,8 @@ repo init -u https://android.googlesource.com/a/platform/manifest
<code class="devsite-terminal">repo sync</code>
</pre>
<p>
- Finally, to sync a client against the server, the mirror needs to be synced against the
- server, then the client against the mirror:
+ Finally, to sync a client against the server, the mirror needs to be synced
+ against the server, then the client against the mirror:
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">cd /usr/local/aosp/mirror</code>
@@ -232,23 +247,23 @@ repo init -u https://android.googlesource.com/a/platform/manifest
<code class="devsite-terminal">repo sync</code>
</pre>
<p>
- It's possible to store the mirror on a LAN server and to access it over NFS, SSH or Git. It's
- also possible to store it on a removable drive and to pass that drive around between users or
- between machines.
+ It's possible to store the mirror on a LAN server and to access it over NFS,
+ SSH or Git. It's also possible to store it on a removable drive and to pass
+ that drive around between users or between machines.
</p>
<h2 id="verifying-git-tags">
Verifying Git tags
</h2>
<p>
- Load the following public key into your GnuPG key database. The key is used to sign annotated
- tags that represent releases.
+ Load the following public key into your GnuPG key database. The key is used to
+ sign annotated tags that represent releases.
</p>
<pre class="devsite-terminal devsite-click-to-copy">
gpg --import
</pre>
<p>
- Copy and paste the key below, then enter EOF (Ctrl-D) to end the input and process the
- keys.
+ Copy and paste the key below, then enter EOF (Ctrl-D) to end the input and
+ process the keys.
</p>
<pre class="devsite-click-to-copy">
-----BEGIN PGP PUBLIC KEY BLOCK-----
@@ -288,10 +303,6 @@ EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
<pre class="devsite-terminal devsite-click-to-copy">
git tag -v TAG_NAME
</pre>
-<p>
- If you haven't <a href="initializing.html#optimizing-a-build-environment">set
- up ccache</a> yet, now would be a good time to do it.
-</p>
</body>
</html>
diff --git a/en/setup/build/initializing.html b/en/setup/build/initializing.html
index 503a14ed..c68f0773 100644
--- a/en/setup/build/initializing.html
+++ b/en/setup/build/initializing.html
@@ -57,9 +57,8 @@ environment</h2>
These instructions apply to all branches, including <code>master</code>.
</p>
<p>The Android build is routinely tested in house on recent versions of
- Ubuntu LTS (14.04), but most distributions should have the required
- build tools available. Reports of successes or failures on other
- distributions are welcome.
+ Ubuntu LTS (14.04) and Debian testing. Most other distributions should
+ have the required build tools available.
</p>
<p>
For Gingerbread (2.3.x) and newer versions, including the <code>master</code>
@@ -148,11 +147,11 @@ environment</h2>
<code class="devsite-terminal">sudo update-alternatives --config java</code>
<code class="devsite-terminal">sudo update-alternatives --config javac</code>
</pre>
-<p>
- If, during a build, you encounter version errors for Java, set its
- path as described in the <a href="building.html#wrong-java-version">Wrong
- Java Version</a> section.
-</p>
+<aside class="note">
+ <b>Note:</b> If, during a build, you encounter version errors for Java, see
+ <a href="building.html#wrong-java-version">Wrong Java version</a> for likely
+ causes and solutions.
+ </aside>
<h3 id="installing-required-packages-ubuntu-1404">Installing required packages
(Ubuntu 14.04)</h3>
@@ -272,10 +271,10 @@ image</h3>
<p>
You can create a case-sensitive filesystem within your existing Mac OS
environment using a disk image. To create the image, launch Disk
- Utility and select "New Image". A size of 25GB is the minimum to
+ Utility and select <strong>New Image</strong>. A size of 25GB is the minimum to
complete the build; larger numbers are more future-proof. Using sparse images
saves space while allowing to grow later as the need arises. Be sure to select
- "case sensitive, journaled" as the volume format.
+ <strong>case sensitive, journaled</strong> as the volume format.
</p>
<p>
You can also create it from a shell with the following command:
diff --git a/en/setup/build/jack.html b/en/setup/build/jack.html
index 5d32cb3e..494aaca0 100644
--- a/en/setup/build/jack.html
+++ b/en/setup/build/jack.html
@@ -23,43 +23,20 @@
<aside class="warning"><strong>Warning:</strong> As of this
<a href="https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html" class="external">March
-14, 2017 announcement</a>, the Jack toolchain is deprecated. While you may
-continue to use Jack, we strongly encourage using the latest
-<a href="https://developer.android.com/studio/preview/index.html" class="external">preview
-version of Android Studio</a> instead, which provides improved support for
-<a href="https://developer.android.com/studio/preview/features/java8-support.html" class="external">Java
-8 language features</a> built into the default toolchain.</aside>
-
-<p>Jack is an Android toolchain that compiles Java source into Android dex
-bytecode. It replaces the previous Android toolchain that consisted of multiple
-tools such as javac, ProGuard, jarjar, and dx. As Jack is the default Android
-build toolchain for Android 6.x, you don’t have to do anything differently to
+14, 2017 announcement</a>, the Jack toolchain is deprecated. Jack was the default Android
+build toolchain for Android 6.0&ndash;8.1.</aside>
+
+<p>Jack is an Android toolchain that compiled Java source into Android dex
+bytecode. You don’t have to do anything differently to
use Jack&mdash;just use your standard makefile commands to compile the tree or
-your project.</p>
+your project. Android 8.1 is the last release that uses Jack.</p>
<h2 id="overview">About Jack</h2>
-<p>The Jack toolchain provides the following advantages:</p>
+<p>Jack works as follows:</p>
<img src="../images/jack_overview.png" alt="Jack overview"/>
<figcaption><strong>Figure 1.</strong> Jack overview.</figcaption>
-<ul>
-<li><strong>Completely open source</strong>. Jack is available in AOSP and users
-are welcome to contribute.</li>
-<li><strong>Speeds compilation time</strong>. Jack has specific support for
-reducing compilation time using pre-dexing, incremental compilation, and a Jack
-compilation server.</li>
-<li><strong>Handles shrinking, obfuscation, repackaging, and multidex</strong>.
-Using a separate package (such as ProGuard) is no longer necessary.</li>
-</ul>
-
-<p>As of Android 7.0, Jack supports code coverage with JaCoCo. For details,
-refer to
-<a href="https://android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-code-coverage.md" class="external">Code
-Coverage with JaCoCo</a> and
-<a href="https://developer.android.com/preview/j8-jack.html" class="external">Java
-8 Language Features</a>.</p>
-
<h3 id=jack_library>Jack library format</h3>
<p>Jack has its own .jack file format that contains the pre-compiled dex code
@@ -81,7 +58,7 @@ library.</figcaption>
<aside class="note"><strong>Note:</strong> The following instructions apply only
to using Jack in Android 6.x; for instructions on using Jack in Android 7.x and
-higher, refer to
+8.x, refer to
<a href="https://android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-server.md" class="external">Jack
server documentation</a>.</aside>
@@ -184,17 +161,6 @@ contained in <code>jack-$USER</code> of your temporary directory
(<code>/tmp</code> or <code>$TMPDIR</code>).
</td>
</tr>
-<tr>
-<td>Other issues</td>
-<td>To report bugs or request features, use the public issue tracker at
-<a href="http://b.android.com" class="external">http://b.android.com</a>.
-Use the
-<a href="https://code.google.com/p/android/issues/entry?template=Jack%20bug%20report" class="external">Jack
-tool bug report</a> or
-<a href="https://code.google.com/p/android/issues/entry?template=Jack%20feature%20request" class="external">Jack
-tool feature request</a> templates and remember to attach the Jack log to the
-bug report.</td>
-</tr>
</table>
<h3 id="jack_log">Finding the Jack log</h3>
@@ -344,8 +310,7 @@ error.</aside>
<p>Jack uses jarjar configuration files to do repackaging. While Jack is
compatible with "rule" rule types, it is not compatible with "zap" or
-"keep" rule types. If you need "zap" or "keep" rule types, file a feature
-request with a description of how you use the feature in your app.</p>
+"keep" rule types.</p>
<h3 id=multidex_support>Multidex support</h3>
diff --git a/en/setup/build/known-issues.html b/en/setup/build/known-issues.html
index e72de555..ef229a28 100644
--- a/en/setup/build/known-issues.html
+++ b/en/setup/build/known-issues.html
@@ -21,29 +21,31 @@
limitations under the License.
-->
- <p>Even with our best care, small problems sometimes slip in. This page details
- some known issues you may encounter while trying to sync the Android source code.
+<p>Even with our best care, small problems sometimes slip in. This page details
+some known issues you may encounter while trying to sync the Android source code
+.</p>
<h2 id="difficulties-syncing-the-source-code-proxy-issues">
Difficulties syncing the source code (proxy issues)</h2>
-<p><strong>Symptom</strong>: <code>repo init</code> or <code>repo sync</code> fail with http errors,
-typically 403 or 500.</p>
-<p><strong>Cause</strong>: There are quite a few possible causes, most often
+<p><strong>Symptom:</strong> <code>repo init</code> or <code>repo sync</code>
+fail with http errors, typically 403 or 500.</p>
+<p><strong>Cause:</strong> There are quite a few possible causes, most often
related to http proxies, which have difficulties handling the
large amounts of data getting transferred.</p>
-<p><strong>Fix</strong>: While there's no general solution, using python 2.7
+<p><strong>Fix:</strong> While there's no general solution, using python 2.7
and explicitly using <code>repo sync -j1</code> have been reported to
improve the situation for some users.</p>
<h2 id="difficulties-syncing-the-source-tree-dns-issues">
Difficulties syncing the source tree (DNS issues)</h2>
-<p><strong>Symptom</strong>: When running <code>repo sync</code>, the process fails with
-various errors related to not recognizing the hostname. One such
-error is <code>&lt;urlopen error [Errno -2] Name or service not known&gt;</code>.</p>
-<p><strong>Cause</strong>: Some DNS systems have a hard time coping with the
+<p><strong>Symptom:</strong> When running <code>repo sync</code>, the process
+fails with various errors related to not recognizing the hostname. One such
+error is <code>&lt;urlopen error [Errno -2] Name or service not known&gt;</code>
+.</p>
+<p><strong>Cause:</strong> Some DNS systems have a hard time coping with the
high number of queries involved in syncing the source tree
(there can be several hundred requests in a worst-case scenario).</p>
-<p><strong>Fix</strong>: Manually resolve the relevant hostnames, and hard-code
+<p><strong>Fix:</strong> Manually resolve the relevant hostnames, and hard-code
those results locally.</p>
<p>You can resolve them with the <code>nslookup</code> command, which will give
you one numerical IP address for each of those (typically in the
@@ -64,12 +66,12 @@ to resolve those hostnames again and edit <code>etc/hosts</code> accordingly.</p
<h2 id="difficulties-syncing-the-source-tree-tcp-issues">
Difficulties syncing the source tree (TCP issues)</h2>
-<p><strong>Symptom</strong>: <code>repo sync</code> hangs while syncing, often when it's
+<p><strong>Symptom:</strong> <code>repo sync</code> hangs while syncing, often when it's
completed 99% of the sync.</p>
-<p><strong>Cause</strong>: Some settings in the TCP/IP stack cause difficulties
+<p><strong>Cause:</strong> Some settings in the TCP/IP stack cause difficulties
in some network environments, such that <code>repo sync</code> neither completes
nor fails.</p>
-<p><strong>Fix</strong>: On Linux, enter the command:</p>
+<p><strong>Fix:</strong> On Linux, enter the command:</p>
<pre class="devsite-terminal devsite-click-to-copy">sysctl -w net.ipv4.tcp_window_scaling=0</pre>
<p>On MacOS, disable the rfc1323 extension in the network settings.</p>
diff --git a/en/setup/build/running.html b/en/setup/build/running.html
index 6d6041f9..d293e645 100644
--- a/en/setup/build/running.html
+++ b/en/setup/build/running.html
@@ -228,7 +228,7 @@ using <code>fastboot format cache</code> followed by
</li>
</ul>
-<aside class="note"><strong>Note</strong>: Re-locking the bootloading on a
+<aside class="note"><strong>Note:</strong> Re-locking the bootloading on a
Motorola Xoom erases user data (including the shared USB data).</aside>
<h2 id="flash-unlock">Using Flash Unlock</h2>
@@ -405,7 +405,7 @@ binaries</a>.
</tbody>
</table>
-<aside class="note"><strong>Note</strong>: Do not use Android 4.1.1 on a Nexus
+<aside class="note"><strong>Note:</strong> Do not use Android 4.1.1 on a Nexus
7 originally sold with Android 4.1.2 or newer.</aside>
<h2 id="flashing-a-device">Flashing a device</h2>
@@ -428,7 +428,7 @@ device; this is useful for your first time flashing a particular device but is
otherwise unnecessary.</li>
</ol>
-<aside class="note"><strong>Note</strong>: Filesystems created via
+<aside class="note"><strong>Note:</strong> Filesystems created via
<code>fastboot</code> on Motorola Xoom do not function optimally. We recommend
re-creating filesystems through recovery using <code>$ adb reboot
recovery</code>. While in recovery, open the menu (press Power + Volume Up),
diff --git a/en/setup/contribute/report-bugs.html b/en/setup/contribute/report-bugs.html
index 85ea2fd4..b43ff449 100644
--- a/en/setup/contribute/report-bugs.html
+++ b/en/setup/contribute/report-bugs.html
@@ -156,12 +156,6 @@ class="material-icons">bug_report</i></a></td>
<td><a href="https://issuetracker.google.com/issues/new?component=316045"><i
class="material-icons">bug_report</i></a></td>
</tr>
-
- <tr>
- <td><a href="https://issuetracker.google.com/issues?q=componentid:192694%2B">Jack</a></td>
- <td><a href="https://issuetracker.google.com/issues/new?component=192694"><i
-class="material-icons">bug_report</i></a></td>
- </tr>
<tr>
<td><a href="https://issuetracker.google.com/issues?q=componentid:192710%2B">Libcore</a></td>
<td><a href="https://issuetracker.google.com/issues/new?component=192710"><i
diff --git a/en/setup/develop/new-device.html b/en/setup/develop/new-device.html
index bd869f97..6f7b3e72 100644
--- a/en/setup/develop/new-device.html
+++ b/en/setup/develop/new-device.html
@@ -23,7 +23,7 @@
-<p>Use the information in this page to create the Makefiles for your device and
+<p>Use the information in this page to create the makefiles for your device and
product. Please note, unlike the other pages in this section, the contents here
are applicable only when creating an entirely new device type and are intended
for company build and product teams only.</p>
@@ -51,7 +51,7 @@ simplifying maintenance.</p>
product such as the modules to build, locales supported, and the
configuration for various locales. In other words, this is the name
of the overall product. Product-specific variables are defined in
- product definition Makefiles. A product can inherit from other
+ product definition makefiles. A product can inherit from other
product definitions, which simplifies maintenance. A common method
is to create a base product that contains features that apply for
all products, then creating product variants based on that base
@@ -187,30 +187,30 @@ organize your source files and build the way you see fit.
<p>
Nexus 6 was implemented with a main device configuration named
<code>shamu</code>. From this device configuration, a product is created with a
-product definition Makefile that declares product-specific information about
+product definition makefile that declares product-specific information about
the device such as the name and model. You can view the
<code>device/moto/shamu</code> directory to see how all of this is setup.
</p>
<h3 id="makefiles">Write the Makefiles</h3>
<p>
- The following steps describe how to set up product Makefiles in a way similar
+ The following steps describe how to set up product makefiles in a way similar
to that of the Nexus 6 product line:
</p>
<ol>
<li>Create a <code>device/&lt;company_name&gt;/&lt;device_name&gt;</code> directory for your
product. For example, <code>device/moto/shamu</code>. This directory will contain source code
- for your device along with the Makefiles to build them.
+ for your device along with the makefiles to build them.
</li>
- <li>Create a <code>device.mk</code> Makefile that declares the files and modules needed for the
+ <li>Create a <code>device.mk</code> makefile that declares the files and modules needed for the
device. For an example, see <code>device/moto/shamu/device.mk</code>.
</li>
- <li>Create a product definition Makefile to create a specific product based on the device. The
- following Makefile is taken from <code>device/moto/shamu/aosp_shamu.mk</code> as an example.
+ <li>Create a product definition makefile to create a specific product based on the device. The
+ following makefile is taken from <code>device/moto/shamu/aosp_shamu.mk</code> as an example.
Notice the product is inheriting from the
<code>device/moto/shamu/device.mk</code> and
- <code>vendor/moto/shamu/device-vendor.mk</code> files via the Makefile while
+ <code>vendor/moto/shamu/device-vendor.mk</code> files via the makefile while
also declaring the product-specific information such as name, brand, and model.
<pre class="devsite-click-to-copy">
@@ -235,12 +235,12 @@ PRODUCT_PACKAGES += \
<p>
See <a href="#prod-def">Product Definition Variables</a> for additional product-specific
- variables you can add to your Makefiles.
+ variables you can add to your makefiles.
</p>
</li>
- <li>Create an <code>AndroidProducts.mk</code> file that points to the product's Makefiles. In
- this example, only the product definition Makefile is needed. The example below is from
+ <li>Create an <code>AndroidProducts.mk</code> file that points to the product's makefiles. In
+ this example, only the product definition makefile is needed. The example below is from
<code>device/moto/shamu/AndroidProducts.mk</code>:
<pre class="devsite-click-to-copy">
#
@@ -259,7 +259,7 @@ PRODUCT_MAKEFILES := \
</pre>
</li>
- <li>Create a <code>BoardConfig.mk</code> Makefile that contains board-specific configurations.
+ <li>Create a <code>BoardConfig.mk</code> makefile that contains board-specific configurations.
For an example, see <code>device/moto/shamu/BoardConfig.mk</code>.
</li>
@@ -276,7 +276,7 @@ add_lunch_combo <var>&lt;PRODUCT_NAME&gt;</var>-userdebug
</ol>
<h3 id="prod-def">Set Product Definition Variables</h3>
<p>
- Product-specific variables are defined in the product's Makefile. Variables maintained in a
+ Product-specific variables are defined in the product's makefile. Variables maintained in a
product definition files include:
</p>
<table>
@@ -328,7 +328,7 @@ add_lunch_combo <var>&lt;PRODUCT_NAME&gt;</var>-userdebug
<td>
List of words like <code>source_path:destination_path</code>. The file at the source path
should be copied to the destination path when building this product. The rules for the copy
- steps are defined in config/Makefile
+ steps are defined in config/makefile
</td>
<td></td>
</tr>
diff --git a/en/setup/start/build-numbers.html b/en/setup/start/build-numbers.html
index 21519cb9..fb2f2d39 100644
--- a/en/setup/start/build-numbers.html
+++ b/en/setup/start/build-numbers.html
@@ -209,6 +209,7 @@ API levels and NDK releases provided for convenience:</p>
<li>The last letter identifies individual versions related to the same date
code, sequentially starting with A (which is implicit and usually omitted for
brevity.</li>
+</ul>
<h2 id="source-code-tags-and-builds">Source Code Tags and Builds</h2>
<p>Starting with Donut, the exact list of tags and builds is in the
diff --git a/en/setup/start/faqs.html b/en/setup/start/faqs.html
index f8611db8..fed455dc 100644
--- a/en/setup/start/faqs.html
+++ b/en/setup/start/faqs.html
@@ -26,7 +26,7 @@
<a name="top"></a>
<p>
This page provides answers to Frequently Asked Questions (FAQs). For answers
- other common questions, refer to
+ to other common questions, refer to
<a href="http://developer.android.com/guide/faq/index.html" class="external">Android
FAQs</a> on developer.android.com.
</p>
diff --git a/en/setup/start/licenses.html b/en/setup/start/licenses.html
index 4c1a3b82..49865996 100644
--- a/en/setup/start/licenses.html
+++ b/en/setup/start/licenses.html
@@ -76,7 +76,7 @@
LGPL.
</p>
<p>
- Android is about freedom and choice. The purpose of Android is promote
+ Android is about freedom and choice. The purpose of Android is to promote
openness in the mobile world, and we don't believe it's possible to predict or
dictate all the uses to which people will want to put our software. So, while
we encourage everyone to make devices that are open and modifiable, we don't