aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Partner Docs <noreply@android.com>2018-06-07 14:07:35 -0700
committerClay Murphy <claym@google.com>2018-06-07 18:10:12 -0700
commitf040e4dca8700012b3c2c066b65938f22fbad859 (patch)
tree6fccd2c090282b8e0485f4843a4eda938c31b386
parentc7c9dc7ca43c195850e71ac37aa0f5722c891c59 (diff)
downloadsource.android.com-f040e4dca8700012b3c2c066b65938f22fbad859.tar.gz
Docs: Changes to source.android.com
- 199692707 Added asterisk to A-63144992, made H3 ID unique, updated ... by Android Partner Docs <noreply@android.com> - 199691762 Devsite localized content from translation request 921712. by Android Partner Docs <noreply@android.com> - 199658664 Fix BroadcastRecord -> BroadcastFilter by Christina Nguyen <cqn@google.com> - 199567406 June Security Bulletins - updated with AOSP links. by Android Partner Docs <noreply@android.com> - 199317483 Fix spelling: opague -> opaque. by Android Partner Docs <noreply@android.com> - 199308052 Devsite localized content from translation request 934248. by Android Partner Docs <noreply@android.com> - 199308045 Devsite localized content from translation request 934243. by Android Partner Docs <noreply@android.com> - 199304831 b/74947856 has just been reassessed as RCE Critical by Android Partner Docs <noreply@android.com> - 199304768 Update build numbers for 2018/06 releases by Android Partner Docs <noreply@android.com> - 199304498 Point to the malloc_hooks docs too. by Android Partner Docs <noreply@android.com> - 199190981 67712323 is a dupe of 66734153. A-67712323 is now removed... by Android Partner Docs <noreply@android.com> - 199188534 Remove #type typo in bulletins by Danielle Roberts <daroberts@google.com> - 199179248 Minor updates to June public bulletin by Android Partner Docs <noreply@android.com> - 199152002 Android and Pixel Security Bulletins - June 2018 by Android Partner Docs <noreply@android.com> - 199149681 Devsite localized content from translation request 925774. by Android Partner Docs <noreply@android.com> - 198939105 Devsite localized content from translation request 929126. by Android Partner Docs <noreply@android.com> - 198775873 Remove erroneous "key" by Christina Nguyen <cqn@google.com> - 198758023 Publish March Pixel bulletin link in index file by Danielle Roberts <daroberts@google.com> - 198757987 Correct bulletin with missing * by Danielle Roberts <daroberts@google.com> - 198757969 Add missing * to bulletin by Danielle Roberts <daroberts@google.com> - 198726709 Devsite localized content from translation request 929128. by Android Partner Docs <noreply@android.com> - 198724418 Mention libmemunreachable. by Android Partner Docs <noreply@android.com> PiperOrigin-RevId: 199692707 Change-Id: I1658d057a06abfb5e6dfabb17e83c241facc2222
-rw-r--r--en/devices/architecture/hidl/versioning.html2
-rw-r--r--en/devices/tech/debug/native-memory.html17
-rw-r--r--en/security/_toc.yaml4
-rw-r--r--en/security/authentication/index.html2
-rw-r--r--en/security/bulletin/2017-01-01.html2
-rw-r--r--en/security/bulletin/2017-04-01.html2
-rw-r--r--en/security/bulletin/2018-06-01.html951
-rw-r--r--en/security/bulletin/2018.html16
-rw-r--r--en/security/bulletin/index.html15
-rw-r--r--en/security/bulletin/pixel/2018-06-01.html937
-rw-r--r--en/security/bulletin/pixel/2018.html15
-rw-r--r--en/security/bulletin/pixel/index.html17
-rw-r--r--en/security/overview/acknowledgements.html508
-rw-r--r--en/setup/contribute/read-bug-reports.html2
-rw-r--r--en/setup/start/build-numbers.html24
-rw-r--r--ja/security/bulletin/2018-02-01.html4
-rw-r--r--ja/security/bulletin/pixel/2018-01-01.html7
-rw-r--r--ko/security/bulletin/2018-02-01.html24
-rw-r--r--ko/security/bulletin/pixel/2018-01-01.html19
-rw-r--r--zh-cn/devices/architecture/hidl/code-style.html24
-rw-r--r--zh-cn/devices/camera/camera3.html52
-rw-r--r--zh-cn/devices/camera/camera3_3Amodes.html499
-rw-r--r--zh-cn/devices/camera/camera3_crop_reprocess.html15
-rw-r--r--zh-cn/devices/camera/camera3_error_stream.html61
-rw-r--r--zh-cn/devices/camera/camera3_metadata.html10
-rw-r--r--zh-cn/devices/camera/camera3_requests_hal.html186
-rw-r--r--zh-cn/devices/camera/camera3_requests_methods.html46
-rw-r--r--zh-cn/devices/tech/debug/native-memory.html4
-rw-r--r--zh-cn/security/authentication/index.html4
-rw-r--r--zh-cn/security/bulletin/2018.html36
-rw-r--r--zh-cn/security/bulletin/pixel/2018.html36
-rw-r--r--zh-cn/setup/build/building-kernels.html2
-rw-r--r--zh-cn/setup/build/building.html12
-rw-r--r--zh-cn/setup/build/devices.html32
-rw-r--r--zh-cn/setup/build/downloading.html100
-rw-r--r--zh-cn/setup/build/initializing.html60
-rw-r--r--zh-cn/setup/build/jack.html27
-rw-r--r--zh-cn/setup/build/known-issues.html4
-rw-r--r--zh-cn/setup/build/requirements.html2
-rw-r--r--zh-cn/setup/contribute/report-bugs.html5
-rw-r--r--zh-cn/setup/develop/new-device.html16
-rw-r--r--zh-cn/setup/start/build-numbers.html57
-rw-r--r--zh-cn/setup/start/licenses.html6
-rw-r--r--zh-tw/security/bulletin/2018-02-01.html12
-rw-r--r--zh-tw/security/bulletin/pixel/2018-01-01.html8
45 files changed, 3081 insertions, 803 deletions
diff --git a/en/devices/architecture/hidl/versioning.html b/en/devices/architecture/hidl/versioning.html
index 52552f0c..c67910d9 100644
--- a/en/devices/architecture/hidl/versioning.html
+++ b/en/devices/architecture/hidl/versioning.html
@@ -142,7 +142,7 @@ semantic names and meaning.</li>
<li>Can be opaque data (such as public keys, ids, etc.) if necessary.</li>
</ul>
-<p>If opague data is used, it must be read only by one side of the HIDL
+<p>If opaque data is used, it must be read only by one side of the HIDL
interface. For example, if <code>vendor.img</code> code gives a component on the
<code>system.img</code> a string message or <code>vec&lt;uint8_t&gt;</code>
data, that data cannot be parsed by the <code>system.img</code> itself; it can
diff --git a/en/devices/tech/debug/native-memory.html b/en/devices/tech/debug/native-memory.html
index afa0d220..df25f6b0 100644
--- a/en/devices/tech/debug/native-memory.html
+++ b/en/devices/tech/debug/native-memory.html
@@ -39,13 +39,28 @@ href="https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debu
Memory Tracking using libc Callbacks</a> for a thorough description of the
debugging options available for native memory issues.</p>
+<h2 id="libmemunreachable">libmemunreachable</h2>
+
+<p>Android's libmemunreachable is a zero-overhead native memory leak detector.
+It uses an imprecise mark-and-sweep garbage collector pass over all native memory,
+reporting any unreachable blocks as leaks. See the
+<a href="https://android.googlesource.com/platform/system/core/+/master/libmemunreachable/README.md">libmemunreachable
+documentation</a> for usage instructions.</p>
+
+<h2 id="malloc_hooks">Malloc hooks</h2>
+
+<p>If you want to build your own tools, Android's libc also supports intercepting all
+allocation/free calls that happen during program execution. See the
+<a href="https://android.googlesource.com/platform/bionic/+/master/libc/malloc_hooks/README.md">malloc_hooks
+documentation</a> for usage instructions.</p>
+
<h2 id="malloc-stats">Malloc statistics</h2>
<p>
Android supports the <a href="http://man7.org/linux/man-pages/man3/mallinfo.3.html"
><code>mallinfo(3)</code></a>and <a href="http://man7.org/linux/man-pages/man3/malloc_info.3.html"
><code>malloc_info(3)</code></a> extensions to <code>&lt;malloc.h&gt;</code></a>.
- The <code>malloc_info</code> function is available in Android 6.0 and later and
+ The <code>malloc_info</code> function is available in Android 6.0 (Marshmallow) and higher and
its XML schema is documented in Bionic's
<a href="https://android.googlesource.com/platform/bionic/+/master/libc/include/malloc.h"
><code>&lt;malloc.h&gt;</code></a>.
diff --git a/en/security/_toc.yaml b/en/security/_toc.yaml
index e125d205..bb9d4e02 100644
--- a/en/security/_toc.yaml
+++ b/en/security/_toc.yaml
@@ -47,6 +47,8 @@ toc:
section:
- title: 2018 Bulletins
section:
+ - title: June
+ path: /security/bulletin/2018-06-01
- title: May
path: /security/bulletin/2018-05-01
- title: April
@@ -135,6 +137,8 @@ toc:
path: /security/bulletin/pixel/index
- title: 2018 Bulletins
section:
+ - title: June
+ path: /security/bulletin/pixel/2018-06-01
- title: May
path: /security/bulletin/pixel/2018-05-01
- title: April
diff --git a/en/security/authentication/index.html b/en/security/authentication/index.html
index e1436b8f..33c141d7 100644
--- a/en/security/authentication/index.html
+++ b/en/security/authentication/index.html
@@ -176,7 +176,7 @@ The format is a simple serialization protocol with fixed size fields:</p>
<td>Time (in milliseconds) since the most recent system boot.</td>
</tr>
<tr>
- <td>AuthToken HMAC key (SHA-256)</td>
+ <td>AuthToken HMAC (SHA-256)</td>
<td>256-bit blob</td>
<td>Yes</td>
<td>Keyed SHA-256 MAC of all fields except the HMAC field.</td>
diff --git a/en/security/bulletin/2017-01-01.html b/en/security/bulletin/2017-01-01.html
index c3ac2dd0..b11c43b1 100644
--- a/en/security/bulletin/2017-01-01.html
+++ b/en/security/bulletin/2017-01-01.html
@@ -1276,7 +1276,7 @@ October 2016 security bulletins.
* The severity rating for these vulnerabilities was determined by the vendor.
</p>
<p>
-* The patch for this issue is not publicly available. The update is contained
+** The patch for this issue is not publicly available. The update is contained
in the latest binary drivers for Nexus devices available from the
<a href="https://developers.google.com/android/nexus/drivers">Google Developer
site</a>.
diff --git a/en/security/bulletin/2017-04-01.html b/en/security/bulletin/2017-04-01.html
index d17ddb43..cbd734d0 100644
--- a/en/security/bulletin/2017-04-01.html
+++ b/en/security/bulletin/2017-04-01.html
@@ -2564,7 +2564,7 @@ patch level. </p>
</tr>
</table>
<p>* The severity rating for these vulnerabilities was determined by the vendor.</p>
-<p>* The patch for this issue is not publicly available. The update is contained
+<p>** The patch for this issue is not publicly available. The update is contained
in the latest binary drivers for Nexus devices available from the
<a href="https://developers.google.com/android/nexus/drivers">
Google Developer site</a>.</p>
diff --git a/en/security/bulletin/2018-06-01.html b/en/security/bulletin/2018-06-01.html
new file mode 100644
index 00000000..29ba106a
--- /dev/null
+++ b/en/security/bulletin/2018-06-01.html
@@ -0,0 +1,951 @@
+<html devsite>
+ <head>
+ <title>Android Security Bulletin—June 2018</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>Published June 4, 2018 | Updated June 6, 2018</em></p>
+
+<p>
+The Android Security Bulletin contains details of security vulnerabilities
+affecting Android devices. Security patch levels of 2018-06-05 or later address
+all of these issues. To learn how to check a device's security patch level, see
+<a href="https://support.google.com/pixelphone/answer/4457705">Check and update
+your Android version</a>.
+</p>
+<p>
+Android partners are notified of all issues at least a month before
+publication. Source code patches for these issues have been released to the
+Android Open Source Project (AOSP) repository and linked from this bulletin.
+This bulletin also includes links to patches outside of AOSP.
+</p>
+<p>
+The most severe of these issues is a critical security vulnerability in Media
+framework that could enable a remote attacker using a specially crafted file to
+execute arbitrary code within the context of a privileged process. The
+<a href="/security/overview/updates-resources.html#severity">severity
+assessment</a> is based on the effect that exploiting the vulnerability would
+possibly have on an affected device, assuming the platform and service
+mitigations are turned off for development purposes or if successfully bypassed.
+</p>
+<p>
+We have had no reports of active customer exploitation or abuse of these newly
+reported issues. Refer to the
+<a href="#mitigations">Android and Google Play Protect mitigations</a>
+section for details on the
+<a href="/security/enhancements/index.html">Android security platform protections</a>
+and Google Play Protect, which improve the security of the Android platform.
+</p>
+<p class="note">
+<strong>Note:</strong> Information on the latest over-the-air update (OTA) and
+firmware images for Google devices is available in the
+<a href="/security/bulletin/pixel/2018-06-01.html">June 2018
+Pixel&hairsp;/&hairsp;Nexus Security Bulletin</a>.
+</p>
+
+<h2 id="mitigations">Android and Google service mitigations</h2>
+<p>
+This is a summary of the mitigations provided by the
+<a href="/security/enhancements/index.html">Android security platform</a>
+and service protections such as
+<a href="https://www.android.com/play-protect">Google Play Protect</a>.
+These capabilities reduce the likelihood that security vulnerabilities
+could be successfully exploited on Android.
+</p>
+<ul>
+<li>Exploitation for many issues on Android is made more difficult by
+enhancements in newer versions of the Android platform. We encourage all users
+to update to the latest version of Android where possible.</li>
+<li>The Android security team actively monitors for abuse through
+<a href="https://www.android.com/play-protect">Google Play Protect</a>
+and warns users about
+<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">Potentially
+Harmful Applications</a>. Google Play Protect is enabled by default on devices
+with <a href="http://www.android.com/gms">Google Mobile Services</a>, and is
+especially important for users who install apps from outside of Google
+Play.</li>
+</ul>
+<h2 id="2018-06-01-details">2018-06-01 security patch level vulnerability details</h2>
+<p>
+In the sections below, we provide details for each of the security
+vulnerabilities that apply to the 2018-06-01 patch level. Vulnerabilities are
+grouped under the component that they affect. There is a description of the
+issue and a table with the CVE, associated references,
+<a href="#type">type of vulnerability</a>,
+<a href="/security/overview/updates-resources.html#severity">severity</a>,
+and updated AOSP versions (where applicable). When available, we link the public
+change that addressed the issue to the bug ID, like the AOSP change list. When
+multiple changes relate to a single bug, additional references are linked to
+numbers following the bug ID.
+</p>
+
+<h3 id="framework">Framework</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a local malicious application to bypass
+user interaction requirements in order to gain access to additional permissions.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9338</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/5a11d9bb5b55543c9b97d38da1a658c42b99a906">A-71361168</a></td>
+ <td>EoP</td>
+ <td>High</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-9339</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/82306b4ed120eab59849a21ae85074ab10a67b23">A-71508348</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-13227</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/173d37569997fdf7eaf7b05912c760352e724893">A-69981710</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9340</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/5a11d9bb5b55543c9b97d38da1a658c42b99a906">A-71360999</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+</table>
+
+
+<h3 id="media-framework">Media framework</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a remote attacker using a specially
+crafted file to execute arbitrary code within the context of a privileged process.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9341</td>
+ <td><a href="https://android.googlesource.com/platform/external/libmpeg2/+/69ac35d37c0fcf43ac3dac6c99dbec5ecb258c41">A-74016277</a></td>
+ <td>RCE</td>
+ <td>Critical</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-5146</td>
+ <td>A-77284393<a href="#asterisk">*</a></td>
+ <td>RCE</td>
+ <td>Critical</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-13230</td>
+ <td><a href="https://android.googlesource.com/platform/external/libhevc/+/b0e1239a611617d598ebc8a93c2edae77430dd39">A-65483665</a></td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>6.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9344</td>
+ <td><a href="https://android.googlesource.com/platform/hardware/interfaces/+/6a6c9a891b8e91a9bc84784909f800ba670c873b">A-73172817</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9345</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/d6bd6091686dd7ea3b410fb8dce3794429066453">A-77238250</a></td>
+ <td>ID</td>
+ <td>High</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-9346</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/d6bd6091686dd7ea3b410fb8dce3794429066453">A-77238762</a></td>
+ <td>ID</td>
+ <td>High</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-9347</td>
+ <td><a href="https://android.googlesource.com/platform/external/sonivox/+/b237378c682f84e020f2c612c215967a7e5cd30a">A-68664359</a></td>
+ <td>DoS</td>
+ <td>High</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-9348</td>
+ <td><a href="https://android.googlesource.com/platform/external/sonivox/+/b237378c682f84e020f2c612c215967a7e5cd30a">A-68953854</a></td>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+</table>
+
+
+<h3 id="system">System</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a remote attacker using a specially
+crafted file to execute arbitrary code within the context of a privileged process.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9355</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/99a263a7f04c5c6f101388007baa18cf1e8c30bf">A-74016921</a></td>
+ <td>RCE</td>
+ <td>Critical</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-9356</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/d7d4d5686b2e3c37c7bf10a6a2adff1c95251a13">A-74950468</a></td>
+ <td>RCE</td>
+ <td>Critical</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-9357</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/9164ee1aaf3609b4771d39302e3af649f44c9e66">A-74947856</a></td>
+ <td>RCE</td>
+ <td>Critical</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-9358</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/0d7c2f5a14d1055f3b4f69035451c66bf8f1b08e">A-73172115</a></td>
+ <td>ID</td>
+ <td>High</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-9359</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/b66fc16410ff96e9119f8eb282e67960e79075c8">A-74196706</a></td>
+ <td>ID</td>
+ <td>High</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-9360</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/b66fc16410ff96e9119f8eb282e67960e79075c8">A-74201143</a></td>
+ <td>ID</td>
+ <td>High</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-9361</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/b66fc16410ff96e9119f8eb282e67960e79075c8">A-74202041</a></td>
+ <td>ID</td>
+ <td>High</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-9362</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/opt/telephony/+/a42870e1df7dbf384aa1d7a02584eb755e821417">A-72298611</a></td>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+</table>
+
+
+<h2 id="2018-06-05-details">2018-06-05 security patch level—Vulnerability details</h2>
+
+
+<p>
+In the sections below, we provide details for each of the security vulnerabilities that apply to
+the 2018-06-05 patch level. Vulnerabilities are grouped under the component that they affect and
+include details such as the CVE, associated references, <a href="#type">
+type of vulnerability</a>, <a href="/security/overview/updates-resources.html#severity">
+severity</a>, component (where applicable), and updated AOSP versions (where applicable).
+When available, we link the public change that addressed the issue to the bug ID, like the AOSP
+change list. When multiple changes relate to a single bug, additional references are linked to
+numbers following the bug ID.
+</p>
+<h3 id="kernel-components">Kernel components</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a local malicious application to
+execute arbitrary code within the context of a privileged process.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9363</td>
+ <td>A-65853588<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-17806</td>
+ <td>A-71752561<br />
+ <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=af3ff8045bbf3e32f1a448542e73abb4c8ceb6f1">
+Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>crypto</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-17807</td>
+ <td>A-71751178<br />
+ <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca6ea1d9432052afb06baf2e3ae78188a4410b">
+Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>Keyring</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-17558</td>
+ <td>A-71751622<br />
+ <a
+href="https://www.spinics.net/lists/linux-usb/msg163644.html">Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>USB</td>
+ </tr>
+</table>
+
+
+<h3 id="lg-components">LG components</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a local attacker to bypass user
+interaction requirements in order to gain access to additional permissions.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9364</td>
+ <td>A-69163111<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>Critical</td>
+ <td>Bootloader</td>
+ </tr>
+</table>
+
+
+<h3 id="media-framework-05">Media framework</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a local malicious application to
+bypass user interaction requirements in order to gain access to additional permissions.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9409
+</td>
+ <td>A-63144992<a href="#asterisk">*</a><br />
+QC-CR#2114346</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>8.1</td>
+ </tr>
+</table>
+
+
+<h3 id="mediatek-components">MediaTek components</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a remote attacker to execute
+arbitrary code within the context of the TCB.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9373</td>
+ <td>A-71867247<a href="#asterisk">*</a><br />
+ M-ALPS03740330</td>
+ <td>EoP</td>
+ <td>Critical</td>
+ <td>Mediatek WLAN TDLS</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9366</td>
+ <td>A-72314499<a href="#asterisk">*</a><br />
+ M-ALPS03762526</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>IMSA</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9367</td>
+ <td>A-72314219<a href="#asterisk">*</a><br />
+ M-ALPS03762692</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>Cameratool CCAP</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9368</td>
+ <td>A-70727446<a href="#asterisk">*</a><br />
+ M-ALPS03730693</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>mtksocaudio</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9369</td>
+ <td>A-70514573<a href="#asterisk">*</a><br />
+ M-ALPS03666161</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9370</td>
+ <td>A-70515281<a href="#asterisk">*</a><br />
+ M-ALPS03693488</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9371</td>
+ <td>A-70515752<a href="#asterisk">*</a><br />
+ M-ALPS03683903</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9372</td>
+ <td>A-70730215<a href="#asterisk">*</a><br />
+ M-ALPS03676237</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>bootloader</td>
+ </tr>
+</table>
+
+
+<h3 id="nvidia-components">NVIDIA components</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a local malicious application
+to execute arbitrary code within the context of a privileged process.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-6290</td>
+ <td>A-69559414<a href="#asterisk">*</a><br />
+ N-200373895</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>TLK TrustZone</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-6294</td>
+ <td>A-69316825<a href="#asterisk">*</a><br />
+ N-200369095</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>NVIDIA Tegra X1 TZ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-6292</td>
+ <td>A-69480285<a href="#asterisk">*</a><br />
+ N-200373888</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>TLZ TrustZone</td>
+ </tr>
+</table>
+
+
+<h3 id="qualcomm-components">Qualcomm components</h3>
+
+
+<p>
+The most severe vulnerability in this section could enable a local attacker to bypass
+user interaction requirements in order to gain access to additional permissions.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-18158</td>
+ <td>A-68992400<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=316136f292cedaecf17823d6f3b63cf2d11314b3">
+QC-CR#2104056</a></td>
+ <td>EoP</td>
+ <td>Critical</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3569</td>
+ <td>A-74237215<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=fe9ea02140c4be952171251515da90bc3a1a2bc0">
+QC-CR#2161920</a></td>
+ <td>EoP</td>
+ <td>Critical</td>
+ <td>WLAN Host</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18155</td>
+ <td>A-66734153<a href="#asterisk">*</a><br />
+ QC-CR#1050893</td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>Hardware codec</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5854</td>
+ <td>A-71800779<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=aedca87c9a42723dfb5f7084ba855da1208f1889">
+QC-CR#2183877</a></td>
+ <td>EoP</td>
+ <td>Critical</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-13077</td>
+ <td>A-63165064<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5896</td>
+ <td>A-70399602<a href="#asterisk">*</a><br />
+ QC-CR#2163793</td>
+ <td>ID</td>
+ <td>High</td>
+ <td>Diag driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5829</td>
+ <td>A-74237546<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=27381e9d253629180dcdaa698d3fd01bec28d351">
+QC-CR#2151241</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18159</td>
+ <td>A-68992405<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=633fa4ffb38bbfb0fad79204e19b9f59d42d7680">QC-CR#2105697</a>
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=3129148e5a4cfe83003449a1048660823bfddc51">2</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=bcceb2ceeea07aedaa5f97207cc88f9d8b4416ea">3</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=04f23441b8c0c897644f9bf391b691039fa0ab70">4</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=b6b318431983f35a7734cae227478df3dc93a818">5</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=7dcbee530800b16534d0f3e8db375492c03b3e0a">6</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=9057a8b3339abc4eb2c4e462279f34bbe6410e7c">7</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=4a63a848c062851776123d4bc7ec10eb498a70dd">8</a>]
+ [<a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=5471b0cdf4bace12d872d074b97eae29f1317e6a">9</a>]</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18158</td>
+ <td>A-67782849<a href="#asterisk">*</a><br />
+ QC-CR#2104056</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5835</td>
+ <td>A-74237148<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=5a0eeb72c3cde7dcb8096967561a88a678ad9aec">
+QC-CR#2153553</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>WLAN Host</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5834</td>
+ <td>A-74237804<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=ede0f8a4d11ec56ee87177478cc0c25af0894860">
+QC-CR#2153326</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5831</td>
+ <td>A-74237606<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=e3e13d745238ad8853af47c2d938344ea8d3c77f">
+QC-CR#2161310</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>GPU driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5830</td>
+ <td>A-74237532<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=129e76e0ea923b319555f37ea601dfb974a06bfe">QC-CR#2157917</a>
+ [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=8174eb0235a7e581153ea1d4a401e7ea8354cc08">2</a>]</td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>WLAN Host</td>
+ </tr>
+</table>
+
+
+<h3 id="qualcomm-closed-source-components">Qualcomm closed-source components</h3>
+
+<p>
+These vulnerabilities affect Qualcomm components and are described in further detail in
+the appropriate Qualcomm AMSS security bulletin or security alert. The severity
+assessment of these issues is provided directly by Qualcomm.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-18157</td>
+ <td>A-73539080<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18156</td>
+ <td>A-73539065<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5892</td>
+ <td>A-72951191<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5891</td>
+ <td>A-72950815<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5885</td>
+ <td>A-72950554<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5894</td>
+ <td>A-74236854<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5884</td>
+ <td>A-74235510<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+</table>
+
+
+<h2 id="common-questions-and-answers">Common questions and answers</h2>
+<p>This section answers common questions that may occur after reading this bulletin.</p>
+<p><strong>1. How do I determine if my device is updated to address these issues?</strong></p>
+<p>To learn how to check a device's security patch level, see
+<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">Check
+and update your Android version</a>.</p>
+<ul>
+<li>Security patch levels of 2018-06-01 or later address all issues associated
+with the 2018-06-01 security patch level.</li>
+<li>Security patch levels of 2018-06-05 or later address all issues associated
+with the 2018-06-05 security patch level and all previous patch levels.</li>
+</ul>
+<p>Device manufacturers that include these updates should set the patch string level to:</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-06-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-06-05]</li>
+</ul>
+<p><strong>2. Why does this bulletin have two security patch levels?</strong></p>
+<p>
+This bulletin has two security patch levels so that Android partners have the
+flexibility to fix a subset of vulnerabilities that are similar across all
+Android devices more quickly. Android partners are encouraged to fix all issues
+in this bulletin and use the latest security patch level.
+</p>
+<ul>
+<li>Devices that use the 2018-06-01 security patch level must include all issues
+associated with that security patch level, as well as fixes for all issues
+reported in previous security bulletins.</li>
+<li>Devices that use the security patch level of 2018-06-05 or newer must
+include all applicable patches in this (and previous) security
+bulletins.</li>
+</ul>
+<p>
+Partners are encouraged to bundle the fixes for all issues they are addressing
+in a single update.
+</p>
+<p id="type">
+<strong>3. What do the entries in the <em>Type</em> column mean?</strong>
+</p>
+<p>
+Entries in the <em>Type</em> column of the vulnerability details table reference
+the classification of the security vulnerability.
+</p>
+<table>
+ <col width="25%">
+ <col width="75%">
+ <tr>
+ <th>Abbreviation</th>
+ <th>Definition</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>Remote code execution</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>Elevation of privilege</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>Information disclosure</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>Denial of service</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>Classification not available</td>
+ </tr>
+</table>
+<p>
+<strong>4. What do the entries in the <em>References</em> column mean?</strong>
+</p>
+<p>
+Entries under the <em>References</em> column of the vulnerability details table
+may contain a prefix identifying the organization to which the reference value belongs.
+</p>
+<table>
+ <col width="25%">
+ <col width="75%">
+ <tr>
+ <th>Prefix</th>
+ <th>Reference</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android bug ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm reference number</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek reference number</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA reference number</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom reference number</td>
+ </tr>
+</table>
+<p id="asterisk">
+<strong>5. What does a * next to the Android bug ID in the <em>References</em>
+column mean?</strong>
+</p>
+<p>
+Issues that are not publicly available have a * next to the Android bug ID in
+the <em>References</em> column. The update for that issue is generally contained
+in the latest binary drivers for Nexus devices available from the
+<a href="https://developers.google.com/android/nexus/drivers">Google Developer site</a>.
+</p>
+<p>
+<strong>6. Why are security vulnerabilities split between this bulletin and
+device/partner security bulletins, such as the Pixel&hairsp;/&hairsp;Nexus bulletin?</strong>
+</p>
+<p>
+Security vulnerabilities that are documented in this security bulletin are
+required in order to declare the latest security patch level on Android devices.
+Additional security vulnerabilities that are documented in the
+device&hairsp;/&hairsp;partner security bulletins are not required for declaring
+a security patch level. Android device and chipset manufacturers are encouraged
+to document the presence of other fixes on their devices through their own security
+websites, such as the
+<a href="https://security.samsungmobile.com/securityUpdate.smsb">Samsung</a>,
+<a href="https://lgsecurity.lge.com/security_updates.html">LGE</a>, or
+<a href="/security/bulletin/pixel/">Pixel&hairsp;/&hairsp;Nexus</a>
+security bulletins.
+</p>
+<h2 id="versions">Versions</h2>
+<table>
+ <col width="25%">
+ <col width="25%">
+ <col width="50%">
+ <tr>
+ <th>Version</th>
+ <th>Date</th>
+ <th>Notes</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>June 4, 2018</td>
+ <td>Bulletin published.</td>
+ </tr>
+ <tr>
+ <td>1.1</td>
+ <td>June 6, 2018</td>
+ <td>Bulletin revised to include AOSP links.</td>
+ </tr>
+</table>
+</body></html>
diff --git a/en/security/bulletin/2018.html b/en/security/bulletin/2018.html
index a333d670..61c67635 100644
--- a/en/security/bulletin/2018.html
+++ b/en/security/bulletin/2018.html
@@ -37,6 +37,22 @@ of all bulletins, see the <a href="/security/bulletin/index.html">Android Securi
<th>Security patch level</th>
</tr>
<tr>
+ <td><a href="/security/bulletin/2018-06-01.html">June 2018</a></td>
+ <td>Coming soon
+ <!--
+ <a href="/security/bulletin/2018-06-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ -->
+ </td>
+ <td>June 4, 2018</td>
+ <td>2018-06-01<br>
+ 2018-06-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/2018-05-01.html">May 2018</a></td>
<td>
<a href="/security/bulletin/2018-05-01.html">English</a>&nbsp;/
diff --git a/en/security/bulletin/index.html b/en/security/bulletin/index.html
index 1b996c08..27bd60a1 100644
--- a/en/security/bulletin/index.html
+++ b/en/security/bulletin/index.html
@@ -69,6 +69,21 @@ Android Open Source Project (AOSP), the upstream Linux kernel, and system-on-chi
<th>Security patch level</th>
</tr>
<tr>
+ <td><a href="/security/bulletin/2018-06-01.html">June 2018</a></td>
+ <td>Coming soon
+ <!--
+ <a href="/security/bulletin/2018-06-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/2018-06-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ -->
+ </td>
+ <td>June 4, 2018</td>
+ <td>2018-06-01<br>
+ 2018-06-05</td>
+ <tr>
<td><a href="/security/bulletin/2018-05-01.html">May 2018</a></td>
<td>
<a href="/security/bulletin/2018-05-01.html">English</a>&nbsp;/
diff --git a/en/security/bulletin/pixel/2018-06-01.html b/en/security/bulletin/pixel/2018-06-01.html
new file mode 100644
index 00000000..8e27697c
--- /dev/null
+++ b/en/security/bulletin/pixel/2018-06-01.html
@@ -0,0 +1,937 @@
+<html devsite>
+ <head>
+ <title>Pixel&hairsp;/&hairsp;Nexus Security Bulletin—June 2018</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>Published June 4, 2018 | Updated June 6, 2018</em></p>
+
+<p>
+The Pixel&hairsp;/&hairsp;Nexus Security Bulletin contains details of security
+vulnerabilities and functional improvements affecting
+<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">supported
+Google Pixel and Nexus devices</a> (Google devices).
+For Google devices, security patch levels of 2018-06-05 or later address all
+issues in this bulletin and all issues in the June 2018 Android Security
+Bulletin. To learn how to check a device's security patch level, see
+<a href="https://support.google.com/pixelphone/answer/4457705">Check & update your
+Android version</a>.
+</p>
+<p>
+All supported Google devices will receive an update to the 2018-06-05 patch
+level. We encourage all customers to accept these updates to their devices.
+</p>
+<p class="note">
+<strong>Note:</strong> The Google device firmware images are available on the
+<a href="https://developers.google.com/android/images">Google Developer
+site</a>.
+</p>
+<h2 id="announcements">Announcements</h2>
+<p>In addition to the security vulnerabilities described in the June 2018
+Android Security Bulletin, Pixel and Nexus devices also contain patches for the
+security vulnerabilities described below. Partners were notified of these issues
+at least a month ago and may choose to incorporate them as part of their device
+updates.</p>
+<h2 id="security-patches">Security patches</h2>
+<p>
+Vulnerabilities are grouped under the component that they affect. There is a
+description of the issue and a table with the CVE, associated references,
+<a href="#type">type of vulnerability</a>,
+<a href="https://source.android.com/security/overview/updates-resources.html#severity">severity</a>,
+and updated Android Open Source Project (AOSP) versions (where applicable). When
+available, we link the public change that addressed the issue to the bug ID,
+like the AOSP change list. When multiple changes relate to a single bug,
+additional references are linked to numbers following the bug ID.
+</p>
+
+<h3 id="framework">Framework</h3>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9374</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/62b500f99595e99e1db8f0c068f719e68c73551e">A-72710897</a></td>
+ <td>EoP</td>
+ <td>Moderate</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-9375</td>
+ <td><a href="https://android.googlesource.com/platform/packages/providers/UserDictionaryProvider/+/cccf7d5c98fc81ff4483f921fb4ebfa974add9c6">A-75298708</a></td>
+ <td>EoP</td>
+ <td>Moderate</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-9377</td>
+ <td>A-64752751<a href="#asterisk">*</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+</table>
+
+
+<h3 id="media-framework">Media framework</h3>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9378</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/e0c09e4dd62e033aa9688634844d19136c0d34bc">A-73126106</a></td>
+ <td>ID</td>
+ <td>Moderate</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-9379</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/42e5aed1d106bef1f8913ffe87aa1f9df6aae90c">A-63766886</a>
+ [<a href="https://android.googlesource.com/platform/packages/providers/MediaProvider/+/76ffd8258c483b7170af49a8a67702426df07f2f">2</a>]</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td rowspan="2">CVE-2018-9349</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libvpx/+/69ddad629d1db85d8531af694c910626a1e80a9f">A-72510002</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+ <tr>
+ <td rowspan="2">CVE-2018-9350</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libavc/+/fde8eda71e8f7bc9c973fe6fbdd3846951b340ed">A-73552574</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+ <tr>
+ <td rowspan="2">CVE-2018-9351</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libavc/+/27c639d897fb0f1f0acf6a58b5c013d65c63bd04">A-73625898</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+ <tr>
+ <td rowspan="2">CVE-2018-9352</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libhevc/+/a7303e887a40ab164b19b310068e13ac4f123edc">A-73965867</a>
+ [<a href="https://android.googlesource.com/platform/external/libhevc/+/9434d4d8846241f0575aaf48ee7d4342e926ae77">2</a>]</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+ <tr>
+ <td rowspan="2">CVE-2018-9353</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libhevc/+/7ea8a36d5de35d71ace260a695199093fcc1f08f">A-73965890</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+ <tr>
+ <td rowspan="2">CVE-2018-9354</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/frameworks/av/+/f5d61ac18c72c9abdbbd971bfae7ce8b073eb08a">A-74067957</a></td>
+ <td>NSI</td>
+ <td>NSI</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>High</td>
+ <td>6.0, 6.0.1</td>
+ </tr>
+</table>
+
+
+<h3 id="system">System</h3>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Updated AOSP versions</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9380</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/85677abe2cc90bcd8b9df127088a97657d17c986">A-75298652</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9381</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/0519f6aa5345be0917ad52188479230148adf8bd">A-73125709</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>8.1</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9382</td>
+ <td>A-35765136<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2</td>
+ </tr>
+</table>
+
+
+<h3 id="kernel-components">Kernel components</h3>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9383</td>
+ <td>A-73827422<a href="#asterisk">*</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>asn1_decoder</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9384</td>
+ <td>A-74356909<br />
+ <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c02433dd6de32f042cf3ffe476746b1115b8c096">Upstream kernel</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>Kernel</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9385</td>
+ <td>A-74128061<br />
+ <a href="https://patchwork.kernel.org/patch/10175611/">Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>amba</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9386</td>
+ <td>A-71363680<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>HTC reboot_block driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9387</td>
+ <td>A-69006385<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>mnh_sm driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9388</td>
+ <td>A-68343441<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>ftm4_touch</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9389</td>
+ <td>A-65023306<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>ipv4/ipv6</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-7480</td>
+ <td>A-76106168<br />
+ <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9b54d816e00425c3a517514e0d677bb3cec49258">
+Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Block handler</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18075</td>
+ <td>A-73237057<br />
+ <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d76c68109f37cb85b243a1cf0f40313afd2bae68">
+Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>pcrypt</td>
+ </tr>
+</table>
+
+
+<h3 id ="mediatek-components">MediaTek components</h3>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9390</td>
+ <td>A-76100614<a href="#asterisk">*</a><br />
+ M-ALPS03849277</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>wlanThermo procfs entry</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9391</td>
+ <td>A-72313579<a href="#asterisk">*</a><br />
+ M-ALPS03762614</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>GPS HAL</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9392</td>
+ <td>A-72312594<a href="#asterisk">*</a><br />
+ M-ALPS03762614</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>GPS HAL</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9393</td>
+ <td>A-72312577<a href="#asterisk">*</a><br />
+ M-ALPS03753748</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>MTK wlan</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9394</td>
+ <td>A-72312468<a href="#asterisk">*</a><br />
+ M-ALPS03753652</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>MTK P2P driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9395</td>
+ <td>A-72312071<a href="#asterisk">*</a><br />
+ M-ALPS03753735</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>MTK cfg80211</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9396</td>
+ <td>A-71867113<a href="#asterisk">*</a><br />
+ M-ALPS03740353</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Mediatek CCCI</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9397</td>
+ <td>A-71866634<a href="#asterisk">*</a><br />
+ M-ALPS03532675<br />
+ M-ALPS03479586</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Mediatek WMT device</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9398</td>
+ <td>A-71866289<a href="#asterisk">*</a><br />
+ M-ALPS03740468</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>FM Radio Driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9399</td>
+ <td>A-71866200<a href="#asterisk">*</a><br />
+ M-ALPS03740489</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>/proc/driver/wmt_dbg driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9400</td>
+ <td>A-71865884<a href="#asterisk">*</a><br />
+ M-ALPS03753678</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Goodix Touchscreen Driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-13308</td>
+ <td>A-70728757<a href="#asterisk">*</a><br />
+ M-ALPS03751855</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>thermal</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9401</td>
+ <td>A-70511226<a href="#asterisk">*</a><br />
+ M-ALPS03693409</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>cameraisp</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9402</td>
+ <td>A-70728072<a href="#asterisk">*</a><br />
+ M-ALPS03684171</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>WLAN driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9403</td>
+ <td>A-72313700<a href="#asterisk">*</a><br />
+ M-ALPS03762413</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>HAL</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9404</td>
+ <td>A-72314374<a href="#asterisk">*</a><br />
+ M-ALPS03773299</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Radio Interface Layer</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9405</td>
+ <td>A-72314804<a href="#asterisk">*</a><br />
+ M-ALPS03762818</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>DmAgent</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9406</td>
+ <td>A-70726950<a href="#asterisk">*</a><br />
+ M-ALPS03684231</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>NlpService</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9407</td>
+ <td>A-70728406<a href="#asterisk">*</a><br />
+ M-ALPS03902529</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>emmc</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9408</td>
+ <td>A-70729980<a href="#asterisk">*</a><br />
+ M-ALPS03693684</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>GPS</td>
+ </tr>
+</table>
+
+
+<h3 id="qualcomm-components">Qualcomm components</h3>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-15824</td>
+ <td>A-68163089<a href="#asterisk">*</a><br />
+ QC-CR#2107596</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>EDK2 bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5897</td>
+ <td>A-70528036<a href="#asterisk">*</a><br />
+ QC-CR#2172685</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>diag</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5895</td>
+ <td>A-70293535<a href="#asterisk">*</a><br />
+ QC-CR#2161027</td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>qcacld</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5836</td>
+ <td>A-74237168<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=12a789c2e0e9fd2df40ac13ac27fe99487263887">QC-CR#2160375</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3577</td>
+ <td>A-72957387<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=cf1c43ce8840021d2907afaa6c514e6971d7ebac">
+QC-CR#2129566</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-15824</td>
+ <td>A-68992463<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=6ad7ccfee4f78d23b4b8f5ebda0eef54dced32e3">
+QC-CR#2107596</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-14893</td>
+ <td>A-68992461<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=c8dc3bf07ee909e6e57ad7887f9d3c0ffa5df795">
+QC-CR#2104835</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-14872</td>
+ <td>A-68992457<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=1daa83baa41d1e6291e89f69e6487695b6890c01">
+QC-CR#2073366</a></td>
+ <td>ID</td>
+ <td>Moderate</td>
+ <td>bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5893</td>
+ <td>A-74237664<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=4cc54a30958d2a8d989364aa45a27fde3dd17352">
+QC-CR#2146949</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>WLAN</td>
+ </tr>
+ <tr>
+ <td>CVE-2016-5342, CVE-2016-5080</td>
+ <td>A-72232294<a href="#asterisk">*</a><br />
+ QC-CR#1032174</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>WLAN Driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5899</td>
+ <td>A-71638332<a href="#asterisk">*</a><br />
+ QC-CR#1040612</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>WLAN Driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5890</td>
+ <td>A-71501675<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=c9c8de8000ff32f8d1e24e697d861d92d8ed0b7a">
+QC-CR#2127348</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5889</td>
+ <td>A-71501674<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=a95ca8e2eeb8a030e977f033cff122cad408158c">
+QC-CR#2127341</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5888</td>
+ <td>A-71501672<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=5388803fa6d004382f4a857056ce06d963698d9c">
+QC-CR#2127312</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5887</td>
+ <td>A-71501669<br />
+ <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=c8415f6f2271008aef5056689950236df627d9b1">
+QC-CR#2127305</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Bootloader</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5898</td>
+ <td>A-71363804<a href="#asterisk">*</a><br />
+ QC-CR#2173850</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>QC Audio Driver</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5832</td>
+ <td>A-69065862<a href="#asterisk">*</a><br />
+ QC-CR#2149998</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>Camerav2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5857</td>
+ <td>A-62536960<a href="#asterisk">*</a><br />
+ QC-CR#2169403</td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>wcd_cpe_core</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3597</td>
+ <td>A-74237782<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e569b915a246627d0449016408a9c0d388ee4ab4">
+QC-CR#2143070</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>DSP_Services</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3564</td>
+ <td>A-72957546<br />
+ <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=782cd411398e3cf2aca1615ab2649df0c46920ee">
+QC-CR#2062648</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>DSP_Services</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-15856</td>
+ <td>A-72957506<br />
+ <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=ed02c0ccd6f7461a69d64903738372eaf21babcd">QC-CR#2111922</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>power_stats debugfs node</td>
+ </tr>
+</table>
+
+
+<h3 id="qualcomm-closed-source-components">Qualcomm closed-source components</h3>
+
+<p>
+These vulnerabilities affect Qualcomm components and are described in further detail in the
+appropriate Qualcomm AMSS security bulletin or security alert. The severity assessment of
+these issues is provided directly by Qualcomm.
+</p>
+
+<table>
+ <col width="21%">
+ <col width="21%">
+ <col width="14%">
+ <col width="14%">
+ <col width="30%">
+ <tr>
+ <th>CVE</th>
+ <th>References</th>
+ <th>Type</th>
+ <th>Severity</th>
+ <th>Component</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-11088</td>
+ <td>A-72951251<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Moderate</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11076</td>
+ <td>A-65049457<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Moderate</td>
+ <td>Closed-source component</td>
+ </tr>
+</table>
+
+
+<h2 id="functional-patches">Functional patches</h2>
+<p>
+These updates are included for affected Pixel devices to address functionality
+issues not related to the security of Pixel devices. The table includes
+associated references; the affected category, such as Bluetooth or mobile data;
+and a summary of the issue.
+</p>
+
+
+<table>
+ <tr>
+ <th>References</th>
+ <th>Category</th>
+ <th>Improvements</th>
+ <th>Devices</th>
+ </tr>
+ <tr>
+ <td>A-74413120</td>
+ <td>Bluetooth</td>
+ <td>Improve BLE performance</td>
+ <td>All</td>
+ </tr>
+ <tr>
+ <td>A-76022834</td>
+ <td>Performance</td>
+ <td>Improve antenna-switching behavior in areas of weak coverage</td>
+ <td>Pixel 2, Pixel 2 XL</td>
+ </tr>
+ <tr>
+ <td>A-77963927</td>
+ <td>Wi-Fi</td>
+ <td>Improve Wi-Fi connectivity with certain Wi-Fi access points</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL</td>
+ </tr>
+ <tr>
+ <td>A-77458860</td>
+ <td>UI</td>
+ <td>IMEI SV format correctly displays as numeric</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL</td>
+ </tr>
+ <tr>
+ <td>A-68114567<br />
+
+A-74058011</td>
+ <td>Display</td>
+ <td>Improve consistency of Always On Display</td>
+ <td>Pixel 2 XL</td>
+ </tr>
+ <tr>
+ <td>A-70282393</td>
+ <td>Performance</td>
+ <td>Improve proximity sensor behavior</td>
+ <td>Pixel 2 XL</td>
+ </tr>
+</table>
+
+
+<h2 id="common-questions-and-answers">Common questions and answers</h2>
+<p>
+This section answers common questions that may occur after reading this
+bulletin.
+</p>
+<p>
+<strong>1. How do I determine if my device is updated to address these issues?
+</strong>
+</p>
+<p>
+Security patch levels of 2018-06-05 or later address all issues associated with
+the 2018-06-05 security patch level and all previous patch levels. To learn how
+to check a device's security patch level, read the instructions on the <a
+href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">Pixel
+and Nexus update schedule</a>.
+</p>
+<p id="type">
+<strong>2. What do the entries in the <em>Type</em> column mean?</strong>
+</p>
+<p>
+Entries in the <em>Type</em> column of the vulnerability details table reference
+the classification of the security vulnerability.
+</p>
+<table>
+ <col width="25%">
+ <col width="75%">
+ <tr>
+ <th>Abbreviation</th>
+ <th>Definition</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>Remote code execution</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>Elevation of privilege</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>Information disclosure</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>Denial of service</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>Classification not available</td>
+ </tr>
+</table>
+<p>
+<strong>3. What do the entries in the <em>References</em> column mean?</strong>
+</p>
+<p>
+Entries under the <em>References</em> column of the vulnerability details table
+may contain a prefix identifying the organization to which the reference value
+belongs.
+</p>
+<table>
+ <col width="25%">
+ <col width="75%">
+ <tr>
+ <th>Prefix</th>
+ <th>Reference</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android bug ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm reference number</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek reference number</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA reference number</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom reference number</td>
+ </tr>
+</table>
+<p id="asterisk">
+<strong>4. What does a * next to the Android bug ID in the <em>References</em>
+column mean?</strong>
+</p>
+<p>
+Issues that are not publicly available have a * next to the Android bug ID in
+the <em>References</em> column. The update for that issue is generally contained
+in the latest binary drivers for Pixel&hairsp;/&hairsp;Nexus devices available
+from the <a href="https://developers.google.com/android/nexus/drivers">Google
+Developer site</a>.
+</p>
+<p>
+<strong>5. Why are security vulnerabilities split between this bulletin and the
+Android Security Bulletins?</strong>
+</p>
+<p>
+Security vulnerabilities that are documented in the Android Security Bulletins
+are required in order to declare the latest security patch level on Android
+devices. Additional security vulnerabilities, such as those documented in this
+bulletin are not required for declaring a security patch level.
+</p>
+<h2 id="versions">Versions</h2>
+<table>
+ <col width="25%">
+ <col width="25%">
+ <col width="50%">
+ <tr>
+ <th>Version</th>
+ <th>Date</th>
+ <th>Notes</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>June 4, 2018</td>
+ <td>Bulletin published.</td>
+ </tr>
+ <tr>
+ <td>1.1</td>
+ <td>June 6, 2018</td>
+ <td>Bulletin revised to include AOSP links.</td>
+ </tr>
+</table>
+
+ </body>
+</html>
diff --git a/en/security/bulletin/pixel/2018.html b/en/security/bulletin/pixel/2018.html
index f7ee9164..cd9ef382 100644
--- a/en/security/bulletin/pixel/2018.html
+++ b/en/security/bulletin/pixel/2018.html
@@ -39,6 +39,21 @@ Bulletins</a> homepage.</p>
<th>Security patch level</th>
</tr>
<tr>
+ <td><a href="/security/bulletin/pixel/2018-06-01.html">June 2018</a></td>
+ <td>Coming soon
+ <!--
+ <a href="/security/bulletin/pixel/2018-06-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ -->
+ </td>
+ <td>June 4, 2018</td>
+ <td>2018-06-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/pixel/2018-05-01.html">May 2018</a></td>
<td>
<a href="/security/bulletin/pixel/2018-05-01.html">English</a>&nbsp;/
diff --git a/en/security/bulletin/pixel/index.html b/en/security/bulletin/pixel/index.html
index 249599f8..c00d7058 100644
--- a/en/security/bulletin/pixel/index.html
+++ b/en/security/bulletin/pixel/index.html
@@ -59,6 +59,21 @@ AOSP 24&ndash;48 hours after the Pixel&hairsp;/&hairsp;Nexus bulletin is release
<th>Security patch level</th>
</tr>
<tr>
+ <td><a href="/security/bulletin/pixel/2018-06-01.html">June 2018</a></td>
+ <td>Coming soon
+ <!--
+ <a href="/security/bulletin/pixel/2018-06-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
+ -->
+ </td>
+ <td>June 4, 2018</td>
+ <td>2018-06-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/pixel/2018-05-01.html">May 2018</a></td>
<td>
<a href="/security/bulletin/pixel/2018-05-01.html">English</a>&nbsp;/
@@ -91,9 +106,7 @@ AOSP 24&ndash;48 hours after the Pixel&hairsp;/&hairsp;Nexus bulletin is release
<a href="/security/bulletin/pixel/2018-03-01.html?hl=ja">日本語</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-03-01.html?hl=ko">한국어</a>&nbsp;/
<a href="/security/bulletin/pixel/2018-03-01.html?hl=ru">ру́сский</a>&nbsp;/
- <!--
<a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- -->
<a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
</td>
<td>March 5, 2018</td>
diff --git a/en/security/overview/acknowledgements.html b/en/security/overview/acknowledgements.html
index 20d43ae7..efd56c97 100644
--- a/en/security/overview/acknowledgements.html
+++ b/en/security/overview/acknowledgements.html
@@ -37,7 +37,152 @@ Rewards</a> program.</p>
<p>In 2018, the security acknowledgements are listed by month. In prior years,
acknowledgements were listed together.</p>
-<h4 id="may-2018">May</h4>
+<h4 id="june-2018">June</h4>
+<table>
+ <col width="70%">
+ <col width="30%">
+ <tr>
+ <th>Researchers</th>
+ <th>CVEs</th>
+ </tr>
+ <tr>
+ <td>Baozeng Ding (丁保增) (<a href="https://twitter.com/sploving">@sploving</a>),
+ Pandora Lab of Ali Security
+ </td>
+ <td>CVE-2018-5857, CVE-2018-9389
+ </td>
+ </tr>
+ <tr>
+ <td>Daniel Kachakil of IOActive
+ </td>
+ <td>CVE-2018-9375
+ </td>
+ </tr>
+ <tr>
+ <td>Elphet and Gong Guang of Alpha Team, Qihoo 360 Technology Co. Ltd.
+ </td>
+ <td>CVE-2018-9348
+ </td>
+ </tr>
+ <tr>
+ <td>Hao Chen and Guang Gong of Alpha Team, Qihoo 360 Technology Co. Ltd.</td>
+ <td>CVE-2018-5899
+ </td>
+ </tr>
+ <tr>
+ <td>Jianjun Dai (<a href="https://twitter.com/Jioun_dai">@Jioun_dai</a>) and Guang Gong
+ (<a href="https://twitter.com/oldfresher">@oldfresher</a>) of Alpha Team,<br />
+ Qihoo 360 Technology Co. Ltd</td>
+ <td>CVE-2018-9381, CVE-2018-9358,<br />
+ CVE-2018-9359, CVE-2018-9360,<br />
+ CVE-2018-9361, CVE-2018-9357,<br />
+ CVE-2018-9356</td>
+ </tr>
+ <tr>
+ <td>joe0x20@gmail.com
+ </td>
+ <td>CVE-2018-5898
+ </td>
+ </tr>
+ <tr>
+ <td><a href="https://www.linkedin.com/in/jose-maria-ariel-martinez-juarez-7910a189/">
+ Jose Martinez</a>
+ </td>
+ <td>CVE-2018-5146
+ </td>
+ </tr>
+ <tr>
+ <td>Julien Thomas (<a href="https://twitter.com/julien_thomas">@Julien_Thomas</a>) of
+ <a href="http://protektoid.com/">Protektoid.com</a>
+ </td>
+ <td>CVE-2018-9374
+ </td>
+ </tr>
+ <tr>
+ <td><a href="https://github.com/michalbednarski">Michał Bednarski</a>
+ </td>
+ <td>CVE-2018-9339
+ </td>
+ </tr>
+ <tr>
+ <td>Mingjian Zhou (周明建)
+ (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)
+ of C0RE Team
+ </td>
+ <td>CVE-2018-9344
+ </td>
+ </tr>
+ <tr>
+ <td>Niky1235 (<a href="https://twitter.com/jiych_guru">@jiych_guru</a>)
+ </td>
+ <td>CVE-2017-13230, CVE-2018-9347
+ </td>
+ </tr>
+ <tr>
+ <td>Pengfei Ding (丁鹏飞), Chenfu Bao (包沉浮), and Lenx Wei (韦韬)<br />
+ of Baidu X-Lab (百度安全实验室)
+ </td>
+ <td>CVE-2018-5832
+ </td>
+ </tr>
+ <tr>
+ <td>Qing Dong of 360 Beaconlab
+ </td>
+ <td>CVE-2018-9386
+ </td>
+ </tr>
+ <tr>
+ <td>Scott Bauer (<a href="https://twitter.com/ScottyBauer1">@ScottyBauer1</a>)
+ </td>
+ <td>CVE-2018-9388, CVE-2018-9355,<br />
+ CVE-2018-9380
+ </td>
+ </tr>
+ <tr>
+ <td><a href="https://github.com/stze">Stephan Zeisberg</a> of
+ <a href="https://srlabs.de/">Security Research Labs</a>
+ </td>
+ <td>CVE-2018-9350, CVE-2018-9352,<br />
+ CVE-2018-9353, CVE-2018-9341
+ </td>
+ </tr>
+ <tr>
+ <td>Tencent Blade Team
+ </td>
+ <td>CVE-2018-9345, CVE-2018-9346
+ </td>
+ </tr>
+ <tr>
+ <td>Yonggang Guo (<a href="https://twitter.com/guoygang">@guoygang</a>)
+ of IceSword Lab, Qihoo 360 Technology Co. Ltd.
+ </td>
+ <td>CVE-2017-0564
+ </td>
+ </tr>
+ <tr>
+ <td>Yuan-Tsung Lo of C0RE Team
+ </td>
+ <td>CVE-2017-13079, CVE-2017-13081
+ </td>
+ </tr>
+ <tr>
+ <td>华为移动安全实验室的钱育波
+ </td>
+ <td>CVE-2018-9363
+ </td>
+ </tr>
+ <tr>
+ <td>Zinuo Han of Chengdu Security Response Center,
+ Qihoo 360 Technology Co. Ltd.
+ </td>
+ <td>CVE-2018-9340, CVE-2018-9338,<br />
+ CVE-2018-9378
+ </td>
+ </tr>
+</table>
+
+
+ <h4 id="may-2018">May</h4>
<table>
<col width="70%">
<col width="30%">
@@ -79,7 +224,8 @@ acknowledgements were listed together.</p>
<td>CVE-2017-13310, CVE-2017-13311</td>
</tr>
<tr>
- <td>Pengfei Ding (丁鹏飞), Chenfu Bao (包沉浮), and Lenx Wei (韦韬) of Baidu X-Lab (百度安全实验室)</td>
+ <td>Pengfei Ding (丁鹏飞), Chenfu Bao (包沉浮), and Lenx Wei (韦韬)
+ of Baidu X-Lab (百度安全实验室)</td>
<td>CVE-2017-15857, CVE-2018-5852</td>
</tr>
<tr>
@@ -115,8 +261,8 @@ acknowledgements were listed together.</p>
</tr>
<tr>
<td><a href="http://weibo.com/csddl">Chong Wang</a> and
- <a href="http://weibo.com/ele7enxxh">Zinuo Han</a> of Chengdu Security Response Center, Qihoo 360
- Technology Co. Ltd
+ <a href="http://weibo.com/ele7enxxh">Zinuo Han</a> of Chengdu Security Response Center,
+ Qihoo 360 Technology Co. Ltd
</td>
<td>CVE-2017-13289, CVE-2017-13286
</td>
@@ -134,8 +280,8 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td>Dinesh Venkatesan (<a href="https://twitter.com/malwareresearch">&#64;malwareresearch</a>) of
- Symantec
+ <td>Dinesh Venkatesan (<a href="https://twitter.com/malwareresearch">&#64;malwareresearch</a>)
+ of Symantec
</td>
<td>CVE-2017-13295
</td>
@@ -178,8 +324,8 @@ acknowledgements were listed together.</p>
</td>
</tr>
<tr>
- <td>Jianjun Dai (<a href="https://twitter.com/Jioun_dai">&#64;Jioun_dai</a>) and Guang Gong of Alpha
- Team, Qihoo 360 Technology Co. Ltd
+ <td>Jianjun Dai (<a href="https://twitter.com/Jioun_dai">&#64;Jioun_dai</a>) and
+ Guang Gong of Alpha Team, Qihoo 360 Technology Co. Ltd
</td>
<td>CVE-2017-13291, CVE-2017-13283, CVE-2017-13282, CVE-2017-13281, CVE-2017-13267
</td>
@@ -238,7 +384,8 @@ acknowledgements were listed together.</p>
<td><a href="http://weibo.com/ele7enxxh">Zinuo Han</a> of Chengdu Security Response Center,
Qihoo 360 Technology Co. Ltd
</td>
- <td>CVE-2017-13288, CVE-2017-13298, CVE-2017-13296, CVE-2017-13299, CVE-2017-13275, CVE-2017-13285
+ <td>CVE-2017-13288, CVE-2017-13298, CVE-2017-13296, CVE-2017-13299,
+ CVE-2017-13275, CVE-2017-13285
</td>
</tr>
</table>
@@ -284,18 +431,19 @@ Guang Gong of Alpha Team, Qihoo 360 Technology Co. Ltd.</td>
<td>CVE-2017-13258</td>
</tr>
<tr>
- <td>Hongli Han (<a href="https://twitter.com/hexb1n">&#64;hexb1n</a>), <a
-href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a>, and Mingjian Zhou
-(周明建) (<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a></td>
+ <td>Hongli Han (<a href="https://twitter.com/hexb1n">&#64;hexb1n</a>),
+ <a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a>, and Mingjian Zhou
+(周明建) (<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-6287</td>
</tr>
<tr>
<td>Hongli Han (<a href="https://twitter.com/HexB1n">&#64;HexB1n</a>) and
Mingjian Zhou (周明建)(<a
-href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a></td>
- <td>CVE-2017-6286, CVE-2017-6285, CVE-2017-6281</td>
+href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org">C0RE Team</a></td>
+ <td>CVE-2017-6286, CVE-2017-6285,<br />
+ CVE-2017-6281</td>
</tr>
<tr>
<td>Pengfei Ding (丁鹏飞), Chenfu Bao (包沉浮), Lenx Wei (韦韬) of Baidu X-Lab
@@ -308,8 +456,8 @@ CVE-2017-15814</td>
<td>CVE-2017-13269</td>
</tr>
<tr>
- <td>Tamir Zahavi-Brunner (<a
-href="https://twitter.com/tamir_zb">&#64;tamir_zb</a>) of Zimperium zLabs Team</td>
+ <td>Tamir Zahavi-Brunner
+ (<a href="https://twitter.com/tamir_zb">&#64;tamir_zb</a>) of Zimperium zLabs Team</td>
<td>CVE-2017-13253</td>
</tr>
<tr>
@@ -317,8 +465,8 @@ href="https://twitter.com/tamir_zb">&#64;tamir_zb</a>) of Zimperium zLabs Team</
<td>CVE-2017-13249, CVE-2017-13248, CVE-2017-13264</td>
</tr>
<tr>
- <td>Wish Wu (<a href=" https://twitter.com/wish_wu">&#64;wish_wu</a> <a
-href="http://www.weibo.com/wishlinux">吴潍浠</a> 此彼) of Ant-financial Light-Year
+ <td>Wish Wu (<a href=" https://twitter.com/wish_wu">&#64;wish_wu</a>
+ <a href="http://www.weibo.com/wishlinux">吴潍浠</a> 此彼) of Ant-financial Light-Year
Security Lab</td>
<td>CVE-2017-13259, CVE-2017-13272</td>
</tr>
@@ -392,26 +540,26 @@ of <a href="http://www.ms509.com">MS509Team</a>
</td>
</tr>
<tr>
- <td>Hongli Han (<a href="https://twitter.com/HexB1n">&#64;HexB1n</a>), <a
-href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a> and Mingjian Zhou (<a
-href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a>
+ <td>Hongli Han (<a href="https://twitter.com/HexB1n">&#64;HexB1n</a>),
+ <a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a> and Mingjian Zhou
+(<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org">C0RE Team</a>
</td>
<td>CVE-2017-6258
</td>
</tr>
<tr>
<td>Hongli Han (<a href="https://twitter.com/HexB1n">&#64;HexB1n</a>), Mingjian
-Zhou (<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a>
+Zhou (<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org">C0RE Team</a>
</td>
<td>CVE-2017-17767, CVE-2017-6279
</td>
</tr>
<tr>
<td>Mingjian Zhou (周明建) (<a
-href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a>
+href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org">C0RE Team</a>
</td>
<td>CVE-2017-13241, CVE-2017-13231
</td>
@@ -423,8 +571,8 @@ href="http://c0reteam.org">C0RE Team</a>
</td>
</tr>
<tr>
- <td><a href="mailto:jiych.guru@gmail.com">Niky1235</a> (<a
-href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)
+ <td><a href="mailto:jiych.guru@gmail.com">Niky1235</a>
+ (<a href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)
</td>
<td>CVE-2017-13230, CVE-2017-13234
</td>
@@ -436,9 +584,8 @@ href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)
</td>
</tr>
<tr>
- <td>Qidan He (<a
-href="https://twitter.com/flanker_hqd?lang=en">&#64;flanker_hqd</a>) of PDD Security
-Team
+ <td>Qidan He (<a href="https://twitter.com/flanker_hqd?lang=en">&#64;flanker_hqd</a>)
+ of PDD Security Team
</td>
<td>CVE-2017-13246
</td>
@@ -481,19 +628,19 @@ Response Center of Qihoo 360 Technology Co. Ltd.
<th>CVEs</th>
</tr>
<tr>
- <td><a href="mailto:zhangadong@huawei.com">Adong Zhang</a> (张阿东), <a
-href="mailto:liuchao741@huawei.com">Chao Liu</a> (刘超), and <a
-href="mailto:dongjinguang@huawei.com">Jinguang Dong</a> (董金光)</td>
+ <td><a href="mailto:zhangadong@huawei.com">Adong Zhang</a> (张阿东),
+ <a href="mailto:liuchao741@huawei.com">Chao Liu</a> (刘超), and
+<a href="mailto:dongjinguang@huawei.com">Jinguang Dong</a> (董金光)</td>
<td>CVE-2017-13215</td>
</tr>
<tr>
- <td><a href="https://twitter.com/amarekano">Amar Menezes</a> of <a
-href="https://labs.mwrinfosecurity.com/">MWR Labs</a></td>
+ <td><a href="https://twitter.com/amarekano">Amar Menezes</a> of
+ <a href="https://labs.mwrinfosecurity.com/">MWR Labs</a></td>
<td>CVE-2017-13212</td>
</tr>
<tr>
- <td>Andy Tyler (<a href="https://twitter.com/ticarpi">&#64;ticarpi</a>) of <a
-href="http://www.e2e-assure.com ">e2e-assure</a></td>
+ <td>Andy Tyler (<a href="https://twitter.com/ticarpi">&#64;ticarpi</a>) of
+ <a href="http://www.e2e-assure.com ">e2e-assure</a></td>
<td>CVE-2017-0846</td>
</tr>
<tr>
@@ -511,8 +658,8 @@ Chengming Yang, and Yang Song of Pandora Lab, Ali Security</td>
</tr>
<tr>
<td><a href="mailto:zc1991@mail.ustc.edu.cn">Chi Zhang</a> and Mingjian Zhou
-(<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a></td>
+(<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-13178, CVE-2017-13179</td>
</tr>
<tr>
@@ -530,10 +677,10 @@ of <a href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-13183, CVE-2017-13180</td>
</tr>
<tr>
- <td>Hongli Han (<a href="https://twitter.com/HexB1n">&#64;HexB1n</a>), <a
-href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a>, and Mingjian Zhou (<a
-href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a></td>
+ <td>Hongli Han (<a href="https://twitter.com/HexB1n">&#64;HexB1n</a>),
+ <a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a>, and Mingjian Zhou
+ (<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+ <a href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-13194</td>
</tr>
<tr>
@@ -541,14 +688,14 @@ href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-13224</td>
</tr>
<tr>
- <td>Mingjian Zhou (周明建) (<a
-href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org">C0RE Team</a></td>
+ <td>Mingjian Zhou (周明建)
+ (<a href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+ <a href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-13184, CVE-2017-13201</td>
</tr>
<tr>
- <td><a href="mailto:jiych.guru@gmail.com">Niky1235</a> (<a
-href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)</td>
+ <td><a href="mailto:jiych.guru@gmail.com">Niky1235</a>
+ (<a href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)</td>
<td>CVE-2017-0855, CVE-2017-13195, CVE-2017-13181</td>
</tr>
<tr>
@@ -563,9 +710,9 @@ Academy of Sciences</td>
<td>CVE-2017-13176</td>
</tr>
<tr>
- <td>V.E.O (<a href="https://twitter.com/vysea">&#64;VYSEa</a>) of <a
-href="http://blog.trendmicro.com/trendlabs-security-intelligence/category/mobile/">Mobile
-Threat Response Team</a>, <a href="http://www.trendmicro.com">Trend Micro</a></td>
+ <td>V.E.O (<a href="https://twitter.com/vysea">&#64;VYSEa</a>) of
+ <a href="http://blog.trendmicro.com/trendlabs-security-intelligence/category/mobile/">
+ Mobile Threat Response Team</a>, <a href="http://www.trendmicro.com">Trend Micro</a></td>
<td>CVE-2017-13196, CVE-2017-13186</td>
</tr>
<tr>
@@ -577,8 +724,7 @@ Threat Response Team</a>, <a href="http://www.trendmicro.com">Trend Micro</a></t
<td>CVE-2017-13217</td>
</tr>
<tr>
- <td>Yangkang (<a href="https://twitter.com/dnpushme">&#64;dnpushme</a>) of
-Qihoo360 Qex Team</td>
+ <td>Yangkang (<a href="https://twitter.com/dnpushme">&#64;dnpushme</a>) of Qihoo360 Qex Team</td>
<td>CVE-2017-13200</td>
</tr>
<tr>
@@ -587,13 +733,13 @@ and Yuebin Sun of <a href="http://xlab.tencent.com">Tencent's Xuanwu Lab</a></td
<td>CVE-2017-13202</td>
</tr>
<tr>
- <td><a href="mailto:computernik@gmail.com">Yuan-Tsung Lo</a> of <a
-href="http://c0reteam.org">C0RE Team</a></td>
+ <td><a href="mailto:computernik@gmail.com">Yuan-Tsung Lo</a> of
+ <a href="http://c0reteam.org">C0RE Team</a></td>
<td>CVE-2017-13213, CVE-2017-13221</td>
</tr>
<tr>
- <td><a href="http://weibo.com/panyu6325">Yu Pan</a> and <a
-href="mailto:huahuaisadog@gmail.com">Yang Dai</a> of Vulpecker Team, Qihoo 360
+ <td><a href="http://weibo.com/panyu6325">Yu Pan</a> and
+ <a href="mailto:huahuaisadog@gmail.com">Yang Dai</a> of Vulpecker Team, Qihoo 360
Technology Co. Ltd.</td>
<td>CVE-2017-0869</td>
</tr>
@@ -694,8 +840,8 @@ CVE-2017-11000, CVE-2017-11059, CVE-2017-13170</td>
<td>CVE-2017-0860</td>
</tr>
<tr>
- <td><a href="mailto:zc1991@mail.ustc.edu.cn">Chi Zhang</a> of <a
-href="https://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:zc1991@mail.ustc.edu.cn">Chi Zhang</a> of
+ <a href="https://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2017-0666, CVE-2017-0681, CVE-2017-0684, CVE-2017-0765,
CVE-2017-0836, CVE-2017-0857, CVE-2017-0880, CVE-2017-13166</td>
</tr>
@@ -727,8 +873,8 @@ Palo Alto Networks</td>
<td>CVE-2017-0870</td>
</tr>
<tr>
- <td><a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2017-0483, CVE-2017-0739, CVE-2017-0769, CVE-2017-0801</td>
</tr>
<tr>
@@ -737,8 +883,7 @@ href="http://c0reteam.org/">C0RE Team</a></td>
</tr>
<tr>
<td>Daniel Micay of Copperhead Security</td>
- <td>CVE-2017-0397, CVE-2017-0405, CVE-2017-0410, CVE-2017-0826,
- CVE-2017-13160</td>
+ <td>CVE-2017-0397, CVE-2017-0405, CVE-2017-0410, CVE-2017-0826, CVE-2017-13160</td>
</tr>
<tr>
<td>Daxing Guo (<a href="https://twitter.com/freener0">&#64;freener0</a>) of
@@ -746,8 +891,8 @@ Xuanwu Lab, Tencent</td>
<td>CVE-2017-0386, CVE-2017-0553, CVE-2017-0585, CVE-2017-0706</td>
</tr>
<tr>
- <td><a href="mailto:derrek.haxx@gmail.com">derrek</a> (<a
-href="https://twitter.com/derrekr6">&#64;derrekr6</a>)</td>
+ <td><a href="mailto:derrek.haxx@gmail.com">derrek</a>
+ (<a href="https://twitter.com/derrekr6">&#64;derrekr6</a>)</td>
<td>CVE-2016-8413, CVE-2016-8477, CVE-2017-0392, CVE-2017-0521,
CVE-2017-0531, CVE-2017-0576, CVE-2017-8260</td>
</tr>
@@ -780,8 +925,8 @@ CVE-2017-0525, CVE-2017-8265</td>
<td>CVE-2017-0692, CVE-2017-0694, CVE-2017-0771, CVE-2017-0774, CVE-2017-0775</td>
</tr>
<tr>
- <td>En He (<a href="http://twitter.com/heeeeen4x">&#64;heeeeen4x</a>) of <a
-href="http://www.ms509.com/">MS509Team</a></td>
+ <td>En He (<a href="http://twitter.com/heeeeen4x">&#64;heeeeen4x</a>) of
+ <a href="http://www.ms509.com/">MS509Team</a></td>
<td>CVE-2017-0394, CVE-2017-0490, CVE-2017-0601, CVE-2017-0639,
CVE-2017-0645, CVE-2017-0784, CVE-2017-11042</td>
</tr>
@@ -808,8 +953,8 @@ CVE-2017-0645, CVE-2017-0784, CVE-2017-11042</td>
CVE-2017-0570, CVE-2017-0571, CVE-2017-0572</td>
</tr>
<tr>
- <td>Gengjia Chen (<a
-href="https://twitter.com/chengjia4574">&#64;chengjia4574</a>) of IceSword Lab,
+ <td>Gengjia Chen
+ (<a href="https://twitter.com/chengjia4574">&#64;chengjia4574</a>) of IceSword Lab,
Qihoo 360 Technology Co. Ltd.</td>
<td>CVE-2016-8464, CVE-2016-10285, CVE-2016-10288, CVE-2016-10290,
CVE-2016-10294, CVE-2016-10295, CVE-2016-10296, CVE-2017-0329, CVE-2017-0332,
@@ -853,8 +998,8 @@ CVE-2017-0825, CVE-2017-6424, CVE-2017-14904</td>
<td>CVE-2017-0496</td>
</tr>
<tr>
- <td><a
-href="https://www.linkedin.com/in/g%C3%BCliz-seray-tuncay-952a1b9/">Güliz Seray
+ <td>
+ <a href="https://www.linkedin.com/in/g%C3%BCliz-seray-tuncay-952a1b9/">Güliz Seray
Tuncay</a> of the <a href="http://tuncay2.web.engr.illinois.edu/">University of
Illinois at Urbana-Champaign</a></td>
<td>CVE-2017-0593</td>
@@ -864,8 +1009,8 @@ Illinois at Urbana-Champaign</a></td>
<td>CVE-2017-13172</td>
</tr>
<tr>
- <td><a href="mailto:arnow117@gmail.com">Hanxiang Wen</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:arnow117@gmail.com">Hanxiang Wen</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2017-0400, CVE-2017-0418, CVE-2017-0479, CVE-2017-0480,
CVE-2017-0665, CVE-2017-0681, CVE-2017-0737, CVE-2017-14904</td>
</tr>
@@ -936,9 +1081,8 @@ CVE-2017-0792, CVE-2017-0825, CVE-2017-6424</td>
<td>CVE-2017-0478, CVE-2017-0541, CVE-2017-0559</td>
</tr>
<tr>
- <td>Jianqiang Zhao (<a
-href="https://twitter.com/jianqiangzhao">&#64;jianqiangzhao</a>) of IceSword Lab,
-Qihoo 360</td>
+ <td>Jianqiang Zhao (<a href="https://twitter.com/jianqiangzhao">&#64;jianqiangzhao</a>)
+ of IceSword Lab, Qihoo 360</td>
<td>CVE-2016-5346, CVE-2016-8416, CVE-2016-8475, CVE-2016-8478,
CVE-2017-0445, CVE-2017-0458, CVE-2017-0459, CVE-2017-0518, CVE-2017-0519,
CVE-2017-0533, CVE-2017-0534, CVE-2017-0862, CVE-2017-6425, CVE-2017-8233,
@@ -953,9 +1097,8 @@ CVE-2017-8261, CVE-2017-8268, CVE-2017-9718, CVE-2017-1000380</td>
<td>CVE-2016-8461, CVE-2016-8462</td>
</tr>
<tr>
- <td><a
-href="https://www.linkedin.com/in/jose-maria-ariel-martinez-juarez-7910a189/">Jose
-Martinez</a></td>
+ <td><a href="https://www.linkedin.com/in/jose-maria-ariel-martinez-juarez-7910a189/">
+ Jose Martinez</a></td>
<td>CVE-2017-0841</td>
</tr>
<tr>
@@ -991,8 +1134,8 @@ CVE-2017-11060, CVE-2017-11061, CVE-2017-11064, CVE-2017-11089, CVE-2017-11090</
<td>CVE-2017-13165</td>
</tr>
<tr>
- <td><a href="mailto:zlbzlb815@163.com">Lubo Zhang</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:zlbzlb815@163.com">Lubo Zhang</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2016-8479, CVE-2017-0564, CVE-2017-7368</td>
</tr>
<tr>
@@ -1030,8 +1173,8 @@ Tesla Motors Product Security Team</td>
</tr>
<tr>
<td>Mingjian Zhou (<a
-href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+href="https://twitter.com/Mingjian_Zhou">&#64;Mingjian_Zhou</a>) of
+<a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2017-0383, CVE-2017-0417, CVE-2017-0418, CVE-2017-0425,
CVE-2017-0450, CVE-2017-0479, CVE-2017-0480, CVE-2017-0483, CVE-2017-0665,
CVE-2017-0666, CVE-2017-0681, CVE-2017-0684, CVE-2017-0731, CVE-2017-0737,
@@ -1068,8 +1211,8 @@ CVE-2017-0606, CVE-2017-8242, CVE-2017-9679</td>
<td>CVE-2016-5552</td>
</tr>
<tr>
- <td><a href="mailto:jiych.guru@gmail.com">Niky1235</a> (<a
-href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)</td>
+ <td><a href="mailto:jiych.guru@gmail.com">Niky1235</a>
+ (<a href="https://twitter.com/jiych_guru">&#64;jiych_guru</a>)</td>
<td>CVE-2017-0603, CVE-2017-0670, CVE-2017-0697, CVE-2017-0726, CVE-2017-0818</td>
</tr>
<tr>
@@ -1127,9 +1270,8 @@ CVE-2017-8243, CVE-2017-8244, CVE-2017-8261, CVE-2017-8266, CVE-2017-8268,
CVE-2017-8270, CVE-2017-9691, CVE-2017-9718, CVE-2017-10997, CVE-2017-1000380</td>
</tr>
<tr>
- <td>Qidan He (何淇丹) (<a
-href="https://twitter.com/flanker_hqd">&#64;flanker_hqd</a>) of KeenLab, Tencent
-(腾讯科恩实验室)</td>
+ <td>Qidan He (何淇丹) (<a href="https://twitter.com/flanker_hqd">&#64;flanker_hqd</a>)
+ of KeenLab, Tencent (腾讯科恩实验室)</td>
<td>CVE-2017-0325, CVE-2017-0337, CVE-2017-0382, CVE-2017-0427,
CVE-2017-0476, CVE-2017-0544, CVE-2017-0861, CVE-2017-0866, CVE-2017-13167,
CVE-2017-15868</td>
@@ -1171,15 +1313,14 @@ Shellphish Grill Team, UC Santa Barbara</td>
<td>CVE-2017-0505, CVE-2017-13168</td>
</tr>
<tr>
- <td><a href="mailto:sbauer@plzdonthack.me">Scott Bauer</a> (<a
-href="https://twitter.com/ScottyBauer1">&#64;ScottyBauer1</a>)</td>
+ <td><a href="mailto:sbauer@plzdonthack.me">Scott Bauer</a>
+ (<a href="https://twitter.com/ScottyBauer1">&#64;ScottyBauer1</a>)</td>
<td>CVE-2016-10274, CVE-2017-0339, CVE-2017-0405, CVE-2017-0504,
CVE-2017-0516, CVE-2017-0521, CVE-2017-0562, CVE-2017-0576, CVE-2017-0705, CVE-2017-0740,
CVE-2017-8259, CVE-2017-8260, CVE-2017-9680, CVE-2017-11053, CVE-2017-13160</td>
</tr>
<tr>
- <td>Sean Beaupre (<a
-href="https://twitter.com/firewaterdevs">&#64;firewaterdevs</a>)</td>
+ <td>Sean Beaupre (<a href="https://twitter.com/firewaterdevs">&#64;firewaterdevs</a>)</td>
<td>CVE-2016-8461, CVE-2016-8462, CVE-2017-0455</td>
</tr>
<tr>
@@ -1198,8 +1339,8 @@ CVE-2017-0780, CVE-2017-6247, CVE-2017-6248, CVE-2017-6249, CVE-2017-7369</td>
<td>CVE-2017-0860</td>
</tr>
<tr>
- <td><a href="mailto:smarques84@gmail.com">Stéphane Marques</a> of <a
-href="http://www.byterev.com/">ByteRev</a></td>
+ <td><a href="mailto:smarques84@gmail.com">Stéphane Marques</a> of
+ <a href="http://www.byterev.com/">ByteRev</a></td>
<td>CVE-2017-0489</td>
</tr>
<tr>
@@ -1219,15 +1360,15 @@ href="http://www.byterev.com/">ByteRev</a></td>
<td>CVE-2017-0667, CVE-2017-0732, CVE-2017-0805</td>
</tr>
<tr>
- <td><a href="mailto:segfault5514@gmail.com">Tong Lin</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:segfault5514@gmail.com">Tong Lin</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2016-8425, CVE-2016-8426, CVE-2016-8449, CVE-2016-8479,
CVE-2016-8481, CVE-2016-10291, CVE-2017-0333, CVE-2017-0428, CVE-2017-0435,
CVE-2017-0436, CVE-2017-10661</td>
</tr>
<tr>
- <td>Uma Sankar Pradhan (<a
-href="https://twitter.com/umasankar_iitd">&#64;umasankar_iitd</a>)</td>
+ <td>Uma Sankar Pradhan
+ (<a href="https://twitter.com/umasankar_iitd">&#64;umasankar_iitd</a>)</td>
<td>CVE-2017-0560</td>
</tr>
<tr>
@@ -1271,8 +1412,8 @@ Alibaba Inc.</td>
<td>CVE-2017-0860</td>
</tr>
<tr>
- <td><a href="mailto:vancouverdou@gmail.com">Wenke Dou</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:vancouverdou@gmail.com">Wenke Dou</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2017-0384, CVE-2017-0385, CVE-2017-0398, CVE-2017-0400,
CVE-2017-0401, CVE-2017-0402, CVE-2017-0417, CVE-2017-0418, CVE-2017-0450,
CVE-2017-0483, CVE-2017-0768, CVE-2017-0779, CVE-2017-0812, CVE-2017-0815,
@@ -1284,9 +1425,9 @@ of Alpha Team, Qihoo 360 Technology Co. Ltd.</td>
<td>CVE-2017-0577, CVE-2017-0580</td>
</tr>
<tr>
- <td>Wish Wu (<a href="https://twitter.com/wish_wu">&#64;wish_wu</a>) (<a
-href="http://www.weibo.com/wishlinux">吴潍浠</a> 此彼) of Ant-financial Light-Year
-Security Lab</td>
+ <td>Wish Wu (<a href="https://twitter.com/wish_wu">&#64;wish_wu</a>)
+ (<a href="http://www.weibo.com/wishlinux">吴潍浠</a> 此彼)
+ of Ant-financial Light-Year Security Lab</td>
<td>CVE-2017-0408, CVE-2017-0477, CVE-2017-11063, CVE-2017-11092</td>
</tr>
<tr>
@@ -1303,8 +1444,8 @@ CVE-2017-11073, CVE-2017-11093</td>
<td>CVE-2017-0752</td>
</tr>
<tr>
- <td><a href="mailto:wisedd@gmail.com">Xiaodong Wang</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:wisedd@gmail.com">Xiaodong Wang</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2017-0429, CVE-2017-0448</td>
</tr>
<tr>
@@ -1338,8 +1479,8 @@ CVE-2017-0801, CVE-2017-7368, CVE-2017-8264, CVE-2017-10661</td>
<td>CVE-2017-9678</td>
</tr>
<tr>
- <td><a href="mailto:bigwyfone@gmail.com">Yanfeng Wang</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:bigwyfone@gmail.com">Yanfeng Wang</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2016-8430, CVE-2016-8482</td>
</tr>
<tr>
@@ -1372,8 +1513,8 @@ Team, Qihoo 360</td>
<td>CVE-2017-0647, CVE-2017-0690, CVE-2017-0753</td>
</tr>
<tr>
- <td><a href="mailto:yaojun8558363@gmail.com">Yao Jun</a> of <a
-href="http://c0reteam.org/">C0RE Team</a></td>
+ <td><a href="mailto:yaojun8558363@gmail.com">Yao Jun</a> of
+ <a href="http://c0reteam.org/">C0RE Team</a></td>
<td>CVE-2016-8431, CVE-2016-8432, CVE-2016-8435, CVE-2016-8480</td>
</tr>
<tr>
@@ -1450,9 +1591,9 @@ Co. Ltd.</td>
<td>CVE-2017-0758, CVE-2017-0760</td>
</tr>
<tr>
- <td><a href="mailto:zhouzhenster@gmail.com">Zhen Zhou</a> (<a
-href="https://twitter.com/henices">&#64;henices</a>) of <a
-href="http://www.nsfocus.com/">NSFocus</a></td>
+ <td><a href="mailto:zhouzhenster@gmail.com">Zhen Zhou</a>
+ (<a href="https://twitter.com/henices">&#64;henices</a>) of
+<a href="http://www.nsfocus.com/">NSFocus</a></td>
<td>CVE-2017-0406</td>
</tr>
<tr>
@@ -1575,7 +1716,8 @@ Telecommunications</a></p>
<p><a href="mailto:dshe002@ucr.edu">Dongdong She</a> of UC Riverside</p>
-<p>Dongkwan Kim (<a href="mailto:dkay@kaist.ac.kr">dkay@kaist.ac.kr</a>) of System Security Lab, KAIST</p>
+<p>Dongkwan Kim (<a href="mailto:dkay@kaist.ac.kr">dkay@kaist.ac.kr</a>)
+of System Security Lab, KAIST</p>
<p>dosomder</p>
@@ -1622,7 +1764,8 @@ Telecommunications</a></p>
<p>Herbert Bos of Vrije Universiteit Amsterdam</p>
-<p>Hongil Kim (<a href="mailto:hongilk@kaist.ac.kr">hongilk@kaist.ac.kr</a>) of System Security Lab, KAIST</p>
+<p>Hongil Kim (<a href="mailto:hongilk@kaist.ac.kr">hongilk@kaist.ac.kr</a>)
+of System Security Lab, KAIST</p>
<p>Imre Rad of <a href="http://www.search-lab.hu/">Search-Lab Ltd.</a></p>
@@ -1640,7 +1783,8 @@ Telecommunications</a></p>
<p>jfang of KEEN lab, Tencent (<a href="https://twitter.com/k33nteam">&#64;K33nTeam</a>)</p>
-<p>Jianqiang Zhao (<a href="https://twitter.com/jianqiangzhao">&#64;jianqiangzhao</a>) of IceSword Lab, Qihoo 360</p>
+<p>Jianqiang Zhao (<a href="https://twitter.com/jianqiangzhao">&#64;jianqiangzhao</a>)
+of IceSword Lab, Qihoo 360</p>
<p>Joshua Drake (<a href="https://twitter.com/jduck">&#64;jduck</a>)</p>
@@ -1681,10 +1825,10 @@ Fortinet's FortiGuard Labs</p>
<p>Max Spector of Google</p>
-<p>MengLuo Gou (<a href="https://twitter.com/idhyt3r">&#64;idhyt3r</a>) of Bottle
- Tech</p>
+<p>MengLuo Gou (<a href="https://twitter.com/idhyt3r">&#64;idhyt3r</a>) of Bottle Tech</p>
-<p>Michał Bednarski (<a href="https://github.com/michalbednarski">github.com/michalbednarski</a>)</p>
+<p>Michał Bednarski (<a href="https://github.com/michalbednarski">
+github.com/michalbednarski</a>)</p>
<p>Mike Maarse</p>
@@ -1702,7 +1846,8 @@ Fortinet's FortiGuard Labs</p>
<p>Nathan Crandall (<a href="https://twitter.com/natecray">&#64;natecray</a>) of
Tesla Motors Product Security Team</p>
-<p>Nico Golde (<a href="https://twitter.com/iamnion">&#64;iamnion</a>) of Qualcomm Product Security Initiative</p>
+<p>Nico Golde (<a href="https://twitter.com/iamnion">&#64;iamnion</a>) of
+Qualcomm Product Security Initiative</p>
<p>Nightwatch Cybersecurity Research
(<a href="https://twitter.com/nightwatchcyber">&#64;nightwatchcyber</a>)</p>
@@ -1768,8 +1913,8 @@ of TEAM Lv51</p>
<p>Sharvil Nanavati of Google</p>
<p>Shinjo Park (<a href="https://twitter.com/ad_ili_rai">&#64;ad_ili_rai</a>) of
-<a href="http://www.isti.tu-berlin.de/security_in_telecommunications">Security in
-Telecommunications</a></p>
+<a href="http://www.isti.tu-berlin.de/security_in_telecommunications">
+Security in Telecommunications</a></p>
<p>Stuart Henderson</p>
@@ -1805,25 +1950,25 @@ SentinelOne / RedNaga</p>
<p>Vishwath Mohan of Android Security</p>
-<p>Wei Wei (<a href="https://twitter.com/Danny__Wei">&#64;Danny__Wei</a>) of Xuanwu
- LAB, Tencent</p>
+<p>Wei Wei (<a href="https://twitter.com/Danny__Wei">&#64;Danny__Wei</a>) of Xuanwu LAB, Tencent</p>
<p>Weichao Sun (<a href="https://twitter.com/sunblate">&#64;sunblate</a>) of Alibaba Inc</p>
<p>Wen Niu (<a href="https://twitter.com/NWMonster">&#64;NWMonster</a>) of KeenLab
(<a href="https://twitter.com/keen_lab">&#64;keen_lab</a>), Tencent</p>
-<p><a href="mailto:vancouverdou@gmail.com">Wenke Dou</a> of <a href="http://c0reteam.org">C0RE Team</a></p>
+<p><a href="mailto:vancouverdou@gmail.com">Wenke Dou</a> of <a href="http://c0reteam.org">
+C0RE Team</a></p>
<p>Wenlin Yang of Alpha Team, Qihoo 360 Technology Co. Ltd.</p>
-<p>William Roberts (<a href="mailto:william.c.roberts@intel.com">william.c.roberts@intel.com</a>)</p>
+<p>William Roberts (<a href="mailto:william.c.roberts@intel.com">
+william.c.roberts@intel.com</a>)</p>
-<p>Wish Wu (<a href="https://twitter.com/wish_wu">&#64;wish_wu</a>) (<a
- href="http://weibo.com/wishlinux">吴潍浠</a>) of <a
- href="http://blog.trendmicro.com/trendlabs-security-intelligence/category/mobile/">Mobile
- Threat Response Team</a>, <a href="http://www.trendmicro.com">Trend Micro
- Inc.</a></p>
+<p>Wish Wu (<a href="https://twitter.com/wish_wu">&#64;wish_wu</a>)
+(<a href="http://weibo.com/wishlinux">吴潍浠</a>) of
+<a href="http://blog.trendmicro.com/trendlabs-security-intelligence/category/mobile/">
+Mobile Threat Response Team</a>, <a href="http://www.trendmicro.com">Trend Micro Inc.</a></p>
<p><a href="mailto:wisedd@gmail.com">Xiaodong Wang</a> of
@@ -1930,9 +2075,11 @@ of Alibaba Inc.</p>
<p>dragonltx of Alibaba Mobile Security Team</p>
-<p>Gal Beniamini (<a href="http://bits-please.blogspot.com/">http://bits-please.blogspot.com</a>)</p>
+<p>Gal Beniamini (<a href="http://bits-please.blogspot.com/">
+http://bits-please.blogspot.com</a>)</p>
-<p>Guang Gong (龚广) (<a href="https://twitter.com/oldfresher">&#64;oldfresher</a>, higongguang@gmail.com) of <a href="http://www.360.cn/">Qihoo 360 Technology Co.Ltd</a></p>
+<p>Guang Gong (龚广) (<a href="https://twitter.com/oldfresher">&#64;oldfresher</a>,
+higongguang@gmail.com) of <a href="http://www.360.cn/">Qihoo 360 Technology Co.Ltd</a></p>
<p>Hongil Kim of System Security Lab, KAIST (hongilk@kaist.ac.kr)</p>
@@ -1954,15 +2101,19 @@ Buenos Aires Argentina</p>
<p>Lei Wu of C0RE Team from Qihoo 360</p>
-<p>Marco Grassi (<a href="https://twitter.com/marcograss">&#64;marcograss</a>) of <a href="http://k33nteam.org/">KeenTeam</a> (<a href="https://twitter.com/k33nteam">&#64;K33nTeam</a>)</p>
+<p>Marco Grassi (<a href="https://twitter.com/marcograss">&#64;marcograss</a>) of
+<a href="http://k33nteam.org/">KeenTeam</a>
+(<a href="https://twitter.com/k33nteam">&#64;K33nTeam</a>)</p>
-<p>Mark Carter (<a href="https://twitter.com/hanpingchinese">&#64;hanpingchinese</a>) of EmberMitre Ltd</p>
+<p>Mark Carter (<a href="https://twitter.com/hanpingchinese">&#64;hanpingchinese</a>)
+of EmberMitre Ltd</p>
<p>Martin Barbella, Google Chrome Security Team</p>
<p>Michael Peck of <a href="https://www.mitre.org/">The MITRE Corporation</a> (mpeck@mitre.org)</p>
-<p>Michał Bednarski (<a href="https://github.com/michalbednarski">https://github.com/michalbednarski</a>)</p>
+<p>Michał Bednarski (<a href="https://github.com/michalbednarski">
+https://github.com/michalbednarski</a>)</p>
<p>Michael Roland of JR-Center u'smile at University of Applied Scienses, Upper
Austria/Hagenberg</p>
@@ -1975,7 +2126,8 @@ Austria/Hagenberg</p>
<p>Ping Li of Qihoo 360 Technology Co. Ltd</p>
-<p>Qidan He (@flanker_hqd) from KeenTeam (@K33nTeam, <a href="http://k33nteam.org/">http://k33nteam.org/</a>)</p>
+<p>Qidan He (@flanker_hqd) from KeenTeam (@K33nTeam, <a href="http://k33nteam.org/">
+http://k33nteam.org/</a>)</p>
<p>Roee Hay and Or Peles</p>
@@ -1984,7 +2136,8 @@ Austria/Hagenberg</p>
<p>Siegfried Rasthofer of <a href="https://blogs.uni-paderborn.de/sse/">
Secure Software Engineering Group</a>, EC SPRIDE Technische Universität</p>
-<p>Stephan Huber of Testlab Mobile Security, <a href="https://www.sit.fraunhofer.de/">Fraunhofer SIT</a> (Stephan.Huber@sit.fraunhofer.de)</p>
+<p>Stephan Huber of Testlab Mobile Security, <a href="https://www.sit.fraunhofer.de/">F
+raunhofer SIT</a> (Stephan.Huber@sit.fraunhofer.de)</p>
<p>Steven Vittitoe of Google Project Zero</p>
@@ -1996,9 +2149,11 @@ href="http://tonybeltramelli.com/">tonybeltramelli.com</a></p>
<p>Wangtao(neobyte) of Baidu X-Team</p>
-<p>Wen Xu (@antlr7) from KeenTeam (@K33nTeam, <a href="http://k33nteam.org/">http://k33nteam.org/</a>)</p>
+<p>Wen Xu (@antlr7) from KeenTeam (@K33nTeam, <a href="http://k33nteam.org/">
+http://k33nteam.org/</a>)</p>
-<p>William Roberts (<a href="mailto:william.c.roberts@intel.com">william.c.roberts@intel.com</a>)</p>
+<p>William Roberts (<a href="mailto:william.c.roberts@intel.com">
+william.c.roberts@intel.com</a>)</p>
<p>Wish Wu of Trend Micro Inc. (@wish_wu)</p>
@@ -2018,14 +2173,17 @@ href="mailto:amangel@gmail.com">amangel@gmail.com</a>)</p>
<p>Alexandru Gheorghita</p>
-<p><a href="https://twitter.com/isciurus">Andrey Labunets</a> of <a href="https://www.facebook.com">Facebook</a></p>
+<p><a href="https://twitter.com/isciurus">Andrey Labunets</a>
+of <a href="https://www.facebook.com">Facebook</a></p>
<p><a href="http://www.corkami.com">Ange Albertini</a> (<a
href="https://twitter.com/angealbertini">&#64;angealbertini</a>)</p>
<p>Axelle Apvrille of Fortinet, FortiGuards Labs</p>
-<p><a href="http://www.linkedin.com/in/danamodio">Dan Amodio</a> of <a href="https://www.aspectsecurity.com/">Aspect Security</a> (<a href="https://twitter.com/DanAmodio">&#64;DanAmodio</a>)</p>
+<p><a href="http://www.linkedin.com/in/danamodio">Dan Amodio</a> of
+<a href="https://www.aspectsecurity.com/">Aspect Security</a>
+(<a href="https://twitter.com/DanAmodio">&#64;DanAmodio</a>)</p>
<p><a href="http://davidmurdoch.com">David Murdoch</a></p>
@@ -2034,14 +2192,14 @@ href="https://twitter.com/henryhoggard">&#64;HenryHoggard</a>)</p>
<p>Imre Rad of <a href="http://www.search-lab.hu/">Search-Lab Ltd.</a></p>
-<p><a href="http://thejh.net/">Jann Horn</a> <a href="https://android-review.googlesource.com/#/c/98197/">
+<p><a href="http://thejh.net/">Jann Horn</a>
+<a href="https://android-review.googlesource.com/#/c/98197/">
<img style="vertical-align:middle;" src="../images/tiny-robot.png"
alt="Green Droid Patch Symbol"
title="This person contributed code that improved Android security">
</a></p>
-<p>Jeff Forristal of <a href="http://www.bluebox.com/">Bluebox
-Security</a></p>
+<p>Jeff Forristal of <a href="http://www.bluebox.com/">Bluebox Security</a></p>
<p><a href="http://blog.redfern.me/">Joseph Redfern</a> of <a
href="https://labs.mwrinfosecurity.com/">MWR Labs</a> <br>(<a
@@ -2072,7 +2230,8 @@ title="This person contributed code that improved Android security"></a></p>
<p><a href="http://www.samsung.com">Samsung Mobile</a></p>
-<p>Scotty Bauer of University of Utah (<a href="mailto:sbauer@eng.utah.edu">sbauer@eng.utah.edu</a>)</p>
+<p>Scotty Bauer of University of Utah
+(<a href="mailto:sbauer@eng.utah.edu">sbauer@eng.utah.edu</a>)</p>
<p>Sebastian Brenza</p>
@@ -2098,7 +2257,8 @@ alt="Patch Symbol" title="This person contributed code that improved Android sec
Engineering Group</a>, EC SPRIDE Technische Universität Darmstadt (<a
href="mailto:Steven.Arzt@ec-spride.de">Steven.Arzt@ec-spride.de</a>)</p>
-<p><a href="http://www.subodh.io">Subodh Iyengar</a> of <a href="https://www.facebook.com">Facebook</a></p>
+<p><a href="http://www.subodh.io">Subodh Iyengar</a> of
+<a href="https://www.facebook.com">Facebook</a></p>
<p>Tongxin Li of Peking University (<a
href="mailto:litongxin1991@gmail.com">litongxin1991@gmail.com</a>)</p>
@@ -2113,11 +2273,14 @@ href="https://twitter.com/tushardalvi">&#64;tushardalvi</a>)</p>
<p><a href="https://plus.google.com/u/0/109528607786970714118">Valera
Neronov</a></p>
-<p>Wang Tao of <a href="http://xteam.baidu.com">Baidu X-Team</a> (<a href="mailto:wintao@gmail.com">wintao@gmail.com</a>)</p>
+<p>Wang Tao of <a href="http://xteam.baidu.com">Baidu X-Team</a>
+(<a href="mailto:wintao@gmail.com">wintao@gmail.com</a>)</p>
-<p>Wang Yu of <a href="http://xteam.baidu.com">Baidu X-Team</a> (<a href="https://twitter.com/xi4oyu">&#64;xi4oyu</a>)</p>
+<p>Wang Yu of <a href="http://xteam.baidu.com">Baidu X-Team</a>
+(<a href="https://twitter.com/xi4oyu">&#64;xi4oyu</a>)</p>
-<p><a href="http://www.shackleton.io/">Will Shackleton</a> of <a href="https://www.facebook.com">Facebook</a></p>
+<p><a href="http://www.shackleton.io/">Will Shackleton</a> of
+<a href="https://www.facebook.com">Facebook</a></p>
<p><a href="http://www.linkedin.com/in/billcroberts">
William Roberts</a> (<a href="mailto:bill.c.roberts@gmail.com">bill.c.roberts@gmail.com</a>)
@@ -2127,24 +2290,24 @@ William Roberts</a> (<a href="mailto:bill.c.roberts@gmail.com">bill.c.roberts@gm
alt="Patch Symbol" title="This person contributed code that improved Android security"></a></p>
<p><a href="http://www.informatics.indiana.edu/xw7/">Xiaofeng Wang</a> of
-Indiana University Bloomington (<a
-href="mailto:xw7@indiana.edu">xw7@indiana.edu</a>)</p>
+Indiana University Bloomington (<a href="mailto:xw7@indiana.edu">xw7@indiana.edu</a>)</p>
-<p>Xiaoyong Zhou of <a
-href="http://www.cs.indiana.edu/~zhou/">Indiana University Bloomington</a> <br>(<a
-href="https://twitter.com/xzhou">&#64;xzhou</a>, <a
-href="mailto:zhou.xiaoyong@gmail.com">zhou.xiaoyong@gmail.com</a>)</p>
+<p>Xiaoyong Zhou of <a href="http://www.cs.indiana.edu/~zhou/">
+Indiana University Bloomington</a> <br>
+(<a href="https://twitter.com/xzhou">&#64;xzhou</a>,
+<a href="mailto:zhou.xiaoyong@gmail.com">zhou.xiaoyong@gmail.com</a>)</p>
-<p>Xinhui Han of Peking University (<a
-href="mailto:hanxinhui@pku.edu.cn">hanxinhui@pku.edu.cn</a>)</p>
+<p>Xinhui Han of Peking University
+(<a href="mailto:hanxinhui@pku.edu.cn">hanxinhui@pku.edu.cn</a>)</p>
-<p>Yeonjoon Lee of Indiana University Bloomington (<a
-href="mailto:luc2yj@gmail.com">luc2yj@gmail.com</a>)</p>
+<p>Yeonjoon Lee of Indiana University Bloomington
+(<a href="mailto:luc2yj@gmail.com">luc2yj@gmail.com</a>)</p>
-<p><a href="http://www.androbugs.com">Yu-Cheng Lin 林禹成</a> (<a
-href="https://twitter.com/AndroBugs">&#64;AndroBugs</a>)</p>
+<p><a href="http://www.androbugs.com">Yu-Cheng Lin 林禹成</a>
+(<a href="https://twitter.com/AndroBugs">&#64;AndroBugs</a>)</p>
-<p>Zhang Dong Hui of <a href="http://xteam.baidu.com">Baidu X-Team</a> (<a href="http://weibo.com/shineastdh">shineastdh</a>)</p>
+<p>Zhang Dong Hui of <a href="http://xteam.baidu.com">Baidu X-Team</a>
+(<a href="http://weibo.com/shineastdh">shineastdh</a>)</p>
</div>
@@ -2188,7 +2351,8 @@ at Urbana-Champaign</a>
<p>Qualcomm Product Security Initiative</p>
-<p><a href="https://securityresear.ch/">Roee Hay</a> (<a href="https://twitter.com/roeehay">&#64;roeehay</a>,
+<p><a href="https://securityresear.ch/">Roee Hay</a>
+(<a href="https://twitter.com/roeehay">&#64;roeehay</a>,
<a href="mailto:roeehay@gmail.com">roeehay@gmail.com</a>)</p>
<p>Robert Craig of <a href="https://www.nsa.gov/research/ia_research/">
@@ -2214,9 +2378,11 @@ William Roberts</a> (<a href="mailto:bill.c.roberts@gmail.com">bill.c.roberts@gm
<img style="vertical-align:middle" src="../images/tiny-robot.png"
alt="Patch Symbol" title="This person contributed code that improved Android security"></a></p>
-<p>Xiaorui Pan of Indiana University Bloomington (<a href="mailto:eagle200467@gmail.com">eagle200467@gmail.com</a>)</p>
+<p>Xiaorui Pan of Indiana University Bloomington
+(<a href="mailto:eagle200467@gmail.com">eagle200467@gmail.com</a>)</p>
-<p>XiaoFeng Wang of Indiana University Bloomington (<a href="mailto:xw7@indiana.edu">xw7@indiana.edu</a>)</p>
+<p>XiaoFeng Wang of Indiana University Bloomington
+(<a href="mailto:xw7@indiana.edu">xw7@indiana.edu</a>)</p>
</div>
@@ -2230,7 +2396,8 @@ of <a href="https://viaforensics.com/">viaForensics</a></p>
<p><a href="http://thejh.net/">Jann Horn</a></p>
-<p>Ravishankar Borgaonkari (<a href="https://twitter.com/raviborgaonkar">&#64;raviborgaonkar</a>) of TU Berlin</p>
+<p>Ravishankar Borgaonkari (<a href="https://twitter.com/raviborgaonkar">&#64;raviborgaonkar</a>)
+of TU Berlin</p>
<p>Robert Craig of <a href="https://www.nsa.gov/research/ia_research/">
Trusted Systems Research Group</a>, US National Security Agency
@@ -2238,7 +2405,8 @@ Trusted Systems Research Group</a>, US National Security Agency
<img style="vertical-align:middle" src="../images/tiny-robot.png" alt="Patch Symbol"
title="This person contributed code that improved Android security"></a></p>
-<p><a href="https://securityresear.ch/">Roee Hay</a> (<a href="https://twitter.com/roeehay">&#64;roeehay</a>,
+<p><a href="https://securityresear.ch/">Roee Hay</a>
+(<a href="https://twitter.com/roeehay">&#64;roeehay</a>,
<a href="mailto:roeehay@gmail.com">roeehay@gmail.com</a>)</p>
<p>Stephen Smalley of <a href="https://www.nsa.gov/research/ia_research/">
diff --git a/en/setup/contribute/read-bug-reports.html b/en/setup/contribute/read-bug-reports.html
index 63ff5cc0..0d9cbc4e 100644
--- a/en/setup/contribute/read-bug-reports.html
+++ b/en/setup/contribute/read-bug-reports.html
@@ -566,7 +566,7 @@ foreground broadcasts and the last 300 background broadcasts.</p>
last 50 foreground broadcasts and the last 50 background broadcasts, as well as
the receivers for each broadcast. Receivers that have a:</p>
<ul>
-<li><code>BroadcastRecord</code> entry are registered at runtime and are sent
+<li><code>BroadcastFilter</code> entry are registered at runtime and are sent
only to already running processes.</li>
<li><code>ResolveInfo</code> entry are registered through manifest entries. The
ActivityManager starts the process for each <code>ResolveInfo</code> if it is
diff --git a/en/setup/start/build-numbers.html b/en/setup/start/build-numbers.html
index da4644b9..842d8f1a 100644
--- a/en/setup/start/build-numbers.html
+++ b/en/setup/start/build-numbers.html
@@ -235,6 +235,30 @@ following table.
</thead>
<tbody>
<tr>
+ <td>OPM6.171019.030.B1</td>
+ <td>android-8.1.0_r33</td>
+ <td>Oreo</td>
+ <td>Nexus 6P, Nexus 5X</td>
+ </tr>
+ <tr>
+ <td>OPM4.171019.021.E1</td>
+ <td>android-8.1.0_r32</td>
+ <td>Oreo</td>
+ <td>Pixel 2 XL, Pixel 2</td>
+ </tr>
+ <tr>
+ <td>OPM4.171019.021.D1</td>
+ <td>android-8.1.0_r31</td>
+ <td>Oreo</td>
+ <td>Pixel XL, Pixel</td>
+ </tr>
+ <tr>
+ <td>OPM2.171026.006.C1</td>
+ <td>android-8.1.0_r30</td>
+ <td>Oreo</td>
+ <td>Pixel 2 XL, Pixel 2</td>
+ </tr>
+ <tr>
<td>OPM4.171019.016.C1</td>
<td>android-8.1.0_r29</td>
<td>Oreo</td>
diff --git a/ja/security/bulletin/2018-02-01.html b/ja/security/bulletin/2018-02-01.html
index 5716c9df..8c2d2b46 100644
--- a/ja/security/bulletin/2018-02-01.html
+++ b/ja/security/bulletin/2018-02-01.html
@@ -30,10 +30,10 @@ Android パートナーには、情報公開の 1 か月前までにすべての
下記の問題のうち最も重大度の高いものは、メディア フレームワークに重大なセキュリティの脆弱性があるため、リモートの攻撃者が特別に細工したファイルを使用して、特権プロセス内で任意のコードを実行するおそれがあることです。<a href="/security/overview/updates-resources.html#severity">重大度の評価</a>は、攻撃対象の端末でその脆弱性が悪用された場合の影響に基づくもので、プラットフォームやサービスでのリスク軽減策が開発目的または不正な回避により無効となっていることを前提としています。
</p>
<p>
-この新たに報告された問題によって実際のユーザー端末が不正使用された報告はありません。<a href="/security/enhancements/index.html">Android セキュリティ プラットフォームの保護</a>や Google Play プロテクトについて詳しくは、<a href="#mitigations">Android と Google Play プロテクトのリスク軽減策</a>をご覧ください。こうした保護により、Android プラットフォームのセキュリティが改善されます。
+この新たに報告された問題によって実際のユーザー端末が不正使用された報告はありません。<a href="/security/enhancements/index.html">Android セキュリティ プラットフォームの保護</a>や Google Play プロテクトについて詳しくは、<a href="#mitigations">Android と Google サービスでのリスク軽減策</a>をご覧ください。こうした保護により、Android プラットフォームのセキュリティが改善されます。
</p>
<p class="note">
-<strong>注:</strong> 最新の無線(OTA)アップデートと Google 端末のファームウェア イメージについての情報は、<a href="/security/bulletin/pixel/2018-02-01">2018 年 2 月の Pixel / Nexus のセキュリティに関する公開情報</a>でご覧いただけます。
+<strong>注:</strong> 無線(OTA)の最新のアップデートと Google 端末のファームウェア イメージについての情報は、<a href="/security/bulletin/pixel/2018-02-01">2018 年 2 月の Pixel / Nexus のセキュリティに関する公開情報</a>でご確認いただけます。
</p>
<h2 id="mitigations">Android と Google サービスでのリスク軽減策</h2>
<p>
diff --git a/ja/security/bulletin/pixel/2018-01-01.html b/ja/security/bulletin/pixel/2018-01-01.html
index bc5ad8d3..def7487d 100644
--- a/ja/security/bulletin/pixel/2018-01-01.html
+++ b/ja/security/bulletin/pixel/2018-01-01.html
@@ -513,8 +513,7 @@ QC-CR#2072966</a></td>
<td>A-67713104<br />
<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=57377acfed328757da280f4adf1c300f0b032422">
QC-CR#2057144</a>
- [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e9492b99156137cf533722eea6ba8846d424c800">
-2</a>]</td>
+ [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e9492b99156137cf533722eea6ba8846d424c800">2</a>]</td>
<td>EoP</td>
<td>中</td>
<td>グラフィックス ドライバ</td>
@@ -664,7 +663,7 @@ QC-CR#2078342</a></td>
<strong>2. 「タイプ」<em></em>列の項目はどういう意味ですか?</strong>
</p>
<p>
-脆弱性の詳細の表で「タイプ」<em></em>列に記載した項目は、セキュリティの脆弱性の分類を示しています。
+脆弱性の詳細の表で「タイプ<em></em>」列に記載した項目は、セキュリティの脆弱性の分類を示しています。
</p>
<table>
<colgroup><col width="25%" />
@@ -698,7 +697,7 @@ QC-CR#2078342</a></td>
<strong>3. 「参照」<em></em>列の項目はどういう意味ですか?</strong>
</p>
<p>
-脆弱性の詳細の表で「参照」<em></em>列に記載した項目には、その参照番号が属す組織を示す接頭辞を含めている場合があります。
+脆弱性の詳細の表で「参照<em></em>」列に記載されている内容には、参照の値が属している組織を示した接頭辞が含まれている場合があります。
</p>
<table>
<colgroup><col width="25%" />
diff --git a/ko/security/bulletin/2018-02-01.html b/ko/security/bulletin/2018-02-01.html
index c3bb9568..3dc98caa 100644
--- a/ko/security/bulletin/2018-02-01.html
+++ b/ko/security/bulletin/2018-02-01.html
@@ -44,16 +44,16 @@ AOSP 외부에 있는 패치로 연결되는 링크도 포함되어 있습니다
</p>
<p>
실제 고객이 새로 보고된 이러한 문제로 인해 악용당했다는 신고는
-접수되지 않았습니다. Android 플랫폼의 보안을 개선하는 <a href="/security/enhancements/index.html">Android
-보안 플랫폼 보호</a> 및 Google Play 프로텍트에 관해 자세히 알아보려면
-<a href="#mitigations">Android 및 Google Play 프로텍트 완화</a> 섹션을
-참조하세요.
+접수되지 않았습니다. Android 플랫폼의 보안을 개선하는
+<a href="/security/enhancements/index.html">Android보안 플랫폼 보호</a>
+ 및 Google Play 프로텍트에 관해 자세히 알아보려면
+<a href="#mitigations">Android 및 Google Play 프로텍트 완화</a> 섹션을 참조하세요.
</p>
<p class="note">
<strong>참고:</strong> Google 기기의 최신 무선
업데이트(OTA) 및 펌웨어 이미지 관련 정보는
-<a href="/security/bulletin/pixel/2018-02-01">2018년 2월 Pixel&amp;hairsp;/&amp;hairsp;Nexus
-보안 게시판</a>을 참조하세요.
+<a href="/security/bulletin/pixel/2018-02-01">2018년 2월 Pixel&amp;hairsp;/&amp;hairsp;Nexus보안 게시판</a>
+을 참조하세요.
</p>
<h2 id="mitigations">Android 및 Google 서비스 완화</h2>
<p>
@@ -67,8 +67,8 @@ AOSP 외부에 있는 패치로 연결되는 링크도 포함되어 있습니다
악용하기가 더욱 어려워졌습니다. 가능하다면 모든 사용자는
최신 버전의 Android로 업데이트하는 것이 좋습니다.</li>
<li>Android 보안팀에서는 <a href="https://www.android.com/play-protect">Google Play 프로텍트</a>를 통해 악용사례를 적극적으로 모니터링하고
-<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">유해할 수 있는
-애플리케이션</a>에 관해 사용자에게 경고를 보냅니다. Google Play 프로텍트는
+<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">유해할 수 있는애플리케이션</a>
+에 관해 사용자에게 경고를 보냅니다. Google Play 프로텍트는
<a href="http://www.android.com/gms">Google 모바일 서비스</a>가 적용된 기기에 기본적으로 사용 설정되어 있으며
Google Play 외부에서 가져온 앱을 설치하는 사용자에게
특히 중요합니다.</li>
@@ -198,10 +198,10 @@ Google Play 외부에서 가져온 앱을 설치하는 사용자에게
영향을 받는 구성요소 아래에 분류되어 있으며 CVE,
관련 참조, <a href="#type">취약성 유형</a>,
<a href="/security/overview/updates-resources.html#severity">심각도</a>,
-구성요소(해당하는 경우), 업데이트된 AOSP 버전(해당하는 경우)과 같은 세부정보가 포함되어 있습니다. 가능한 경우
-AOSP 변경사항 목록과 같이 문제를 해결한 공개 변경사항을 버그 ID에
-연결합니다. 하나의 버그와 관련된 변경사항이 여러 개인 경우 추가
-참조가 버그 ID 다음에 오는 번호에 연결됩니다.
+구성요소(해당하는 경우), 업데이트된 AOSP 버전(해당하는 경우)과 같은 세부정보가 포함되어 있습니다. 가능한
+경우 AOSP 변경사항 목록과 같이 문제를 해결한 공개 변경사항을 버그 ID에
+연결합니다. 하나의 버그와 관련된 변경사항이 여러 개인 경우 추가 참조가
+버그 ID 다음에 오는 번호에 연결되어 있습니다.
</p>
<h3 id="htc-components">HTC 구성요소</h3>
diff --git a/ko/security/bulletin/pixel/2018-01-01.html b/ko/security/bulletin/pixel/2018-01-01.html
index 27da61fd..20231cd7 100644
--- a/ko/security/bulletin/pixel/2018-01-01.html
+++ b/ko/security/bulletin/pixel/2018-01-01.html
@@ -36,8 +36,9 @@ Android 보안 게시판</a>의 모든 문제를 해결했습니다. 기기의
업데이트됩니다. 모든 고객은 기기에서 이 업데이트를 수락하는 것이 좋습니다.
</p>
<p class="note">
-<strong>참고:</strong> Google 기기 펌웨어 이미지는 <a href="https://developers.google.com/android/nexus/images">Google 개발자
-사이트</a>에 있습니다.
+<strong>참고:</strong> Google 기기 펌웨어 이미지는
+<a href="https://developers.google.com/android/nexus/images">Google 개발자 사이트</a>
+에 있습니다.
</p>
<h2 id="announcements">공지사항</h2>
<p>
@@ -50,11 +51,13 @@ Pixel 및 Nexus 기기에는 아래 설명된 보안 취약성과 관련된
<h2 id="security-patches">보안 패치</h2>
<p>
취약성은 영향을 받는 구성요소 아래에 분류되어 있습니다. 여기에는
-문제 설명 및 CVE, 관련 참조, <a href="#type">취약성 유형</a>, <a href="/security/overview/updates-resources.html#severity">심각도</a>,
+문제 설명 및 CVE, 관련 참조,
+<a href="#type">취약성 유형</a>,
+<a href="/security/overview/updates-resources.html#severity">심각도</a>,
업데이트된 Android 오픈소스 프로젝트(AOSP) 버전(해당하는 경우)이 포함된 표가 제시됩니다. 가능한
경우 AOSP 변경사항 목록과 같이 문제를 해결한 공개 변경사항을 버그 ID에
-연결합니다. 하나의 버그와 관련된 변경사항이 여러 개인 경우 추가
-참조가 버그 ID 다음에 오는 번호에 연결됩니다.
+연결합니다. 하나의 버그와 관련된 변경사항이 여러 개인 경우
+추가 참조가 버그 ID 다음에 오는 번호에 연결됩니다.
</p>
<h3 id="framework">프레임워크</h3>
@@ -648,9 +651,9 @@ QC-CR#2078342</a></td>
<h2 id="functional-updates">기능 업데이트</h2>
<p>
다음 업데이트는 영향을 받은 Pixel 기기에서 Pixel 기기의 보안과
-관련되지 않은 기능 문제를 해결하기 위해 포함되었습니다. 표에는
-관련 참조, 블루투스나 모바일 데이터 등 영향을 받은 카테고리,
-문제 요약이 포함되어 있습니다.
+관련되지 않은 기능 문제를 해결하기 위해 포함되었습니다. 표에는 블루투스나
+모바일 데이터 등 영향을 받은 카테고리 및 문제 요약과 같은 관련 참조 사항이
+포함되어 있습니다.
</p>
<table>
<tbody><tr>
diff --git a/zh-cn/devices/architecture/hidl/code-style.html b/zh-cn/devices/architecture/hidl/code-style.html
index b16f7425..8629da72 100644
--- a/zh-cn/devices/architecture/hidl/code-style.html
+++ b/zh-cn/devices/architecture/hidl/code-style.html
@@ -133,7 +133,7 @@ package android.hardware.foo@1.0;
<li><code><var>ROOT-DIRECTORY</var></code> 为:
<ul>
<li><code>hardware/interfaces</code>(如果是核心 HIDL 软件包)。</li>
- <li><code>vendor/<var>VENDOR</var>/interfaces</code>(如果是供应商软件包),其中 <code><var>VENDOR</var></code> 指 SoC 供应商或原始设备制造商 (OEM)/原始设计制造商 (ODM)。</li>
+ <li><code>vendor/<var>VENDOR</var>/interfaces</code>(如果是供应商软件包),其中 <code><var>VENDOR</var></code> 指 SoC 供应商或 OEM/原始设计制造商 (ODM)。</li>
</ul>
</li>
<li><code><var>MODULE</var></code> 应该是一个描述子系统的小写字词(例如 <code>nfc</code>)。如果需要多个字词,请使用嵌套式 <code><var>SUBMODULE</var></code>。可以嵌套多层。</li>
@@ -177,7 +177,7 @@ package android.hardware.foo@1.0;
<li><code>android.hardware</code>(如果是核心 HIDL 软件包)(映射到 <code>hardware/interfaces</code>)。</li>
<li><code>vendor.<var>VENDOR</var>.hardware</code>(如果是供应商软件包),其中 <code><var>VENDOR</var></code> 指 SoC 供应商或原始设备制造商 (OEM)/原始设计制造商 (ODM)(映射到 <code>vendor/<var>VENDOR</var>/interfaces</code>)。</li>
</ul>
-</li><li><code><var>MODULE</var>[.<var>SUBMODULE</var>[.<var>SUBMODULE</var>[…]]]@<var>VERSION</var></code> 与<a href="#dir-structure">目录结构</a>中所述的结构内文件夹名称完全相同。</li>
+</li><li><code><var>MODULE</var>[.<var>SUBMODULE</var>[.<var>SUBMODULE</var>[…]]]@<var>VERSION</var></code> 与<a href="#dir-structure">目录结构</a>中所述结构内的文件夹名称完全相同。</li>
<li>软件包名称应为小写。如果软件包名称包含多个字词,则这些字词应用作子模块或以 <code>snake_case</code> 形式书写。
</li>
<li>不允许使用空格。</li>
@@ -319,13 +319,19 @@ android.hardware.foo@1.0::IFoo.IFooInternal.FooEnum:ENUM_OK
<li>TODO</li>
</ul>
</li>
-<li><code>/** */</code> 主要用于针对生成的文档使用的函数文档/“文档字符串”。例如:
-<pre class="prettyprint">
+<li>针对生成的文档使用 <code>/** */</code>。此样式只能应用于类型、方法、字段和枚举值声明。例如:<pre class="prettyprint">
/** Replied status */
-enum FooStatus {
- OK = 0, // no error
- ERR_TRANSPORT = 1, // transport level error
- ERR_ARG = 2 // invalid args
+enum TeleportStatus {
+ /** Object entirely teleported. */
+ OK = 0,
+ /** Methods return this if teleportation is not completed. */
+ ERROR_TELEPORT = 1,
+ /**
+ * Teleportation could not be completed due to an object
+ * obstructing the path.
+ */
+ ERROR_OBJECT = 2,
+ ...
}
</pre>
</li><li>多行备注的第一行应为 <code>/**</code>,每行的开头应使用 <code>*</code>,并且应将 <code>*/</code> 单独放在最后一行(各行的星号应对齐)。例如:
@@ -409,7 +415,7 @@ foo(T arg1, T arg2) generates (S ret1, S ret2);
<li><strong>空格</strong>:各行不得包含尾随空格;空行不得包含空格。</li>
<li><strong>空格与制表符</strong>:仅使用空格。</li>
<li><strong>缩进大小</strong>:数据块缩进 <strong>4</strong> 个空格,换行缩进 <strong>8</strong> 个空格。</li>
-<li><strong>大括号</strong>:(<a href="#annotations">注解值</a>除外)<strong>左</strong>大括号与前面的代码在同一行,<strong>右</strong>大括号与后面的分号占一整行。例如:
+<li><strong>大括号</strong>:(<a href="#annotations">注释值</a>除外)<strong>左</strong>大括号与前面的代码在同一行,<strong>右</strong>大括号与后面的分号占一整行。例如:
<pre class="prettyprint">
interface INfc {
close();
diff --git a/zh-cn/devices/camera/camera3.html b/zh-cn/devices/camera/camera3.html
index 2dd0d596..45ec93a8 100644
--- a/zh-cn/devices/camera/camera3.html
+++ b/zh-cn/devices/camera/camera3.html
@@ -20,32 +20,9 @@
limitations under the License.
-->
-<p>Android 的相机硬件抽象层 (HAL) 可将 <a href="http://developer.android.com/reference/android/hardware/Camera.html">android.hardware.Camera</a> 中较高级别的相机框架 API 连接到底层相机驱动程序和硬件。Android 5.0 推出了一种新的底层相机堆栈实现。如果您之前为旧版 Android 开发过相机 HAL 模块和驱动程序,请注意相机管道中发生的重大变化。</p>
+<p>Android 的相机硬件抽象层 (HAL) 可将 <a href="https://developer.android.com/reference/android/hardware/camera2/package-summary">android.hardware.camera2</a> 中较高级别的相机框架 API 连接到底层的相机驱动程序和硬件。Android 8.0 引入了 <a href="/devices/architecture/treble">Treble</a>,用于将 CameraHal API 切换到由 HAL 接口描述语言 (HIDL) 定义的稳定接口。如果您之前为旧版 Android 开发过相机 HAL 模块和驱动程序,请注意相机管道中发生的重大变化。</p>
-<p class="note"><strong>注意</strong>:新版相机 HAL 正在积极开发当中,随时可能会发生变化。本文档概括介绍了相机子系统的设计;如需了解详情,请参阅<a href="/devices/camera/versioning.html">相机版本支持</a>。</p>
-
-<h2 id="overview">相机 HAL1 概览</h2>
-
-<p>相机子系统的第 1 个版本被设计为具有高级控件和以下三种运行模式的黑盒子:</p>
-
-<ul>
-<li>预览</li>
-<li>视频录制</li>
-<li>静态拍摄</li>
-</ul>
-
-<p>三种模式具有略有不同又相互重叠的功能。这样就难以实现新类型的功能(例如连拍模式),因为新类型的功能会介于其中两种模式之间。</p>
-
-<img src="images/camera_block.png" alt="相机程序块示意图" id="figure1"/>
-<p class="img-caption"><strong>图 1. </strong> 相机组件</p>
-
-<p>由于很多设备仍然依赖相机 HAL1,因此 Android 7.0 继续支持该模块。此外,Android 相机服务还支持同时实现两个 HAL(1 和 3),如果您希望通过相机 HAL1 支持性能略低的前置摄像头,并通过相机 HAL3 支持更为高级的后置摄像头,那么这项支持将非常有用。</p>
-
-<p class="note"><strong>注意</strong>:相机 HAL2 不受支持,因为它是过渡到相机 HAL3 的临时步骤。</p>
-
-<p>有一种单独的相机 HAL 模块(拥有自己的<a href="/devices/camera/versioning.html#module_version">版本号</a>),其中列出了多种独立的相机设备,每种都有自己的版本号。<em></em>要支持设备 2 或更新版本,必须使用相机模块 2 或更新版本,而且此类相机模块可以具有混合的相机设备版本(我们在上文中提到 Android 支持同时实现两种 HAL,就是这个含义)。</p>
-
-<h2 id="v3-enhance">相机 HAL3 增强功能</h2>
+<h2 id="v3-enhance">相机 HAL3 功能</h2>
<p>重新设计 Android Camera API 的目的在于大幅提高应用对于 Android 设备上的相机子系统的控制能力,同时重新组织 API,提高其效率和可维护性。借助额外的控制能力,您可以更轻松地在 Android 设备上构建高品质的相机应用,这些应用可在多种产品上稳定运行,同时仍会尽可能使用设备专用算法来最大限度地提升质量和性能。</p>
@@ -69,7 +46,28 @@
<p>一个请求中包含所需的全部捕获设置,以及要针对该请求将图像缓冲区(从总配置组)推送到其中的输出 Surface 的列表。请求可以只发生一次(使用 <code>capture()</code>),也可以无限重复(使用 <code>setRepeatingRequest()</code>)。捕获的优先级高于重复请求的优先级。</p>
-<img src="images/camera_simple_model.png" alt="相机数据模式" id="figure2"/>
-<p class="img-caption"><strong>图 2. </strong> 相机核心运行模式</p>
+<img src="images/camera_simple_model.png" alt="相机数据模型" id="figure2"/>
+<p class="img-caption"><strong>图 2. </strong> 相机核心操作模型</p>
+
+<h2 id="overview">相机 HAL1 概览</h2>
+
+<aside class="note"><strong>注意</strong>:相机 HAL1 已弃用。新设备应使用相机 HAL3。</aside>
+
+<p>相机子系统的第 1 个版本被设计为具有高级控件和以下三种运行模式的黑盒子:</p>
+
+<ul>
+<li>预览</li>
+<li>视频录制</li>
+<li>静态拍摄</li>
+</ul>
+
+<p>三种模式具有略有不同又相互重叠的功能。这样就难以实现介于其中两种运行模式之间的新功能,例如连拍模式。</p>
+
+<img src="images/camera_block.png" alt="相机程序块示意图" id="figure1"/>
+<p class="img-caption"><strong>图 1.</strong> 相机组件</p>
+
+<p>由于很多设备仍然依赖相机 HAL1,因此 Android 7.0 继续支持该模块。此外,Android 相机服务还支持同时实现两种 HAL(1 和 3),如果您希望通过相机 HAL1 支持性能略低的前置摄像头,并通过相机 HAL3 支持更为高级的后置摄像头,那么这项支持将非常有用。</p>
+
+<p>有一种单独的相机 HAL 模块(拥有自己的<a href="/devices/camera/versioning.html#module_version">版本号</a>),其中列出了多种独立的相机设备,每种都有自己的版本号。<em></em>要支持设备 2 或更新版本,必须使用相机模块 2 或更新版本,而且此类相机模块可以具有混合的相机设备版本(我们在上文中提到 Android 支持同时实现两种 HAL,就是这个含义)。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/camera/camera3_3Amodes.html b/zh-cn/devices/camera/camera3_3Amodes.html
index 91b2a746..a96f3394 100644
--- a/zh-cn/devices/camera/camera3_3Amodes.html
+++ b/zh-cn/devices/camera/camera3_3Amodes.html
@@ -21,36 +21,292 @@
-->
<p>虽然实际的 3A 算法取决于 HAL 实现,但高级状态机的说明由 HAL 接口定义,以支持 HAL 设备和框架就 3A 的当前状态进行通信并触发 3A 事件。</p>
-<p>当设备开启时,所有单独的 3A 状态都必须为 STATE_INACTIVE。流配置不会重置 3A。例如,在整个 configure() 调用期间必须保持焦点锁定。</p>
-<p>要触发 3A 操作,只需在下一个请求的设置中设置相关触发条目,以指示触发开始。例如,若要触发启动自动对焦扫描,便只需将相应请求的 ANDROID_CONTROL_AF_TRIGGER 条目设为 ANDROID_CONTROL_AF_TRIGGER_START;若要触发取消自动对焦扫描,则只需将 ANDROID_CONTROL_AF_TRIGGER 设为 ANDROID_CONTRL_AF_TRIGGER_CANCEL。否则,条目将会不存在或被设为 ANDROID_CONTROL_AF_TRIGGER_IDLE。凡是具有已设为非 IDLE 值的触发条目的请求,都会被视为独立的触发事件。</p>
-<p>在顶层,3A 由 ANDROID_CONTROL_MODE 设置控制。该设置选项包括关闭 3A (ANDROID_CONTROL_MODE_OFF)、正常自动 (AUTO) 模式 (ANDROID_CONTROL_MODE_AUTO) 以及使用场景模式 (ANDROID_CONTROL_USE_SCENE_MODE):</p>
+<p>当设备开启时,所有单独的 3A 状态都必须为 STATE_INACTIVE。流配置不会重置 3A。例如,在整个 <code>configure()</code> 调用期间必须保持焦点锁定。</p>
+<p>要触发 3A 操作,只需在下一个请求的设置中设置相关触发条目,以指示触发开始即可。例如,若要触发自动对焦扫描的启动操作,只需将相应请求的 ANDROID_CONTROL_AF_TRIGGER 条目设为 ANDROID_CONTROL_AF_TRIGGER_START 即可;若要触发自动对焦扫描的取消操作,只需将 ANDROID_CONTROL_AF_TRIGGER 设为 ANDROID_CONTRL_AF_TRIGGER_CANCEL 即可。否则,条目将会不存在或被设为 ANDROID_CONTROL_AF_TRIGGER_IDLE。凡是具有已设为非 IDLE 值的触发条目的请求,都会被视为独立的触发事件。</p>
+<p>在顶层,3A 由 ANDROID_CONTROL_MODE 设置控制。该设置选项包括关闭 3A (ANDROID_CONTROL_MODE_OFF)、正常自动 (AUTO) 模式 (ANDROID_CONTROL_MODE_AUTO),以及使用取景模式设置 (ANDROID_CONTROL_USE_SCENE_MODE):</p>
<ul>
- <li>在 OFF 模式下,自动对焦 (AF)、自动曝光 (AE) 和自动白平衡 (AWB) 模式都会有效地关闭,且任何拍摄控件都不会被 3A 例程覆盖。</li>
- <li>在 AUTO 模式下,AF、AE 和 AWB 模式都会运行各自的独立算法,且具有自己的模式、状态和触发元数据条目,如下一节所示。</li>
- <li>在 USE_SCENE_MODE 下,必须使用 ANDROID_CONTROL_SCENE_MODE 条目的值来确定 3A 例程的行为。在除 FACE_PRIORITY 以外的 SCENE_MODE 下,HAL 必须将 ANDROID_CONTROL_AE/AWB/AF_MODE 的值替换为它倾向于让所选的 SCENE_MODE 使用的模式。例如,HAL 可能倾向于在 SCENE_MODE_NIGHT 下使用 CONTINUOUS_FOCUS AF 模式。当必须忽略这些场景模式下的场景时,用户可随意选择 AE/AWB/AF_MODE。</li>
+ <li>在 OFF 模式下,单个的自动对焦 (AF)、自动曝光 (AE) 和自动白平衡 (AWB) 模式都会有效地关闭,且任何拍摄控件都不会被 3A 例程覆盖。</li>
+ <li>在 AUTO 模式下,AF、AE 和 AWB 模式都会运行各自的独立算法,且具有自己的模式、状态和触发元数据条目,具体如下一节所示。</li>
+ <li>在 USE_SCENE_MODE 下,必须使用 ANDROID_CONTROL_SCENE_MODE 条目的值来确定 3A 例程的行为。在除 FACE_PRIORITY 以外的 SCENE_MODE 下,HAL 必须将 ANDROID_CONTROL_AE/AWB/AF_MODE 的值替换为它倾向于让所选的 SCENE_MODE 使用的模式。例如,HAL 可能倾向于在 SCENE_MODE_NIGHT 下使用 CONTINUOUS_FOCUS AF 模式。当必须忽略这些取景模式下的场景时,用户可随意选择 AE/AWB/AF_MODE。</li>
<li>对于 SCENE_MODE_FACE_PRIORITY,AE/AWB/AFMODE 控件的工作方式与在 ANDROID_CONTROL_MODE_AUTO 模式下相同,但 3A 例程必须偏向测光,并对焦到场景中任何已检测到的人脸上。</li>
</ul>
+
<h2 id="auto-focus">自动对焦设置与结果条目</h2>
-<p>主要元数据条目:<br />ANDROID_CONTROL_AF_MODE:用于选择当前的自动对焦模式的控件。由请求设置中的框架进行设置。<br />AF_MODE_OFF:AF 已停用;框架/应用直接控制镜头位置。<br />AF_MODE_AUTO:单次自动对焦。该模式下镜头不会移动,除非 AF 被触发。<br />AF_MODE_MACRO:单次近距离自动对焦。该模式下镜头不会移动,除非 AF 被触发。<br />AF_MODE_CONTINUOUS_VIDEO:流畅连续对焦,用于录制视频。触发后会立刻将焦点锁定在当前位置。取消后即会恢复连续对焦。<br />AF_MODE_CONTINUOUS_PICTURE:快速连续对焦,用于快门零延迟静像拍摄。待当前处于活动状态的扫描结束后,触发即可锁定焦点。取消后即会恢复连续对焦。<br />AF_MODE_EDOF:高级扩展景深对焦。该模式下没有自动对焦扫描,所以触发或取消均无效。图像由 HAL 自动对焦。<br />ANDROID_CONTROL_AF_STATE:用于描述当前 AF 算法状态的动态元数据,由结果元数据中的 HAL 报告。<br />AF_STATE_INACTIVE:未进行对焦,或算法被重置。镜头未移动。始终处于 MODE_OFF 或 MODE_EDOF 状态。当设备开启时,必须以此状态启动。<br />AF_STATE_PASSIVE_SCAN:连续对焦算法正在扫描理想对焦。镜头正在移动。<br />AF_STATE_PASSIVE_FOCUSED:连续对焦算法认为已良好对焦。镜头未移动。HAL 可能会自发退出此状态。<br />AF_STATE_PASSIVE_UNFOCUSED:连续对焦算法认为未良好对焦。镜头未移动。HAL 可能会自发退出此状态。<br />AF_STATE_ACTIVE_SCAN:用户触发的扫描正在进行中。<br />AF_STATE_FOCUSED_LOCKED:AF 算法认为已对焦。镜头未移动。<br />AF_STATE_NOT_FOCUSED_LOCKED:AF 算法无法对焦。镜头未移动。<br />ANDROID_CONTROL_AFTRIGGER:用于启动自动对焦扫描的控件。具体意义取决于模式和状态。由框架在请求设置中进行设置。<br />AF_TRIGGER_IDLE:当前未触发。<br />AF_TRIGGER_START:触发启动 AF 扫描。扫描效果取决于模式和状态。<br />AF_TRIGGER_CANCEL:取消当前 AF 扫描(如有),并将算法重置为默认值。<br />其他元数据条目:<br />ANDROID_CONTROL_AF_REGIONS:用于选择为确定良好对焦而需使用的视野 (FOV) 区域的控件。该控件适用于所有可扫描对焦的 AF 模式。由请求设置中的框架进行设置。</p>
-<h2 id="auto-exposure">自动曝光设置和结果条目</h2>
-<p>主要元数据条目:<br />ANDROID_CONTROL_AE_MODE:用于选择当前自动曝光模式的控件。由请求设置中的框架进行设置。<br />AE_MODE_OFF:自动曝光已停用;用户控制曝光、增益、帧时长和闪光。<br />AE_MODE_ON:标准自动曝光,闪光灯控制已停用。用户可以将闪光灯设为触发或手电筒模式。<br />AE_MODE_ON_AUTO_FLASH:标准自动曝光,闪光灯听从 HAL 指令开启,以进行预拍摄和静像拍摄。允许用户控制闪光灯的功能已停用。<br />AE_MODE_ON_ALWAYS_FLASH:标准自动曝光,闪光灯始终触发以进行拍摄,并听从 HAL 指令进行预拍摄。允许用户控制闪光灯的功能已停用。<br />AE_MODE_ON_AUTO_FLASH_REDEYE:标准自动曝光,闪光灯听从 HAL 指令进行预拍摄和静像拍摄。在预拍摄序列结束时使用闪光灯,以减轻最终照片中的红眼现象。允许用户控制闪光灯的功能已停用。<br />ANDROID_CONTROL_AE_STATE:描述当前 AE 算法状态的动态元数据,在结果元数据中由 HAL 报告。<br />AE_STATE_INACTIVE:切换模式后的初始 AE 状态。当设备开启时,必须以此状态启动。<br />AE_STATE_SEARCHING:AE 没有聚焦到一个理想值,正在调整曝光参数。<br />AE_STATE_CONVERGED:AE 已经为当前场景找到了理想曝光值,且曝光参数不会变化。HAL 可能会自发退出此状态以寻找更好的解决方案。<br />AE_STATE_LOCKED:AE 已通过 AE_LOCK 控件锁定。曝光值不变。<br />AE_STATE_FLASH_REQUIRED:HAL 已聚焦曝光,但认为需要启动闪光灯以保证照片足够明亮。用于确定是否可使用零快门延迟帧。<br />AE_STATE_PRECAPTURE:HAL 正在处理预拍序列。根据 AE 模式,该模式可能包括开启闪光灯进行测光,或发出闪光脉冲以减轻红眼现象。<br />ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER:用于在拍摄高品质图像之前启动测光序列的控件。由框架在请求设置中进行设置。<br />PRECAPTURE_TRIGGER_IDLE:当前未触发。<br />PRECAPTURE_TRIGGER_START:启动预拍序列。HAL 应使用后续请求进行衡量并达到理想的曝光/白平衡,以便接下来拍摄高分辨率的照片。<br />其他元数据条目:<br />ANDROID_CONTROL_AE_LOCK:用于将 AE 控件锁定到其当前值的控件。<br />ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION:用于调整 AE 算法目标亮度点的控件。<br />ANDROID_CONTROL_AE_TARGET_FPS_RANGE:用于为 AE 算法选择目标帧速率范围的控件。AE 例程无法将帧速率变为超出这些范围的值。<br />ANDROID_CONTROL_AE_REGIONS:用于选择应该用于确定良好曝光水平的 FOV 区域的控件。该控件适用于除 OFF 模式外的所有 AE 模式。</p>
+
+<table>
+ <tbody><tr>
+ <th colspan="2">主要元数据条目</th>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AF_MODE</td>
+ <td>用于选择当前的自动对焦模式的控件。由请求设置中的框架进行设置。</td>
+ </tr>
+ <tr>
+ <td>AF_MODE_OFF</td>
+ <td>AF 已停用;框架/应用直接控制镜头位置。</td>
+ </tr>
+ <tr>
+ <td>AF_MODE_AUTO</td>
+ <td>单相扫描自动对焦。镜头在该模式下不会移动,除非 AF 被触发。</td>
+ </tr>
+ <tr>
+ <td>AF_MODE_MACRO</td>
+ <td>单相扫描近距离自动对焦。镜头在该模式下不会移动,除非 AF 被触发。</td>
+ </tr>
+ <tr>
+ <td>AF_MODE_CONTINUOUS_VIDEO</td>
+ <td>流畅连续对焦,用于录制视频。触发后会立刻将焦点锁定在当前位置。取消后即会恢复连续对焦。</td>
+ </tr>
+ <tr>
+ <td>AF_MODE_CONTINUOUS_PICTURE</td>
+ <td>快速连续对焦,用于快门零延迟静像拍摄。待当前处于活动状态的扫描结束后,触发即可锁定焦点。取消后即会恢复连续对焦。</td>
+ </tr>
+ <tr>
+ <td>AF_MODE_EDOF</td>
+ <td>高级扩展景深对焦。该模式下没有自动对焦扫描,因此触发或取消操作均无效。图像由 HAL 自动对焦。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AF_STATE</td>
+ <td>用于描述当前 AF 算法状态的动态元数据,由结果元数据中的 HAL 报告。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_INACTIVE</td>
+ <td>未进行对焦,或算法被重置。镜头未移动。始终处于 MODE_OFF 或 MODE_EDOF 状态。当设备开启时,必须以此状态启动。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_PASSIVE_SCAN</td>
+ <td>连续对焦算法目前正在扫描理想对焦。镜头正在移动。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_PASSIVE_FOCUSED</td>
+ <td>连续对焦算法认为已良好对焦。镜头未移动。HAL 可能会自发退出此状态。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_PASSIVE_UNFOCUSED</td>
+ <td>连续对焦算法认为未良好对焦。镜头未移动。HAL 可能会自发退出此状态。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_ACTIVE_SCAN</td>
+ <td>用户触发的扫描正在进行中。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_FOCUSED_LOCKED</td>
+ <td>AF 算法认为已对焦。镜头未移动。</td>
+ </tr>
+ <tr>
+ <td>AF_STATE_NOT_FOCUSED_LOCKED</td>
+ <td>AF 算法无法对焦。镜头未移动。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AFTRIGGER</td>
+ <td>用于启动自动对焦扫描的控件。具体意义取决于模式和状态。由框架在请求设置中进行设置。</td>
+ </tr>
+ <tr>
+ <td>AF_TRIGGER_IDLE</td>
+ <td>当前未触发。</td>
+ </tr>
+ <tr>
+ <td>AF_TRIGGER_START</td>
+ <td>触发 AF 扫描的启动操作。扫描效果取决于模式和状态。</td>
+ </tr>
+ <tr>
+ <td>AF_TRIGGER_CANCEL</td>
+ <td>取消当前 AF 扫描(如有),并将算法重置为默认值。</td>
+ </tr>
+</tbody></table>
+
+<table>
+ <tbody><tr>
+ <th colspan="2">其他元数据条目</th>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AF_REGIONS</td>
+ <td>用于选择为确定良好对焦而需使用的视野 (FOV) 区域的控件。该控件适用于所有可扫描对焦的 AF 模式。由框架在请求设置中进行设置。</td>
+ </tr>
+</tbody></table>
+
+<h2 id="auto-exposure">自动曝光设置与结果条目</h2>
+
+<table>
+ <tbody><tr><th colspan="2">主要元数据条目</th>
+ </tr><tr class="alt">
+ <td>ANDROID_CONTROL_AE_MODE</td>
+ <td>用于选择当前自动曝光模式的控件。由请求设置中的框架进行设置。</td>
+ </tr>
+ <tr>
+ <td>AE_MODE_OFF</td>
+ <td>自动曝光已停用;用户控制曝光、增益、帧时长和闪光。</td>
+ </tr>
+ <tr>
+ <td>AE_MODE_ON</td>
+ <td>标准自动曝光,闪光灯控件已停用。用户可以将闪光灯设为触发或手电筒模式。</td>
+ </tr>
+ <tr>
+ <td>AE_MODE_ON_AUTO_FLASH</td>
+ <td>标准自动曝光,闪光灯听从 HAL 指令开启,以进行预拍摄和静像拍摄。允许用户控制闪光灯的功能已停用。</td>
+ </tr>
+ <tr>
+ <td>AE_MODE_ON_ALWAYS_FLASH</td>
+ <td>标准自动曝光,闪光灯始终触发以进行拍摄,并听从 HAL 指令进行预拍摄。允许用户控制闪光灯的功能已停用。</td>
+ </tr>
+ <tr>
+ <td>AE_MODE_ON_AUTO_FLASH_REDEYE</td>
+ <td>标准自动曝光,闪光灯听从 HAL 指令开启,以进行预拍摄和静像拍摄。在预拍摄序列结束时使用闪光灯连拍,以减轻最终照片中的红眼现象。允许用户控制闪光灯的功能已停用。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AE_STATE</td>
+ <td>描述当前 AE 算法状态的动态元数据,在结果元数据中由 HAL 报告。</td>
+ </tr>
+ <tr>
+ <td>AE_STATE_INACTIVE</td>
+ <td>切换模式后的初始 AE 状态。当设备开启时,必须以此状态启动。</td>
+ </tr>
+ <tr>
+ <td>AE_STATE_SEARCHING</td>
+ <td>AE 没有聚焦到一个理想值,且正在调整曝光参数。</td>
+ </tr>
+ <tr>
+ <td>AE_STATE_CONVERGED</td>
+ <td>AE 已经为当前场景找到了理想曝光值,且曝光参数不会变化。HAL 可能会自发退出此状态,以寻找更好的解决方案。</td>
+ </tr>
+ <tr>
+ <td>AE_STATE_LOCKED</td>
+ <td>AE 已通过 AE_LOCK 控件进行锁定。曝光值不变。</td>
+ </tr>
+ <tr>
+ <td>AE_STATE_FLASH_REQUIRED</td>
+ <td>HAL 已聚焦曝光,但认为需要启动闪光灯才能保证照片亮度充足。用于确定是否可使用零快门延迟帧。</td>
+ </tr>
+ <tr>
+ <td>AE_STATE_PRECAPTURE</td>
+ <td>HAL 正在处理预拍序列。根据 AE 模式,该模式可能包括触发闪光灯以进行测光,或发出闪光脉冲以减轻红眼现象。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER</td>
+ <td>用于在拍摄高品质图像之前启动测光序列的控件。由框架在请求设置中进行设置。</td>
+ </tr>
+ <tr>
+ <td>PRECAPTURE_TRIGGER_IDLE</td>
+ <td>当前未触发。</td>
+ </tr>
+ <tr>
+ <td>PRECAPTURE_TRIGGER_START</td>
+ <td>启动预拍序列。HAL 应使用后续请求进行衡量并达到理想的曝光/白平衡,以便接下来拍摄高分辨率的照片。</td>
+ </tr>
+</tbody></table>
+
+<table>
+ <tbody><tr><th colspan="2">其他元数据条目</th>
+ </tr><tr class="alt">
+ <td>ANDROID_CONTROL_AE_LOCK</td>
+ <td>用于将 AE 控件锁定到其当前值的控件。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION</td>
+ <td>用于调整 AE 算法目标亮度点的控件。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AE_TARGET_FPS_RANGE</td>
+ <td>用于为 AE 算法选择目标帧速率范围的控件。AE 例程无法将帧速率变为超出这些范围的值。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AE_REGIONS</td>
+ <td>用于选择应该用于确定良好曝光水平的 FOV 区域的控件。该控件适用于除 OFF 模式外的所有 AE 模式。</td>
+ </tr>
+</tbody></table>
+
<h2 id="auto-wb">自动白平衡设置和结果条目</h2>
-<p>主要元数据条目:<br />ANDROID_CONTROL_AWB_MODE:用于选择当前白平衡模式的控件。<br />AWB_MODE_OFF:自动白平衡已停用。用户控制颜色矩阵。<br />AWB_MODE_AUTO:自动白平衡已启用。3A 控制颜色变换,使用的变换方式可能比简单矩阵更复杂。<br />AWB_MODE_INCANDESCENT:适用于室内白炽灯(钨丝)照明的固定白平衡设置,约为 2700K。<br />AWB_MODE_FLUORESCENT:适用于荧光灯照明的固定白平衡设置,约为 5000K。<br />AWB_MODE_WARM_FLUORESCENT:适用于荧光灯照明的固定白平衡设置,约为 3000K。<br />AWB_MODE_DAYLIGHT:适用于日光的固定白平衡设置,约为 5500K。<br />AWB_MODE_CLOUDY_DAYLIGHT:适用于多云日光的固定白平衡设置,约为 6500K。<br />AWB_MODE_TWILIGHT:适用于近日落/日出的固定白平衡设置,约为 15000K。<br />AWB_MODE_SHADE:适用于非阳光直射区域的固定白平衡设置,约为 7500K。<br />ANDROID_CONTROL_AWB_STATE:描述当前 AWB 算法状态的动态元数据,在结果元数据中由 HAL 报告。<br />AWB_STATE_INACTIVE:切换模式后的初始 AWB 状态。当设备开启时,必须以此状态启动。<br />AWB_STATE_SEARCHING:AWB 未聚焦为一个理想值,正在改变颜色调整参数。<br />AWB_STATE_CONVERGED:AWB 已发现适用于当前场景的理想颜色调整值,参数不会更改。HAL 可能会自发退出此状态,以寻找更好的解决方案。<br />AWB_STATE_LOCKED:AWB 已由 AWB_LOCK 控件锁定。颜色调整值不会更改。<br />其他元数据条目:<br />ANDROID_CONTROL_AWB_LOCK:用于将 AWB 颜色调整锁定为当前值的控件。<br />ANDROID_CONTROL_AWB_REGIONS:用于选择应该用于确定良好色彩平衡的 FOV 区域的控件。该模式仅适用于自动白平衡模式。</p>
+
+<table>
+ <tbody><tr><th colspan="2">主要元数据条目</th>
+ </tr><tr class="alt">
+ <td>ANDROID_CONTROL_AWB_MODE</td>
+ <td>用于选择当前白平衡模式的控件。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_OFF</td>
+ <td>自动白平衡已停用。用户控制颜色矩阵。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_AUTO</td>
+ <td>自动白平衡已启用。3A 控制颜色变换,使用的变换方式可能比简单矩阵更复杂。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_INCANDESCENT</td>
+ <td>适用于室内白炽灯(钨丝)照明的固定白平衡设置,约为 2700K。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_FLUORESCENT</td>
+ <td>适用于荧光灯照明的固定白平衡设置,约为 5000K。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_WARM_FLUORESCENT</td>
+ <td>适用于荧光灯照明的固定白平衡设置,约为 3000K。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_DAYLIGHT</td>
+ <td>适用于日光的固定白平衡设置,约为 5500K。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_CLOUDY_DAYLIGHT</td>
+ <td>适用于多云日光的固定白平衡设置,约为 6500K。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_TWILIGHT</td>
+ <td>适用于近日落/日出的固定白平衡设置,约为 15000K。</td>
+ </tr>
+ <tr>
+ <td>AWB_MODE_SHADE</td>
+ <td>适用于非阳光直射区域的固定白平衡设置,约为 7500K。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AWB_STATE</td>
+ <td>描述当前 AWB 算法状态的动态元数据,在结果元数据中由 HAL 报告。</td>
+ </tr>
+ <tr>
+ <td>AWB_STATE_INACTIVE</td>
+ <td>切换模式后的初始 AWB 状态。当设备开启时,必须以此状态启动。</td>
+ </tr>
+ <tr>
+ <td>AWB_STATE_SEARCHING</td>
+ <td>AWB 未聚焦为一个理想值,正在改变颜色调整参数。</td>
+ </tr>
+ <tr>
+ <td>AWB_STATE_CONVERGED</td>
+ <td>AWB 已发现适用于当前场景的理想颜色调整值,参数不会更改。HAL 可能会自发退出此状态以寻找更好的解决方案。</td>
+ </tr>
+ <tr>
+ <td>AWB_STATE_LOCKED</td>
+ <td>AWB 已由 AWB_LOCK 控件锁定。颜色调整值不会更改。</td>
+ </tr>
+</tbody></table>
+
+<table>
+ <tbody><tr><th colspan="2">其他元数据条目</th>
+ </tr><tr class="alt">
+ <td>ANDROID_CONTROL_AWB_LOCK</td>
+ <td>用于将 AWB 颜色调整锁定为当前值的控件。</td>
+ </tr>
+ <tr class="alt">
+ <td>ANDROID_CONTROL_AWB_REGIONS</td>
+ <td>用于选择应该用于确定良好色彩平衡的 FOV 区域的控件。该模式仅适用于自动白平衡模式。</td>
+ </tr>
+</tbody></table>
+
<h2 id="state-transition">一般状态机转换说明</h2>
-<p>在 AF、AE 和 AWB 模式之间切换模式始终会将算法状态重置为 INACTIVE 状态。同样,如果 CONTROL_MODE == USE_SCENE_MODE,在 CONTROL_MODE 和 CONTROL_SCENE_MODE 之间切换也会将所有算法状态重置为 INACTIVE 状态。<br />下表列出了各模式的情况。</p>
+<p>在 AF、AE 和 AWB 模式之间进行切换一律会将算法状态重置为 INACTIVE 状态。同样,如果 CONTROL_MODE == USE_SCENE_MODE,在 CONTROL_MODE 和 CONTROL_SCENE_MODE 之间进行切换也会将所有算法状态重置为 INACTIVE 状态。</p>
+<p>下表列出了各模式的情况。</p>
+
<h2 id="af-state">AF 状态机</h2>
+
<table>
<tbody><tr>
- <td><strong>模式 = AF_MODE_OFF 或 AF_MODE_EDOF</strong></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <th>状态</th>
- <th>转换原因</th>
- <th>新状态</th>
- <th>备注</th>
+ <th colspan="4">模式 = AF_MODE_OFF 或 AF_MODE_EDOF</th></tr>
+ <tr class="alt">
+ <td>状态</td>
+ <td>转换原因</td>
+ <td>新状态</td>
+ <td>备注</td>
</tr>
<tr>
<td>INACTIVE</td>
@@ -58,45 +314,44 @@
<td></td>
<td>AF 已停用</td>
</tr>
- <tr>
- <td><strong>模式 = AF_MODE_AUTO 或 AF_MODE_MACRO</strong></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <th>状态</th>
- <th>转换原因</th>
- <th>新状态</th>
- <th>备注</th>
+</tbody></table>
+
+<table>
+ <tbody><tr>
+ <th colspan="4">模式 = AF_MODE_AUTO 或 AF_MODE_MACRO</th></tr>
+ <tr class="alt">
+ <td>状态</td>
+ <td>转换原因</td>
+ <td>新状态</td>
+ <td>备注</td>
</tr>
<tr>
<td>INACTIVE</td>
<td>AF_TRIGGER</td>
<td>ACTIVE_SCAN</td>
- <td>开始 AF 扫描
-镜头正在移动</td>
+ <td><p>开始 AF 扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>ACTIVE_SCAN</td>
<td>AF 扫描已完成</td>
<td>FOCUSED_LOCKED</td>
- <td>若 AF 成功
-镜头现已锁定</td>
+ <td><p>若 AF 成功</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>ACTIVE_SCAN</td>
<td>AF 扫描已完成</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>若 AF 成功
-镜头现已锁定</td>
+ <td><p>若 AF 成功</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>ACTIVE_SCAN</td>
<td>AF_CANCEL</td>
<td>INACTIVE</td>
- <td>取消/重置 AF
-镜头现已锁定</td>
+ <td><p>取消/重置 AF</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>FOCUSED_LOCKED</td>
@@ -108,8 +363,8 @@
<td>FOCUSED_LOCKED</td>
<td>AF_TRIGGER</td>
<td>ACTIVE_SCAN</td>
- <td>开始新的扫描
-镜头正在移动</td>
+ <td><p>开始新的扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>NOT_FOCUSED_LOCKED</td>
@@ -121,8 +376,8 @@
<td>NOT_FOCUSED_LOCKED</td>
<td>AF_TRIGGER</td>
<td>ACTIVE_SCAN</td>
- <td>开始新的扫描
-镜头正在移动</td>
+ <td><p>开始新的扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>所有状态</td>
@@ -130,80 +385,78 @@
<td>INACTIVE</td>
<td></td>
</tr>
- <tr>
- <td><strong>模式 = AF_MODE_CONTINUOUS_VIDEO</strong></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <th>状态</th>
- <th>转换原因</th>
- <th>新状态</th>
- <th>备注</th>
+</tbody></table>
+
+<table>
+ <tbody><tr>
+ <th colspan="4">模式 = AF_MODE_CONTINUOUS_VIDEO</th></tr>
+ <tr class="alt">
+ <td>状态</td>
+ <td>转换原因</td>
+ <td>新状态</td>
+ <td>备注</td>
</tr>
<tr>
<td>INACTIVE</td>
<td>HAL 启动新的扫描</td>
<td>PASSIVE_SCAN</td>
- <td>开始 AF 扫描
-镜头正在移动</td>
+ <td><p>开始 AF 扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>INACTIVE</td>
<td>AF_TRIGGER</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>AF 状态查询
-镜头现已锁定</td>
+ <td><p>AF 状态查询</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>HAL 完成当前扫描</td>
<td>PASSIVE_FOCUSED</td>
- <td>结束 AF 扫描
-镜头现已锁定</td>
+ <td><p>结束 AF 扫描</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>AF_TRIGGER</td>
<td>FOCUSED_LOCKED</td>
- <td>若对焦理想,则立即转换
-镜头现已锁定</td>
+ <td><p>若对焦理想,则立即转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>AF_TRIGGER</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>若对焦不良,则立即转换
-镜头现已锁定</td>
+ <td><p>若对焦不良,则立即转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>AF_CANCEL</td>
<td>INACTIVE</td>
- <td>重置镜头位置
-镜头现已锁定</td>
+ <td><p>重置镜头位置</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_FOCUSED</td>
<td>HAL 启动新的扫描</td>
<td>PASSIVE_SCAN</td>
- <td>开始 AF 扫描
-镜头正在移动</td>
+ <td><p>开始 AF 扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>PASSIVE_FOCUSED</td>
<td>AF_TRIGGER</td>
<td>FOCUSED_LOCKED</td>
- <td>若对焦理想,则立即转换
-镜头现已锁定</td>
+ <td><p>若对焦理想,则立即转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_FOCUSED</td>
<td>AF_TRIGGER</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>若对焦不良,则立即转换
-镜头现已锁定</td>
+ <td>若对焦不良,则立即转换<p>镜头现已锁定</p></td>
</tr>
<tr>
<td>FOCUSED_LOCKED</td>
@@ -229,80 +482,79 @@
<td>INACTIVE</td>
<td>重新启动 AF 扫描</td>
</tr>
- <tr>
- <td><strong>模式 = AF_MODE_CONTINUOUS_PICTURE</strong></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <th>状态</th>
- <th>转换原因</th>
- <th>新状态</th>
- <th>备注</th>
+</tbody></table>
+
+<table>
+ <tbody><tr>
+ <th colspan="4">模式 = AF_MODE_CONTINUOUS_PICTURE</th></tr>
+ <tr class="alt">
+ <td>状态</td>
+ <td>转换原因</td>
+ <td>新状态</td>
+ <td>备注</td>
</tr>
<tr>
<td>INACTIVE</td>
<td>HAL 启动新的扫描</td>
<td>PASSIVE_SCAN</td>
- <td>开始 AF 扫描
-镜头正在移动</td>
+ <td><p>开始 AF 扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>INACTIVE</td>
<td>AF_TRIGGER</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>AF 状态查询
-镜头现已锁定</td>
+ <td><p>AF 状态查询</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>HAL 完成当前扫描</td>
<td>PASSIVE_FOCUSED</td>
<td>结束 AF 扫描
-镜头现已锁定</td>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>AF_TRIGGER</td>
<td>FOCUSED_LOCKED</td>
- <td>一旦对焦理想,则进行最终转换
-镜头现已锁定</td>
+ <td><p>一旦对焦理想,则进行最终转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>AF_TRIGGER</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>若无法对焦,则进行最终转换
-镜头现已锁定</td>
+ <td><p>若无法对焦,则进行最终转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_SCAN</td>
<td>AF_CANCEL</td>
<td>INACTIVE</td>
- <td>重置镜头位置
-镜头现已锁定</td>
+ <td><p>重置镜头位置</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_FOCUSED</td>
<td>HAL 启动新的扫描</td>
<td>PASSIVE_SCAN</td>
- <td>开始 AF 扫描
-镜头正在移动</td>
+ <td><p>开始 AF 扫描</p>
+ <p>镜头正在移动</p></td>
</tr>
<tr>
<td>PASSIVE_FOCUSED</td>
<td>AF_TRIGGER</td>
<td>FOCUSED_LOCKED</td>
- <td>若对焦理想,则立即转换
-镜头现已锁定</td>
+ <td><p>若对焦理想,则立即转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>PASSIVE_FOCUSED</td>
<td>AF_TRIGGER</td>
<td>NOT_FOCUSED_LOCKED</td>
- <td>若对焦不良,则立即转换
-镜头现已锁定</td>
+ <td><p>若对焦不良,则立即转换</p>
+ <p>镜头现已锁定</p></td>
</tr>
<tr>
<td>FOCUSED_LOCKED</td>
@@ -329,20 +581,18 @@
<td>重新启动 AF 扫描</td>
</tr>
</tbody></table>
+
<h2 id="ae-wb">AE 和 AWB 状态机</h2>
-<p>AE 和 AWB 状态机大致上相同。但 AE 具有额外的 FLASH_REQUIRED 和 PRECAPTURE 状态。因此,对于 AWB 状态机,应忽略下表中这两个状态对应的行。</p>
+<p>AE 和 AWB 状态机大致上相同,但 AE 具有额外的 FLASH_REQUIRED 和 PRECAPTURE 状态。因此,对于 AWB 状态机,应忽略下表中这两个状态对应的行。</p>
+
<table>
<tbody><tr>
- <td><strong>模式 = AE_MODE_OFF/AWB 模式不是 AUTO</strong></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <th>状态</th>
- <th>转换原因</th>
- <th>新状态</th>
- <th>备注</th>
+ <th colspan="4">模式 = AE_MODE_OFF/AWB 模式不是 AUTO</th></tr>
+ <tr class="alt">
+ <td>状态</td>
+ <td>转换原因</td>
+ <td>新状态</td>
+ <td>备注</td>
</tr>
<tr>
<td>INACTIVE</td>
@@ -350,17 +600,16 @@
<td></td>
<td>AE/AWB 已停用</td>
</tr>
- <tr>
- <td><strong>模式 = AE_MODE_ON_ * / AWB_MODE_AUTO</strong></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <th>状态</th>
- <th>转换原因</th>
- <th>新状态</th>
- <th>备注</th>
+</tbody></table>
+
+<table>
+ <tbody><tr>
+ <th colspan="4">模式 = AE_MODE_ON_ * / AWB_MODE_AUTO</th></tr>
+ <tr class="alt">
+ <td>状态</td>
+ <td>转换原因</td>
+ <td>新状态</td>
+ <td>备注</td>
</tr>
<tr>
<td>INACTIVE</td>
@@ -453,9 +702,11 @@
<td>高质量拍摄就绪</td>
</tr>
</tbody></table>
+
<h2 id="manual-control">启用手动控制</h2>
<p>配置设备 3A 块以实现直接应用控制的过程还涉及到多个控件。</p>
<p>用于 3A 控制的 HAL 模式的运作方式为:对于每个请求,HAL 都会检查 3A 控制字段的状态。如果启用了任何 3A 例程,则该例程会覆盖与该例程相关的控制变量,然后这些覆盖值会在该拍摄的结果元数据中提供。例如,如果在请求中启用自动曝光,则 HAL 应覆盖请求的曝光、增益和帧时长字段(还可能包括闪光灯字段,具体取决于 AE 模式)。相关控件如下:</p>
+
<table>
<tbody><tr>
<th>控件名称</th>
@@ -470,7 +721,7 @@
<tr>
<td>android.control.afMode</td>
<td>枚举</td>
- <td>OFF 表示使用 android.lens.focusDistance 手动控制镜头。</td>
+ <td>OFF 表示使用 android.lens.focusDistance 手动控制镜头对焦。</td>
</tr>
<tr>
<td>android.control.aeMode</td>
diff --git a/zh-cn/devices/camera/camera3_crop_reprocess.html b/zh-cn/devices/camera/camera3_crop_reprocess.html
index d496bf5d..2d307179 100644
--- a/zh-cn/devices/camera/camera3_crop_reprocess.html
+++ b/zh-cn/devices/camera/camera3_crop_reprocess.html
@@ -21,16 +21,9 @@
-->
<h2 id="output-stream">输出流</h2>
-<p>与具有 3 至 4 种从相机生成数据的不同方式(基于 ANativeWindow 的预览操作、预览回调、视频回调和 takePicture 回调)的旧版相机子系统不同,新版相机子系统针对所有分辨率和输出格式都仅在基于 ANativeWindow 的通道上运行。您可以同时配置多路这样的输出流,以便将单个帧发送至多个目标,例如:GPU、视频编码器、RenderScript,或应用可见的缓冲区(RAW Bayer 缓冲区、经处理的 YUV 缓冲区或经 JPEG 编码的缓冲区)。</p>
-<p>出于优化的目的,这些输出流必须提前配置,而且只有有限的输出流可同时存在。这样一来,就可以预先分配内存缓冲区和配置相机硬件,以便在提交列有多个或者不同输出通道的请求时,不会出现请求延迟执行的情况。</p>
-<p>为了使当前的 camera API 具有向后兼容性,相机子系统必须至少同时支持 3 路 YUV 输出流,外加一路 JPEG 流。要支持视频快照,同时使应用也可接收 YUV 缓冲区,则必须满足上述要求:</p>
-<ul>
- <li>一路视频流(不透明的 YUV 格式)流向 GPU/SurfaceView 以用于预览</li>
- <li>一路视频流(不透明的 YUV 格式)流向视频编码器以用于录制</li>
- <li>一路视频流(已知的 YUV 格式)流向应用以用于预览帧回调</li>
- <li>一路视频流 (JPEG) 流向应用以用于视频快照</li>
-</ul>
-<p>由于相应的 API 尚未最终确定,确切的要求仍未敲定。</p>
+<p>相机子系统针对所有分辨率和输出格式都仅在基于 ANativeWindow 的管道上运行。您可以一次配置多个流,以便将单个帧发送至多个目标,例如:GPU、视频编码器、<a href="/devices/architecture/vndk/renderscript">RenderScript</a>,或应用可见的缓冲区(RAW Bayer 缓冲区、经处理的 YUV 缓冲区或经 JPEG 编码的缓冲区)。</p>
+<p>出于优化的目的,这些输出流必须提前配置,而且只有有限的输出流可同时存在。这样一来,就可以预先分配内存缓冲区和配置相机硬件,以便在提交列有多个或者不同输出管道的请求时,不会出现请求延迟执行的情况。</p>
+<p>有关取决于支持的硬件级别的保证流输出组合的详情,请参阅 <code><a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#createCaptureSession(java.util.List%3Candroid.view.Surface%3E,%20android.hardware.camera2.CameraCaptureSession.StateCallback,%20android.os.Handler)">createCaptureSession()</a></code>。</p>
<h2>剪裁</h2>
<p>完整像素阵列的剪裁(用于数字变焦和需要更小 FOV 的其他使用情况)通过 ANDROID_SCALER_CROP_REGION 设置进行传递。这个设置可按需更改,这种方式对于实现平滑的数字变焦至关重要。</p>
<p>该区域被定义为矩形(x 和 y 分别表示宽和高),其中 (x,y) 表示矩形的左上角。该矩形在传感器有源像素阵列的坐标系中进行定义,其中 (0,0) 对应有源像素阵列的左上角像素。因此,宽度和高度不能大于 ANDROID_SENSOR_ACTIVE_PIXEL_ARRAY 静态信息字段中所报告的尺寸。允许的最小宽度和高度由 HAL 通过 ANDROID_SCALER_MAX_DIGITAL_ZOOM 静态信息字段进行报告,该字段描述了所支持的缩放因子的最大值。因此,最小剪裁区域的宽度和高度为:</p>
@@ -62,6 +55,6 @@
<p class="img-caption">
<strong>图 4. </strong>宽高比为 4:3(方形)</p>
<h2 id="reprocessing">重新处理</h2>
-<p>对原始图片文件提供额外的支持功能,即 RAW Bayer 数据重新处理支持功能。该支持功能允许相机通道处理之前捕获的 RAW 缓冲区和元数据(之前记录的整个帧),以生成新渲染的 YUV 或 JPEG 输出。</p>
+<p>对原始图片文件提供额外的支持功能,即 RAW Bayer 数据重新处理支持功能。该支持功能允许相机管道处理之前捕获的 RAW 缓冲区和元数据(之前记录的整个帧),以生成新渲染的 YUV 或 JPEG 输出。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/camera/camera3_error_stream.html b/zh-cn/devices/camera/camera3_error_stream.html
index 7dfa739a..25749946 100644
--- a/zh-cn/devices/camera/camera3_error_stream.html
+++ b/zh-cn/devices/camera/camera3_error_stream.html
@@ -21,62 +21,13 @@
-->
<h2 id="error-mgmt">错误管理</h2>
-<p>如果出现严重错误,则具有返回值的相机 HAL 设备操作函数将全部返回 <code>-ENODEV
- / NULL</code>。这意味着该设备无法继续操作,必须由框架进行关闭。一旦某种方法返回了此错误,或者如果调用 <code>notify()</code> 且返回 <code>ERROR_DEVICE</code>,则只能成功调用 <code>close()</code> 方法。所有其他方法都将返回 <code>-ENODEV / NULL</code>。</p>
-<p>如果以错误顺序调用了设备操作,例如如果框架先调用 <code>configure_streams()</code> 后调用 <code>initialize()</code>,则该设备将会从调用中返回 <code>-ENOSYS</code>,且不执行任何操作。</p>
-<p>图片拍摄过程中的瞬时错误必须通过 <code>notify()</code> 进行报告,如下所述:</p>
-<ul>
- <li>如果整个拍摄过程失败,则必须由 HAL 进行报告,具体方法是调用 <code>notify()</code> 且返回 <code>ERROR_REQUEST</code>。在这种情况下,不能报告结果元数据或输出缓冲区的单个错误。</li>
- <li>如果无法生成拍摄的元数据,但已填充某些图像缓冲区,则 HAL 必须调用 <code>notify()</code> 且返回 <code>ERROR_RESULT</code>。</li>
- <li>如果无法填充输出图像缓冲区,但已生成元数据或已填充其他一些缓冲区,则 HAL 必须为各个失败的缓冲区调用 <code>notify()</code> 且返回 <code>ERROR_BUFFER</code>。</li>
-</ul>
-<p>在发生此类瞬时失败的情况下,HAL 必须仍然调用 <code>process_capture_result</code> 且返回有效的输出 <code>buffer_handle_t</code>。如果无法生成结果元数据,则应该为 <code>NULL</code>。如果无法填充某些缓冲区,则其同步栅栏必须设为错误状态。</p>
-<p>无效的输入参数会导致相应方法返回 <code>-EINVAL</code>。在这种情况下,框架必须表现为如同从未进行过该调用一样。</p>
+<p>与相机交互的 HIDL 接口方法必须生成相应的相机特定<a href="https://source.android.com/reference/hidl/android/hardware/camera/common/1.0/types">状态</a>。</p>
+<p>如果调用了 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceCallback#notify">ICameraDeviceCallbacks::notify()</a> 且返回 <a href="https://source.android.com/reference/hidl/android/hardware/camera/device/3.2/types#errorcode">ERROR_DEVICE</a>,则只能成功调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#close">ICameraDeviceSession::close()</a> 方法。其他所有方法都将返回 <a href="/reference/hidl/android/hardware/camera/common/1.0/types#status">INTERNAL_ERROR</a>。</p>
+
+<p>图像拍摄过程中的瞬时错误必须通过 <a href="https://source.android.com/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceCallback#notify">ICameraDeviceCallbacks::notify()</a> 进行报告且返回相应的<a href="/reference/hidl/android/hardware/camera/device/3.2/types#errorcode">错误代码</a>。在发生各种瞬时失败的情况下,HAL 必须仍然调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceCallback#processcaptureresult">ICameraDeviceCallbacks::processCaptureResult()</a> 且返回相应的<a href="/reference/hidl/android/hardware/camera/device/3.2/types#captureresult">捕获结果</a>。</p>
+
<h2 id="stream-mgmt">信息流管理</h2>
<h3 id="configure_streams">configure_streams</h3>
-<p>重置 HAL 相机设备的处理管道,并设置新的输入和输出信息流。此调用将使用 <code>stream_list</code> 中定义的信息流来替换任何现有的信息流配置。在使用 <code>process_capture_request()</code> 提交请求之前,此方法会在 <code>initialize()</code> 之后至少被调用一次。</p>
-<p><code>stream_list</code> 必须包含至少一个支持输出的信息流,但不得包含多个支持输入的信息流。
-<code>stream_list</code> 可包含同时属于当前有效的信息流组(源自先前对 <code>configure_stream()</code> 的调用)中的信息流。此类信息流已具有用法、maxbuffer 和私有指针的有效值。如果此类信息流已注册缓冲区,则系统不会针对这样的信息流再次调用 <code>register_stream_buffers()</code>,信息流中的缓冲区可立即列入输入请求中。</p>
-<p>HAL 如果需要将现有信息流的流配置更改为新的配置,可能会在配置调用期间重写用法和/或 maxbuffer 的值。该框架会检测到此类更改,然后重新分配信息流缓冲区,并且在请求中使用该信息流中的缓冲区之前会再次调用 <code>register_stream_buffers()</code>。</p>
-<p>如果 <code>stream_list</code> 中不包含当前有效的信息流,则 HAL 可以安全地移除对该信息流的任何引用。在框架稍后调用 <code>configure()</code> 期间也不会重复使用该信息流,并且在 <code>configure_streams()</code> 调用返回之后,它的所有 gralloc 缓冲区都将被释放。</p>
-<p><code>stream_list</code> 结构归框架所有,在此调用完成后可能就无法被访问了。单个 <code>camera3streamt</code> 结构的地址将仍然可供 HAL 访问,直到第一个 <code>configure_stream()</code> 调用结束(该调用的 <code>stream_list</code> 参数中不再包含该 <code>camera3streamt</code>)。除了在 <code>configure_streams()</code> 调用期间的用法和 maxbuffer 的成员之外,HAL 可能不会更改私有指针之外的信息流结构中的值。</p>
-<p>如果是新的信息流,则其结构的用法、maxbuffer 和私有指针字段都将被设为 0。HAL 设备必须在 <code>configure_streams()</code> 调用返回之前设置这些字段。随后,框架和平台 gralloc 模块将使用这些字段为各个信息流分配 gralloc 缓冲区。</p>
-<p>框架使用此类新信息流来调用 <code>register_stream_buffers()</code> 之后,信息流的缓冲区便可以列入拍摄请求中。不过,在提交请求之前,并不要求框架为所有信息流注册缓冲区。这样一来,预览信息流就可以快速启动(举例说明),而其他信息流的分配则稍后或同时发生。</p>
-<h4><strong>前提条件</strong></h4>
-<p>仅当没有正在处理的拍摄时,框架才会调用此方法。
-也就是说,所有结果已返回到框架,所有进行中的输入和输出缓冲区已返回,且其释放同步栅栏已收到 HAL 发出的信号。在 <code>configure_streams()</code> 调用过程中,框架不会提交新的拍摄请求。</p>
-<h4><strong>后置条件</strong></h4>
-<p>如相机设备的静态元数据中所述,HAL 设备必须自行配置,从而根据给定的输出信息流大小和格式提供尽可能高的输出帧速率。</p>
-<h4><strong>效果预期</strong></h4>
-<p>此调用预计为重型调用,由于可能需要重置和重新配置图片传感器和相机处理管道,因此可能需要几百毫秒才能完成。不过,HAL 设备应尽量避免重新配置延迟,以尽可能避免在应用操作模式改变(例如从静态拍摄切换到视频录制)期间出现用户可见的停顿。</p>
-<h4><strong>返回值</strong></h4>
-<ul>
- <li><code>0</code>:信息流配置成功时返回</li>
- <li><code>undefined</code></li>
- <li><code>-EINVAL</code>:如果请求的信息流配置无效,则返回此值。以下是一些无效信息流配置的示例:
- <ul>
- <li>包括多个支持输入的信息流(<code>INPUT</code> 或 <code>BIDIRECTIONAL</code>)</li>
- <li>不包括任何支持输出的信息流(<code>OUTPUT</code> 或 <code>BIDIRECTIONAL</code>)</li>
- <li>包括采用不受支持格式(或者格式的不受支持大小)的信息流。</li>
- <li>包括过多特定格式的输出信息流。</li>
- <li>请注意,鉴于信息流配置在配置之前经过检查确认,因此框架提交无效信息流配置不属于正常操作。无效配置意味着框架代码中存在错误,或者 HAL 的静态元数据与对信息流的要求不相符。</li>
- </ul>
- </li>
- <li><code>-ENODEV</code>:如果出现致命错误且设备不再运行,则返回此值。返回此错误后,框架只能成功调用 <code>close()</code>。</li>
-</ul>
-<h3 id="register-stream">register_stream_buffers</h3>
-<p>通过 HAL 设备为指定的信息流注册缓冲区。框架调用此方法发生在 <code>configure_streams</code> 定义新信息流之后、该信息流的缓冲区被列入拍摄请求之前。如果随后的 <code>configure_streams()</code> 调用中列出了同一信息流,框架将不会为该信息流再次调用 <code>register_stream_buffers</code>。</p>
-<p>框架不需要在提交第一个拍摄请求之前,为配置的所有信息流注册缓冲区。这样可以在其他信息流仍然处于分配过程中时快速启动预览(或类似用例)。</p>
-<p>此方法旨在让 HAL 设备映射或以其他方式准备缓冲区以供稍后使用。传入的缓冲区将被锁定以供使用。在调用结束时,所有缓冲区都必须准备好返回到信息流。
-bufferset 参数仅在此调用期间有效。</p>
-<p>如果信息流格式设为 <code>HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED</code>,则相机 HAL 应在此处检查传入的缓冲区,以确定任何平台专用的像素格式信息。</p>
-<h4><strong>返回值</strong></h4>
-<ul>
- <li><code>0</code>:新信息流的缓冲区注册成功时返回</li>
- <li><code>-EINVAL</code>:如果 streambufferset 不引用有效的活动信息流或者缓冲区数组无效,则返回此值。</li>
- <li><code>-ENOMEM</code>:如果注册缓冲区时出错,则返回此值。框架必须将所有信息流缓冲区视为未注册,并且可尝试稍后重新注册。</li>
- <li><code>-ENODEV</code>:如果出现致命错误且设备不再运行,则返回此值。
-返回此错误后,框架只能成功调用 <code>close()</code>。</li>
-</ul>
+<p>HAL 客户端必须通过调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#configurestreams">ICameraDeviceSession::configurestreams()</a> 来配置相机信息流。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/camera/camera3_metadata.html b/zh-cn/devices/camera/camera3_metadata.html
index b57f9b88..f3fa53d4 100644
--- a/zh-cn/devices/camera/camera3_metadata.html
+++ b/zh-cn/devices/camera/camera3_metadata.html
@@ -22,13 +22,13 @@
<h2 id="metadata">元数据支持</h2>
<p>要支持通过 Android 框架保存原始图片文件,需要具有大量有关传感器特性的元数据,包括色彩空间和镜头遮蔽功能等信息。</p>
-<p>其中大多数信息是相机子系统的静态属性,因此可以在配置任何输出通道或提交任何请求之前进行查询。新的相机 API 极大地扩展了 getCameraInfo() 方法提供的信息,以便将此类信息提供给应用。</p>
-<p>此外,手动控制相机子系统需要各种设备提供的有关其当前状态的反馈,以及在捕获指定帧时使用的实际参数。必须在输出元数据中包含硬件实际使用的控件(曝光时间、帧持续时间和敏感度)的实际值。这一点至关重要,这样应用就知道钳位或舍入何时发生,并且可以补偿用于图片捕获的实际设置。</p>
-<p>例如,如果应用在请求中将帧持续时间设置为 0,则 HAL 必须将帧持续时间钳位到该请求的实际最小帧持续时间,并在输出结果元数据中报告这一钳位最小持续时间。</p>
+<p>其中大多数信息是相机子系统的静态属性,因此可以在配置任何输出管道或提交任何请求之前进行查询。新的相机 API 极大地扩展了 <code>getCameraInfo()</code> 方法提供的信息,以便将此类信息提供给应用。</p>
+<p>此外,手动控制相机子系统需要各种设备提供的有关其当前状态的反馈,以及在捕获指定帧时使用的实际参数。必须在输出元数据中包含硬件实际使用的控件(曝光时间、帧时长和感光度)的实际值。这一点至关重要,这样应用就知道限制或舍入何时发生,并且可以补偿用于图片捕获的实际设置。</p>
+<p>例如,如果应用在请求中将帧时长设置为 0,则 HAL 必须将帧时长限制到该请求的实际最小帧时长,并在输出结果元数据中报告这一钳位最小持续时间。</p>
<p>因此,如果应用需要实现一个自定义 3A 例程(例如,为了适当地测量 HDR 连拍),则需要知道用于捕获其收到的最新一组结果的设置,以便更新下一个请求的设置。因此,新的相机 API 会向每个捕获的帧添加大量动态元数据。这包括用于捕获的已请求参数和实际参数,以及时间戳和统计信息生成器输出等其他每帧元数据。</p>
<h2 id="per-setting">每个设置的控件</h2>
-<p>对于大多数设置而言,它们应该能够随着每一个帧进行更改,而不会给输出帧流带来明显的卡顿或延迟。理想情况下,输出帧速率应该仅由捕获请求的帧持续时间字段控制,且不受处理块配置发生的任何变化影响。实际上,我们已经知道一些特定控件发生变化的速度非常缓慢;这些控件包括相机通道的输出分辨率和输出格式,以及影响镜头聚焦距离等物理设备的控件。下文稍后会详细说明每个控件集的确切要求。</p>
+<p>对于大多数设置而言,它们应该能够随着每一帧发生变化,而不会给输出帧流带来明显的卡顿或延迟。理想情况下,输出帧速率应该仅由捕获请求的帧时长字段控制,且不受处理块配置发生的任何变化影响。实际上,我们已经知道一些特定控件发生变化的速度非常缓慢;这些控件包括相机管道的输出分辨率和输出格式,以及镜头焦距等影响物理设备的控件。稍后会详细说明每个控件集的确切要求。</p>
<h2 id="raw-sensor">原始传感器数据支持</h2>
-<p>除了旧 API 支持的像素格式之外,新 API 还针对高级相机应用增加了对原始传感器数据 (Bayer RAW) 的支持要求,同时需支持原始图片文件。</p>
+<p>除了旧 API 支持的像素格式之外,新 API 还添加了对原始传感器数据 (Bayer RAW) 的支持要求,这既适合高级相机应用,又是为了支持原始图片文件。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/camera/camera3_requests_hal.html b/zh-cn/devices/camera/camera3_requests_hal.html
index 8ebc0786..a20ed346 100644
--- a/zh-cn/devices/camera/camera3_requests_hal.html
+++ b/zh-cn/devices/camera/camera3_requests_hal.html
@@ -21,22 +21,25 @@
-->
<h2 id="requests">请求</h2>
-<p>应用框架针对捕获的结果向相机子系统发出请求。一个请求对应一组结果。请求包含有关捕获和处理这些结果的所有配置信息。其中包括分辨率和像素格式;手动传感器、镜头和闪光灯控件;3A 操作模式;RAW 到 YUV 处理控件;以及统计信息的生成。这样一来,便可更好地控制结果的输出和处理。一次可发起多个请求,而且提交的请求不会出现阻塞的情况。请求始终按照接收的顺序进行处理。<br />
+<p>应用框架会针对捕获的结果向相机子系统发出请求。一个请求对应一组结果。请求包含有关捕获和处理这些结果的所有配置信息。其中包括分辨率和像素格式;手动传感器、镜头和闪光灯控件;3A 操作模式;RAW 到 YUV 处理控件;以及统计信息的生成等。这样一来,便可更好地控制结果的输出和处理。一次可发起多个请求,而且提交请求时不会出现阻塞。请求始终按照接收的顺序进行处理。</p>
<img src="images/camera_model.png" alt="相机请求模型" id="figure1"/>
- </p><p class="img-caption">
+ <p class="img-caption">
<strong>图 1.</strong> 相机模型</p>
<h2 id="hal-subsystem">HAL 和相机子系统</h2>
-<p>相机子系统包括相机管道中组件的实现,例如 3A 算法和处理控件。相机 HAL 为您提供了实现您版本的这些组件所需的接口。为了保持多个设备制造商和图像信号处理器(ISP,也称为相机传感器)供应商之间的跨平台兼容性,相机管道模型是虚拟的,且不直接对应任何真正的 ISP。不过,它与真正的处理管道足够相似,因此您可以有效地将其映射到硬件。此外,它足够抽象,可支持多种不同的算法和操作顺序,而不会影响质量、效率或跨设备兼容性。<br />相机管道还支持应用框架开启自动对焦等功能的触发器。它还会将通知发送回应用框架,以通知应用自动对焦锁定或错误等事件。<br />
+<p>相机子系统包括相机管道中组件的实现,例如 3A 算法和处理控件。相机 HAL 为您提供了用于实现您的这些组件版本的接口。为了保持多个设备制造商和图像信号处理器(ISP,也称为相机传感器)供应商之间的跨平台兼容性,相机管道模型是虚拟的,且不直接对应于任何真正的 ISP。不过,它与真正的处理管道足够相似,因此您可以有效地将其映射到硬件。此外,它足够抽象,可支持多种不同的算法和运算顺序,而不会影响质量、效率或跨设备兼容性。</p>
+<p>相机管道还支持应用框架可以启动来开启自动对焦等功能的触发器。它还会将通知发送回应用框架,以通知应用自动对焦锁定或错误等事件。</p>
<img src="images/camera_hal.png" alt="相机硬件抽象层" id="figure2"/>
- </p><p class="img-caption">
- <strong>图 2.</strong> 相机管道</p>请注意,上图所示的一些图像处理块在初始版本中没有明确定义。<br />相机管道假设如下方面:<p></p>
+ <p class="img-caption">
+ <strong>图 2.</strong> 相机管道</p>
+<p>请注意,上图所示的一些图像处理块在初始版本中没有明确定义。相机管道做出以下假设:</p>
<ul>
<li>RAW Bayer 输出在 ISP 内部不经过任何处理。</li>
<li>统计信息根据原始传感器数据生成。</li>
<li>将原始传感器数据转换为 YUV 的各种处理块按任意顺序排列。</li>
- <li>当显示多个刻度和剪裁单元时,所有的缩放器单元共享输出区域控件(数字缩放)。不过,每个单元都可能具有不同的输出分辨率和像素格式。</li>
+ <li>当显示多个刻度和剪裁单元时,所有缩放器单元共享输出区域控件(数字缩放)。不过,每个单元都可能具有不同的输出分辨率和像素格式。</li>
</ul>
-<p><strong>API 用途摘要</strong><br />下面简要介绍使用 Android Camera API 的步骤。有关这些步骤(包括 API 调用)的详细说明,请参阅“启动和预期操作顺序”部分。</p>
+<p><strong>API 用途摘要</strong><br />
+下面简要介绍了使用 Android Camera API 的步骤。有关这些步骤(包括 API 调用)的详细说明,请参阅“启动和预期操作顺序”部分。</p>
<ol>
<li>监听和枚举相机设备。</li>
<li>打开设备并连接监听器。</li>
@@ -49,8 +52,8 @@
<p><strong>HAL 操作摘要</strong></p>
<ul>
<li>捕获的异步请求来自于框架。</li>
- <li>HAL 设备必须按顺序处理请求。对于每个请求,均产生输出结果元数据以及一个或多个输出图片缓冲区。</li>
- <li>请求和结果以及后续请求引用的流遵守先进先出规则。</li>
+ <li>HAL 设备必须按顺序处理请求。对于每个请求,均生成输出结果元数据以及一个或多个输出图像缓冲区。</li>
+ <li>请求和结果以及后续请求引用的信息流遵守先进先出规则。</li>
<li>指定请求的所有输出的时间戳必须完全相同,以便框架可以根据需要将它们匹配在一起。</li>
<li>所有捕获配置和状态(不包括 3A 例程)都包含在请求和结果中。</li>
</ul>
@@ -58,122 +61,43 @@
<p class="img-caption">
<strong>图 3.</strong> 相机 HAL 概览</p>
<h2 id="startup">启动和预期操作顺序</h2>
-<p>本节包含有关使用 Camera API 时预期步骤的详细说明。有关这些结构和方法的定义,请参阅 <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h">platform/hardware/libhardware/include/hardware/camera3.h</a>。</p>
+<p>本部分详细说明了使用 Camera API 时应遵循的步骤。有关 HIDL 接口的定义,请参阅 <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/camera/">platform/hardware/interfaces/camera/</a>。</p>
+
+<h3 id="open-camera-device">枚举、打开相机设备并创建有效会话</h3>
<ol>
- <li>框架调用 camera_module_t-&gt;common.open(),而这会返回一个 hardware_device_t 结构。</li>
- <li>框架检查 hardware_device_t-&gt;version 字段,并为该版本的相机硬件设备实例化相应的处理程序。如果版本是 CAMERA_DEVICE_API_VERSION_3_0,则该设备会转型为 camera3_device_t。</li>
- <li>框架调用 camera3_device_t-&gt;ops-&gt;initialize() 并显示框架回调函数指针。在调用 ops 结构中的任何其他函数之前,这只会在 open() 之后调用一次。</li>
- <li>框架调用 camera3_device_t-&gt;ops-&gt;configure_streams() 并显示到 HAL 设备的输入/输出流列表。</li>
- <li>框架为 configure_streams 中列出的至少一个输出流分配 gralloc 缓冲区并调用 camera3_device_t-&gt;ops-&gt;register_stream_buffers()。相同的流仅注册一次。</li>
- <li>框架通过调用 camera3_device_t-&gt;ops-&gt;construct_default_request_settings() 来为某些使用情形请求默认设置。这可能会在第 3 步之后的任何时间发生。</li>
- <li>框架通过基于其中一组默认设置的设置以及至少一个框架之前注册的输出流来构建第一个捕获请求并将其发送到 HAL。它通过 camera3_device_t-&gt;ops-&gt;process_capture_request() 发送到 HAL。HAL 必须阻止此调用返回,直到准备好发送下一个请求。</li>
- <li>框架继续提交请求,并且可能会为尚未注册的流调用 register_stream_buffers(),并调用 construct_default_request_settings 来为其他使用情形获取默认设置缓冲区。</li>
- <li>当请求捕获开始(传感器开始曝光以进行捕获)时,HAL 会调用 camera3_callback_ops_t-&gt;notify() 并显示 SHUTTER 事件,包括帧号和开始曝光的时间戳。此通知调用必须在第一次调用该帧号的 process_capture_result() 之前进行。</li>
- <li>在某个管道延迟后,HAL 开始使用 camera3_callback_ops_t-&gt;process_capture_result() 将完成的捕获返回到框架。这些捕获按照与提交请求相同的顺序返回。一次可发起多个请求,具体取决于相机 HAL 设备的管道深度。</li>
- <li>一段时间后,框架可能会停止提交新的请求、等待现有捕获完成(所有缓冲区都已填充,所有结果都已返回),然后再次调用 configure_streams()。这会重置相机硬件和管道,以获得一组新的输入/输出流。可重复使用先前配置中的部分流;如果这些流的缓冲区已经过 HAL 注册,则不会再次注册。如果至少还有一个已注册的输出流,则框架从第 7 步继续(否则,需要先完成第 5 步)。</li>
- <li>或者,框架可能会调用 camera3_device_t-&gt;common-&gt;close() 以结束相机会话。当框架中没有其他处于活动状态的调用时,它可能随时会被调用;尽管在所有发起的捕获完成(所有结果都已返回,所有缓冲区都已填充)之前,调用可能会阻塞。在 close 调用返回后,不允许再从 HAL 对 camera3_callback_ops_t 函数进行更多调用。一旦进行 close() 调用,该框架可能不会调用任何其他 HAL 设备函数。</li>
- <li>在发生错误或其他异步事件时,HAL 必须调用 camera3_callback_ops_t-&gt;notify() 并返回相应的错误/事件消息。从严重的设备范围错误通知返回后,HAL 应表现为在其上调用了 close()。但是,HAL 必须在调用 notify() 之前取消或完成所有待处理的捕获,以便在调用 notify() 并返回严重错误时,框架不会收到来自设备的更多回调。在严重的错误消息返回 notify() 方法后,close() 之外的方法应该返回 -ENODEV 或 NULL。</li>
+ <li>初始化后,框架开始监听实现 <code><a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/camera/provider/2.4/ICameraProvider.hal">ICameraProvider</a></code> 接口的任何现有相机提供程序。如果存在一个或多个此类提供程序,框架将尝试建立连接。</li>
+ <li>框架通过 <code>ICameraProvider::getCameraIdList()</code> 枚举相机设备。</li>
+ <li>框架通过调用相应的 <code>ICameraProvider::getCameraDeviceInterface_VX_X()</code> 来实例化一个新的 <code>ICameraDevice</code>。</li>
+ <li>框架调用 <code>ICameraDevice::open()</code> 来创建一个新的有效捕获会话 ICameraDeviceSession。</li>
</ol>
-<img src="images/camera-ops-flow.png" width="600" height="434" alt="相机操作流程" id="figure4"/>
-<p class="img-caption">
- <strong>图 4.</strong> 相机操作流程</p>
-<h2 id="ops-modes">操作模式</h2>
-<p>相机 HAL3 设备可以实现以下两种可能的操作模式之一:有限和全面模式。更加高端的新设备有望实现全面支持。有限模式的硬件要求与相机 HAL 设备 v1 实现的硬件要求大致一致,旧版设备或便宜设备会实现这一模式。全面模式是有限模式的严格超集,它们有着基本相同的操作流程,如上所述。</p>
-<p>HAL 必须使用 android.info.supportedHardwareLevel 静态元数据条目来表示其支持级别,0 表示有限模式支持,1 表示全面模式支持。</p>
-<p>大致来说,有限模式设备不允许应用控制捕获设置(仅限 3A 控件)、高速率捕获高分辨率图片、读取原始传感器或支持高于最大录制分辨率的 YUV 输出流(JPEG 仅适用于较大图片)。<br />以下是有限模式行为的详细信息:</p>
-<ul>
- <li>有限模式设备不需要在捕获请求设置和捕获的实际图片数据之间实现准确的同步。相反,对设置的更改可能会在将来的某个时间生效,并且可能不是针对每个设置条目的相同输出帧。对设置进行快速更改可能会导致某些设置永远不能用于捕获。但是,包含高分辨率输出缓冲区 (&gt; 1080p) 的捕获必须使用指定的设置(不过,要了解处理速率,请参阅下文)。</li>
- <li>有限模式下包含高分辨率 (&gt; 1080p) 输出缓冲区的捕获可能会在 process_capture_request() 中阻塞,直到填满所有输出缓冲区。全面模式 HAL 设备必须以该像素格式的静态元数据中显示的速率处理高分辨率请求的序列。HAL 仍必须调用 process_capture_result() 以提供输出;框架必须做好准备,以便 process_capture_request() 进行阻塞,直至该请求的 process_capture_result() 为有限模式设备完成高分辨率捕获。</li>
- <li>有限模式设备不需要支持大多数设置/结果/静态信息元数据。有限模式 HAL 设备只需消耗或生成以下设置:<ul>
- <li>android.control.aeAntibandingMode(控件)</li>
- <li>android.control.aeExposureCompensation(控件)</li>
- <li>android.control.aeLock(控件)</li>
- <li>android.control.aeMode(控件)</li>
- <li>[OFF 表示 ON_FLASH_TORCH]</li>
- <li>android.control.aeRegions(控件)</li>
- <li>android.control.aeTargetFpsRange(控件)</li>
- <li>android.control.afMode(控件)</li>
- <li>[OFF 表示无限远聚焦]</li>
- <li>android.control.afRegions(控件)</li>
- <li>android.control.awbLock(控件)</li>
- <li>android.control.awbMode(控件)</li>
- <li>[不支持 OFF]</li>
- <li>android.control.awbRegions(控件)</li>
- <li>android.control.captureIntent(控件)</li>
- <li>android.control.effectMode(控件)</li>
- <li>android.control.mode(控件)</li>
- <li>[不支持 OFF]</li>
- <li>android.control.sceneMode(控件)</li>
- <li>android.control.videoStabilizationMode(控件)</li>
- <li>android.control.aeAvailableAntibandingModes(静态)</li>
- <li>android.control.aeAvailableModes(静态)</li>
- <li>android.control.aeAvailableTargetFpsRanges(静态)</li>
- <li>android.control.aeCompensationRange(静态)</li>
- <li>android.control.aeCompensationStep(静态)</li>
- <li>android.control.afAvailableModes(静态)</li>
- <li>android.control.availableEffects(静态)</li>
- <li>android.control.availableSceneModes(静态)</li>
- <li>android.control.availableVideoStabilizationModes(静态)</li>
- <li>android.control.awbAvailableModes(静态)</li>
- <li>android.control.maxRegions(静态)</li>
- <li>android.control.sceneModeOverrides(静态)</li>
- <li>android.control.aeRegions(动态)</li>
- <li>android.control.aeState(动态)</li>
- <li>android.control.afMode(动态)</li>
- <li>android.control.afRegions(动态)</li>
- <li>android.control.afState(动态)</li>
- <li>android.control.awbMode(动态)</li>
- <li>android.control.awbRegions(动态)</li>
- <li>android.control.awbState(动态)</li>
- <li>android.control.mode(动态)</li>
- <li>android.flash.info.available(静态)</li>
- <li>android.info.supportedHardwareLevel(静态)</li>
- <li>android.jpeg.gpsCoordinates(控件)</li>
- <li>android.jpeg.gpsProcessingMethod(控件)</li>
- <li>android.jpeg.gpsTimestamp(控件)</li>
- <li>android.jpeg.orientation(控件)</li>
- <li>android.jpeg.quality(控件)</li>
- <li>android.jpeg.thumbnailQuality(控件)</li>
- <li>android.jpeg.thumbnailSize(控件)</li>
- <li>android.jpeg.availableThumbnailSizes(静态)</li>
- <li>android.jpeg.maxSize(静态)</li>
- <li>android.jpeg.gpsCoordinates(动态)</li>
- <li>android.jpeg.gpsProcessingMethod(动态)</li>
- <li>android.jpeg.gpsTimestamp(动态)</li>
- <li>android.jpeg.orientation(动态)</li>
- <li>android.jpeg.quality(动态)</li>
- <li>android.jpeg.size(动态)</li>
- <li>android.jpeg.thumbnailQuality(动态)</li>
- <li>android.jpeg.thumbnailSize(动态)</li>
- <li>android.lens.info.minimumFocusDistance(静态)</li>
- <li>android.request.id(控件)</li>
- <li>android.request.id(动态)</li>
- <li>android.scaler.cropRegion(控件)</li>
- <li>[忽略 (x,y),假定中心缩放]</li>
- <li>android.scaler.availableFormats(静态)</li>
- <li>[不支持 RAW]</li>
- <li>android.scaler.availableJpegMinDurations(静态)</li>
- <li>android.scaler.availableJpegSizes(静态)</li>
- <li>android.scaler.availableMaxDigitalZoom(静态)</li>
- <li>android.scaler.availableProcessedMinDurations(静态)</li>
- <li>android.scaler.availableProcessedSizes(静态)</li>
- <li>[不支持完整分辨率]</li>
- <li>android.scaler.maxDigitalZoom(静态)</li>
- <li>android.scaler.cropRegion(动态)</li>
- <li>android.sensor.orientation(静态)</li>
- <li>android.sensor.timestamp(动态)</li>
- <li>android.statistics.faceDetectMode(控件)</li>
- <li>android.statistics.info.availableFaceDetectModes(静态)</li>
- <li>android.statistics.faceDetectMode(动态)</li>
- <li>android.statistics.faceIds(动态)</li>
- <li>android.statistics.faceLandmarks(动态)</li>
- <li>android.statistics.faceRectangles(动态)</li>
- <li>android.statistics.faceScores(动态)</li>
- </ul>
+
+<h3 id="use-active-session">使用有效相机会话</h3>
+
+<ol>
+ <li>框架调用 <code>ICameraDeviceSession::configureStreams()</code> 并传入到 HAL 设备的输入/输出流列表。</li>
+ <li>框架通过调用 <code>ICameraDeviceSession::constructDefaultRequestSettings()</code> 来为某些使用情形请求默认设置。这可能会在 <code>ICameraDevice::open</code> 创建 <code>ICameraDeviceSession</code> 之后的任何时间发生。
</li>
-</ul>
-<h2 id="interaction">应用捕获请求之间的互动、3A 控件和处理管道</h2>
-<p>根据 3A 控件块中的设置,相机管道会忽略应用捕获请求中的某些参数,并改用 3A 控件例程提供的值。例如,启用自动曝光时,传感器的曝光时间、帧持续时间和敏感度参数由平台 3A 算法控制,且所有应用指定的值都会被忽略。必须在输出元数据中报告由 3A 例程为帧选择的值。下表描述了 3A 控件块的不同模式和由这些模式控制的属性。有关这些属性的定义,请参阅 <a href="https://android.googlesource.com/platform/system/media/+/master/camera/docs/docs.html">platform/system/media/camera/docs/docs.html</a> 文件。</p>
+ <li>框架通过基于某一组默认设置的设置以及框架之前注册的至少一个输出流来构建第一个捕获请求并将其发送到 HAL。此请求通过 <code>ICameraDeviceSession::processCaptureRequest()</code> 发送到 HAL。HAL 必须阻止此调用返回,直到准备好发送下一个请求为止。</li>
+ <li>框架继续提交请求并根据需要调用 <code>ICameraDeviceSession::constructDefaultRequestSettings()</code> 以获取其他使用情形的默认设置缓冲区。</li>
+ <li>当请求捕获开始(传感器开始曝光以进行捕获)时,HAL 会调用 <code>ICameraDeviceCallback::notify()</code> 并显示 SHUTTER 消息,包括帧号和开始曝光的时间戳。此通知回调不必在对请求第一次调用 <code>processCaptureResult()</code> 之前发生,但直到针对相应的捕获调用 <code>notify()</code> 之后,才会向应用提供有关该捕获的结果。
+ </li>
+ <li>经过一定的管道延迟后,HAL 开始使用 <code>ICameraDeviceCallback::processCaptureResult()</code> 将完成的捕获返回到框架。这些捕获按照与提交请求相同的顺序返回。一次可发起多个请求,具体取决于相机 HAL 设备的管道深度。</li>
+</ol>
+
+<p>一段时间后,会出现以下某种情况:</p>
+ <ul>
+ <li>框架可能会停止提交新的请求,等待现有捕获完成(所有缓冲区都已填充,所有结果都已返回),然后再次调用 <code>ICameraDeviceSession::configureStreams()</code>。这会重置相机硬件和管道,以获得一组新的输入/输出流。可重复使用先前配置中的部分信息流。如果至少还有一个已注册的输出流,则框架将从发送到 HAL 的第一个捕获请求继续。(否则,需要先调用 <code>ICameraDeviceSession::configureStreams()</code>。)</li>
+ <li>框架可能会调用 <code>ICameraDeviceSession::close()</code> 以结束相机会话。当框架中没有其他处于有效状态的调用时,可能随时会调用此函数;不过,在所有发起的捕获完成(所有结果都已返回,所有缓冲区都已填充)之前,调用可能会阻塞。<code>close()</code> 调用返回后,不允许再从 HAL 对 <code>ICameraDeviceCallback</code> 进行调用。一旦进行 <code>close()</code> 调用,框架便不能再调用其他任何 HAL 设备函数。</li>
+ <li>在发生错误或其他异步事件时,HAL 必须调用 <code>ICameraDeviceCallback::notify()</code> 并返回相应的错误/事件消息。从严重的设备范围错误通知返回后,HAL 的行为方式应像对其调用了 <code>close()</code> 一样。但是,HAL 必须在调用 <code>notify()</code> 之前取消或完成所有待处理的捕获,以便在调用 <code>notify()</code> 并返回严重错误时,框架不会收到来自设备的更多回调。在 <code>notify()</code> 方法从严重错误消息返回后,<code>close()</code> 之外的方法应返回 -ENODEV 或 NULL。</li>
+ </ul>
+<img src="images/camera-ops-flow.png" alt="相机操作流程" id="figure4" width="485"/>
+<p class="img-caption">
+ <strong>图 4.</strong> 相机操作流程
+</p>
+<h2 id="hardware-levels">硬件级别</h2>
+<p>相机设备可以根据其功能实现多个硬件级别。有关详情,请参阅<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL">支持的硬件级别</a>。</p>
+<h2 id="interaction">应用捕获请求、3A 控件和处理管道之间的交互</h2>
+<p>根据 3A 控件块中的设置,相机管道会忽略应用捕获请求中的某些参数,而改用 3A 控件例程提供的值。例如,启用自动曝光后,传感器的曝光时间、帧时长和感光度参数由平台 3A 算法控制,所有应用指定的值都会被忽略。必须在输出元数据中报告由 3A 例程为帧选择的值。下表描述了 3A 控件块的不同模式以及由这些模式控制的属性。有关这些属性的定义,请参阅 <a href="https://android.googlesource.com/platform/system/media/+/master/camera/docs/docs.html">platform/system/media/camera/docs/docs.html</a> 文件。</p>
<table>
<tbody><tr>
<th>参数</th>
@@ -254,24 +178,24 @@ android.lens.filterDensity(如果支持的话)</td>
<td>可替换上述所有参数。各个 3A 控件均处于停用状态。</td>
</tr>
</tbody></table>
-<p>针对 3A 算法提供的控件大多一对一映射到旧 API 的参数(例如,曝光补偿、取景模式或白平衡模式)上。<br />在图 2 中,图像处理块中的控件都以类似的原理操作,并且每个块一般都具有 3 种模式:</p>
+<p>在图 2 中,图像处理块中的控件都以类似的原理操作,并且每个块一般都具有 3 种模式:</p>
<ul>
<li>OFF:该处理块处于停用状态。无法停用去马赛克、色彩校正和色调曲线调整块。</li>
- <li>FAST:与 OFF 模式相比,此模式下的处理块可能不会降低输出帧速率,但是考虑到限制条件,它应该会产生能够产生的最优质输出。通常,这会用于预览或视频录制模式,或用于连拍静态图片。在某些设备上,这可能等同于 OFF 模式(不能在不降低帧速率的情况下进行处理);而在某些设备上,这可能等同于 HIGH_QUALITY 模式(最佳质量仍不会降低帧速率)。</li>
- <li>HIGHQUALITY:在这种模式下,处理块应尽可能产生最优质结果,根据需要减缓输出帧速率。通常,这会用于静态捕获优质图片。一些块包括可以进行选择的手动控件(而非 FAST 或 HIGHQUALITY)。例如,颜色校正块支持颜色变换矩阵,而色调曲线调整支持任意的全局色调映射曲线。</li>
+ <li>FAST:与 OFF 模式相比,在这种模式下,处理块可能不会降低输出帧速率,但是考虑到限制条件,它应该会产生能够产生的最优质输出。通常,该模式会用于预览或视频录制模式,或用于连拍静态图像。在一些设备上,该模式可能等同于 OFF 模式(进行任何处理都会降低帧速率);而在另外一些设备上,该模式可能等同于 HIGH_QUALITY 模式(最佳质量仍不会降低帧速率)。</li>
+ <li>HIGH_QUALITY:在这种模式下,处理块应尽可能产生最优质结果,根据需要降低输出帧速率。通常,该模式会用于拍摄优质静态图像。一些块包括可以被选中的手动控件(而非 FAST 或 HIGH_QUALITY)。例如,色彩校正块支持颜色变换矩阵,而色调曲线调整支持任意的全局色调映射曲线。</li>
</ul>
<p>相机子系统可以支持的最大帧速率受到多种因素的影响:</p>
<ul>
- <li>所请求的输出图片流的分辨率</li>
- <li>在成像器上提供分箱/跳过模式</li>
+ <li>所请求的输出图像流的分辨率</li>
+ <li>成像器上像素组合/跳过模式的可用性</li>
<li>成像器接口的带宽</li>
<li>各种 ISP 处理块的带宽</li>
</ul>
-<p>由于这些因素在不同的 ISP 和传感器之间可能有很大差异,因此相机 HAL 接口会尝试将带宽限制抽象为尽可能简单的模型。显示的模型具有以下特性:</p>
+<p>由于这些因素在不同的 ISP 和传感器之间可能有很大差异,因此相机 HAL 接口会设法将带宽限制抽象为尽可能简单的模型。显示的模型具有以下特性:</p>
<ul>
- <li>考虑到应用的已请求输出流大小,图片传感器始终配置为尽可能输出最小的分辨率。最小分辨率定义为至少与请求的最大输出流一样大。</li>
- <li>因为任何请求都可能使用任意或所有当前配置的输出流,所以传感器和 ISP 必须配置为支持同时将单个捕获扩展到所有流。</li>
- <li>对于不包含 JPEG 流的请求,它们表现得像经过处理的 YUV 流一样;在直接引用它们的请求中,它们用作 JPEG 流。</li>
+ <li>考虑到应用的请求输出流大小,图像传感器始终配置为输出尽可能最小的分辨率。最小分辨率定义为至少与请求的最大输出流一样大。</li>
+ <li>因为任何请求都可能使用当前配置的任意或所有输出流,所以传感器和 ISP 必须配置为支持将单个捕获同时扩展到所有信息流。</li>
+ <li>对于不包含 JPEG 流的请求,JPEG 流表现得像经过处理的 YUV 流一样;在直接引用它们的请求中,它们用作 JPEG 流。</li>
<li>JPEG 处理器可以并行运行到相机管道的剩余部分,但不能一次处理多个捕获。</li>
</ul>
diff --git a/zh-cn/devices/camera/camera3_requests_methods.html b/zh-cn/devices/camera/camera3_requests_methods.html
index 73010305..9ad8ef3f 100644
--- a/zh-cn/devices/camera/camera3_requests_methods.html
+++ b/zh-cn/devices/camera/camera3_requests_methods.html
@@ -20,44 +20,14 @@
limitations under the License.
-->
-<h2 id="request-creation">创建和提交请求</h2>
-<h3 id="default-settings">construct_default_request_settings</h3>
-<p>为标准相机用例创建拍照设置。设备必须返回一个设置缓冲区,并且该缓冲区已配置为满足所请求用例(必须是 <code>CAMERA3_TEMPLATE_*</code> 枚举之一)的需求。所有请求控制字段都必须包括在内。</p>
-<p>HAL 保留对该结构的所有权,但指向该结构的指针在设备关闭之前必须一直保持有效。该调用返回缓冲区后,框架和 HAL 便不能再修改相应缓冲区。对于针对同一模板或针对其他模板的后续调用,可以返回同一个缓冲区。</p>
-<h4><strong>返回值</strong></h4>
-<ul>
- <li>有效的元数据:在成功创建默认设置缓冲区时返回。</li>
- <li><code>NULL</code>:在发生严重错误时返回。如果返回了该值,框架将只能成功调用 <code>close()</code> 方法。</li>
-</ul>
-<h3 id="process-request">process_capture_request</h3>
-<p>向 HAL 发送新的拍照请求。在准备好可以接受下一个要处理的请求之前,HAL 不会从该调用返回。框架一次只会对 <code>process_capture_request()</code> 进行一次调用,并且调用将全部来自同一个线程。一旦有新的请求并且其关联的缓冲区处于可用状态,框架会立即对 <code>process_capture_request()</code> 进行下一次调用。在正常预览情况下,这意味着框架几乎会立即再次调用该函数。</p>
-<p>实际的请求处理是异步进行的,拍照结果由 HAL 通过 <code>process_capture_result()</code> 调用返回。该调用要求结果元数据可用,但输出缓冲区可能只会提供要等待的同步 Fence。如果有多个请求,系统会立即对其进行快速处理,以保持全输出帧速率。</p>
-<p>框架保留对请求结构的所有权。系统只能保证请求结构在该调用期间有效。对于需要保留以用于拍照处理的信息,HAL 设备必须为其创建多个副本。HAL 负责等待并关闭缓冲区的 Fence,并将缓冲区句柄返回给框架。</p>
-<p>如果 <code>input_buffer</code> 不是 <code>NULL</code>,则 HAL 必须将输入缓冲区释放同步 Fence 的文件描述符写入到 <code>input_buffer</code>-&gt;<code>release_fence</code>。如果 HAL 为输入缓冲区释放同步 Fence 返回 <code>-1</code>,则框架可以立即重新使用输入缓冲区。否则,框架将等待同步 Fence,然后再重新填充和重新使用输入缓冲区。</p>
-<h4><strong>返回值</strong></h4>
-<ul>
- <li><code>0</code>:在成功开始处理拍照请求时返回。</li>
- <li><code>-EINVAL</code>:在输入格式不正确(不允许各项设置设为 <code>NULL</code> 但却被设为了 NULL、没有输出缓冲区,等等)且无法开始处理拍照时返回。请求处理过程中发生的故障应通过调用 <code>camera3_callback_ops_t.notify()</code> 来处理。如果出现此错误,框架仍将负责流缓冲区的 Fence 和缓冲区句柄;HAL 不应关闭 Fence 或通过 <code>process_capture_result</code> 返回这些缓冲区。</li>
- <li><code>-ENODEV</code>:在相机设备遇到严重错误时返回。如果返回了此错误,框架将只能成功调用 <code>close()</code> 方法。</li>
-</ul>
+<h2 id="default-settings">默认请求</h2>
+<p>要构建默认捕获请求,请调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#constructdefaultrequestsettings">ICameraDeviceSession::constructDefaultRequestSettings()</a>。</p>
+<h2 id="request-submission">提交请求</h2>
+<p>要提交相机捕获请求,请调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#processcapturerequest">ICameraDeviceSession::processCaptureRequest()</a>。</p>
<h2 id="misc-methods">其他方法</h2>
-<h3 id="get-metadata">get_metadata_vendor_tag_ops</h3>
-<p>获取方法以查询供应商扩展元数据标签信息。HAL 应填充所有供应商标签操作方法,或者使操作保持不变(如果未定义供应商标签)。可以在以下位置找到 <code>vendor_tag_query_ops_t</code> 的定义:<code>system/media/camera/include/system/camera_metadata.h</code>。</p>
-<h3 id="dump">dump</h3>
-<p>打印出相机设备的调试状态。当相机服务收到调试转储请求时,框架将调用该方法。在使用 <code>dumpsys</code> 工具或捕获错误报告时,会发生这种情况。传入的文件描述符可用于编写调试文本(使用 <code>dprintf()</code> 或 <code>write()</code>)。该文本应仅采用 ASCII 编码。</p>
-<h3 id="flush">flush</h3>
-<p>在给定设备上的管道中,刷新当前正在进行的所有拍照和所有缓冲区。框架将使用该方法来尽快转储所有状态,以便为调用 <code>configure_streams()</code> 做准备。</p>
-<p>由于无需成功返回缓冲区,因此可以返回在 <code>flush()</code> 时占用的每个缓冲区(不管是否已成功填充),并显示 <code>CAMERA3_BUFFER_STATUS_ERROR</code>。请注意,HAL 仍可在此调用期间返回有效的 (<code>STATUS_OK</code>) 缓冲区,但前提是已成功填充这些缓冲区。</p>
-<p>目前在 HAL 中的所有请求都应被尽快返回。未在处理的请求应立即返回错误。应停止所有可中断的硬件块,并且应等待所有不可中断的块。</p>
-<p>仅当 HAL 中不再有待处理的缓冲区或请求时,<code>flush()</code> 才应返回。框架可能会调用 <code>configure_streams</code>(因为 HAL 状态现在为已停顿),也可能会发出新的请求。</p>
-<p><code>flush()</code> 调用所用时间不应超过 100 毫秒,且最长不得超过 1 秒。</p>
-<h4><strong>版本信息</strong></h4>
-<p>仅当设备版本不低于 <code>CAMERA_DEVICE_API_VERSION_3_1</code> 时,才能获得版本信息。</p>
-<h4><strong>返回值</strong></h4>
-<ul>
- <li><code>0</code>:在成功刷新相机 HAL 时返回。</li>
- <li><code>-EINVAL</code>:在输入格式不正确(设备无效)时返回。</li>
- <li><code>-ENODEV</code>:在相机设备遇到严重错误时返回。如果返回了此错误,框架将只能成功调用 <code>close()</code> 方法。</li>
-</ul>
+<h3 id="request-result-message-queues">请求/结果消息队列</h3>
+<p>相机捕获结果和请求 IPC 开销可通过<a href="/devices/architecture/hidl/fmq">快速消息队列</a>进一步优化。调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#getcapturerequestmetadataqueue">ICameraDeviceSession::getCaptureRequestMetadataQueue()</a> 和 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#getcaptureresultmetadataqueue">ICameraDeviceSession::getCaptureResultMetadataQueue()</a> 方法可查询相应的队列。</p>
+<h3 id="flush">清空</h3>
+<p>要清空所有待处理的捕获请求,请调用 <a href="/reference/hidl/android/hardware/camera/device/3.2/ICameraDeviceSession#flush">ICameraDeviceSession::flush()</a>。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/debug/native-memory.html b/zh-cn/devices/tech/debug/native-memory.html
index b0de50b6..440087b3 100644
--- a/zh-cn/devices/tech/debug/native-memory.html
+++ b/zh-cn/devices/tech/debug/native-memory.html
@@ -30,6 +30,10 @@
<p>有关本地内存问题可用调试选项的完整说明,请参阅 <a href="https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md">Malloc 调试</a>和<a href="https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README_api.md">使用 libc 回调跟踪本地内存</a>。</p>
+<h2 id="libmemunreachable">libmemunreachable</h2>
+
+<p>Android 的 libmemunreachable 是一个零开销的本地内存泄漏检测器。它会使用不精确的“标记-清除”垃圾回收器遍历所有本机内存,同时将任何不可访问的块报告为泄漏。有关使用说明,请参阅 <a href="https://android.googlesource.com/platform/system/core/+/master/libmemunreachable/README.md">libmemunacachable 文档</a>。</p>
+
<h2 id="malloc-stats">Malloc 统计信息</h2>
<p>
diff --git a/zh-cn/security/authentication/index.html b/zh-cn/security/authentication/index.html
index 11afb398..07edb386 100644
--- a/zh-cn/security/authentication/index.html
+++ b/zh-cn/security/authentication/index.html
@@ -114,7 +114,7 @@ Android 支持<a href="/security/keystore/index.html">由硬件支持的 Keystor
<td>自最近一次系统启动以来已经过的时间(以毫秒为单位)。</td>
</tr>
<tr>
- <td>AuthToken HMAC 密钥 (SHA-256)</td>
+ <td>AuthToken HMAC (SHA-256)</td>
<td>256 位 Blob</td>
<td>是</td>
<td>除 HMAC 字段以外所有字段的已加密 SHA-256 MAC。</td>
@@ -129,6 +129,6 @@ Android 支持<a href="/security/keystore/index.html">由硬件支持的 Keystor
<p>与 Android 并排运行的 <a href="/security/trusty/index.html">Trusty</a> 操作系统就是一种 TEE,不过也可以使用其他 TEE。Trusty 使用内部 IPC 机制在 Keymaster 和 Fingerprint 或 Gatekeeper 之间直接进行通信。HMAC 密钥只保存在 Keymaster 中,Fingerprint 和 Gatekeeper 会在每次使用时向 Keymaster 请求该密钥,而不会保留或缓存该密钥的值。</p>
-<p>一些 TEE 缺少 IPC 基础架构,因此 TEE 中的小程序之间不会进行通信。这还使得 Keystore 服务因知晓系统中的身份验证表而能够快速拒绝注定会失败的请求,从而避免向 TEE 发送会占用大量处理能力的 IPC。</p>
+<p>由于一些 TEE 缺少 IPC 基础架构,因此 TEE 中的小程序之间不会进行通信。这还使得 Keystore 服务因知晓系统中的身份验证表而能够快速拒绝注定会失败的请求,从而避免向 TEE 发送可能会占用大量资源的 IPC。</p>
</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 65465b63..287da7a9 100644
--- a/zh-cn/security/bulletin/2018.html
+++ b/zh-cn/security/bulletin/2018.html
@@ -34,29 +34,25 @@
<th>安全补丁程序级别</th>
</tr>
<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>&nbsp;/
- <a href="/security/bulletin/2018-04-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/2018-04-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/2018-04-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/2018-04-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/2018-04-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
+ <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>
+ </td>
+ <td>2018 年 5 月 7 日</td>
+ <td>2018-05-01<br />2018-05-05</td>
+ </tr>
+ <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>
</td>
<td>2018 年 4 月 2 日</td>
- <td>2018-04-05</td>
+ <td>2018-04-01<br />2018-04-05</td>
</tr>
<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>&nbsp;/
- <a href="/security/bulletin/2018-03-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/2018-03-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/2018-03-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/2018-03-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/2018-03-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
+ <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>
</td>
<td>2018 年 3 月</td>
<td>2018-03-01<br />2018-03-05</td>
@@ -64,7 +60,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>
@@ -72,7 +68,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/pixel/2018.html b/zh-cn/security/bulletin/pixel/2018.html
index 2f818f8f..fd5ff320 100644
--- a/zh-cn/security/bulletin/pixel/2018.html
+++ b/zh-cn/security/bulletin/pixel/2018.html
@@ -34,29 +34,27 @@
<th>安全补丁程序级别</th>
</tr>
<tr>
- <td><a href="/security/bulletin/pixel/2018-04-01.html">2018 年 4 月</a></td>
- <td>即将发布<!--
- <a href="/security/bulletin/pixel/2018-04-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-04-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-04-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-04-01.html?hl=ru">ру́сский</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-04-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-04-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
+ <td><a href="/security/bulletin/pixel/2018-05-01.html">2018 年 5 月</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-05-01.html">English</a> / <a href="/security/bulletin/pixel/2018-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-05-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-05-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-05-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-05-01.html?hl=zh-tw">中文 (台灣)</a>
+ </td>
+ <td>2018 年 5 月 7 日</td>
+ <td>2018-05-05</td>
+ </tr>
+ <tr>
+ <td><a href="/security/bulletin/pixel/2018-04-01.html">2018年 4 月</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-04-01.html">English</a> / <a href="/security/bulletin/pixel/2018-04-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-04-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-04-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-04-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-04-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
- <td>2018 年 4 月</td>
+ <td>2018 年 4 月 2 日</td>
<td>2018-04-05</td>
</tr>
<tr>
<td><a href="/security/bulletin/pixel/2018-03-01.html">2018 年 3 月</a></td>
- <td>即将发布 <!--
- <a href="/security/bulletin/pixel/2018-03-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-03-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-03-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-03-01.html?hl=ru">ру́сский</a>&nbsp;/
+ <td>
+ <a href="/security/bulletin/pixel/2018-03-01.html">English</a> / <a href="/security/bulletin/pixel/2018-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-03-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-03-01.html?hl=ru">ру́сский</a> / <!--
<a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文&nbsp;(台灣)</a>
- -->
+ --> <a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2018 年 3 月</td>
<td>2018-03-05</td>
@@ -64,7 +62,7 @@
<tr>
<td><a href="/security/bulletin/pixel/2018-02-01.html">2018 年 2 月</a></td>
<td>
- <a href="/security/bulletin/pixel/2018-02-01.html">English</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/pixel/2018-02-01.html">English</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-02-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2018 年 2 月</td>
<td>2018-02-05</td>
@@ -72,7 +70,7 @@
<tr>
<td><a href="/security/bulletin/pixel/2018-01-01.html">2018 年 1 月</a></td>
<td>
- <a href="/security/bulletin/pixel/2018-01-01.html">English</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=zh-tw">中文 (台灣)</a>
+ <a href="/security/bulletin/pixel/2018-01-01.html">English</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=ko">한국어</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=ru">ру́сский</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=zh-cn">中文 (中国)</a> / <a href="/security/bulletin/pixel/2018-01-01.html?hl=zh-tw">中文 (台灣)</a>
</td>
<td>2018 年 1 月</td>
<td>2018-01-05</td>
diff --git a/zh-cn/setup/build/building-kernels.html b/zh-cn/setup/build/building-kernels.html
index 8643ece3..ef657e32 100644
--- a/zh-cn/setup/build/building-kernels.html
+++ b/zh-cn/setup/build/building-kernels.html
@@ -220,7 +220,7 @@ git clone https://android.googlesource.com/kernel/common
<p><code>exynos</code> 项目包含适用于 Nexus 10 的内核源代码,可用作在 Samsung Exynos 芯片组上开展相关工作的着手点。</p>
<pre class="devsite-terminal devsite-click-to-copy">git clone https://android.googlesource.com/kernel/exynos</pre>
-<p><code>goldfish</code> 项目包含适用于模拟平台的内核源代码。</p>
+<p><code>goldfish</code> 项目包含适用于所模拟的平台的内核源代码。</p>
<pre class="devsite-terminal devsite-click-to-copy">git clone https://android.googlesource.com/kernel/goldfish</pre>
<p><code>hikey-linaro</code> 项目用于 HiKey 参考板,可用作在 HiSilicon 620 芯片组上开展相关工作的着手点。</p>
diff --git a/zh-cn/setup/build/building.html b/zh-cn/setup/build/building.html
index 65ea322a..2c62be3a 100644
--- a/zh-cn/setup/build/building.html
+++ b/zh-cn/setup/build/building.html
@@ -59,7 +59,7 @@ source build/envsetup.sh
lunch aosp_arm-eng
</pre>
<p>如果您没有提供任何参数就运行命令,<code>lunch</code> 将提示您从菜单中选择一个目标。</p>
-<p>所有编译目标都采用 <code>BUILD-BUILDTYPE</code> 形式,其中 <code>BUILD</code> 是表示特定功能组合的代号。BUILDTYPE 是以下类型之一:</p>
+<p>所有编译目标都采用 <code>BUILD-BUILDTYPE</code> 形式,其中 <code>BUILD</code> 是表示特定功能组合的代号。<code>BUILDTYPE</code> 是以下类型之一:</p>
<table>
<thead>
<tr>
@@ -88,7 +88,7 @@ lunch aosp_arm-eng
<p>本部分只是一个摘要,用于确保设置已完成。如需关于编译 Android 的详细说明,请参阅<a href="running.html">运行编译系统</a>。</p>
-<p>您可以使用 <code>make</code> 编译任何代码。GNU Make 可以借助 <code>-jN</code> 参数处理并行任务,通常使用的任务数 N 介于编译时所用计算机上硬件线程数的 1-2 倍之间。例如,在一台双核 E5520 计算机(2 个 CPU,每个 CPU 4 个内核,每个内核 2 个线程)上,要实现最快的编译速度,可以使用介于 <code>make -j16</code> 到 <code>make -j32</code> 之间的命令。</p>
+ <p>您可以使用 <code>make</code> 编译任何代码。GNU <code>make</code> 可以借助 <code>-jN</code> 参数处理并行任务,通常使用的任务数 N 介于编译时所用计算机上硬件线程数的 1-2 倍之间。例如,在一台双核 E5520 计算机(2 个 CPU,每个 CPU 4 个内核,每个内核 2 个线程)上,要实现最快的编译速度,可以使用介于 <code>make -j16</code> 到 <code>make -j32</code> 之间的命令。</p>
<pre class="devsite-terminal devsite-click-to-copy">
make -j4
@@ -130,10 +130,10 @@ Please follow the machine setup instructions at
************************************************************
</pre>
-<p>这可能是由以下原因引起的:</p>
+<p>以下是可能的原因和解决方案:</p>
<ul>
-<li>未能安装 <a href="requirements.html#jdk">JDK 要求</a>中指定的正确 JDK。</li>
+<li>未能安装 <a href="requirements.html#jdk">JDK 要求</a>中指定的正确 JDK。确保您已按照<a href="building.html#initialize">设置环境</a>和<a href="building.html#choose-a-target">选择目标</a>中的步骤操作。</li>
<li>之前安装的另一个 JDK 出现在您的路径中。将正确的 JDK 附加到路径开头,或者移除有问题的 JDK。</li>
</ul>
@@ -154,11 +154,11 @@ You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************
</pre>
-<p>请按照<a href="initializing.html">构建编译环境</a>中的相关说明创建区分大小写的磁盘映像。</p>
+<p>请按照<a href="initializing.html#creating-a-case-sensitive-disk-image">创建区分大小写的磁盘映像</a>中的说明进行操作。</p>
<h3 id="no-usb-permission">没有 USB 权限</h3>
-<p>在大多数 Linux 系统中,无特权的用户默认情况下无法使用 USB 端口。如果您看到权限遭拒错误,请按照<a href="initializing.html">初始化编译环境</a>中的相关说明配置 USB 使用权限。</p>
+<p>在大多数 Linux 系统中,无特权的用户默认情况下无法使用 USB 端口。如果您看到权限遭拒错误,请按照<a href="initializing.html#configuring-usb-access">配置 USB 使用权限</a>中的说明操作。</p>
<p>如果 adb 已在运行,并且在这些规则设置完成后无法连接到设备,您可以使用 <code>adb kill-server</code> 将其终止。这将使 adb 采用新的配置重启。</p>
diff --git a/zh-cn/setup/build/devices.html b/zh-cn/setup/build/devices.html
index b6cee410..19dc014c 100644
--- a/zh-cn/setup/build/devices.html
+++ b/zh-cn/setup/build/devices.html
@@ -34,13 +34,15 @@
<img src="../images/hikey960.png" alt="HiKey960 开发板图片"/>
<figcaption><strong>图 1.</strong> Lenovator 提供的 HiKey960 开发板</figcaption>
-<p>其他资源:</p>
+<h3 id="additional-resources">其他资源</h3>
</a><ul><a>
</a><li><a>
-</a><a href="https://github.com/96boards/documentation/blob/master/ConsumerEdition/HiKey960/HardwareDocs/HiKey960_Schematics.pdf" class="external">HiKey960 示意图</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="http://www.96boards.org/documentation/ConsumerEdition/HiKey960/HardwareDocs/HardwareUserManual.md/" class="external">HiKey960 用户指南</a></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>
@@ -55,13 +57,6 @@
<code class="devsite-terminal">repo sync -j24</code>
</pre>
</li>
- <li>下载二进制文件,并将其解压到 Android 源代码树中:
-<pre class="devsite-click-to-copy">
-<code class="devsite-terminal">wget https://dl.google.com/dl/android/aosp/arm-hikey960-OPR-cf4e0c80.tgz</code>
-<code class="devsite-terminal">tar xzf arm-hikey960-OPR-cf4e0c80.tgz</code>
-<code class="devsite-terimnal">./extract-arm-hikey960.sh</code>
-</pre>
- </li>
<li>编译:
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">. ./build/envsetup.sh</code>
@@ -92,6 +87,7 @@
<code class="devsite-terminal">fastboot flash boot out/target/product/hikey960/boot.img</code>
<code class="devsite-terminal">fastboot flash dts out/target/product/hikey960/dt.img</code>
<code class="devsite-terminal">fastboot flash system out/target/product/hikey960/system.img</code>
+<code class="devsite-terminal">fastboot flash vendor out/target/product/hikey960/vendor.img</code>
<code class="devsite-terminal">fastboot flash cache out/target/product/hikey960/cache.img</code>
<code class="devsite-terminal">fastboot flash userdata out/target/product/hikey960/userdata.img</code>
</pre>
@@ -136,7 +132,7 @@ fastboot getvar nve:SN@<var>16_DIGIT_NUMBER</var>
<h2 id="620hikey">HiKey 开发板</h2>
-<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>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>
<img src="../images/hikey620.png" alt="HiKey620 开发板图片"/>
@@ -161,13 +157,6 @@ fastboot getvar nve:SN@<var>16_DIGIT_NUMBER</var>
<code class="devsite-terminal">repo sync -j24</code>
</pre>
</li>
- <li>下载 HDMI 二进制文件,并将其解压到 Android 源代码树中:
-<pre class="devsite-click-to-copy">
-<code class="devsite-terminal">wget <a href="https://dl.google.com/dl/android/aosp/linaro-hikey-20170523-4b9ebaff.tgz">https://dl.google.com/dl/android/aosp/linaro-hikey-20170523-4b9ebaff.tgz</a></code>
-<code class="devsite-terminal">tar xzf linaro-hikey-20170523-4b9ebaff.tgz</code>
-<code class="devsite-terminal">./extract-linaro-hikey.sh</code>
-</pre>
- </li>
<li>安装 mcopy 实用工具:
<pre class="devsite-terminal devsite-click-to-copy">
apt-get install mtools
@@ -186,7 +175,7 @@ apt-get install mtools
<h3 id="620fastboot">安装初始 fastboot 和 ptable</h3>
<ol>
- <li>连接 J15 1-2 和 3-4 引脚,从而选择特殊的引导加载程序模式(有关详情,请参阅 <a href="https://www.96boards.org/wp-content/uploads/2015/02/HiKey_User_Guide_Rev0.2.pdf" class="external">HiKey 用户指南</a>)。</li>
+ <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>将 USB 连接到 PC,以获取 ttyUSB 设备(例如:<code>/dev/ttyUSB1</code>)。</li>
<li>为开发板接通电源:
<pre class="devsite-click-to-copy">
@@ -202,7 +191,10 @@ apt-get install mtools
<li>连接 J15 1-2 和 5-6 引脚,从而进入 fastboot 模式。</li>
<li>运行以下命令:
<pre class="devsite-click-to-copy">
+<code class="devsite-terminal">fastboot flash ptable device/linaro/hikey/installer/hikey/ptable-aosp-8g.img</code>
+<code class="devsite-terminal">fastboot reboot-bootloader</code>
<code class="devsite-terminal">fastboot flash boot out/target/product/hikey/boot.img</code>
+<code class="devsite-terminal">fastboot flash vendor out/target/product/hikey/vendor.img</code>
<code class="devsite-terminal">fastboot flash -w system out/target/product/hikey/system.img</code>
</pre>
</li>
@@ -223,7 +215,7 @@ apt-get install mtools
<li>将输出复制到 HiKey 内核目录 (<code>/kernel/hikey-linaro</code>):
<ul>
<li>将 hi6220-hikey.dtb (<code>arch/arm64/boot/dts/hisilicon/hi6220-hikey.dtb</code>) 复制到 HiKey 内核目录,并将其重命名为 hi6220-hikey.dtb-4.9。</li>
- <li>将映像文件 <code>(arch/arm64/boot/Image-dtb</code>) 复制到 HiKey 内核目录,并将其重命名为 Image-dtb-4.9。</li>
+ <li>将映像文件 <code>(arch/arm64/boot/Image.gz-dtb</code>) 复制到 HiKey 内核目录,并将其重命名为 Image.gz-dtb-4.9。</li>
</ul>
</li><li>制作启动映像:
<pre class="devsite-terminal devsite-click-to-copy">
diff --git a/zh-cn/setup/build/downloading.html b/zh-cn/setup/build/downloading.html
index b4fa3872..7119885f 100644
--- a/zh-cn/setup/build/downloading.html
+++ b/zh-cn/setup/build/downloading.html
@@ -20,46 +20,64 @@
limitations under the License.
-->
-<p>Android 源代码树位于由 Google 托管的 Git 代码库中。Git 代码库中包含 Android 源代码的元数据,其中包括与对源代码进行的更改以及更改日期相关的元数据。本文档介绍了如何下载特定 Android 代码流水线的源代码树。
+<p>
+Android 源代码树位于由 Google 托管的 Git 代码库中。Git 代码库中包含 Android 源代码的元数据,其中包括与对源代码进行的更改以及更改日期相关的元数据。本文档介绍了如何下载特定 Android 代码流水线的源代码树。
</p>
<p>
要从特定设备的出厂映像开始,请参阅<a href="running.html#selecting-device-build">选择设备版本</a>。
</p>
<h2 id="installing-repo">安装 Repo</h2>
-<p>Repo 是一款工具,可让您在 Android 环境中更轻松地使用 Git。要详细了解 Repo,请参阅 <a href="../develop/repo.html">Repo 命令参考资料</a>。
+<p>
+Repo 是一款工具,可让您在 Android 环境中更轻松地使用 Git。要详细了解 Repo,请参阅 <a href="../develop/repo.html">Repo 命令参考资料</a>。
+</p>
+<p>
+ 要安装 Repo,请执行以下操作:
</p>
-<p>要安装 Repo,请执行以下操作:</p>
<ol>
<li>
- <p>确保主目录下有一个 bin/ 目录,并且该目录包含在路径中:</p>
+ <p>
+ 确保主目录下有一个 <code>bin/</code> 目录,并且该目录包含在路径中:
+ </p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir ~/bin</code>
<code class="devsite-terminal">PATH=~/bin:$PATH</code>
</pre>
</li>
<li>
- <p>下载 Repo 工具,并确保它可执行:</p>
+ <p>
+下载 Repo 工具,并确保它可执行:
+ </p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">curl https://storage.googleapis.com/git-repo-downloads/repo &gt; ~/bin/repo</code>
<code class="devsite-terminal">chmod a+x ~/bin/repo</code>
</pre>
</li>
</ol>
-<p>对于 1.21 版,Repo 的 SHA-1 校验和为 b8bd1804f432ecf1bab730949c82b93b0fc5fede</p>
-<p>对于 1.22 版,Repo 的 SHA-1 校验和为 da0514e484f74648a890c0467d61ca415379f791</p>
-<p>对于 1.23 版,Repo 的 SHA-256 校验和为 e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5</p>
+<p>
+对于 1.21 版,Repo 的 SHA-1 校验和为 <code>b8bd1804f432ecf1bab730949c82b93b0fc5fede</code>。
+</p>
+<p>
+对于 1.22 版,Repo 的 SHA-1 校验和为 <code>da0514e484f74648a890c0467d61ca415379f791</code>。
+</p>
+<p>
+对于 1.23 版,Repo 的 SHA-256 校验和为 <code>e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5</code>。
+</p>
<h2 id="initializing-a-repo-client">初始化 Repo 客户端</h2>
-<p>安装 Repo 后,设置您的客户端以访问 Android 源代码代码库:</p>
+<p>
+安装 Repo 后,设置您的客户端以访问 Android 源代码代码库:
+</p>
<ol>
<li>
- <p>创建一个空目录来存放您的工作文件。如果您使用的是 MacOS,必须在区分大小写的文件系统中创建该目录。为其指定一个您喜欢的任意名称:</p>
+ <p>创建一个空目录来存放您的工作文件。如果您使用的是 MacOS,必须在区分大小写的文件系统中创建该目录。为其指定一个您喜欢的任意名称:
+ </p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir WORKING_DIRECTORY</code>
<code class="devsite-terminal">cd WORKING_DIRECTORY</code>
</pre>
</li>
<li>
- <p>使用您的真实姓名和电子邮件地址配置 Git。要使用 Gerrit 代码审核工具,您需要一个与<a href="https://www.google.com/accounts">已注册的 Google 帐号</a>关联的电子邮件地址。确保这是您可以接收邮件的有效地址。您在此处提供的姓名将显示在您提交的代码的提供方信息中。
+ <p>
+使用您的真实姓名和电子邮件地址配置 Git。要使用 Gerrit 代码审核工具,您需要一个与<a href="https://www.google.com/accounts">已注册的 Google 帐号</a>关联的电子邮件地址。确保这是您可以接收邮件的有效地址。您在此处提供的姓名将显示在您提交的代码的提供方信息中。
</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">git config --global user.name "Your Name"</code>
@@ -73,49 +91,62 @@
<pre class="devsite-terminal devsite-click-to-copy">
repo init -u https://android.googlesource.com/platform/manifest
</pre>
- <p>要检出“master”以外的分支,请使用 <code>-b</code> 指定相应分支。要查看分支列表,请参阅<a href="../start/build-numbers.html#source-code-tags-and-builds">源代码标记和编译版本</a>。
+ <p>
+要检出“master”以外的分支,请使用 <code>-b</code> 指定相应分支。要查看分支列表,请参阅<a href="../start/build-numbers.html#source-code-tags-and-builds">源代码标记和编译版本</a>。
</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
</pre>
</li>
</ol>
-<p>初始化成功后,系统将显示一条消息,告诉您 Repo 已在工作目录中完成初始化。客户端目录中现在应包含一个 <code>.repo</code> 目录,清单等文件将保存在该目录下。
+<p>
+初始化成功后,系统将显示一条消息,告诉您 Repo 已在工作目录中完成初始化。客户端目录中现在应包含一个 <code>.repo</code> 目录,清单等文件将保存在该目录下。
</p>
<h2 id="getting-the-files">下载 Android 源代码树</h2>
-<p>要将 Android 源代码树从默认清单中指定的代码库下载到工作目录,请运行以下命令:</p>
+<p>
+要将 Android 源代码树从默认清单中指定的代码库下载到工作目录,请运行以下命令:
+</p>
<pre class="devsite-terminal devsite-click-to-copy">repo sync</pre>
-<p>Android 源代码文件将位于工作目录中对应的项目名称下。初始同步操作将需要 1 个小时或更长时间才能完成。要详细了解 <code>repo
- sync</code> 和其他 Repo 命令,请参阅<a href="../develop/index.html">开发</a>部分。
+<p>
+Android 源代码文件将位于工作目录中对应的项目名称下。初始同步操作将需要 1 个小时或更长时间才能完成。要详细了解 <code>repo sync</code> 和其他 Repo 命令,请参阅<a href="../develop/index.html">开发</a>部分。
</p>
<h2 id="using-authentication">使用身份验证</h2>
-<p>默认情况下,访问 Android 源代码均为匿名操作。为了防止服务器被过度使用,每个 IP 地址都有一个相关联的配额。
+<p>
+默认情况下,访问 Android 源代码均为匿名操作。为了防止服务器被过度使用,每个 IP 地址都有一个相关联的配额。
</p>
-<p>当与其他用户共用一个 IP 地址时(例如,在越过 NAT 防火墙访问源代码代码库时),系统甚至会针对常规使用模式(例如,许多用户在短时间内从同一个 IP 地址同步新客户端)触发配额。
+<p>
+当与其他用户共用一个 IP 地址时(例如,在越过 NAT 防火墙访问源代码代码库时),系统甚至会针对常规使用模式(例如,许多用户在短时间内从同一个 IP 地址同步新客户端)触发配额。
</p>
-<p>在这种情况下,可以使用进行身份验证的访问方式,此类访问方式会对每位用户使用单独的配额,而不考虑 IP 地址。
+<p>
+在这种情况下,可以使用进行身份验证的访问方式,此类访问方式会对每位用户使用单独的配额,而不考虑 IP 地址。
</p>
<p>
第一步是使用<a href="https://android.googlesource.com/new-password">密码生成器</a>生成密码,然后按照密码生成器页面中的说明进行操作。
</p>
<p>
-第二步是通过使用以下清单 URI,强制使用进行身份验证的访问方式:<code>https://android.googlesource.com/a/platform/manifest</code>。请注意 <code>/a/</code> 目录前缀如何触发强制性身份验证。您可以通过以下命令将现有客户端转换为使用强制性身份验证:</p>
+第二步是通过使用以下清单 URI,强制使用进行身份验证的访问方式:<code>https://android.googlesource.com/a/platform/manifest</code>。请注意 <code>/a/</code> 目录前缀如何触发强制性身份验证。您可以通过以下命令将现有客户端转换为使用强制性身份验证:
+</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo init -u https://android.googlesource.com/a/platform/manifest
</pre>
<h2 id="troubleshooting-network-issues">排查网络问题</h2>
-<p>在使用代理的情况下下载内容(在一些企业环境中很常见)时,您可能需要明确指定 Repo 随后使用的代理:</p>
+<p>
+在使用代理的情况下下载内容(在一些企业环境中很常见)时,您可能需要明确指定 Repo 随后使用的代理:
+</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">export HTTP_PROXY=http://&lt;proxy_user_id&gt;:&lt;proxy_password&gt;@&lt;proxy_server&gt;:&lt;proxy_port&gt;</code>
<code class="devsite-terminal">export HTTPS_PROXY=http://&lt;proxy_user_id&gt;:&lt;proxy_password&gt;@&lt;proxy_server&gt;:&lt;proxy_port&gt;</code>
</pre>
-<p>一种比较少见的情况是,Linux 客户端遇到连接问题,在下载期间(通常是在“正在接收对象”期间)被卡住。有人曾报告称,调整 TCP/IP 堆栈的设置并使用非并行命令可以改善这种情况。您需要拥有 root 权限才能修改 TCP 设置:</p>
+<p>
+一种比较少见的情况是,Linux 客户端遇到连接问题,在下载期间(通常是在“正在接收对象”期间)被卡住。有人曾报告称,调整 TCP/IP 堆栈的设置并使用非并行命令可以改善这种情况。您需要拥有 root 权限才能修改 TCP 设置:
+</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">sudo sysctl -w net.ipv4.tcp_window_scaling=0</code>
<code class="devsite-terminal">repo sync -j1</code>
</pre>
<h2 id="using-a-local-mirror">使用本地镜像</h2>
-<p>当您使用多个客户端时(尤其是在带宽不足的情况下),最好为所有服务器内容创建一个本地镜像,并从该镜像同步客户端(不需要访问网络)。一个完整镜像的下载文件比两个客户端的下载文件要小一些,而且包含更多信息。
+<p>
+当您使用多个客户端时(尤其是在带宽不足的情况下),最好为所有服务器内容创建一个本地镜像,并从该镜像同步客户端(不需要访问网络)。一个完整镜像的下载文件比两个客户端的下载文件要小一些,而且包含更多信息。
</p>
<p>
以下说明假定在 <code>/usr/local/aosp/mirror</code> 中创建镜像。第一步是创建并同步镜像本身。请注意 <code>--mirror</code> 标记,该标记只能在创建新客户端时指定:
@@ -126,29 +157,36 @@ repo init -u https://android.googlesource.com/a/platform/manifest
<code class="devsite-terminal">repo init -u https://android.googlesource.com/mirror/manifest --mirror</code>
<code class="devsite-terminal">repo sync</code>
</pre>
-<p>同步镜像后,您就可以从镜像创建新客户端了。请注意,务必要指定一个绝对路径:</p>
+<p>
+同步镜像后,您就可以从镜像创建新客户端了。请注意,务必要指定一个绝对路径:
+</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">mkdir -p /usr/local/aosp/master</code>
<code class="devsite-terminal">cd /usr/local/aosp/master</code>
<code class="devsite-terminal">repo init -u /usr/local/aosp/mirror/platform/manifest.git</code>
<code class="devsite-terminal">repo sync</code>
</pre>
-<p>最后,要将客户端与服务器同步,您需要将镜像与服务器同步,然后再将客户端与镜像同步:</p>
+<p>
+最后,要将客户端与服务器同步,您需要将镜像与服务器同步,然后再将客户端与镜像同步:
+</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">cd /usr/local/aosp/mirror</code>
<code class="devsite-terminal">repo sync</code>
<code class="devsite-terminal">cd /usr/local/aosp/master</code>
<code class="devsite-terminal">repo sync</code>
</pre>
-<p>您可以将镜像存储在 LAN 服务器上,然后通过 NFS、SSH 或 Git 访问它。您还可以将其存储在移动存储盘上,并在用户之间或计算机之间传用该存储盘。
+<p>
+您可以将镜像存储在 LAN 服务器上,然后通过 NFS、SSH 或 Git 访问它。您还可以将其存储在移动存储盘上,并在用户之间或计算机之间传用该存储盘。
</p>
<h2 id="verifying-git-tags">验证 Git 标记</h2>
-<p>将以下公钥加载到您的 GnuPG 密钥数据库中。该密钥用于签署代表各版本的带注释标记。
+<p>
+将以下公钥加载到您的 GnuPG 密钥数据库中。该密钥用于签署代表各版本的带注释标记。
</p>
<pre class="devsite-terminal devsite-click-to-copy">
gpg --import
</pre>
-<p>复制并粘贴以下密钥,然后输入 EOF (Ctrl-D) 以结束输入并处理密钥。
+<p>
+复制并粘贴以下密钥,然后输入 EOF (Ctrl-D) 以结束输入并处理密钥。
</p>
<pre class="devsite-click-to-copy">
-----BEGIN PGP PUBLIC KEY BLOCK-----
@@ -182,11 +220,11 @@ EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----
</pre>
-<p>导入密钥后,您可以通过以下命令验证任何标记:</p>
+<p>
+导入密钥后,您可以通过以下命令验证任何标记:
+</p>
<pre class="devsite-terminal devsite-click-to-copy">
git tag -v TAG_NAME
</pre>
-<p>如果您尚未<a href="initializing.html#optimizing-a-build-environment">设置 ccache</a>,现在是设置它的最佳时机。
-</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/build/initializing.html b/zh-cn/setup/build/initializing.html
index e6b8a13d..00dd108e 100644
--- a/zh-cn/setup/build/initializing.html
+++ b/zh-cn/setup/build/initializing.html
@@ -41,7 +41,7 @@
<p>
以下说明适用于所有分支(包括 <code>master</code>)。
</p>
-<p>我们会定期在最近推出的一些 Ubuntu LTS (14.04) 版本中对 Android 编译系统进行内部测试,但大多数 Ubuntu 分发版本都应该具有所需的编译工具。欢迎向我们报告在其他分发版本中的测试结果(无论结果是成功还是失败)。
+<p>我们会定期在最近推出的一些 Ubuntu LTS (14.04) 和 Debian 测试版本中对 Android 编译系统进行内部测试。其他大多数分发版本都应该具有所需的编译工具。
</p>
<p>
如果是 Gingerbread (2.3.x) 及更高版本(包括 <code>master</code> 分支),需要使用 64 位环境。如果是较低的版本,则可以在 32 位系统中进行编译。
@@ -50,7 +50,8 @@
</aside>
<h3 id="installing-the-jdk">安装 JDK</h3>
-<p><a href="https://android.googlesource.com/" class="external">Android 开源项目 (AOSP)</a> 中 Android 的 <code>master</code> 分支在 <code>prebuilts/jdk/</code> 下有预编译版本的 OpenJDK,因此无需另行安装。
+<p>
+<a href="https://android.googlesource.com/" class="external">Android 开源项目 (AOSP)</a> 中 Android 的 <code>master</code> 分支在 <code>prebuilts/jdk/</code> 下有预编译版本的 OpenJDK,因此无需另行安装。
</p>
<p>
较低版本的 Android 需要另行安装 JDK。在 Ubuntu 上,请使用 <a href="http://openjdk.java.net/install/" class="external">OpenJDK</a>。要了解确切的版本,请参阅 <a href="requirements.html#jdk">JDK 要求</a>;要了解相关说明,请参阅以下各个部分。
@@ -102,16 +103,16 @@
<code class="devsite-terminal">sudo update-alternatives --config java</code>
<code class="devsite-terminal">sudo update-alternatives --config javac</code>
</pre>
-<p>
-在编译过程中,如果您遇到 Java 版本错误,请按照<a href="building.html#wrong-java-version">错误的 Java 版本</a>部分中的说明设置其路径。
-</p>
+<aside class="note">
+ <b>注意</b>:在编译过程中,如果您遇到 Java 版本错误,请参阅<a href="building.html#wrong-java-version">错误的 Java 版本</a>以查找可能的原因和解决方案。
+ </aside>
<h3 id="installing-required-packages-ubuntu-1404">安装所需的软件包 (Ubuntu 14.04)</h3>
<p>
您将需要 64 位版本的 Ubuntu。建议您使用 Ubuntu 14.04。
</p>
<pre class="devsite-terminal devsite-click-to-copy">
-sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
+sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
</pre>
<aside class="note"><strong>注意</strong>:要使用 SELinux 工具进行政策分析,您还需要安装 <code>python-networkx</code> 软件包。
</aside>
@@ -183,7 +184,7 @@ export OUT_DIR_COMMON_BASE=&lt;path-to-your-out-directory&gt;
<h3 id="creating-a-case-sensitive-disk-image">创建区分大小写的磁盘映像</h3>
<p>
-您可以使用磁盘映像在现有的 Mac OS 环境中创建区分大小写的文件系统。要创建磁盘映像,请启动磁盘工具,然后选择“新建映像”。完成编译至少需要 25GB 空间;更大的空间能够更好地满足未来的需求。使用稀疏映像有助于节省空间,而且以后可以随着需求的增加进行扩展。请务必选择“Case sensitive, Journaled”存储卷格式。
+您可以使用磁盘映像在现有的 Mac OS 环境中创建区分大小写的文件系统。要创建磁盘映像,请启动磁盘工具,然后选择<strong>新建映像</strong>。完成编译至少需要 25GB 空间;更大的空间能够更好地满足未来的需求。使用稀疏映像有助于节省空间,而且以后可以随着需求的增加进行扩展。请务必选择 <strong>Case sensitive, Journaled</strong> 存储卷格式。
</p>
<p>
您也可以通过 shell 使用以下命令创建磁盘映像:
@@ -281,51 +282,6 @@ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/andr
# set the number of open files to be 1024
ulimit -S -n 1024</pre>
-<h2 id="optimizing-a-build-environment">优化编译环境(可选)</h2>
-<p>
-您可以视需要指示编译系统使用 ccache 编译工具,ccache 是适用于 C 和 C++ 的编译器缓存,有助于提高编译速度。这对于编译服务器和其他高容量生产环境来说尤其有用。ccache 可用作用于加快重新编译速度的编译器缓存。如果您经常使用 <code>make clean</code>,或者经常在不同的编译产品之间切换,则非常适合使用 ccache。
-</p>
-<aside class="note"><strong>注意</strong>:如果您是在执行增量编译(例如个人开发者而非编译服务器),ccache 可能会让您为缓存未命中埋单,从而减慢您的编译速度。
-</aside>
-<p>
-要使用 ccache,请在源代码树的根目录下执行以下命令:
-</p>
-<pre class="devsite-click-to-copy">
-<code class="devsite-terminal">export USE_CCACHE=1</code>
-<code class="devsite-terminal">export CCACHE_DIR=/&lt;path_of_your_choice&gt;/.ccache</code>
-<code class="devsite-terminal">prebuilts/misc/linux-x86/ccache/ccache -M 50G</code>
-</pre>
-<p>
-建议的缓存大小为 50G 到 100G。请将以下内容添加到 <code>.bashrc</code>(或等同文件)中:
-</p>
-<pre class="devsite-click-to-copy">
-export USE_CCACHE=1
-</pre>
-<p>
-默认情况下,缓存将存储在 <code>~/.ccache</code> 下。如果您的主目录位于 NFS 或一些其他的非本地文件系统中,您还需要在 <code>.bashrc</code> 文件中指定目录。
-</p>
-<p>
-在 Mac OS 中,您应将 <code>linux-x86</code> 替换成 <code>darwin-x86</code>:
-</p>
-<pre class="devsite-click-to-copy">
-prebuilts/misc/darwin-x86/ccache/ccache -M 50G
-</pre>
-<p>
-在编译 Ice Cream Sandwich (4.0.x) 或更低版本时,ccache 位于其他位置:
-</p>
-<pre class="devsite-click-to-copy">
-prebuilt/linux-x86/ccache/ccache -M 50G
-</pre>
-<p>
-该设置会存储在 CCACHE_DIR 中,并且为永久设置。
-</p>
-<p>
-在 Linux 中,您可以运行以下命令来观看使用 ccache 时的情况:
-</p>
-<pre class="devsite-terminal devsite-click-to-copy">
-watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s
-</pre>
-
<h2 id="next-download-the-source">下一篇:下载源代码</h2>
<p>
编译环境已准备就绪!请继续阅读<a href="downloading.html">下载源代码</a>一文。
diff --git a/zh-cn/setup/build/jack.html b/zh-cn/setup/build/jack.html
index b728f683..a8455132 100644
--- a/zh-cn/setup/build/jack.html
+++ b/zh-cn/setup/build/jack.html
@@ -20,25 +20,16 @@
limitations under the License.
-->
-<aside class="warning"><strong>警告</strong>:在 <a href="https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html" class="external">2017 年 3 月 14 日公告</a>发布之后,Jack 工具链已被弃用。虽然您可以继续使用 Jack,但我们强烈建议您使用最新的 <a href="https://developer.android.com/studio/preview/index.html" class="external">Android Studio 预览版</a>,该版本可为内置到默认工具链中的 <a href="https://developer.android.com/studio/preview/features/java8-support.html" class="external">Java 8 语言功能</a>提供更好的支持。</aside>
+<aside class="warning"><strong>警告</strong>:在 <a href="https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html" class="external">2017 年 3 月 14 日公告</a>发布之后,Jack 工具链已被弃用。Jack 是 Android 6.0–8.1 的默认 Android 编译工具链。</aside>
-<p>Jack 是一种 Android 工具链,用于将 Java 源代码编译成 Android dex 字节码。它取代了之前由 javac、ProGuard、jarjar 和 dx 等多种工具组成的 Android 工具链。由于 Jack 是 Android 6.x 的默认 Android 编译工具链,因此要使用 Jack,您只需使用标准的 Makefile 命令来编译源代码树或您的项目即可,无需进行其他任何操作。</p>
+<p>Jack 是一种 Android 工具链,用于将 Java 源代码编译成 Android dex 字节码。要使用 Jack,您只需使用标准的 Makefile 命令来编译源代码树或您的项目即可,无需进行任何其他操作。Android 8.1 是使用 Jack 的最后一个版本。</p>
-<h2 class="overview">Jack 简介</h2>
-<p>Jack 工具链具有以下优势:</p>
+<h2 id="overview">Jack 简介</h2>
+<p>Jack 的工作原理如下:</p>
<img src="../images/jack_overview.png" alt="Jack 概览"/>
<figcaption><strong>图 1.</strong> Jack 概览。</figcaption>
-<ul>
-<li><strong>完全开放的源代码</strong>。Jack 是在 AOSP 中提供的;我们欢迎用户贡献内容。</li>
-<li><strong>提高编译速度</strong>。Jack 提供以下具体支持来缩短编译时间:dex 预处理、增量编译和 Jack 编译服务器。</li>
-<li><strong>能够处理以下任务:压缩、混淆、重新打包和多 dex 处理</strong>。
-不再需要使用单独的软件包(如 ProGuard)。</li>
-</ul>
-
-<p>从 Android 7.0 起,Jack 支持使用 JaCoCo 衡量代码覆盖率。如需了解详情,请参阅<a href="https://android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-code-coverage.md" class="external">使用 JaCoCo 衡量代码覆盖率</a>和 <a href="https://developer.android.com/preview/j8-jack.html" class="external">Java 8 语言功能</a>。</p>
-
<h3 id="jack_library">Jack 库格式</h3>
<p>Jack 具有自己的 .jack 文件格式,其中包含相应库的预编译 dex 代码,可实现更快速的编译(dex 预处理)。</p>
@@ -55,7 +46,7 @@
<h2 id="using_jack">Jack 编译服务器</h2>
-<aside class="note"><strong>注意</strong>:以下说明仅适用于在 Android 6.x 中使用 Jack 的情况;如需关于在 Android 7.x 及更高版本中使用 Jack 的说明,请参阅 <a href="https://android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-server.md" class="external">Jack 服务器文档</a>。</aside>
+<aside class="note"><strong>注意</strong>:以下说明仅适用于在 Android 6.x 中使用 Jack 的情况;如需关于在 Android 7.x 和 8.x 中使用 Jack 的说明,请参阅 <a href="https://android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-server.md" class="external">Jack 服务器文档</a>。</aside>
<p>首次使用 Jack 时,它会在您的计算机上启动一个本地 Jack 编译服务器。该服务器:</p>
@@ -121,10 +112,6 @@
要解决这种问题,请使用 <code>jack-admin kill-server</code> 停止 Jack 后台服务器,然后移除临时目录(<code>/tmp</code> 或 <code>$TMPDIR</code>)的 <code>jack-$USER</code> 中包含的临时目录。
</td>
</tr>
-<tr>
-<td>其他问题</td>
-<td>要报告错误或请求功能,请使用 <a href="http://b.android.com" class="external">http://b.android.com</a> 中的公开问题跟踪工具。使用 <a href="https://code.google.com/p/android/issues/entry?template=Jack%20bug%20report" class="external">Jack 工具错误报告</a>或 <a href="https://code.google.com/p/android/issues/entry?template=Jack%20feature%20request" class="external">Jack 工具功能请求</a>模板,并记得将 Jack 日志附到错误报告中。</td>
-</tr>
</tbody></table>
<h3 id="jack_log">查找 Jack 日志</h3>
@@ -154,7 +141,7 @@ unset ANDROID_JACK_EXTRA_ARGS
<h3 id="predexing">dex 预处理</h3>
-<p>在生成 Jack 库文件时,系统会生成该库的 .dex 文件并将其作为 dex 预处理文件存储在 .jack 库文件中。在进行编译时,Jack 会重复使用每个库中的 dex 预处理文件。所有库均会经过 dex 预处理:</p>
+<p>在生成 Jack 库文件时,系统会生成该库的 <code>.dex</code> 文件并将其作为 dex 预处理文件存储在 <code>.jack</code> 库文件中。在进行编译时,Jack 会重复使用每个库中的 dex 预处理文件。所有库均会经过 dex 预处理:</p>
<img src="../images/jack_predex.png" alt="包含 dex 预处理文件的 Jack 库"/>
<figcaption><strong>图 4.</strong> 包含 dex 预处理文件的 Jack 库。</figcaption>
@@ -249,7 +236,7 @@ unset ANDROID_JACK_EXTRA_ARGS
<h3 id="repackaging">重新打包</h3>
-<p>Jack 使用 jarjar 配置文件来进行重新打包。虽然 Jack 与“rule”规则类型兼容,但与“zap”或“keep”规则类型不兼容。如果您需要使用“zap”或“keep”规则类型,请提交功能请求,并在其中说明您在应用中如何使用该功能。</p>
+<p>Jack 使用 jarjar 配置文件来进行重新打包。虽然 Jack 与“rule”规则类型兼容,但与“zap”或“keep”规则类型不兼容。</p>
<h3 id="multidex_support">多 dex 处理支持</h3>
diff --git a/zh-cn/setup/build/known-issues.html b/zh-cn/setup/build/known-issues.html
index 06ce270d..3b094423 100644
--- a/zh-cn/setup/build/known-issues.html
+++ b/zh-cn/setup/build/known-issues.html
@@ -20,9 +20,9 @@
limitations under the License.
-->
- <p>尽管我们一直万分谨慎,但 Android 源代码有时还是会出现一些小问题。本页详细介绍了您在尝试同步 Android 源代码时可能会遇到的一些已知问题。
+<p>尽管我们一直万分谨慎,但 Android 源代码有时还是会出现一些小问题。本页详细介绍了您在尝试同步 Android 源代码时可能会遇到的一些已知问题。</p>
-</p><h2 id="difficulties-syncing-the-source-code-proxy-issues">
+<h2 id="difficulties-syncing-the-source-code-proxy-issues">
同步源代码时遇到的问题(代理问题)</h2>
<p><strong>症状</strong>:<code>repo init</code> 或 <code>repo sync</code> 失败,并显示 HTTP 错误,通常为 403 或 500。</p>
<p><strong>原因</strong>:有很多可能的原因,大多数情况下都与 HTTP 代理有关,这些代理无法顺利传输大量数据。</p>
diff --git a/zh-cn/setup/build/requirements.html b/zh-cn/setup/build/requirements.html
index 7caa8449..721c4f8e 100644
--- a/zh-cn/setup/build/requirements.html
+++ b/zh-cn/setup/build/requirements.html
@@ -30,7 +30,7 @@
<ul>
<li>如果是 Android 2.3.x (Gingerbread) 及更高版本(包括 master 分支),需要使用 64 位环境。如果是较低的版本,则可以在 32 位系统中进行编译。
</li>
- <li>如果要检出代码,至少需要 100GB 可用磁盘空间;如果要进行编译,则还需要 150GB。如果要进行多次编译或使用 ccache,则需要更多空间。
+ <li>如果要检出代码,至少需要 100GB 可用磁盘空间;如果要进行编译,则还需要 150GB。如果要进行多次编译,则需要更多空间。
</li>
<li>如果在虚拟机中运行 Linux,则至少需要 16GB 的 RAM/交换空间。
</li>
diff --git a/zh-cn/setup/contribute/report-bugs.html b/zh-cn/setup/contribute/report-bugs.html
index 1f4c21e9..67a1eb0c 100644
--- a/zh-cn/setup/contribute/report-bugs.html
+++ b/zh-cn/setup/contribute/report-bugs.html
@@ -106,11 +106,6 @@ Android 问题跟踪器包含多种子组件,这些子组件分属大量与 An
<td><a href="https://issuetracker.google.com/issues?q=componentid:316045%2B">免安装应用</a></td>
<td><a href="https://issuetracker.google.com/issues/new?component=316045"><i class="material-icons">bug_report</i></a></td>
</tr>
-
- <tr>
- <td><a href="https://issuetracker.google.com/issues?q=componentid:192694%2B">Jack</a></td>
- <td><a href="https://issuetracker.google.com/issues/new?component=192694"><i class="material-icons">bug_report</i></a></td>
- </tr>
<tr>
<td><a href="https://issuetracker.google.com/issues?q=componentid:192710%2B">Libcore</a></td>
<td><a href="https://issuetracker.google.com/issues/new?component=192710"><i class="material-icons">bug_report</i></a></td>
diff --git a/zh-cn/setup/develop/new-device.html b/zh-cn/setup/develop/new-device.html
index c3f7fb73..6964d6c8 100644
--- a/zh-cn/setup/develop/new-device.html
+++ b/zh-cn/setup/develop/new-device.html
@@ -136,7 +136,9 @@ vendor/foobar/overlay/frameworks/base/core/res/res/config.xml
为 Nexus 6 实施了一个名为 <code>shamu</code> 的主设备配置。根据此设备配置创建了一个产品以及一个产品定义 Makefile,该 Makefile 用于声明关于设备的产品特定信息,例如名称和型号。您可以查看 <code>device/moto/shamu</code> 目录,了解所有相关配置的具体设置方式。
</p>
<h3 id="makefiles">编写 Makefile</h3>
-<p>以下步骤介绍了如何采用与设置 Nexus 6 产品线类似的方式设置产品 Makefile:</p>
+<p>
+以下步骤介绍了如何采用与设置 Nexus 6 产品线类似的方式设置产品 Makefile:
+</p>
<ol>
<li>为您的产品创建 <code>device/&lt;company_name&gt;/&lt;device_name&gt;</code> 目录,例如 <code>device/moto/shamu</code>。该目录中将包含您设备的源代码以及编译这些代码所需的 Makefile。
</li>
@@ -144,8 +146,7 @@ vendor/foobar/overlay/frameworks/base/core/res/res/config.xml
<li>创建一个用于声明设备所需文件和模块的 <code>device.mk</code> Makefile。有关示例,请参阅 <code>device/moto/shamu/device.mk</code>。
</li>
- <li>创建一个产品定义 Makefile,以便基于设备创建具体产品。以下示例 Makefile 来自于 <code>device/moto/shamu/aosp_shamu.mk</code>。
-请注意,该产品会通过 Makefile 沿用 <code>device/moto/shamu/device.mk</code> 和 <code>vendor/moto/shamu/device-vendor.mk</code> 文件中的内容,同时还会声明产品特定信息,例如名称、品牌和型号。
+ <li>创建一个产品定义 Makefile,以便基于设备创建具体产品。以下示例 Makefile 来自于 <code>device/moto/shamu/aosp_shamu.mk</code>。请注意,该产品会通过 Makefile 沿用 <code>device/moto/shamu/device.mk</code> 和 <code>vendor/moto/shamu/device-vendor.mk</code> 文件中的内容,同时还会声明产品特定信息,例如名称、品牌和型号。
<pre class="devsite-click-to-copy">
# Inherit from the common Open Source product configuration
@@ -190,8 +191,7 @@ PRODUCT_MAKEFILES := \
</pre>
</li>
- <li>创建一个包含主板特定配置的 <code>BoardConfig.mk</code> Makefile。
-有关示例,请参阅 <code>device/moto/shamu/BoardConfig.mk</code>。
+ <li>创建一个包含主板特定配置的 <code>BoardConfig.mk</code> Makefile。有关示例,请参阅 <code>device/moto/shamu/BoardConfig.mk</code>。
</li>
<li>创建一个 <code>vendorsetup.sh</code> 文件,以便将您的产品(“午餐套餐”)与<a href="#build-variants">编译变体</a>(使用短划线将两者分隔开)一起添加到细分版本中。例如:<pre class="devsite-click-to-copy">
@@ -204,7 +204,8 @@ add_lunch_combo <var>&lt;PRODUCT_NAME&gt;</var>-userdebug
</ol>
<h3 id="prod-def">设置产品定义变量</h3>
-<p>产品特定变量在产品的 Makefile 中定义。在产品定义文件中维护的变量包括:</p>
+<p>
+产品特定变量在产品的 Makefile 中定义。在产品定义文件中维护的变量包括:</p>
<table>
<tbody>
<tr>
@@ -234,7 +235,8 @@ add_lunch_combo <var>&lt;PRODUCT_NAME&gt;</var>-userdebug
<tr>
<td>PRODUCT_COPY_FILES</td>
<td>
-字词列表,例如 <code>source_path:destination_path</code>。在编译相应产品时,应将源路径下的文件复制到目标路径。config/Makefile 中定义了针对复制步骤的规则</td>
+字词列表,例如 <code>source_path:destination_path</code>。在编译相应产品时,应将源路径下的文件复制到目标路径。config/Makefile 中定义了针对复制步骤的规则
+ </td>
<td></td>
</tr>
<tr>
diff --git a/zh-cn/setup/start/build-numbers.html b/zh-cn/setup/start/build-numbers.html
index 3c5d7320..f39f4f63 100644
--- a/zh-cn/setup/start/build-numbers.html
+++ b/zh-cn/setup/start/build-numbers.html
@@ -184,6 +184,7 @@
<li>第二个字母是分支代码,Google 用它来表示细分版本所属的确切代号分支。按照惯例,R 表示主要版本分支。</li>
<li>第三个字母和后面的两个数字是日期代码。字母表示季度(A = 2009 年第 1 季度,F = 2010 年第 2 季度,以此类推)。两个数字表示相应季度内的第某天(F85 表示 2010 年 6 月 24 日)。它并不一定是细分版本的确切构建日起,因为 Google 常常会在现有细分版本中增加细微的更改,并在新细分版本中重复使用与现有细分版本相同的日期代码。</li>
<li>末尾字母表示具有相同日期代码的不同版本,从 A 开始(A 并不会显示,通常会为了简洁而省略)。</li>
+</ul>
<h2 id="source-code-tags-and-builds">源代码标记和细分版本</h2>
<p>下表完整列出了从 Donut 开始的标记和细分版本。
@@ -202,6 +203,60 @@
</thead>
<tbody>
<tr>
+ <td>OPM4.171019.016.C1</td>
+ <td>android-8.1.0_r29</td>
+ <td>Oreo</td>
+ <td>Pixel C</td>
+ </tr>
+ <tr>
+ <td>OPM4.171019.016.B1</td>
+ <td>android-8.1.0_r28</td>
+ <td>Oreo</td>
+ <td>Pixel XL、Pixel、Pixel 2 XL、Pixel 2</td>
+ </tr>
+ <tr>
+ <td>OPM4.171019.016.A1</td>
+ <td>android-8.1.0_r27</td>
+ <td>Oreo</td>
+ <td>Nexus 5X</td>
+ </tr>
+ <tr>
+ <td>OPM2.171019.029.B1</td>
+ <td>android-8.1.0_r26</td>
+ <td>Oreo</td>
+ <td>Pixel 2 XL、Pixel 2</td>
+ </tr>
+ <tr>
+ <td>OPM4.171019.015.A1</td>
+ <td>android-8.1.0_r23</td>
+ <td>Oreo</td>
+ <td>Pixel 2 XL、Pixel 2</td>
+ </tr>
+ <tr>
+ <td>OPM5.171019.019</td>
+ <td>android-8.1.0_r22</td>
+ <td>Oreo</td>
+ <td>Nexus 6P</td>
+ </tr>
+ <tr>
+ <td>OPM3.171019.019</td>
+ <td>android-8.1.0_r21</td>
+ <td>Oreo</td>
+ <td>Nexus 6P</td>
+ </tr>
+ <tr>
+ <td>OPM2.171019.029</td>
+ <td>android-8.1.0_r20</td>
+ <td>Oreo</td>
+ <td>Pixel 2 XL、Pixel 2、Pixel XL、Pixel、Nexus 5X</td>
+ </tr>
+ <tr>
+ <td>OPM1.171019.026</td>
+ <td>android-8.1.0_r19</td>
+ <td>Oreo</td>
+ <td>Pixel C</td>
+ </tr>
+ <tr>
<td>OPM5.171019.017</td>
<td>android-8.1.0_r18</td>
<td>Oreo</td>
@@ -2399,4 +2454,4 @@ repo forall -pc 'git log --no-merges --oneline android-4.4.2_r2..android-4.4.2_r
<p>要使用其他版本,请切换 <code>git checkout</code> 参数,还可以在必要时切换 <code>repo init</code> 中的 <code>-m</code> 参数。对于非 GPL 项目,<code>git checkout</code> 命令会返回错误,因为它找不到相应的标记。</p>
-</ul></body></html> \ No newline at end of file
+</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/start/licenses.html b/zh-cn/setup/start/licenses.html
index 497ad6ce..cbe03260 100644
--- a/zh-cn/setup/start/licenses.html
+++ b/zh-cn/setup/start/licenses.html
@@ -30,9 +30,11 @@ AOSP 的首选许可是 <a href="http://www.apache.org/licenses/LICENSE-2.0" cla
<h2 id="contributor-license-grants">贡献者许可协议</h2>
<p><em></em>为 AOSP 提供想法、代码或文档的所有个人贡献者(即仅以个人名义做贡献的贡献者)都需要填写、签署并提交《<a href="https://cla.developers.google.com/about/google-individual" class="external">个人贡献者许可协议</a>》。该协议可通过<a href="https://android-review.googlesource.com/#/settings/agreements" class="external">代码审核工具</a>在线签署。该协议明确规定了他们为 AOSP 贡献知识产权内容时遵循的条款。该许可既是为了保护贡献者,也是为了保护该项目;它不会影响贡献者将贡献内容用于任何其他用途的权利。
</p>
-<p><em></em>对于已指派员工参与 AOSP 的企业(或其他实体),则需要签署《<a href="https://cla.developers.google.com/about/google-corporate" class="external">企业贡献者许可协议</a>》。该版本的协议中规定,企业可以对其指派的员工提交的贡献内容进行授权,并可以授予版权和专利许可。签署《企业贡献者许可协议》并不意味着任何开发者无需再以个人名义签署《个人贡献者许可协议》。所有开发者都必须签署个人协议,以涵盖他们贡献的任何不归签署《企业贡献者许可协议》的企业所有的内容。<em></em>
+<p>
+<em></em>对于已指派员工参与 AOSP 的企业(或其他实体),则需要签署《<a href="https://cla.developers.google.com/about/google-corporate" class="external">企业贡献者许可协议</a>》。该版本的协议中规定,企业可以对其指派的员工提交的贡献内容进行授权,并可以授予版权和专利许可。签署《企业贡献者许可协议》并不意味着任何开发者无需再以个人名义签署《个人贡献者许可协议》。所有开发者都必须签署个人协议,以涵盖他们贡献的任何不归签署《企业贡献者许可协议》的企业所有的内容。<em></em>
</p>
-<p>我们的协议是根据 <a href="http://www.apache.org">Apache 软件基金会</a>所用的协议(可在 <a href="http://www.apache.org/licenses/" class="external">Apache 网站</a>上找到)制定的。
+<p>
+我们的协议是根据 <a href="http://www.apache.org">Apache 软件基金会</a>所用的协议(可在 <a href="http://www.apache.org/licenses/" class="external">Apache 网站</a>上找到)制定的。
</p>
<h2 id="why-apache-software-license">为什么使用 Apache Software License?</h2>
<p>
diff --git a/zh-tw/security/bulletin/2018-02-01.html b/zh-tw/security/bulletin/2018-02-01.html
index dc3e031f..121bb7da 100644
--- a/zh-tw/security/bulletin/2018-02-01.html
+++ b/zh-tw/security/bulletin/2018-02-01.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>Android Security Bulletin—February 2018</title>
+ <title>Android 安全性公告 - 2018 年 2 月</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -28,7 +28,7 @@ Android 的合作夥伴在至少一個月之前已收到公告中所有問題的
<p>
在這些問題中,最嚴重的就是媒體架構中「最高」等級的安全性漏洞。遠端攻擊者可利用這類漏洞,在獲得授權的程序環境內透過特製檔案執行任何程式碼。<a href="/security/overview/updates-resources.html#severity">嚴重程度評定標準</a>是假設平台與服務的因應防護措施基於開發作業的需求而被關閉,或是遭到有心人士破解,然後推算當有人惡意運用漏洞時,使用者的裝置會受到多大的影響,據此評定漏洞的嚴重程度。
</p>
-<p>針對這些新發現的漏洞,我們目前尚未收到任何客戶回報相關的漏洞利用或濫用案例。如果想進一步瞭解 <a href="#mitigations">Android 安全性平台防護措施</a>和 Google Play 安全防護機制如何加強 Android 平台的安全性,請參閱 <a href="/security/enhancements/index.html">Android 和 Google Play 安全防護機制所提供的因應措施</a>一節。
+<p>針對這些新發現的漏洞,我們目前尚未收到任何客戶回報相關的漏洞濫用案例。如果想進一步瞭解 <a href="#mitigations">Android 安全性平台防護措施</a>和 Google Play 安全防護機制如何加強 Android 平台的安全性,請參閱 <a href="/security/enhancements/index.html">Android 和 Google Play 安全防護機制所提供的因應措施</a>。
</p>
<p class="note">
<strong>注意:</strong><a href="/security/bulletin/pixel/2018-02-01">2018 年 2 月 Pixel/Nexus 安全性公告</a>提供了和 Google 裝置的最新無線下載更新 (OTA) 與韌體映像檔有關的資訊。
@@ -450,7 +450,7 @@ QC-CR#2114187</a></td>
</tr>
<tr>
<td>DoS</td>
- <td>拒絕服務</td>
+ <td>阻斷服務</td>
</tr>
<tr>
<td>無</td>
@@ -458,7 +458,7 @@ QC-CR#2114187</a></td>
</tr>
</tbody></table>
<p>
-<strong>4. 「參考資料」<em></em>欄底下列出的識別碼代表什麼意義?</strong>
+<strong>4.「參考資料」<em></em>欄底下列出的識別碼代表什麼意義?</strong>
</p>
<p>
資安漏洞詳情表格中「參考資料」<em></em>欄底下的項目可能會包含一個前置字串,用以表示該參考資料值所屬的機構或公司。
@@ -492,7 +492,7 @@ QC-CR#2114187</a></td>
</tr>
</tbody></table>
<p id="asterisk">
-<strong>5. 「參考資料」<em></em>欄中 Android 錯誤 ID 旁邊的星號 (*) 代表什麼意義?</strong>
+<strong>5.「參考資料」<em></em>欄中 Android 錯誤 ID 旁邊的星號 (*) 代表什麼意義?</strong>
</p>
<p>
在「參考資料」<em></em>欄中 Android 錯誤 ID 旁邊標上星號 (*) 代表該問題並未公開,相關的更新通常是直接整合在最新的 Nexus 裝置專用驅動程式的安裝檔中。您可以前往 <a href="https://developers.google.com/android/nexus/drivers">Google Developers 網站</a>下載這些驅動程式。
@@ -531,7 +531,7 @@ QC-CR#2114187</a></td>
<tr>
<td>1.3</td>
<td>2018 年 4 月 2 日</td>
- <td>將 CVE-2017-15817 從 2 月 Android 安全性公告移至 2 月 Pixel 安全性公告</td>
+ <td>將 CVE-2017-15817 從 2 月 Android 安全性公告移至 2 月 Pixel 安全性公告。</td>
</tr>
</tbody></table>
diff --git a/zh-tw/security/bulletin/pixel/2018-01-01.html b/zh-tw/security/bulletin/pixel/2018-01-01.html
index a19417ea..51d39c5b 100644
--- a/zh-tw/security/bulletin/pixel/2018-01-01.html
+++ b/zh-tw/security/bulletin/pixel/2018-01-01.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>Pixel / Nexus 安全性公告 - 2018 年 1 月</title>
+ <title>Pixel/Nexus 安全性公告 - 2018 年 1 月</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -659,7 +659,7 @@ QC-CR#2078342</a></td>
2018-01-05 之後的安全性修補程式等級完全解決了與 2018-01-05 安全性修補程式等級及所有先前修補程式等級相關的問題。請參閱 <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">Pixel 與 Nexus 更新時間表</a>中的操作說明,瞭解如何查看裝置的安全性修補程式等級。
</p>
<p id="type">
-<strong>2. 「類型」<em></em>欄中的項目代表什麼意義?</strong>
+<strong>2.「類型」<em></em>欄中的項目代表什麼意義?</strong>
</p>
<p>
資安漏洞詳情表格中「類型」<em></em>欄中的項目代表的是安全性漏洞的類別。
@@ -685,7 +685,7 @@ QC-CR#2078342</a></td>
</tr>
<tr>
<td>DoS</td>
- <td>拒絕服務</td>
+ <td>阻斷服務</td>
</tr>
<tr>
<td>無</td>
@@ -727,7 +727,7 @@ QC-CR#2078342</a></td>
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 「參考資料」<em></em>欄中 Android 錯誤 ID 旁邊的星號 (*) 代表什麼意義?</strong>
+<strong>4.「參考資料」<em></em>欄中 Android 錯誤 ID 旁邊的星號 (*) 代表什麼意義?</strong>
</p>
<p>
在「參考資料」<em></em>欄中 Android 錯誤 ID 旁邊標上星號 (*) 代表該問題並未公開,相關的更新通常是直接整合在最新的 Nexus 裝置專用驅動程式的安裝檔中。您可以前往 <a href="https://developers.google.com/android/nexus/drivers">Google Developers 網站</a>下載這些驅動程式。