aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--en/_index.yaml2
-rw-r--r--en/compatibility/cts/secure-element.md22
-rw-r--r--en/devices/_toc-performance.yaml2
-rw-r--r--en/devices/architecture/hidl/services.html17
-rw-r--r--en/devices/tech/connect/carrier-wifi.md53
-rw-r--r--en/devices/tech/perf/lmkd.md197
-rw-r--r--en/images/android_stack.pngbin91863 -> 81301 bytes
-rw-r--r--en/security/bulletin/2018.html4
-rw-r--r--en/security/bulletin/index.html4
-rw-r--r--en/security/bulletin/pixel/2018.html4
-rw-r--r--en/security/bulletin/pixel/index.html4
-rw-r--r--en/setup/start/p-release-notes.md60
-rw-r--r--zh-cn/compatibility/cts/interpret.html4
-rw-r--r--zh-cn/compatibility/cts/run.html19
-rw-r--r--zh-cn/compatibility/cts/setup.html16
-rw-r--r--zh-cn/compatibility/cts/verifier.html3
-rw-r--r--zh-cn/compatibility/index.html89
-rw-r--r--zh-cn/devices/architecture/hidl-cpp/index.html16
-rw-r--r--zh-cn/devices/architecture/vintf/index.html13
-rw-r--r--zh-cn/devices/architecture/vndk/enabling.html2
-rw-r--r--zh-cn/devices/audio/latency/app.html142
-rw-r--r--zh-cn/devices/audio/latency/contrib.html107
-rw-r--r--zh-cn/devices/audio/latency/design.html186
-rw-r--r--zh-cn/devices/audio/latency/measure.html132
-rw-r--r--zh-cn/devices/audio/latency/measurements.html448
-rw-r--r--zh-cn/devices/sensors/power-use.html2
-rw-r--r--zh-cn/devices/sensors/suspend-mode.html2
-rw-r--r--zh-cn/devices/sensors/versioning.html4
-rw-r--r--zh-cn/devices/tech/config/carrier.html2
-rw-r--r--zh-cn/devices/tech/connect/block-numbers.html3
-rw-r--r--zh-cn/devices/tech/debug/index.html2
-rw-r--r--zh-cn/devices/tech/ota/nonab/device_code.html6
-rw-r--r--zh-cn/devices/tech/perf/boot-times.html8
-rw-r--r--zh-cn/devices/tech/power/index.html2
-rw-r--r--zh-cn/security/bulletin/2018-08-01.html625
-rw-r--r--zh-cn/security/bulletin/2018.html37
-rw-r--r--zh-cn/security/bulletin/index.html64
-rw-r--r--zh-cn/security/bulletin/pixel/2018-08-01.html508
-rw-r--r--zh-cn/security/bulletin/pixel/2018.html24
-rw-r--r--zh-cn/security/bulletin/pixel/index.html24
-rw-r--r--zh-cn/security/selinux/customize.html14
-rw-r--r--zh-cn/setup/build/devices.html36
-rw-r--r--zh-cn/setup/build/running.html2
-rw-r--r--zh-cn/setup/start/brands.html4
-rw-r--r--zh-cn/setup/start/site-updates.html52
45 files changed, 2747 insertions, 220 deletions
diff --git a/en/_index.yaml b/en/_index.yaml
index a359a2f3..2d69f437 100644
--- a/en/_index.yaml
+++ b/en/_index.yaml
@@ -80,7 +80,7 @@ landing_page:
- heading: Site Updates
description: >
This site has been overhauled to make it easier for you to navigate,
- search, and read its ever-growing set of information. Check out our
+ search, and read its ever-growing set of information. Check out the
reorganized sections and new navigation.
buttons:
- label: August 6th, 2018
diff --git a/en/compatibility/cts/secure-element.md b/en/compatibility/cts/secure-element.md
index 0c3933b6..d7d04264 100644
--- a/en/compatibility/cts/secure-element.md
+++ b/en/compatibility/cts/secure-element.md
@@ -44,9 +44,7 @@ specification. These test cases require installation of a special applet, a Java
Card application on Secure Element, that
is used by the CTS application for communication. For installation, use the
sample applet found in
-[`CtsAndroidOmapiTestApplet.java`](https://android.googlesource.com/platform/cts/+/master/tests/tests/secure_element/sample_applet/src/com/android/cts/omapi/test/CtsAndroidOmapiTestApplet.java){: .external}
-and
-[`test.cap`](https://android.googlesource.com/platform/cts/+/master/tests/tests/secure_element/sample_applet/test.cap){: .external}.
+[`google-cardlet.cap`](https://android.googlesource.com/platform/cts/+/master/tests/tests/secure_element/sample_applet/uicc){: .external}.
To pass OMAPI test cases, the underlying Secure Element Service and the SE
should be capable of the following:
@@ -696,23 +694,27 @@ Create an instance of the applet under these AIDs:
**File name:** `google-cardlet.cap`
**Package AID:** 6F 6D 61 70 69 63 61 72 64 6C 65 74
-**Version:** 1.0
-**SHA1:** 5F72E0A073BA9E61A7358F2FE3F031
-**SHA256:** ECC1217AA0BC687DD89D5BB233F743
+**Version:** 1.63
+**Hash:** 5F72E0A073BA9E61A7358F2FE3F031A99F3F81E9
-**Module AIDs:**
+**Applets:**
6F 6D 61 70 69 4A 53 52 31 37 37 = SelectResponse module
6F 6D 61 70 69 43 61 63 68 69 6E 67 = XXLResponse module
**Imports:**
javacard.framework v1.3 - A0000000620101
-java.lang v1.0 - A0000000620001
+java.lang v1.0 - A0000000620001
+uicc.hci.framework v1.0 - A0000000090005FFFFFFFF8916010000
+uicc.hci.services.cardemulation v1.0 - A0000000090005FFFFFFFF8916020100
+uicc.hci.services.connectivity v1.0 - A0000000090005FFFFFFFF8916020200
-**Size on card:** 4463
+**Size on card:** 39597
#### 2. Installation steps
-Load the `google-cardlet.cap` file to the SIM card using the appropriate
+Load the
+[`google-cardlet.cap`](https://android.googlesource.com/platform/cts/+/master/tests/tests/secure_element/sample_applet/uicc){: .external}
+file to the SIM card using the appropriate
procedure (check with your SE manufacturers).
Run installation command for each applet.
diff --git a/en/devices/_toc-performance.yaml b/en/devices/_toc-performance.yaml
index 83f31408..174534dd 100644
--- a/en/devices/_toc-performance.yaml
+++ b/en/devices/_toc-performance.yaml
@@ -11,6 +11,8 @@ toc:
path: /devices/tech/perf/apk-caching
- title: Boot Times
path: /devices/tech/perf/boot-times
+- title: LMKD in Userspace
+ path: /devices/tech/perf/lmkd
- title: Low RAM
path: /devices/tech/perf/low-ram
- title: Profile Guided Optimization (PGO)
diff --git a/en/devices/architecture/hidl/services.html b/en/devices/architecture/hidl/services.html
index c7ddd8f6..f441c8e2 100644
--- a/en/devices/architecture/hidl/services.html
+++ b/en/devices/architecture/hidl/services.html
@@ -168,14 +168,15 @@ or <code>oneway</code>. For an example, see "Asynchronous callbacks" in
<code>inout</code> parameters.</p>
<h3 id=limits>Per-transaction limits</h3>
-<p>Per-transaction limits may be imposed on the amount of data sent in HIDL
-methods and callbacks. The limits are yet to be determined but may be as small
-as 4K. Calls exceeding these limits return failure immediately. Another
-limitation is the resources available to the HIDL infrastructure to handle
-multiple simultaneous transactions. Multiple transactions can be in-flight
-simultaneously due to multiple threads or processes sending calls to a process
-or multiple <code>oneway</code> calls that are not handled quickly by the
-receiving process.</p>
+<p>Per-transaction limits are not imposed on the amount of data sent in HIDL
+methods and callbacks. However, calls exceeding 4KB per transaction are
+considered excessive. If this is seen, re-architecting the given HIDL interface
+is recommended. Another limitation is the resources available to the HIDL
+infrastructure to handle multiple simultaneous transactions. Multiple
+transactions can be in-flight simultaneously due to multiple threads or
+processes sending calls to a process or multiple <code>oneway</code> calls that
+are not handled quickly by the receiving process. The maximum total space
+available for all concurrent transactions is 1MB by default.</p>
<p>In a well-designed interface, exceeding these resource limitations should not
happen; if it does, the call which exceeded them may either block until
diff --git a/en/devices/tech/connect/carrier-wifi.md b/en/devices/tech/connect/carrier-wifi.md
index be25f4b9..9e96c391 100644
--- a/en/devices/tech/connect/carrier-wifi.md
+++ b/en/devices/tech/connect/carrier-wifi.md
@@ -34,15 +34,50 @@ Wi-Fi.
### Manufacturers
-In the carrier config manager, configure the following parameters, located in
-[`CarrierConfigManager.java`](https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java){: .external},
-for each carrier:
-
-+ `KEY_CARRIER_WIFI_STRING_ARRAY`: Base64-encoded Wi-Fi SSID.
-+ `IMSI_KEY_AVAILABILITY_INT`: Identifies whether the key used for IMSI
- encryption is available for WLAN or EPDG, or both.
-+ `IMSI_KEY_DOWNLOAD_URL_STRING`: URL from which the proto containing the
- public key of the carrier used for IMSI encryption is downloaded.
+In the carrier config manager, configure the following parameters for each
+carrier:
+
++ [`KEY_CARRIER_WIFI_STRING_ARRAY`](https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1606){: .external}:
+ A string array where each string entry is a Base64-encoded Wi-Fi SSID and
+ an EAP type separated by a comma, where the EAP type is an integer (refer to
+ [https://www.iana.org/assignments/eap-numbers/eap-numbers.xhtml](https://www.iana.org/assignments/eap-numbers/eap-numbers.xhtml){: .external}).
+ For example, the following configuration is for *SOME_SSID_NAME* using
+ **EAP-AKA** and *Some_Other_SSID* using **EAP-SIM**:
+
+ ```
+ config {
+ key: "carrier_wifi_string_array"
+ text_array {
+ item: "U09NRV9TU0lEX05BTUUK,23"
+ item: "U29tZV9PdGhlcl9TU0lECg==,18"
+ }
+ }
+ ```
+
++ [`IMSI_KEY_AVAILABILITY_INT`](https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1837){: .external}:
+ Identifies whether the key used for IMSI encryption is available for WLAN
+ (bit 1 is set), EPDG (bit 0 is set), or both (both bit 0 and bit 1 are
+ set). For example, the following configuration indicates that IMSI
+ encryption is available for WLAN but not for EPDG:
+
+ ```
+ config {
+ key: "imsi_key_availability_int"
+ int_value: 2
+ }
+ ```
+
++ [`IMSI_KEY_DOWNLOAD_URL_STRING`](https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1830){: .external}:
+ URL from which the proto containing the public key of the carrier used for
+ IMSI encryption is downloaded. For example, the following configuration
+ provides a specific URL:
+
+ ```
+ config {
+ key: "imsi_key_download_url_string"
+ text_value: "https://www.some_company_name.com:5555/some_directory_name/"
+ }
+ ```
### Carriers
diff --git a/en/devices/tech/perf/lmkd.md b/en/devices/tech/perf/lmkd.md
new file mode 100644
index 00000000..72ff452b
--- /dev/null
+++ b/en/devices/tech/perf/lmkd.md
@@ -0,0 +1,197 @@
+Project: /_project.yaml
+Book: /_book.yaml
+
+{% include "_versions.html" %}
+
+<!--
+ 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.
+-->
+
+# LMKD in Userspace
+
+This document describes the userspace lowmemorykiller daemon (`lmkd`) features
+added in Android {{ androidPVersionNumber }} and how to configure them.
+
+Historically, Android used in-kernel lowmemorykiller driver to handle memory
+pressure situations by killing non-essential processes. This mechanism is rigid
+and depends on hard-coded values. In addition, starting with kernel 4.12, the
+lowmemorykiller driver is excluded from the upstream kernel.
+
+The userspace `lmkd` process implements the same functionality but with already
+existing kernel mechanisms to detect and estimate memory pressure. It uses
+vmpressure events generated by the kernel to get notifications about memory
+pressure levels. It also can use memory cgroup features to limit memory resources
+allocated to each process based on its importance.
+
+
+# How to switch to userspace lmkd
+
+Starting in Android {{ androidPVersionNumber }}, userspace `lmkd` activates if an
+in-kernel lowmemorykiller driver is not detected. Note that userspace `lmkd`
+requires kernel support for memory cgroups. Therefore, to switch to userspace
+`lmkd` the kernel should be compiled with the following configuration settings:
+
+```
+CONFIG_ANDROID_LOW_MEMORY_KILLER=n
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+```
+
+# lmkd kill strategies
+
+`lmkd` supports new kill strategies based on vmpressure events, their severity,
+and other hints like swap utilization, as well as legacy mode in which `lmkd`
+makes kill decisions just as the kernel lowmemorykiller driver did.
+
+New kill strategies differ for low-memory vs high-performance devices. In cases
+of low-memory devices, the system should tolerate higher memory pressure as a
+normal mode of operation; on high-performance devices, memory pressure should be
+viewed as an abnormal situation that should be fixed before it affects overall
+performance. The `ro.config.low_ram` property allows for choosing one mode over
+the other. See [Low RAM Configuration](/devices/tech/perf/low-ram) for
+instructions on setting this property.
+
+In legacy mode, `lmkd` kill decisions are made based on free memory and file cache
+thresholds. This mode is enabled by setting the `ro.lmk.use_minfree_levels`
+property to `true`.
+
+
+# Configuring lmkd for specific device
+
+Configure `lmkd` with the following properties:
+
+<table>
+ <tr>
+ <th>Property</th>
+ <th>Use</th>
+ <th>Default Value</th>
+ </tr>
+ <tr>
+ <td><code>ro.config.low_ram</code>
+ </td>
+ <td>Choose between low-memory vs. high-performance device.
+ </td>
+ <td><code>false</code>
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.use_minfree_levels</code>
+ </td>
+ <td>Use free memory and file cache thresholds for making decisions when to
+ kill. This mode works the same way kernel lowmemorykiller driver used to
+ work.
+ </td>
+ <td><code>false</code>
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.low</code>
+ </td>
+ <td>The minimum oom_adj score for processes eligible to be killed at low
+ vmpressure level.
+ </td>
+ <td><code>1001</code><br>
+(disabled)
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.medium</code>
+ </td>
+ <td>The minimum oom_adj score for processes eligible to be killed at medium
+ vmpressure level.
+ </td>
+ <td><code>800</code><br>
+(cached or non-essential services)
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.critical</code>
+ </td>
+ <td>The minimum oom_adj score for processes eligible to be killed at critical
+ vmpressure level.
+ </td>
+ <td><code>0</code><br>
+(any process)
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.critical_upgrade</code>
+ </td>
+ <td>Enables upgrade to critical level.
+ </td>
+ <td><code>false</code>
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.upgrade_pressure</code>
+ </td>
+ <td>The maximum mem_pressure at which level will be upgraded because system
+ is swapping too much.
+ </td>
+ <td><code>100</code><br>
+(disabled)
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.downgrade_pressure</code>
+ </td>
+ <td>The minimum mem_pressure* at which vmpressure event will be ignored
+ because enough free memory is still available.
+ </td>
+ <td><code>100</code><br>
+(disabled)
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.kill_heaviest_task</code>
+ </td>
+ <td>Kill heaviest eligible task (best decision) vs. any eligible task (fast
+ decision).</td>
+ <td><code>true</code>
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.kill_timeout_ms</code>
+ </td>
+ <td>Duration in ms after a kill when no additional kill will be done.
+ </td>
+ <td><code>0</code><br>
+(disabled)
+ </td>
+ </tr>
+ <tr>
+ <td><code>ro.lmk.debug</code>
+ </td>
+ <td>Enable <code>lmkd</code> debug logs.
+ </td>
+ <td><code>false</code>
+ </td>
+ </tr>
+</table>
+
+*Note: *mem_pressure = RAM usage / RAM_and_swap usage in %
+
+Here is a device configuration example:
+
+```
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.lmk.low=1001 \
+ ro.lmk.medium=800 \
+ ro.lmk.critical=0 \
+ ro.lmk.critical_upgrade=false \
+ ro.lmk.upgrade_pressure=100 \
+ ro.lmk.downgrade_pressure=100 \
+ ro.lmk.kill_heaviest_task=true
+```
diff --git a/en/images/android_stack.png b/en/images/android_stack.png
index 16b792c5..9817a210 100644
--- a/en/images/android_stack.png
+++ b/en/images/android_stack.png
Binary files differ
diff --git a/en/security/bulletin/2018.html b/en/security/bulletin/2018.html
index 6b1d0b7a..ef673310 100644
--- a/en/security/bulletin/2018.html
+++ b/en/security/bulletin/2018.html
@@ -38,15 +38,13 @@ of all bulletins, see the <a href="/security/bulletin/index.html">Android Securi
</tr>
<tr>
<td><a href="/security/bulletin/2018-08-01.html">August 2018</a></td>
- <td>Coming soon
- <!--
+ <td>
<a href="/security/bulletin/2018-08-01.html">English</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
</td>
<td>August 6, 2018</td>
<td>2018-08-01<br>
diff --git a/en/security/bulletin/index.html b/en/security/bulletin/index.html
index ba3b35e7..40f49e56 100644
--- a/en/security/bulletin/index.html
+++ b/en/security/bulletin/index.html
@@ -70,15 +70,13 @@ Android Open Source Project (AOSP), the upstream Linux kernel, and system-on-chi
</tr>
<tr>
<td><a href="/security/bulletin/2018-08-01.html">August 2018</a></td>
- <td>Coming soon
- <!--
+ <td>
<a href="/security/bulletin/2018-08-01.html">English</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
<a href="/security/bulletin/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
</td>
<td>August 6, 2018</td>
<td>2018-08-01<br>
diff --git a/en/security/bulletin/pixel/2018.html b/en/security/bulletin/pixel/2018.html
index 665c7d0d..216c4f68 100644
--- a/en/security/bulletin/pixel/2018.html
+++ b/en/security/bulletin/pixel/2018.html
@@ -40,15 +40,13 @@ Bulletins</a> homepage.</p>
</tr>
<tr>
<td><a href="/security/bulletin/pixel/2018-08-01.html">August 2018</a></td>
- <td>Coming soon
- <!--
+ <td>
<a href="/security/bulletin/pixel/2018-08-01.html">English</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
</td>
<td>August 6, 2018</td>
<td>2018-08-05</td>
diff --git a/en/security/bulletin/pixel/index.html b/en/security/bulletin/pixel/index.html
index 0732810b..03a6d4ac 100644
--- a/en/security/bulletin/pixel/index.html
+++ b/en/security/bulletin/pixel/index.html
@@ -60,15 +60,13 @@ AOSP 24&ndash;48 hours after the Pixel&hairsp;/&hairsp;Nexus bulletin is release
</tr>
<tr>
<td><a href="/security/bulletin/pixel/2018-08-01.html">August 2018</a></td>
- <td>Coming soon
- <!--
+ <td>
<a href="/security/bulletin/pixel/2018-08-01.html">English</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
</td>
<td>August 6, 2018</td>
<td>2018-08-05</td>
diff --git a/en/setup/start/p-release-notes.md b/en/setup/start/p-release-notes.md
index cc5b6fce..70cd72c9 100644
--- a/en/setup/start/p-release-notes.md
+++ b/en/setup/start/p-release-notes.md
@@ -226,6 +226,23 @@ features and changes to requirements for previously released functionality.
## Settings
+### Better App Widgets
+
+The Android app widget framework now offers increased visibility into user
+interactions, specifically when a user deletes or manually adds widgets. This
+functionality comes by default with Launcher3.
+
+Manufacturers need to update their Launcher apps (which are shipped with devices)
+to support this feature if not based upon Launcher3. OEMs need to support the new
+[widgetFeatures API](https://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo#widgetFeatures){: .external}
+in their default Launcher.
+
+The API in itself does not guarantee that it will work end to end unless the
+launchers implement it as expected. AOSP includes a sample implementation. See
+the AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca for the sample code
+provided.
+
+
### Device State Change Notifications to Package Installers
A protected system broadcast can now be sent to apps that hold the
@@ -801,6 +818,49 @@ usage on the device since the last device boot. It provides additional
functionality such as socket tagging, separating foreground/background traffic
and per-UID firewall to block apps from network access depending on device state.
+### Restore to lower APIs
+
+Devices can now restore from future versions of the operating system. This is
+especially useful when users have upgraded their phones but then lost or broken
+them.
+
+If an OEM modifies the backup agents for any of the system packages (android,
+system, settings), those agents should handle restoring backups sets that were
+made on later versions of the platform without crashing and with restoring at
+least some data.
+
+Consider using a validator to check for invalid values of a given piece of
+backup data and only restore valid data, as done in
+`core/java/android/provider/SettingsValidators.java`.
+
+The feature is on by default. SettingsBackupAgent support for restoring from
+future versions can be turned off via
+`Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION`. No additional
+implementation is required unless the device manufacturer extends one of backup
+agents included in the ROM (or adds a custom one).
+
+This feature allows system restores from future versions of the platform;
+however, it’s reasonable to expect that the restored data won’t be complete. The
+following instructions apply to the following backup agents:
+
+- **PackageManagerBackupAgent**: Supports future versions of the backup data
+ via format versioning; extensions here MUST be compatible with current
+ restore code or follow instructions in the class, which include bumping the
+ proper constants.
+
+- **SystemBackupAgent**: `restoreAnyVersion = false` in Android this release
+ and higher. Doesn’t support restore from higher versions of the API.
+
+- **SettingsBackupAgent**: `restoreAnyVersion = true` starting in this release.
+ Partial support exists via validators. A setting can be restored from a
+ higher API version if a validator for it exists in the target OS. Adding any
+ setting should be accompanied by its validator. Check class for details.
+
+- Any **custom backup agent** included in the ROM should increase its version
+ code any time an incompatible change is made to the backup data format and
+ ensure `restoreAnyVersion = false` (the default) if their agent is not
+ prepared to deal with backup data from a future version of their code.
+
## Enterprise
### Managed Profile Improvements
diff --git a/zh-cn/compatibility/cts/interpret.html b/zh-cn/compatibility/cts/interpret.html
index 42af04b1..33ce7867 100644
--- a/zh-cn/compatibility/cts/interpret.html
+++ b/zh-cn/compatibility/cts/interpret.html
@@ -29,7 +29,7 @@ $CTS_ROOT/android-cts/repository/results/&lt;start_time&gt;.zip
<p>在 zip 压缩包中,testResult.xml 文件会包含实际的结果。在任何网络浏览器(推荐使用与 HTML 5 技术兼容的浏览器)中打开此文件,即可查看测试结果。</p>
-<p>使用 Chrome 浏览器时,如果 testResult.xml 显示空白页面,请<a href="https://www.chromium.org/developers/how-tos/run-chromium-with-flags">更改浏览器配置</a>以启用 --allow-file-access-from-files 命令行标记。<em></em></p>
+<p>使用 Chrome 浏览器时,如果 testResult.xml 显示空白页,请<a href="https://www.chromium.org/developers/how-tos/run-chromium-with-flags">更改浏览器配置</a>以启用 --allow-file-access-from-files 命令行标记。<em></em></p>
<h3 id="reading-the-test-results">阅读测试结果</h3>
@@ -85,7 +85,7 @@ $CTS_ROOT/android-cts/repository/results/&lt;start_time&gt;.zip
<h3 id="incomplete-test-modules">查看 test_result.xml 以了解未完成的测试模块</h3>
-<p>要确定某个测试会话中的未完成模块数量,请运行命令“list results”。系统会列出之前每个会话的“已完成模块数量”和“模块总数量”。要确定哪些模块已完成,哪些模块未完成,请打开 test_result.xml 文件,并读取结果报告中每个模块的“done”属性的值。“done”值为“false”表示模块尚未完成运行。
+<p>要确定某个测试会话中的未完成模块数量,请运行命令“list results”。系统会列出之前每个会话的“已完成模块数量”和“模块总数量”。要确定哪些模块已完成,哪些模块未完成,请打开 test_result.xml 文件,并读取结果报告中每个模块的“done”属性的值。“done”值为“false”表示模块尚未运行完毕。
</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/cts/run.html b/zh-cn/compatibility/cts/run.html
index c73168a1..f26137a6 100644
--- a/zh-cn/compatibility/cts/run.html
+++ b/zh-cn/compatibility/cts/run.html
@@ -172,6 +172,7 @@
<h2 id="using-cts-v2">使用 CTS v2 控制台</h2>
<p>对于 Android 7.0 或更高版本,您将使用 CTS v2。</p>
+
<h3 id="selecting_ctsv2_plans">选择计划</h3>
<p>您可以选择以下测试计划:</p>
<ul>
@@ -238,6 +239,11 @@
<p>如果连接了多台设备,则 CTS 主机将自动选择一台设备。</p></td>
</tr>
<tr>
+ <td><code>run retry</code></td>
+ <td><p><strong>对于 Android 9</strong>:重新尝试运行在以前的会话中失败或未执行的所有测试。例如,包含 TF 分片的 <code>run retry --retry <session id> -s<device serial></device></session></code> 或 <code>run retry --retry <session id> --shard-count</session></code>。</p>
+ <p>Android 9 不允许使用 <code>run cts --retry</code>。</p></td>
+ </tr>
+ <tr>
<td><code>--plan &lt;test_plan_name&gt;</code></td>
<td>运行指定的测试计划。</td>
</tr>
@@ -256,12 +262,19 @@
</tr>
<tr>
<td><code>--retry</code></td>
- <td>重新尝试运行在以前的会话中失败或未执行的所有测试。
- 使用 <code>list results</code> 获取会话 ID。</td>
+ <td>重新尝试运行在以前的会话中失败或未执行的所有测试。使用 <code>list results</code> 获取会话 ID。</td>
+ </tr>
+ <tr>
+ <td><code>--retry-type not_executed</code></td>
+ <td>仅重新尝试运行在以前的会话中未执行的测试。使用 <code>list results</code> 获取会话 ID。</td>
</tr>
<tr>
<td><code>--shards &lt;number_of_shards&gt;</code></td>
- <td>将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。</td>
+ <td><strong>对于 Android 8.1 及更低版本</strong>:将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。</td>
+ </tr>
+ <tr>
+ <td><code>--shard-count &lt;number_of_shards&gt;</code></td>
+ <td><strong>对于 Android 9</strong>:将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。</td>
</tr>
<tr>
<td><code>--serial/-s &lt;deviceID&gt;</code></td>
diff --git a/zh-cn/compatibility/cts/setup.html b/zh-cn/compatibility/cts/setup.html
index 373e0874..d8ad2489 100644
--- a/zh-cn/compatibility/cts/setup.html
+++ b/zh-cn/compatibility/cts/setup.html
@@ -21,9 +21,15 @@
-->
<h2 id="physical_environment">物理环境</h2>
+
<h3 id="ble_beacons">蓝牙 LE 信标</h3>
<p>如果 DUT 支持蓝牙 LE 功能,则应在与 DUT 的距离不超过五米的范围内放置至少三个蓝牙 LE 信标,以进行蓝牙 LE 扫描测试。这些信标可以为任何类型,不需要进行配置或发射任何特定信号,并且可以包括 iBeacon、Eddystone,甚至模拟 BLE 信标的设备。</p>
+<h3 id="camera">相机</h3>
+<p>在运行相机 CTS 时,建议您使用正常光照条件,并且测试图案图表(例如棋盘图案)不要与镜头靠得太近(具体距离取决于设备的最小焦距)。</p>
+
+<p>如果 DUT 支持外部相机(如 USB 网络摄像头),则在运行 CTS 时必须将外部相机连接到充电器,否则 CTS 测试将失败。</p>
+
<h3 id="gnss">GPS/GNSS</h3>
<p>如果 DUT 支持全球定位系统 (GPS)/全球导航卫星系统 (GNSS) 功能,则应该以合适的信号电平向 DUT 提供 GPS/GNSS 信号(GPS 部分符合 ICD-GPS-200C 标准),以便其接收到相应信号并计算 GPS 位置。GPS/GNSS 信号源的种类不限(可以是卫星模拟器,也可以是室外 GPS/GNSS 信号中继器),只需将 DUT 放在距离窗口足够近的位置以使其可以直接接收到足够强的 GPS/GNSS 信号即可。</p>
@@ -36,6 +42,11 @@
<p>如果您无法访问原生 IPv6 网络、IPv6 运营商网络或 IPv6 VPN,以致无法通过基于 IPv6 的一些测试,则可以改为使用 WLAN 接入点和 IPv6 隧道。请参阅维基百科 <a href="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">IPv6 隧道代理列表</a>。</p>
+<h3 id="rtt">Wi-Fi RTT(往返时间)</h3>
+<p>Android 9 针对 <a ref="/devices/tech/connect/wifi-rtt">Wi-Fi RTT</a> 功能增加了一个 API,此 API 允许设备测量自身与接入点之间的距离(误差幅度在 1 到 2 米内),从而显著提高室内位置信息精确度。以下是支持 Wi-Fi RTT 的两款推荐设备:<a href="https://store.google.com/product/google_wifi">Google Wifi</a> 和 <a href="https://fit-iot.com/web/products/fitlet2/">Compulab 的 Filet2 接入点</a>(设为 40MHz 带宽,频率为 5GHz)。</p>
+
+<p>接入点应接入电源,但无需连接到任何网络。接入点无需紧挨着测试设备,但建议将其放置在距离 DUT 40 英尺的位置。通常情况下,一个接入点就足够了。</p>
+
<h2 id="desktop_setup">台式机设置</h2>
<aside class="caution"><strong>注意</strong>:CTS 目前支持 64 位 Linux 和 Mac OS 主机。CTS 无法在 Windows 操作系统上运行。</aside>
@@ -113,6 +124,10 @@ ro.product.first_api_level=21
<p>CTS 会使用这些应用来测试特权和权限。要通过测试,您必须将应用预加载到系统映像上的相应目录下,但不能对它们重新签名。</p>
+ <h3 id="sample-applet">示例小程序</h3>
+ <p>Android 9 引入了 Open Mobile API 测试用例,用于检查安全元件底层实现是否符合标准。这些测试用例需要安装可供 CTS 应用用于与之通信的专用小程序。用户可以使用提供的<a href="https://android-review.googlesource.com/c/platform/cts/+/700517">示例小程序</a>。</p>
+ <p>这个小程序适用于配有 eSE(嵌入式安全元件)、SIM 或 SD 的设备。要详细了解 Open Mobile API 测试用例和访问控制测试用例,请参阅<a href="/compatibility/cts/secure-element">安全元件的 CTS 测试</a>。</p>
+
<h3 id="storage_requirements">存储空间要求</h3>
<p>CTS 媒体压力测试要求将视频剪辑存放在外部存储设备 (<code>/sdcard</code>) 上。大部分剪辑来自 <a href="https://peach.blender.org/">Big Buck Bunny</a>,其版权归 Blender Foundation 所有并采用 <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 许可</a>。</p>
<p>所需空间取决于设备支持的最高视频播放分辨率(要查看所需分辨率的平台版本,请参阅兼容性定义文档中的第 5 部分)。请注意,被测设备的视频播放功能将通过 <code>android.media.CamcorderProfile</code> API(针对早期 Android 版本)和 <code>android.media.MediaCodecInfo.CodecCapabilities</code> API(针对 Android 5.0)进行检测。</p>
@@ -131,7 +146,6 @@ ro.product.first_api_level=21
<p class="warning"><strong>警告:</strong>CTS 可能会修改/清空插入设备的 SD 卡上的数据。</p>
</li>
<li>如果设备具有 SIM 卡插槽,请将激活的 SIM 卡插入每个插槽。如果设备支持短信,则应填充每个 SIM 卡的号码字段。</li>
-
</ol>
<h3 id="developer_uicc">开发者 UICC</h3>
diff --git a/zh-cn/compatibility/cts/verifier.html b/zh-cn/compatibility/cts/verifier.html
index 296894f2..08f07990 100644
--- a/zh-cn/compatibility/cts/verifier.html
+++ b/zh-cn/compatibility/cts/verifier.html
@@ -27,7 +27,8 @@
<ul>
<li>一台已验证其 Android API 兼容性(成功地通过了 CTS 测试)的 Android 设备。该设备将作为被测设备 (DUT)。</li>
<li>一台具有 USB 2.0 兼容端口的 Linux 计算机。与 DUT 之间的所有连接都将通过此端口。</li>
-<li>具有已知可兼容蓝牙、WLAN 直连和 NFC 主机卡模拟 (HCE) 功能的另一台 Android 设备。</li>
+<li>另一台具有已知可兼容蓝牙、WLAN 直连和 NFC 主机卡模拟 (HCE) 功能的 Android 设备。</li>
+<li>一台配置了接入点名称和密码的 WLAN 路由器。该路由器应该能够断开与互联网的连接,但未关机。</li>
</ul>
<h2 id="setup">设置</h2>
diff --git a/zh-cn/compatibility/index.html b/zh-cn/compatibility/index.html
index 0ab222db..a247c9c9 100644
--- a/zh-cn/compatibility/index.html
+++ b/zh-cn/compatibility/index.html
@@ -1,60 +1,39 @@
<html devsite><head>
- <title>Android 兼容性</title>
- <meta name="project_path" value="/_project.yaml"/>
- <meta name="book_path" value="/_book.yaml"/>
- </head>
- <body>
- <!--
- Copyright 2017 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>Android 的目的是构建一个开放平台,供开发者打造创新应用。</p>
-<ul>
-<li>Android 兼容性计划定义了 Android 平台的技术细节,并为原始设备制造商 (OEM) 提供了各种工具,以确保开发者应用可以在各种设备上顺利运行。</li>
-<li>Android SDK 为开发者提供了内置工具,方便他们清楚地说明其应用所需的设备功能。</li>
-<li>Google Play 只会将应用显示给可以正常运行这些应用的设备。</li>
-</ul>
-
-<h2 id="why-build-compatible-android-devices">为什么要打造兼容的 Android 设备?</h2>
-
-<h3 id="users-want-a-customizable-device">用户需要可自定义的设备</h3>
-
-<div class="attempt-right">
- <img src="images/compat-ecosystem.png" alt="兼容性生态系统" id="figure1"/>
- <p class="img-caption">
- <strong>图 1.</strong> 设备兼容性让 Android 生态系统得以蓬勃发展</p>
-</div>
-
-<p>手机是一个高度个人化、永远在线、始终在手边的互联网访问入口。几乎我们遇到的所有用户都希望通过扩展手机功能来自定义手机。这就是我们将 Android 设计为一个用于运行售后市场应用的强大平台的原因。</p>
-
-<h3 id="developers-outnumber-us-all">开发者人数远超过我们的员工总数</h3>
-<p>任何设备制造商都无法编写用户希望拥有的所有软件。我们需要第三方开发者来编写用户需要的应用,因此 Android 开放源代码项目 (AOSP) 的目的就是让应用开发流程尽量简单和开放。</p>
-
-<h3 id="everyone-needs-a-common-ecosystem">所有人都需要一个共同的生态系统</h3>
-<p>开发者为解决错误和问题而编写的每一行代码都是没有添加新功能的代码。移动设备的兼容性越高,可在这些设备上运行的应用就越多。通过打造完全兼容的 Android 设备,您不但可受益于为 Android 编写的大量应用,同时还能推动开发者构建更多应用。</p>
-
-<h2 id="android-compatibility-is-free-and-its-easy">Android 兼容性计划是免费的,而且申请步骤很简单</h2>
-<p>要打造与 Android 兼容的移动设备,请遵循以下三个步骤进行操作:</p>
-<ol>
-<li><em></em>获取 <a href="/setup/index.html">Android 软件源代码</a>。这是要移植到您的硬件的 Android 平台源代码。</li>
-<li><em></em>遵循 Android 兼容性定义文档 (CDD)(<a href="/compatibility/android-cdd.pdf">PDF</a>、<a href="/compatibility/android-cdd.html">HTML</a>)。CDD 列出了对兼容的 Android 设备的软件和硬件要求。</li>
-<li><em></em>通过<a href="/compatibility/cts/">兼容性测试套件 (CTS)</a> 测试。在开发过程中随时借助 CTS 评估兼容性。</li> </ol>
-<p>在符合 CDD 要求且通过 CTS 测试后,您的设备即是与 Android 兼容的设备,这意味着生态系统中的 Android 应用在您的设备上运行时可提供一致的体验。有关 Android 兼容性计划的详细信息,请参阅<a href="overview.html">计划概述</a>。</p>
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.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
-<h2 id="licensing-gms">申请 Google 移动服务 (GMS) 许可</h2>
-<p>打造 Android 兼容设备后,请考虑申请 Android 上的 Google 移动服务(简称 GMS,由 Google Play、YouTube、Google 地图、Gmail 等 Google 拥有的一系列应用组成)许可。GMS 不是 Android 开放源代码项目的一部分,仅通过 Google 授予许可的方式提供。有关如何申请 GMS 许可的信息,请参阅<a href="contact-us.html">与我们联系</a>。</p>
+ 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.
+-->
+
+<h1 id="design_an_android_device" class="page-title">设计 Android 设备</h1>
+
+<p>作为开放源代码系统,Android 可提供几乎无限可能的硬件和软件组合,供您开发连该操作系统的创作者都意想不到的设备。</p>
+
+<p>尽管如此,但为了让用户在使用其他 Android 设备时能够获得一致的体验,请在设计和自定义您的实现时考虑以下既定标准。</p>
+
+<ol>
+<li><p>查看<a href="/devices/architecture/">架构</a>中的 Android 平台开发基本原则,尤其是 Android 8.0 中引入的 <a href="/devices/architecture/hidl/">HIDL</a> 格式。</p></li>
+<li><p>确保根据 <a href="/compatibility/cdd">Android 兼容性定义文档</a>(Android 的核心规范)的相关要求,设备属于<a href="/compatibility/overview">兼容性</a>设备。</p></li>
+<li><p>要获取界面方面的帮助,请参阅<a href="/devices/tech/display/">显示</a>功能和<a href="/devices/tech/settings/settings-guidelines">设置</a>指南。</p></li>
+<li><p>利用所有可用的<a href="/compatibility/tests">测试</a>调试和改进您的 Android 设备。</p></li>
+<li><p>在开发面向用户的应用时,请熟悉<a href="https://developer.android.com/design/" class="external">应用设计</a>原则和 <a href="https://material.io/design/" class="external">Material Design</a> 技术。</p></li>
+</ol>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/architecture/hidl-cpp/index.html b/zh-cn/devices/architecture/hidl-cpp/index.html
index 210bab33..8b8e5832 100644
--- a/zh-cn/devices/architecture/hidl-cpp/index.html
+++ b/zh-cn/devices/architecture/hidl-cpp/index.html
@@ -63,7 +63,7 @@ client-&gt;doThing();
<pre class="prettyprint">
PACKAGE=android.hardware.nfc@1.0
LOC=hardware/interfaces/nfc/1.0/default/
-make hidl-gen -j64
+m -j hidl-gen
hidl-gen -o $LOC -Lc++-impl -randroid.hardware:hardware/interfaces \
-randroid.hidl:system/libhidl/transport $PACKAGE
hidl-gen -o $LOC -Landroidbp-impl -randroid.hardware:hardware/interfaces \
@@ -86,15 +86,25 @@ int main(int /* argc */, char* /* argv */ []) {
<pre class="prettyprint">
int main(int /* argc */, char* /* argv */ []) {
+ // This function must be called before you join to ensure the proper
+ // number of threads are created. The threadpool will never exceed
+ // size one because of this call.
+ ::android::hardware::configureRpcThreadpool(1 /*threads*/, true /*willJoin*/);
+
sp<infc> nfc = new Nfc();
const status_t status = nfc-&gt;registerAsService();
if (status != ::android::OK) {
return 1; // or handle error
}
- // join pool or do other things
+
+ // Adds this thread to the threadpool, resulting in one total
+ // thread in the threadpool. We could also do other things, but
+ // would have to specify 'false' to willJoin in configureRpcThreadpool.
+ ::android::hardware::joinRpcThreadpool();
+ return 1; // joinRpcThreadpool should never return
}
</infc></pre>
-<p>此守护进程应该存在于 <code>$PACKAGE + "-service"</code>(例如 <code>android.hardware.nfc@1.0-service</code>)中。HAL 的特定类的 <a href="/security/selinux/device-policy.html">sepolicy</a> 是属性 <code>hal_&lt;module&gt;</code>(例如 <code>hal_nfc)</code>)。您必须将此属性应用到运行特定 HAL 的守护进程(如果同一进程提供多个 HAL,则可以将多个属性应用到该进程)。</p>
+<p>此守护进程通常存在于 <code>$PACKAGE + "-service-suffix"</code>(例如 <code>android.hardware.nfc@1.0-service</code>)中,但也可以位于任何位置。HAL 的特定类的 <a href="/security/selinux/device-policy.html">sepolicy</a> 是属性 <code>hal_&lt;module&gt;</code>(例如 <code>hal_nfc)</code>)。您必须将此属性应用到运行特定 HAL 的守护进程(如果同一进程提供多个 HAL,则可以将多个属性应用到该进程)。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/architecture/vintf/index.html b/zh-cn/devices/architecture/vintf/index.html
index 1441b9fa..ccea0d40 100644
--- a/zh-cn/devices/architecture/vintf/index.html
+++ b/zh-cn/devices/architecture/vintf/index.html
@@ -26,7 +26,7 @@
<p>VINTF 对象直接从设备中收集所需的一些信息。其他信息(如清单)以 XML 格式静态描述。</p>
<img src="../images/treble_vintf_mm.png"/>
-<figcaption><strong>图 1.</strong> 清单、兼容性矩阵和运行时可收集的信息。</figcaption>
+<figcaption><strong>图 1.</strong> 清单、兼容性矩阵和运行时可收集的信息</figcaption>
<p>VINTF 对象设计为设备和框架组件提供以下内容:</p>
@@ -55,7 +55,7 @@
<p>无论何时请求,VINTF 对象都必须稳定可靠且能提供相同的完整信息(请见<a href="/devices/architecture/vintf/resources.html#caveats">注意事项</a>)。</p>
<h2 id="manifests-matrices">清单和矩阵</h2>
-<p>Android O 在运行时需要使用 API 来查询设备上的内容,并将该信息发送到<a href="/devices/tech/ota/index.html">无线下载 (OTA)</a> 更新服务器以及其他相关方(如 CTS <code>DeviceInfo</code>)。某些信息在运行时进行检索,另外一些则是静态定义的信息。</p>
+<p>从 Android 8.0 开始,运行时 API 会查询设备上的内容并将该信息发送到<a href="/devices/tech/ota/index.html">无线下载 (OTA)</a> 更新服务器以及其他相关方(例如 CTS <code>DeviceInfo</code>)。有些信息会在运行时进行检索,而有些信息则是静态定义的信息。</p>
<ul>
<li><strong>设备清单</strong>描述了设备可以为框架提供的静态组件。</li>
@@ -66,6 +66,13 @@
<p>这两对清单和矩阵必须在 OTA 时进行协调,以确保设备可以获取与设备功能兼容的框架更新。一般来说,清单描述了提供的内容,兼容性矩阵描述了需要的内容。<em></em><em></em></p>
-<p><a href="/devices/architecture/vintf/objects.html">VINTF 对象数据</a>定义了清单的结构,<a href="/devices/architecture/vintf/comp-matrices.html">兼容性矩阵</a>定义了兼容性矩阵的结构,<a href="/devices/architecture/vintf/match-rules.html">匹配规则</a>定义了兼容性矩阵与清单之间成功匹配的规则。</p>
+<p>本部分包含有关清单和矩阵的以下详细信息:</p>
+<ul>
+ <li><a href="/devices/architecture/vintf/objects.html">清单</a>定义了设备清单、框架清单和清单文件架构。</li>
+ <li><a href="/devices/architecture/vintf/comp-matrices.html">兼容性矩阵</a>定义了兼容性矩阵的架构。</li>
+ <li><a href="/devices/architecture/vintf/fcm.html">FCM 生命周期</a>详细说明了如何弃用和移除 HIDL HAL 以及如何修改 FCM 文件以反映 HAL 版本的状态。</li>
+ <li><a href="/devices/architecture/vintf/dm.html">制定设备清单</a>描述了供应商如何在设备清单中为新设备定义和声明目标 FCM 版本,或如何在升级旧设备的供应商映像时实现新的 HAL 版本并递增目标 FCM 版本。</li>
+ <li><a href="/devices/architecture/vintf/match-rules.html">匹配规则</a>定义了兼容性矩阵与清单之间成功匹配的规则。</li>
+</ul>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/architecture/vndk/enabling.html b/zh-cn/devices/architecture/vndk/enabling.html
index ec1d649a..87cafc0e 100644
--- a/zh-cn/devices/architecture/vndk/enabling.html
+++ b/zh-cn/devices/architecture/vndk/enabling.html
@@ -130,7 +130,7 @@ llndk_library {
<p>最后,<code>private/android_filesystem_config.h</code> 的公共部分已移至 <code>cutils/android_filesystem_config.h</code>。要管理这些标头,请执行下列操作之一:</p>
<ul>
-<li>通过将所有 <code>private/android_filesystem_config.h</code> 宏替换为 <code>AID_*</code>/<code><a href="http://man7.org/linux/man-pages/man3/getgrnam.3.html" class="external">getgrnam</a></code> 调用(如果可能),移除对 <code><a href="http://man7.org/linux/man-pages/man3/getpwnam.3.html" class="external">getpwnam</a></code> 的依赖。例如:
+<li>通过将所有 <code>AID_*</code> 宏替换为 <code><a href="http://man7.org/linux/man-pages/man3/getgrnam.3.html" class="external">getgrnam</a></code>/<code><a href="http://man7.org/linux/man-pages/man3/getpwnam.3.html" class="external">getpwnam</a></code> 调用(如果可能),移除对 <code>private/android_filesystem_config.h</code> 的依赖。例如:
<ul>
<li><code>(uid_t)AID_WIFI</code> 会变为 <code>getpwnam("wifi")-&gt;pw_uid</code>。</li>
diff --git a/zh-cn/devices/audio/latency/app.html b/zh-cn/devices/audio/latency/app.html
new file mode 100644
index 00000000..23b28995
--- /dev/null
+++ b/zh-cn/devices/audio/latency/app.html
@@ -0,0 +1,142 @@
+<html devsite><head>
+ <title>音频延迟(适用于应用开发者)</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2017 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>为了尽可能缩短音频延迟时间,我们建议您使用基于 OpenSL ES 1.0.1 的 Android 原生音频。</p>
+
+<h2 id="implementation">实现核对清单</h2>
+
+<p>要使用 Android 原生音频,请执行以下操作:</p>
+
+<ol>
+
+<li>
+下载并安装 <a href="https://developer.android.com/tools/sdk/ndk/index.html">Android NDK</a>。在本文档的其余部分,我们将假设 <code>NDKroot</code> 是您安装 NDK 所使用的目录。</li>
+
+<li>
+阅读<a href="#supporting">支持文档</a>。
+</li>
+
+<li>
+确认 API 级别不低于 9 级。
+</li>
+
+<li>
+检查 <a href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html#hw-features">android.hardware.audio.low_latency</a> 功能。
+</li>
+
+<li>
+使用由以下对象返回的建议原生缓冲区空间和采样率:<a href="http://developer.android.com/reference/android/media/AudioManager.html#getProperty(java.lang.String)">android.media.AudioManager.getProperty(java.lang.String)</a>
+<p> <strong>注意</strong>:输入时,还应使用相同的缓冲区空间和采样率。</p>
+</li>
+
+<li>
+通常 1 个 OpenSL ES 缓冲区就足够了。
+</li>
+
+<li>
+确保您的回调处理程序比较短,没有突发的 CPU 占用或不受控制的阻塞。避免<a href="avoiding_pi.html">优先级反转</a>。
+</li>
+
+<li>
+考虑使用<a href="avoiding_pi.html#nonBlockingAlgorithms">非阻塞算法</a>,以在输入和输出回调处理程序之间以及回调处理程序与您应用的其余部分之间进行通信。
+</li>
+
+</ol>
+
+<h2 id="supporting">支持文档</h2>
+
+<h3 id="opensl_es_1_0_1">OpenSL ES 1.0.1</h3>
+
+<p>
+使用 PDF 查看器查看 <a href="https://www.khronos.org/registry/sles/specs/OpenSL_ES_Specification_1.0.1.pdf">OpenSL 1.0.1 规范</a>。这份参考资料很长,并非所有内容都适用于您;不过,您需要查阅这份参考资料来了解有关 API 的详细信息。</p>
+
+<p class="note">
+<strong>注意</strong>:本文档介绍了完整的 OpenSL ES 1.0.1,但 Android 原生音频实际上是基于 OpenSL ES 1.0.1 的一个子集,而该子集含有一些特定于 Android 的扩展程序。
+</p>
+
+<p>
+更高版本的 OpenSL ES(如 1.1)的说明文档与 Android 不相关。
+</p>
+
+<h3 id="opensl_es_for_android">OpenSL ES for Android</h3>
+
+<p>NDK 的安装文件中提供了“OpenSL ES for Android”文档,该文档目前没有在线提供。在浏览器中打开此链接:</p>
+
+<pre class="devsite-click-to-copy">
+NDKroot/docs/Additional_library_docs/opensles/index.html
+</pre>
+
+<p>
+您需要浏览整篇文档,但要特别注意“编程注释”部分的“性能”子部分。
+</p>
+
+<p>
+“OpenSL ES 1.0.1 中受支持的功能”部分介绍了 Android 所支持的子集。
+</p>
+
+<p>
+“Android 扩展程序”部分介绍了底层 OpenSL ES 1.0.1 中没有的特定于 Android 的扩展程序。
+</p>
+
+<h3 id="relationship">与 OpenSL ES 1.0.1 的关系</h3>
+
+<p>
+该维恩图显示了 Android 原生音频与 OpenSL ES 1.0.1 之间的关系。
+</p>
+
+<img src="/devices/audio/images/venn.png" alt="维恩图" id="figure1"/>
+<p class="img-caption">
+ <strong>图 1.</strong> 维恩图</p>
+
+<h2 id="resources">其他资源</h2>
+
+<h3 id="source_android_com">source.android.com</h3>
+
+<p>
+<a href="/">source.android.com</a> 网站主要面向制造 Android 设备的原始设备制造商 (OEM),以及为这些原始设备制造商提供组件的 SoC 供应商。</p>
+
+<p>
+不过,该网站上提供了大量有关延迟时间的实用信息,因此您可能需要查看这些信息。请查看<a href="latency.html">音频延迟时间</a>的相关文章。
+</p>
+
+<h3 id="android_ndk">android-ndk</h3>
+
+<p>
+如果您对如何使用 Android 原生音频有疑问,请在 <a href="https://groups.google.com/forum/#!forum/android-ndk">android-ndk</a> 论坛中提问。
+</p>
+
+<h3 id="videos">视频</h3>
+
+<dl>
+
+<dt><a href="https://youtu.be/d3kfEeMZ65c">Android 上的高性能音频</a>(2013 年 Google I/O 大会)</dt>
+<dd>整个视频都是关于延迟时间的。</dd>
+
+<dt><a href="https://youtu.be/92fgcUNCHic">在 Android 上打造出色的多媒体体验</a>(2014 年 Google I/O 大会)</dt>
+<dd>前 14 分钟大致介绍了一下音频,尤其是输入延迟时间。</dd>
+
+<dt><a href="https://youtu.be/PnDK17zP9BI">音频延迟时间:缓冲区空间</a> (100 Days of Google Dev)</dt>
+<dd>介绍音频延迟时间、缓冲区空间和任务工作表之间的关系。</dd>
+
+</dl>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/audio/latency/contrib.html b/zh-cn/devices/audio/latency/contrib.html
new file mode 100644
index 00000000..d70cc65a
--- /dev/null
+++ b/zh-cn/devices/audio/latency/contrib.html
@@ -0,0 +1,107 @@
+<html devsite><head>
+ <title>音频延迟的促成因素</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2017 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>本页面重点介绍输出延迟的促成因素,但是类似的内容也适用于输入延迟。
+</p>
+<p>假设模拟电路的促成作用没有那么显著,那么音频延迟的主要 Surface 级促成因素如下:</p>
+
+<ul>
+ <li>应用</li>
+ <li>通道中的缓冲区总数</li>
+ <li>每个缓冲区的大小(以帧为单位)</li>
+ <li>应用处理器之后的额外延迟,例如来自 DSP 的延迟</li>
+</ul>
+
+<p>上述促成因素列表在尽量做到准确的同时,可能也存在误导。原因在于缓冲区计数和缓冲区大小更像是影响而非原因。<em></em><em></em>通常发生的情况是实现并测试一个指定的缓冲区方案,但是在测试期间,音频欠载或过载听到的声音是“咔哒声”或“砰砰声”。作为补偿措施,系统设计人员因此增加了缓冲区大小或缓冲区计数。这样一来,虽然达到了消除欠载或过载这一预期效果,但是也带来了延迟时间变长的负面影响。有关缓冲区大小的更多信息,请观看视频<a href="https://youtu.be/PnDK17zP9BI">音频延迟:缓冲区大小</a>。
+
+</p>
+
+<p>更好的方法是了解欠载和过载的原因,然后纠正这些问题。这样可消除我们能听见的杂音,并且允许使用更小或更少的缓冲区,从而缩短延迟。
+</p>
+
+<p>根据我们的经验,最常见的欠载和过载的原因包括:</p>
+<ul>
+ <li>Linux CFS(完全公平的调度程序)</li>
+ <li>具有 SCHED_FIFO 调度的高优先级线程</li>
+ <li>优先级倒置</li>
+ <li>长时间调度延迟</li>
+ <li>长时间运行的中断处理程序</li>
+ <li>长时间中断禁用</li>
+ <li>电源管理</li>
+ <li>安全内核</li>
+</ul>
+
+<h3 id="linuxCfs">Linux CFS 和 SCHED_FIFO 调度</h3>
+<p>Linux CFS 旨在公平地对待共享通用 CPU 资源的竞争性工作负载。这种公平性体现在在每个线程中使用 nice 参数。<em></em>nice 值范围从 -19(最不友好,即分配最多的 CPU 时间)到 20(最友好,即分配最少的 CPU 时间)。一般来说,具有指定 nice 值的所有线程会获得差不多相同的 CPU 时间,而 nice 值较低的线程预计会获得更多的 CPU 时间。不过,只有在相对较长的观察期内,才能看出 CFS 是“公平”的。在较短的观察期内,CFS 可能会以意想不到的方式分配 CPU 资源。例如,它可能会将具有较低 nice 值的线程上的 CPU 转移到具有较高 nice 值的线程。对于音频而言,这可能会导致欠载或过载。
+</p>
+
+<p>显而易见的解决方案是避免将 CFS 用于高性能音频线程。从 Android 4.1 开始,此类线程现在使用 <code>SCHED_FIFO</code> 调度策略,而非通过 CFS 实现的 <code>SCHED_NORMAL</code>(也称为 <code>SCHED_OTHER</code>)调度策略。</p>
+
+<h3 id="schedFifo">SCHED_FIFO 优先级</h3>
+<p>虽然高性能音频线程现在使用 <code>SCHED_FIFO</code>,但是它们仍然很容易受到其他优先级更高的 <code>SCHED_FIFO</code> 线程的影响。这些线程通常是内核 Worker 线程,但也可能存在一些采用策略 <code>SCHED_FIFO</code> 的非音频用户线程。可用的 <code>SCHED_FIFO</code> 优先级范围是从 1 到 99。音频线程的运行优先级为 2 或 3。这使得优先级 1 可用于优先级较低的线程,而优先级 4 到 99 则适用于优先级较高的线程。我们建议您尽可能使用优先级 1,并保留优先级 4 到 99 以用于以下线程:保证在有限时间内完成、执行时间短于音频线程时间并且已知不会干扰音频线程调度的线程。
+</p>
+
+<h3 id="rms">速率单调调度</h3>
+<p>有关固定优先级分配理论的更多信息,请参阅维基百科文章<a href="http://en.wikipedia.org/wiki/Rate-monotonic_scheduling">速率单调调度</a> (RMS)。关键在于,固定优先级应严格按照周期分配,较高优先级分配给较短周期的线程,而不是基于观察到的“重要性”。可以使用最大执行频率和每次执行的最大计算能力将非周期性线程建模为周期性线程。如果非周期性线程不能建模为周期性线程(例如,它可以按无限频率执行或每次执行使用无限计算能力),则不应为其分配固定优先级,否则会与真正的周期性线程的调度不兼容。
+</p>
+
+<h3 id="priorityInversion">优先级倒置</h3>
+<p>
+ <a href="http://en.wikipedia.org/wiki/Priority_inversion">优先级倒置</a>是实时系统的一种典型故障模式,是指优先级较高的任务因等待优先级较低的任务释放资源(如受<a href="http://en.wikipedia.org/wiki/Mutual_exclusion">互斥</a>保护的共享状态)而无限受阻。请参阅“<a href="avoiding_pi.html">避免优先级倒置</a>”一文,了解缓和这种情况的技术。
+</p>
+
+<h3 id="schedLatency">调度延迟</h3>
+<p>调度延迟是指从线程已准备好运行到环境切换完成可以在 CPU 上实际运行线程之间的间隔时间。延迟越短越好,一旦超过 2 毫秒,就会造成音频问题。在模式转换期间最有可能出现长时间的调度延迟,例如,启动或关闭 CPU、在安全内核和普通内核之间切换、从全功率模式切换为低功率模式或者调整 CPU 时钟频率和电压。
+</p>
+
+<h3 id="interrupts">中断</h3>
+<p>在许多设计中,CPU 0 为所有外部中断提供服务。因此,长时间运行的中断处理程序可能会延迟其他中断,尤其是音频直接内存访问 (DMA) 完成中断。将中断处理程序设计为快速完成并将冗长的工作延迟到某个线程(最好是 CFS 线程或优先级为 1 的 <code>SCHED_FIFO</code> 线程)。
+</p>
+
+<p>同样,如果将 CPU 0 上的中端停用很长一段时间,会带来与延迟音频中断服务一样的效果。长时间中断停用通常发生在等待内核自旋锁定时。<i></i>检查这些自旋锁定,确保它们有时间限制。
+</p>
+
+<h3 id="power">电源、性能和散热管理</h3>
+<p>
+ <a href="http://en.wikipedia.org/wiki/Power_management">电源管理</a>是一个广义的术语,涵盖为了监控并减少电耗、同时优化性能所采取的措施。
+ <a href="http://en.wikipedia.org/wiki/Thermal_management_of_electronic_devices_and_systems">散热管理</a>和<a href="http://en.wikipedia.org/wiki/Computer_cooling">计算机冷却</a>类似,但寻求测量并控制热量,以避免因过热而造成损坏。在 Linux 内核中,CPU <a href="http://en.wikipedia.org/wiki/Governor_%28device%29">调节器</a>负责低级别的策略,而用户模式则配置高级别的策略。用到的技术包括:</p>
+
+<ul>
+ <li>动态电压调节</li>
+ <li>动态频率调节</li>
+ <li>动态核心启用</li>
+ <li>集群切换</li>
+ <li>电源门控</li>
+ <li>热插拔(热交换)</li>
+ <li>各种睡眠模式(中断、停止、空闲、暂停等)</li>
+ <li>进程迁移</li>
+ <li><a href="http://en.wikipedia.org/wiki/Processor_affinity">处理器关联</a></li>
+</ul>
+
+<p>一些管理操作会导致“停工”或者在一段时间内应用处理器未执行任何有用的工作。这些停工会干扰音频,因此应该设计管理措施,确保音频处于活动状态时,最糟糕的停工情况可接受。当然,当出现散热失控的紧急情况时,避免永久损坏比音频更重要!
+</p>
+
+<h3 id="security">安全内核</h3>
+<p>用于<a href="http://en.wikipedia.org/wiki/Digital_rights_management">数字版权管理</a> (DRM) 的<a href="http://en.wikipedia.org/wiki/Security_kernel">安全内核</a>可以在用于主要操作系统内核和应用代码的同一应用处理器内核上运行。只要安全内核操作在一个核心上处于活动状态,就会导致在该核心上本应正常运行的普通工作停止。尤其是,这可能包括音频工作。本质上来看,从较高层级无法预测安全内核的内部行为,因而安全内核引起的任何性能异常会特别严重。例如,安全内核操作通常不会出现在环境切换的跟踪中。我们称之为“黑暗时期”,即在流逝却无法观察到的时间。安全内核应该经过设计,确保音频处于活动状态时,最糟糕的停工情况可接受。
+</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/audio/latency/design.html b/zh-cn/devices/audio/latency/design.html
new file mode 100644
index 00000000..2f238399
--- /dev/null
+++ b/zh-cn/devices/audio/latency/design.html
@@ -0,0 +1,186 @@
+<html devsite><head>
+ <title>减少延迟的设计</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2017 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>
+Android 4.1 版本更改了内部框架,缩短了音频输出路径的<a href="http://en.wikipedia.org/wiki/Low_latency">延迟时间</a>。该版本还对公开客户端 API 或 HAL API 进行了细微更改。本文档介绍了初始设计,此设计也在不断发展。充分了解这一设计应该有助于设备的原始设备制造商 (OEM) 和 SoC 供应商在其特定设备和芯片组上正确地实施此设计。本文不适用于应用开发者。
+</p>
+
+<h2 id="trackCreation">创建音轨</h2>
+
+<p>
+客户端可以选择性地在 AudioTrack C++ 构造函数或 <code>AudioTrack::set()</code> 的 <code>audio_output_flags_t</code> 参数中设置位 <code>AUDIO_OUTPUT_FLAG_FAST</code>。目前能执行此操作的客户端仅包括:
+</p>
+
+<ul>
+<li>基于 <a href="https://developer.android.com/ndk/guides/audio/opensl/index.html">OpenSL ES</a> 或 <a href="https://developer.android.com/ndk/guides/audio/aaudio/aaudio.html">AAudio</a> 的 Android 原生音频</li>
+<li><a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a></li>
+<li><a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a></li>
+</ul>
+
+<p>
+AudioTrack C++ 实现会审核 <code>AUDIO_OUTPUT_FLAG_FAST</code> 请求,并且可以选择性地拒绝客户端级别的请求。如果它决定传递该请求,则会使用 <code>IAudioTrack</code> 工厂方法 <code>IAudioFlinger::createTrack()</code> 的 <code>track_flags_t</code> 参数的 <code>TRACK_FAST</code> 位来实现。
+</p>
+
+<p>
+AudioFlinger 音频服务器会审核 <code>TRACK_FAST</code> 请求,并且可以选择性地拒绝服务器级别的请求。它通过共享存储器控制块的位 <code>CBLK_FAST</code> 通知客户端是否已接受该请求。
+</p>
+
+<p>
+影响决定的因素包括:
+</p>
+
+<ul>
+<li>此输出的快速混音器线程分布(见下文)</li>
+<li>音轨采样率</li>
+<li>为音轨执行回调处理程序的客户端线程分布</li>
+<li>音轨缓冲区的大小</li>
+<li>可用的快速音轨槽(见下文)</li>
+</ul>
+
+<p>
+如果客户端的请求被接受,则称为“快速音轨”,否则称为“常规音轨”。
+</p>
+
+<h2 id="mixerThreads">混音器线程</h2>
+
+<p>
+AudioFlinger 在创建常规混音器线程时,会决定是否也要创建快速混音器线程。常规混音器和快速混音器都不与特定的音轨相关联,而是与一组音轨相关联。一直都会存在一个常规混音器线程。快速混音器线程(如果存在)的运行优先级低于常规混音器线程并在其控制下运行。
+</p>
+
+<h3 id="fastMixer">快速混音器</h3>
+
+<h4>功能</h4>
+
+<p>
+快速混音器线程具备以下功能:
+</p>
+
+<ul>
+<li>对常规混音器的子混音和最多 7 个客户端快速音轨进行混音</li>
+<li>每条音轨的衰减</li>
+</ul>
+
+<p>
+删减的功能:
+</p>
+
+<ul>
+<li>每条音轨的采样率转换</li>
+<li>每条音轨的效果</li>
+<li>每次混音的效果</li>
+</ul>
+
+<h4>周期</h4>
+
+<p>
+快速混音器按周期运行,推荐周期为 2 到 3 毫秒 (ms),但如果有调度稳定性需求,则可采用略久的 5 毫秒为周期。之所以选择这个数字,是为了确保在考虑完整的缓冲区流水线的情况下,总延迟时间大约为 10 毫秒。可以采用更小的值,但这样可能导致功耗增加以及出现异常,具体取决于 CPU 调度的可预测性。也可以采用更大的值(最高 20 毫秒),但这样会导致总延迟时间降级,因此应避免采用。
+</p>
+
+<h4>调度</h4>
+
+<p>
+快速混音器以较高的 <code>SCHED_FIFO</code> 优先级运行。它只需要很短的 CPU 时间,但必须经常运行并且具有低调度抖动。
+<a href="http://en.wikipedia.org/wiki/Jitter">抖动</a>表示周期时间的变化:它是实际周期时间与预计周期时间之间的差值。运行太迟会因欠载而导致异常。运行过早则会因从快速音轨中提取数据时音轨尚未提供数据而导致异常。
+</p>
+
+<h4>屏蔽</h4>
+
+<p>
+在理想情况下,除了在 HAL <code>write()</code> 时,快速混音器线程不会屏蔽。快速混音器内的其他屏蔽事件将被视为错误。尤其要避免互斥情况。相反,应使用<a href="http://en.wikipedia.org/wiki/Non-blocking_algorithm">非屏蔽算法</a>(也称为无锁算法)。有关此主题的更多信息,请参阅<a href="avoiding_pi.html">避免优先级反转</a>。
+</p>
+
+<h4>与其他组件的关系</h4>
+
+<p>
+快速混音器几乎不与客户端直接交互。尤其是,快速混音器看不到 Binder 级别的操作,但它确实会访问客户端的共享存储器控制块。
+</p>
+
+<p>
+快速混音器通过状态队列接收来自常规混音器的命令。
+</p>
+
+<p>
+除了提取音轨数据,快速混音器通过常规混音器与客户端进行交互。
+</p>
+
+<p>
+快速混音器的主接收器是音频 HAL。
+</p>
+
+<h3 id="normalMixer">常规混音器</h3>
+
+<h4>功能</h4>
+
+<p>
+已启用所有功能:
+</p>
+
+<ul>
+<li>最多 32 条音轨</li>
+<li>每条音轨的衰减</li>
+<li>每条音轨的采样率转换</li>
+<li>效果处理</li>
+</ul>
+
+<h4>周期</h4>
+
+<p>
+该周期被计算为快速混音器周期(大于等于 20 毫秒)的第一个整数倍数。
+</p>
+
+<h4>调度</h4>
+
+<p>
+常规混音器以较高的 <code>SCHED_OTHER</code> 优先级运行。
+</p>
+
+<h4>屏蔽</h4>
+
+<p>
+允许常规混音器屏蔽,并且通常在各种互斥体以及屏蔽管中发生屏蔽,以写入其子混音。
+</p>
+
+<h4>与其他组件的关系</h4>
+
+<p>
+常规混音器与外界广泛互动,包括 Binder 线程、音频策略管理器、快速混音器线程和客户端音轨。
+</p>
+
+<p>
+常规混音器的接收器是快速混音器音轨 0 的屏蔽管。
+</p>
+
+<h2 id="flags">标记</h2>
+
+<p>
+<code>AUDIO_OUTPUT_FLAG_FAST</code> 位是一个提示。无法保证满足要求。
+</p>
+
+<p>
+<code>AUDIO_OUTPUT_FLAG_FAST</code> 是一个客户端级别的概念。它不会出现在服务器中。
+</p>
+
+<p>
+<code>TRACK_FAST</code> 是一个客户端到服务器的概念。
+</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/audio/latency/measure.html b/zh-cn/devices/audio/latency/measure.html
new file mode 100644
index 00000000..6c20121e
--- /dev/null
+++ b/zh-cn/devices/audio/latency/measure.html
@@ -0,0 +1,132 @@
+<html devsite><head>
+ <title>衡量音频延迟</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2017 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>本页面介绍了测量输入和输出延迟的常用方法。
+</p>
+
+<h2 id="measuringOutput">测量输出延迟</h2>
+
+<p>有多种技术可用于测量输出延迟,这些技术的准确度和运行难易程度各不相同,具体情况如下所述。此外,要查看示例测试环境,请参阅<a href="testing_circuit.html">测试电路</a>。
+</p>
+
+<h3 id="ledTest">LED 和示波器测试</h3>
+<p>该测试测量与设备的 LED 指示灯相关的延迟。如果您的正式版设备未安装 LED,您可以将 LED 安装在原型设备上。为了提高在电路外露的原型设备上测试时的准确度,请直接将一个示波器探头连接到 LED,以绕开光传感器,从而避免光传感器产生的延迟。
+ </p>
+
+<p>如果您无法在正式版或原型设备上安装 LED,请尝试以下解决方法:</p>
+
+<ul>
+ <li>出于同一目的使用通用输入/输出 (GPIO) 引脚。</li>
+ <li>使用 JTAG 或其他调试端口。</li>
+ <li>使用屏幕背光。这种方法可能存在风险,因为背光可能具有无法忽略的延迟,并且可能导致延迟读数不准确。
+ </li>
+</ul>
+
+<p>要进行该测试,请执行以下操作:</p>
+
+<ol>
+ <li>运行一个定期使 LED 闪烁并同时输出音频的应用。
+ <p class="note"><strong>注意</strong>:要获得实用的结果,请务必在测试应用中使用正确的 API,以便运用快速音频输出路径。有关背景信息,请参阅<a href="latency_design.html">降低延迟的设计</a>。</p>
+ </li>
+ <li>在 LED 旁边放置一个光传感器。</li>
+ <li>将双通道示波器的探头连接到有线耳机插孔(线路输出)和光传感器。</li>
+ <li>使用示波器测量观察的线路输出信号与光传感器信号之间的时间差。</li>
+</ol>
+
+ <p>假设 LED 延迟和光传感器延迟均为零,上述时间差就是近似的音频输出延迟。通常情况下,LED 和光传感器各有大约 1 毫秒或更短的相对较低延迟,此延迟低到可以忽略。</p>
+
+<h2 id="measuringRoundTrip">测量往返延迟</h2>
+
+<p>
+ <a href="http://en.wikipedia.org/wiki/Round-trip_delay_time">往返延迟</a>是输出延迟和输入延迟的总和。
+</p>
+
+<h3 id="larsenTest">拉尔森测试</h3>
+<p>最简单的延迟测试之一是音频反馈(拉尔森效应)测试。该测试通过测定脉冲响应循环的时间来粗略衡量合并的输出和输入延迟。由于该测试的性质,它本身对于进行详细的分析并不是很有用,但对于校准其他测试以及确定上限来说会比较实用。</p>
+
+<p>要进行该测试,请执行以下操作:</p>
+<ol>
+ <li>运行从麦克风捕获音频并立即通过扬声器播放捕获的数据的应用。</li>
+ <li>在外部发出一个声音,例如在麦克风旁边轻击铅笔。该噪音会生成一个反馈循环。或者,测试人员也可以使用软件将脉冲注入循环中。</li>
+ <li>测量反馈脉冲之间的时间间隔,以得出输出延迟、输入延迟和应用开销的总和。</li>
+</ol>
+
+ <p>该方法不会分解组件时间,在输出延迟和输入延迟彼此独立的情况下,这一点非常重要。因此,单独测量精确的输出延迟或输入延迟值时,不建议使用该方法,但在确定粗略的估算值时,该方法可能有用。</p>
+
+ <p>设备上的扬声器的输出延迟可能明显高于耳机连接器的输出延迟。这是因为扬声器有校正和保护机制。
+ </p>
+
+<p>我们已经在 <a href="https://android.googlesource.com/platform/frameworks/wilhelm/+/master/tests/examples/slesTestFeedback.cpp">slesTestFeedback.cpp</a> 中发布了一个示例实现。它是一个命令行应用,使用平台构建环境构建而成;但是对其他环境来说,直接采用相关代码也应该很简单。此外您还需要 <code>audio_utils</code> 库中的<a href="avoiding_pi.html#nonBlockingAlgorithms">非阻塞</a> FIFO 代码。
+</p>
+
+<h3 id="loopback">音频环回软件狗</h3>
+
+<p><a href="loopback.html">Dr. Rick O'Rang 音频环回软件狗</a>可用于测量耳机连接器的往返延迟,非常方便。下图演示了向循环中注入一次脉冲然后使反馈循环振荡的结果。振荡的周期就是往返延迟。此处并未指定具体设备、软件版本和测试条件。因此,不应对显示的结果进行外推。
+</p>
+
+<img src="/devices/audio/images/round_trip.png" alt="往返测量" id="figure1"/>
+<p class="img-caption">
+ <strong>图 1.</strong> 往返测量</p>
+
+<p>您可能需要拔出 USB 数据线以减少噪音,并调整音量以获得稳定的振荡。
+</p>
+
+<h2 id="measuringInput">测量输入延迟</h2>
+
+<p>与输出延迟相比,输入延迟的测量难度较大。以下测试方案可能有助于测量此类延迟。
+</p>
+
+<p>一种方案是先使用 LED 和示波器方法确定输出延迟,然后使用音频反馈(拉尔森)测试来确定输出延迟和输入延迟的总和。这两个测量值之间的差值就是输入延迟。
+</p>
+
+<p>另一种方案是在原型设备上使用 GPIO 引脚。在外部,向设备提供音频信号的同时脉冲输入 GPIO 信号。运行一个应用,比较 GPIO 信号和音频数据在到达时间上的差异。
+</p>
+
+<h2 id="reducing">降低延迟</h2>
+
+<p>要实现较低的音频延迟,则在整个系统中从调度、中断处理、电源管理和设备驱动程序设计,都需要特别注意。您的目标是防止平台的任何部分阻塞 <code>SCHED_FIFO</code> 音频线程的时间超过几毫秒。通过采用这类系统性方案,您可以降低音频延迟,顺便获得更加可预测的整体性能。
+</p>
+
+ <p>通常只有在特定条件下或只有在转换时,才可以检测到音频欠载(如果确有发生)。您可以通过启动新的应用以及在各种显示之间快速滚动,尝试增加系统负载。但请注意,某些测试条件的负载过大,会超出设计目标。例如,生成错误报告会使系统负载大量增加,因而在这种情况下发生欠载可以接受。
+</p>
+
+<p>测试欠载时,请执行以下操作:</p>
+ <ul>
+ <li>在应用处理器后配置任意 DSP,以尽量避免增加延迟。</li>
+ <li>在不同的条件下运行测试,例如开启或关闭屏幕、插入或拔出 USB、开启或关闭 WLAN、开启或关闭蓝牙、开启或关闭电话和数据网络。</li>
+ <li>选择您非常熟悉的相对安静的音乐,这类音乐中的欠载比较容易听出来。</li>
+ <li>使用有线耳机,以实现更高的灵敏度。</li>
+ <li>安排休息时间,这样您不会有“耳朵疲劳”的感觉。</li>
+ </ul>
+
+<p>在您找出发生欠载的根本原因后,请减少缓冲区计数和大小,以便充分利用它。如果在分析欠载并解决欠载问题之前就急于减少缓冲区计数和大小,只会适得其反。<i></i>
+</p>
+
+<h3 id="tools">工具</h3>
+<p>
+ <code>systrace</code> 是一款出色的通用工具,用于诊断系统级别性能故障。
+</p>
+
+<p><code>dumpsys media.audio_flinger</code> 的输出中还包含一个称为“simple moving statistics”(简单的移动统计信息)的实用部分,其中包含每个混音和 I/O 周期如何随时间变化的摘要。理想情况下,所有的时间测量值都应该等于平均值或标称周期时间。如果您看到极小的最小值或极大的最大值,则表示存在问题,有可能是调度延迟过高或中断停用时间过长。输出的尾部部分特别有用,因为它突出显示了 +/- 3 标准偏差之外的变化。<i></i>
+</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/audio/latency/measurements.html b/zh-cn/devices/audio/latency/measurements.html
new file mode 100644
index 00000000..f61d99f4
--- /dev/null
+++ b/zh-cn/devices/audio/latency/measurements.html
@@ -0,0 +1,448 @@
+<html devsite><head>
+ <title>音频延迟测量</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2017 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><a href="http://en.wikipedia.org/wiki/Latency_%28engineering%29">延迟时间</a>是一项重要的系统性能指标。<a href="latency.html">音频延迟时间</a>指标有多种类型,其中一个很实用且易于理解的指标是<a href="latency_measure.html#measuringRoundTrip">往返延迟时间</a>。根据该指标的定义,往返延迟时间是指音频信号进入移动设备的输入组件,由应用处理器上运行的应用进行处理,然后从输出组件传出,这整个过程所花费的时间。</p>
+
+<img src="/devices/audio/images/round_trip_on_device.png" alt="设备上的往返音频延迟时间" id="figure1"/>
+<p class="img-caption"><strong>图 1. </strong> 设备上的往返音频延迟时间:T<sub>output</sub> - T<sub>input</sub></p>
+
+<p>本页提供了选定 Nexus/Pixel 设备和 Android 平台版本的往返音频延迟时间测量结果。</p>
+
+<h2 id="why">为什么要测量延迟时间</h2>
+
+<p>Google 会测量和报告延迟时间,以便 Android 应用开发者获取所需数据,从而针对实际设备上的可用延迟时间做出明智决策。我们会分享选定 Nexus 和 Pixel 设备的延迟时间数值,以此鼓励整个 Android 社区的成员来测量、发布和减少所有 Android 设备上的延迟时间。<em></em>欢迎加入我们,一起为减少音频延迟时间而努力!</p>
+
+<h2 id="app">应用对延迟时间的影响</h2>
+
+<p>信号处理技术可能会在延迟时间中添加以下类型的延迟:</p>
+<ul>
+<li><strong>算法</strong>:这是一种固有延迟,不会因 CPU 而异。例如由<a href="http://en.wikipedia.org/wiki/Finite_impulse_response">有限脉冲响应</a> (FIR) 过滤器增加的延迟。</li>
+<li><strong>计算</strong>:这种延迟与所需的 CPU 周期数有关。例如,信号的衰减通常通过乘法运算完成,而该运算所需的周期数则取决于 CPU。</li>
+</ul>
+
+<h2 id="how">如何测量</h2>
+
+<p>我们使用 <a href="loopback.html">Dr. Rick O'Rang 音频环回软件狗</a>和<a href="latency_measure.html#larsenTest">音频反馈(拉尔森效应)测试</a>得出了本页列出的测量结果。测量假设应用信号处理技术的算法延迟时间为零,并且计算延迟时间接近零。</p>
+
+<p>我们通过耳机连接器来测量往返延迟时间有以下几个原因:</p>
+<img src="/devices/audio/images/round_trip_via_headset_connector.png" alt="通过耳机连接器测量的往返延迟时间" id="figure2"/>
+<p class="img-caption"><strong>图 2. </strong> 通过耳机连接器测量的往返延迟时间:T<sub>output</sub> - T<sub>input</sub></p>
+<ul>
+<li>重要的音乐应用(如吉他和语音处理)一般会使用耳机连接器。</li>
+<li>测量设备上的麦克风和扬声器之间的往返延迟时间可能会比较麻烦,因为在露天环境下难以避免反馈环进入不受控制的振荡状态。</li>
+<li>设备上的换能器都很小,为了实现它们的小尺寸则需要牺牲频率响应。出于补偿目的,换能器会应用数字信号处理技术,但这会增加设备上路径的算法延迟时间。</li>
+</ul>
+
+<p>在有些情况下,设备上的麦克风和扬声器延迟时间确实会带来影响,但这通常是针对单向延迟而不是往返延迟。<em></em><a href="latency_measure.html#measuringOutput">测量输出设备延迟时间</a>和<a href="latency_measure.html#measuringInput">测量输入设备延迟时间</a>中介绍了测量单向延迟时间的相关技巧。</p>
+
+<h2 id="examples">测量结果示例</h2>
+
+<p>下面列出的是特定于某个<a href="/setup/build-numbers.html">版本号</a>的测量结果。设备按初始版本和平台版本的大致顺序列出;您也可以<a href="#chart">查看图表中的延迟时间</a>。测试应用会使用 Android 原生音频 API(基于 OpenSL ES)。</p>
+
+<table>
+<tbody><tr>
+ <th>型号</th>
+ <th>平台<br />版本</th>
+ <th>版本<br />号</th>
+ <th>抽样频率<br />(Hz)</th>
+ <th>缓冲区空间<br />(帧)</th>
+ <th>缓冲区空间<br />(毫秒)</th>
+ <th>往返<br />延迟时间(毫秒)<br />± 1 个缓冲区</th>
+</tr>
+
+<tr>
+ <td>Nexus One</td>
+ <td>2.3.6</td>
+ <td>GRK39F</td>
+ <td>44100</td>
+ <td>768</td>
+ <td>17.4</td>
+ <td>345</td>
+</tr>
+
+<tr>
+ <td>Nexus S</td>
+ <td>2.3.6</td>
+ <td>GRK39F</td>
+ <td>44100</td>
+ <td>1024</td>
+ <td>23.2</td>
+ <td>260</td>
+</tr>
+
+<tr>
+ <td>Nexus S</td>
+ <td>4.0.4</td>
+ <td>IMM76D</td>
+ <td>44100</td>
+ <td>1024</td>
+ <td>23.2</td>
+ <td>260</td>
+</tr>
+
+<tr>
+ <td>Nexus S</td>
+ <td>4.1.2</td>
+ <td>JZO54K</td>
+ <td>44100</td>
+ <td>880</td>
+ <td>20</td>
+ <td>210</td>
+</tr>
+
+<tr>
+ <td>Galaxy Nexus</td>
+ <td>4.0.1</td>
+ <td>ITL41D</td>
+ <td>44100</td>
+ <td>976</td>
+ <td>22.1</td>
+ <td>270</td>
+</tr>
+
+<tr>
+ <td>Galaxy Nexus</td>
+ <td>4.3</td>
+ <td>JWR66Y</td>
+ <td>44100</td>
+ <td>144</td>
+ <td>3.3</td>
+ <td>130</td>
+</tr>
+
+<tr>
+ <td>Nexus 4</td>
+ <td>4.2.2</td>
+ <td>JDQ39E</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>195</td>
+</tr>
+
+<tr>
+ <td>Nexus 4</td>
+ <td>5.1</td>
+ <td>LMY47O</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>58</td>
+</tr>
+
+<tr>
+ <td>Nexus 10</td>
+ <td>5.0.2</td>
+ <td>LRX22G</td>
+ <td>44100</td>
+ <td>256</td>
+ <td>5.8</td>
+ <td>36</td>
+</tr>
+
+<tr>
+ <td>Nexus 10</td>
+ <td>5.1</td>
+ <td>LMY47D</td>
+ <td>44100</td>
+ <td>256</td>
+ <td>5.8</td>
+ <td>35</td>
+</tr>
+
+<tr>
+ <td>Nexus 7<br />2013</td>
+ <td>4.3</td>
+ <td>JSR78D</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>149</td>
+</tr>
+
+<tr>
+ <td>Nexus 7<br />2013</td>
+ <td>4.4</td>
+ <td>KRT16S</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>85</td>
+</tr>
+
+<tr>
+ <td>Nexus 7<br />2013</td>
+ <td>5.0.2</td>
+ <td>LRX22G</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>64</td>
+</tr>
+
+<tr>
+ <td>Nexus 7<br />2013</td>
+ <td>5.1</td>
+ <td>LMY47O</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>55</td>
+</tr>
+
+<tr>
+ <td>Nexus 7<br />2013</td>
+ <td>6.0</td>
+ <td>MRA58K</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>55</td>
+</tr>
+
+<tr>
+ <td>Nexus 5</td>
+ <td>4.4.4</td>
+ <td>KTU84P</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>95</td>
+</tr>
+
+<tr>
+ <td>Nexus 5</td>
+ <td>5.0.0</td>
+ <td>LRX21O</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>47</td>
+</tr>
+
+<tr>
+ <td>Nexus 5</td>
+ <td>5.1</td>
+ <td>LMY47I</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>42</td>
+</tr>
+
+<tr>
+ <td>Nexus 5</td>
+ <td>6.0</td>
+ <td>MRA58K</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>38</td>
+</tr>
+
+<tr>
+ <td>Nexus 9</td>
+ <td>5.0.0</td>
+ <td>LRX21L</td>
+ <td>48000</td>
+ <td>256</td>
+ <td>5.3</td>
+ <td>35</td>
+</tr>
+
+<tr>
+ <td>Nexus 9</td>
+ <td>5.0.1</td>
+ <td>LRX22C</td>
+ <td>48000</td>
+ <td>256</td>
+ <td>5.3</td>
+ <td>38</td>
+</tr>
+
+<tr>
+ <td>Nexus 9</td>
+ <td>5.1.1</td>
+ <td>LMY47X</td>
+ <td>48000</td>
+ <td>256</td>
+ <td>5.3</td>
+ <td>32</td>
+</tr>
+
+<tr>
+ <td>Nexus 9</td>
+ <td>6.0</td>
+ <td>MRA58K</td>
+ <td>48000</td>
+ <td>128</td>
+ <td>2.6</td>
+ <td>15</td>
+</tr>
+
+<tr>
+ <td>Nexus 6</td>
+ <td>5.0.1</td>
+ <td>LRX22C</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>65</td>
+</tr>
+
+<tr>
+ <td>Nexus 6</td>
+ <td>5.1</td>
+ <td>LMY47I</td>
+ <td>48000</td>
+ <td>240</td>
+ <td>5</td>
+ <td>42</td>
+</tr>
+
+<tr>
+ <td>Nexus 6</td>
+ <td>6.0</td>
+ <td>MRA58K</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>33</td>
+</tr>
+
+<tr>
+ <td>Nexus 5X</td>
+ <td>6.0</td>
+ <td>MDA89E</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Nexus 5X</td>
+ <td>8.0.0</td>
+ <td>OPR4.170623.020</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Nexus 5X</td>
+ <td>8.1.0</td>
+ <td>OPM2.171019.029.C1</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Nexus 6P</td>
+ <td>6.0</td>
+ <td>MDA89D</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Nexus 6P</td>
+ <td>8.0.0</td>
+ <td>OPR5.170623.014</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Nexus 6P</td>
+ <td>8.1.0</td>
+ <td>OPM5.171019.019</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Pixel</td>
+ <td>7.1.2</td>
+ <td>NHG47L</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Pixel</td>
+ <td>8.0.0</td>
+ <td>OPR3.170623.013</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Pixel</td>
+ <td>8.1.0</td>
+ <td>OPM1.171019.021</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Pixel XL</td>
+ <td>7.1.2</td>
+ <td>NHG47L</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+<tr>
+ <td>Pixel XL</td>
+ <td>8.0.0</td>
+ <td>OPR3.170623.013</td>
+ <td>48000</td>
+ <td>192</td>
+ <td>4</td>
+ <td>18</td>
+</tr>
+
+</tbody></table>
+
+<a id="chart"></a>
+<img src="/devices/audio/images/round-trip-latencies.png"/>
+<p class="img-caption"><strong>图 3. </strong> 往返延迟时间。</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/sensors/power-use.html b/zh-cn/devices/sensors/power-use.html
index 0b0f1dfe..ddbe1945 100644
--- a/zh-cn/devices/sensors/power-use.html
+++ b/zh-cn/devices/sensors/power-use.html
@@ -34,7 +34,7 @@
<p>对于低功耗复合传感器类型(如步测器),必须使其在硬件中执行处理流程。</p>
<p>有关具体的功耗要求,请参阅 CDD。建议进行 CTS 测试,以便验证这些功耗要求。</p>
<h2 id="power_measurement_process">功耗测量过程</h2>
-<p>功耗的测量对象是电池。对于以毫瓦计的值,我们使用电池的额定电压,这意味着电压为 4 伏且电流为 1 毫安时必须计为 4 毫瓦。</p>
+<p>功耗测量过程功耗的测量对象是电池。对于以毫瓦计的值,我们使用电池的额定电压,这意味着电压为 4 伏且电流为 1 毫安时必须计为 4 毫瓦。</p>
<p>在 SoC 处于休眠状态时测量功耗,并且计算 SoC 处于休眠状态时几秒钟内的平均值,以便将来自传感器芯片的周期性功耗峰值考虑在内。</p>
<p>对于单次唤醒传感器,在传感器未触发时测量功耗(因此不会唤醒 SoC)。同样,对于其他传感器,在传感器数据存储在硬件 FIFO 中时测量功耗,因此 SoC 不会被唤醒。</p>
<p>当没有传感器处于启用状态时,通常以增量形式测量功耗。
diff --git a/zh-cn/devices/sensors/suspend-mode.html b/zh-cn/devices/sensors/suspend-mode.html
index e59929bd..6111d8de 100644
--- a/zh-cn/devices/sensors/suspend-mode.html
+++ b/zh-cn/devices/sensors/suspend-mode.html
@@ -30,7 +30,7 @@
<p>与非唤醒传感器相反,唤醒传感器会确保其数据传输不依赖于 SoC 状态。当 SoC 唤醒时,唤醒传感器的行为与非唤醒传感器相同。当 SoC 休眠时,唤醒传感器必须唤醒 SoC 以发送事件。它们必须仍可让 SoC 进入挂起模式,但是当需要报告事件时,还必须唤醒 SoC。也就是说,在达到最大报告延迟时间或硬件 FIFO 已满之前,传感器必须唤醒 SoC 并传送事件。有关详情,请参阅<a href="batching.html">批处理</a>。</p>
<p>为确保应用有时间在 SoC 返回休眠状态之前接收事件,每次报告事件时,驱动程序必须持有“超时唤醒锁定”200 毫秒。<em>也就是说,在唤醒中断后的 200 毫秒内,不允许 SoC 返回休眠状态。</em> 此要求将在未来的 Android 版本中消失,在此之前,我们需要该超时唤醒锁定。</p>
<h2 id="how_to_define_wake-up_and_non-wake-up_sensors">如何定义唤醒和非唤醒传感器?</h2>
-<p>在 KitKat 及更早版本中,某个传感器是唤醒传感器还是非唤醒传感器取决于传感器类型:除<a href="sensor-types.html#proximity">接近度</a>传感器和<a href="sensor-types.html#significant_motion">大幅度动作检测器</a>之外,大多数传感器都是非唤醒传感器。</p>
+<p>在 KitKat 及更早版本中,某个传感器是唤醒传感器还是非唤醒传感器取决于传感器类型:除<a href="sensor-types.html#proximity">近程</a>传感器和<a href="sensor-types.html#significant_motion">大幅度动作检测器</a>之外,大多数传感器都是非唤醒传感器。</p>
<p>从 L 版本开始,传感器是否为唤醒传感器由传感器定义中的标记指定。大多数传感器均可由同一传感器的唤醒和非唤醒变体对来定义,在这种情况下,它们必须作为两个独立的传感器运行,且彼此不进行交互。有关详情,请参阅<a href="interaction.html">交互性</a>。</p>
<p>除非在传感器类型定义中另行指定,否则建议为<a href="sensor-types.html">传感器类型</a>中列出的每种传感器类型各实现一个唤醒传感器和一个非唤醒传感器。在每个传感器类型定义中,查看 <code>SensorManager.getDefaultSensor(sensorType)</code> 将返回什么样的传感器(唤醒传感器还是非唤醒传感器)。它是大多数应用将使用的传感器。</p>
diff --git a/zh-cn/devices/sensors/versioning.html b/zh-cn/devices/sensors/versioning.html
index 7a49369f..aedbc487 100644
--- a/zh-cn/devices/sensors/versioning.html
+++ b/zh-cn/devices/sensors/versioning.html
@@ -109,9 +109,9 @@ SENSOR_FLAG_CONTINUOUS_MODE,
<p><code>SENSOR_FLAG_WAKE_UP | SENSOR_FLAG_ONE_SHOT_MODE</code> - <a href="/devices/sensors/report-modes.html#one-shot">单次</a>传感器</p>
-<p><code>SENSOR_FLAG_CONTINUOUS_MODE</code> - <a href="/devices/sensors/report-modes.html#continuous">连续</a>传感器;<code>SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/report-modes.html#on-change">变化模式</a>传感器(<a href="#proximity">接近性</a>传感器除外);<code>SENSOR_FLAG_SPECIAL_REPORTING_MODE</code> - <a href="/devices/sensors/report-modes.html#special">特殊</a>报告模式传感器(<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜检测器</a>传感器除外)。</p>
+<p><code>SENSOR_FLAG_CONTINUOUS_MODE</code> - <a href="/devices/sensors/report-modes.html#continuous">连续模式</a>传感器;<code>SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/report-modes.html#on-change">变化模式</a>传感器(<a href="#proximity">近程</a>传感器除外);<code>SENSOR_FLAG_SPECIAL_REPORTING_MODE</code> - <a href="/devices/sensors/report-modes.html#special">特殊</a>报告模式传感器(<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜探测器</a>传感器除外)。</p>
-<p><code>SENSOR_FLAG_WAKE_UP | SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/sensor-types.html#proximity">近程</a>传感器和 Android 官方<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜检测器</a>传感器。</p>
+<p><code>SENSOR_FLAG_WAKE_UP | SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/sensor-types.html#proximity">近程</a>传感器和 Android 官方<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜探测器</a>传感器。</p>
<h2>从 1_1 或 1_2 升级时的注意事项</h2>
<ul>
diff --git a/zh-cn/devices/tech/config/carrier.html b/zh-cn/devices/tech/config/carrier.html
index 998425ba..920579f7 100644
--- a/zh-cn/devices/tech/config/carrier.html
+++ b/zh-cn/devices/tech/config/carrier.html
@@ -120,7 +120,7 @@
<h3 id="declare_a_class_that_overrides_android_service_carrier_carrierservice">声明一个替换 android.service.carrier.CarrierService 的类</h3>
<ol>
- <li>替换 <code>onLoadConfig</code> 以根据传递的 <code>service.carrier.CarrierIdentifier</code> 对象返回您希望提供的值。
+ <li>替换 <code>onLoadConfig</code> 以根据传递的 <code>service.carrier. CarrierIdentifier</code> 对象返回您希望提供的值。
</li><li>添加逻辑以在运营商配置可能随时间发生改变的情况(例如,当用户向其帐号添加额外服务时)下调用 <code>notifyConfigChangedForSubId</code>
</li></ol>
diff --git a/zh-cn/devices/tech/connect/block-numbers.html b/zh-cn/devices/tech/connect/block-numbers.html
index 3ac9ee31..b2b77c25 100644
--- a/zh-cn/devices/tech/connect/block-numbers.html
+++ b/zh-cn/devices/tech/connect/block-numbers.html
@@ -172,7 +172,8 @@ android.telephony.cts.SmsManagerTest#testSmsBlocking
</pre>
<p>
-在运行 <code>$ adb root</code> 之后,可以使用 <code>adb</code> 命令来操作 <code>BlockedNumberProvider</code>。例如:</p>
+在运行 <code>$ adb root</code> 之后,可以使用 <code>adb</code> 命令来操作 <code>BlockedNumberProvider</code>。例如:
+</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">adb root</code>
<code class="devsite-terminal">adb shell content query --uri content://com.android.blockednumber/blocked</code>
diff --git a/zh-cn/devices/tech/debug/index.html b/zh-cn/devices/tech/debug/index.html
index d1079db7..4bcf7522 100644
--- a/zh-cn/devices/tech/debug/index.html
+++ b/zh-cn/devices/tech/debug/index.html
@@ -67,7 +67,7 @@ Tombstone written to: /data/tombstones/tombstone_06
<p class="key-point"><strong>提示</strong>:为方便起见,如果您已运行 <code>lunch</code>,<code>stack</code> 将自动包含在您的 $PATH 中,因此您无需提供完整路径。</p>
<pre class="devsite-terminal devsite-click-to-copy">
-development/tools/stack
+development/scripts/stack
</pre>
<p>输出示例(基于上述 logcat 输出):</p>
diff --git a/zh-cn/devices/tech/ota/nonab/device_code.html b/zh-cn/devices/tech/ota/nonab/device_code.html
index 58d10a11..36581389 100644
--- a/zh-cn/devices/tech/ota/nonab/device_code.html
+++ b/zh-cn/devices/tech/ota/nonab/device_code.html
@@ -60,7 +60,7 @@ device/yoyodyne/tardis/recovery.fstab
<p>从 Android 3.0 开始,recovery.fstab 文件新添了额外的可选字段,即“options”。<i></i>目前,唯一定义的选项是“length”,它可以让您明确指定分区的长度。<i></i>对分区重新进行格式化(例如,在执行数据清除/恢复出厂设置操作过程中对用户数据分区进行格式化,或在安装完整 OTA 更新包的过程中对系统分区进行格式化)时会使用此长度。如果长度值为负数,则将长度值与真正的分区大小相加,即可得出要格式化的大小。例如,设置“length=-16384”即表示在对该分区重新进行格式化时,该分区的最后 16k 将不会被覆盖。<i></i>该选项支持加密 userdata 分区(在这里,加密元数据会存储在分区中不应被覆盖的末尾部分)等功能。</p>
-<p class="note"><strong>注意</strong>:<b>device2</b> 和 <b>options</b> 字段均为可选字段,在解析时会产生歧义。如果该行第 4 个字段中的条目以“/”字符开头,则被视为 <b>device2</b> 条目;如果该条目不是以“/”字符开头,则被视为 <b>options</b> 字段。</p>
+<p class="note"><strong>注意</strong>:<b>device2</b> 和 <b>options</b> 字段均为选填字段,在解析时会产生歧义。如果该行第 4 个字段中的条目以“/”字符开头,则被视为 <b>device2</b> 条目;如果该条目不是以“/”字符开头,则被视为 <b>options</b> 字段。</p>
<h2 id="boot-animation">启动动画</h2>
@@ -106,7 +106,7 @@ static const char* ITEMS[] = {"reboot system now",
<p class="note"><strong>注意</strong>:过长的行会被截断(而非换行),因此请留意您设备的屏幕宽度。</p>
<h3 id="customize-checkkey">自定义 CheckKey</h3>
-<p>接下来,请定义您设备的 RecoveryUI 实现。本示例假设 <b>tardis</b> 设备配有屏幕,因此您可以沿用内置的 ScreenRecoveryUIimplementation(另请参阅面向<a href="#devices-without-screens">无屏幕设备</a>的说明)。可通过 ScreenRecoveryUI 自定义的唯一函数是 <code>CheckKey()</code>,该函数会执行初始异步键处理操作:</p>
+<p>接下来,请定义您设备的 RecoveryUI 实现。本示例假设 <b>tardis</b> 设备配有屏幕,因此您可以沿用内置的 ScreenRecoveryUIimplementation(另请参阅<a href="#devices-without-screens">无屏幕设备</a>说明)。可通过 ScreenRecoveryUI 自定义的唯一函数是 <code>CheckKey()</code>,该函数会执行初始异步键处理操作:</p>
<pre class="prettyprint">
class TardisUI : public ScreenRecoveryUI {
@@ -164,7 +164,7 @@ class TardisUI : public ScreenRecoveryUI {
<h3 id="screenrecoveryui">ScreenRecoveryUI</h3>
<p>如果您在 ScreenRecoveryUI 中使用自己的图片(错误图标、安装动画、进度条),则可以设置变量 <code>animation_fps</code> 来控制动画的速度(以每秒帧数 (FPS) 为单位)。</p>
-<p class="note"><strong>注意</strong>:最新的 <code>interlace-frames.py</code> 脚本允许您将 <code>animation_fps</code> 信息存储到图片本身中。在早期版本的 Android 中,您必须自行设置 <code>animation_fps</code>。</p>
+<p class="note"><strong>注意</strong>:当前的 <code>interlace-frames.py</code> 脚本允许您将 <code>animation_fps</code> 信息存储到图片本身中。在早期版本的 Android 中,您必须自行设置 <code>animation_fps</code>。</p>
<p>要设置变量 <code>animation_fps</code>,请替换子类中的 <code>ScreenRecoveryUI::Init()</code> 函数。设置值,然后调用 <code>parent Init() </code>函数以完成初始化。默认值 (20 FPS) 对应默认恢复图片;您在使用这些图片时无需提供 <code>Init()</code> 函数。
有关图片的详细信息,请参阅<a href="#recovery-ui-images">恢复界面图片</a>。</p>
diff --git a/zh-cn/devices/tech/perf/boot-times.html b/zh-cn/devices/tech/perf/boot-times.html
index 30531be0..0a25c23a 100644
--- a/zh-cn/devices/tech/perf/boot-times.html
+++ b/zh-cn/devices/tech/perf/boot-times.html
@@ -320,10 +320,10 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
使用以下脚本来帮助分析启动性能。
</p>
<ul>
-<li><code>system/extras/boottime_tools/bootanalyze/bootanalyze.py</code>:负责衡量启动时间,并详细分析启动过程中的重要步骤。
-</li><li><code>system/extras/boottime_tools/io_analysis/check_file_read.py
+<li><code>packages/services/Car/tools/bootanalyze/bootanalyze.py</code>:负责衡量启动时间,并详细分析启动过程中的重要步骤。
+</li><li><code>packages/services/Car/tools/io_analysis/check_file_read.py
boot_trace</code>:提供每个文件的访问信息。
-</li><li><code>system/extras/boottime_tools/io_analysis/check_io_trace_all.py
+</li><li><code>packages/services/Car/tools/io_analysis/check_io_trace_all.py
boot_trace</code>:提供系统级细分信息。</li>
</ul>
@@ -565,4 +565,4 @@ systrace 的可视化可以帮助分析启动过程中的具体问题。(不
<strong>注意</strong>:Chrome 无法处理过大的文件。请考虑使用 <code>tail</code>、<code>head</code> 或 <code>grep</code> 分割 <code>boot_trace</code> 文件,以获得必要的部分。由于事件过多,I/O 分析通常需要直接分析获取的 <code>boot_trace</code>。
</p>
-</body></html>
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/power/index.html b/zh-cn/devices/tech/power/index.html
index aa772e9a..75070bdc 100644
--- a/zh-cn/devices/tech/power/index.html
+++ b/zh-cn/devices/tech/power/index.html
@@ -47,6 +47,6 @@
<p>例如,显示屏电源配置文件列出了当显示屏开启状态下保持最低亮度和最高亮度时需消耗的电流量 (mA)。为了确定显示屏常亮时所需的电源成本(即由显示屏组件所消耗的电池量),框架会跟踪在各个亮度级别下维持的时间,然后将这些时间间隔乘以通过插值算法计算的显示亮度成本。</p>
-<p>该框架还会将每个应用的 CPU 时间乘以在特定速度运行 CPU 所需的毫安量。通过该计算方法可以创建一个应用电池消耗量(通过执行 CPU 代码)的相对排名(应用在前台运行的时间和包含应用后台活动时间的总时间将分开进行报告)。</p>
+<p>该框架还会将每个应用的 CPU 时间乘以在特定速度运行 CPU 所需的毫安量。通过该计算方法,您可以创建一个应用电池消耗量(通过执行 CPU 代码)的相对排名(应用在前台运行的时间和包含应用后台活动时间的总时间将分开进行报告)。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/security/bulletin/2018-08-01.html b/zh-cn/security/bulletin/2018-08-01.html
new file mode 100644
index 00000000..a1575278
--- /dev/null
+++ b/zh-cn/security/bulletin/2018-08-01.html
@@ -0,0 +1,625 @@
+<html devsite><head>
+ <title>Android 安全公告 - 2018 年 8 月</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
+
+ //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><em>发布时间:2018 年 8 月 6 日</em></p>
+
+<p>
+本 Android 安全公告详细介绍了会影响 Android 设备的安全漏洞。安全补丁程序级别为 2018-08-05 或更新的 Android 系统都已解决本公告中所述的所有问题。要了解如何查看设备的安全补丁程序级别,请参阅<a href="https://support.google.com/pixelphone/answer/4457705" class="external">查看并更新 Android 版本</a>。
+</p>
+<p>
+Android 合作伙伴在本公告发布前至少一个月就已收到关于所有问题的通知。我们已将针对这些问题的源代码补丁程序发布到 Android 开源项目 (AOSP) 代码库中,并在本公告中提供了相应链接。本公告中还提供了指向 AOSP 之外的补丁程序的链接。</p>
+<p>这些问题中危险性最高的是一个严重程度为“严重”的漏洞,该漏洞可让远程攻击者利用蓄意创建的文件通过特权进程执行任意代码。<a href="/security/overview/updates-resources.html#severity">严重程度评估</a>的依据是漏洞被利用后可能会对受影响的设备造成的影响(假设相关平台和服务缓解措施被成功规避或出于开发目的而被停用)。
+</p>
+<p>
+尚未有人向我们举报过有用户主动利用或滥用这些新报告的问题。请参阅 <a href="#mitigations">Android 和 Google Play 保护机制提供的缓解措施</a>部分,详细了解有助于提高 Android 平台安全性的 <a href="/security/enhancements/index.html">Android 安全平台防护功能</a>和 Google Play 保护机制。
+</p>
+<p class="note">
+<strong>注意</strong>:如需了解适用于 Google 设备的最新无线下载更新 (OTA) 和固件映像,请参阅 <a href="/security/bulletin/pixel/2018-08-01.html">2018 年 8 月的 Pixel/Nexus 安全公告</a>。
+</p>
+
+<h2 id="mitigations">Android 和 Google 服务缓解措施</h2>
+<p>
+这一部分总结了 <a href="/security/enhancements/index.html">Android 安全平台</a>和服务防护功能(如 <a href="https://www.android.com/play-protect">Google Play 保护机制</a>)提供的缓解措施。这些功能有助于降低 Android 上的安全漏洞被成功利用的可能性。
+</p>
+<ul>
+<li>较高版本的 Android 平台中提供的增强功能让攻击者更加难以利用 Android 上存在的许多问题。我们建议所有用户都尽可能更新到最新版 Android。</li>
+<li>Android 安全团队会积极利用 <a href="https://www.android.com/play-protect" class="external">Google Play 保护机制</a>监控滥用行为,并会在发现<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">可能有害的应用</a>时向用户发出警告。在安装有 <a href="http://www.android.com/gms" class="external">Google 移动服务</a>的设备上,Google Play 保护机制会默认处于启用状态,对于从 Google Play 以外的来源安装应用的用户来说,该功能尤为重要。</li>
+</ul>
+<h2 id="2018-08-01-details">2018-08-01 安全补丁程序级别 - 漏洞详情</h2>
+<p>
+我们在下面提供了 2018-08-01 补丁程序级别涵盖的每个安全漏洞的详细信息,漏洞列在所影响的组件下,内容包括问题描述和一个表,该表中包含 CVE、相关参考内容、<a href="#type">漏洞类型</a>、<a href="/security/overview/updates-resources.html#severity">严重程度</a>和已更新的 AOSP 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代码更改列表),我们会将 Bug ID 链接到该记录。如果某个 Bug 有多条相关的代码更改记录,我们还会通过 Bug ID 后面的数字链接到更多参考内容。
+</p>
+
+<h3 id="framework">框架</h3>
+<p>这一部分中最严重的漏洞可让本地恶意应用绕过用户互动要求来获得额外的权限。</p>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9445</td>
+ <td>
+ <a href="https://android.googlesource.com/platform/external/e2fsprogs/+/9a2d95e4ed9ec5ab76998654b1c2fba9cc139e50">A-80436257</a>
+[<a href="https://android.googlesource.com/platform/system/vold/+/940a1ff70cfc5f2e4de83da9ad84cd9734faadf6">2</a>]</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9438</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/providers/DownloadProvider/+/b552ebf70913cc79085bcc4212235ea45e036d3b">A-78644887</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/e3854655e75d97552140d77cca5d20c121a17ef9">2</a>]
+[<a href="https://android.googlesource.com/platform/frameworks/opt/telephony/+/d1ce32b059bed774b41f11413c1d83a1bc412964">3</a>]
+[<a href="https://android.googlesource.com/platform/frameworks/base/+/97e1cd61d3040dd366ac9e25cdb6f134c7490846">4</a>]</td>
+ <td>DoS</td>
+ <td>高</td>
+ <td>8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9458</td>
+ <td>
+<a href="https://android.googlesource.com/platform/frameworks/base/+/c4f66f4f607654611b2227827123e016c57a5729">A-71786287</a>
+</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9451</td>
+ <td>
+<a href="https://android.googlesource.com/platform/frameworks/base/+/a409aa1214d6483efe129a4966f09aa4fdc097ad">A-79488511</a>
+[<a href="https://android.googlesource.com/platform/frameworks/base/+/1de25074adb5d9ed572d6a85e77d3df5ac3a7e9e">2</a>]
+</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="media-framework">媒体框架</h3>
+<p>这一部分中最严重的漏洞可让远程攻击者利用蓄意创建的文件通过特权进程执行任意代码。</p>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9427</td>
+ <td>
+<a href="https://android.googlesource.com/platform/frameworks/av/+/08d392085c095e227c029f64644bc08ef5a544de">A-77486542</a>
+[<a href="https://android.googlesource.com/platform/frameworks/av/+/c9909e5a980f941a5b72477755e09fb4dc57c478">2</a>]
+</td>
+ <td>RCE</td>
+ <td>严重</td>
+ <td>8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9444</td>
+ <td>A-63521984<a href="#asterisk">*</a></td>
+ <td>DoS</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9437</td>
+ <td>
+<a href="https://android.googlesource.com/platform/frameworks/av/+/017ff33fd419c50734f775d5054e2cbea719700b">A-78656554</a>
+ </td>
+ <td>DoS</td>
+ <td>高</td>
+ <td>6.0、6.0.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">系统</h3>
+<p>这一部分中最严重的漏洞可让远程攻击者利用蓄意创建的文件通过特权进程执行任意代码。</p>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9446</td>
+ <td>
+ <a href="https://android.googlesource.com/platform/system/bt/+/49acada519d088d8edf37e48640c76ea5c70e010">A-80145946</a>
+ </td>
+ <td>RCE</td>
+ <td>严重</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9450</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/bc259b4926a6f9b33b9ee2c917cd83a55f360cbf">A-79541338</a>
+ </td>
+ <td>RCE</td>
+ <td>严重</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9459</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/76c5261a03c8402e893999196651afc5791ca0fd">A-66230183</a>
+ </td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9455</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/d56c7ec9e2ecfa8a8ceeb82f37187e5ea21f2101">A-78136677</a>
+ </td>
+ <td>DoS</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9436</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/289a49814aef7f0f0bb98aac8246080abdfeac01">A-79164722</a>
+ </td>
+ <td>ID</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9454</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/289a49814aef7f0f0bb98aac8246080abdfeac01">A-78286118</a>
+ </td>
+ <td>ID</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9448</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/13294c70a66347c9e5d05b9f92f8ceb6fe38d7f6">A-79944113</a>
+[<a href="https://android.googlesource.com/platform/system/bt/+/f1f1c3e00f8d1baad0215b057e6d894517eeaddb">2</a>]</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9453</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/cb6a56b1d8cdab7c495ea8f53dcbdb3cfc9477d2">A-78288378</a>
+ </td>
+ <td>ID</td>
+ <td>高</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+</tbody></table>
+
+<h2 id="2018-08-05-details">2018-08-05 安全补丁程序级别 - 漏洞详情</h2>
+<p>
+我们在下面提供了 2018-08-05 补丁程序级别涵盖的每个安全漏洞的详细信息,漏洞列在所影响的组件下,内容包括 CVE、相关参考内容、<a href="#type">漏洞类型</a>、<a href="/security/overview/updates-resources.html#severity">严重程度</a>、组件(如果适用)和已更新的 AOSP 版本(如果适用)等详细信息。如果有解决相应问题的公开更改记录(例如 AOSP 代码更改列表),我们会将 Bug ID 链接到该记录。如果某个 Bug 有多条相关的代码更改记录,我们还会通过 Bug ID 后面的数字链接到更多参考内容。
+</p>
+
+<h3 id="kernel-components">内核组件</h3>
+<p>这一部分中最严重的漏洞可让本地恶意应用通过特权进程执行任意代码。</p>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-18249</td>
+ <td>A-78283212<br />
+ <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=30a61ddf8117c26ac5b295e1233eaa9629a94ca3">上游内核</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>F2FS</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9465</td>
+ <td>A-69164715<br />
+ <a href="https://patchwork.kernel.org/patch/10058587/">上游内核</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>binder</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Qualcomm 组件</h3>
+<p>这一部分中最严重的漏洞可导致远程信息泄露,而无需额外的执行权限。</p>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-5383</td>
+ <td>A-79421580<a href="#asterisk">*</a><br />QC-CR#2209635</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>蓝牙</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-13077</td>
+ <td>A-78284758<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=edb507885fc47cf3cdf061bfba1dc77451a6a332">QC-CR#2133033</a></td>
+ <td>ID</td>
+ <td>高</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18281</td>
+ <td>A-78242172<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=69f0a80b8cc1333647397d7bc4f267bd3fe22be9">QC-CR#856388</a></td>
+ <td>ID</td>
+ <td>高</td>
+ <td>视频</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11260</td>
+ <td>A-72997254<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=9fd239116d9cb19a18b3892b8a1f428636ca1453">QC-CR#2204872</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>WLAN</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-closed-source-components">Qualcomm 闭源组件</h3>
+<p>以下漏洞会影响 Qualcomm 组件,相应的 Qualcomm AMSS 安全公告或安全提醒中对这些漏洞进行了详细说明。这些漏洞的严重程度评估是由 Qualcomm 直接提供的。</p>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-18296</td>
+ <td>A-78240731<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>严重</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18305</td>
+ <td>A-78239838<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>严重</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18310</td>
+ <td>A-62211308<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>严重</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18295</td>
+ <td>A-78240386<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18283</td>
+ <td>A-78240411<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18294</td>
+ <td>A-78240247<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18293</td>
+ <td>A-78240316<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18292</td>
+ <td>A-78241027<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18298</td>
+ <td>A-78239976<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18299</td>
+ <td>A-78240418<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18304</td>
+ <td>A-78239975<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18303</td>
+ <td>A-78240396<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18301</td>
+ <td>A-78238455<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18302</td>
+ <td>A-78239233<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18300</td>
+ <td>A-78239508<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18297</td>
+ <td>A-78240275<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18280</td>
+ <td>A-78285512<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18282</td>
+ <td>A-78241591<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18309</td>
+ <td>A-73539064<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18308</td>
+ <td>A-73539310<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11305</td>
+ <td>A-72951032<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11258</td>
+ <td>A-72951054<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>高</td>
+ <td>闭源组件</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">常见问题和解答</h2>
+<p>这一部分解答了用户在阅读本公告后可能会提出的常见问题。</p>
+<p><strong>1. 如何确定我的设备是否已通过更新解决这些问题?</strong></p>
+<p>要了解如何查看设备的安全补丁程序级别,请参阅<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">查看并更新 Android 版本</a>。</p>
+<ul>
+<li>如果安全补丁程序级别是 2018-08-01 或更新,则意味着已解决 2018-08-01 安全补丁程序级别涵盖的所有问题。</li>
+<li>如果安全补丁程序级别是 2018-08-05 或更新,则意味着已解决 2018-08-05 以及之前的所有安全补丁程序级别涵盖的所有问题。</li>
+</ul>
+<p>预装这些更新的设备制造商应将补丁程序字符串级别设为</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-08-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-08-05]</li>
+</ul>
+<p><strong>2. 为何本公告有 2 个安全补丁程序级别?</strong></p>
+<p>
+本公告之所以有 2 个安全补丁程序级别,是为了让 Android 合作伙伴能够灵活地、更快速地修复在各种 Android 设备上类似的一系列漏洞。我们建议 Android 合作伙伴修复本公告中的所有问题并使用最新的安全补丁程序级别。
+</p>
+<ul>
+<li>如果设备使用的是 2018-08-01 这一安全补丁程序级别,则必须包含该安全补丁程序级别涵盖的所有问题以及之前的安全公告中报告的所有问题的修复程序。</li>
+<li>如果设备使用的是 2018-08-05 或更新的安全补丁程序级别,则必须包含本安全公告(以及之前的安全公告)中的所有适用补丁程序。</li>
+</ul>
+<p>
+我们建议合作伙伴将要解决的全部问题的修复程序打包到一个更新中。
+</p>
+<p id="type">
+<strong>3.“类型”列中的条目表示什么意思?<em></em></strong>
+</p>
+<p>
+在漏洞详情表内,“类型”列中的条目是安全漏洞的分类。<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>缩写词</th>
+ <th>定义</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>远程代码执行</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>提权</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>信息披露</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>拒绝服务</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>没有分类</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>4.“参考内容”列中的条目表示什么意思?<em></em></strong>
+</p>
+<p>
+在漏洞详情表内,“参考内容”列中的条目可能包含用于标识参考值所属组织的前缀。<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>前缀</th>
+ <th>参考内容</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android Bug ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm 参考编号</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek 参考编号</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA 参考编号</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom 参考编号</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>5. 在“参考内容”列中,Android Bug ID 旁边的 * 表示什么意思?<em></em></strong>
+</p>
+<p>
+如果问题尚未公开发布,则在“参考内容”列中,相应 Android Bug ID 旁边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备提供的最新二进制驱动程序中通常包含旨在解决相应问题的更新。
+</p>
+<p>
+<strong>6. 为什么要将安全漏洞拆分到本公告和设备 / 合作伙伴安全公告(如 Pixel/Nexus 公告)中?</strong>
+</p>
+<p>
+要在 Android 设备上声明最新的安全补丁程序级别,必须修复本安全公告中记录的安全漏洞。但在声明安全补丁程序级别时,并不是必须要修复设备/合作伙伴安全公告中记录的其他安全漏洞。我们建议 Android 设备和芯片组制造商通过自己的安全网站(例如 <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>、<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> 或 <a href="/security/bulletin/pixel/" class="external">Pixel/Nexus</a> 安全公告)记录其设备上存在的其他修复程序。
+</p>
+
+<h2 id="versions">版本</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>版本</th>
+ <th>日期</th>
+ <th>备注</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 8 月 6 日</td>
+ <td>发布了本公告。</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/security/bulletin/2018.html b/zh-cn/security/bulletin/2018.html
index a56384d0..3a370253 100644
--- a/zh-cn/security/bulletin/2018.html
+++ b/zh-cn/security/bulletin/2018.html
@@ -34,15 +34,24 @@
<th>安全补丁程序级别</th>
</tr>
<tr>
+ <td><a href="/security/bulletin/2018-08-01.html">2018 年 8 月</a></td>
+ <td>即将发布<!--
+ <a href="/security/bulletin/2018-08-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ -->
+ </td>
+ <td>2018 年 8 月 6 日</td>
+ <td>2018-08-01<br />2018-08-05</td>
+ </tr>
+
+ <tr>
<td><a href="/security/bulletin/2018-07-01.html">2018 年 7 月</a></td>
- <td>即将发布 <!--
- <a href="/security/bulletin/2018-07-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
+ <td>
+ <a href="/security/bulletin/2018-07-01.html">English</a> / <a href="/security/bulletin/2018-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-07-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-07-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-07-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-07-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 7 月 2 日</td>
<td>2018-07-01<br />2018-07-05</td>
@@ -50,7 +59,7 @@
<tr>
<td><a href="/security/bulletin/2018-06-01.html">2018 年 6 月</a></td>
<td>
- <a href="/security/bulletin/2018-06-01.html">English</a> / <a href="/security/bulletin/2018-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-06-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-06-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-06-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-06-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2018-06-01.html">English</a> / <a href="/security/bulletin/2018-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-06-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-06-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-06-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-06-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 6 月 4 日</td>
<td>2018-06-01<br />2018-06-05</td>
@@ -58,7 +67,7 @@
<tr>
<td><a href="/security/bulletin/2018-05-01.html">2018 年 5 月</a></td>
<td>
- <a href="/security/bulletin/2018-05-01.html">English</a> / <a href="/security/bulletin/2018-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-05-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-05-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-05-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-05-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2018-05-01.html">English</a> / <a href="/security/bulletin/2018-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-05-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-05-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-05-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-05-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 5 月 7 日</td>
<td>2018-05-01<br />2018-05-05</td>
@@ -66,7 +75,7 @@
<tr>
<td><a href="/security/bulletin/2018-04-01.html">2018 年 4 月</a></td>
<td>
- <a href="/security/bulletin/2018-04-01.html">English</a> / <a href="/security/bulletin/2018-04-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-04-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-04-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-04-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-04-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2018-04-01.html">English</a> / <a href="/security/bulletin/2018-04-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-04-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-04-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-04-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-04-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 4 月 2 日</td>
<td>2018-04-01<br />2018-04-05</td>
@@ -74,7 +83,7 @@
<tr>
<td><a href="/security/bulletin/2018-03-01.html">2018 年 3 月</a></td>
<td>
- <a href="/security/bulletin/2018-03-01.html">English</a> / <a href="/security/bulletin/2018-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-03-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-03-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-03-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2018-03-01.html">English</a> / <a href="/security/bulletin/2018-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-03-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-03-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-03-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 3 月</td>
<td>2018-03-01<br />2018-03-05</td>
@@ -82,7 +91,7 @@
<tr>
<td><a href="/security/bulletin/2018-02-01.html">2018 年 2 月</a></td>
<td>
- <a href="/security/bulletin/2018-02-01.html">English</a> / <a href="/security/bulletin/2018-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-02-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2018-02-01.html">English</a> / <a href="/security/bulletin/2018-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-02-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 2 月</td>
<td>2018-02-01<br />2018-02-05</td>
@@ -90,7 +99,7 @@
<tr>
<td><a href="/security/bulletin/2018-01-01.html">2018 年 1 月</a></td>
<td>
- <a href="/security/bulletin/2018-01-01.html">English</a> / <a href="/security/bulletin/2018-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-01-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2018-01-01.html">English</a> / <a href="/security/bulletin/2018-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-01-01.html?hl=zh-tw">中文(台灣)</a>
</td>
<td>2018 年 1 月</td>
<td>2018-01-01<br />2018-01-05</td>
diff --git a/zh-cn/security/bulletin/index.html b/zh-cn/security/bulletin/index.html
index 27a52fdb..cfcb3dfc 100644
--- a/zh-cn/security/bulletin/index.html
+++ b/zh-cn/security/bulletin/index.html
@@ -55,15 +55,23 @@
<th>安全补丁程序级别</th>
</tr>
<tr>
+ <td><a href="/security/bulletin/2018-08-01.html">2018 年 8 月</a></td>
+ <td>即将发布<!--
+ <a href="/security/bulletin/2018-08-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ -->
+ </td>
+ <td>2018 年 8 月 6 日</td>
+ <td>2018-08-01<br />2018-08-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/2018-07-01.html">2018 年 7 月</a></td>
- <td>即将发布 <!--
- <a href="/security/bulletin/2018-07-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/2018-07-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
+ <td>
+ <a href="/security/bulletin/2018-07-01.html">English</a> / <a href="/security/bulletin/2018-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-07-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2018-07-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2018-07-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2018-07-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2018 年 7 月 2 日</td>
<td>2018-07-01<br />2018-07-05</td>
@@ -189,21 +197,21 @@
</tr>
<tr>
<td><a href="/security/bulletin/2017-03-01.html">2017 年 3 月</a></td>
- <td><a href="/security/bulletin/2017-03-01.html">English</a> / <a href="/security/bulletin/2017-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2017-03-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2017-03-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2017-03-01.html?hl=zh-tw">中文 (台灣)</a>
+ <td><a href="/security/bulletin/2017-03-01.html">English</a> / <a href="/security/bulletin/2017-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2017-03-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2017-03-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2017-03-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2017 年 3 月 6 日</td>
<td>2017-03-01<br />2017-03-05</td>
</tr>
<tr>
<td><a href="/security/bulletin/2017-02-01.html">2017 年 2 月</a></td>
- <td><a href="/security/bulletin/2017-02-01.html">English</a> / <a href="/security/bulletin/2017-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2017-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2017-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2017-02-01.html?hl=zh-tw">中文 (台灣)</a>
+ <td><a href="/security/bulletin/2017-02-01.html">English</a> / <a href="/security/bulletin/2017-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2017-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2017-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2017-02-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2017 年 2 月 6 日</td>
<td>2017-02-01<br />2017-02-05</td>
</tr>
<tr>
<td><a href="/security/bulletin/2017-01-01.html">2017 年 1 月</a></td>
- <td><a href="/security/bulletin/2017-01-01.html">English</a> / <a href="/security/bulletin/2017-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2017-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2017-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2017-01-01.html?hl=zh-tw">中文 (台灣)</a>
+ <td><a href="/security/bulletin/2017-01-01.html">English</a> / <a href="/security/bulletin/2017-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2017-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2017-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2017-01-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2017 年 1 月 3 日</td>
<td>2017-01-01<br />2017-01-05</td>
@@ -211,7 +219,7 @@
<tr>
<td><a href="/security/bulletin/2016-12-01.html">2016 年 12 月</a></td>
<td>
- <a href="/security/bulletin/2016-12-01.html">English</a> / <a href="/security/bulletin/2016-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-12-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-12-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-12-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-12-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-12-01.html">English</a> / <a href="/security/bulletin/2016-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-12-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-12-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-12-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-12-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 12 月 5 日</td>
<td>2016-12-01<br />2016-12-05</td>
@@ -219,7 +227,7 @@
<tr>
<td><a href="/security/bulletin/2016-11-01.html">2016 年 11 月</a></td>
<td>
- <a href="/security/bulletin/2016-11-01.html">English</a> / <a href="/security/bulletin/2016-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-11-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-11-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-11-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-11-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-11-01.html">English</a> / <a href="/security/bulletin/2016-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-11-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-11-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-11-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-11-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 11 月 7 日</td>
<td>2016-11-01<br />2016-11-05<br />2016-11-06</td>
@@ -227,7 +235,7 @@
<tr>
<td><a href="/security/bulletin/2016-10-01.html">2016 年 10 月</a></td>
<td>
- <a href="/security/bulletin/2016-10-01.html">English</a> / <a href="/security/bulletin/2016-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-10-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-10-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-10-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-10-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-10-01.html">English</a> / <a href="/security/bulletin/2016-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-10-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-10-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-10-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-10-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 10 月 3 日</td>
<td>2016-10-01<br />2016-10-05</td>
@@ -235,7 +243,7 @@
<tr>
<td><a href="/security/bulletin/2016-09-01.html">2016 年 9 月</a></td>
<td>
- <a href="/security/bulletin/2016-09-01.html">English</a> / <a href="/security/bulletin/2016-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-09-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-09-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-09-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-09-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-09-01.html">English</a> / <a href="/security/bulletin/2016-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-09-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-09-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-09-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-09-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 9 月 6 日</td>
<td>2016-09-01<br />2016-09-05<br />2016-09-06</td>
@@ -243,7 +251,7 @@
<tr>
<td><a href="/security/bulletin/2016-08-01.html">2016 年 8 月</a></td>
<td>
- <a href="/security/bulletin/2016-08-01.html">English</a> / <a href="/security/bulletin/2016-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-08-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-08-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-08-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-08-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-08-01.html">English</a> / <a href="/security/bulletin/2016-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-08-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-08-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-08-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-08-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 8 月 1 日</td>
<td>2016-08-01<br />2016-08-05</td>
@@ -251,7 +259,7 @@
<tr>
<td><a href="/security/bulletin/2016-07-01.html">2016 年 7 月</a></td>
<td>
- <a href="/security/bulletin/2016-07-01.html">English</a> / <a href="/security/bulletin/2016-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-07-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-07-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-07-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-07-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-07-01.html">English</a> / <a href="/security/bulletin/2016-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-07-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-07-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-07-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-07-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 7 月 6 日</td>
<td>2016-07-01<br />2016-07-05</td>
@@ -259,7 +267,7 @@
<tr>
<td><a href="/security/bulletin/2016-06-01.html">2016 年 6 月</a></td>
<td>
- <a href="/security/bulletin/2016-06-01.html">English</a> / <a href="/security/bulletin/2016-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-06-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-06-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-06-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-06-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-06-01.html">English</a> / <a href="/security/bulletin/2016-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-06-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-06-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-06-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-06-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 6 月 6 日</td>
<td>2016-06-01</td>
@@ -267,7 +275,7 @@
<tr>
<td><a href="/security/bulletin/2016-05-01.html">2016 年 5 月</a></td>
<td>
- <a href="/security/bulletin/2016-05-01.html">English</a> / <a href="/security/bulletin/2016-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-05-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-05-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-05-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-05-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-05-01.html">English</a> / <a href="/security/bulletin/2016-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-05-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-05-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-05-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-05-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 5 月 2 日</td>
<td>2016-05-01</td>
@@ -275,7 +283,7 @@
<tr>
<td><a href="/security/bulletin/2016-04-02.html">2016 年 4 月</a></td>
<td>
- <a href="/security/bulletin/2016-04-02.html">English</a> / <a href="/security/bulletin/2016-04-02.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-04-02.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-04-02.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-04-02.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-04-02.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-04-02.html">English</a> / <a href="/security/bulletin/2016-04-02.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-04-02.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-04-02.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-04-02.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-04-02.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 4 月 4 日</td>
<td>2016-04-02</td>
@@ -283,7 +291,7 @@
<tr>
<td><a href="/security/bulletin/2016-03-01.html">2016 年 3 月</a></td>
<td>
- <a href="/security/bulletin/2016-03-01.html">English</a> / <a href="/security/bulletin/2016-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-03-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-03-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-03-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-03-01.html">English</a> / <a href="/security/bulletin/2016-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-03-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-03-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-03-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 3 月 7 日</td>
<td>2016-03-01</td>
@@ -291,7 +299,7 @@
<tr>
<td><a href="/security/bulletin/2016-02-01.html">2016 年 2 月</a></td>
<td>
- <a href="/security/bulletin/2016-02-01.html">English</a> / <a href="/security/bulletin/2016-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-02-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-02-01.html">English</a> / <a href="/security/bulletin/2016-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-02-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 2 月 1 日</td>
<td>2016-02-01</td>
@@ -299,7 +307,7 @@
<tr>
<td><a href="/security/bulletin/2016-01-01.html">2016 年 1 月</a></td>
<td>
- <a href="/security/bulletin/2016-01-01.html">English</a> / <a href="/security/bulletin/2016-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-01-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2016-01-01.html">English</a> / <a href="/security/bulletin/2016-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2016-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2016-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2016-01-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2016 年 1 月 4 日</td>
<td>2016-01-01</td>
@@ -307,7 +315,7 @@
<tr>
<td><a href="/security/bulletin/2015-12-01.html">2015 年 12 月</a></td>
<td>
- <a href="/security/bulletin/2015-12-01.html">English</a> / <a href="/security/bulletin/2015-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-12-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-12-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-12-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-12-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2015-12-01.html">English</a> / <a href="/security/bulletin/2015-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-12-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-12-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-12-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-12-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2015 年 12 月 7 日</td>
<td>2015-12-01</td>
@@ -315,7 +323,7 @@
<tr>
<td><a href="/security/bulletin/2015-11-01.html">2015 年 11 月</a></td>
<td>
- <a href="/security/bulletin/2015-11-01.html">English</a> / <a href="/security/bulletin/2015-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-11-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-11-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-11-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-11-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2015-11-01.html">English</a> / <a href="/security/bulletin/2015-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-11-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-11-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-11-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-11-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2015 年 11 月 2 日</td>
<td>2015-11-01</td>
@@ -323,7 +331,7 @@
<tr>
<td><a href="/security/bulletin/2015-10-01.html">2015 年 10 月</a></td>
<td>
- <a href="/security/bulletin/2015-10-01.html">English</a> / <a href="/security/bulletin/2015-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-10-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-10-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-10-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-10-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2015-10-01.html">English</a> / <a href="/security/bulletin/2015-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-10-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-10-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-10-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-10-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2015 年 10 月 5 日</td>
<td>2015-10-01</td>
@@ -331,7 +339,7 @@
<tr>
<td><a href="/security/bulletin/2015-09-01.html">2015 年 9 月</a></td>
<td>
- <a href="/security/bulletin/2015-09-01.html">English</a> / <a href="/security/bulletin/2015-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-09-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-09-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-09-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-09-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2015-09-01.html">English</a> / <a href="/security/bulletin/2015-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-09-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-09-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-09-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-09-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2015 年 9 月 9 日</td>
<td>N/A</td>
@@ -339,7 +347,7 @@
<tr>
<td><a href="/security/bulletin/2015-08-01.html">2015 年 8 月</a></td>
<td>
- <a href="/security/bulletin/2015-08-01.html">English</a> / <a href="/security/bulletin/2015-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-08-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-08-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-08-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-08-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/2015-08-01.html">English</a> / <a href="/security/bulletin/2015-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-08-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/2015-08-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/2015-08-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/2015-08-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2015 年 8 月 13 日</td>
<td>N/A</td>
diff --git a/zh-cn/security/bulletin/pixel/2018-08-01.html b/zh-cn/security/bulletin/pixel/2018-08-01.html
new file mode 100644
index 00000000..470b90f0
--- /dev/null
+++ b/zh-cn/security/bulletin/pixel/2018-08-01.html
@@ -0,0 +1,508 @@
+<html devsite><head>
+ <title>Pixel /Nexus 安全公告 - 2018 年 8 月</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
+
+ //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><em>发布时间:2018 年 8 月 6 日</em></p>
+
+<p>
+本 Pixel/Nexus 安全公告详细介绍了会影响<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">受支持的 Google Pixel 和 Nexus 设备</a>(Google 设备)的安全漏洞和功能改进。
+对于 Google 设备,如果安全补丁程序级别是 2018-08-05 或更新,则意味着已解决本公告以及 2018 年 8 月的 Android 安全公告中所述的所有问题。要了解如何查看设备的安全补丁程序级别,请参阅<a href="https://support.google.com/pixelphone/answer/4457705" class="external">查看并更新 Android 版本</a>。
+</p>
+<p>
+所有受支持的 Google 设备都将会收到 2018-08-05 补丁程序级别的更新。我们建议所有用户都在自己的设备上接受这些更新。
+</p>
+<p class="note">
+<strong>注意</strong>:可在 <a href="https://developers.google.com/android/images" class="external">Google Developers 网站</a>上找到 Google 设备固件映像。
+</p>
+
+<h2 id="announcements">通知</h2>
+<p>除了 2018 年 8 月的 Android 安全公告中所述的安全漏洞外,Google 设备中还包含针对下述安全漏洞的补丁程序。合作伙伴在至少一个月前就已收到关于这些问题的通知,并可以选择将针对这些问题的补丁程序纳入到其设备更新中。</p>
+
+<h2 id="security-patches">安全补丁程序</h2>
+<p>
+漏洞列在所影响的组件下,内容包括问题描述和一个表,该表中包含 CVE、相关参考内容、<a href="#type">漏洞类型</a>、<a href="/security/overview/updates-resources.html#severity">严重程度</a>和已更新的 Android 开源项目 (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代码更改列表),我们会将 Bug ID 链接到该记录。如果某个 Bug 有多条相关的代码更改记录,我们还会通过 Bug ID 后面的数字链接到更多参考内容。
+</p>
+
+<h3 id="framework">框架</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-1000100</td>
+ <td>
+<a href="https://android.googlesource.com/platform/external/curl/+/1506c0316973bd95d7832891b1aa2258b52a793d">A-64610131</a>
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">系统</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9435</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/51b05b715024adff4fa59ab2e18c0b56c5d3af5e">A-79591688</a>
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9461</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/apps/Messaging/+/17a2579a0aa603a3a7d94e5dc64afeb96e430e8f">A-37629504</a>
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9449</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/27b90f4f6fe3811335e9bb4fac4656bc1df49204">A-79884292</a>
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9457</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/apps/Settings/+/a3e94449c8fe0a377b61747b6129fafc930da086">A-72872376</a>
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9441</td>
+ <td>
+<a href="https://android.googlesource.com/platform/system/bt/+/c3c69bed0f76178c640dd8e726967b9cdea5dece">A-74075873</a>
+[<a href="https://android.googlesource.com/platform/system/bt/+/3a2799939b2da543ed3a62f29db658cb05f8ad3b">2</a>]
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-13322</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/services/Telephony/+/c25745addd19b1549b7ec5bdc46d8bf1a1de37ed">A-67862398</a>
+</td>
+ <td>DoS</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9447</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/services/Telephony/+/19c48992b79df89c730f3619eb69baf03d449e95">A-79995313</a>
+</td>
+ <td>DoS</td>
+ <td>中</td>
+ <td>6.0、6.0.1、8.0, 8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="kernel-components">内核组件</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9462</td>
+ <td>A-78364203<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>触摸屏</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9439</td>
+ <td>A-79377438<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>网络堆栈</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9463</td>
+ <td>A-78362414<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>触摸屏</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-1068</td>
+ <td>A-77902350<br />
+ <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b71812168571fa55e44cdd0254471331b9c4c4c6">上游内核</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>防火墙</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9464</td>
+ <td>A-68993267<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>Taimen 引导加载程序</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Qualcomm 组件</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11263</td>
+ <td>A-79422278<a href="#asterisk">*</a><br />QC-CR#2209106</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8261</td>
+ <td>A-35139833<a href="#asterisk">*</a><br />QC-CR#2013631</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>摄像头驱动程序</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5910</td>
+ <td>A-79422277<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=b67e04e3696f05411b7434c8b194895d273b00c5">
+QC-CR#2175499</a>
+[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=d9344c2f4b60cf5d4c747c11f3cb0b6f1558db78">2</a>]
+</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>MDSS</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5909</td>
+ <td>A-79421262<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2c1716c5afd660651724b6088f2e6301272f4926">QC-CR#2174716</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>旋转器</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5908</td>
+ <td>A-79422409<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=28e5918c60b832091c6b3618747258803cbd3302">QC-CR#2171758</a>
+[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=4689d03e5db548d263232c274bf307956207da27">2</a>]</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>MDSS</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5905</td>
+ <td>A-79421261<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=6eb2f4f6fde1b210712d6ac66b40b9e7684d77db">QC-CR#2169715</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>Diag 驱动程序</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5904</td>
+ <td>A-79421260<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=88b838c8952ec6414c72449ae15768d15d2606dd">QC-CR#2184702</a>
+[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=8e82c0d84ccee87309fd22f8208915f0ba502b26">2</a>]</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>电源驱动程序</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5903</td>
+ <td>A-79421737<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=20365fa599f42f6e1f175d9d5d60d964927c2160">QC-CR#2185477</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>qcacld 3.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18306</td>
+ <td>A-73889358<a href="#asterisk">*</a><br />QC-CR#2216399</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>v4l2</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18307</td>
+ <td>A-73888283<a href="#asterisk">*</a><br />QC-CR#2026045</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>qcacld-3.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-9711</td>
+ <td>A-36367253<a href="#asterisk">*</a><br />QC-CR#2046006</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>IPA</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3587</td>
+ <td>A-65542521<a href="#asterisk">*</a><br />QC-CR#2120605</td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>qcacld-2.0</td>
+ </tr>
+</tbody></table>
+
+<h3 id="update:-framework">更新:框架</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-13295</td>
+ <td>
+<a href="https://android.googlesource.com/platform/frameworks/base/+/da24aa45a8b65a7b9adbe12ff94bf891bdd38825">A-62537081</a>
+[<a href="https://android.googlesource.com/platform/packages/apps/PackageInstaller/+/3af01bd93513d902dbb5382b10109fdf3ab29d2d">2</a>]
+</td>
+ <td>DoS</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="update:-system">更新:系统</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-13242</td>
+ <td>
+<a href="https://android.googlesource.com/platform/packages/apps/Settings/+/f973e707f50adc0c21599e719be06714f808a333">A-62672248</a>
+</td>
+ <td>ID</td>
+ <td>中</td>
+ <td>6.0、6.0.1、7.0、7.1.1、7.1.2、8.0、8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="update:-qualcomm-components">更新:Qualcomm 组件</h3>
+
+<table>
+ <colgroup><col width="21%" />
+ <col width="21%" />
+ <col width="14%" />
+ <col width="14%" />
+ <col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>参考内容</th>
+ <th>类型</th>
+ <th>严重程度</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-15817</td>
+ <td>A-68992394<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=fe43c2b64ac81199de17efc258e95546cb0546f1">QC-CR#2076603</a>
+[<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=8ba78e506e5002cdae525dd544dbf1df0ccce1ef">2</a>]
+<br />
+<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=343a3f28338788c5c91289f53171c1f71f293cd7">QC-CR#2084599</a>
+<br />
+<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=0c21aaa2fefa6c5919813fdd287436dddda54227">QC-CR#2096512</a>
+</td>
+ <td>RCE</td>
+ <td>严重</td>
+ <td>WLAN</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">常见问题和解答</h2>
+<p>
+这一部分解答了用户在阅读本公告后可能会提出的常见问题。
+</p>
+<p>
+<strong>1. 如何确定我的设备是否已通过更新解决这些问题?
+</strong>
+</p>
+<p>
+如果安全补丁程序级别是 2018-08-05 或更新,则意味着已解决 2018-08-05 以及之前的所有安全补丁程序级别涵盖的所有问题。要了解如何查看设备的安全补丁程序级别,请参阅 <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Pixel 和 Nexus 更新时间表</a>中的说明。
+</p>
+<p id="type">
+<strong>2.“类型”列中的条目表示什么意思?<em></em></strong>
+</p>
+<p>
+在漏洞详情表内,“类型”列中的条目是安全漏洞的分类。<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>缩写词</th>
+ <th>定义</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>远程代码执行</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>提权</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>信息披露</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>拒绝服务</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>没有分类</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>3.“参考内容”列中的条目表示什么意思?<em></em></strong>
+</p>
+<p>
+在漏洞详情表内,“参考内容”列中的条目可能包含用于标识参考值所属组织的前缀。<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>前缀</th>
+ <th>参考内容</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android Bug ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm 参考编号</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek 参考编号</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA 参考编号</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom 参考编号</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>4. 在“参考内容”列中,Android Bug ID 旁边的 * 表示什么意思?<em></em></strong>
+</p>
+<p>
+如果问题尚未公开发布,则在“参考内容”列中,相应 Android Bug ID 旁边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备提供的最新二进制驱动程序中通常包含旨在解决相应问题的更新。
+</p>
+<p>
+<strong>5. 为什么要将安全漏洞拆分到本公告和 Android 安全公告中?</strong>
+</p>
+<p>
+要在 Android 设备上声明最新的安全补丁程序级别,必须修复 Android 安全公告中记录的安全漏洞。但在声明安全补丁程序级别时,并不是必须要修复其他安全漏洞(如本公告中记录的漏洞)。
+</p>
+<h2 id="versions">版本</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>版本</th>
+ <th>日期</th>
+ <th>备注</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 8 月 6 日</td>
+ <td>发布了本公告。</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/security/bulletin/pixel/2018.html b/zh-cn/security/bulletin/pixel/2018.html
index 81e67b79..244a9a56 100644
--- a/zh-cn/security/bulletin/pixel/2018.html
+++ b/zh-cn/security/bulletin/pixel/2018.html
@@ -34,15 +34,23 @@
<th>安全补丁程序级别</th>
</tr>
<tr>
- <td><a href="/security/bulletin/pixel/2018-07-01.html">2018 年 7 月</a></td>
- <td>即将发布<!--
- <a href="/security/bulletin/pixel/2018-07-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ <td><a href="/security/bulletin/pixel/2018-08-01.html">2018 年 8 月</a></td>
+ <td>即将发布<!--
+ <a href="/security/bulletin/pixel/2018-08-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
-->
+ </td>
+ <td>2018 年 8 月 6 日</td>
+ <td>2018-08-05</td>
+ </tr>
+ <tr>
+ <td><a href="/security/bulletin/pixel/2018-07-01.html">2018 年 7 月</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-07-01.html">English</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2018 年 7 月 2 日</td>
<td>2018-07-05</td>
diff --git a/zh-cn/security/bulletin/pixel/index.html b/zh-cn/security/bulletin/pixel/index.html
index 6cd138bb..90e46b86 100644
--- a/zh-cn/security/bulletin/pixel/index.html
+++ b/zh-cn/security/bulletin/pixel/index.html
@@ -43,15 +43,23 @@
<th>安全补丁程序级别</th>
</tr>
<tr>
- <td><a href="/security/bulletin/pixel/2018-07-01.html">2018 年 7 月</a></td>
- <td>即将发布<!--
- <a href="/security/bulletin/pixel/2018-07-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ <td><a href="/security/bulletin/pixel/2018-08-01.html">2018 年 8 月</a></td>
+ <td>即将发布<!--
+ <a href="/security/bulletin/pixel/2018-08-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
-->
+ </td>
+ <td>2018 年 8 月 6 日</td>
+ <td>2018-08-05</td>
+ </tr>
+ <tr>
+ <td><a href="/security/bulletin/pixel/2018-07-01.html">2018 年 7 月</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-07-01.html">English</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2018 年 7 月 2 日</td>
<td>2018-07-05</td>
diff --git a/zh-cn/security/selinux/customize.html b/zh-cn/security/selinux/customize.html
index 995a10d1..3ef367ef 100644
--- a/zh-cn/security/selinux/customize.html
+++ b/zh-cn/security/selinux/customize.html
@@ -24,19 +24,19 @@
<aside class="note"><strong>注意</strong>:要详细了解如何在 Android 8.0 中自定义 SELinux,请参阅 <a href="/security/selinux/images/SELinux_Treble.pdf">SELinux for Android 8.0</a>。</aside>
-<p>制造商不得移除现有的安全设置,否则可能会破坏 Android SELinux 实现及其管控的应用。这包括可能需要进行改进以符合政策并正常运行的第三方应用。应用必须无需进行任何修改即可继续在启用了 SELinux 的设备上正常运行。</p>
+<p>制造商不得移除现有的安全设置,否则可能会破坏 Android SELinux 的实现及其管控的应用。这包括可能需要改进以符合政策并正常运行的第三方应用。应用必须无需进行任何修改即可继续在启用了 SELinux 的设备上正常运行。</p>
-<p>当开始着手自定义 SELinux 时,制造商应记得做以下事情:</p>
+<p>当开始自定义 SELinux 时,制造商应进行如下操作:</p>
<ul>
<li>为所有新的守护进程编写 SELinux 政策</li><li>尽可能使用预定义的域</li><li>为作为 <code>init</code> 服务衍生的所有进程分配域</li><li>在编写政策之前先熟悉相关的宏</li><li>向 AOSP 提交对核心政策进行的更改</li></ul>
-<p>不要做以下事情:</p>
+<p>避免如下操作:</p>
<ul>
<li>创建不兼容的政策</li><li>允许对最终用户政策进行自定义</li><li>允许对 MDM 政策进行自定义</li><li>恐吓违反政策的用户</li><li>添加后门程序</li></ul>
-<p>要查看具体要求,请参阅 <a href="/compatibility/android-cdd.pdf">Android 兼容性定义文档</a>中的“内核安全功能”部分。<em></em></p>
+<p><em></em>要查看具体要求,请参阅 <a href="/compatibility/android-cdd.pdf">Android 兼容性定义文档</a>中的“内核安全功能”部分。</p>
<p>SELinux 采用白名单方法,这意味着只能授予政策中明确允许的访问权限。由于 Android 的默认 SELinux 政策已经支持 Android 开放源代码项目,因此原始设备制造商 (OEM) 无需以任何方式修改 SELinux 设置。如果他们要自定义 SELinux 设置,则应格外谨慎,以免破坏现有应用。以下是我们建议的做法:</p>
@@ -213,7 +213,7 @@ read_policy</pre>
</tr>
<tr>
<td>
-<p>功能</p>
+<p>权能</p>
</td>
<td>
<pre>
@@ -242,8 +242,8 @@ audit_control setfcap</pre>
<p>以下准则旨在协助制造商在自定义过程中避免与 <code>neverallow</code> 规则相关的错误。此处使用的规则编号与 Android 5.1 中使用的编号一致,并且会因版本而异。</p>
<p>规则 48:<code>neverallow { domain -debuggerd -vold -dumpstate
--system_server } self:capability sys_ptrace;</code><br />请参阅 <code>ptrace</code> 的帮助页面。<code>sys_ptrace</code> 功能用于授予对任何进程执行 <code>ptrace</code> 命令的权限。拥有该权限后,可以对其他进程进行广泛的控制。应该只有该规则中列出的指定系统组件享有该权限。如果需要该功能,则通常表明存在的某些内容不适用于面向用户的版本或存在不需要的功能。请移除不必要的组件。</p>
+-system_server } self:capability sys_ptrace;</code><br />请参阅 <code>ptrace</code> 的帮助页面。<code>sys_ptrace</code> 权能用于授予对任何进程执行 <code>ptrace</code> 命令的权限。拥有该权限后,可以对其他进程进行广泛的控制。只有该规则中列出的指定系统组件才能享有该权限。如果需要该权能,则通常表明存在的某些内容不适用于面向用户的版本或存在不需要的功能。请移除不必要的组件。</p>
-<p>规则 76:<code>neverallow { domain -appdomain -dumpstate -shell -system_server -zygote } { file_type -system_file -exec_type }:file execute;</code><br />该规则旨在防止执行系统中的任意代码。具体来说就是,该规则声明仅执行 <code>/system</code> 中的代码,以便通过验证启动等机制实现安全保证。通常,在遇到与这个 <code>neverallow</code> 规则相关的问题时,最好的解决办法是将违规代码移到 <code>/system</code> 分区。</p>
+<p>规则 76:<code>neverallow { domain -appdomain -dumpstate -shell -system_server -zygote } { file_type -system_file -exec_type }:file execute;</code><br />该规则旨在防止执行系统中的任意代码。具体来说,该规则声明仅执行 <code>/system</code> 中的代码,以便通过验证启动等机制实现安全保证。通常,在遇到与这个 <code>neverallow</code> 规则相关的问题时,最好的解决办法是将违规代码移到 <code>/system</code> 分区。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/build/devices.html b/zh-cn/setup/build/devices.html
index ab2e16d8..40f38152 100644
--- a/zh-cn/setup/build/devices.html
+++ b/zh-cn/setup/build/devices.html
@@ -28,28 +28,20 @@
<h2 id="960hikey">HiKey960 开发板</h2>
-<p>HiKey960 开发板由 <a href="https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Delectronics&field-keywords=hikey960" class="external">Amazon.com</a> 和 <a href="http://www.lenovator.com/product/80.html" class="external">Lenovator</a><a> 提供,采用 3GB RAM 配置。
+<p>HiKey960 开发板由 Amazon.com 和 <a href="http://www.lenovator.com/product/80.html" class="external">Lenovator</a><a> 提供。
</a></p><a>
<img src="../images/hikey960.png" alt="HiKey960 开发板图片"/>
<figcaption><strong>图 1.</strong> Lenovator 提供的 HiKey960 开发板</figcaption>
<h3 id="additional-resources">其他资源</h3>
-</a><ul><a>
-</a><li><a>
-</a><a href="https://github.com/96boards/documentation/blob/master/consumer/hikey960/hardware-docs/HiKey960_Schematics.pdf" class="external">HiKey960 示意图
-</a></li>
-<li>
-<a href="https://github.com/96boards/documentation/blob/master/consumer/hikey960/hardware-docs/hardware-user-manual.md" class="external">HiKey960 用户指南</a></li>
-<li>
-<a href="https://github.com/96boards/documentation/tree/master/consumer/hikey960/hardware-docs" class="external">HiKey960 硬件文档目录</a></li>
-<li>
-<a href="https://github.com/96boards/documentation/wiki/" class="external">96boards Wiki</a></li>
-</ul>
-<p>您可以使用以下命令下载、编译 Android 并在 HiKey960 开发板上运行 Android。</p>
+</a><a href="https://github.com/96boards/documentation/wiki/" class="external">96boards Wiki</a>
<h3 id="960userspace">编译用户空间</h3>
+
+<p>您可以使用以下命令下载、编译 Android 并在 HiKey960 开发板上运行 Android。</p>
+
<ol>
<li>下载 Android 源代码树:
<pre class="devsite-click-to-copy">
@@ -132,24 +124,20 @@ fastboot getvar nve:SN@<var>16_DIGIT_NUMBER</var>
<h2 id="620hikey">HiKey 开发板</h2>
-<p>HiKey 开发板(也称为 HiKey620)由 <a href="http://www.lenovator.com/product/86.html" class="external">Lenovator</a> 提供,有 <a href="http://www.lenovator.com/product/90.html" class="external">1GB RAM</a> 和 <a href="http://www.lenovator.com" class="external">2GB RAM</a> 配置可供选择:
+<p>HiKey 开发板(也称为 HiKey620)由 <a href="http://www.lenovator.com" class="external">Lenovator</a> 提供,有 <a href="http://www.lenovator.com/product/86.html" class="external">1GB RAM</a> 和 <a href="http://www.lenovator.com/product/90.html" class="external">2GB RAM</a> 配置可供选择:
</p>
<img src="../images/hikey620.png" alt="HiKey620 开发板图片"/>
<figcaption><strong>图 2.</strong> Lenovator 提供的 HiKey 开发板</figcaption>
<p>其他资源:</p>
-<ul>
-<li>
-<a href="https://github.com/96boards/documentation/blob/master/ConsumerEdition/HiKey/HardwareDocs/HiKey_schematics_LeMaker_version_Rev_A1.pdf" class="external">HiKey 示意图</a></li>
-<li>
-<a href="https://www.96boards.org/wp-content/uploads/2015/02/HiKey_User_Guide_Rev0.2.pdf" class="external">HiKey 用户指南</a></li>
-<li><a href="https://github.com/96boards/documentation/wiki/" class="external">96boards Wiki</a></li>
-</ul>
-<p>您可以使用以下命令下载、编译 Android 并在 HiKey 开发板上运行 Android。</p>
+<a href="https://github.com/96boards/documentation/wiki/" class="external">96boards Wiki</a>
<h3 id="620userspace">编译用户空间</h3>
+
+<p>您可以使用以下命令下载、编译 Android 并在 HiKey 开发板上运行 Android。</p>
+
<ol>
<li>下载 Android 源代码树:
<pre class="devsite-click-to-copy">
@@ -175,7 +163,7 @@ apt-get install mtools
<h3 id="620fastboot">安装初始 fastboot 和 ptable</h3>
<ol>
- <li>连接 J15 1-2 和 3-4 引脚,从而选择特殊的引导加载程序模式(有关详情,请参阅 <a href="https://github.com/96boards/documentation/blob/master/consumer/hikey/hardware-docs/HiKey_Hardware_User_Manual_Rev0.2.pdf" class="external">HiKey 用户指南</a>)。</li>
+ <li>连接 J15 1-2 和 3-4 引脚,从而选择特殊的引导加载程序模式。</li>
<li>将 USB 连接到 PC,以获取 ttyUSB 设备(例如:<code>/dev/ttyUSB1</code>)。</li>
<li>为开发板接通电源:
<pre class="devsite-click-to-copy">
@@ -229,7 +217,7 @@ make bootimage -j24
以下是 24 英寸显示器的示例设置:<code>video=HDMI-A-1:1280x800@60</code>。</p>
<h3 id="620serial">配置内核串行输出 (uart3)</h3>
-<p>将 J2 低速扩展连接器设为 1 - Gnd、11 - Rx、13 - Tx。有关详情,请参阅 <a href="https://www.96boards.org/wp-content/uploads/2015/02/HiKey_User_Guide_Rev0.2.pdf" class="external">HiKey 用户指南</a>。</p>
+<p>将 J2 低速扩展连接器设为 1 - Gnd、11 - Rx、13 - Tx。</p>
<h2 id="neonkey">Neonkey SensorHub</h2>
<p>要开发采用新传感器或 LED 的新 ContextHub 功能,您可以使用连接到 HiKey 或 Hikey960 开发板的 <a href="http://www.96boards.org/product/neonkey/" class="external">Neonkey SensorHub</a>。</p>
diff --git a/zh-cn/setup/build/running.html b/zh-cn/setup/build/running.html
index 3e4c6738..6f7a20f1 100644
--- a/zh-cn/setup/build/running.html
+++ b/zh-cn/setup/build/running.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>运行编译系统</title>
+ <title>运行版本</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
diff --git a/zh-cn/setup/start/brands.html b/zh-cn/setup/start/brands.html
index 94519263..e86fabf7 100644
--- a/zh-cn/setup/start/brands.html
+++ b/zh-cn/setup/start/brands.html
@@ -22,7 +22,7 @@
<p>“Android”名称、<img src="/setup/assets/images/sac_logo.png" alt="Android" style="margin:0;padding:0 2px;vertical-align:baseline"/> 徽标、“Google Play”品牌以及其他商标均为 Google LLC 的资产,不属于通过 Android 开源项目提供的资源。</p>
-<p>如果您希望使用这些品牌,以表明它们与您的设备之间存在关联,请遵循本页所述的准则。这些准则与 <a href="https://developer.android.com/distribute/tools/promote/brand.html">Android 应用开发者品牌指南</a>和 <a href="https://www.google.com/permissions/">Google 品牌权限</a>之间是相辅相成的关系。</p>
+<p>如果您希望使用这些品牌,以表明它们与您的设备之间存在关联,请遵循本页中的准则。这些准则与 <a href="https://developer.android.com/distribute/tools/promote/brand.html">Android 应用开发者品牌推广指南</a>和 <a href="https://www.google.com/permissions/">Google 品牌权限</a>之间是相辅相成的关系。</p>
<h2 id="brand-android">Android</h2>
@@ -76,7 +76,7 @@
</p>
</div>
<div class="col-8">
-<p style="padding-top:20px">在注明适当归属信息的情况下,您可以在营销资料中自由使用、重制和修改 Android 机器人。如需了解详情,请参阅<a href="https://developer.android.com/distribute/tools/promote/brand.html">应用开发者品牌指南</a>和<a href="https://creativecommons.org/licenses/by/3.0/">知识共享许可</a>。</p>
+<p style="padding-top:20px">在注明适当归属信息的情况下,您可以在营销资料中自由使用、重制和修改 Android 机器人。如需了解详情,请参阅<a href="https://developer.android.com/distribute/tools/promote/brand.html">应用开发者品牌推广指南</a>和<a href="https://creativecommons.org/licenses/by/3.0/">知识共享许可</a>。</p>
</div>
</div>
diff --git a/zh-cn/setup/start/site-updates.html b/zh-cn/setup/start/site-updates.html
index dc398181..af43a692 100644
--- a/zh-cn/setup/start/site-updates.html
+++ b/zh-cn/setup/start/site-updates.html
@@ -24,6 +24,51 @@
本页介绍了我们对 source.android.com 进行的重大修订。要查看我们对本网站所做更改的完整列表,请参阅 Android 开源项目 (AOSP) <a href="https://android.googlesource.com/platform/docs/source.android.com/+log/master?pretty=full&no-merges" class="external">docs/source.android.com 日志</a>。
</p>
+<h2 id="Aug-2018">2018 年 8 月</h2>
+
+<p>欢迎访问修订后的 Android 开源项目 (AOSP) 网站。随着我们网站发展规模越来越大,我们重新改善了平台文档导航功能,以便更好地配合新信息和更新信息使用。</p>
+
+<p>有关重大更改的指南,请参阅以下各小节。有关功能摘要、更新和新增内容,请查看<a href="/setup/start/p-release-notes">版本说明</a>。您可以通过在 <a href="https://g.co/androidsourceissue" class="external">g.co/androidsourceissue</a> 中归档的错误或点击该网站上每个网页页脚中的<a href="https://issuetracker.google.com/issues/new?component=191476">网站反馈</a>链接,向我们发送您的反馈。</p>
+
+<h3 id="second-menu">另一个横向菜单</h3>
+
+<p>影响最广泛的更改是在网站导航内的标签页中引入了另一个横向菜单,以便更好地显示更深层的网页。现在,每个子标签都包含少量与子标签中标识的关联主题直接相关的部分和网页,这样,用户就不用在包含数十个条目的左侧导航菜单中进行选择。</p>
+
+<p>请注意,我们尚未更新现有文档的目录路径和网址,以避免破坏书签和外部链接等。我们会及时做出这些更改并相应地进行重定向。因此,当您发现更改时,请重新访问该网站以获取新位置并更新书签。</p>
+
+<h3 id="set-up">“设置”(Setup) 更名为“设置”(Set up)</h3>
+
+<p>主“设置”(Setup) 标签略微做了一些改动(更名为<strong>设置</strong> (Set up)),以便与用于后续主要标签的动词保持一致。<em></em>
+<strong>下载</strong>和<strong>编译</strong>内容已拆分为不同的子标签,以便于访问其中包含的页面。<em></em>“开发”子部分已重命名为<strong>创建</strong>子标签,以避免与新的同名顶级<strong>开发</strong>标签混淆。</p>
+
+<p><em></em>之前在“兼容性”&gt;“与我们联系”页面上提供的信息现已合并到<strong>设置 &gt; 通讯录(社区)</strong>主列表中。
+</p>
+
+<h3 id="design">“兼容性”更名为“设计”</h3>
+
+<p>以前在<em></em>“兼容性”顶级标签上提供的信息现位于<strong>设计</strong>下。要大致了解该计划以及指向新的 Android 兼容性定义文档 (CDD) 的链接,请参阅<strong>兼容性</strong>子标签。<em></em></p>
+
+<p><em></em>在相关更改中,Android 兼容性测试套件 (CTS) 的说明和常规调试信息已移至新的<strong>测试</strong>子标签。<strong>显示</strong>和<strong>设置</strong>菜单指南已转移到专用子标签。</p>
+
+<h3 id="develop">“移植”更名为“开发”</h3>
+
+<p><em></em>“移植”标签已更名为<strong>开发</strong>,以更好地传达此标签包含的说明。本文档主要侧重于实现各个接口,可帮助您编写将设备连接到 Android 操作系统所需的驱动程序。</p>
+
+<p>因此,描述总体<em></em> HIDL 格式的<strong>架构</strong>部分已移至<strong>设计</strong>标签,以便在开发周期早期的规划阶段予以考虑。<strong>引导加载程序</strong>内容现在位于<strong>设计 &gt; 架构</strong>下,同时引入了<strong>互动</strong>子标签以包含输入、传感器和相关信息。<em></em><em></em></p>
+
+<p><strong>连接</strong>部分已经过重新整理,包含<strong>蓝牙和 NFC</strong>、<strong>通话和短信</strong>、<strong>运营商</strong>和 <strong>WLAN</strong> 子部分。此外,WLAN 部分还包含以下新文章:</p>
+
+<ul>
+ <li><a href="/devices/tech/connect/wifi-overview">概览</a></li>
+ <li><a href="/devices/tech/connect/wifi-hal">WLAN HAL</a></li>
+ <li><a href="/devices/tech/connect/wifi-passpoint">Passpoint R1</a></li>
+ <li><a href="/devices/tech/connect/wifi-debug">测试和调试</a></li>
+</ul>
+
+<h3 id="configure">“微调”更名为“配置”</h3>
+
+<p><em></em>“微调”标签已更名为<strong>配置</strong>,以封装多个自定义和优化步骤。<em></em>现在,您可以在<strong>企业</strong>下找到以前的“设备管理”子部分。<em></em>“ART 和 Dalvik”内容位于 <strong>ART</strong> 下方,“无线下载 (OTA) 更新”<em></em>信息位于<strong>更新</strong>下方。</p>
+
<h2 id="Dec-2017">2017 年 12 月</h2>
<p>
Android 8.1 已发布!要了解此版本中引入的主要平台功能,请参阅以下条目。
@@ -127,8 +172,7 @@ SquashFS 是一个面向 Linux 且经过压缩的只读文件系统,适合在
<h4>模糊测试</h4>
<p>
-AOSP 提供了用于测试 <a href="/devices/tech/dalvik/">Android Runtime (ART)</a> 基础架构的全新模糊测试套件。全新的工具包 JFuzz 以及经过改进的 DexFuzz 现在可以直接在 AOSP 中获得,并且随附了相关文档。请参阅:
-<a href="https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md">https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md</a>
+AOSP 提供了用于测试 <a href="/devices/tech/dalvik/">Android Runtime (ART)</a> 基础架构的全新模糊测试套件。全新的工具包 JFuzz 以及经过改进的 DexFuzz 现在可以直接在 AOSP 中获得,并且随附了相关文档。请参阅:<a href="https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md">https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md</a>
<a href="https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README">https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README</a>
</p>
<p>
@@ -451,7 +495,7 @@ Android 8.0 利用 EXT4 文件系统的“配额”支持,近乎即时地提
<h3 id="top-tabs">新的顶级标签</h3>
<p>
-<em></em><em></em>之前的“设备”标签已更名为<a href="/devices/">移植</a>,并且之前的“核心技术”子标签已更名为<a href="/devices/tech/">微调</a>并移到了网站顶部,以便更好地显示给用户。
+<em></em><em></em>之前的“设备”标签已更名为<a href="/devices/">移植</a>,同时之前的“核心技术”子标签已更名为<a href="/devices/tech/">微调</a>并移到了网站顶部,以便更好地显示给用户。
</p>
<h3 id="security-forefront">“安全性”标签排在了前列</h3>
@@ -461,7 +505,7 @@ Android 8.0 利用 EXT4 文件系统的“配额”支持,近乎即时地提
<h3 id="reference-materials">更好的参考资料</h3>
<p>
- 您可以直接从顶层的<a href="/reference/hal/">参考资料</a>标签获得<a href="/reference/tradefed/packages">硬件抽象层</a>和 <a href="/reference/">Trade Federation</a> 参考资料。
+ 您可以直接从顶层的<a href="/reference/">参考资料</a>标签获得<a href="/reference/hal/">硬件抽象层</a>和 <a href="/reference/tradefed/packages">Trade Federation</a> 参考资料。
</p>
<h3 id="code-links">每页都有的代码链接</h3>