aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--en/_index.yaml39
-rw-r--r--en/compatibility/_toc-compatibility.yaml78
-rw-r--r--en/compatibility/_toc-tests.yaml4
-rw-r--r--en/compatibility/_translation.yaml3
-rw-r--r--en/compatibility/cts/audio-framework.html2
-rw-r--r--en/compatibility/cts/secure-element.md25
-rw-r--r--en/compatibility/tests/development/atest.md418
-rw-r--r--en/compatibility/tests/development/index.md10
-rw-r--r--en/compatibility/tests/development/instr-app-e2e.md14
-rw-r--r--en/compatibility/tests/development/instr-self-e2e.md12
-rw-r--r--en/compatibility/tests/development/instrumentation.md3
-rw-r--r--en/compatibility/tests/development/native-func-e2e.md2
-rw-r--r--en/compatibility/tests/development/native.md4
-rw-r--r--en/compatibility/tests/development/test-mapping.md270
-rw-r--r--en/compatibility/tests/index.md2
-rw-r--r--en/devices/_toc-graphics.yaml2
-rw-r--r--en/devices/accessories/headset/usb-headset-spec.html11
-rw-r--r--en/devices/architecture/vintf/objects.html5
-rw-r--r--en/devices/architecture/vndk/build-system.html211
-rw-r--r--en/devices/architecture/vndk/linker-namespace.html496
-rw-r--r--en/devices/graphics/images/winscope_screenshot.pngbin0 -> 299596 bytes
-rw-r--r--en/devices/graphics/tracing-win-transitions.html137
-rw-r--r--en/devices/tech/admin/enterprise-telephony.html49
-rw-r--r--en/devices/tech/config/update.html20
-rw-r--r--en/devices/tech/connect/esim-overview.md10
-rw-r--r--en/legal.html2
-rw-r--r--en/security/_toc-bulletins.yaml4
-rw-r--r--en/security/apksigning/index.html36
-rw-r--r--en/security/bulletin/2018-12-01.html848
-rw-r--r--en/security/bulletin/2018.html14
-rw-r--r--en/security/bulletin/_translation.yaml2
-rw-r--r--en/security/bulletin/index.html22
-rw-r--r--en/security/bulletin/pixel/2018-12-01.html325
-rw-r--r--en/security/bulletin/pixel/2018.html15
-rw-r--r--en/security/bulletin/pixel/index.html15
-rw-r--r--en/security/overview/acknowledgements.html54
-rw-r--r--en/setup/_toc-build.yaml2
-rw-r--r--en/setup/build/building-kernels.html2
-rw-r--r--en/setup/build/dashboard.html64
-rw-r--r--en/setup/contribute/code-style.html1396
-rw-r--r--en/setup/images/dashboard.pngbin0 -> 92126 bytes
-rw-r--r--en/setup/start/build-numbers.html36
-rw-r--r--en/setup/start/p-release-notes.md7
-rw-r--r--ja/security/bulletin/2018-08-01.html2
-rw-r--r--ja/security/bulletin/2018-11-01.html99
-rw-r--r--ja/security/bulletin/2018-12-01.html706
-rw-r--r--ja/security/bulletin/pixel/2018-01-01.html3
-rw-r--r--ja/security/bulletin/pixel/2018-04-01.html8
-rw-r--r--ja/security/bulletin/pixel/2018-06-01.html2
-rw-r--r--ja/security/bulletin/pixel/2018-07-01.html11
-rw-r--r--ja/security/bulletin/pixel/2018-08-01.html4
-rw-r--r--ja/security/bulletin/pixel/2018-09-01.html4
-rw-r--r--ja/security/bulletin/pixel/2018-11-01.html29
-rw-r--r--ja/security/bulletin/pixel/2018-12-01.html274
-rw-r--r--ja/security/bulletin/pixel/2018.html16
-rw-r--r--ko/security/bulletin/2018-08-01.html4
-rw-r--r--ko/security/bulletin/2018-09-01.html59
-rw-r--r--ko/security/bulletin/2018-11-01.html101
-rw-r--r--ko/security/bulletin/2018-12-01.html802
-rw-r--r--ko/security/bulletin/2018.html16
-rw-r--r--ko/security/bulletin/index.html18
-rw-r--r--ko/security/bulletin/pixel/2018-01-01.html4
-rw-r--r--ko/security/bulletin/pixel/2018-02-01.html4
-rw-r--r--ko/security/bulletin/pixel/2018-03-01.html4
-rw-r--r--ko/security/bulletin/pixel/2018-04-01.html4
-rw-r--r--ko/security/bulletin/pixel/2018-06-01.html8
-rw-r--r--ko/security/bulletin/pixel/2018-07-01.html13
-rw-r--r--ko/security/bulletin/pixel/2018-08-01.html6
-rw-r--r--ko/security/bulletin/pixel/2018-09-01.html6
-rw-r--r--ko/security/bulletin/pixel/2018-11-01.html29
-rw-r--r--ko/security/bulletin/pixel/2018-12-01.html309
-rw-r--r--ru/security/bulletin/2018-08-01.html2
-rw-r--r--ru/security/bulletin/2018-11-01.html98
-rw-r--r--ru/security/bulletin/2018-12-01.html709
-rw-r--r--ru/security/bulletin/pixel/2018-01-01.html4
-rw-r--r--ru/security/bulletin/pixel/2018-02-01.html2
-rw-r--r--ru/security/bulletin/pixel/2018-03-01.html2
-rw-r--r--ru/security/bulletin/pixel/2018-05-01.html4
-rw-r--r--ru/security/bulletin/pixel/2018-11-01.html27
-rw-r--r--ru/security/bulletin/pixel/2018-12-01.html276
-rw-r--r--ru/security/bulletin/pixel/2018.html122
-rw-r--r--ru/security/bulletin/pixel/index.html150
-rw-r--r--zh-cn/compatibility/9.0/versions.html29
-rw-r--r--zh-cn/compatibility/9/android-9-cdd.html (renamed from zh-cn/compatibility/9.0/android-9.0-cdd.html)0
-rw-r--r--zh-cn/compatibility/cts/audio-framework.html2
-rw-r--r--zh-cn/compatibility/cts/camera-wfov-box-assembly.html2
-rw-r--r--zh-cn/compatibility/cts/downloads.html54
-rw-r--r--zh-cn/compatibility/cts/run.html4
-rw-r--r--zh-cn/compatibility/cts/secure-element.html19
-rw-r--r--zh-cn/compatibility/cts/setup.html12
-rw-r--r--zh-cn/compatibility/cts/usb-audio.html2
-rw-r--r--zh-cn/compatibility/overview.html4
-rw-r--r--zh-cn/compatibility/tests/development/atest.html450
-rw-r--r--zh-cn/compatibility/tests/development/blueprints.html72
-rw-r--r--zh-cn/compatibility/tests/development/index.html69
-rw-r--r--zh-cn/compatibility/tests/development/instr-app-e2e.html181
-rw-r--r--zh-cn/compatibility/tests/development/instr-self-e2e.html187
-rw-r--r--zh-cn/compatibility/tests/development/instrumentation.html106
-rw-r--r--zh-cn/compatibility/tests/development/metrics.html55
-rw-r--r--zh-cn/compatibility/tests/development/native-func-e2e.html142
-rw-r--r--zh-cn/compatibility/tests/development/native.html60
-rw-r--r--zh-cn/compatibility/tests/development/test-config.html147
-rw-r--r--zh-cn/compatibility/tests/development/test-mapping.html211
-rw-r--r--zh-cn/compatibility/tests/index.html144
-rw-r--r--zh-cn/compatibility/vts/codelab-video.html470
-rw-r--r--zh-cn/compatibility/vts/hal-testability.html4
-rw-r--r--zh-cn/compatibility/vts/index.html3
-rw-r--r--zh-cn/devices/accessories/headset/usb-headset-spec.html10
-rw-r--r--zh-cn/devices/architecture/dto/optimize.html4
-rw-r--r--zh-cn/devices/architecture/kernel/modular-kernels.html9
-rw-r--r--zh-cn/devices/architecture/vintf/match-rules.html4
-rw-r--r--zh-cn/devices/architecture/vndk/linker-namespace.html2
-rw-r--r--zh-cn/devices/bluetooth/asha.html41
-rw-r--r--zh-cn/devices/bootloader/flashing-updating.html10
-rw-r--r--zh-cn/devices/bootloader/partitions-images.html2
-rw-r--r--zh-cn/devices/bootloader/product-partitions.html2
-rw-r--r--zh-cn/devices/bootloader/system-as-root.html4
-rw-r--r--zh-cn/devices/graphics/build-tests.html2
-rw-r--r--zh-cn/devices/graphics/run-tests.html2
-rw-r--r--zh-cn/devices/graphics/tracing-win-transitions.html120
-rw-r--r--zh-cn/devices/media/oem.html2
-rw-r--r--zh-cn/devices/sensors/batching.html4
-rw-r--r--zh-cn/devices/sensors/power-use.html2
-rw-r--r--zh-cn/devices/sensors/sensor-stack.html14
-rw-r--r--zh-cn/devices/sensors/versioning.html2
-rw-r--r--zh-cn/devices/tech/config/filesystem.html3
-rw-r--r--zh-cn/devices/tech/config/update.html12
-rw-r--r--zh-cn/devices/tech/connect/block-numbers.html5
-rw-r--r--zh-cn/devices/tech/connect/carrier-wifi.html26
-rw-r--r--zh-cn/devices/tech/connect/connect_tests.html6
-rw-r--r--zh-cn/devices/tech/connect/data-plans.html14
-rw-r--r--zh-cn/devices/tech/connect/esim-euicc-api.html8
-rw-r--r--zh-cn/devices/tech/connect/esim-modem-requirements.html8
-rw-r--r--zh-cn/devices/tech/connect/esim-overview.html36
-rw-r--r--zh-cn/devices/tech/connect/ims.html12
-rw-r--r--zh-cn/devices/tech/connect/third-party-call-apps.html19
-rw-r--r--zh-cn/devices/tech/connect/wifi-aware.html8
-rw-r--r--zh-cn/devices/tech/connect/wifi-debug.html6
-rw-r--r--zh-cn/devices/tech/connect/wifi-hal.html8
-rw-r--r--zh-cn/devices/tech/connect/wifi-overview.html6
-rw-r--r--zh-cn/devices/tech/connect/wifi-rtt.html8
-rw-r--r--zh-cn/devices/tech/connect/wifi-sta-ap-concurrency.html2
-rw-r--r--zh-cn/devices/tech/dalvik/improvements.html2
-rw-r--r--zh-cn/devices/tech/debug/gdb.html16
-rw-r--r--zh-cn/devices/tech/debug/index.html4
-rw-r--r--zh-cn/devices/tech/debug/sanitizers.html2
-rw-r--r--zh-cn/devices/tech/display/display-cutouts.html12
-rw-r--r--zh-cn/devices/tech/display/synched-app-transitions.html12
-rw-r--r--zh-cn/devices/tech/health/deprecation.html15
-rw-r--r--zh-cn/devices/tech/health/implementation.html4
-rw-r--r--zh-cn/devices/tech/health/index.html4
-rw-r--r--zh-cn/devices/tech/ota/ab/ab_implement.html26
-rw-r--r--zh-cn/devices/tech/ota/nonab/device_code.html38
-rw-r--r--zh-cn/devices/tech/ota/sign_builds.html2
-rw-r--r--zh-cn/devices/tech/perf/compatibility-wal.html4
-rw-r--r--zh-cn/devices/tech/power/batteryless.html2
-rw-r--r--zh-cn/devices/tech/power/component.html2
-rw-r--r--zh-cn/devices/tech/power/platform_mgmt.html2
-rw-r--r--zh-cn/devices/tv/reference-tv-app.html6
-rw-r--r--zh-cn/security/advisory/index.html6
-rw-r--r--zh-cn/security/bulletin/2018-07-01.html8
-rw-r--r--zh-cn/security/bulletin/2018-09-01.html70
-rw-r--r--zh-cn/security/bulletin/2018-11-01.html99
-rw-r--r--zh-cn/security/bulletin/2018-12-01.html708
-rw-r--r--zh-cn/security/bulletin/pixel/2018-01-01.html38
-rw-r--r--zh-cn/security/bulletin/pixel/2018-02-01.html35
-rw-r--r--zh-cn/security/bulletin/pixel/2018-03-01.html38
-rw-r--r--zh-cn/security/bulletin/pixel/2018-06-01.html32
-rw-r--r--zh-cn/security/bulletin/pixel/2018-07-01.html9
-rw-r--r--zh-cn/security/bulletin/pixel/2018-09-01.html18
-rw-r--r--zh-cn/security/bulletin/pixel/2018-10-01.html14
-rw-r--r--zh-cn/security/bulletin/pixel/2018-11-01.html42
-rw-r--r--zh-cn/security/bulletin/pixel/2018-12-01.html275
-rw-r--r--zh-cn/security/encryption/file-based.html66
-rw-r--r--zh-cn/security/enhancements/enhancements42.html4
-rw-r--r--zh-cn/security/index.html2
-rw-r--r--zh-cn/security/keystore/tags.html12
-rw-r--r--zh-cn/security/overview/acknowledgements.html215
-rw-r--r--zh-cn/security/overview/app-security.html14
-rw-r--r--zh-cn/security/overview/reports.html30
-rw-r--r--zh-cn/security/selinux/compatibility.html8
-rw-r--r--zh-cn/security/selinux/customize.html10
-rw-r--r--zh-cn/security/selinux/validate.html6
-rw-r--r--zh-cn/setup/build/building-kernels.html25
-rw-r--r--zh-cn/setup/build/jack.html2
-rw-r--r--zh-cn/setup/build/running.html44
-rw-r--r--zh-cn/setup/community.html2
-rw-r--r--zh-cn/setup/contribute/read-bug-reports.html4
-rw-r--r--zh-cn/setup/develop/64-bit-builds.html2
-rw-r--r--zh-cn/setup/start/brands.html2
-rw-r--r--zh-cn/setup/start/p-release-notes.html38
-rw-r--r--zh-cn/setup/start/site-updates.html32
-rw-r--r--zh-tw/security/bulletin/2018-07-01.html2
-rw-r--r--zh-tw/security/bulletin/2018-08-01.html3
-rw-r--r--zh-tw/security/bulletin/2018-09-01.html32
-rw-r--r--zh-tw/security/bulletin/2018-11-01.html99
-rw-r--r--zh-tw/security/bulletin/2018-12-01.html706
-rw-r--r--zh-tw/security/bulletin/pixel/2018-07-01.html9
-rw-r--r--zh-tw/security/bulletin/pixel/2018-11-01.html27
-rw-r--r--zh-tw/security/bulletin/pixel/2018-12-01.html273
200 files changed, 12510 insertions, 2168 deletions
diff --git a/en/_index.yaml b/en/_index.yaml
index 1694a614..e5e42f7b 100644
--- a/en/_index.yaml
+++ b/en/_index.yaml
@@ -45,10 +45,10 @@ landing_page:
items:
- heading: About the Android Open Source Project
description: |
- Android is an open source software stack for mobile devices and a
+ Android is an open source operating system for mobile devices and a
corresponding open source project led by Google. This site and the
Android Open Source Project (AOSP) repository offer the information and
- source code needed to create custom variants of the Android stack, port
+ source code needed to create custom variants of the Android OS, port
devices and accessories to the Android platform, and ensure devices meet
the compatibility requirements that keep the Android ecosystem a healthy
and stable environment for millions of users.
@@ -77,30 +77,29 @@ landing_page:
image_path: /images/android_stack.png
- heading: News
items:
- - heading: November Security Bulletins
+ - heading: Continuous Integration Dashboard
description: >
- The November 2018 Android and Pixel/Nexus Security Bulletins have been
- published along with links to associated fixes and new build numbers
- to support the November security release.
+ The Android Open Source Project (AOSP) has published its continuous integration
+ dashboard.
buttons:
- - label: November 5th, 2018
- path: /security/bulletin/2018-11-01
- - heading: Platform Testing Overview
+ - label: December 14th, 2018
+ path: /setup/build/dashboard
+ - heading: December Security Bulletins
description: >
- The Tests section now contains a thorough introduction
- to all primary test types with end-to-end examples employing the new Soong build system. See
- the Test Development Workflow.
+ The December 2018 Android and Pixel/Nexus Security Bulletins have been
+ published along with links to associated fixes and new build numbers
+ to support the December security release.
buttons:
- - label: November 1st, 2018
- path: /compatibility/tests
- - heading: Android 9 Documentation
+ - label: December 5th, 2018
+ path: /security/bulletin/2018-12-01
+ - heading: Test Mapping Made Easy
description: >
- Android 9 has been released! This site includes documentation for
- implementing the features, improvements, and enhancements
- in the newest version of Android.
+ Test Mapping is a Gerrit-based approach that allows developers to create pre- and
+ post-submit test rules directly in the Android source tree and leave branch and device
+ selection to the test infrastructure.
buttons:
- - label: August 6th, 2018
- path: /setup/start/p-release-notes
+ - label: December 4th, 2018
+ path: /compatibility/tests/development/test-mapping
- classname: devsite-landing-row-100 tf-row-centered
items:
- buttons:
diff --git a/en/compatibility/_toc-compatibility.yaml b/en/compatibility/_toc-compatibility.yaml
index 20f2abb3..3ce35262 100644
--- a/en/compatibility/_toc-compatibility.yaml
+++ b/en/compatibility/_toc-compatibility.yaml
@@ -3,7 +3,77 @@ toc:
path: /compatibility/overview
- title: Compatibility Definition Document
path: /compatibility/cdd/
-- title: CDD in HTML
- path: /compatibility/android-cdd
-- title: CDD in PDF
- path: /compatibility/android-cdd.pdf
+- title: CDDs in HTML
+ section:
+ - title: Android 9 (current)
+ path: /compatibility/9/android-9-cdd
+ - title: Android 8.1
+ path: /compatibility/8.1/android-8.1-cdd
+ - title: Android 8.0
+ path: /compatibility/8.0/android-8.0-cdd
+ - title: Android 7.1
+ path: /compatibility/7.1/android-7.1-cdd
+ - title: Android 7.0
+ path: /compatibility/7.0/android-7.0-cdd
+ - title: Android 6.0
+ path: /compatibility/6.0/android-6.0-cdd
+ - title: Android 5.1
+ path: /compatibility/5.1/android-5.1-cdd
+ - title: Android 5.0
+ path: /compatibility/5.0/android-5.0-cdd
+ - title: Android 4.4
+ path: /compatibility/4.4/android-4.4-cdd
+ - title: Android 4.3
+ path: /compatibility/4.3/android-4.3-cdd
+ - title: Android 4.2
+ path: /compatibility/4.2/android-4.2-cdd
+ - title: Android 4.1
+ path: /compatibility/4.1/android-4.1-cdd
+ - title: Android 4.0
+ path: /compatibility/4.0/android-4.0-cdd
+ - title: Android 2.3
+ path: /compatibility/2.3/android-2.3-cdd
+ - title: Android 2.2
+ path: /compatibility/2.2/android-2.2-cdd
+ - title: Android 2.1
+ path: /compatibility/2.1/android-2.1-cdd
+ - title: Android 1.6
+ path: /compatibility/1.6/android-1.6-cdd
+- title: CDDs as PDF
+ section:
+ - title: Android 9 (current)
+ path: /compatibility/9/android-9-cdd.pdf
+ - title: Android 8.1
+ path: /compatibility/8.1/android-8.1-cdd.pdf
+ - title: Android 8.0
+ path: /compatibility/8.0/android-8.0-cdd.pdf
+ - title: Android 7.1
+ path: /compatibility/7.1/android-7.1-cdd.pdf
+ - title: Android 7.0
+ path: /compatibility/7.0/android-7.0-cdd.pdf
+ - title: Android 6.0
+ path: /compatibility/6.0/android-6.0-cdd.pdf
+ - title: Android 5.1
+ path: /compatibility/5.1/android-5.1-cdd.pdf
+ - title: Android 5.0
+ path: /compatibility/5.0/android-5.0-cdd.pdf
+ - title: Android 4.4
+ path: /compatibility/4.4/android-4.4-cdd.pdf
+ - title: Android 4.3
+ path: /compatibility/4.3/android-4.3-cdd.pdf
+ - title: Android 4.2
+ path: /compatibility/4.2/android-4.2-cdd.pdf
+ - title: Android 4.1
+ path: /compatibility/4.1/android-4.1-cdd.pdf
+ - title: Android 4.0
+ path: /compatibility/4.0/android-4.0-cdd.pdf
+ - title: Android 2.3
+ path: /compatibility/2.3/android-2.3-cdd.pdf
+ - title: Android 2.3.3
+ path: /compatibility/2.3/android-2.3.3-cdd.pdf
+ - title: Android 2.2
+ path: /compatibility/2.2/android-2.2-cdd.pdf
+ - title: Android 2.1
+ path: /compatibility/2.1/android-2.1-cdd.pdf
+ - title: Android 1.6
+ path: /compatibility/1.6/android-1.6-cdd.pdf
diff --git a/en/compatibility/_toc-tests.yaml b/en/compatibility/_toc-tests.yaml
index 03c550c7..6d9d575f 100644
--- a/en/compatibility/_toc-tests.yaml
+++ b/en/compatibility/_toc-tests.yaml
@@ -27,6 +27,10 @@ toc:
path: /compatibility/tests/development/metrics.md
- title: JAR Host Tests
path: /compatibility/tests/development/jar.md
+ - title: Mapping Tests
+ path: /compatibility/tests/development/test-mapping
+ - title: Running Tests (Atest)
+ path: /compatibility/tests/development/atest
- title: Compatibility Test Suite (CTS)
section:
- title: Overview
diff --git a/en/compatibility/_translation.yaml b/en/compatibility/_translation.yaml
index b458dee8..320f9ed7 100644
--- a/en/compatibility/_translation.yaml
+++ b/en/compatibility/_translation.yaml
@@ -17,6 +17,7 @@ ignore_paths:
- /compatibility/8.1/...
- /compatibility/images/...
- /compatibility/source/...
+- /compatibility/android-cdd
enable_continuous_translation: true
title: Android Open Source Project Compatibility tab
description: Translations for SAC compatibility tab
@@ -25,5 +26,5 @@ language:
cc:
- sac-doc-leads+translation@google.com
reviewer:
-- daroberts@google.com
+- gdimino@google.com
product: Android
diff --git a/en/compatibility/cts/audio-framework.html b/en/compatibility/cts/audio-framework.html
index 81d69a75..d0aa2ad1 100644
--- a/en/compatibility/cts/audio-framework.html
+++ b/en/compatibility/cts/audio-framework.html
@@ -353,7 +353,7 @@ have a solid reference to compare the built in microphone against.</p>
</tr>
</table>
-<h2>Audio Frequency Unprocessed Test</h2>
+<h2>Audio frequency unprocessed test</h2>
<p>
For this test, in addition to the USB reference microphone and external
speakers, it is necessary to have access to a Sound Pressure Level Meter (SPL
diff --git a/en/compatibility/cts/secure-element.md b/en/compatibility/cts/secure-element.md
index 86f8d68f..01ea9e18 100644
--- a/en/compatibility/cts/secure-element.md
+++ b/en/compatibility/cts/secure-element.md
@@ -172,7 +172,7 @@ applet with the following application identifiers (AIDs):
</tr>
<tr>
<td>0x00F30E06</td>
- <td>0x6282</td>
+ <td>0x6286</td>
<td>No</td>
</tr>
<tr>
@@ -252,7 +252,7 @@ applet with the following application identifiers (AIDs):
</tr>
<tr>
<td>0x00F30E0A01AA</td>
- <td>0x6282</td>
+ <td>0x6286</td>
<td>No</td>
</tr>
<tr>
@@ -332,7 +332,7 @@ applet with the following application identifiers (AIDs):
</tr>
<tr>
<td>0x00F30E0800</td>
- <td>0x6282</td>
+ <td>0x6286</td>
<td>Yes</td>
</tr>
<tr>
@@ -412,7 +412,7 @@ applet with the following application identifiers (AIDs):
</tr>
<tr>
<td>0x00F30E0C01AA00</td>
- <td>0x6282</td>
+ <td>0x6286</td>
<td>Yes*</td>
</tr>
<tr>
@@ -467,12 +467,12 @@ applet with the following application identifiers (AIDs):
<tr>
<td>0x00C27FFF00</td>
<td>0x9000</td>
- <td>2048</td>
+ <td>32767</td>
</tr>
<tr>
<td>0x00CF080000</td>
<td>0x9000</td>
- <td>32767</td>
+ <td>2048</td>
</tr>
<tr>
<td>0x94C2080000</td>
@@ -482,9 +482,9 @@ applet with the following application identifiers (AIDs):
</tbody>
</table>
</li>
- <li>The applet should return success status word <code>0x9000</code> for
- the given
- APDU: 0x00F40000</li>
+ <li>The applet should return the value of P2 received in the SELECT
+ command + the success status word (i.e <code>0x009000</code>) for the given
+ APDU: 0x00F4000000</li>
</ol>
<li>A000000476416E64726F696443545332
<ol>
@@ -527,6 +527,9 @@ Create an instance of the applet under these AIDs:
- 0xA000000476416E64726F69644354534E
- 0xA000000476416E64726F69644354534F
+When selected, any of these AIDs should return a select response greater than
+2 bytes that are correctly formatted using BER and TLV.
+
### `CtsSecureElementAccessControlTestCases1`
- **Hash of the APK:** 0x4bbe31beb2f753cfe71ec6bf112548687bb6c34e
@@ -768,7 +771,7 @@ Run installation command for each applet.
Command to install applet
-<code>80E60C00300C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>010002C90000</code><br>
+<code>80E60C00300C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>01000EEF0AA008810101A5038201C0C9000000</code><br>
**Module_AID**: 6F 6D 61 70 69 4A 53 52 31 37 37
**AID:** A000000476416E64726F696443545331
@@ -778,7 +781,7 @@ Command to install applet
##### AccessControl tests (template using PKCS#15 structure)
-<code>80E60C003C0C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>01000EEF0AA008810101A5038201C0C90000</code><br>
+<code>80E60C003C0C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>01000EEF0AA008810101A5038201C0C9000000</code><br>
**Module_AID**: 6F 6D 61 70 69 4A 53 52 31 37 37
**AIDs:**
diff --git a/en/compatibility/tests/development/atest.md b/en/compatibility/tests/development/atest.md
new file mode 100644
index 00000000..8c3fe385
--- /dev/null
+++ b/en/compatibility/tests/development/atest.md
@@ -0,0 +1,418 @@
+Project: /_project.yaml
+Book: /_book.yaml
+
+{% include "_versions.html" %}
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+# Atest
+
+Atest is a command line tool that allows users to build, install, and run
+Android tests locally, greatly speeding test re-runs without requiring knowledge
+of [Trade Federation test harness](/devices/tech/test_infra/tradefed) command
+line options. This page explains how to use Atest to run Android tests.
+
+For general information on writing tests for Android, see
+[Android Platform Testing](/compatibility/tests/index.md).
+
+For information on the overall structure of Atest, see
+[Atest Developer Guide](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/docs/atest_structure.md){: .external}.
+
+And to add a feature to Atest, follow
+[Atest Developer Workflow](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/docs/developer_workflow.md){: .external}.
+
+## Setting up your environment
+
+To run Atest, follow the steps in the sections below to set up your environment.
+
+### Set environment variable
+
+Set test_suite for [Soong](/compatibility/tests/development/blueprints) or
+LOCAL_COMPATIBILITY_SUITE for Make per
+[Packaging build script rules](/compatibility/tests/development/test-mapping#packaging_build_script_rules).
+
+### 1. Run envsetup.sh
+
+From the root of the Android source checkout, run:
+
+<pre>
+<code class="devsite-terminal">source build/envsetup.sh</code>
+</pre>
+
+### 2. Run lunch
+
+Run the `$ lunch` command to bring up a menu of supported devices. Find the
+device and run that command.
+
+For example, if you have an ARM device connected, run the following command:
+
+<pre>
+<code class="devsite-terminal">lunch aosp_arm64-eng</code>
+</pre>
+
+This sets various environment variables required for running Atest and adds the
+Atest command to your `$PATH`.
+
+## Basic usage
+
+Atest commands take the following form:
+
+<pre>
+<code class="devsite-terminal">atest [<var>optional-arguments</var>] <var>test-to-run</var></code>
+</pre>
+
+### Optional arguments
+
+You can use the following optional arguments with Atest commands.
+
+| Option | Long option | Description |
+| :----: | :----------------------- | ---------------------------------------- |
+| `-b` | `--build` | Builds test targets. |
+| `-i` | `--install` | Installs test artifacts (APKs) on |
+: : : device. :
+| `-t` | `--test` | Runs the tests. |
+| `-s` | `--serial` | Runs the tests on the specified device. |
+: : : One device can be tested at a time. :
+| `-d` | `--disable-teardown` | Disables test teardown and cleanup. |
+| <c> | `--info` | Shows the relevant info of the specified |
+: : : targets and exits. :
+| <c> | `--dry-run` | A synonym of --info. |
+| `-m` | `--rebuild-module-info` | Forces a rebuild of the module-info.json |
+: : : file. :
+| `-w` | `--wait-for-debugger` | Waits for debugger prior to execution. |
+: : : Only for instrumentation tests. :
+| `-v` | `--verbose` | Displays DEBUG level logging. |
+| <c> | `--generate-baseline` | Generates baseline metrics, runs 5 |
+: : : iterations by default. :
+| <c> | `--generate-new-metrics` | Generates new metrics, run 5 iterations |
+: : : by default. :
+| <c> | `--detect-regression` | Runs regression detection algorithm. |
+| <c> | `--[CUSTOM_ARGS]` | Specifies custom args for the test |
+: : : runners. :
+| `-a` | `--all-abi` | Runs the tests for all available device |
+: : : architectures. :
+| `-h` | `--help` | Shows help message and exits. |
+| <c> | `--host` | Runs the test completely on the host |
+: : : without a device.<br>(Note\: Running a :
+: : : host test that requires a device with :
+: : : --host will fail.) :
+
+For more information on `-b`, `-i` and `-t`, see
+[Specifying steps: build, install, or run.](#specifying_steps_build_install_or_run)
+
+### Tests to run
+
+You can run one or more tests using <var>test-to-run</var>. To run multiple
+tests, separate test references with spaces. For example:
+
+<pre>
+<code class="devsite-terminal">atest <var>test-to-run-1</var> <var>test-to-run-2</var></code>
+</pre>
+
+Here are some examples:
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests</code>
+<code class="devsite-terminal">atest example/reboot</code>
+<code class="devsite-terminal">atest FrameworksServicesTests CtsJankDeviceTestCases</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests</code>
+</pre>
+
+For more information on how to reference a test, see
+[Identifying tests.](#identifying_tests)
+
+## Identifying tests
+
+You can specify the <var>test-to-run</var> argument with the test's module name,
+Module:Class, class name, TF integration test, file path or package name.
+
+### Module name
+
+To run an entire test module, use its module name. Input the name as it appears
+in the `LOCAL_MODULE` or `LOCAL_PACKAGE_NAME` variables in that test's
+`Android.mk` or `Android.bp` file.
+
+Note: Use **TF Integration Test** to run non-module tests integrated directly
+into TradeFed.
+
+Examples:
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests</code>
+<code class="devsite-terminal">atest CtsJankDeviceTestCases</code>
+</pre>
+
+### Module:Class
+
+To run a single class within a module, use **Module:Class**. **Module** is the
+same as described in [Module name](#module_name). **Class** is the name of the
+test class in the `.java` file and can be the fully qualified class name or the
+basic name.
+
+Examples:
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:com.android.server.wm.ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest CtsJankDeviceTestCases:CtsDeviceJankUi</code>
+</pre>
+
+### Class name
+
+To run a single class without explicitly stating a module name, use the class
+name.
+
+Examples:
+
+<pre>
+<code class="devsite-terminal">atest ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest CtsDeviceJankUi</code>
+</pre>
+
+Using the **Module:Class** reference is recommended whenever possible since
+Atest requires more time to search the complete source tree for potential
+matches if no module is stated.
+
+Examples (ordered from fastest to slowest):
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:com.android.server.wm.ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest ScreenDecorWindowTests</code>
+</pre>
+
+### TF integration test
+
+To run tests that are integrated directly into TradeFed (non-modules), input the
+name as it appears in the output of the `tradefed.sh list configs` command. For
+example:
+
+To run the
+[`reboot.xml` test](https://android.googlesource.com/platform/tools/tradefederation/contrib/+/master/res/config/example/reboot.xml){: .external}:
+
+<pre>
+<code class="devsite-terminal">atest example/reboot</code>
+</pre>
+
+To run the
+[`native-benchmark.xml` test](https://android.googlesource.com/platform/tools/tradefederation/+/master/res/config/native-benchmark.xml){: .external}:
+
+<pre>
+<code class="devsite-terminal">atest native-benchmark</code>
+</pre>
+
+### File path
+
+You can run both module-based tests and integration-based tests by inputting the
+path to their test file or directory as appropriate. You can also run a single
+class by specifying the path to the class's Java file. Both relative and
+absolute paths are supported.
+
+Example: Two ways to run the `CtsJankDeviceTestCases` module via path
+
+1. Run module from android <var>repo-root</var>:
+
+ <pre>
+ <code class="devsite-terminal">atest cts/tests/jank</code>
+ </pre>
+
+2. From android <var>repo-root</var>/cts/tests/jank:
+
+ <pre>
+ <code class="devsite-terminal">atest .</code>
+ </pre>
+
+Example: Run a specific class within `CtsJankDeviceTestCases` module via path.
+From android <var>repo-root</var>:
+
+<pre>
+<code class="devsite-terminal">atest cts/tests/jank/src/android/jank/cts/ui/CtsDeviceJankUi.java</code>
+</pre>
+
+Example: Run an integration test via path. From android <var>repo-root</var>:
+
+<pre>
+<code class="devsite-terminal">atest tools/tradefederation/contrib/res/config/example/reboot.xml</code>
+</pre>
+
+### Package name
+
+Atest supports searching tests by package name.
+
+Examples:
+
+<pre>
+<code class="devsite-terminal">atest com.android.server.wm</code>
+<code class="devsite-terminal">atest android.jank.cts</code>
+</pre>
+
+## Specifying steps: Build, install, or run
+
+You can specify which steps to run by using the `-b`, `-i`, and `-t` options. If
+you don't specify an option, then all steps run.
+
+Note: You can run `-b` and `-t` alone, but `-i` needs `-t` to run.
+
+- Build targets only: <code>atest -b <var>test-to-run</var></code>
+- Run tests only: <code>atest -t <var>test-to-run</var></code>
+- Install apk and run tests: <code>atest -it <var>test-to-run</var></code>
+- Build and run, but don't install: <code>atest -bt
+ <var>test-to-run</var></code>
+
+Atest can force a test to skip the cleanup/teardown step. Many tests, such as
+CTS, clean up the device after the test is run, so trying to rerun your test
+with `-t` will fail without the `--disable-teardown` parameter. Use `-d` before
+`-t` to skip the test clean up step and test iteratively.
+
+<pre>
+<code class="devsite-terminal">atest -d <var>test-to-run</var></code>
+<code class="devsite-terminal">atest -t <var>test-to-run</var></code>
+</pre>
+
+Note: `-t` disables both **setup/install** and **teardown/cleanup** of the
+device so you can rerun your test with <code>atest -t
+<var>test-to-run</var></code> as many times as you want.
+
+## Running specific methods
+
+You can run specific methods within a test class. Although the whole module
+needs to be built, this reduces the time needed to run the tests. To run
+specific methods, identify the class using any of the ways supported for
+identifying a class (Module:Class, file path, etc) and append the name of the
+method.
+
+<pre>
+<code class="devsite-terminal">atest <var>reference-to-class</var>#<var>method1</var></code>
+</pre>
+
+You can specify multiple methods with commas.
+
+<pre>
+<code class="devsite-terminal">atest <var>reference-to-class</var>#<var>method1</var>,<var>method2</var>,<var>method3</var></code>
+</pre>
+
+Examples:
+
+<pre>
+<code class="devsite-terminal">atest com.android.server.wm.ScreenDecorWindowTests#testMultipleDecors</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests#testFlagChange,testRemoval</code>
+</pre>
+
+The following two examples show the preferred ways to run a single method,
+`testFlagChange`. These examples are preferred over only using the class name
+because specifying the module or the Java file location allows Atest to find the
+test much faster:
+
+1. Using Module:Class
+
+ <pre>
+ <code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests#testFlagChange</code>
+ </pre>
+
+1. From android <var>repo-root</var>
+
+ <pre>
+ <code class="devsite-terminal">atest frameworks/base/services/tests/servicestests/src/com/android/server/wm/ScreenDecorWindowTests.java#testFlagChange</code>
+ </pre>
+
+Multiple methods can be run from different classes and modules:
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests#testFlagChange,testRemoval ScreenDecorWindowTests#testMultipleDecors</code>
+</pre>
+
+## Running multiple classes
+
+To run multiple classes, separate them with spaces in the same way as running
+multiple tests. Atest builds and runs classes efficiently, so specifying a
+subset of classes in a module improves performance over running the whole
+module.
+
+Examples:
+
+- Two classes in the same module:
+
+ <pre>
+ <code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests FrameworksServicesTests:DimmerTests</code>
+ </pre>
+
+- Two classes in different modules:
+
+ <pre>
+ <code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests CtsJankDeviceTestCases:CtsDeviceJankUi</code>
+ </pre>
+
+## Running native tests
+
+Atest can run native tests.
+
+Examples:
+
+- Input tests:
+
+ <pre>
+ <code class="devsite-terminal">atest -a libinput_tests inputflinger_tests</code>
+ </pre>
+
+Use `-a` to run the tests for all available device architectures, which in this
+example is armeabi-v7a (ARM 32-bit) and arm64-v8a (ARM 64-bit).
+
+## Detecting metrics regression
+
+You can generate pre-patch or post-patch metrics without running regression
+detection. You can specify the number of iterations, but the default is five.
+
+Examples:
+
+<pre>
+<code class="devsite-terminal">atest <var>test-to-run</var> --generate-baseline <var>[optional-iteration]</var></code>
+<code class="devsite-terminal">atest <var>test-to-run</var> --generate-new-metrics <var>[optional-iteration]</var></code>
+</pre>
+
+Local regression detection can be run in three options:
+
+1. Generate baseline (pre-patch) metrics and place them in a folder. Atest runs
+ the tests through the specified iterations, generates post-patch metrics,
+ and compares those against existing metrics.
+
+ Example:
+
+ <pre>
+ <code class="devsite-terminal">atest <var>test-to-run</var> --detect-regression <var>/path/to/baseline</var> --generate-new-metrics <var>[optional-iteration]</var></code>
+ </pre>
+
+2. Using a folder containing previously generated post-patch metrics, Atest
+ runs the tests _n_ iterations, generates a new set of pre-patch metrics, and
+ compares those against those provided.
+
+ Note: The developer needs to revert the device/tests to pre-patch state to
+ generate baseline metrics.
+
+ Example:
+
+ <pre>
+ <code class="devsite-terminal">atest <var>test-to-run</var> --detect-regression <var>/path/to/new</var> --generate-baseline <var>[optional-iteration]</var></code>
+ </pre>
+
+3. Using two folders containing both pre-patch and post-patch metrics, Atest
+ runs the regression detection algorithm without any tests.
+
+ Example:
+
+ <pre>
+ <code class="devsite-terminal">atest --detect-regression <var>/path/to/baseline</var> <var>/path/to/new</var></code>
+ </pre>
diff --git a/en/compatibility/tests/development/index.md b/en/compatibility/tests/development/index.md
index 12f1b610..6fc66d6c 100644
--- a/en/compatibility/tests/development/index.md
+++ b/en/compatibility/tests/development/index.md
@@ -19,10 +19,16 @@ Book: /_book.yaml
limitations under the License.
-->
-# Test Types and Guidelines
+# Test Development Workflow
To integrate tests into a platform continuous testing service, they should meet
-the following guidelines.
+the guidelines on this page and follow this recommended flow.
+
+1. Use the [Soong build system](https://android.googlesource.com/platform/build/soong/)
+ for [Simple Test Configuration](blueprints).
+1. Employ [Test Mapping](test-mapping) to easily create pre- and post-submit
+ test rules directly in the Android source tree.
+1. Run tests locally using [Atest](atest).
## Test types
diff --git a/en/compatibility/tests/development/instr-app-e2e.md b/en/compatibility/tests/development/instr-app-e2e.md
index b61d6644..11839be1 100644
--- a/en/compatibility/tests/development/instr-app-e2e.md
+++ b/en/compatibility/tests/development/instr-app-e2e.md
@@ -56,8 +56,8 @@ manifest file. If you name the file as `AndroidManifest.xml` and provide it next
to `Android.mk` for your test tmodule, it will get included automatically by the
`BUILD_PACKAGE` core makefile.
-Before proceeding further, it's highly recommended to go through the external
-[documentation on manifest file](https://developer.android.com/guide/topics/manifest/manifest-intro.html)
+Before proceeding further, it's highly recommended to go through the
+[App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro.html){: .external}
first.
This gives an overview of basic components of a manifest file and their
@@ -156,12 +156,12 @@ sufficient. See [Simple Test Configuration](blueprints.md) for details.
Important: The instructions in this section are needed only for CTS tests or those
that require special setup, such as disabling Bluetooth or collecting sample data.
All other cases can be covered through the
-[Simple Test Configuration](blueprints.md). See the
-[Complex Test Configuration](compatibility/tests/development/test-config) for
+[Simple Test Configuration](blueprints). See the
+[Complex Test Configuration](test-config) for
more details applicable to this section.
-For more complex tests, you also need write a test configuration
-file for Android's test harness, [Trade Federation](https://source.android.com/devices/tech/test_infra/tradefed/).
+For more complex tests, you also need to write a test configuration
+file for Android's test harness, [Trade Federation](/devices/tech/test_infra/tradefed/).
The test configuration can specify special device setup options and default
arguments to supply the test class.
@@ -285,7 +285,7 @@ stored. Through this class, you can also call:
## Build and test locally
For the most common use cases, employ
-[Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md).
+[Atest](/compatibility/tests/development/atest).
For more complex cases requiring heavier customization, follow the
[instrumentation instructions](instrumentation.md).
diff --git a/en/compatibility/tests/development/instr-self-e2e.md b/en/compatibility/tests/development/instr-self-e2e.md
index 6c8885e9..b68a94df 100644
--- a/en/compatibility/tests/development/instr-self-e2e.md
+++ b/en/compatibility/tests/development/instr-self-e2e.md
@@ -95,8 +95,8 @@ manifest file. If you name the file as `AndroidManifest.xml` and provide it next
to `Android.mk` for your test tmodule, it will get included automatically by the
`BUILD_PACKAGE` core makefile.
-Before proceeding further, it's highly recommended to go through the external
-[documentation on manifest file](https://developer.android.com/guide/topics/manifest/manifest-intro.html)
+Before proceeding further, it's highly recommended to go through the
+[App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro.html){: .external}
first.
This gives an overview of basic components of a manifest file and their
@@ -191,12 +191,12 @@ sufficient. See [Simple Test Configuration](blueprints.md) for details.
Important: The instructions in this section are needed only for CTS tests or those
that require special setup, such as disabling Bluetooth or collecting sample data.
All other cases can be covered through the
-[Simple Test Configuration](blueprints.md). See the
-[Complex Test Configuration](compatibility/tests/development/test-config) for
+[Simple Test Configuration](blueprints). See the
+[Complex Test Configuration](test-config) for
more details applicable to this section.
For these more complex cases, you also need to write a test configuration
-file for Android's test harness, [Trade Federation](https://source.android.com/devices/tech/test_infra/tradefed/).
+file for Android's test harness, [Trade Federation](/devices/tech/test_infra/tradefed/).
The test configuration can specify special device setup options and default
arguments to supply the test class. See the example at
@@ -324,7 +324,7 @@ Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation()
## Build and test locally
For the most common use cases, employ
-[Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md).
+[Atest](/compatibility/tests/development/atest).
For more complex cases requiring heavier customization, follow the
[instrumentation instructions](instrumentation.md).
diff --git a/en/compatibility/tests/development/instrumentation.md b/en/compatibility/tests/development/instrumentation.md
index 70439a7c..6a468758 100644
--- a/en/compatibility/tests/development/instrumentation.md
+++ b/en/compatibility/tests/development/instrumentation.md
@@ -91,8 +91,7 @@ and APIs to manipulate the application process under test.
1. Run the tests:
* The simplest solution is to use
- [Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md){: .external}
- like so:
+ [Atest](/compatibility/tests/development/atest) like so:
```
atest FrameworksCoreTests
diff --git a/en/compatibility/tests/development/native-func-e2e.md b/en/compatibility/tests/development/native-func-e2e.md
index 7f143c3e..a6b03108 100644
--- a/en/compatibility/tests/development/native-func-e2e.md
+++ b/en/compatibility/tests/development/native-func-e2e.md
@@ -173,7 +173,7 @@ arguments to supply the test class.
## Build and test locally
For the most common use cases, employ
-[Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md).
+[Atest](/compatibility/tests/development/atest).
For more complex cases requiring heavier customization, follow the
[instrumentation instructions](instrumentation.md).
diff --git a/en/compatibility/tests/development/native.md b/en/compatibility/tests/development/native.md
index cb798694..399e6664 100644
--- a/en/compatibility/tests/development/native.md
+++ b/en/compatibility/tests/development/native.md
@@ -51,9 +51,7 @@ incremental or full build), e.g.:
```shell
make hwui_unit_tests -j
```
-1. Use
- [Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md)
- to run the test locally:
+1. Use [Atest](/compatibility/tests/development/atest) to run the test locally:
```
atest hwui_unit_tests
diff --git a/en/compatibility/tests/development/test-mapping.md b/en/compatibility/tests/development/test-mapping.md
new file mode 100644
index 00000000..5f843199
--- /dev/null
+++ b/en/compatibility/tests/development/test-mapping.md
@@ -0,0 +1,270 @@
+Project: /_project.yaml
+Book: /_book.yaml
+
+{% include "_versions.html" %}
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+# Test Mapping
+
+This is a brief introduction of Test Mapping and an explanation of how to get
+started configuring tests easily in the Android Open Source Project (AOSP).
+
+## What is Test Mapping?
+
+Test Mapping is a Gerrit-based approach that allows developers to create pre-
+and post-submit test rules directly in the Android source tree and leave the
+decisions of branches and devices to be tested to the test infrastructure
+itself. Test Mapping definitions are JSON files named TEST_MAPPING that can be
+placed in any source directory.
+
+[Atest](atest) can use the TEST_MAPPING files to run presubmit tests in the
+associated directories. With Test Mapping, you can add the same set of tests to
+presubmit checks with a simple change inside the Android source tree.
+
+See these examples:
+
+[Add presubmit tests to TEST_MAPPING for services.core](https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/pm/dex/TEST_MAPPING)
+
+[Add presubmit and postsubmit tests to TEST_MAPPING for startop/iorap](https://android.googlesource.com/platform/frameworks/base/+/master/startop/iorap/TEST_MAPPING)
+
+## Defining test groups
+
+Test Mapping groups tests via a **test group**. The name of a test group can be
+any string. For example, *presubmit* can be for a group of tests to run when
+validating changes. And *postsubmit* tests can be used to validate the
+builds after changes are merged.
+
+## Packaging build script rules
+
+In order for the [Trade Federation Test Harness](/devices/tech/test_infra/tradefed)
+to run Test Mapping's test modules for a given build, these modules must have
+**test_suite** set for [Soong](blueprints) or **LOCAL_COMPATIBILITY_SUITE** set
+for Make to one of these two suites:
+
+* **device-tests** - built against a specific device CPU
+* **general-tests** - built against any application binary interface (ABI)
+
+When in doubt, put gtests in _device-tests_ and APK tests in _general-tests_.
+
+Examples:
+
+```
+Android.bp: test_suites: ["device-tests"],
+Android.mk: LOCAL_COMPATIBILITY_SUITE := device-tests
+```
+
+
+## Creating Test Mapping files
+
+For the directory requiring test coverage, simply add a TEST_MAPPING JSON file
+resembling the example below. These rules will ensure the tests run in presubmit
+checks when any files are touched in that directory or any of its subdirectories.
+
+### Following an example
+
+Here is a sample TEST_MAPPING file:
+
+```
+{
+ "presubmit": [
+ {
+ "name": "CtsWindowManagerDeviceTestCases",
+ "options": [
+ {
+ "include-annotation": "android.platform.test.annotations.RequiresDevice"
+ }
+ ]
+ }
+ ],
+ "postsubmit": [
+ {
+ "name": "CtsWindowManagerDeviceTestCases"
+ }
+ ],
+ "imports": [
+ {
+ "path": "frameworks/base/services/core/java/com/android/server/am"
+ }
+ ]
+}
+```
+
+### Setting attributes
+
+In the above example, `presubmit` and `postsubmit` are the names of each **test
+group**. Note that a test run for `postsubmit` will automatically include all
+tests in the `presubmit` group. See
+[Defining test groups](#defining_test_groups) for more information about test
+groups.
+
+The **name** of the **test module** or **Trade Federation integration test
+name** (resource path to the test XML file, e.g.,
+[uiautomator/uiautomator-demo](https://android.googlesource.com/platform/tools/tradefederation/contrib/+/master/res/config/uiautomator/uiautomator-demo.xml))
+can be set in the value of the `name` attribute. Note the **name** field cannot
+use class `name` or test method `name`. To narrow down the tests to run, you can
+use options such as `include-filter` here. See
+([include-filter sample usage](https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/pm/dex/TEST_MAPPING#7)).
+
+The `imports` attribute allows you to include tests in other TEST_MAPPING files
+without copying the content. Note that the TEST_MAPPING files in the parent
+directories of the imported path will also be included.
+
+The `options` attribute contains additional TradeFed command line options. In
+the above example, only tests with annotation `Presubmit` will run in presubmit;
+all tests will run in postsubmit.
+
+To get a complete list of available options for a given test, run:
+
+<pre>
+<code class="devsite-terminal">tradefed.sh run commandAndExit [test_module] --help</code>
+</pre>
+
+Refer to
+[TradeFed Option Handling ](/devices/tech/test_infra/tradefed/fundamentals/options)
+for more details about how options work.
+
+## Running tests with Atest
+
+To execute the presubmit test rules locally:
+
+1. Go to the directory containing the TEST_MAPPING file.
+1. Run the command:
+
+<pre>
+<code class="devsite-terminal">atest</code>
+</pre>
+
+All presubmit tests configured in the TEST_MAPPING files of the current
+directory and its parent directories are run. Atest will locate and run two tests
+for presubmit (A and B).
+
+This is the simplest way to run presubmit tests in TEST_MAPPING files in the
+current working directory (CWD) and parent directories. Atest will locate and
+use the TEST_MAPPING file in CWD and all of its parent directories, unless a
+TEST_MAPPING file has `inherit_parent` set to false.
+
+### Structuring source code
+
+The following example shows how TEST_MAPPING files can be configured across the
+source tree.
+
+```
+src
+├── project_1
+│ └── TEST_MAPPING
+├── project_2
+│ └── TEST_MAPPING
+└── TEST_MAPPING
+```
+
+Content of `src/TEST_MAPPING`:
+
+```
+{
+ "presubmit": [
+ {
+ "name": "A"
+ }
+ ]
+}
+```
+
+Content of `src/project_1/TEST_MAPPING`:
+
+```
+{
+ "presubmit": [
+ {
+ "name": "B"
+ }
+ ],
+ "postsubmit": [
+ {
+ "name": "C"
+ }
+ ],
+ "other_group": [
+ {
+ "name": "X"
+ }
+ ]}
+```
+
+Content of `src/project_2/TEST_MAPPING`:
+
+```
+{
+ "presubmit": [
+ {
+ "name": "D"
+ }
+ ],
+ "import": [
+ {
+ "path": "src/project_1"
+ }
+ ]}
+```
+
+### Specifying target directories
+
+You can specify a target directory to run tests in TEST_MAPPING files in that
+directory. The following command will run two tests (A, B).
+
+<pre>
+<code class="devsite-terminal">atest --test-mapping src/project_1</code>
+</pre>
+
+### Running postsubmit test rules
+
+You can also use this command to run the postsubmit test rules defined in
+TEST_MAPPING in `src_path` (default to CWD)
+and its parent directories:
+
+<pre>
+<code class="devsite-terminal">atest [--test-mapping] [src_path]:postsubmit</code>
+</pre>
+
+### Identifying test groups
+
+You can specify test groups in the Atest command. Note that presubmit tests are
+part of postsubmit tests, as well. The following command will run all
+**postsubmit** tests related to files in directory src/project_1, which are
+three tests (A, B, C).
+
+Or you can use **:all** to run all tests regardless of group. The following
+command runs four tests (A, B, C, X):
+
+<pre>
+<code class="devsite-terminal">atest --test-mapping src/project_1:all</code>
+</pre>
+
+### Including subdirectories
+
+By default, running tests in TEST_MAPPING with Atest will run only presubmit
+tests configured in the TEST_MAPPING file in CWD (or
+given directory) and its parent directories. If you want to run tests in all
+TEST_MAPPING files in the sub-directories, use the option `--include-subdir` to
+force Atest to include those tests too.
+
+<pre>
+<code class="devsite-terminal">atest --include-subdir</code>
+</pre>
+
+Without the `--include-subdir` option, Atest will run only test A. With the
+`--include-subdir` option, Atest will run two tests (A, B).
diff --git a/en/compatibility/tests/index.md b/en/compatibility/tests/index.md
index ac6bbe60..778d9064 100644
--- a/en/compatibility/tests/index.md
+++ b/en/compatibility/tests/index.md
@@ -44,7 +44,7 @@ Make solution.
### Atest
-[Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md){: .external}
+[Atest](/compatibility/tests/development/atest)
is a command line tool that allows users to build, install and run Android tests
locally. It is the recommended standard for initial testing of your feature.
diff --git a/en/devices/_toc-graphics.yaml b/en/devices/_toc-graphics.yaml
index f249cfaa..dc30a6bd 100644
--- a/en/devices/_toc-graphics.yaml
+++ b/en/devices/_toc-graphics.yaml
@@ -53,3 +53,5 @@ toc:
path: /devices/graphics/test-groups
- title: Integrating with Android CTS
path: /devices/graphics/cts-integration
+- title: Tracing Window Transitions
+ path: /devices/graphics/tracing-win-transitions
diff --git a/en/devices/accessories/headset/usb-headset-spec.html b/en/devices/accessories/headset/usb-headset-spec.html
index 9302fe09..cd5b36af 100644
--- a/en/devices/accessories/headset/usb-headset-spec.html
+++ b/en/devices/accessories/headset/usb-headset-spec.html
@@ -46,6 +46,17 @@ specification only covers mandated basic features:
<li>Function buttons for volume, playback, and call control</li>
</ul>
+<h2 id="terminal-types">USB Audio Class terminal types</h2>
+<p>
+Headphones and headsets must report these USB Audio Class (UAC) terminal types:
+</p>
+
+<ul>
+ <li><strong>Headphones</strong>. Low impedance transducers, &lt; 100 ohms, no
+ microphone: 0x0302</li>
+ <li><strong>Headset</strong>. Low impedance transducers with microphone: 0x0402</li>
+</ul>
+
<h2 id="control-function">Control functions</h2>
<p>Headsets can come with varying number of buttons to control specific
functions, such as volume and play/pause.<p>
diff --git a/en/devices/architecture/vintf/objects.html b/en/devices/architecture/vintf/objects.html
index 825b20d9..3bfeff64 100644
--- a/en/devices/architecture/vintf/objects.html
+++ b/en/devices/architecture/vintf/objects.html
@@ -167,7 +167,7 @@ specify product-specific HALs).</p>
&lt;instance>legacy/0&lt;/instance>
&lt;/interface>
&lt;/hal>
- &lt;!-- NFC is disabled -->
+ &lt;!-- NFC is declared to be disabled -->
&lt;hal override="true">
&lt;name>android.hardware.nfc&lt;/name>
&lt;transport>hwbinder&lt;/transport>
@@ -281,7 +281,8 @@ depending on the <code>format</code> attribute.</dd>
<li><code>true</code>: override other <code>&lt;hal></code> elements with
the same <code>&lt;name></code> and major version. If no
<code>&lt;version></code> or <code>&lt;fqname></code> are in this
- <code>&lt;hal></code> element, then this HAL is disabled.</li>
+ <code>&lt;hal></code> element, then the <code>&lt;hal></code> element
+ declares this HAL to be disabled.</li>
<li><code>false</code>: do not override other <code>&lt;hal></code> elements
with the same <code>&lt;name></code> and major version.</li>
</ul>
diff --git a/en/devices/architecture/vndk/build-system.html b/en/devices/architecture/vndk/build-system.html
index 72737be6..98e95b63 100644
--- a/en/devices/architecture/vndk/build-system.html
+++ b/en/devices/architecture/vndk/build-system.html
@@ -506,18 +506,19 @@ $(call add-clean-step, rm -rf $(TARGET_OUT_VENDOR)/lib/libvndk.so)
</p>
<ul>
- <li>core variant (e.g. <code>/system/lib[64]/libexample.so</code>)</li>
- <li>vendor variant (e.g.
+ <li>Core variant (e.g. <code>/system/lib[64]/libexample.so</code>)</li>
+ <li>Vendor variant (e.g.
<code>/system/lib[64]/vndk[-sp]-${VER}/libexample.so</code>)</li>
<li>VNDK extension (e.g. <code>/vendor/lib[64]/vndk[-sp]/libexample.so</code>)
</li>
</ul>
+
<h4 id="conditional-cflags">Conditional compiler flags</h4>
<p>
The Android build system defines <code>__ANDROID_VNDK__</code> for vendor
- variants (including VNDK extensions) by default. You may guard the code
+ variants and VNDK extensions by default. You may guard the code
with the C preprocessor guards:
</p>
@@ -537,15 +538,18 @@ void vndk_only() { }
In addition to <code>__ANDROID_VNDK__</code>, different <code>cflags</code> or
<code>cppflags</code> may be specified in <code>Android.bp</code>. The
<code>cflags</code> or <code>cppflags</code> specified in
- <code>target.vendor</code> is specific to the vendor variant. For example, the
- following code example is the <code>Android.bp</code> module definition for
+ <code>target.vendor</code> is specific to the vendor variant.
+</p>
+
+<p>
+ For example, the following <code>Android.bp</code> defines
<code>libexample</code> and <code>libexample_ext</code>:
</p>
<pre class="prettyprint">
cc_library {
name: "libexample",
- srcs: ["example.c"],
+ srcs: ["src/example.c"],
vendor_available: true,
vndk: {
enabled: true,
@@ -559,7 +563,7 @@ cc_library {
cc_library {
name: "libexample_ext",
- srcs: ["example.c"],
+ srcs: ["src/example.c"],
vendor: true,
vndk: {
enabled: true,
@@ -573,7 +577,7 @@ cc_library {
</pre>
<p>
- Code listing of <code>example.c</code>:
+ And this is the code listing of <code>src/example.c</code>:
</p>
<pre class="prettyprint">
@@ -593,7 +597,8 @@ void vndk_ext() { }
</pre>
<p>
- Exported symbols for each variant:
+ According to these two files, the build system generates shared libraries
+ with following exported symbols:
</p>
<table>
@@ -618,19 +623,34 @@ void vndk_ext() { }
</tr>
</table>
+
+<h4 id="exported-symbols">Requirements on the exported symbols</h4>
+
<p>
- The VNDK ABI compliance checker compares the ABI of VNDK and VNDK
- extensions to the ABI dumps under <code>prebuilts/abi-dumps/vndk</code>:
+ The <a href="/devices/architecture/vndk/abi-stability">VNDK ABI checker</a>
+ compares the ABI of <em>VNDK vendor variants</em> and
+ <em>VNDK extensions</em> to the reference ABI dumps under
+ <code>prebuilts/abi-dumps/vndk</code>.
</p>
<ul>
- <li>Symbols exported by original VNDK shared libraries must be identical to
- (not the supersets of) the symbols defined in ABI dumps.</li>
- <li>Symbols exported by VNDK extensions must be supersets of the symbols
- defined in ABI dumps.</li>
+ <li>Symbols exported by <em>VNDK vendor variants</em> (e.g.
+ <code>/system/lib[64]/vndk-${VER}/libexample.so</code>) must be identical
+ to (not the supersets of) the symbols defined in ABI dumps.</li>
+
+ <li>Symbols exported by <em>VNDK extensions</em> (e.g.
+ <code>/vendor/lib[64]/vndk/libexample.so</code>) must be supersets of the
+ symbols defined in ABI dumps.</li>
</ul>
-<h4 id="excluding">Excluding source files or shared libs</h4>
+<p>
+ If <em>VNDK vendor variants</em> or <em>VNDK extensions</em> fail to follow
+ the requirements above, VNDK ABI checker emits build errors and stops the
+ build.
+</p>
+
+
+<h4 id="excluding">Excluding source files or shared libraries from vendor variants</h4>
<p>
To exclude source files from the vendor variant, add them to the
@@ -641,7 +661,7 @@ void vndk_ext() { }
<pre class="prettyprint">
cc_library {
- name: "libcond_exclude_example",
+ name: "libexample_cond_exclude",
srcs: ["fwk.c", "both.c"],
shared_libs: ["libfwk_only", "libboth"],
target: {
@@ -654,17 +674,168 @@ cc_library {
</pre>
<p>
- In this example, the core variant of <code>libcond_exclude_example</code>
+ In this example, the core variant of <code>libexample_cond_exclude</code>
includes the code from <code>fwk.c</code> and <code>both.c</code> and depends
on the shared libraries <code>libfwk_only</code> and <code>libboth</code>. The
- vendor variant of <code>libcond_exclude_example</code> includes only the code
+ vendor variant of <code>libexample_cond_exclude</code> includes only the code
from <code>both.c</code> because <code>fwk.c</code> is excluded by the
<code>exclude_srcs</code> property. Similarly,
- <code>libcond_exclude_example</code> depends only on the shared library
+ <code>libexample_cond_exclude</code> depends only on the shared library
<code>libboth</code> because <code>libfwk_only</code> is excluded by the
<code>exclude_shared_libs</code> property.
</p>
+<h4 id="export-headers-from-vndk-extension">Export headers from VNDK extensions</h4>
+
+<p>
+ A VNDK extension may add new classes or new functions to a VNDK shared
+ library. It is suggested to keep those declarations in independent headers
+ and avoid changing the existing headers.
+</p>
+
+<p>
+ For example, a new header file
+ <code>include-ext/example/ext/feature_name.h</code> is created for the VNDK
+ extension <code>libexample_ext</code>:
+</p>
+
+<ul>
+ <li>Android.bp</li>
+ <li><strong>include-ext/example/ext/feature_name.h</strong></li>
+ <li>include/example/example.h</li>
+ <li>src/example.c</li>
+ <li><strong>src/ext/feature_name.c</strong></li>
+</ul>
+
+<p>
+ In the following <code>Android.bp</code>, <code>libexample</code> exports
+ only <code>include</code>, whereas <code>libexample_ext</code> exports both
+ <code>include</code> and <code>include-ext</code>. This ensures
+ <code>feature_name.h</code> won't be incorrectly included by the users of
+ <code>libexample</code>:
+</p>
+
+<pre class="prettyprint">
+cc_library {
+ name: "libexample",
+ srcs: ["src/example.c"],
+ export_include_dirs: ["include"],
+ vendor_available: true,
+ vndk: {
+ enabled: true,
+ },
+}
+
+cc_library {
+ name: "libexample_ext",
+ srcs: [
+ "src/example.c",
+ "src/ext/feature_name.c",
+ ],
+ export_include_dirs: [
+ "include",
+ "include-ext",
+ ],
+ vendor: true,
+ vndk: {
+ enabled: true,
+ extends: "libexample",
+ },
+}
+</pre>
+
+<p>
+ If separating extensions to independent header files is not feasible, an
+ alternative is to add <code>#ifdef</code> guards. However, make sure that all
+ VNDK extension users add the define flags. You may define
+ <code>cc_defaults</code> to add define flags to <code>cflags</code> and link
+ shared libraries with <code>shared_libs</code>.
+</p>
+
+<p>
+ For example, to add a new member function <code>Example2::get_b()</code> to
+ the VNDK extension <code>libexample2_ext</code>, you must modify the existing
+ header file and add a <code>#ifdef</code> guard:
+</p>
+
+<pre class="prettyprint">
+#ifndef LIBEXAMPLE2_EXAMPLE_H_
+#define LIBEXAMPLE2_EXAMPLE_H_
+
+class Example2 {
+ public:
+ Example2();
+
+ void get_a();
+
+#ifdef LIBEXAMPLE2_ENABLE_VNDK_EXT
+ void get_b();
+#endif
+
+ private:
+ void *impl_;
+};
+
+#endif // LIBEXAMPLE2_EXAMPLE_H_
+</pre>
+
+<p>
+ A <code>cc_defaults</code> named <code>libexample2_ext_defaults</code> is
+ defined for the users of <code>libexample2_ext</code>:
+</p>
+
+<pre class="prettyprint">
+cc_library {
+ name: "libexample2",
+ srcs: ["src/example2.cpp"],
+ export_include_dirs: ["include"],
+ vendor_available: true,
+ vndk: {
+ enabled: true,
+ },
+}
+
+cc_library {
+ name: "libexample2_ext",
+ srcs: ["src/example2.cpp"],
+ export_include_dirs: ["include"],
+ vendor: true,
+ vndk: {
+ enabled: true,
+ extends: "libexample2",
+ },
+ cflags: [
+ "-DLIBEXAMPLE2_ENABLE_VNDK_EXT=1",
+ ],
+}
+
+cc_defaults {
+ name: "libexample2_ext_defaults",
+ shared_libs: [
+ "libexample2_ext",
+ ],
+ cflags: [
+ "-DLIBEXAMPLE2_ENABLE_VNDK_EXT=1",
+ ],
+}
+</pre>
+
+<p>
+ The users of <code>libexample2_ext</code> may simply include
+ <code>libexample2_ext_defaults</code> in their <code>defaults</code>
+ property:
+</p>
+
+<pre class="prettyprint">
+cc_binary {
+ name: "example2_user_executable",
+ defaults: ["libexample2_ext_defaults"],
+ vendor: true,
+}
+</pre>
+
+
+
<h3 id="product-packages">Product packages</h3>
<p>
diff --git a/en/devices/architecture/vndk/linker-namespace.html b/en/devices/architecture/vndk/linker-namespace.html
index b0d82512..a460e158 100644
--- a/en/devices/architecture/vndk/linker-namespace.html
+++ b/en/devices/architecture/vndk/linker-namespace.html
@@ -46,7 +46,7 @@ hiding their implementation details within their linker namespaces.</p>
<p>For example, <code>/system/lib[64]/libcutils.so</code> and
<code>/system/lib[64]/vndk-sp-${VER}/libcutils.so</code> are two shared
-libraries. These two libraries may have different symbols. They will be loaded
+libraries. These two libraries may have different symbols. They are loaded
into different linker namespaces so that framework modules can depend on
<code>/system/lib[64]/libcutils.so</code> and SP-HAL shared libraries can
depend on <code>/system/lib[64]/vndk-sp-${VER}/libcutils.so</code>.</p>
@@ -55,7 +55,7 @@ depend on <code>/system/lib[64]/vndk-sp-${VER}/libcutils.so</code>.</p>
public libraries that is exported by a linker namespace and imported into
many linker namespaces. The dependencies of
<code>/system/lib[64]/libc.so</code>, such as <code>libnetd_client.so</code>,
-will be loaded into the namespace in which <code>/system/lib[64]/libc.so</code>
+is loaded into the namespace in which <code>/system/lib[64]/libc.so</code>
resides. Other namespaces won't have accesses to those dependencies. This
mechanism encapsulates the implementation details while providing the public
interfaces.</p>
@@ -69,10 +69,10 @@ interfaces.</p>
<p>The dynamic linker is responsible for loading the shared libraries specified
in <code>DT_NEEDED</code> entries or the shared libraries specified by the
argument of <code>dlopen()</code> or <code>android_dlopen_ext()</code>. In both
-cases, the dynamic linker will find the linker namespace where the caller
+cases, the dynamic linker finds the linker namespace where the caller
resides and try to load the dependencies into the same linker namespace. If
the dynamic linker cannot load the shared library into the specified linker
-namespace, it will ask the <em>linked linker namespace</em> for exported shared
+namespace, it asks the <em>linked linker namespace</em> for exported shared
libraries.</p>
@@ -86,130 +86,408 @@ configuration file looks like:</p>
<pre class="prettyprint">
dir.system = /system/bin
+dir.system = /system/xbin
dir.vendor = /vendor/bin
[system]
-additional.namespaces = sphal
+additional.namespaces = sphal,vndk
namespace.default.isolated = true
-namespace.default.search.paths = /system/${LIB}:/vendor/${LIB}
-namespace.default.permitted.paths = /system/${LIB}:/vendor/${LIB}
+namespace.default.search.paths = /system/${LIB}
+namespace.default.permitted.paths = /system/${LIB}/hw
+namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB}
+namespace.default.asan.permitted.paths = /data/asan/system/${LIB}/hw:/system/${LIB}/hw
namespace.sphal.isolated = true
namespace.sphal.visible = true
-namespace.sphal.search.paths = /vendor/${LIB}
-namespace.sphal.permitted.paths = /vendor/${LIB}
-namespace.sphal.links = default
+namespace.sphal.search.paths = /odm/${LIB}:/vendor/${LIB}
+namespace.sphal.permitted.paths = /odm/${LIB}:/vendor/${LIB}
+namespace.sphal.asan.search.paths = /data/asan/odm/${LIB}:/odm/${LIB}
+namespace.sphal.asan.search.paths += /data/asan/vendor/${LIB}:/vendor/${LIB}
+namespace.sphal.asan.permitted.paths = /data/asan/odm/${LIB}:/odm/${LIB}
+namespace.sphal.asan.permitted.paths += /data/asan/vendor/${LIB}:/vendor/${LIB}
+namespace.sphal.links = default,vndk
namespace.sphal.link.default.shared_libs = libc.so:libm.so
+namespace.sphal.link.vndk.shared_libs = libbase.so:libcutils.so
+
+namespace.vndk.isolated = true
+namespace.vndk.search.paths = /system/${LIB}/vndk-sp-29
+namespace.vndk.permitted.paths = /system/${LIB}/vndk-sp-29
+namespace.vndk.links = default
+namespace.vndk.link.default.shared_libs = libc.so:libm.so
[vendor]
namespace.default.isolated = false
namespace.default.search.paths = /vendor/${LIB}:/system/${LIB}
-namespace.default.permitted.paths = /vendor/${LIB}:/system/${LIB}
</pre>
-<p>First, there are several <code>dir.${section}</code> properties at the
-beginning of <code>ld.config.txt</code>:</p>
+<p>The configuration file includes:</p>
-<pre class="prettyprint">
-dir.${section} = /path/to/bin/directory
-</pre>
+<ul>
+ <li>Several directory-section mapping properties at the beginning for the
+ dynamic linker to select the effective section.</li>
-<p>These properties decide which set of rules will be applied to the process.
-For example, if a <em>main executable</em> resides in <code>/system/bin</code>,
-the rules in the <code>[system]</code> section are applied. Similarly, if a
-<em>main executable</em> resides in <code>/vendor/bin</code>, the rules in the
-<code>[vendor]</code> section are applied.</p>
+ <li>
+ Several linker namespaces configuration sections:
-<p>Second, for each section, in addition to the <code>default</code> linker
-namespace, <code>addition.namespaces</code> specifies the extra linker
-namespaces (separated by comma) that will be created by the dynamic
-linker:</p>
+ <ul>
+ <li>Each section contains several namespaces (graph vertices) and several
+ fallback links between namespaces (graph arcs).</li>
-<pre class="prettyprint">
-additional.namespaces = namespace1,namespace2,namespace3
-</pre>
+ <li>Each namespace has its own isolation, search paths, permitted paths,
+ and visibility settings.</li>
+ </ul>
+ </li>
+</ul>
-<p>In the example above, the dynamic linker creates two linker namespaces
-(<code>default</code> and <code>sphal</code>) for the executables in
-<code>/system/bin</code>.</p>
+<p>The tables below describe the meaning of each property in detail.</p>
-<p>Third, for each linker namespace, following properties can be configured:</p>
-<pre class="prettyprint">
-namespace.${name}.search.paths = /path1/${LIB}:/path2/${LIB}
-namespace.${name}.permitted.paths = /path1:/path2
-namespace.${name}.isolated = true|false
-namespace.${name}.links = namespace1,namespace2
-namespace.${name}.link.${other}.shared_libs = lib1.so:lib2.so
-namespace.${name}.link.${other}.allow_all_shared_libs = true
-namespace.${name}.visible = true|false
-</pre>
-<p><code>namespace.${name}.search.paths</code> denotes the directories that
-will be prepended to the library name. Directories are separated by colons.
-<code>${LIB}</code> is a special placeholder. If the process is running a
-32-bit executable, <code>${LIB}</code> is substituted by
-<code>lib</code>. Similarly, if the process is running a 64-bit executable,
-<code>${LIB}</code> is substituted by <code>lib64</code>.</p>
-
-<p>In the example above, if a 64-bit executable in <code>/system/bin</code>
-links with <code>libexample.so</code>, the dynamic linker searches for
-<code>/system/lib64/libexample.so</code> first. If
-<code>/system/lib64/libexample.so</code> is not available, the dynamic
-linker searches for <code>/vendor/lib64/libexample.so</code>.</p>
-
-<p>If <code>namespace.${name}.isolated</code> is <code>true</code>, the
-dynamic linker loads only the shared libraries in the directories specified
-in <code>namespace.${name}.search.paths</code> or the shared libraries under
-the directories specified in
-<code>namespace.${name}.permitted.paths</code>.</p>
-
-<p>In the example above, a shared library that is loaded in the
-<code>sphal</code> linker namespace won't be able to link to shared libraries
-in <code>/system/lib[64]</code> because <code>namespace.sphal.isolated</code>
-is <code>true</code> and <code>/system/lib[64]</code> is in neither
-<code>namespace.sphal.permitted.paths</code> nor
-<code>namespace.sphal.search.paths</code>.</p>
-
-<p><code>namespace.${name}.links</code> specifies a comma-separated list of
-linker namespaces that the <code>${name}</code> linker namespace links to.</p>
-
-<p>In the example above, <code>namespace.sphal.links</code> specifies that the
-<code>sphal</code> linker namespace links to the <code>default</code> linker
-namespace.</p>
-
-<p><code>namespace.${name}.link.${other}.shared_libs</code> specifies the
-shared library names (separated by colons) that may utilize the fallback link.
-If a shared library can't be loaded into the <code>${name}</code> linker
-namespace and its name is in
-<code>namespace.${name}.link.${other}.shared_libs</code>, the dynamic linker
-will try to import the library from the <code>${other}</code> linker
-namespace.</p>
-
-<p>In the example above, <code>namespace.sphal.link.default.shared_libs</code>
-specifies that <code>libc.so</code> and <code>libm.so</code> may be exported by
-the <code>default</code> linker namespace. If a shared library loaded in the
-<code>sphal</code> linker namespace links to <code>libc.so</code> and the
-dynamic linker cannot find <code>libc.so</code> in
-<code>/vendor/lib[64]</code>, the dynamic linker will walk through the
-fallback link and find the <code>libc.so</code> exported by the
-<code>default</code> linker namespace.</p>
-
-<p>If <code>namespace.${name}.link.${other}.allow_all_shared_libs</code> is
-<code>true</code>, all shared library names may utilize the fallback link. If
-a shared library can't be loaded into the <code>${name}</code> linker
-namespace, the dynamic linker will try to import the library from the
-<code>${other}</code> linker namespace.</p>
-
-<p>If <code>namespace.${name}.visible</code> is <code>true</code>, the
-program will be able to obtain a linker namespace handle, which can be passed
-to <code>android_dlopen_ext()</code> later.</p>
-
-<p>In the example above, the <code>namespace.sphal.visible</code> is
-<code>true</code> so that <code>android_load_sphal_library()</code> can
-explicitly ask the dynamic linker to load a shared library in the
-<code>sphal</code> linker namespace.</p>
+<h3 id="directory-section-mapping-property">Directory-section mapping property</h3>
+
+<table>
+ <tr>
+ <th>Property</th>
+ <th>Description</th>
+ <th>Example</th>
+ </tr>
+
+ <tr>
+ <td><p><code>dir.<var>name</var></code></p></td>
+
+ <td>
+ <p>A path to a directory that the <code>[<var>name</var>]</code> section
+ applies to.</p>
+
+ <p>Each property maps the executables under the directory to a linker
+ namespaces configuration section. There might be two (or more) properties
+ with the same <code><var>name</var></code> but point to different
+ directories.</p>
+ </td>
+
+ <td>
+ <p>
+ <code>dir.system = /system/bin</code><br/>
+ <code>dir.system = /system/xbin</code><br/>
+ <code>dir.vendor = /vendor/bin</code><br/>
+ </p>
+
+ <p>This indicates that the configuration specified in the
+ <code>[system]</code> section applies to the executables that are loaded
+ from either <code>/system/bin</code> or <code>/system/xbin</code>.</p>
+
+ <p>The configuration specified in the <code>[vendor]</code> section applies
+ to the executables that are loaded from <code>/vendor/bin</code>.</p>
+ </td>
+ </tr>
+</table>
+
+
+
+<h3 id="relation-properties">Relation properties</h3>
+
+<table>
+ <tr>
+ <th>Property</th>
+ <th>Description</th>
+ <th>Example</th>
+ </tr>
+
+ <tr>
+ <td><code>additional.<wbr/>namespaces</code></td>
+
+ <td>
+ <p>A comma-separated list of additional namespaces (in addition to the
+ <code>default</code> namespace) for the section.</p>
+ </td>
+
+ <td>
+ <p><code>additional.<wbr/>namespaces = sphal,<wbr/>vndk</code></p>
+
+ <p>This indicates there are three namespaces (<code>default</code>,
+ <code>sphal</code>, and <code>vndk</code>) in the <code>[system]</code>
+ configuration.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>links</code></td>
+
+ <td>
+ <p>A comma-separated list of fallback namespaces.</p>
+
+ <p>If a shared library cannot be found in the current namespace, the dynamic
+ linker tries to load the shared library from the fallback namespaces. The
+ namespace specified at the beginning of the list has higher priority.</p>
+
+ <aside class="note">Note: Fallback namespaces are not transitive. For
+ example, namespace <em>A</em> links to namespace <em>B</em> and namespace
+ <em>B</em> links to namespace <em>C</em>. If the dynamic linker can not
+ find the library in namespace <em>A</em>, it ONLY searches namespace
+ <em>B</em>. It doesn't search namespace <em>C</em>.</aside>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>sphal.<wbr/>links = default,<wbr/>vndk</code></p>
+
+ <p>If a shared library or an executable requests a shared library that
+ cannot be loaded into the <code>sphal</code> namespace, the dynamic linker
+ tries to load the shared library from the <code>default</code>
+ namespace.</p>
+
+ <p>And then, if the shared library cannot be loaded from the
+ <code>default</code> namespace either, the dynamic linker tries to load the
+ shared library from the <code>vndk</code> namespace.</p>
+
+ <p>Finally, if all attempts fail, the dynamic linker returns an error.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>link.<wbr/><var>other</var>.<wbr/>shared_libs</code></td>
+
+ <td>
+ <p>A colon-separated list of shared libraries that can be searched in the
+ <code>other</code> namespaces when those libraries cannot be found in the
+ <code>name</code> namespace.</p>
+
+ <p>This property cannot be used with
+ <code>namespace.<wbr/><var>name</var>.<wbr/>link.<wbr/><var>other</var>.<wbr/>allow_all_shared_libs</code>.</p>
+
+ <aside class="note"><p>Note: This property shares the same underlying
+ implementation with
+ <a href="/devices/tech/config/namespaces_libraries">public.libraries.txt</a>
+ files. Both mechanisms control the imported shared libraries by specifying a
+ link with a library name filter.</p>
+
+ <p>The difference is that <code>ld.config.txt</code> is loaded by the
+ dynamic linker and all namespaces are created when a program starts. On the
+ contrary, <code>libnativeloader</code> creates a linker namespace when the
+ Zygote process is forked and specialized for an application. The namespace
+ for the application native libraries has a link that only allows the library
+ names specified in <code>public.libraries.txt</code>.</p></aside>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>sphal.<wbr/>link.<wbr/>default.<wbr/>shared_libs = libc.so:<wbr/>libm.so</code></p>
+
+ <p>This indicates that the fallback link only accepts <code>libc.so</code>
+ or <code>libm.so</code> as the requested library name. The dynamic linker
+ ignores the fallback link from <code>sphal</code> to
+ <code>default</code> namespace if the requested library name is not
+ <code>libc.so</code> nor <code>libm.so</code>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>link.<wbr/><var>other</var>.<wbr/>allow_all_shared_libs</code></td>
+
+ <td>
+ <p>A boolean value that indicates whether all shared libraries can be
+ searched in the <code><var>other</var></code> namespace when those libraries cannot
+ be found in the <code><var>name</var></code> namespace.</p>
+
+ <p>This property cannot be used with
+ <code>namespace.<wbr/><var>name</var>.<wbr/>link.<wbr/><var>other</var>.<wbr/>shared_libs</code>.</p>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>vndk.<wbr/>link.<wbr/>sphal.<wbr/>allow_all_shared_libs = true</code></p>
+
+ <p>This indicates all library names can walk through the fallback link
+ from <code>vndk</code> to <code>sphal</code> namespace.</p>
+ </td>
+ </tr>
+</table>
+
+
+
+<h3 id="namespace-properties">Namespace properties</h3>
+
+<table>
+ <tr>
+ <th>Property</th>
+ <th>Description</th>
+ <th>Example</th>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>isolated</code></td>
+
+ <td>
+ <p>A boolean value that indicates whether the dynamic linker should check
+ where the shared library resides.</p>
+
+ <p>If <code>isolated</code> is <code>true</code>, only the shared libraries
+ that are <em>in</em> one of the <code>search.paths</code> directories
+ (excluding sub-directories) or are <em>under</em> one of the
+ <code>permitted.paths</code> directories (including sub-directories) can be
+ loaded.</p>
+
+ <p>If <code>isolated</code> is <code>false</code> (default), the dynamic
+ linker doesn't check the path of shared libraries.</p>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>sphal.<wbr/>isolated = true</code></p>
+
+ <p>This indicates that only the shared libraries in
+ <code>search.paths</code> or under <code>permitted.paths</code> can be
+ loaded into the <code>sphal</code> namespace.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>search.paths</code></td>
+
+ <td>
+ <p>A colon-separated list of directories to search for shared
+ libraries.</p>
+
+ <p>The directories specified in <code>search.paths</code> are prepended
+ to the requested library name if function calls to <code>dlopen()</code> or
+ <code>DT_NEEDED</code> entries do not specify the full path. The directory
+ specified at the beginning of the list has higher priority.</p>
+
+ <p>When <code>isolated</code> is <code>true</code>, shared libraries that
+ are <em>in</em> one of the <code>search.paths</code> directories (excluding
+ sub-directories) can be loaded regardless the <code>permitted.paths</code>
+ property.</p>
+
+ <p>For example, if <code>search.paths</code> is
+ <code>/system/${LIB}</code> and <code>permitted.paths</code> is empty,
+ <code>/system/${LIB}/libc.so</code> can be loaded but
+ <code>/system/${LIB}/vndk/libutils.so</code> cannot be loaded.</p>
+
+ <aside class="note">Note: <code>${LIB}</code> is a built-in
+ placeholder. It is replaced by <code>lib</code> for 32-bit processes and
+ <code>lib64</code> for 64-bit processes.</aside>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>default.<wbr/>search.paths = /system/${LIB}</code></p>
+
+ <p>This indicates that the dynamic linker searches
+ <code>/system/${LIB}</code> for shared libraries.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>asan.search.paths</code></td>
+
+ <td>
+ <p>A colon-separated list of directories to search for shared libraries when
+ <a href="/devices/tech/debug/asan">Address Sanitizer</a> is enabled.</p>
+
+ <p><code>namespace.<wbr/><var>name</var>.<wbr/>search.paths</code> is
+ ignored when <a href="/devices/tech/debug/asan">Address Sanitizer</a> is
+ enabled.</p>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>default.<wbr/>asan.search.paths = /data/asan/system/${LIB}:<wbr/>/system/${LIB}</code></p>
+
+ <p>This indicates that when
+ <a href="/devices/tech/debug/asan">Address Sanitizer</a> is enabled the
+ dynamic linker searches <code>/data/asan/system/${LIB}</code> first and
+ then searches <code>/system/${LIB}</code>.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>permitted.paths</code></td>
+
+ <td>
+ <p>A colon-separated list of directories (including sub-directories) where
+ the dynamic linker can load the shared libraries (in addition to
+ <code>search.paths</code>) when <code>isolated</code> is
+ <code>true</code>.</p>
+
+ <p>The shared libraries that are under the sub-directories of
+ <code>permitted.paths</code> can be loaded too. For example, if
+ <code>permitted.paths</code> is <code>/system/${LIB}</code>,
+ both <code>/system/${LIB}/libc.so</code> and
+ <code>/system/${LIB}/vndk/libutils.so</code> can be loaded.</p>
+
+ <p>If <code>isolated</code> is <code>false</code>,
+ <code>permitted.paths</code> are ignored and a warning is emitted.</p>
+
+ <aside class="note">Note: <code>permitted.paths</code> are NOT
+ prepended to the requested library names when the dynamic linker is
+ searching for a shared library. Its main purpose is to allow programers to
+ load shared libraries into an isolated namespace by specifying the full path
+ of the shared library.</aside>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>default.<wbr/>permitted.paths = /system/${LIB}/hw</code></p>
+
+ <p>This indicates that the shared libraries under
+ <code>/system/${LIB}/hw</code> can be loaded into the isolated
+ <code>default</code> namespace.</p>
+
+ <p>For example, without <code>permitted.paths</code>,
+ <code>libaudiohal.so</code> won't be able to load
+ <code>/system/${LIB}/hw/audio.a2dp.default.so</code> into the
+ <code>default</code> namespace.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>asan.permitted.paths</code></td>
+
+ <td>
+ <p>A colon-separated list of directories where the dynamic linker can load
+ the shared libraries when <a href="/devices/tech/debug/asan">Address
+ Sanitizer</a> is enabled.</p>
+
+ <p><code>namespace.<wbr/><var>name</var>.<wbr/>permitted.paths</code> is
+ ignored when <a href="/devices/tech/debug/asan">Address Sanitizer</a> is
+ enabled.</p>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>default.<wbr/>asan.permitted.paths = /data/asan/system/${LIB}/hw:<wbr/>/system/${LIB}/hw</code></p>
+
+ <p>This indicates that when
+ <a href="/devices/tech/debug/asan">Address Sanitizer</a> is enabled shared
+ libraries under <code>/data/asan/system/${LIB}/hw</code> or
+ <code>/system/${LIB}/hw</code> can be loaded to the isolated
+ <code>default</code> namespace.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>namespace.<wbr/><var>name</var>.<wbr/>visible</code></td>
+
+ <td>
+ <p>A boolean value that indicates whether the program (other than
+ <code>libc</code>) can obtain a linker namespace handle with
+ <code>android_get_exported_namespace()</code> and open a shared library in
+ the linker namespace by passing the handle to
+ <code>android_dlopen_ext()</code>.</p>
+
+ <p>If <code>visible</code> is <code>true</code>,
+ <code>android_get_exported_namespace()</code> always returns the handle if
+ the namespace exists.</p>
+
+ <p>If <code>visible</code> is <code>false</code> (default),
+ <code>android_get_exported_namespace()</code> always returns
+ <code>NULL</code> regardless the presence of the namespace. Shared libraries
+ can only be loaded into this namespace if (1) they are requested by another
+ linker namespace that has a fallback link to this namespace or (2) they are
+ requested by other shared libraries or executables in this namespace.</p>
+ </td>
+
+ <td>
+ <p><code>namespace.<wbr/>sphal.<wbr/>visible = true</code></p>
+
+ <p>This indicates that <code>android_get_exported_namespace("sphal")</code>
+ can return a valid linker namespace handle.</p>
+ </td>
+ </tr>
+</table>
@@ -217,11 +495,11 @@ explicitly ask the dynamic linker to load a shared library in the
<h2 id="linker-namespace-isolation">Linker namespace isolation</h2>
-<p>There are three configurations in
+<p>There are three configuration files in
<code>${android-src}/system/core/rootdir/etc</code>. Depending on the value of
<code>PRODUCT_TREBLE_LINKER_NAMESPACES</code>, <code>BOARD_VNDK_VERSION</code>,
and <code>BOARD_VNDK_RUNTIME_DISABLE</code> in <code>BoardConfig.mk</code>,
-different configurations will be selected:</p>
+different configurations are selected:</p>
<table>
<tr>
@@ -282,7 +560,7 @@ BOARD_VNDK_RUNTIME_DISABLE := true
<p>If <code>BOARD_VNDK_RUNTIME_DISABLE</code> is <code>true</code>,
<code>${android-src}/system/core/rootdir/etc/ld.config.vndk_lite.txt</code>
-will be installed.</p>
+is installed.</p>
@@ -436,7 +714,7 @@ processes, which is excerpted from the <code>[system]</code> section in
<code>/product/app</code><br/>
<code>/product/priv-app</code><br/>
<code>/data</code><br/>
- <code>/mnt/expand
+ <code>/mnt/expand</code>
</td>
</tr>
diff --git a/en/devices/graphics/images/winscope_screenshot.png b/en/devices/graphics/images/winscope_screenshot.png
new file mode 100644
index 00000000..23dcb9b0
--- /dev/null
+++ b/en/devices/graphics/images/winscope_screenshot.png
Binary files differ
diff --git a/en/devices/graphics/tracing-win-transitions.html b/en/devices/graphics/tracing-win-transitions.html
new file mode 100644
index 00000000..f86c9741
--- /dev/null
+++ b/en/devices/graphics/tracing-win-transitions.html
@@ -0,0 +1,137 @@
+<html devsite>
+ <head>
+ <title>Tracing Window Transitions</title>
+ <meta name="project_path" value="/_project.yaml" />
+ <meta name="book_path" value="/_book.yaml" />
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <p>You can trace window transitions with WinScope, which provides infrastructure and tools to
+ record and analyze Window Manager and Surface Flinger states during and after transitions.
+ WinScope records all pertinent system service states to a trace file, which you can use to
+ replay and step through the transition.
+
+ </p>
+
+ <h2 id="capture_trace">Capturing traces</h2>
+ <p>You can capture traces through Quick Settings or ADB on devices running userdebug or eng
+ builds.
+ </p>
+
+ <h3 id="capture_trace_quick_settings">From Quick Settings</h3>
+ <ol>
+ <li><a href="https://developer.android.com/studio/debug/dev-options#enable"
+ class="external">Enable developer options</a></li>
+ <li>Go to <b>Developer options</b> -> <b>Quick settings developer tiles</b></li>
+ <li>Enable WinScope Trace</li>
+ <li>Open Quick Settings</li>
+ <li>Tap <b>Winscope Trace</b> to enable tracing</li>
+ <li>Run window transitions on the device</li>
+ <li>After you are finished, open Quick Settings and tap <b>Winscope Trace</b> to disable
+ tracing
+ </li>
+ </ol>
+ <p>Traces are written to <code>/data/misc/wmtrace/wm_trace.pb</code> and
+ <code>/data/misc/wmtrace/layers_trace.pb</code>. They are also included in any bugreports.
+ </p>
+
+ <h3 id="capture_trace_quick_adb">From ADB</h3>
+ <h4 id="capture_trace_quick_adb_wm">Window Manager trace</h4>
+ <ol>
+ <li>Enable trace
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell cmd window tracing start</pre>
+ </li>
+ <li>Disable trace
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell cmd window tracing stop</pre>
+ </li>
+ <li>Grab trace file
+ <pre class="devsite-terminal devsite-click-to-copy">adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb</pre>
+ </li>
+ </ol>
+ <h4 id="capture_trace_quick_adb_sf">Surface Flinger trace</h4>
+ <ol>
+ <li>Enable trace
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell su root service call SurfaceFlinger 1025 i32 1</pre>
+ </li>
+ <li>Disable trace
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell su root service call SurfaceFlinger 1025 i32 0</pre>
+ </li>
+ <li>Grab trace file
+ <pre class="devsite-terminal devsite-click-to-copy">adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb</pre>
+ </li>
+ </ol>
+
+ <h3 id="capture_trace_gen_state">Generating state dumps</h3>
+ <p><p>WinScope can read a snapshot of Window Manager and Surface Flinger's current state from
+ bugreports. The bugreport stores the states as separate proto files inside the
+ <code>proto</code> folder. To generate the state dumps using ADB, run these commands.</p>
+ <h4 id="window_manager_dump">Window Manager</h4>
+ <pre class="devsite-terminal devsite-click-to-copy">adb exec-out dumpsys window --proto > window_dump.pb</pre>
+ <h4 id="surface_flinger_dump">Surface Flinger</h4>
+ <pre class="devsite-terminal devsite-click-to-copy">adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.pb</pre>
+ </p>
+
+ <h2 id="analyze_traces">Analyzing traces</h2>
+ <p>To analyze a trace file, use the WinScope web app. The app can be built from source or opened
+ from the prebuilt directory.
+ </p>
+ <ol>
+ <li>Download prebuilt artifact from Android source repository
+ <pre class="devsite-terminal devsite-click-to-copy">curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html</pre>
+ </li>
+ <li>Open downloaded artifact in a web browser</li>
+ <li>After WinScope opens, click <b>OPEN FILE</b> to load a trace file</li>
+ </ol>
+
+ <h3 id="using_winscope">Using WinScope</h3>
+ <p>After opening a trace file in WinScope, you can analyze the trace in several ways.</p>
+ <img src="images/winscope_screenshot.png" alt="WinScope Screenshot">
+ <p><em>Timeline</em></p>
+ <p>Use arrow keys or click each entry to navigate through the timeline.</p>
+ <p><em>Screen</em></p>
+ <p>Provides a visual representation of every visible window on the screen. Click a window to
+ select the source window in the hierarchy.</p>
+ <p><em>Hierarchy</em></p>
+ <p>Represents each window known to the system. Some windows do not contain buffers, but
+ exist to set policies on its children. Visible windows are marked with the <code>V</code> icon.
+ </p>
+ <p><em>Properties</em></p>
+ <p>Shows state information for the selected entry in the hierarchy.</p>
+
+ <h2 id="winscope_dev">Developing WinScope</h2>
+ <p>
+ When the trace is enabled, Window Manager and Surface Flinger capture and save current state to
+ a file at each point of interest.
+ <code>frameworks/base/core/proto/android/server/windowmanagertrace.proto</code> and
+ <code>frameworks/native/services/surfaceflinger/layerproto/layerstrace.proto</code> contain the
+ proto definitions for their internal states.
+ </p>
+ <h3 id="winscope_dev_checkout">Checking out code and setting up environment</h3>
+ <ol>
+ <li>Install <a href="https://yarnpkg.com" class="external">Yarn</a>, a JS package manager</li>
+ <li><a href="/setup/build/downloading.html">Download Android source</a></li>
+ <li>Navigate to <code>development/tools/winscope</code></li>
+ <li>Run <pre class="devsite-terminal devsite-click-to-copy">yarn install</pre></li>
+ </ol>
+ <h3 id="winscope_dev_build">Building &amp; testing changes</h3>
+ <ol>
+ <li>Navigate to <code>development/tools/winscope</code></li>
+ <li>Run <pre class="devsite-terminal devsite-click-to-copy">yarn run dev</pre></li>
+ </ol>
+ </body>
+</html>
diff --git a/en/devices/tech/admin/enterprise-telephony.html b/en/devices/tech/admin/enterprise-telephony.html
index 95d73bd0..b1b7abe0 100644
--- a/en/devices/tech/admin/enterprise-telephony.html
+++ b/en/devices/tech/admin/enterprise-telephony.html
@@ -24,16 +24,15 @@
<p>
-This document outlines the changes made to the telephony-related parts of the
-Android framework in the 7.0 release to support enterprise use cases. This
-document is targeted at manufacturers and focuses entirely on framework-related
-telephony changes. In addition, this document outlines the changes that OEMs
-will need to make to their preloaded applications that handle telephony-related
-functions.
+This document outlines the telephony-related parts of the Android framework that
+support enterprise use cases. This document is targeted at manufacturers and
+focuses entirely on framework-related telephony changes. In addition, this
+document outlines the changes that OEMs will need to make to their preloaded
+applications that handle telephony-related functions.
</p>
<p>
-Android 7.0 introduces several new features to support enterprise telephony use
+Android 7.0 introduced several new features to support enterprise telephony use
cases, in particular:
</p>
@@ -41,19 +40,32 @@ cases, in particular:
<li>Cross profile contact search - Allows applications in the personal profile
to search for contacts that are supplied by the managed profile contacts
provider, which can be backed by any datastore, for example local to the device
-or perhaps within an enterprise directory
+or perhaps within an enterprise directory.</li>
<li>Cross profile contact badging - Allows work contacts to be clearly
-distinguished from personal contacts
+distinguished from personal contacts.</li>
<li>Making Connection Service managed profile aware - Allows applications within
the Managed Profile to offer telephony features, such as to provide a separate
work dialer and work ConnectionService</li>
</ul>
+<p>
+Android 5.0 supported the following enterprise telephony feature:
+</p>
+
+<ul>
+<li>Work contact name lookup for telephone numbers using
+<a
+ class="external"
+ href="https://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup#ENTERPRISE_CONTENT_FILTER_URI">
+<code>ENTERPRISE_CONTENT_FILTER_URI</code></a>
+</li>
+</ul>
+
<h2 id="examples-and-source">Examples and source</h2>
<p>
The Android Open Source Project (AOSP) implementations of Dialer, Contacts, and
-Messaging apps have integrated the cross profile contact search and badging
+Messaging apps have integrated the cross profile contact search and badging
capability.
</p>
@@ -76,9 +88,9 @@ for contacts in their Dialer Contacts and SMS/MMS Messaging apps.</p>
<p>
Cross profile contact search should be implemented using the Enterprise Contacts
API (<code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code> etc.), which can be found
-in the <a
-href="https://developers.google.com/android/work/overview#contacts">EMM developer's overview</a>
-on the Android EMM Developers site.
+in the
+<a class="external" href="https://developer.android.com/work/contacts">Work
+profile contacts</a> guide on the Android Developers site.
</p>
<h3 id="work-profile-contact-badging">Work profile contact badging</h3>
@@ -86,9 +98,11 @@ on the Android EMM Developers site.
<p>
Work profile contact badging can be implemented by checking
<code>ContactsContract.Directory.isEntepriseDirectoryId()</code> if available or
-<code><a
-href="http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#isEnterpriseContactId(long)">isEnterpriseContactId</a></code>
-.
+<a
+ class="external"
+ href="http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#isEnterpriseContactId(long)">
+<code>isEnterpriseContactId()</code></a>. To learn more, see
+<a class="external" href="https://developer.android.com/work/contacts">Work profile contacts</a>.
</p>
<h3 id="managed-profile-aware-connectionservice">Managed Profile Aware
@@ -108,7 +122,8 @@ The cross profile contact search and badging feature can be validated by:
<ol>
<li>Setting up a managed profile on a test device using <a
-href="https://github.com/googlesamples/android-testdpc">TestDPC</a>.
+href="https://github.com/googlesamples/android-testdpc"
+class="external">TestDPC</a>.
<li>Enabling cross profile contact search.
<li>Adding a local work contact within the managed profile.
<li>Searching for that contact within the system Dialer Contacts and SMS/MMS
diff --git a/en/devices/tech/config/update.html b/en/devices/tech/config/update.html
index db1a9cd9..e3c6513a 100644
--- a/en/devices/tech/config/update.html
+++ b/en/devices/tech/config/update.html
@@ -30,22 +30,16 @@ in the Android Open Source Project (AOSP).</p>
<p>To update APN information or your CarrierConfig, you need
to submit the request using a Google Account with an active corporate email
-address (e.g., An APN update request from Acme Company should come from an
+address (e.g., an APN update request from Acme Company should come from an
email address such as <em>foobar@acme.com</em>).</p>
<p>If you do not have a Google Account that links to your corporate email
-address, sign out of all Gmail accounts from your browser (we recommend you use
-a private browsing feature such as an incognito window to avoid confusion with
+address, sign out of all Gmail accounts from your browser (we recommend using
+a private browsing feature, such as an incognito window, to avoid confusion with
your other accounts) and then
-<a href="https://accounts.google.com/SignUpWithoutGmail?hl=en"> create a Google
+<a href="https://accounts.google.com/SignUpWithoutGmail?hl=en">create a Google
account with your corporate email address</a>.</p>
-<!--<ol>-->
- <!--<li>Sign out of all gmail accounts from your browser. (We recommend you use a private browsing
- feature such as an incognito window to avoid confusion with your other accounts.)</li>-->
- <!--<li>Create a Google account with your corporate email address using:
- <a href="https://accounts.google.com/SignUpWithoutGmail?hl=en">
- https://accounts.google.com/SignUpWithoutGmail?hl=en</a></li>-->
-<!--</ol>-->
-<aside class="note"><strong>Note:</strong> Do NOT associate any Gmail accounts with this
+
+<aside class="caution"><strong>Caution:</strong> Do NOT associate any Gmail accounts with this
newly created account.</aside>
<h2 id="local-environment">Prepare a local development environment</h2>
@@ -98,7 +92,7 @@ requesting.</p>
<h2 id="submit-changes">Submit changes</h2>
-<p>When you're ready to make changes, follow these steps:</p>
+<p>To make changes:</p>
<ol>
<li>Identify which file to change.</li>
<li>Make changes to the file.</li>
diff --git a/en/devices/tech/connect/esim-overview.md b/en/devices/tech/connect/esim-overview.md
index 0aa91fcc..11498351 100644
--- a/en/devices/tech/connect/esim-overview.md
+++ b/en/devices/tech/connect/esim-overview.md
@@ -363,8 +363,8 @@ support is disabled.
To implement the LUI, you must provide an activity for the following actions:
-+ `android.telephony.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS`
-+ `android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION`
++ `android.service.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS`
++ `android.service.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION`
As with the service, each activity must require the
`android.permission.BIND_EUICC_SERVICE` system permission. Each should have an
@@ -380,10 +380,8 @@ For example:
android:exported="true"
android:permission="android.permission.BIND_EUICC_SERVICE">
<intent-filter android:priority="100">
- <action android:name=
- "android.telephony.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS" />
- <action android:name=
- "android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION" />
+ <action android:name="android.service.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS" />
+ <action android:name="android.service.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.service.euicc.category.EUICC_UI" />
</intent-filter>
diff --git a/en/legal.html b/en/legal.html
index 181d4bf7..d71ccc0c 100644
--- a/en/legal.html
+++ b/en/legal.html
@@ -40,7 +40,7 @@
style="margin:0;padding:0 2px;vertical-align:baseline" /> logo, and
<a href="http://www.google.com/permissions/">other trademarks</a> are property of Google LLC.</p>
-<p>See the <a href="/setup/brands.html">Brand Guidelines</a> for additional details.</p>
+<p>See the <a href="/setup/start/brands.html">Brand Guidelines</a> for additional details.</p>
<h2 id="WebSite">Web Site Content</h2>
diff --git a/en/security/_toc-bulletins.yaml b/en/security/_toc-bulletins.yaml
index 5914969e..fd95a0ae 100644
--- a/en/security/_toc-bulletins.yaml
+++ b/en/security/_toc-bulletins.yaml
@@ -11,6 +11,8 @@ toc:
section:
- title: 2018 Bulletins
section:
+ - title: December
+ path: /security/bulletin/2018-12-01
- title: November
path: /security/bulletin/2018-11-01
- title: October
@@ -111,6 +113,8 @@ toc:
path: /security/bulletin/pixel/index
- title: 2018 Bulletins
section:
+ - title: December
+ path: /security/bulletin/pixel/2018-12-01
- title: November
path: /security/bulletin/pixel/2018-11-01
- title: October
diff --git a/en/security/apksigning/index.html b/en/security/apksigning/index.html
index 53130c78..2086d0a5 100644
--- a/en/security/apksigning/index.html
+++ b/en/security/apksigning/index.html
@@ -26,9 +26,10 @@
<p>
Application signing allows developers to identify the author of the application
and to update their application without creating complicated interfaces and
-permissions. Every application that is run on the Android platform must be <a
-href="https://developer.android.com/studio/publish/app-signing.html">signed by
-the developer</a>. Applications that attempt to install without being signed
+permissions. Every application that is run on the Android platform must be
+<a class="external" href="https://developer.android.com/studio/publish/app-signing">
+signed by the developer</a>.
+Applications that attempt to install without being signed
will be rejected by either Google Play or the package installer on the Android
device.
</p>
@@ -64,19 +65,19 @@ does not perform CA verification for application certificates.
Applications are also able to declare security permissions at the Signature
protection level, restricting access only to applications signed with the same
key while maintaining distinct UIDs and Application Sandboxes. A closer
-relationship with a shared Application Sandbox is allowed via the <a
-href="https://developer.android.com/guide/topics/manifest/manifest-element.html#uid">shared
-UID feature</a> where two or more applications signed with same developer key
-can declare a shared UID in their manifest.
+relationship with a shared Application Sandbox is allowed via the
+<a class="external" href="https://developer.android.com/guide/topics/manifest/manifest-element#uid">
+shared UID feature</a> where two or more applications signed with same
+developer key can declare a shared UID in their manifest.
</p>
<h2 id="schemes">APK signing schemes</h2>
<p>
Android supports three application signing schemes:</p>
<ul>
<li>v1 scheme: based on JAR signing</li>
- <li>v2 scheme: <a href="/security/apksigning/v2.html">APK Signature Scheme v2</a>,
+ <li>v2 scheme: <a href="/security/apksigning/v2">APK Signature Scheme v2</a>,
which was introduced in Android 7.0.</li>
- <li>v3 scheme: <a href="/security/apksigning/v3.html">APK Signature Scheme v3</a>,
+ <li>v3 scheme: <a href="/security/apksigning/v3">APK Signature Scheme v3</a>,
which was introduced in Android 9.</li>
</ul>
@@ -89,11 +90,12 @@ contain v1 signatures.
</p>
<h3 id="v1">JAR signing (v1 scheme)</h3>
<p>
-APK signing has been a part of Android from the beginning. It is based on <a
+APK signing has been a part of Android from the beginning. It is based on <a class="external"
href="https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Signed_JAR_File">
-signed JAR</a>. For details on using this scheme, see the Android Studio documentation on
-<a href="https://developer.android.com/studio/publish/app-signing.html">Signing
-your app</a>.
+signed JAR</a>. For details on using this scheme, see the Android Studio
+documentation on
+<a class="external" href="https://developer.android.com/studio/publish/app-signing">
+Signing your app</a>.
</p>
<p>
v1 signatures do not protect some parts of the APK, such as ZIP metadata. The
@@ -110,8 +112,8 @@ scheme) and later. (v2 scheme was updated to v3 in Android P to include
additional information in the signing block, but otherwise works the same.) The
contents of the APK are hashed and signed, then the resulting APK Signing Block
is inserted into the APK. For details on applying the v2+ scheme to an app, see
-<a href="https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2">APK
-Signature Scheme v2</a>.
+<a class="external" href="https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_v2">
+APK Signature Scheme v2</a>.
</p>
<p>
During validation, v2+ scheme treats the APK file as a blob and performs signature
@@ -126,7 +128,7 @@ format can be installed on older Android devices (which simply ignore the extra
data added to the APK), as long as these APKs are also v1-signed.
</p>
<p>
- <img src="../images/apk-validation-process.png" alt="APK signature verification process" id="figure1" />
+ <img src="/security/images/apk-validation-process.png" alt="APK signature verification process" id="figure1" />
</p>
<p class="img-caption"><strong>Figure 1.</strong> APK signature verification
process</p>
@@ -141,7 +143,7 @@ APK was v2-signed, which makes Android 7.0 and newer refuse to verify APKs
using their v1 signatures.
</p>
-<p>For details on the APK signature verification process, see the <a href="v2.html#verification">
+<p>For details on the APK signature verification process, see the <a href="/security/apksigning/v2#verification">
Verification section</a> of APK Signature Scheme v2.</p>
</body>
diff --git a/en/security/bulletin/2018-12-01.html b/en/security/bulletin/2018-12-01.html
new file mode 100644
index 00000000..ac427bb9
--- /dev/null
+++ b/en/security/bulletin/2018-12-01.html
@@ -0,0 +1,848 @@
+<html devsite>
+ <head>
+ <title>Android Security Bulletin—December 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 December 3, 2018 | Updated December 5, 2018</em></p>
+
+<p>
+The Android Security Bulletin contains details of security vulnerabilities
+affecting Android devices. Security patch levels of 2018-12-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"
+ class="external">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/">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-12-01">December 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/">Android security platform</a>
+and service protections such as
+<a href="https://www.android.com/play-protect" class="external">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" class="external">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" class="external">Google Mobile
+Services</a>, and is especially important for users who install apps from
+outside of Google Play.</li>
+</ul>
+<h2 id="2018-12-01-details">2018-12-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-12-01 patch level. Vulnerabilities are
+grouped under the component 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, such as 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 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-9547</td>
+ <td><a
+ href="https://android.googlesource.com/platform/frameworks/native/+/e6eb42cb2e57747e52e488d54da314bc6eabb546"
+ class="external">A-114223584</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9548</td>
+ <td><a
+ href="https://android.googlesource.com/platform/frameworks/base/+/c97efaa05124e020d7cc8c6e08be9c3b55ac4ea7" class="external">A-112555574</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</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-9549</td>
+ <td><a
+ href="https://android.googlesource.com/platform/external/aac/+/6f6d220a3255e7cbd31bcd1220ffb83af0a2779a"
+ class="external">A-112160868</a></td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9550</td>
+ <td><a
+ href="https://android.googlesource.com/platform/external/aac/+/ce97e7d55e1f69683b5bc8f19cc8da8c85bc2cd4"
+ class="external">A-112660981</a></td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9551</td>
+ <td><a
+ href="https://android.googlesource.com/platform/external/aac/+/0e5db9fee912d367a572b88f0d86f9a33006fa29"
+ class="external">A-112891548</a></td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9552</td>
+ <td><a
+ href="https://android.googlesource.com/platform/external/libhevc/+/d15da6f960dd2d5b77faced4e799f8bf53785d9c"
+ class="external">A-113260892</a></td>
+ <td>ID</td>
+ <td>Critical</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9553</td>
+ <td><a
+ href="https://android.googlesource.com/platform/external/libvpx/+/c4c92b2c6ed72a78ea430c3cdce564ec11866a24"
+ class="external">A-116615297</a></td>
+ <td>RCE</td>
+ <td>High</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9538</td>
+ <td><a
+ href="https://android.googlesource.com/platform/external/v4l2_codec2/+/0a7d252adb774338c2c69a17651aceca3aec1b23"
+ class="external">A-112181526</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9554</td>
+ <td><a
+ href="https://android.googlesource.com/platform/frameworks/av/+/16f9b39c69626093ae9225b458739707c9a3b4e7"
+ class="external">A-114770654</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>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 transmission 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-9555</td>
+ <td><a
+ href="https://android.googlesource.com/platform/system/bt/+/02fc52878d8dba16b860fbdf415b6e4425922b2c"
+ class="external">A-112321180</a></td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9556</td>
+ <td><a
+ href="https://android.googlesource.com/platform/system/update_engine/+/840a7eae5a6d8250490e8ea430193531f0c4ccd6"
+ class="external">A-113118184</a></td>
+ <td>RCE</td>
+ <td>Critical</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9557</td>
+ <td>A-35385357<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>7.0, 7.1.1, 7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9558</td>
+ <td><a
+ href="https://android.googlesource.com/platform/system/nfc/+/ce7fcb95d5111ad8c554e7ec8ff02f9b40196cdc"
+ class="external">A-112161557</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9559</td>
+ <td><a
+ href="https://android.googlesource.com/platform/system/vold/+/c2e37da22aadcdb4a5b7f61a61f824ab8e9b8af9"
+ class="external">A-112731440</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9560</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/9009da96e00434501d9398bbfbc636902c757632"
+ class="external">A-79946737</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9562</td>
+ <td><a
+ href="https://android.googlesource.com/platform/system/bt/+/1bb14c41a72978c6075c5753a8301ddcbb10d409"
+ class="external">A-113164621</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9566</td>
+ <td><a
+ href="https://android.googlesource.com/platform/system/bt/+/314336a22d781f54ed7394645a50f74d6743267d"
+ class="external">A-74249842</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+</table>
+
+<h2 id="2018-12-05-details">2018-12-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-12-05 patch level. Vulnerabilities are
+grouped under the component 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,
+such as 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="system-05">System</h3>
+
+<p>The most severe vulnerability in this section could lead to remote
+information disclosure with no additional execution privileges needed.</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-9565</td>
+ <td>A-16680558<a href="#asterisk">*</a></td>
+ <td>ID</td>
+ <td>High</td>
+ <td>OMA-DM</td>
+ </tr>
+</table>
+
+<h3 id="htc-components">HTC 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-9567</td>
+ <td>A-65543936<a href="#asterisk">*</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>Bootloader</td>
+ </tr>
+</table>
+
+<h3 id="kernel-components">Kernel components</h3>
+
+<p>The most severe vulnerability in this section could enable a local attacker
+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-10840</td>
+ <td>A-116406508<br />
+<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-10840">Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>ext4 filesystem</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9568</td>
+ <td>A-113509306<br />
+<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/net/core/sock.c?id=9d538fa60bad4f7b23193c89e843797a1cf71ef3">Upstream kernel</a></td>
+ <td>EoP</td>
+ <td>High</td>
+ <td>network</td>
+ </tr>
+</table>
+
+<h3 id="qualcomm-components">Qualcomm components</h3>
+
+<p>These vulnerabilities affect Qualcomm components and are described in
+further detail in the appropriate Qualcomm 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-2018-11960</td>
+ <td>A-114042002<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=18ce15db603e19cfac9a2f4076f255e879100495">QC-CR#2264832</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>HWEngines</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11961</td>
+ <td>A-114040881<br />
+<a href="https://source.codeaurora.org/quic/le/platform/hardware/qcom/gps/commit/?id=c57ee0a5d3261ab20c35b451d1b3ae2b02a21591">QC-CR#2261813</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>GPS_AP_LINUX</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11963</td>
+ <td>A-114041685<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9ac3476a91c384a3f2760fabaecef0ad8698d7b">QC-CR#2220770</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Automotive Multimedia</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 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-8248</td>
+ <td>A-78135902<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Critical</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11004</td>
+ <td>A-66913713<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Critical</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18141</td>
+ <td>A-67712316<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Critical</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5913</td>
+ <td>A-79419833<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Critical</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11279</td>
+ <td>A-109678200<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>Critical</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18319</td>
+ <td>A-78284753<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18321</td>
+ <td>A-78283451<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18322</td>
+ <td>A-78285196<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18323</td>
+ <td>A-78284194<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18324</td>
+ <td>A-78284517<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18327</td>
+ <td>A-78240177<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18331</td>
+ <td>A-78239686<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18332</td>
+ <td>A-78284545<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18160</td>
+ <td>A-109660689<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18326</td>
+ <td>A-78240324<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8276</td>
+ <td>A-68141338<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18328</td>
+ <td>A-78286046<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18329</td>
+ <td>A-73539037<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18330</td>
+ <td>A-73539235<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3595</td>
+ <td>A-71501115<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18320</td>
+ <td>A-33757308<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11999</td>
+ <td>A-74236942<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5867</td>
+ <td>A-77485184<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5868</td>
+ <td>A-77484529<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5869</td>
+ <td>A-33385206<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-5754</td>
+ <td>A-79419639<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5915</td>
+ <td>A-79420511<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11267</td>
+ <td>A-109678338<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>High</td>
+ <td>Closed-source component</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11922</td>
+ <td>A-112279564<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"
+ class="external">Check and update your Android version</a>.</p>
+<ul>
+<li>Security patch levels of 2018-12-01 or later address all issues associated
+with the 2018-12-01 security patch level.</li>
+<li>Security patch levels of 2018-12-05 or later address all issues associated
+with the 2018-12-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-12-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-12-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-12-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-12-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 Pixel&hairsp;/&hairsp;Nexus devices
+available from the
+<a href="https://developers.google.com/android/drivers" class="external">Google
+Developer site</a>.
+</p>
+<p>
+<strong>6. Why are security vulnerabilities split between this bulletin and
+device&hairsp;/&hairsp;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 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"
+ class="external">Samsung</a>,
+<a href="https://lgsecurity.lge.com/security_updates.html"
+ class="external">LGE</a>, or
+<a href="/security/bulletin/pixel/"
+ class="external">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>December 3, 2018</td>
+ <td>Bulletin published</td>
+ </tr>
+ <tr>
+ <td>1.1</td>
+ <td>December 5, 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 8feee59b..3eeceac6 100644
--- a/en/security/bulletin/2018.html
+++ b/en/security/bulletin/2018.html
@@ -36,6 +36,20 @@ of all bulletins, see the <a href="/security/bulletin/index.html">Android Securi
<th>Published date</th>
<th>Security patch level</th>
</tr>
+<tr>
+ <td><a href="/security/bulletin/2018-12-01.html">December 2018</a></td>
+ <td>
+ <a href="/security/bulletin/2018-12-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
+ </td>
+ <td>December 3, 2018</td>
+ <td>2018-12-01<br>
+ 2018-12-05</td>
+ </tr>
<tr>
<td><a href="/security/bulletin/2018-11-01.html">November 2018</a></td>
<td>
diff --git a/en/security/bulletin/_translation.yaml b/en/security/bulletin/_translation.yaml
index 7ff6379d..1a07c4e8 100644
--- a/en/security/bulletin/_translation.yaml
+++ b/en/security/bulletin/_translation.yaml
@@ -53,7 +53,7 @@ language:
cc:
- daroberts@google.com
- sac-doc-leads+translation@google.com
-- shaileshs@google.com
+- lhaviland@google.com
reviewer:
- daroberts
product: Android
diff --git a/en/security/bulletin/index.html b/en/security/bulletin/index.html
index 3b13b8df..6fdea4d0 100644
--- a/en/security/bulletin/index.html
+++ b/en/security/bulletin/index.html
@@ -36,13 +36,6 @@ vulnerability details specific to their products, such as:</p>
<li><a href="https://security.samsungmobile.com/securityUpdate.smsb">Samsung</a></li>
</ul>
-<h3 id="notification">Notifications</h3>
-<p>To get notifications when a new Android bulletin is published, join the
-<a href="https://groups.google.com/forum/#!forum/android-security-updates">Android
-Security Updates group</a>, and set your email delivery preference to receive
-all updates.
-</p>
-
<h3 id="sources">Sources</h3>
<p>Fixes listed in the public bulletin come from various different sources: the
@@ -68,7 +61,20 @@ Android Open Source Project (AOSP), the upstream Linux kernel, and system-on-chi
<th>Published date</th>
<th>Security patch level</th>
</tr>
- <tr>
+<tr>
+ <td><a href="/security/bulletin/2018-12-01.html">December 2018</a></td>
+ <td>
+ <a href="/security/bulletin/2018-12-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/2018-12-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
+ <td>December 3, 2018</td>
+ <td>2018-12-01<br>
+ 2018-12-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/2018-11-01.html">November 2018</a></td>
<td>
<a href="/security/bulletin/2018-11-01.html">English</a>&nbsp;/
diff --git a/en/security/bulletin/pixel/2018-12-01.html b/en/security/bulletin/pixel/2018-12-01.html
new file mode 100644
index 00000000..3be66d93
--- /dev/null
+++ b/en/security/bulletin/pixel/2018-12-01.html
@@ -0,0 +1,325 @@
+<html devsite>
+ <head>
+ <title>Pixel&hairsp;/&hairsp;Nexus Security Bulletin—December 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 December 3, 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"
+class="external">supported Google Pixel and Nexus devices</a> (Google devices).
+For Google devices, security patch levels of 2018-12-05 or later address all
+issues in this bulletin and all issues in the December 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"
+class="external">Check & update your Android version</a>.
+</p>
+<p>
+All supported Google devices will receive an update to the 2018-12-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" class="external">Google
+Developer site</a>.
+</p>
+
+<h2 id="announcements">Announcements</h2>
+
+<p>In addition to the security vulnerabilities described in the
+<a href="/security/bulletin/2018-12-01">December 2018 Android Security
+Bulletin</a>, Google 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 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#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, such as 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="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-2018-11987</td>
+ <td>A-70638103<br />
+<a
+href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=5e9ffcfa152ecb2832990c42fcd8a0f2e63c2c04">
+QC-CR#2258691</a></td>
+ <td>EoP</td>
+ <td>Moderate</td>
+ <td>ION</td>
+ </tr>
+</table>
+
+<h2 id="functional-patches">Functional patches</h2>
+
+<p>The functional patches are included for affected Pixel devices to address
+functionality issues not related to the security of Pixel devices. The patches
+listed in the table below include associated references, the affected category,
+and the affected devices.</p>
+
+<table>
+<col width="15%">
+<col width="15%">
+<col width="40%">
+<col width="30%">
+ <tr>
+ <th>References</th>
+ <th>Category</th>
+ <th>Improvements</th>
+ <th>Devices</th>
+ </tr>
+ <tr>
+ <td>A-112646910</td>
+ <td>Security</td>
+ <td>Improved pattern unlock recognition after reset</td>
+ <td>Pixel, Pixel XL</td>
+ </tr>
+ <tr>
+ <td>A-117522738</td>
+ <td>Performance</td>
+ <td>Improved memory performance in certain circumstances</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-110969183</td>
+ <td>Camera</td>
+ <td>Improved camera capture performance</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111008450</td>
+ <td>Pixel Stand</td>
+ <td>Improved notification visibility when using Pixel Stand</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112376366</td>
+ <td>Android Auto</td>
+ <td>Improved Android Auto compatibility</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115666282</td>
+ <td>Camera</td>
+ <td>Adjusted autofocus behavior</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115624433</td>
+ <td>Pixel Stand</td>
+ <td>Improved hotword performance when using Pixel Stand</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-116758282</td>
+ <td>Display</td>
+ <td>Improved Always On Display triggering</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111964925</td>
+ <td>Audio</td>
+ <td>Improved USB-C Audio accessory detection</td>
+ <td>Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111716107</td>
+ <td>Bluetooth</td>
+ <td>Adjusted volume behavior when toggling Bluetooth</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111159723</td>
+ <td>Android Auto</td>
+ <td>Improved audio performance for when using Android Auto in certain vehicles</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112228430</td>
+ <td>Media</td>
+ <td>Improved contouring on HDR color on certain media apps</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-113151604</td>
+ <td>Camera</td>
+ <td>Improved camera shutter performance</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111277984</td>
+ <td>Performance</td>
+ <td>Improve unlocking performance when using Bluetooth</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 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-12-05 or later address all issues associated with
+the 2018-12-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"
+class="external">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/drivers"
+class="external">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 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>December 3, 2018</td>
+ <td>Bulletin published.</td>
+ </tr>
+</table>
+</body>
+</html>
diff --git a/en/security/bulletin/pixel/2018.html b/en/security/bulletin/pixel/2018.html
index a7854882..a1cace8f 100644
--- a/en/security/bulletin/pixel/2018.html
+++ b/en/security/bulletin/pixel/2018.html
@@ -38,7 +38,20 @@ Bulletins</a> homepage.</p>
<th>Published date</th>
<th>Security patch level</th>
</tr>
- <tr>
+<tr>
+ <td><a href="/security/bulletin/pixel/2018-12-01.html">December 2018</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-12-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
+ </td>
+ <td>December 3, 2018</td>
+ <td>2018-12-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/pixel/2018-11-01.html">November 2018</a></td>
<td>
<a href="/security/bulletin/pixel/2018-11-01.html">English</a>&nbsp;/
diff --git a/en/security/bulletin/pixel/index.html b/en/security/bulletin/pixel/index.html
index f89274e6..a32aa036 100644
--- a/en/security/bulletin/pixel/index.html
+++ b/en/security/bulletin/pixel/index.html
@@ -58,7 +58,20 @@ AOSP 24&ndash;48 hours after the Pixel&hairsp;/&hairsp;Nexus bulletin is release
<th>Published date</th>
<th>Security patch level</th>
</tr>
- <tr>
+<tr>
+ <td><a href="/security/bulletin/pixel/2018-12-01.html">December 2018</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-12-01.html">English</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=ja">日本語</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=ko">한국어</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
+ <a href="/security/bulletin/pixel/2018-12-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
+ </td>
+ <td>December 3, 2018</td>
+ <td>2018-12-05</td>
+ </tr>
+ <tr>
<td><a href="/security/bulletin/pixel/2018-11-01.html">November 2018</a></td>
<td>
<a href="/security/bulletin/pixel/2018-11-01.html">English</a>&nbsp;/
diff --git a/en/security/overview/acknowledgements.html b/en/security/overview/acknowledgements.html
index d63ad8f0..b6f7074e 100644
--- a/en/security/overview/acknowledgements.html
+++ b/en/security/overview/acknowledgements.html
@@ -37,6 +37,60 @@ Rewards</a> program.</p>
<p>In 2018, the security acknowledgements are listed by month. In prior years,
acknowledgements were listed together.</p>
+<h4 id="dec-2018">December</h4>
+
+<table>
+ <tr>
+ <th>Researchers</th>
+ <th>CVEs</th>
+ </tr>
+ <tr>
+ <td>Baozeng Ding (<a href="https://twitter.com/sploving1" class="external">@sploving1</a>)
+ </td>
+ <td>CVE-2017-18320</td>
+ </tr>
+ <tr>
+ <td>Daniel Micay (<a href="https://twitter.com/DanielMicay" class="external">@DanielMicay</a>)
+ </td>
+ <td>CVE-2018-9567</td>
+ </tr>
+ <tr>
+ <td>Hao Chen and Guang Gong of Alpha Team, Qihoo 360 Technology Co. Ltd.</td>
+ <td>CVE-2018-9557</td>
+ </tr>
+ <tr>
+ <td>Joydeep Mitra and Venkatesh-Prasad Ranganath of Ghera project at
+ Kansas State University, USA</td>
+ <td>CVE-2018-9548</td>
+ </tr>
+ <tr>
+ <td>Mingjian Zhou (周明建) (
+ <a href="https://twitter.com/Mingjian_Zhou"
+ class="external">@Mingjian_Zhou</a>)
+ of <a href="http://c0reteam.org/" class="external">C0RE Team</a></td>
+ <td>CVE-2018-9547</td>
+ </tr>
+ <tr>
+ <td>Newroot (<a href="https://twitter.com/newroot" class="external">@newroot</a>)</td>
+ <td>CVE-2018-9560</td>
+ </tr>
+ <tr>
+ <td>Scott Bauer (<a href="https://twitter.com/ScottyBauer1" class="external">@ScottyBauer1</a>)</td>
+ <td>CVE-2018-9555, CVE-2018-9558, CVE-2018-9566</td>
+ </tr>
+ <tr>
+ <td>Yong Wang (王勇) (<a href="https://twitter.com/ThomasKing2014" class="external">@ThomasKing2014</a>)
+ of Alibaba Inc.</td>
+ <td>CVE-2018-9568</td>
+ </tr>
+ <tr>
+ <td>Zinuo Han (<a href="http://weibo.com/ele7enxxh"
+ class="external">weibo.com/ele7enxxh</a>)
+ of Chengdu Security Response Center, Qihoo 360 Technology Co. Ltd.</td>
+ <td>CVE-2018-9549, CVE-2018-9552, CVE-2018-9553, CVE-2018-9562</td>
+ </tr>
+</table>
+
<h4 id="nov-2018">November</h4>
<table>
diff --git a/en/setup/_toc-build.yaml b/en/setup/_toc-build.yaml
index 5f4050ac..70abeba2 100644
--- a/en/setup/_toc-build.yaml
+++ b/en/setup/_toc-build.yaml
@@ -11,3 +11,5 @@ toc:
path: /setup/build/building-kernels
- title: See Known Issues
path: /setup/build/known-issues
+- title: Continuous Integration Dashboard
+ path: /setup/build/dashboard
diff --git a/en/setup/build/building-kernels.html b/en/setup/build/building-kernels.html
index cb795c79..a340e5df 100644
--- a/en/setup/build/building-kernels.html
+++ b/en/setup/build/building-kernels.html
@@ -327,7 +327,7 @@ projects. Use <a href="/setup/develop/repo#init">repo</a> to download the
kernel source for the appropriate branch (as of this writing, <code><var>VERSION</var></code> should be
<code>4.9-pie-qpr1</code>):</p>
-<pre class="devsite-terminal devsite-click-to-copy">repo init -u https://android.googlesource.com/platform/manifest -b android-msm-bluecross-$<var>VERSION</var></pre>
+<pre class="devsite-terminal devsite-click-to-copy">repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-bluecross-$<var>VERSION</var></pre>
<pre class="devsite-terminal devsite-click-to-copy">repo sync</pre>
<p>Then build the kernel with:</p>
diff --git a/en/setup/build/dashboard.html b/en/setup/build/dashboard.html
new file mode 100644
index 00000000..7dee5bee
--- /dev/null
+++ b/en/setup/build/dashboard.html
@@ -0,0 +1,64 @@
+<html devsite>
+ <head>
+ <title>Continuous Integration Dashboard</title>
+ <meta name="project_path" value="/_project.yaml" />
+ <meta name="book_path" value="/_book.yaml" />
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<p>This dashboard provides visibility into the
+ <a href="https://en.wikipedia.org/wiki/Continuous_integration" class="external">continuous
+ integration</a> system used by the Android Open Source Project (AOSP).</p>
+
+<p>Contributors to AOSP can use this dashboard to monitor when their submissions are integrated
+ into the tree. The status color shows whether the integrated change has built successfully
+ across all of our build types. For convenience, the build artifacts
+ from each build are available for download.</p>
+
+<p>Each row represents a build that is completed on
+ Android's automated builders. Each column represents a build target/buildtype combination.
+ Within the grid, in-progress and completed builds are shown. In-progress builds are color-coded
+ with a yellow background, failed builds with a red background, and successful builds with a green
+ background. When a build is completed you can download the build artifacts by clicking the
+ <span class="material-icons">get_app</span>(<strong>View artifacts</strong>) icon, which links to
+ a page where the artifacts can be downloaded. Selecting a square opens a panel at the bottom of
+ the screen with tabs for "Details" where the logs are kept, "Changes" which lists what changes
+ went into a build, and another link to the build artifacts. The dashboard refreshes automatically
+ as new builds are completed.</p>
+
+<p>The dashboard can be found at <a href="https://ci.android.com"
+ class="external">ci.android.com</a></p>
+
+<figure><img src="../images/dashboard.png" alt="Image of dashboard"/><figcaption><b>Figure 1</b>:
+ Continuous Integration Dashboard</figcaption></figure>
+
+<p>The attributes of the dashboard include:<p>
+<ul>
+ <li><b>Branch name</b>: Name of the git branch where the builds happen</li>
+ <li><b>Build artifacts</b>: Link to see and download artifacts from this build</li>
+ <li><b>Build ID</b>: Unique ID for each build</li>
+ <li><b>Build target</b>: Device configuration</li>
+ <li><b>Buildtype</b>: Exact configuration of the target, which can be user, userdebug, or eng.
+ For more details, see <a href="/setup/build/building#choose-a-target">Choose a
+ Target</a></li>
+ <li><b>Changes link</b>: Link to the changes included in this build</li>
+ <li><b>Perm link</b>: Permanent link to this build’s page on
+ <a href="https://ci.android.com" class="external">ci.android.com</a></li>
+
+ </body>
+</html>
diff --git a/en/setup/contribute/code-style.html b/en/setup/contribute/code-style.html
index bc9ad880..112c30fe 100644
--- a/en/setup/contribute/code-style.html
+++ b/en/setup/contribute/code-style.html
@@ -23,92 +23,126 @@
-<p>The code styles below are strict rules for contributing Java code to the
-Android Open Source Project (AOSP). Contributions to the Android platform that
-do not adhere to these rules are generally <em>not accepted</em>. We recognize
-that not all existing code follows these rules, but we expect all new code to
-be compliant.</p>
-
-<p class="note"><strong>Note:</strong> These rules are intended for the Android
-platform and are not required of Android app developers. App developers may
-follow the standard of their choosing, such as the <a
-href="https://google.github.io/styleguide/javaguide.html">Google Java Style
-Guide</a>.</p>
+<p>
+ The code styles below are strict rules for contributing Java code to the
+ Android Open Source Project (AOSP). Contributions to the Android platform
+ that do not adhere to these rules are generally <em>not accepted</em>. We
+ recognize that not all existing code follows these rules, but we expect all
+ new code to be compliant.
+</p>
+
+<aside class="note">
+ <strong>Note:</strong> These rules are intended for the Android platform and
+ are not required of Android app developers. App developers may follow the
+ standard of their choosing, such as the <a
+ href="https://google.github.io/styleguide/javaguide.html" class="external">Google
+ Java Style Guide</a>.
+</aside>
<h2 id="java-language-rules">Java language rules</h2>
-<p>Android follows standard Java coding conventions with the additional rules
-described below.</p>
-<h3 id="dont-ignore-exceptions">Don't ignore exceptions</h3>
-<p>It can be tempting to write code that completely ignores an exception, such
-as:</p>
-<pre><code>void setServerPort(String value) {
+ <p>
+ Android follows standard Java coding conventions with the additional rules
+ described below.
+ </p>
+
+ <h3 id="dont-ignore-exceptions">Don't ignore exceptions</h3>
+
+ <p>
+ It can be tempting to write code that completely ignores an exception, such as:
+ </p>
+
+<pre class="prettyprint">
+ void setServerPort(String value) {
try {
serverPort = Integer.parseInt(value);
} catch (NumberFormatException e) { }
-}
-</code></pre>
-<p>Do not do this. While you may think your code will never encounter this error
-condition or that it is not important to handle it, ignoring exceptions as above
-creates mines in your code for someone else to trigger some day. You must handle
-every Exception in your code in a principled way; the specific handling varies
-depending on the case.</p>
-<p><em>Anytime somebody has an empty catch clause they should have a
-creepy feeling. There are definitely times when it is actually the correct
-thing to do, but at least you have to think about it. In Java you can't escape
-the creepy feeling.</em> -<a href="http://www.artima.com/intv/solid4.html">James Gosling</a></p>
-<p>Acceptable alternatives (in order of preference) are:</p>
-<ul>
-<li>Throw the exception up to the caller of your method.
-<pre><code>void setServerPort(String value) throws NumberFormatException {
- serverPort = Integer.parseInt(value);
-}
-</code></pre>
-</li>
-<li>Throw a new exception that's appropriate to your level of abstraction.
-<pre><code>void setServerPort(String value) throws ConfigurationException {
+ }
+</pre>
+
+ <p>
+ Do not do this. While you may think your code will never encounter this
+ error condition or that it is not important to handle it, ignoring
+ exceptions as above creates mines in your code for someone else to
+ trigger some day. You must handle every Exception in your code in a
+ principled way; the specific handling varies depending on the case.
+ </p>
+
+ <p class="inline-block">
+ "<em>Anytime somebody has an empty catch clause they should have a creepy
+ feeling. There are definitely times when it is actually the correct
+ thing to do, but at least you have to think about it. In Java you can't
+ escape the creepy feeling.</em>" &mdash;
+ <a href="http://www.artima.com/intv/solid4.html" class="external">James
+ Gosling</a>
+ </p>
+
+ <p>Acceptable alternatives (in order of preference) are:</p>
+
+ <ul>
+ <li>Throw the exception up to the caller of your method.
+<pre class="prettyprint">
+ void setServerPort(String value) throws NumberFormatException {
+ serverPort = Integer.parseInt(value);
+ }
+</pre>
+ </li>
+ <li>
+ Throw a new exception that's appropriate to your level of abstraction.
+<pre class="prettyprint">
+ void setServerPort(String value) throws ConfigurationException {
try {
serverPort = Integer.parseInt(value);
} catch (NumberFormatException e) {
throw new ConfigurationException("Port " + value + " is not valid.");
}
-}
-</code></pre>
-</li>
-<li>Handle the error gracefully and substitute an appropriate value in the
-catch {} block.
-<pre><code>/** Set port. If value is not a valid number, 80 is substituted. */
-
-void setServerPort(String value) {
+ }
+</pre>
+ </li>
+ <li>
+ Handle the error gracefully and substitute an appropriate value in the
+ <code>catch {}</code> block.
+<pre class="prettyprint">
+ /** Set port. If value is not a valid number, 80 is substituted. */
+
+ void setServerPort(String value) {
try {
serverPort = Integer.parseInt(value);
} catch (NumberFormatException e) {
serverPort = 80; // default port for server
}
-}
-</code></pre>
-</li>
-<li>Catch the Exception and throw a new <code>RuntimeException</code>. This is
-dangerous, so do it only if you are positive that if this error occurs the
-appropriate thing to do is crash.
-<pre><code>/** Set port. If value is not a valid number, die. */
-
-void setServerPort(String value) {
+ }
+</pre>
+ </li>
+ <li>
+ Catch the Exception and throw a new <code>RuntimeException</code>.
+ This is dangerous, so do it only if you are positive that if this
+ error occurs the appropriate thing to do is crash.
+
+<pre class="prettyprint">
+ /** Set port. If value is not a valid number, die. */
+
+ void setServerPort(String value) {
try {
serverPort = Integer.parseInt(value);
} catch (NumberFormatException e) {
throw new RuntimeException("port " + value " is invalid, ", e);
}
-}
-</code></pre>
-<p class="note"><strong>Note</strong> The original exception is passed to the
-constructor for RuntimeException. If your code must compile under Java 1.3, you
-must omit the exception that is the cause.</p>
-</li>
-<li>As a last resort, if you are confident that ignoring the exception is
-appropriate then you may ignore it, but you must also comment why with a good
-reason:
-<pre><code>/** If value is not a valid number, original port number is used. */
+ }
+</pre>
+ <aside class="note">
+ <strong>Note:</strong> The original exception is passed to the
+ constructor for RuntimeException. If your code must compile under
+ Java 1.3, you must omit the exception that is the cause.
+ </aside>
+ </li>
+ <li>
+ As a last resort, if you are confident that ignoring the exception is
+ appropriate then you may ignore it, but you must also comment why with
+ a good reason:
+<pre class="prettyprint">
+/** If value is not a valid number, original port number is used. */
+
void setServerPort(String value) {
try {
serverPort = Integer.parseInt(value);
@@ -117,97 +151,144 @@ void setServerPort(String value) {
// serverPort will just be unchanged.
}
}
-</code></pre>
-</li>
-</ul>
-
-<h3 id="dont-catch-generic-exception">Don't catch generic exception</h3>
-<p>It can also be tempting to be lazy when catching exceptions and do
-something like this:</p>
-<pre><code>try {
- someComplicatedIOFunction(); // may throw IOException
- someComplicatedParsingFunction(); // may throw ParsingException
- someComplicatedSecurityFunction(); // may throw SecurityException
- // phew, made it all the way
-} catch (Exception e) { // I'll just catch all exceptions
- handleError(); // with one generic handler!
-}
-</code></pre>
-<p>Do not do this. In almost all cases it is inappropriate to catch generic
-Exception or Throwable (preferably not Throwable because it includes Error
-exceptions). It is very dangerous because it means that Exceptions
-you never expected (including RuntimeExceptions like ClassCastException) get
-caught in application-level error handling. It obscures the failure handling
-properties of your code, meaning if someone adds a new type of Exception in the
-code you're calling, the compiler won't help you realize you need to handle the
-error differently. In most cases you shouldn't be handling different types of
-exception the same way.</p>
-<p>The rare exception to this rule is test code and top-level code where you
-want to catch all kinds of errors (to prevent them from showing up in a UI, or
-to keep a batch job running). In these cases you may catch generic Exception
-(or Throwable) and handle the error appropriately. Think very carefully before
-doing this, though, and put in comments explaining why it is safe in this place.</p>
-<p>Alternatives to catching generic Exception:</p>
-<ul>
-<li>
-<p>Catch each exception separately as separate catch blocks after a single
-try. This can be awkward but is still preferable to catching all Exceptions.
-Beware repeating too much code in the catch blocks.</li></p>
-</li>
-<li>
-<p>Refactor your code to have more fine-grained error handling, with multiple
-try blocks. Split up the IO from the parsing, handle errors separately in each
-case.</p>
-</li>
-<li>
-<p>Rethrow the exception. Many times you don't need to catch the exception at
-this level anyway, just let the method throw it.</p>
-</li>
-</ul>
-<p>Remember: exceptions are your friend! When the compiler complains you're
-not catching an exception, don't scowl. Smile: the compiler just made it
-easier for you to catch runtime problems in your code.</p>
-<h3 id="dont-use-finalizers">Don't use finalizers</h3>
-<p>Finalizers are a way to have a chunk of code executed when an object is
-garbage collected. While they can be handy for doing cleanup (particularly of
-external resources), there are no guarantees as to when a finalizer will be
-called (or even that it will be called at all).</p>
-<p>Android doesn't use finalizers. In most cases, you can do what
-you need from a finalizer with good exception handling. If you absolutely need
-it, define a close() method (or the like) and document exactly when that
-method needs to be called (see InputStream for an example). In this case it is
-appropriate but not required to print a short log message from the finalizer,
-as long as it is not expected to flood the logs.</p>
-
-<h3 id="fully-qualify-imports">Fully qualify imports</h3>
-<p>When you want to use class Bar from package foo,there
-are two possible ways to import it:</p>
-<ul>
-<li><code>import foo.*;</code>
-<p>Potentially reduces the number of import statements.</p></li>
-<li><code>import foo.Bar;</code>
-<p>Makes it obvious what classes are actually used and the code is more readable
-for maintainers.</p></li></ul>
-<p>Use <code>import foo.Bar;</code> for importing all Android code. An explicit
-exception is made for java standard libraries (<code>java.util.*</code>,
-<code>java.io.*</code>, etc.) and unit test code
-(<code>junit.framework.*</code>).</p>
+</pre>
+ </li>
+ </ul>
+
+ <h3 id="dont-catch-generic-exception">Don't catch generic exception</h3>
+
+ <p>
+ It can also be tempting to be lazy when catching exceptions and do
+ something like this:
+ </p>
+
+<pre class="prettyprint">
+ try {
+ someComplicatedIOFunction(); // may throw IOException
+ someComplicatedParsingFunction(); // may throw ParsingException
+ someComplicatedSecurityFunction(); // may throw SecurityException
+ // phew, made it all the way
+ } catch (Exception e) { // I'll just catch all exceptions
+ handleError(); // with one generic handler!
+ }
+</pre>
+
+ <p>
+ Do not do this. In almost all cases it is inappropriate to catch generic
+ Exception or Throwable (preferably not Throwable because it includes
+ Error exceptions). It is very dangerous because it means that Exceptions
+ you never expected (including RuntimeExceptions like ClassCastException)
+ get caught in application-level error handling. It obscures the failure
+ handling properties of your code, meaning if someone adds a new type of
+ Exception in the code you're calling, the compiler won't help you
+ realize you need to handle the error differently. In most cases you
+ shouldn't be handling different types of exception the same way.
+ </p>
+
+ <p>
+ The rare exception to this rule is test code and top-level code where
+ you want to catch all kinds of errors (to prevent them from showing up
+ in a UI, or to keep a batch job running). In these cases you may catch
+ generic Exception (or Throwable) and handle the error appropriately.
+ Think very carefully before doing this, though, and put in comments
+ explaining why it is safe in this place.
+ </p>
+
+ <p>Alternatives to catching generic Exception:</p>
+
+ <ul>
+ <li>
+ Catch each exception separately as part of a multi-catch block, for example:
+<pre class="prettyprint">
+try {
+ ...
+} catch (ClassNotFoundException | NoSuchMethodException e) {
+ ...
+}</pre>
+ </li>
+ <li>
+ Refactor your code to have more fine-grained error handling, with
+ multiple try blocks. Split up the IO from the parsing, handle errors
+ separately in each case.
+ </li>
+ <li>
+ Rethrow the exception. Many times you don't need to catch the
+ exception at this level anyway, just let the method throw it.
+ </li>
+ </ul>
+
+ <p>
+ Remember: exceptions are your friend! When the compiler complains you're
+ not catching an exception, don't scowl. Smile: the compiler just made it
+ easier for you to catch runtime problems in your code.
+ </p>
+
+ <h3 id="dont-use-finalizers">Don't use finalizers</h3>
+
+ <p>
+ Finalizers are a way to have a chunk of code executed when an object is
+ garbage collected. While they can be handy for doing cleanup
+ (particularly of external resources), there are no guarantees as to when
+ a finalizer will be called (or even that it will be called at all).
+ </p>
+
+ <p>
+ Android doesn't use finalizers. In most cases, you can do what you need
+ from a finalizer with good exception handling. If you absolutely need
+ it, define a close() method (or the like) and document exactly when that
+ method needs to be called (see InputStream for an example). In this case
+ it is appropriate but not required to print a short log message from the
+ finalizer, as long as it is not expected to flood the logs.
+ </p>
+
+ <h3 id="fully-qualify-imports">Fully qualify imports</h3>
+
+ <p>
+ When you want to use class Bar from package foo, there are two possible
+ ways to import it:
+ </p>
+
+ <ul>
+ <li><code>import foo.*;</code>
+ <p>Potentially reduces the number of import statements.</p>
+ </li>
+ <li><code>import foo.Bar;</code>
+ <p>
+ Makes it obvious what classes are actually used and the code is more
+ readable for maintainers.
+ </p>
+ </li>
+ </ul>
+
+ <p>
+ Use <code>import foo.Bar;</code> for importing all Android code. An
+ explicit exception is made for java standard libraries (<code>java.util.
+ </code>, <code>java.io.*</code>, etc.) and unit test code
+ (<code>junit.framework.*</code>).
+ </p>
<h2 id="java-library-rules">Java library rules</h2>
-<p>There are conventions for using Android's Java libraries and tools. In some
-cases, the convention has changed in important ways and older code might use a
-deprecated pattern or library. When working with such code, it's okay to
-continue the existing style. When creating new components however, never use
-deprecated libraries.</p>
+
+ <p>
+ There are conventions for using Android's Java libraries and tools. In
+ some cases, the convention has changed in important ways and older code
+ might use a deprecated pattern or library. When working with such code,
+ it's okay to continue the existing style. When creating new components
+ however, never use deprecated libraries.
+ </p>
<h2 id="java-style-rules">Java style rules</h2>
-<h3 id="use-javadoc-standard-comments">Use Javadoc standard comments</h3>
-<p>Every file should have a copyright statement at the top, followed by package
-and import statements (each block separated by a blank line) and finally the
-class or interface declaration. In the Javadoc comments, describe what the class
-or interface does.</p>
-<pre><code>/*
+ <h3 id="use-javadoc-standard-comments">Use Javadoc standard comments</h3>
+
+ <p>
+ Every file should have a copyright statement at the top, followed by
+ package and import statements (each block separated by a blank line) and
+ finally the class or interface declaration. In the Javadoc comments,
+ describe what the class or interface does.
+ </p>
+<pre class="prettyprint">
+/*
* Copyright 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -238,62 +319,99 @@ import java.sql.SQLException;
public class Foo {
...
}
-</code></pre>
-<p>Every class and nontrivial public method you write <em>must</em> contain a
-Javadoc comment with at least one sentence describing what the class or method
-does. This sentence should start with a third person descriptive verb.</p>
-<p>Examples:</p>
-<pre><code>/** Returns the correctly rounded positive square root of a double value. */
+</pre>
+
+ <p>
+ Every class and nontrivial public method you write <em>must</em> contain
+ a Javadoc comment with at least one sentence describing what the class
+ or method does. This sentence should start with a third person
+ descriptive verb.
+ </p>
+
+ <p><strong>Examples</strong></p>
+
+<pre class="prettyprint">
+/** Returns the correctly rounded positive square root of a double value. */
+
static double sqrt(double a) {
...
}
-</code></pre>
-<p>or</p>
-<pre><code>/**
+</pre>
+
+ <p>or</p>
+
+<pre class="prettyprint">
+/**
* Constructs a new String by converting the specified array of
* bytes using the platform's default character encoding.
*/
public String(byte[] bytes) {
...
}
-</code></pre>
-<p>You do not need to write Javadoc for trivial get and set methods such as
-<code>setFoo()</code> if all your Javadoc would say is "sets Foo". If the method
-does something more complex (such as enforcing a constraint or has an important
-side effect), then you must document it. If it's not obvious what the property
-"Foo" means, you should document it.
-<p>Every method you write, public or otherwise, would benefit from Javadoc.
-Public methods are part of an API and therefore require Javadoc. Android does
-not currently enforce a specific style for writing Javadoc comments, but you
-should follow the instructions <a
-href="http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html">How
-to Write Doc Comments for the Javadoc Tool</a>.</p>
-
-<h3 id="write-short-methods">Write short methods</h3>
-<p>When feasible, keep methods small and focused. We recognize that long methods
-are sometimes appropriate, so no hard limit is placed on method length. If a
-method exceeds 40 lines or so, think about whether it can be broken up without
-harming the structure of the program.</p>
-
-<h3 id="define-fields-in-standard-places">Define fields in standard places</h3>
-<p>Define fields either at the top of the file or immediately before the
-methods that use them.</p>
-
-<h3 id="limit-variable-scope">Limit variable scope</h3>
-<p>Keep the scope of local variables to a minimum. By doing so, you
-increase the readability and maintainability of your code and reduce the
-likelihood of error. Each variable should be declared in the innermost block
-that encloses all uses of the variable.</p>
-<p>Local variables should be declared at the point they are first used. Nearly
-every local variable declaration should contain an initializer. If you don't
-yet have enough information to initialize a variable sensibly, postpone the
-declaration until you do.</p>
-<p>The exception is try-catch statements. If a variable is initialized with the
-return value of a method that throws a checked exception, it must be initialized
-inside a try block. If the value must be used outside of the try block, then it
-must be declared before the try block, where it cannot yet be sensibly
-initialized:</p>
-<pre><code>// Instantiate class cl, which represents some sort of Set
+</pre>
+
+ <p>
+ You do not need to write Javadoc for trivial get and set methods such as
+ <code>setFoo()</code> if all your Javadoc would say is "sets Foo". If
+ the method does something more complex (such as enforcing a constraint
+ or has an important side effect), then you must document it. If it's not
+ obvious what the property "Foo" means, you should document it.
+ </p>
+
+ <p>
+ Every method you write, public or otherwise, would benefit from Javadoc.
+ Public methods are part of an API and therefore require Javadoc. Android
+ does not currently enforce a specific style for writing Javadoc
+ comments, but you should follow the instructions <a
+ href="http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html" class="external">How
+ to Write Doc Comments for the Javadoc Tool</a>.
+ </p>
+
+ <h3 id="write-short-methods">Write short methods</h3>
+
+ <p>
+ When feasible, keep methods small and focused. We recognize that long
+ methods are sometimes appropriate, so no hard limit is placed on method
+ length. If a method exceeds 40 lines or so, think about whether it can
+ be broken up without harming the structure of the program.
+ </p>
+
+ <h3 id="define-fields-in-standard-places">
+ Define fields in standard places
+ </h3>
+
+ <p>
+ Define fields either at the top of the file or immediately before the
+ methods that use them.
+ </p>
+
+ <h3 id="limit-variable-scope">Limit variable scope</h3>
+
+ <p>
+ Keep the scope of local variables to a minimum. By doing so, you
+ increase the readability and maintainability of your code and reduce the
+ likelihood of error. Each variable should be declared in the innermost
+ block that encloses all uses of the variable.
+ </p>
+
+ <p>
+ Local variables should be declared at the point they are first used.
+ Nearly every local variable declaration should contain an initializer.
+ If you don't yet have enough information to initialize a variable
+ sensibly, postpone the declaration until you do.
+ </p>
+
+ <p>
+ The exception is try-catch statements. If a variable is initialized with
+ the return value of a method that throws a checked exception, it must be
+ initialized inside a try block. If the value must be used outside of the
+ try block, then it must be declared before the try block, where it
+ cannot yet be sensibly initialized:
+ </p>
+
+<pre class="prettyprint">
+// Instantiate class cl, which represents some sort of Set
+
Set s = null;
try {
s = (Set) cl.newInstance();
@@ -305,10 +423,15 @@ try {
// Exercise the set
s.addAll(Arrays.asList(args));
-</code></pre>
-<p>However, even this case can be avoided by encapsulating the try-catch block
-in a method:</p>
-<pre><code>Set createSet(Class cl) {
+</pre>
+
+ <p>
+ However, even this case can be avoided by encapsulating the try-catch
+ block in a method:
+ </p>
+
+<pre class="prettyprint">
+Set createSet(Class cl) {
// Instantiate class cl, which represents some sort of Set
try {
return (Set) cl.newInstance();
@@ -324,103 +447,142 @@ in a method:</p>
// Exercise the set
Set s = createSet(cl);
s.addAll(Arrays.asList(args));
-</code></pre>
-<p>Loop variables should be declared in the for statement itself unless there
-is a compelling reason to do otherwise:</p>
-<pre><code>for (int i = 0; i < n; i++) {
+</pre>
+
+ <p>
+ Loop variables should be declared in the for statement itself unless
+ there is a compelling reason to do otherwise:
+ </p>
+
+<pre class="prettyprint">
+for (int i = 0; i < n; i++) {
doSomething(i);
}
-</code></pre>
-<p>and</p>
-<pre><code>for (Iterator i = c.iterator(); i.hasNext(); ) {
+</pre>
+
+ <p>and</p>
+
+<pre class="prettyprint">
+for (Iterator i = c.iterator(); i.hasNext(); ) {
doSomethingElse(i.next());
}
-</code></pre>
-
-<h3 id="order-import-statements">Order import statements</h3>
-<p>The ordering of import statements is:</p>
-<ol>
-<li>
-<p>Android imports</p>
-</li>
-<li>
-<p>Imports from third parties (<code>com</code>, <code>junit</code>,
-<code>net</code>, <code>org</code>)</p>
-</li>
-<li>
-<p><code>java</code> and <code>javax</code></p>
-</li>
-</ol>
-<p>To exactly match the IDE settings, the imports should be:</p>
-<ul>
-<li>
-<p>Alphabetical within each grouping, with capital letters before lower case
-letters (e.g. Z before a).</p>
-</li>
-<li>
-<p>Separated by a blank line between each major grouping (<code>android</code>,
-<code>com</code>, <code>junit</code>, <code>net</code>, <code>org</code>,
-<code>java</code>, <code>javax</code>).</p>
-</li>
-</ul>
-<p>Originally, there was no style requirement on the ordering, meaning IDEs were
-either always changing the ordering or IDE developers had to disable the
-automatic import management features and manually maintain the imports. This was
-deemed bad. When java-style was asked, the preferred styles varied wildly and it
-came down to Android needing to simply "pick an ordering and be consistent." So
-we chose a style, updated the style guide, and made the IDEs obey it. We expect
-that as IDE users work on the code, imports in all packages will match this
-pattern without extra engineering effort.</p>
-<p>This style was chosen such that:</p>
-<ul>
-<li>
-<p>The imports people want to look at first tend to be at the top
-(<code>android</code>).</p>
-</li>
-<li>
-<p>The imports people want to look at least tend to be at the bottom
-(<code>java</code>).</p>
-</li>
-<li>
-<p>Humans can easily follow the style.</p>
-</li>
-<li>
-<p>IDEs can follow the style.</p>
-</li>
-</ul>
-<p>Put static imports above all the other imports ordered the same way as
-regular imports.</p>
-
-<h3 id="use-spaces-for-indentation">Use spaces for indentation</h3>
-<p>We use four (4) space indents for blocks and never tabs. When in doubt, be
-consistent with the surrounding code.</p>
-<p>We use eight (8) space indents for line wraps, including function calls and
-assignments. For example, this is correct:</p>
-<pre><code>Instrument i =
+</pre>
+
+ <h3 id="order-import-statements">Order import statements</h3>
+
+ <p>The ordering of import statements is:</p>
+
+ <ol>
+ <li>
+ Android imports
+ </li>
+ <li>
+ Imports from third parties (<code>com</code>, <code>junit</code>,
+ <code>net</code>, <code>org</code>)
+ </li>
+ <li>
+ <code>java</code> and <code>javax</code>
+ </li>
+ </ol>
+
+ <p>To exactly match the IDE settings, the imports should be:</p>
+
+ <ul>
+ <li>
+ Alphabetical within each grouping, with capital letters before lower
+ case letters (e.g. Z before a).
+ </li>
+ <li>
+ Separated by a blank line between each major grouping
+ (<code>android</code>, <code>com</code>, <code>junit</code>,
+ <code>net</code>, <code>org</code>, <code>java</code>,
+ <code>javax</code>).
+ </li>
+ </ul>
+
+ <p>
+ Originally, there was no style requirement on the ordering, meaning IDEs
+ were either always changing the ordering or IDE developers had to
+ disable the automatic import management features and manually maintain
+ the imports. This was deemed bad. When java-style was asked, the
+ preferred styles varied wildly and it came down to Android needing to
+ simply "pick an ordering and be consistent." So we chose a style,
+ updated the style guide, and made the IDEs obey it. We expect that as
+ IDE users work on the code, imports in all packages will match this
+ pattern without extra engineering effort.
+ </p>
+
+ <p>This style was chosen such that:</p>
+
+ <ul>
+ <li>
+ The imports people want to look at first tend to be at the top
+ (<code>android</code>).
+ </li>
+ <li>
+ The imports people want to look at least tend to be at the bottom
+ (<code>java</code>).
+ </li>
+ <li>
+ Humans can easily follow the style.
+ </li>
+ <li>
+ IDEs can follow the style.
+ </li>
+ </ul>
+
+ <p>
+ Put static imports above all the other imports ordered the same way as
+ regular imports.
+ </p>
+
+ <h3 id="use-spaces-for-indentation">Use spaces for indentation</h3>
+
+ <p>
+ We use four (4) space indents for blocks and never tabs. When in doubt,
+ be consistent with the surrounding code.
+ </p>
+
+ <p>
+ We use eight (8) space indents for line wraps, including function calls
+ and assignments.
+ </p>
+
+ <p><span class="compare-better">Recommended</span></p>
+
+<pre class="prettyprint">
+Instrument i =
someLongExpression(that, wouldNotFit, on, one, line);
-</code></pre>
-<p>and this is not correct:</p>
-<pre><code>Instrument i =
+</pre>
+
+ <p><span class="compare-worse">Not recommended</span></p>
+
+<pre class="prettyprint">
+Instrument i =
someLongExpression(that, wouldNotFit, on, one, line);
-</code></pre>
-
-<h3 id="follow-field-naming-conventions">Follow field naming conventions</h3>
-<ul>
-<li>
-<p>Non-public, non-static field names start with m.</p>
-</li>
-<li>
-<p>Static field names start with s.</p>
-</li>
-<li>
-<p>Other fields start with a lower case letter.</p>
-</li>
-<li>
-<p>Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES.</p>
-</li>
-</ul>
-<p>For example:</p>
-<pre><code>public class MyClass {
+</pre>
+
+ <h3 id="follow-field-naming-conventions">Follow field naming conventions</h3>
+
+ <ul>
+ <li>
+ Non-public, non-static field names start with m.
+ </li>
+ <li>
+ Static field names start with s.
+ </li>
+ <li>
+ Other fields start with a lower case letter.
+ </li>
+ <li>
+ Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES.
+ </li>
+ </ul>
+
+ <p>For example:</p>
+
+<pre class="prettyprint">
+public class MyClass {
public static final int SOME_CONSTANT = 42;
public int publicField;
private static MyClass sSingleton;
@@ -428,11 +590,17 @@ assignments. For example, this is correct:</p>
private int mPrivate;
protected int mProtected;
}
-</code></pre>
-<h3 id="use-standard-brace-style">Use standard brace style</h3>
-<p>Braces do not go on their own line; they go on the same line as the code
-before them:</p>
-<pre><code>class MyClass {
+</pre>
+
+ <h3 id="use-standard-brace-style">Use standard brace style</h3>
+
+ <p>
+ Braces do not go on their own line; they go on the same line as the code
+ before them:
+ </p>
+
+<pre class="prettyprint">
+class MyClass {
int func() {
if (something) {
// ...
@@ -443,272 +611,398 @@ before them:</p>
}
}
}
-</code></pre>
-<p>We require braces around the statements for a conditional. Exception: If the
-entire conditional (the condition and the body) fit on one line, you may (but
-are not obligated to) put it all on one line. For example, this is acceptable:</p>
-<pre><code>if (condition) {
+</pre>
+
+ <p>
+ We require braces around the statements for a conditional. Exception: If
+ the entire conditional (the condition and the body) fit on one line, you
+ may (but are not obligated to) put it all on one line. For example, this
+ is acceptable:
+ </p>
+
+<pre class="prettyprint">
+if (condition) {
body();
}
-</code></pre>
-<p>and this is acceptable:</p>
-<pre><code>if (condition) body();
-</code></pre>
-<p>but this is not acceptable:</p>
-<pre><code>if (condition)
+</pre>
+
+ <p>and this is acceptable:</p>
+
+<pre class="prettyprint">if (condition) body();</pre>
+
+ <p>but this is not acceptable:</p>
+
+<pre class="prettyprint">
+if (condition)
body(); // bad!
-</code></pre>
-
-<h3 id="limit-line-length">Limit line length</h3>
-<p>Each line of text in your code should be at most 100 characters long. While
-much discussion has surrounded this rule, the decision remains that 100
-characters is the maximum <em>with the following exceptions</em>:</p>
-<ul>
-<li>If a comment line contains an example command or a literal URL
-longer than 100 characters, that line may be longer than 100 characters for
-ease of cut and paste.</li>
-<li>Import lines can go over the limit because humans rarely see them (this also
-simplifies tool writing).</li>
-</ul>
-
-<h3 id="use-standard-java-annotations">Use standard Java annotations</h3>
-<p>Annotations should precede other modifiers for the same language element.
-Simple marker annotations (e.g. @Override) can be listed on the same line with
-the language element. If there are multiple annotations, or parameterized
-annotations, they should each be listed one-per-line in alphabetical
-order.</p>
-<p>Android standard practices for the three predefined annotations in Java are:</p>
-<ul>
-<li><code>@Deprecated</code>: The @Deprecated annotation must be used whenever
-the use of the annotated element is discouraged. If you use the @Deprecated
-annotation, you must also have a @deprecated Javadoc tag and it should name an
-alternate implementation. In addition, remember that a @Deprecated method is
-<em>still supposed to work</em>. If you see old code that has a @deprecated
-Javadoc tag, please add the @Deprecated annotation.
-</li>
-<li><code>@Override</code>: The @Override annotation must be used whenever a
-method overrides the declaration or implementation from a super-class. For
-example, if you use the @inheritdocs Javadoc tag, and derive from a class (not
-an interface), you must also annotate that the method @Overrides the parent
-class's method.</li>
-<li><code>@SuppressWarnings</code>: The @SuppressWarnings annotation should be
-used only under circumstances where it is impossible to eliminate a warning. If
-a warning passes this "impossible to eliminate" test, the @SuppressWarnings
-annotation <em>must</em> be used, so as to ensure that all warnings reflect
-actual problems in the code.
-<p>When a @SuppressWarnings annotation is necessary, it must be prefixed with
-a TODO comment that explains the "impossible to eliminate" condition. This
-will normally identify an offending class that has an awkward interface. For
-example:</p>
-<pre><code>// TODO: The third-party class com.third.useful.Utility.rotate() needs generics
+</pre>
+
+ <h3 id="limit-line-length">Limit line length</h3>
+
+ <p>
+ Each line of text in your code should be at most 100 characters long.
+ While much discussion has surrounded this rule, the decision remains
+ that 100 characters is the maximum <em>with the following
+ exceptions</em>:
+ </p>
+
+ <ul>
+ <li>
+ If a comment line contains an example command or a literal URL longer
+ than 100 characters, that line may be longer than 100 characters for
+ ease of cut and paste.
+ </li>
+ <li>
+ Import lines can go over the limit because humans rarely see them
+ (this also simplifies tool writing).
+ </li>
+ </ul>
+
+ <h3 id="use-standard-java-annotations">Use standard Java annotations</h3>
+
+ <p>
+ Annotations should precede other modifiers for the same language
+ element. Simple marker annotations (e.g. @Override) can be listed on the
+ same line with the language element. If there are multiple annotations,
+ or parameterized annotations, they should each be listed one-per-line in
+ alphabetical order.
+ </p>
+
+ <p>
+ Android standard practices for the three predefined annotations in Java
+ are:
+ </p>
+
+ <ul>
+ <li>
+ <code>@Deprecated</code>: The @Deprecated annotation must be used
+ whenever the use of the annotated element is discouraged. If you use
+ the @Deprecated annotation, you must also have a @deprecated Javadoc
+ tag and it should name an alternate implementation. In addition,
+ remember that a @Deprecated method is <em>still supposed to work</em>.
+ If you see old code that has a @deprecated Javadoc tag, please add the
+ @Deprecated annotation.
+ </li>
+ <li>
+ <code>@Override</code>: The @Override annotation must be used whenever
+ a method overrides the declaration or implementation from a
+ super-class. For example, if you use the @inheritdocs Javadoc tag, and
+ derive from a class (not an interface), you must also annotate that
+ the method @Overrides the parent class's method.
+ </li>
+ <li>
+ <code>@SuppressWarnings</code>: The @SuppressWarnings annotation
+ should be used only under circumstances where it is impossible to
+ eliminate a warning. If a warning passes this "impossible to
+ eliminate" test, the @SuppressWarnings annotation <em>must</em> be
+ used, so as to ensure that all warnings reflect actual problems in the
+ code.
+
+ <p>
+ When a @SuppressWarnings annotation is necessary, it must be
+ prefixed with a TODO comment that explains the "impossible to
+ eliminate" condition. This will normally identify an offending class
+ that has an awkward interface. For example:
+ </p>
+
+<pre class="prettyprint">
+// TODO: The third-party class com.third.useful.Utility.rotate() needs generics
&#64;SuppressWarnings("generic-cast")
List&lt;String&gt; blix = Utility.rotate(blax);
-</code></pre>
-<p>When a @SuppressWarnings annotation is required, the code should be
-refactored to isolate the software elements where the annotation applies.</p>
-</li>
-</ul>
-
-<h3 id="treat-acronyms-as-words">Treat acronyms as words</h3>
-<p>Treat acronyms and abbreviations as words in naming variables, methods, and
-classes to make names more readable:</p>
-<table>
-<thead>
-<tr>
-<th>Good</th>
-<th>Bad</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>XmlHttpRequest</td>
-<td>XMLHTTPRequest</td>
-</tr>
-<tr>
-<td>getCustomerId</td>
-<td>getCustomerID</td>
-</tr>
-<tr>
-<td>class Html</td>
-<td>class HTML</td>
-</tr>
-<tr>
-<td>String url</td>
-<td>String URL</td>
-</tr>
-<tr>
-<td>long id</td>
-<td>long ID</td>
-</tr>
-</tbody>
-</table>
-<p>As both the JDK and the Android code bases are very inconsistent around
-acronyms, it is virtually impossible to be consistent with the surrounding
-code. Therefore, always treat acronyms as words.</p>
-
-<h3 id="use-todo-comments">Use TODO comments</h3>
-<p>Use TODO comments for code that is temporary, a short-term solution, or
-good-enough but not perfect. TODOs should include the string TODO in all caps,
-followed by a colon:</p>
-<pre><code>// TODO: Remove this code after the UrlTable2 has been checked in.
-</code></pre>
-<p>and</p>
-<pre><code>// TODO: Change this to use a flag instead of a constant.
-</code></pre>
-<p>If your TODO is of the form "At a future date do something" make sure that
-you either include a very specific date ("Fix by November 2005") or a very
-specific event ("Remove this code after all production mixers understand
-protocol V7.").</p>
-
-<h3 id="log-sparingly">Log sparingly</h3>
-<p>While logging is necessary, it has a significantly negative impact on
-performance and quickly loses its usefulness if not kept reasonably
-terse. The logging facilities provides five different levels of logging:</p>
-<ul>
-<li><code>ERROR</code>:
-Use when something fatal has happened, i.e. something will have user-visible
-consequences and won't be recoverable without explicitly deleting some data,
-uninstalling applications, wiping the data partitions or reflashing the entire
-device (or worse). This level is always logged. Issues that justify some logging
-at the ERROR level are typically good candidates to be reported to a
-statistics-gathering server.</li>
-<li><code>WARNING</code>:
-Use when something serious and unexpected happened, i.e. something that will
-have user-visible consequences but is likely to be recoverable without data loss
-by performing some explicit action, ranging from waiting or restarting an app
-all the way to re-downloading a new version of an application or rebooting the
-device. This level is always logged. Issues that justify some logging at the
-WARNING level might also be considered for reporting to a statistics-gathering
-server.</li>
-<li><code>INFORMATIVE:</code>
-Use to note that something interesting to most people happened, i.e. when a
-situation is detected that is likely to have widespread impact, though isn't
-necessarily an error. Such a condition should only be logged by a module that
-reasonably believes that it is the most authoritative in that domain (to avoid
-duplicate logging by non-authoritative components). This level is always logged.
-</li>
-<li><code>DEBUG</code>:
-Use to further note what is happening on the device that could be relevant to
-investigate and debug unexpected behaviors. You should log only what is needed
-to gather enough information about what is going on about your component. If
-your debug logs are dominating the log then you probably should be using verbose
-logging.
-<p>This level will be logged, even on release builds, and is required to be
-surrounded by an <code>if (LOCAL_LOG)</code> or <code>if (LOCAL_LOGD)</code>
-block, where <code>LOCAL_LOG[D]</code> is defined in your class or subcomponent,
-so that there can exist a possibility to disable all such logging. There must
-therefore be no active logic in an <code>if (LOCAL_LOG)</code> block. All the
-string building for the log also needs to be placed inside the <code>if
-(LOCAL_LOG)</code> block. The logging call should not be re-factored out into a
-method call if it is going to cause the string building to take place outside
-of the <code>if (LOCAL_LOG)</code> block.</p>
-<p>There is some code that still says <code>if (localLOGV)</code>. This is
-considered acceptable as well, although the name is nonstandard.</p>
-</li>
-<li><code>VERBOSE</code>:
-Use for everything else. This level will only be logged on debug builds and
-should be surrounded by an <code>if (LOCAL_LOGV)</code> block (or equivalent) so
-it can be compiled out by default. Any string building will be stripped out of
-release builds and needs to appear inside the <code>if (LOCAL_LOGV)</code> block.
-</li>
-</ul>
-<p><em>Notes:</em> </p>
-<ul>
-<li>Within a given module, other than at the VERBOSE level, an
-error should only be reported once if possible. Within a single chain of
-function calls within a module, only the innermost function should return the
-error, and callers in the same module should only add some logging if that
-significantly helps to isolate the issue.</li>
-<li>In a chain of modules, other than at the VERBOSE level, when a
-lower-level module detects invalid data coming from a higher-level module, the
-lower-level module should only log this situation to the DEBUG log, and only
-if logging provides information that is not otherwise available to the caller.
-Specifically, there is no need to log situations where an exception is thrown
-(the exception should contain all the relevant information), or where the only
-information being logged is contained in an error code. This is especially
-important in the interaction between the framework and applications, and
-conditions caused by third-party applications that are properly handled by the
-framework should not trigger logging higher than the DEBUG level. The only
-situations that should trigger logging at the INFORMATIVE level or higher is
-when a module or application detects an error at its own level or coming from
-a lower level.</li>
-<li>When a condition that would normally justify some logging is
-likely to occur many times, it can be a good idea to implement some
-rate-limiting mechanism to prevent overflowing the logs with many duplicate
-copies of the same (or very similar) information.</li>
-<li>Losses of network connectivity are considered common, fully expected, and
-should not be logged gratuitously. A loss of network connectivity
-that has consequences within an app should be logged at the DEBUG or VERBOSE
-level (depending on whether the consequences are serious enough and unexpected
-enough to be logged in a release build).</li>
-<li>Having a full filesystem on a filesystem that is accessible to or on
-behalf of third-party applications should not be logged at a level higher than
-INFORMATIVE.</li>
-<li>Invalid data coming from any untrusted source (including any
-file on shared storage, or data coming through just about any network
-connection) is considered expected and should not trigger any logging at a
-level higher than DEBUG when it's detected to be invalid (and even then
-logging should be as limited as possible).</li>
-<li>Keep in mind that the <code>+</code> operator, when used on Strings,
-implicitly creates a <code>StringBuilder</code> with the default buffer size (16
-characters) and potentially other temporary String objects, i.e.
-that explicitly creating StringBuilders isn't more expensive than relying on
-the default '+' operator (and can be a lot more efficient in fact). Keep
-in mind that code that calls <code>Log.v()</code> is compiled and executed on
-release builds, including building the strings, even if the logs aren't being
-read.</li>
-<li>Any logging that is meant to be read by other people and to be
-available in release builds should be terse without being cryptic, and should
-be reasonably understandable. This includes all logging up to the DEBUG
-level.</li>
-<li>When possible, logging should be kept on a single line if it
-makes sense. Line lengths up to 80 or 100 characters are perfectly acceptable,
-while lengths longer than about 130 or 160 characters (including the length of
-the tag) should be avoided if possible.</li>
-<li>Logging that reports successes should never be used at levels
-higher than VERBOSE.</li>
-<li>Temporary logging used to diagnose an issue that is hard to reproduce should
-be kept at the DEBUG or VERBOSE level and should be enclosed by if blocks that
-allow for disabling it entirely at compile time.</li>
-<li>Be careful about security leaks through the log. Private
-information should be avoided. Information about protected content must
-definitely be avoided. This is especially important when writing framework
-code as it's not easy to know in advance what will and will not be private
-information or protected content.</li>
-<li><code>System.out.println()</code> (or <code>printf()</code> for native code)
-should never be used. System.out and System.err get redirected to /dev/null, so
-your print statements will have no visible effects. However, all the string
-building that happens for these calls still gets executed.</li>
-<li><em>The golden rule of logging is that your logs may not
-unnecessarily push other logs out of the buffer, just as others may not push
-out yours.</em></li>
-</ul>
-
-<h3 id="be-consistent">Be consistent</h3>
-<p>Our parting thought: BE CONSISTENT. If you're editing code, take a few
-minutes to look at the surrounding code and determine its style. If that code
-uses spaces around the if clauses, you should too. If the code comments have
-little boxes of stars around them, make your comments have little boxes of stars
-around them too.</p>
-<p>The point of having style guidelines is to have a common vocabulary of
-coding, so people can concentrate on what you're saying, rather than on how
-you're saying it. We present global style rules here so people know the
-vocabulary, but local style is also important. If the code you add to a file
-looks drastically different from the existing code around it, it throws
-readers out of their rhythm when they go to read it. Try to avoid this.</p>
+</pre>
+
+ <p>
+ When a @SuppressWarnings annotation is required, the code should be
+ refactored to isolate the software elements where the annotation
+ applies.
+ </p>
+ </li>
+ </ul>
+
+ <h3 id="treat-acronyms-as-words">Treat acronyms as words</h3>
+
+ <p>
+ Treat acronyms and abbreviations as words in naming variables, methods,
+ and classes to make names more readable:
+ </p>
+
+ <table>
+ <thead>
+ <tr>
+ <th>Good</th>
+ <th>Bad</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>XmlHttpRequest</td>
+ <td>XMLHTTPRequest</td>
+ </tr>
+ <tr>
+ <td>getCustomerId</td>
+ <td>getCustomerID</td>
+ </tr>
+ <tr>
+ <td>class Html</td>
+ <td>class HTML</td>
+ </tr>
+ <tr>
+ <td>String url</td>
+ <td>String URL</td>
+ </tr>
+ <tr>
+ <td>long id</td>
+ <td>long ID</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>
+ As both the JDK and the Android code bases are very inconsistent around
+ acronyms, it is virtually impossible to be consistent with the
+ surrounding code. Therefore, always treat acronyms as words.
+ </p>
+
+ <h3 id="use-todo-comments">Use TODO comments</h3>
+
+ <p>
+ Use TODO comments for code that is temporary, a short-term solution, or
+ good-enough but not perfect. TODOs should include the string TODO in all
+ caps, followed by a colon:
+ </p>
+
+<pre class="prettyprint">
+// TODO: Remove this code after the UrlTable2 has been checked in.
+</pre>
+
+ <p>and</p>
+
+<pre class="prettyprint">
+// TODO: Change this to use a flag instead of a constant.
+</pre>
+
+ <p>
+ If your TODO is of the form "At a future date do something" make sure
+ that you either include a very specific date ("Fix by November 2005") or
+ a very specific event ("Remove this code after all production mixers
+ understand protocol V7.").
+ </p>
+
+ <h3 id="log-sparingly">Log sparingly</h3>
+
+ <p>
+ While logging is necessary, it has a significantly negative impact on
+ performance and quickly loses its usefulness if not kept reasonably
+ terse. The logging facilities provides five different levels of logging:
+ </p>
+
+ <ul>
+ <li>
+ <code>ERROR</code>: Use when something fatal has happened, i.e.
+ something will have user-visible consequences and won't be recoverable
+ without explicitly deleting some data, uninstalling applications,
+ wiping the data partitions or reflashing the entire device (or worse).
+ This level is always logged. Issues that justify some logging at the
+ ERROR level are typically good candidates to be reported to a
+ statistics-gathering server.
+ </li>
+ <li>
+ <code>WARNING</code>: Use when something serious and unexpected
+ happened, i.e. something that will have user-visible consequences but
+ is likely to be recoverable without data loss by performing some
+ explicit action, ranging from waiting or restarting an app all the way
+ to re-downloading a new version of an application or rebooting the
+ device. This level is always logged. Issues that justify some logging
+ at the WARNING level might also be considered for reporting to a
+ statistics-gathering server.
+ </li>
+ <li>
+ <code>INFORMATIVE:</code> Use to note that something interesting to
+ most people happened, i.e. when a situation is detected that is likely
+ to have widespread impact, though isn't necessarily an error. Such a
+ condition should only be logged by a module that reasonably believes
+ that it is the most authoritative in that domain (to avoid duplicate
+ logging by non-authoritative components). This level is always logged.
+ </li>
+ <li>
+ <code>DEBUG</code>: Use to further note what is happening on the
+ device that could be relevant to investigate and debug unexpected
+ behaviors. You should log only what is needed to gather enough
+ information about what is going on about your component. If your debug
+ logs are dominating the log then you probably should be using verbose
+ logging.
+
+ <p>
+ This level will be logged, even on release builds, and is required
+ to be surrounded by an <code>if (LOCAL_LOG)</code> or <code>if
+ LOCAL_LOGD)</code> block, where <code>LOCAL_LOG[D]</code> is defined
+ in your class or subcomponent, so that there can exist a possibility
+ to disable all such logging. There must therefore be no active logic
+ in an <code>if (LOCAL_LOG)</code> block. All the string building for
+ the log also needs to be placed inside the
+ <code>if (LOCAL_LOG)</code> block. The logging call should not be
+ re-factored out into a method call if it is going to cause the
+ string building to take place outside of the
+ <code>if (LOCAL_LOG)</code> block.
+ </p>
+
+ <p>
+ There is some code that still says <code>if (localLOGV)</code>. This
+ is considered acceptable as well, although the name is nonstandard.
+ </p>
+ </li>
+ <li>
+ <code>VERBOSE</code>: Use for everything else. This level will only be
+ logged on debug builds and should be surrounded by an
+ <code>if (LOCAL_LOGV)</code> block (or equivalent) so it can be
+ compiled out by default. Any string building will be stripped out of
+ release builds and needs to appear inside the
+ <code>if (LOCAL_LOGV)</code> block.
+ </li>
+ </ul>
+
+ <h4="log-sparingly-notes">Notes</h4>
+
+ <ul>
+ <li>
+ Within a given module, other than at the VERBOSE level, an error
+ should only be reported once if possible. Within a single chain of
+ function calls within a module, only the innermost function should
+ return the error, and callers in the same module should only add
+ some logging if that significantly helps to isolate the issue.
+ </li>
+ <li>
+ In a chain of modules, other than at the VERBOSE level, when a
+ lower-level module detects invalid data coming from a higher-level
+ module, the lower-level module should only log this situation to the
+ DEBUG log, and only if logging provides information that is not
+ otherwise available to the caller. Specifically, there is no need to
+ log situations where an exception is thrown (the exception should
+ contain all the relevant information), or where the only information
+ being logged is contained in an error code. This is especially
+ important in the interaction between the framework and applications,
+ and conditions caused by third-party applications that are properly
+ handled by the framework should not trigger logging higher than the
+ DEBUG level. The only situations that should trigger logging at the
+ INFORMATIVE level or higher is when a module or application detects
+ an error at its own level or coming from a lower level.
+ </li>
+ <li>
+ When a condition that would normally justify some logging is likely
+ to occur many times, it can be a good idea to implement some
+ rate-limiting mechanism to prevent overflowing the logs with many
+ duplicate copies of the same (or very similar) information.
+ </li>
+ <li>
+ Losses of network connectivity are considered common, fully
+ expected, and should not be logged gratuitously. A loss of network
+ connectivity that has consequences within an app should be logged at
+ the DEBUG or VERBOSE level (depending on whether the consequences
+ are serious enough and unexpected enough to be logged in a release
+ build).
+ </li>
+ <li>
+ Having a full filesystem on a filesystem that is accessible to or on
+ behalf of third-party applications should not be logged at a level
+ higher than INFORMATIVE.
+ </li>
+ <li>
+ Invalid data coming from any untrusted source (including any file on
+ shared storage, or data coming through just about any network
+ connection) is considered expected and should not trigger any
+ logging at a level higher than DEBUG when it's detected to be
+ invalid (and even then logging should be as limited as possible).
+ </li>
+ <li>
+ Keep in mind that the <code>+</code> operator, when used on Strings,
+ implicitly creates a <code>StringBuilder</code> with the default
+ buffer size (16 characters) and potentially other temporary String
+ objects, i.e. that explicitly creating StringBuilders isn't more
+ expensive than relying on the default '+' operator (and can be a lot
+ more efficient in fact). Keep in mind that code that calls
+ <code>Log.v()</code> is compiled and executed on release builds,
+ including building the strings, even if the logs aren't being read.
+ </li>
+ <li>
+ Any logging that is meant to be read by other people and to be
+ available in release builds should be terse without being cryptic,
+ and should be reasonably understandable. This includes all logging
+ up to the DEBUG level.
+ </li>
+ <li>
+ When possible, logging should be kept on a single line if it
+ makes sense. Line lengths up to 80 or 100 characters are perfectly
+ acceptable, while lengths longer than about 130 or 160 characters
+ including the length of the tag) should be avoided if possible.
+ </li>
+ <li>
+ Logging that reports successes should never be used at levels higher
+ than VERBOSE.
+ </li>
+ <li>
+ Temporary logging used to diagnose an issue that is hard to
+ reproduce should be kept at the DEBUG or VERBOSE level and should be
+ enclosed by if blocks that allow for disabling it entirely at
+ compile time.
+ </li>
+ <li>
+ Be careful about security leaks through the log. Private
+ information should be avoided. Information about protected content
+ must definitely be avoided. This is especially important when
+ writing framework code as it's not easy to know in advance what will
+ and will not be private information or protected content.
+ </li>
+ <li>
+ <code>System.out.println()</code> (or <code>printf()</code> for
+ native code) should never be used. System.out and System.err get
+ redirected to /dev/null, so your print statements will have no
+ visible effects. However, all the string building that happens for
+ these calls still gets executed.
+ </li>
+ <li>
+ <em>The golden rule of logging is that your logs may not
+ unnecessarily push other logs out of the buffer, just as others may
+ not push out yours.</em>
+ </li>
+ </ul>
+
+ <h3 id="be-consistent">Be consistent</h3>
+
+ <p>
+ Our parting thought: BE CONSISTENT. If you're editing code, take a few
+ minutes to look at the surrounding code and determine its style. If that
+ code uses spaces around the if clauses, you should too. If the code
+ comments have little boxes of stars around them, make your comments have
+ little boxes of stars around them too.
+ </p>
+
+ <p>
+ The point of having style guidelines is to have a common vocabulary of
+ coding, so people can concentrate on what you're saying, rather than on
+ how you're saying it. We present global style rules here so people know
+ the vocabulary, but local style is also important. If the code you add
+ to a file looks drastically different from the existing code around it,
+ it throws readers out of their rhythm when they go to read it. Try to
+ avoid this.
+ </p>
<h2 id="javatests-style-rules">Javatests style rules</h2>
-<p>Follow test method naming conventions and use an underscore to separate what
-is being tested from the specific case being tested. This style makes it easier
-to see exactly what cases are being tested. For example:</p>
-<pre><code>testMethod_specificCase1 testMethod_specificCase2
+
+ <p>
+ Follow test method naming conventions and use an underscore to separate
+ what is being tested from the specific case being tested. This style makes
+ it easier to see exactly what cases are being tested. For example:
+ </p>
+
+<pre class="prettyprint">
+testMethod_specificCase1 testMethod_specificCase2
void testIsDistinguishable_protanopia() {
ColorMatcher colorMatcher = new ColorMatcher(PROTANOPIA)
assertFalse(colorMatcher.isDistinguishable(Color.RED, Color.BLACK))
assertTrue(colorMatcher.isDistinguishable(Color.X, Color.Y))
}
-</code></pre>
+</pre>
</body>
</html>
diff --git a/en/setup/images/dashboard.png b/en/setup/images/dashboard.png
new file mode 100644
index 00000000..b6fda151
--- /dev/null
+++ b/en/setup/images/dashboard.png
Binary files differ
diff --git a/en/setup/start/build-numbers.html b/en/setup/start/build-numbers.html
index 31f53d26..2b114631 100644
--- a/en/setup/start/build-numbers.html
+++ b/en/setup/start/build-numbers.html
@@ -241,6 +241,30 @@ following table.
</thead>
<tbody>
<tr>
+ <td>PQ1A.181205.006.A1</td>
+ <td>android-9.0.0_r22</td>
+ <td>Pie</td>
+ <td>Pixel 3 XL, Pixel 3</td>
+ </tr>
+ <tr>
+ <td>PQ1A.181205.006</td>
+ <td>android-9.0.0_r21</td>
+ <td>Pie</td>
+ <td>Pixel 3 XL, Pixel 3</td>
+ </tr>
+ <tr>
+ <td>PQ1A.181205.002.A1</td>
+ <td>android-9.0.0_r20</td>
+ <td>Pie</td>
+ <td>Pixel XL, Pixel</td>
+ </tr>
+ <tr>
+ <td>PQ1A.181205.002</td>
+ <td>android-9.0.0_r19</td>
+ <td>Pie</td>
+ <td>Pixel 2 XL, Pixel 2</td>
+ </tr>
+ <tr>
<td>PPR2.181005.003.A1</td>
<td>android-9.0.0_r18</td>
<td>Pie</td>
@@ -339,6 +363,18 @@ following table.
<td>2018-08-05</td>
</tr>
<tr>
+ <td>OPM8.181205.001</td>
+ <td>android-8.1.0_r53</td>
+ <td>Oreo</td>
+ <td>Pixel C</td>
+ </tr>
+ <tr>
+ <td>OPM7.181205.001</td>
+ <td>android-8.1.0_r52</td>
+ <td>Oreo</td>
+ <td>Nexus 5X, Nexus 6P</td>
+ </tr>
+ <tr>
<td>OPM8.181105.002</td>
<td>android-8.1.0_r51</td>
<td>Oreo</td>
diff --git a/en/setup/start/p-release-notes.md b/en/setup/start/p-release-notes.md
index 5e42ed73..86ff573e 100644
--- a/en/setup/start/p-release-notes.md
+++ b/en/setup/start/p-release-notes.md
@@ -271,9 +271,8 @@ provide more Settings functionality and easier implementation.
### Atest
-[Atest](https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md){: .external}
-is a new command line tool that allows users to build, install and run Android
-tests locally.
+[Atest](/compatibility/tests/development/atest) is a new command line tool that
+allows users to build, install and run Android tests locally, greatly speeding test re-runs without requiring knowledge of Trade Federation test harness command line options.
### Compatibility Test Suite (CTS)
@@ -769,7 +768,7 @@ vehicle HAL interface.
When working with new Global Navigation Satellite System (GNSS) HALs (v1.1+),
the Android Framework will monitor Android Settings. Partners can change the
-Settings from Google Play Services or other system updatees. These settings
+Settings from Google Play Services or other system updates. These settings
tell the GNSS HAL if certain GNSS satellites should not be used. This can be
useful in case of persistent GNSS satellite or constellation errors, or to
react more rapidly to GNSS HAL implementation issues that may occur when
diff --git a/ja/security/bulletin/2018-08-01.html b/ja/security/bulletin/2018-08-01.html
index 4368b155..27867764 100644
--- a/ja/security/bulletin/2018-08-01.html
+++ b/ja/security/bulletin/2018-08-01.html
@@ -29,7 +29,7 @@ Android パートナーã«ã¯ã€æƒ…報公開㮠1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã®
下記ã®å•é¡Œã®ã†ã¡æœ€ã‚‚é‡å¤§åº¦ã®é«˜ã„ã‚‚ã®ã¯ã€ãƒªãƒ¢ãƒ¼ãƒˆã®æ”»æ’ƒè€…ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚Œã®ã‚ã‚‹é‡å¤§ãªã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã§ã™ã€‚<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦ã®è©•ä¾¡</a>ã¯ã€æ”»æ’ƒå¯¾è±¡ã®ç«¯æœ«ã§ãã®è„†å¼±æ€§ãŒæ‚ªç”¨ã•ã‚ŒãŸå ´åˆã®å½±éŸ¿ã«åŸºã¥ãã‚‚ã®ã§ã€ãƒ—ラットフォームやサービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–ãŒé–‹ç™ºç›®çš„ã¾ãŸã¯ä¸æ­£ãªå›žé¿ã«ã‚ˆã‚Šç„¡åŠ¹ã¨ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã¾ã™ã€‚
</p>
<p>
-ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ­£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。Android プラットフォームã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®å‘上ã«å½¹ç«‹ã¤ <a href="#mitigations">Android セキュリティ プラットフォームã§ã®ä¿è­·</a>ã‚„ Google Play プロテクトã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="/security/enhancements/index.html">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–</a>ã‚’ã”覧ãã ã•ã„。
+ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ­£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。Android プラットフォームã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®å‘上ã«å½¹ç«‹ã¤ <a href="/security/enhancements/index.html">Android セキュリティ プラットフォームã§ã®ä¿è­·</a>ã‚„ Google Play プロテクトã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="#mitigations">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–</a>ã‚’ã”覧ãã ã•ã„。
</p>
<p class="note">
<strong>注:</strong> 最新ã®ç„¡ç·šï¼ˆOTA)アップデート㨠Google 端末ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ イメージã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€<a href="/security/bulletin/pixel/2018-08-01.html">2018 å¹´ 8 月㮠Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã§ã”覧ã„ãŸã ã‘ã¾ã™ã€‚
diff --git a/ja/security/bulletin/2018-11-01.html b/ja/security/bulletin/2018-11-01.html
index 30593279..055a9e7d 100644
--- a/ja/security/bulletin/2018-11-01.html
+++ b/ja/security/bulletin/2018-11-01.html
@@ -19,12 +19,12 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p><em>2018 年 11 月 5 日公開</em></p>
+<p><em>2018 年 11 月 5 日公開 | 2018 年 11 月 5 日更新</em></p>
-<p>Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€Android æ­è¼‰ç«¯æœ«ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-05 以é™ã§ã¯ã€ä¸‹è¨˜ã®ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚端末ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>ã‚’ã”覧ãã ã•ã„。
+<p>Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€Android æ­è¼‰ç«¯æœ«ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-05 以é™ã§ã¯ã€ä¸‹è¨˜ã®ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚端末ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹æ–¹æ³•</a>ã‚’ã”覧ãã ã•ã„。
</p>
<p>
-Android パートナーã«ã¯ã€æƒ…報公開㮠1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã®å•é¡ŒãŒé€šçŸ¥ã•ã‚Œã¾ã™ã€‚下記ã®å•é¡Œã«å¯¾ã™ã‚‹ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒ‘ッãƒã¯ã€ã“ã‚Œã‹ã‚‰ 48 時間ã®é–“ã« Android オープンソース プロジェクト(AOSP)リãƒã‚¸ãƒˆãƒªã«ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚AOSP リンクãŒåˆ©ç”¨ã§ãるよã†ã«ãªã‚Šæ¬¡ç¬¬ã€ã“ã®å…¬é–‹æƒ…報を改訂ã—ã¾ã™ã€‚</p>
+Android パートナーã«ã¯ã€æƒ…報公開㮠1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã®å•é¡ŒãŒé€šçŸ¥ã•ã‚Œã¾ã™ã€‚Android オープンソース プロジェクト(AOSP)リãƒã‚¸ãƒˆãƒªã«ã€ä¸‹è¨˜ã®å•é¡Œã«å¯¾ã™ã‚‹ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒ‘ッãƒã‚’リリースã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€ã“ã®å…¬é–‹æƒ…å ±ã§ã¯ã€ã“れらã®ãƒ‘ッãƒã¸ã®ãƒªãƒ³ã‚¯ã«åŠ ãˆã€AOSP 以外ã®ãƒ‘ッãƒã¸ã®ãƒªãƒ³ã‚¯ã‚‚掲載ã—ã¦ã„ã¾ã™ã€‚</p>
<p>下記ã®å•é¡Œã®ã†ã¡æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€è¿‘ãã«ã„る攻撃者ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦ã®è©•ä¾¡</a>ã¯ã€æ”»æ’ƒå¯¾è±¡ã®ç«¯æœ«ã§ãã®è„†å¼±æ€§ãŒæ‚ªç”¨ã•ã‚ŒãŸå ´åˆã®å½±éŸ¿ã«åŸºã¥ãã‚‚ã®ã§ã€ãƒ—ラットフォームやサービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–ãŒé–‹ç™ºç›®çš„ã¾ãŸã¯ä¸æ­£ãªå›žé¿ã«ã‚ˆã‚Šç„¡åŠ¹ã¨ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã¾ã™ã€‚
</p>
<p>
@@ -33,7 +33,6 @@ Android パートナーã«ã¯ã€æƒ…報公開㮠1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã®
<p class="note">
<strong>注:</strong> 最新ã®ç„¡ç·šï¼ˆOTA)アップデート㨠Google 端末ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ イメージã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€<a href="/security/bulletin/pixel/2018-11-01">2018 å¹´ 11 月㮠Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã§ã”覧ã„ãŸã ã‘ã¾ã™ã€‚
</p>
-
<h2 id="announcements">ãŠçŸ¥ã‚‰ã›</h2>
<p>
Libxaac ライブラリã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å•é¡ŒãŒã„ãã¤ã‹è¦‹ã¤ã‹ã‚Šã¾ã—ãŸï¼ˆCVE-2018-9528ã€CVE-2018-9529ã€CVE-2018-9530ã€CVE-2018-9531ã€CVE-2018-9532ã€CVE-2018-9533ã€CVE-2018-9534ã€CVE-2018-9535ã€CVE-2018-9569ã€CVE-2018-9570ã€CVE-2018-9571ã€CVE-2018-9572ã€CVE-2018-9573ã€CVE-2018-9574ã€CVE-2018-9575ã€CVE-2018-9576ã€CVE-2018-9577ã€CVE-2018-9578 ãªã©ï¼‰ã€‚</p>
@@ -69,21 +68,21 @@ Libxaac ライブラリã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å•é¡ŒãŒã„ãã¤ã‹è¦‹
</tr>
<tr>
<td>CVE-2018-9522</td>
- <td>A-112550251</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/181dc252ddec574464882970d3fab290e8b625b5" class="external">A-112550251</a></td>
<td>EoP</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9524</td>
- <td>A-34170870</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/c9bc35a45da1e765eb36af604c0c580bd66644cc" class="external">A-34170870</a></td>
<td>EoP</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
</tr>
<tr>
<td>CVE-2018-9525</td>
- <td>A-111330641</td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/6409cf5c94cc1feb72dc078e84e66362fbecd6d5" class="external">A-111330641</a></td>
<td>EoP</td>
<td>高</td>
<td>9</td>
@@ -108,42 +107,42 @@ Libxaac ライブラリã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å•é¡ŒãŒã„ãã¤ã‹è¦‹
</tr>
<tr>
<td>CVE-2018-9527</td>
- <td>A-112159345</td>
+ <td><a href="https://android.googlesource.com/platform/external/tremolo/+/cafff8f4535c8bf933c5a2fcb1a0dd66fb75a1c2" class="external">A-112159345</a></td>
<td>RCE</td>
<td>é‡å¤§</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9531</td>
- <td>A-112661641</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/c2208f2a3098410c5a4c79ad6bd4b6d7e1c0b03f" class="external">A-112661641</a></td>
<td>RCE</td>
<td>é‡å¤§</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9536</td>
- <td>A-112662184</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/9744e41c40598c6a0b74440f3b5be63f9f3708a5" class="external">A-112662184</a></td>
<td>EoP</td>
<td>é‡å¤§</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9537</td>
- <td>A-112891564</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/61381bd0f4bc012876ccf4b63eafddd2d60c35c9" class="external">A-112891564</a></td>
<td>EoP</td>
<td>é‡å¤§</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9521</td>
- <td>A-111874331</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/083263937bfb1623adf6015da7ca3cdc258e0352" class="external">A-111874331</a></td>
<td>RCE</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9539</td>
- <td>A-113027383</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/efe34a570d91b826b009d40e44c2e470dd180ace" class="external">A-113027383</a></td>
<td>EoP</td>
<td>高</td>
<td>8.0ã€8.1ã€9</td>
@@ -168,42 +167,42 @@ Libxaac ライブラリã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å•é¡ŒãŒã„ãã¤ã‹è¦‹
</tr>
<tr>
<td>CVE-2018-9540</td>
- <td>A-111450417</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/99d54d0c7dbab6c80f15bbf886ed203b2a547453" class="external">A-111450417</a></td>
<td>ID</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9542</td>
- <td>A-111896861</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111896861</a></td>
<td>ID</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9543</td>
- <td>A-112868088</td>
+ <td><a href="https://android.googlesource.com/platform/external/f2fs-tools/+/71313114a147ee3fc4a411904de02ea8b6bf7f91" class="external">A-112868088</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9544</td>
- <td>A-113037220</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113037220</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9545</td>
- <td>A-113111784</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113111784</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">CVE-2018-9541</td>
- <td rowspan="2">A-111450531</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111450531</a></td>
<td>ID</td>
<td>中</td>
<td>9</td>
@@ -215,54 +214,6 @@ Libxaac ライブラリã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å•é¡ŒãŒã„ãã¤ã‹è¦‹
</tr>
</tbody></table>
-<h3 id="update-media-framework">更新: メディア フレームワーク</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>å‚ç…§</th>
- <th>タイプ</th>
- <th>é‡å¤§åº¦</th>
- <th>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
- </tr>
- <tr>
- <td>CVE-2018-9347</td>
- <td>A-68664359</td>
- <td>DoS</td>
- <td>中</td>
- <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
-<h3 id="update-system">更新: システム</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>å‚ç…§</th>
- <th>タイプ</th>
- <th>é‡å¤§åº¦</th>
- <th>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
- </tr>
- <tr>
- <td>CVE-2018-9457</td>
- <td>A-72872376</td>
- <td>EoP</td>
- <td>中</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-11-05-details">セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-05 ã®è„†å¼±æ€§ã®è©³ç´°</h2>
<p>
パッãƒãƒ¬ãƒ™ãƒ« 2018-11-05 ã«è©²å½“ã™ã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è„†å¼±æ€§ã®å„é …ç›®ã«ã¤ã„ã¦ã€ä¸‹è¨˜ã§è©³ã—ã説明ã—ã¾ã™ã€‚影響をå—ã‘るコンãƒãƒ¼ãƒãƒ³ãƒˆã”ã¨ã«è„†å¼±æ€§ã‚’分類ã—ã€CVEã€é–¢é€£ã™ã‚‹å‚照先ã€<a href="#type">脆弱性ã®ã‚¿ã‚¤ãƒ—</a>ã€<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦</a>ã€ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ã€æ›´æ–°å¯¾è±¡ã® AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ãªã©ã®è©³ç´°ã‚’記載ã—ã¦ã„ã¾ã™ã€‚該当ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®æ¬„ã«ã€ãã®å•é¡Œã®å¯¾å‡¦æ³•ã¨ã—ã¦ä¸€èˆ¬å…¬é–‹ã•ã‚Œã¦ã„る変更内容(AOSP ã®å¤‰æ›´ã®ä¸€è¦§ãªã©ï¼‰ã¸ã®ãƒªãƒ³ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚複数ã®å¤‰æ›´ãŒåŒã˜ãƒã‚°ã«é–¢ä¿‚ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®å¾Œã«ç•ªå·ã‚’併記ã—ã¦ã€è¿½åŠ ã®å‚照先ã¸ã®ãƒªãƒ³ã‚¯ã‚’設定ã—ã¦ã„ã¾ã™ã€‚</p>
@@ -285,18 +236,11 @@ Libxaac ライブラリã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å•é¡ŒãŒã„ãã¤ã‹è¦‹
</tr>
<tr>
<td>CVE-2018-9523</td>
- <td>A-112859604</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/6a947f048a76a5936fd2b693e01f849aef22c907" class="external">A-112859604</a></td>
<td>EoP</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
- <tr>
- <td>CVE-2018-9526</td>
- <td>A-112159033</td>
- <td>ID</td>
- <td>高</td>
- <td>9</td>
- </tr>
</tbody></table>
<h3 id="qualcomm-components">Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
@@ -580,6 +524,11 @@ Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã
<td>2018 年 11 月 5 日</td>
<td>情報公開</td>
</tr>
+ <tr>
+ <td>1.1</td>
+ <td>2018 年 11 月 5 日</td>
+ <td>公開情報を改訂㗠AOSP リンクを追加</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/ja/security/bulletin/2018-12-01.html b/ja/security/bulletin/2018-12-01.html
new file mode 100644
index 00000000..722d9835
--- /dev/null
+++ b/ja/security/bulletin/2018-12-01.html
@@ -0,0 +1,706 @@
+<html devsite><head>
+ <title>Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ± - 2018 å¹´ 12 月</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<p><em>公開日: 2018 年 12 月 3 日</em></p>
+
+<p>
+Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€Android æ­è¼‰ãƒ‡ãƒã‚¤ã‚¹ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 以é™ã§ã¯ã€ä¸‹è¨˜ã®ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚デãƒã‚¤ã‚¹ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>ã‚’ã”覧ãã ã•ã„。
+</p>
+<p>下記ã®å•é¡Œã«å¯¾ã™ã‚‹ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒ‘ッãƒã¯ã€ã“ã‚Œã‹ã‚‰ 48 時間ã®é–“ã« Android オープンソース プロジェクト(AOSP)リãƒã‚¸ãƒˆãƒªã«ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚AOSP リンクãŒåˆ©ç”¨ã§ãるよã†ã«ãªã‚Šæ¬¡ç¬¬ã€ã“ã®å…¬é–‹æƒ…報を改訂ã—ã¾ã™ã€‚</p>
+<p>
+下記ã®å•é¡Œã®ã†ã¡æœ€ã‚‚é‡å¤§åº¦ã®é«˜ã„ã‚‚ã®ã¯ã€ãƒ¡ãƒ‡ã‚£ã‚¢ フレームワークã«é‡å¤§ãªã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ãŒã‚ã‚‹ãŸã‚ã€ãƒªãƒ¢ãƒ¼ãƒˆã®æ”»æ’ƒè€…ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚‹ã“ã¨ã§ã™ã€‚<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦ã®è©•ä¾¡</a>ã¯ã€æ”»æ’ƒå¯¾è±¡ã®ç«¯æœ«ã§ãã®è„†å¼±æ€§ãŒæ‚ªç”¨ã•ã‚ŒãŸå ´åˆã®å½±éŸ¿ã«åŸºã¥ãã‚‚ã®ã§ã€ãƒ—ラットフォームやサービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–ãŒé–‹ç™ºç›®çš„ã¾ãŸã¯ä¸æ­£ãªå›žé¿ã«ã‚ˆã‚Šç„¡åŠ¹ã¨ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã¾ã™ã€‚
+</p>
+<p>
+ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ­£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。Android プラットフォームã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®å‘上ã«å½¹ç«‹ã¤ <a href="#mitigations">Android セキュリティ プラットフォームã§ã®ä¿è­·</a>ã‚„ Google Play プロテクトã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="/security/enhancements/">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–ã‚’ã”覧ãã ã•ã„。</a>
+</p>
+<p class="note">
+<strong>注:</strong> 最新ã®ç„¡ç·šï¼ˆOTA)アップデート㨠Google デãƒã‚¤ã‚¹ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ イメージã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€<a href="/security/bulletin/pixel/2018-12-01">2018 å¹´ 12 月㮠Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã§ã”覧ã„ãŸã ã‘ã¾ã™ã€‚
+</p>
+
+<h2 id="mitigations">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç­–</h2>
+
+<p>
+ã“ã“ã§ã¯ã€<a href="/security/enhancements/">Android セキュリティ プラットフォーム</a>ã‚„ <a href="https://www.android.com/play-protect" class="external">Google Play プロテクト</a>ã®ã‚ˆã†ãªã‚µãƒ¼ãƒ“スã§ã®ä¿è­·ã«ã‚ˆã£ã¦ãƒªã‚¹ã‚¯ã‚’軽減ã™ã‚‹æ‰‹æ®µã«ã¤ã„ã¦æ¦‚説ã—ã¾ã™ã€‚ã“ã†ã—ãŸæ©Ÿèƒ½ã¯ã€Android ã§ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ãŒæ‚ªç”¨ã•ã‚Œã‚‹å¯èƒ½æ€§ã‚’減らã™ã‚‚ã®ã§ã™ã€‚
+</p>
+<ul>
+<li>Android 上ã®å¤šãã®å•é¡Œã®æ‚ªç”¨ã¯ã€Android プラットフォームã®æœ€æ–°ç‰ˆã§æ©Ÿèƒ½ãŒå¼·åŒ–ã•ã‚Œã‚‹ã»ã©å›°é›£ã«ãªã‚Šã¾ã™ã€‚Google ã§ã¯ã€ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã—ã€ã§ãã‚‹é™ã‚Šæœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® Android ã«æ›´æ–°ã™ã‚‹ã“ã¨ã‚’ãŠã™ã™ã‚ã—ã¦ã„ã¾ã™ã€‚</li>
+<li>Android セキュリティ ãƒãƒ¼ãƒ ã¯ã€<a href="https://www.android.com/play-protect" class="external">Google Play プロテクト</a>ã«ã‚ˆã£ã¦è„†å¼±æ€§ã®æ‚ªç”¨ã‚’ç©æ¥µçš„ã«ç›£è¦–ã—ã¦ãŠã‚Šã€<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">害をåŠã¼ã™ãŠãã‚Œã®ã‚るアプリ</a>ã«ã¤ã„ã¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è­¦å‘Šã—ã¦ã„ã¾ã™ã€‚Google Play プロテクトã¯ã€<a href="http://www.android.com/gms" class="external">Google モãƒã‚¤ãƒ« サービス</a>ã‚’æ­è¼‰ã—ãŸãƒ‡ãƒã‚¤ã‚¹ã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§æœ‰åŠ¹ã«ãªã£ã¦ãŠã‚Šã€Google Play 以外ã‹ã‚‰ã‚¢ãƒ—リをインストールã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¨ã£ã¦ã¯ç‰¹ã«é‡è¦ã§ã™ã€‚</li>
+</ul>
+<h2 id="2018-12-01-details">セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-01 ã®è„†å¼±æ€§ã®è©³ç´°</h2>
+<p>
+パッãƒãƒ¬ãƒ™ãƒ« 2018-12-01 ã«è©²å½“ã™ã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è„†å¼±æ€§ã®å„é …ç›®ã«ã¤ã„ã¦ã€ä¸‹è¨˜ã§è©³ã—ã説明ã—ã¾ã™ã€‚脆弱性ã¯ã€å½±éŸ¿ã‚’å—ã‘るコンãƒãƒ¼ãƒãƒ³ãƒˆã”ã¨ã«åˆ†é¡žã—ã¦ã„ã¾ã™ã€‚å•é¡Œã®å†…容ã«ã¤ã„ã¦èª¬æ˜Žã—ã€CVEã€é–¢é€£ã™ã‚‹å‚照先ã€<a href="#type">脆弱性ã®ã‚¿ã‚¤ãƒ—</a>ã€<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦</a>ã€æ›´æ–°å¯¾è±¡ã® AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ã‚’表ã«ã¾ã¨ã‚ã¦ã„ã¾ã™ã€‚該当ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®æ¬„ã«ã€ãã®å•é¡Œã®å¯¾å‡¦æ³•ã¨ã—ã¦ä¸€èˆ¬å…¬é–‹ã•ã‚Œã¦ã„る変更内容(AOSP ã®å¤‰æ›´ã®ä¸€è¦§ãªã©ï¼‰ã¸ã®ãƒªãƒ³ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚複数ã®å¤‰æ›´ãŒåŒã˜ãƒã‚°ã«é–¢ä¿‚ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®å¾Œã«è¨˜è¼‰ã—ãŸç•ªå·ã«ã€è¿½åŠ ã®å‚ç…§ã¸ã®ãƒªãƒ³ã‚¯ã‚’設定ã—ã¦ã„ã¾ã™ã€‚</p>
+
+<h3 id="framework">フレームワーク</h3>
+
+<p>フレームワークã®æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€æ‚ªæ„ã®ã‚るローカルアプリã«ã‚ˆã£ã¦ç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ãŒå®Ÿè¡Œã•ã‚Œã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9547</td>
+ <td>A-114223584</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9548</td>
+ <td>A-112555574</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+</tbody></table>
+
+<h3 id="media-framework">メディア フレームワーク</h3>
+<p>メディア フレームワークã®æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€ãƒªãƒ¢ãƒ¼ãƒˆã®æ”»æ’ƒè€…ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9549</td>
+ <td>A-112160868</td>
+ <td>RCE</td>
+ <td>é‡å¤§</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9550</td>
+ <td>A-112660981</td>
+ <td>RCE</td>
+ <td>é‡å¤§</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9551</td>
+ <td>A-112891548</td>
+ <td>RCE</td>
+ <td>é‡å¤§</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9552</td>
+ <td>A-113260892</td>
+ <td>ID</td>
+ <td>é‡å¤§</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9553</td>
+ <td>A-116615297</td>
+ <td>RCE</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9538</td>
+ <td>A-112181526</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9554</td>
+ <td>A-114770654</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">システム</h3>
+<p>システムã®æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€ãƒªãƒ¢ãƒ¼ãƒˆã®æ”»æ’ƒè€…ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸé€šä¿¡ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9555</td>
+ <td>A-112321180</td>
+ <td>RCE</td>
+ <td>é‡å¤§</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9556</td>
+ <td>A-113118184</td>
+ <td>RCE</td>
+ <td>é‡å¤§</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9557</td>
+ <td>A-35385357</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9558</td>
+ <td>A-112161557</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9559</td>
+ <td>A-112731440</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9560</td>
+ <td>A-79946737</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9562</td>
+ <td>A-113164621</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9566</td>
+ <td>A-74249842</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+</tbody></table>
+
+<h2 id="2018-12-05-details">セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 ã®è„†å¼±æ€§ã®è©³ç´°</h2>
+
+<p>
+パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 ã«è©²å½“ã™ã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è„†å¼±æ€§ã®å„é …ç›®ã«ã¤ã„ã¦ã€ä¸‹è¨˜ã§è©³ã—ã説明ã—ã¾ã™ã€‚影響をå—ã‘るコンãƒãƒ¼ãƒãƒ³ãƒˆã”ã¨ã«è„†å¼±æ€§ã‚’分類ã—ã€CVEã€é–¢é€£ã™ã‚‹å‚照先ã€<a href="#type">脆弱性ã®ã‚¿ã‚¤ãƒ—</a>ã€<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦</a>ã€ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ã€æ›´æ–°å¯¾è±¡ã® AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ãªã©ã®è©³ç´°ã‚’記載ã—ã¦ã„ã¾ã™ã€‚該当ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®æ¬„ã«ã€ãã®å•é¡Œã®å¯¾å‡¦æ³•ã¨ã—ã¦ä¸€èˆ¬å…¬é–‹ã•ã‚Œã¦ã„る変更内容(AOSP ã®å¤‰æ›´ã®ä¸€è¦§ãªã©ï¼‰ã¸ã®ãƒªãƒ³ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚複数ã®å¤‰æ›´ãŒåŒã˜ãƒã‚°ã«é–¢ä¿‚ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®å¾Œã«è¨˜è¼‰ã—ãŸç•ªå·ã«ã€è¿½åŠ ã®å‚ç…§ã¸ã®ãƒªãƒ³ã‚¯ã‚’設定ã—ã¦ã„ã¾ã™ã€‚</p>
+
+<h3 id="system-05">システム</h3>
+
+<p>システムã®æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€è¿½åŠ ã®å®Ÿè¡Œæ¨©é™ã‚’å¿…è¦ã¨ã™ã‚‹ã“ã¨ãªãã€ãƒªãƒ¢ãƒ¼ãƒˆã§æƒ…å ±ãŒæ¼ãˆã„ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9565</td>
+ <td>A-16680558</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>OMA-DM</td>
+ </tr>
+</tbody></table>
+
+<h3 id="htc-components">HTC コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
+
+<p>HTC コンãƒãƒ¼ãƒãƒ³ãƒˆã®æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€ãƒ­ãƒ¼ã‚«ãƒ«ã®æ”»æ’ƒè€…ã«ã‚ˆã£ã¦ã€è¿½åŠ æ¨©é™ã‚’å–å¾—ã™ã‚‹ãŸã‚ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ“作ã®è¦ä»¶ãŒå›žé¿ã•ã‚Œã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9567</td>
+ <td>A-65543936</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>ブートローダー</td>
+ </tr>
+</tbody></table>
+
+<h3 id="kernel-components">カーãƒãƒ« コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
+
+<p>カーãƒãƒ« コンãƒãƒ¼ãƒãƒ³ãƒˆã®æœ€ã‚‚é‡å¤§ãªè„†å¼±æ€§ã«ã‚ˆã‚Šã€ãƒ­ãƒ¼ã‚«ãƒ«ã®æ”»æ’ƒè€…ãŒç‰¹æ¨©ãƒ—ロセス内ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-10840</td>
+ <td>A-116406508<br />
+<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-10840">アップストリーム カーãƒãƒ«</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>ext4 ファイル システム</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9568</td>
+ <td>A-113509306<br />
+<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/net/core/sock.c?id=9d538fa60bad4f7b23193c89e843797a1cf71ef3">アップストリーム カーãƒãƒ«</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
+
+<p>Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆã«å½±éŸ¿ã™ã‚‹è„†å¼±æ€§ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€è©²å½“ã™ã‚‹ Qualcomm ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…報やセキュリティ アラートをã”覧ãã ã•ã„。ã“ã®ã‚ˆã†ãªå•é¡Œã®é‡å¤§åº¦ã®è©•ä¾¡ã¯ã€Qualcomm ã‹ã‚‰ç›´æŽ¥æä¾›ã•ã‚ŒãŸã‚‚ã®ã§ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11960</td>
+ <td>A-114042002<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=18ce15db603e19cfac9a2f4076f255e879100495">QC-CR#2264832</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>HWEngines</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11961</td>
+ <td>A-114040881<br />
+<a href="https://source.codeaurora.org/quic/le/platform/hardware/qcom/gps/commit/?id=c57ee0a5d3261ab20c35b451d1b3ae2b02a21591">QC-CR#2261813</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>GPS_AP_LINUX</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11963</td>
+ <td>A-114041685<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9ac3476a91c384a3f2760fabaecef0ad8698d7b">QC-CR#2220770</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>車載マルãƒãƒ¡ãƒ‡ã‚£ã‚¢</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-closed-source-components">Qualcomm クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
+
+<p>Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆã«å½±éŸ¿ã™ã‚‹è„†å¼±æ€§ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€è©²å½“ã™ã‚‹ Qualcomm ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…報やセキュリティ アラートをã”覧ãã ã•ã„。ã“ã®ã‚ˆã†ãªå•é¡Œã®é‡å¤§åº¦ã®è©•ä¾¡ã¯ã€Qualcomm ã‹ã‚‰ç›´æŽ¥æä¾›ã•ã‚ŒãŸã‚‚ã®ã§ã™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-8248</td>
+ <td>A-78135902<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>é‡å¤§</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11004</td>
+ <td>A-66913713<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>é‡å¤§</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18141</td>
+ <td>A-67712316<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>é‡å¤§</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5913</td>
+ <td>A-79419833<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>é‡å¤§</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11279</td>
+ <td>A-109678200<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>é‡å¤§</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18319</td>
+ <td>A-78284753<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18321</td>
+ <td>A-78283451<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18322</td>
+ <td>A-78285196<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18323</td>
+ <td>A-78284194<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18324</td>
+ <td>A-78284517<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18327</td>
+ <td>A-78240177<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18331</td>
+ <td>A-78239686<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18332</td>
+ <td>A-78284545<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18160</td>
+ <td>A-109660689<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18326</td>
+ <td>A-78240324<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8276</td>
+ <td>A-68141338<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18328</td>
+ <td>A-78286046<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18329</td>
+ <td>A-73539037<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18330</td>
+ <td>A-73539235<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3595</td>
+ <td>A-71501115<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18320</td>
+ <td>A-33757308<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11999</td>
+ <td>A-74236942<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5867</td>
+ <td>A-77485184<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5868</td>
+ <td>A-77484529<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5869</td>
+ <td>A-33385206<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-5754</td>
+ <td>A-79419639<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5915</td>
+ <td>A-79420511<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11267</td>
+ <td>A-109678338<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11922</td>
+ <td>A-112279564<a href="#asterisk">*</a></td>
+ <td>ãªã—</td>
+ <td>高</td>
+ <td>クローズドソース コンãƒãƒ¼ãƒãƒ³ãƒˆ</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">一般的ãªè³ªå•ã¨å›žç­”</h2>
+
+<p>上記ã®å…¬é–‹æƒ…å ±ã«å¯¾ã™ã‚‹ä¸€èˆ¬çš„ãªè³ªå•ã«ã¤ã„ã¦ã®å›žç­”ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚</p>
+<p><strong>1. 上記ã®å•é¡Œã«å¯¾å‡¦ã™ã‚‹ã‚ˆã†ã«ç«¯æœ«ãŒæ›´æ–°ã•ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’確ã‹ã‚ã‚‹ã«ã¯ã€ã©ã†ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹ï¼Ÿ</strong></p>
+<p>デãƒã‚¤ã‚¹ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>ã‚’ã”覧ãã ã•ã„。</p>
+<ul>
+<li>セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-01 以é™ã§ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-01 ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚</li>
+<li>セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 以é™ã§ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05ã€ãŠã‚ˆã³ãれ以å‰ã®ã™ã¹ã¦ã®ãƒ‘ッãƒãƒ¬ãƒ™ãƒ«ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚</li>
+</ul>
+<p>デãƒã‚¤ã‚¹ メーカーã¯ã€ã“ã†ã—ãŸã‚¢ãƒƒãƒ—デートを組ã¿è¾¼ã‚€å ´åˆã€ãƒ‘ッãƒãƒ¬ãƒ™ãƒ«æ–‡å­—列を以下ã®ã¨ãŠã‚Šè¨­å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-12-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-12-05]</li>
+</ul>
+<p><strong>2. ã“ã®å…¬é–‹æƒ…報㫠2 ã¤ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ãŒã‚ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong></p>
+<p>
+ã“ã®å…¬é–‹æƒ…å ±ã§ã¯ã€2 ã¤ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’定義ã—ã¦ã„ã¾ã™ã€‚ã“ã‚Œã¯ã€ã™ã¹ã¦ã® Android æ­è¼‰ç«¯æœ«ã§åŒæ§˜ã®å•é¡ŒãŒç™ºç”Ÿã™ã‚‹ä¸€éƒ¨ã®è„†å¼±æ€§ã‚’サブセットã¨ã—ã€Android パートナーãŒè¿…速ã‹ã¤æŸ”軟ã«ä¿®æ­£ã§ãるよã†ã«ã™ã‚‹ãŸã‚ã§ã™ã€‚Android パートナーã¯ã€ã“ã®å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹å•é¡Œã‚’ã™ã¹ã¦ä¿®æ­£ã—ã€æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’使用ã™ã‚‹ã“ã¨ãŒæŽ¨å¥¨ã•ã‚Œã¦ã„ã¾ã™ã€‚
+</p>
+<ul>
+<li>2018-12-01 ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’使用ã™ã‚‹ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã€ãã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã¨ã€ãれ以å‰ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã§å ±å‘Šã•ã‚ŒãŸã™ã¹ã¦ã®å•é¡Œã®ä¿®æ­£ã‚’å«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</li>
+<li>2018-12-05 以é™ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’使用ã™ã‚‹ãƒ‡ãƒã‚¤ã‚¹ã«ã¯ã€ä»Šå›žï¼ˆãŠã‚ˆã³ãれ以å‰ï¼‰ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚ŒãŸã€è©²å½“ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’組ã¿è¾¼ã‚€å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</li>
+</ul>
+<p>
+パートナーã¯ã€å¯¾å‡¦ã™ã‚‹å•é¡Œã™ã¹ã¦ã«ã¤ã„ã¦ã€ä¿®æ­£ã‚’ 1 ã¤ã®ã‚¢ãƒƒãƒ—デートã«ã¾ã¨ã‚ã¦æä¾›ã™ã‚‹ã“ã¨ãŒæŽ¨å¥¨ã•ã‚Œã¾ã™ã€‚
+</p>
+<p id="type">
+<strong>3. 「タイプ<em></em>ã€åˆ—ã®é …ç›®ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+脆弱性ã®è©³ç´°ã®è¡¨ã§ã€Œã‚¿ã‚¤ãƒ—<em></em>ã€åˆ—ã«è¨˜è¼‰ã—ãŸé …ç›®ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã®åˆ†é¡žã‚’示ã—ã¦ã„ã¾ã™ã€‚
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>略語</th>
+ <th>定義</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>リモートコード実行</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>権é™æ˜‡æ ¼</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>情報開示</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>サービス拒å¦</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>該当ã™ã‚‹åˆ†é¡žãªã—</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>4. 「å‚ç…§<em></em>ã€åˆ—ã®é …ç›®ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+脆弱性ã®è©³ç´°ã®è¡¨ã§ã€Œå‚ç…§<em></em>ã€åˆ—ã«è¨˜è¼‰ã—ãŸé …ç›®ã«ã¯ã€ãã®å‚照番å·ãŒå±žã™çµ„織を示ã™æŽ¥é ­è¾žãŒå«ã¾ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>接頭辞</th>
+ <th>å‚ç…§</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android ãƒã‚° ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm ã®å‚照番å·</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek ã®å‚照番å·</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA ã®å‚照番å·</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom ã®å‚照番å·</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>5. 「å‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã‚る「*ã€ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+公開ã•ã‚Œã¦ã„ãªã„å•é¡Œã«ã¯ã€ã€Œå‚ç…§ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã€Œ*ã€ã‚’付ã‘ã¦ã„ã¾ã™ã€‚<em></em>ã“ã®å•é¡Œã®ã‚¢ãƒƒãƒ—デートã¯ã€<a href="https://developers.google.com/android/drivers" class="external">Google デベロッパー サイト</a>ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹ Pixel / Nexus 端末用最新ãƒã‚¤ãƒŠãƒª ドライãƒã«é€šå¸¸å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
+</p>
+<p>
+<strong>6. セキュリティã®è„†å¼±æ€§ãŒã€ã“ã®å…¬é–‹æƒ…å ±ã¨ç«¯æœ«ã‚„パートナーã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…報(Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ãªã©ï¼‰ã«åˆ†ã‘られã¦ã„ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ã«ã‚ãŸã£ã¦ã¯ã€ã“ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ãれ以外ã®ã€ç«¯æœ«ã‚„パートナーã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã®å®£è¨€ã«å¿…é ˆã§ã¯ã‚ã‚Šã¾ã›ã‚“。<a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>ã€<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> ãªã©ã® Android æ­è¼‰ãƒ‡ãƒã‚¤ã‚¹ã‚„ãƒãƒƒãƒ—セットã®ãƒ¡ãƒ¼ã‚«ãƒ¼ã¯ã€è‡ªç¤¾ã®ãƒ‡ãƒã‚¤ã‚¹ã«é–¢ã—ã¦ä»–ã«ã‚‚修正ãŒã‚ã‚‹å ´åˆã€ãã®æƒ…報を自社ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£é–¢é€£ã®ã‚¦ã‚§ãƒ–サイトや <a href="/security/bulletin/pixel/" class="external">Pixel / Nexus</a> ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã™ã‚‹ã“ã¨ãŒæŽ¨å¥¨ã•ã‚Œã¾ã™ã€‚
+</p>
+
+<h2 id="versions">ãƒãƒ¼ã‚¸ãƒ§ãƒ³</h2>
+
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
+ <th>日付</th>
+ <th>メモ</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 12 月 3 日</td>
+ <td>情報公開</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/ja/security/bulletin/pixel/2018-01-01.html b/ja/security/bulletin/pixel/2018-01-01.html
index d9dd9326..941c2385 100644
--- a/ja/security/bulletin/pixel/2018-01-01.html
+++ b/ja/security/bulletin/pixel/2018-01-01.html
@@ -512,7 +512,8 @@ 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>
diff --git a/ja/security/bulletin/pixel/2018-04-01.html b/ja/security/bulletin/pixel/2018-04-01.html
index 70d0f192..2327c111 100644
--- a/ja/security/bulletin/pixel/2018-04-01.html
+++ b/ja/security/bulletin/pixel/2018-04-01.html
@@ -619,7 +619,7 @@ QC-CR#2098332</a></td>
<tr>
<td>A-67774904</td>
<td>接続</td>
- <td>Wi-Fi ã§ã®ãƒžãƒ«ãƒé€šè©±ã®ãƒ‘フォーマンスをå‘上</td>
+ <td>Wi-Fi ã§ã®ãƒžãƒ«ãƒé€šè©±ã®ãƒ‘フォーマンスを改善</td>
<td>Pixelã€Pixel XL</td>
</tr>
<tr>
@@ -679,7 +679,7 @@ QC-CR#2098332</a></td>
A-68922470<br />
A-68940490</td>
<td>証明書</td>
- <td>サービスã®ç¶™ç¶šçš„ãªæä¾›ã®ãŸã‚ã«è¨¼æ˜Žæ›¸ã‚’アップグレード</td>
+ <td>サービスを確実ã«ç¶™ç¶šã§ãるよã†è¨¼æ˜Žæ›¸ã‚’アップグレード</td>
<td>Nexus 5Xã€Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XL</td>
</tr>
<tr>
@@ -766,7 +766,7 @@ QC-CR#2098332</a></td>
<tr>
<td>A-69672417</td>
<td>安定性</td>
- <td>カナダã®ä¸€éƒ¨åœ°åŸŸã«ãŠã‘ã‚‹ Pixel 2 端末ã®å®‰å®šæ€§ã‚’å‘上</td>
+ <td>カナダã®ä¸€éƒ¨åœ°åŸŸã«ãŠã‘ã‚‹ Pixel 2 端末ã®å®‰å®šæ€§ã‚’改善</td>
<td>Pixel 2ã€Pixel 2 XL</td>
</tr>
<tr>
@@ -779,7 +779,7 @@ QC-CR#2098332</a></td>
<tr>
<td>A-69870527</td>
<td>UI</td>
- <td>緊急通報接続ã®ã‚¤ãƒ³ã‚¸ã‚±ãƒ¼ã‚¿ãƒ¼ã‚’改善</td>
+ <td>緊急通報接続ã®ã‚¤ãƒ³ã‚¸ã‚±ãƒ¼ã‚¿ãƒ¼ã‚’改良</td>
<td>Pixel 2ã€Pixel 2 XL</td>
</tr>
<tr>
diff --git a/ja/security/bulletin/pixel/2018-06-01.html b/ja/security/bulletin/pixel/2018-06-01.html
index 11858e02..5b72ca80 100644
--- a/ja/security/bulletin/pixel/2018-06-01.html
+++ b/ja/security/bulletin/pixel/2018-06-01.html
@@ -855,7 +855,7 @@ A-74058011</td>
<strong>5. セキュリティã®è„†å¼±æ€§ãŒã€ã“ã®å…¬é–‹æƒ…å ±ã¨ã€ŒAndroid ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã€ã«åˆ†ã‘られã¦ã„ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong>
</p>
<p>
-Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ãŸã‚ã«ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã§ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
+Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ã«ã‚ãŸã£ã¦ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
</p>
<h2 id="versions">ãƒãƒ¼ã‚¸ãƒ§ãƒ³</h2>
<table>
diff --git a/ja/security/bulletin/pixel/2018-07-01.html b/ja/security/bulletin/pixel/2018-07-01.html
index 177587e9..b60aa9c7 100644
--- a/ja/security/bulletin/pixel/2018-07-01.html
+++ b/ja/security/bulletin/pixel/2018-07-01.html
@@ -20,7 +20,7 @@
limitations under the License.
-->
-<p><em>2018 年 7 月 2 日公開 | 2018 年 7 月 3 日更新</em></p>
+<p><em>2018 年 7 月 2 日公開 | 2018 年 11 月 8 日更新</em></p>
<p>
Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">サãƒãƒ¼ãƒˆå¯¾è±¡ã® Google Pixel 端末㨠Nexus 端末</a>(Google 端末)ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã‚„機能強化ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚Google 端末ã§ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ« 2018-07-05 以é™ã«ãŠã„ã¦ã€ã“ã®å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã¨ã€2018 å¹´ 7 月㮠Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚端末ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹ã«ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>方法ã®èª¬æ˜Žã‚’ã”覧ãã ã•ã„。
@@ -221,7 +221,7 @@ Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€<a href="htt
</tr>
<tr>
- <td>CVE-2017-1000</td>
+ <td>CVE-2017-1000112</td>
<td>A-68806309<br />
<a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=85f1bd9a7b5a79d5baa8bf44af19658f7bf77bfa">アップストリーム カーãƒãƒ«</a></td>
<td>EoP</td>
@@ -438,7 +438,7 @@ Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€<a href="htt
<strong>5. セキュリティã®è„†å¼±æ€§ãŒã€ã“ã®å…¬é–‹æƒ…å ±ã¨ã€ŒAndroid ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã€ã«åˆ†ã‘られã¦ã„ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong>
</p>
<p>
-Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ãŸã‚ã«ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã§ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
+Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ã«ã‚ãŸã£ã¦ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
</p>
<h2 id="versions">ãƒãƒ¼ã‚¸ãƒ§ãƒ³</h2>
<table>
@@ -460,6 +460,11 @@ Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã
<td>2018 年 7 月 3 日</td>
<td>公開情報を改訂㗠AOSP リンクを追加</td>
</tr>
+ <tr>
+ <td>1.2</td>
+ <td>2018 年 11 月 8 日</td>
+ <td>公開情報を改訂㗠CVE-2017-1000112 を修正</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/ja/security/bulletin/pixel/2018-08-01.html b/ja/security/bulletin/pixel/2018-08-01.html
index 77e9fb0f..72c1c181 100644
--- a/ja/security/bulletin/pixel/2018-08-01.html
+++ b/ja/security/bulletin/pixel/2018-08-01.html
@@ -493,13 +493,13 @@ QC-CR#2185477</a></td>
<strong>4. 「å‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã‚る「*ã€ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
</p>
<p>
-公開ã•ã‚Œã¦ã„ãªã„å•é¡Œã«ã¯ã€ã€Œå‚ç…§ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã€Œ*ã€ã‚’付ã‘ã¦ã„ã¾ã™ã€‚<em></em>ã“ã®å•é¡Œã®ã‚¢ãƒƒãƒ—デートã¯ã€é€šå¸¸ã€<a href="https://developers.google.com/android/nexus/drivers" class="external">Google デベロッパー サイト</a>ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹ Pixel / Nexus 端末用最新ãƒã‚¤ãƒŠãƒª ドライãƒã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
+公開ã•ã‚Œã¦ã„ãªã„å•é¡Œã«ã¯ã€ã€Œå‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã€Œ*ã€ã‚’付ã‘ã¦ã„ã¾ã™ã€‚ã“ã®å•é¡Œã®ã‚¢ãƒƒãƒ—デートã¯ã€é€šå¸¸ã€<a href="https://developers.google.com/android/nexus/drivers" class="external">Google デベロッパー サイト</a>ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹ Pixel / Nexus 端末用最新ãƒã‚¤ãƒŠãƒª ドライãƒã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
</p>
<p>
<strong>5. セキュリティã®è„†å¼±æ€§ãŒã€ã“ã®å…¬é–‹æƒ…å ±ã¨ã€ŒAndroid ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã€ã«åˆ†ã‘られã¦ã„ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong>
</p>
<p>
-Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ãŸã‚ã«ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã§ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
+Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ã«ã‚ãŸã£ã¦ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
</p>
<h2 id="versions">ãƒãƒ¼ã‚¸ãƒ§ãƒ³</h2>
<table>
diff --git a/ja/security/bulletin/pixel/2018-09-01.html b/ja/security/bulletin/pixel/2018-09-01.html
index ff691e8a..b9c98845 100644
--- a/ja/security/bulletin/pixel/2018-09-01.html
+++ b/ja/security/bulletin/pixel/2018-09-01.html
@@ -312,13 +312,13 @@ QC-CR#2204285</a>
<strong>4. 「å‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã‚る「*ã€ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
</p>
<p>
-公開ã•ã‚Œã¦ã„ãªã„å•é¡Œã«ã¯ã€ã€Œå‚ç…§ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã€Œ*ã€ã‚’付ã‘ã¦ã„ã¾ã™ã€‚<em></em>ã“ã®å•é¡Œã®ã‚¢ãƒƒãƒ—デートã¯ã€é€šå¸¸ã€<a href="https://developers.google.com/android/nexus/drivers" class="external">Google デベロッパー サイト</a>ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹ Pixel / Nexus 端末用最新ãƒã‚¤ãƒŠãƒª ドライãƒã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
+公開ã•ã‚Œã¦ã„ãªã„å•é¡Œã«ã¯ã€ã€Œå‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã€Œ*ã€ã‚’付ã‘ã¦ã„ã¾ã™ã€‚ã“ã®å•é¡Œã®ã‚¢ãƒƒãƒ—デートã¯ã€é€šå¸¸ã€<a href="https://developers.google.com/android/nexus/drivers" class="external">Google デベロッパー サイト</a>ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹ Pixel / Nexus 端末用最新ãƒã‚¤ãƒŠãƒª ドライãƒã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
</p>
<p>
<strong>5. セキュリティã®è„†å¼±æ€§ãŒã€ã“ã®å…¬é–‹æƒ…å ±ã¨ã€ŒAndroid ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã€ã«åˆ†ã‘られã¦ã„ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong>
</p>
<p>
-Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã«ã¤ã„ã¦ã¯ã€Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’公表ã™ã‚‹ã«ã‚ãŸã£ã¦ã€å¯¾å‡¦ãŒå¿…é ˆã¨ãªã‚Šã¾ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã®å…¬è¡¨ã«ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
+Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ãŸã‚ã«ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã§ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
</p>
<h2 id="versions">ãƒãƒ¼ã‚¸ãƒ§ãƒ³</h2>
<table>
diff --git a/ja/security/bulletin/pixel/2018-11-01.html b/ja/security/bulletin/pixel/2018-11-01.html
index bf2e8420..dce744c6 100644
--- a/ja/security/bulletin/pixel/2018-11-01.html
+++ b/ja/security/bulletin/pixel/2018-11-01.html
@@ -40,7 +40,34 @@ Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€<a href="htt
<h2 id="security-patches">セキュリティ パッãƒ</h2>
<p>
脆弱性ã¯ã€å½±éŸ¿ã‚’å—ã‘るコンãƒãƒ¼ãƒãƒ³ãƒˆã”ã¨ã«åˆ†é¡žã—ã¦ã„ã¾ã™ã€‚å•é¡Œã®å†…容ã«ã¤ã„ã¦èª¬æ˜Žã—ã€CVEã€é–¢é€£ã™ã‚‹å‚照先ã€<a href="#type">脆弱性ã®ã‚¿ã‚¤ãƒ—</a>ã€<a href="/security/overview/updates-resources#severity">é‡å¤§åº¦</a>ã€æ›´æ–°å¯¾è±¡ã® AOSP(Android オープンソース プロジェクト)ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ã‚’表ã«ã¾ã¨ã‚ã¦ã„ã¾ã™ã€‚
-該当ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®æ¬„ã«ã€ãã®å•é¡Œã®å¯¾å‡¦æ³•ã¨ã—ã¦ä¸€èˆ¬å…¬é–‹ã•ã‚Œã¦ã„る変更内容(AOSP ã®å¤‰æ›´ã®ä¸€è¦§ãªã©ï¼‰ã¸ã®ãƒªãƒ³ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚複数ã®å¤‰æ›´ãŒåŒã˜ãƒã‚°ã«é–¢ä¿‚ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®å¾Œã«è¨˜è¼‰ã—ãŸç•ªå·ã«ã€è¿½åŠ ã®å‚ç…§ã¸ã®ãƒªãƒ³ã‚¯ã‚’設定ã—ã¦ã„ã¾ã™ã€‚</p>
+該当ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®æ¬„ã«ã€ãã®å•é¡Œã®å¯¾å‡¦æ³•ã¨ã—ã¦ä¸€èˆ¬å…¬é–‹ã•ã‚Œã¦ã„る変更内容(AOSP ã®å¤‰æ›´ã®ä¸€è¦§ãªã©ï¼‰ã¸ã®ãƒªãƒ³ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚複数ã®å¤‰æ›´ãŒåŒã˜ãƒã‚°ã«é–¢ä¿‚ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®å¾Œã«ç¶šã番å·ã§ã€è¿½åŠ ã®å‚照先ã¸ã®ãƒªãƒ³ã‚¯ã‚’示ã—ã¾ã™ã€‚</p>
+
+<h3 id="framework-05">フレームワーク</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9526</td>
+ <td><a href="https://android.googlesource.com/device/google/marlin/+/fa7f7382e8b39f7ca209824f97788ab25c44f6a3" class="external">A-112159033</a>
+ [<a href="https://android.googlesource.com/platform/frameworks/base/+/8e81142af3dceb913ca50f67df3ded84233f932a">2</a>]
+ [<a href="https://android.googlesource.com/platform/hardware/qcom/sdm845/gps/+/a5f7c07edd96c69171e8bd758addda7d5c30e3eb">3</a>]
+ </td>
+ <td>ID</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+</tbody></table>
<h3 id="htc-components">HTC コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
diff --git a/ja/security/bulletin/pixel/2018-12-01.html b/ja/security/bulletin/pixel/2018-12-01.html
new file mode 100644
index 00000000..49f0cc2c
--- /dev/null
+++ b/ja/security/bulletin/pixel/2018-12-01.html
@@ -0,0 +1,274 @@
+<html devsite><head>
+ <title>Pixel  /  Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ± - 2018 å¹´ 12 月</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<p><em>公開日: 2018 年 12 月 3 日</em></p>
+
+<p>
+Pixel / Nexus ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">サãƒãƒ¼ãƒˆå¯¾è±¡ã® Google Pixel デãƒã‚¤ã‚¹ã¨ Nexus デãƒã‚¤ã‚¹</a>(Google デãƒã‚¤ã‚¹ï¼‰ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã‚„機能強化ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚Google デãƒã‚¤ã‚¹ã§ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 以é™ã«ãŠã„ã¦ã€ã“ã®å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã¨ã€2018 å¹´ 12 月㮠Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚デãƒã‚¤ã‚¹ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>ã‚’ã”覧ãã ã•ã„。
+</p>
+<p>
+パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 ã¸ã®ã‚¢ãƒƒãƒ—デートã¯ã€ã‚µãƒãƒ¼ãƒˆå¯¾è±¡ã®ã™ã¹ã¦ã® Google デãƒã‚¤ã‚¹ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚ã”利用ã®ãƒ‡ãƒã‚¤ã‚¹ã«ã“ã®ã‚¢ãƒƒãƒ—デートをé©ç”¨ã™ã‚‹ã“ã¨ã‚’ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ãŠã™ã™ã‚ã—ã¾ã™ã€‚
+</p>
+<p class="note">
+<strong>注:</strong> Google デãƒã‚¤ã‚¹ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ イメージã¯ã€<a href="https://developers.google.com/android/images" class="external">Google デベロッパー サイト</a>ã§å…¥æ‰‹ã§ãã¾ã™ã€‚
+</p>
+
+<h2 id="announcements">ãŠçŸ¥ã‚‰ã›</h2>
+
+<p><a href="/security/bulletin/2018-12-01">2018 å¹´ 12 月㮠Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã«åŠ ãˆã¦ã€Google デãƒã‚¤ã‚¹ã«ã¯ã€ä¸‹è¨˜ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã«å¯¾ã™ã‚‹ãƒ‘ッãƒã‚‚å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚パートナーã«ã¯å°‘ãªãã¨ã‚‚ 1 ã‹æœˆå‰ã«ä¸‹è¨˜ã®å•é¡ŒãŒé€šçŸ¥ã•ã‚Œã¦ãŠã‚Šã€ãƒ‘ートナーã¯ãƒ‡ãƒã‚¤ã‚¹ã®ã‚¢ãƒƒãƒ—デートã«ã“ã†ã—ãŸãƒ‘ッãƒã‚’組ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚
+</p>
+
+<h2 id="security-patches">セキュリティ パッãƒ</h2>
+<p>
+脆弱性ã¯ã€å½±éŸ¿ã‚’å—ã‘るコンãƒãƒ¼ãƒãƒ³ãƒˆã”ã¨ã«åˆ†é¡žã—ã¦ã„ã¾ã™ã€‚å•é¡Œã®å†…容ã«ã¤ã„ã¦èª¬æ˜Žã—ã€CVEã€é–¢é€£ã™ã‚‹å‚照先ã€<a href="#type">脆弱性ã®ã‚¿ã‚¤ãƒ—</a>ã€<a href="/security/overview/updates-resources#severity">é‡å¤§åº¦</a>ã€æ›´æ–°å¯¾è±¡ã® AOSP(Android オープンソース プロジェクト)ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼ˆè©²å½“ã™ã‚‹å ´åˆï¼‰ã‚’表ã«ã¾ã¨ã‚ã¦ã„ã¾ã™ã€‚
+該当ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®æ¬„ã«ã€ãã®å•é¡Œã®å¯¾å‡¦æ³•ã¨ã—ã¦ä¸€èˆ¬å…¬é–‹ã•ã‚Œã¦ã„る変更内容(AOSP ã®å¤‰æ›´ã®ä¸€è¦§ãªã©ï¼‰ã¸ã®ãƒªãƒ³ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚複数ã®å¤‰æ›´ãŒåŒã˜ãƒã‚°ã«é–¢ä¿‚ã™ã‚‹å ´åˆã¯ã€ãƒã‚° ID ã®å¾Œã«è¨˜è¼‰ã—ãŸç•ªå·ã«ã€è¿½åŠ ã®å‚ç…§ã¸ã®ãƒªãƒ³ã‚¯ã‚’設定ã—ã¦ã„ã¾ã™ã€‚</p>
+
+<h3 id="qualcomm-components">Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚ç…§</th>
+ <th>タイプ</th>
+ <th>é‡å¤§åº¦</th>
+ <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11987</td>
+ <td>A-70638103<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=5e9ffcfa152ecb2832990c42fcd8a0f2e63c2c04">
+QC-CR#2258691</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>ION</td>
+ </tr>
+</tbody></table>
+
+<h2 id="functional-patches">機能パッãƒ</h2>
+
+<p>影響をå—ã‘ã‚‹ Pixel デãƒã‚¤ã‚¹ã«ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£é–¢é€£ä»¥å¤–ã®æ©Ÿèƒ½ã®å•é¡Œã«å¯¾å‡¦ã™ã‚‹ä¸‹è¨˜ã®æ©Ÿèƒ½ãƒ‘ッãƒãŒçµ„ã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã™ã€‚下記ã®è¡¨ã«ç¤ºã™ãƒ‘ッãƒã«ã€é–¢é€£ã™ã‚‹å‚照先ã€å½±éŸ¿ã‚’å—ã‘るカテゴリã€å½±éŸ¿ã‚’å—ã‘るデãƒã‚¤ã‚¹ã‚’記載ã—ã¦ã„ã¾ã™ã€‚</p>
+
+<table>
+<colgroup><col width="15%" />
+<col width="15%" />
+<col width="40%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>å‚ç…§</th>
+ <th>カテゴリ</th>
+ <th>改善内容</th>
+ <th>デãƒã‚¤ã‚¹</th>
+ </tr>
+ <tr>
+ <td>A-117522738</td>
+ <td>パフォーマンス</td>
+ <td>特定ã®çŠ¶æ³ä¸‹ã§ã®ãƒ¡ãƒ¢ãƒªã®ãƒ‘フォーマンスを改善</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-110969183</td>
+ <td>カメラ</td>
+ <td>カメラ撮影ã®ãƒ‘フォーマンスを改善</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111008450</td>
+ <td>Pixel Stand</td>
+ <td>Pixel Stand 使用時ã®é€šçŸ¥ã®å¯è¦–性を改善</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112376366</td>
+ <td>Android Auto</td>
+ <td>Android Auto ã®äº’æ›æ€§ã‚’改善</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115666282</td>
+ <td>カメラ</td>
+ <td>オートフォーカスã®å‹•ä½œã‚’調整</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115624433</td>
+ <td>Pixel Stand</td>
+ <td>Pixel Stand 使用時ã®èµ·å‹•ãƒ¯ãƒ¼ãƒ‰ã®ãƒ‘フォーマンスを改善</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-116758282</td>
+ <td>ディスプレイ</td>
+ <td>「常ã«è¡¨ç¤ºçŠ¶æ…‹ã®ãƒ‡ã‚£ã‚¹ãƒ—レイã€æ©Ÿèƒ½ã®ãƒˆãƒªã‚¬ãƒ¼ã‚’改善</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111964925</td>
+ <td>オーディオ</td>
+ <td>USB-C オーディオ アクセサリã®æ¤œå‡ºã‚’改善</td>
+ <td>Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111716107</td>
+ <td>Bluetooth</td>
+ <td>Bluetooth ã®åˆ‡ã‚Šæ›¿ãˆæ™‚ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã®å‹•ä½œã‚’調整</td>
+ <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111159723</td>
+ <td>Android Auto</td>
+ <td>特定ã®è»Šä¸¡ã§ã® Android Auto 使用時ã«ãŠã‘るオーディオã®ãƒ‘フォーマンスを改善</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112228430</td>
+ <td>メディア</td>
+ <td>特定ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚¢ãƒ—リã§ã® HDR カラーã®è¼ªéƒ­ã‚’改善</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-113151604</td>
+ <td>カメラ</td>
+ <td>カメラã®ã‚·ãƒ£ãƒƒã‚¿ãƒ¼ã®ãƒ‘フォーマンスを改善</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111277984</td>
+ <td>パフォーマンス</td>
+ <td>Bluetooth 使用時ã®ãƒ­ãƒƒã‚¯è§£é™¤ã®ãƒ‘フォーマンスを改善</td>
+ <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">一般的ãªè³ªå•ã¨å›žç­”</h2>
+<p>
+上記ã®å…¬é–‹æƒ…å ±ã«å¯¾ã™ã‚‹ä¸€èˆ¬çš„ãªè³ªå•ã«ã¤ã„ã¦ã®å›žç­”ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚
+</p>
+<p>
+<strong>1. 上記ã®å•é¡Œã«å¯¾å‡¦ã™ã‚‹ã‚ˆã†ã«ãƒ‡ãƒã‚¤ã‚¹ãŒæ›´æ–°ã•ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’確ã‹ã‚ã‚‹ã«ã¯ã€ã©ã†ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹ï¼Ÿ
+</strong>
+</p>
+<p>
+セキュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05 以é™ã§ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ« 2018-12-05ã€ãŠã‚ˆã³ãれ以å‰ã®ã™ã¹ã¦ã®ãƒ‘ッãƒãƒ¬ãƒ™ãƒ«ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚デãƒã‚¤ã‚¹ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Pixel ãŠã‚ˆã³ Nexus ã®ã‚¢ãƒƒãƒ—デート スケジュール</a>ã«è¨˜è¼‰ã•ã‚Œã¦ã„る手順をã”覧ãã ã•ã„。
+</p>
+<p id="type">
+<strong>2. 「タイプ<em></em>ã€åˆ—ã®é …ç›®ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+脆弱性ã®è©³ç´°ã®è¡¨ã§ã€Œã‚¿ã‚¤ãƒ—<em></em>ã€åˆ—ã«è¨˜è¼‰ã—ãŸé …ç›®ã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã®è„†å¼±æ€§ã®åˆ†é¡žã‚’示ã—ã¦ã„ã¾ã™ã€‚
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>略語</th>
+ <th>定義</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>リモートコード実行</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>権é™æ˜‡æ ¼</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>情報開示</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>サービス拒å¦</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>該当ã™ã‚‹åˆ†é¡žãªã—</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>3. 「å‚ç…§<em></em>ã€åˆ—ã®é …ç›®ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+脆弱性ã®è©³ç´°ã®è¡¨ã§ã€Œå‚ç…§<em></em>ã€åˆ—ã«è¨˜è¼‰ã—ãŸé …ç›®ã«ã¯ã€ãã®å‚照番å·ãŒå±žã™çµ„織を示ã™æŽ¥é ­è¾žãŒå«ã¾ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>接頭辞</th>
+ <th>å‚ç…§</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android ãƒã‚° ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm ã®å‚照番å·</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek ã®å‚照番å·</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA ã®å‚照番å·</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom ã®å‚照番å·</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>4. 「å‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã‚る「*ã€ã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+公開ã•ã‚Œã¦ã„ãªã„å•é¡Œã«ã¯ã€ã€Œå‚ç…§<em></em>ã€åˆ—ã® Android ãƒã‚° ID ã®æ¨ªã«ã€Œ*ã€ã‚’付ã‘ã¦ã„ã¾ã™ã€‚ã“ã®å•é¡Œã®ã‚¢ãƒƒãƒ—デートã¯ã€é€šå¸¸ã€<a href="https://developers.google.com/android/drivers" class="external">Google デベロッパー サイト</a>ã‹ã‚‰å…¥æ‰‹ã§ãã‚‹ Pixel / Nexus 端末用最新ãƒã‚¤ãƒŠãƒª ドライãƒã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
+</p>
+<p>
+<strong>5. セキュリティã®è„†å¼±æ€§ãŒã€ã“ã®å…¬é–‹æƒ…å ±ã¨ã€ŒAndroid ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã€ã«åˆ†ã‘られã¦ã„ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong>
+</p>
+<p>
+Android æ­è¼‰ç«¯æœ«ã®æœ€æ–°ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ パッãƒãƒ¬ãƒ™ãƒ«ã‚’宣言ã™ã‚‹ãŸã‚ã«ã¯ã€Android ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ãŒå¿…è¦ã§ã™ã€‚ãれ以外ã®ã€ã“ã®å…¬é–‹æƒ…å ±ãªã©ã«æŽ²è¼‰ã•ã‚Œã¦ã„るセキュリティã®è„†å¼±æ€§ã¸ã®å¯¾å‡¦ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
+</p>
+<h2 id="versions">ãƒãƒ¼ã‚¸ãƒ§ãƒ³</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th>
+ <th>日付</th>
+ <th>メモ</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 12 月 3 日</td>
+ <td>情報公開</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/ja/security/bulletin/pixel/2018.html b/ja/security/bulletin/pixel/2018.html
index 6818a394..5d025af2 100644
--- a/ja/security/bulletin/pixel/2018.html
+++ b/ja/security/bulletin/pixel/2018.html
@@ -35,15 +35,13 @@
</tr>
<tr>
<td><a href="/security/bulletin/pixel/2018-11-01.html">2018 年 11 月</a></td>
- <td>準備中
- <!--
- <a href="/security/bulletin/pixel/2018-11-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
- -->
+ <td>
+ <a href="/security/bulletin/pixel/2018-11-01.html">English</a> /
+ <a href="/security/bulletin/pixel/2018-11-01.html?hl=ja">日本語</a> /
+ <a href="/security/bulletin/pixel/2018-11-01.html?hl=ko">한국어</a> /
+ <a href="/security/bulletin/pixel/2018-11-01.html?hl=ru">руÌÑÑкий</a> /
+ <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-cn">中文(中国)</a> /
+ <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-tw">中文(å°ç£ï¼‰</a>
</td>
<td>2018 年 11 月 5 日</td>
<td>2018-11-05</td>
diff --git a/ko/security/bulletin/2018-08-01.html b/ko/security/bulletin/2018-08-01.html
index 0ca2b1cf..af470f9a 100644
--- a/ko/security/bulletin/2018-08-01.html
+++ b/ko/security/bulletin/2018-08-01.html
@@ -626,7 +626,7 @@ Qualcomm AMSS 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -719,7 +719,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/2018-09-01.html b/ko/security/bulletin/2018-09-01.html
index 33299ae0..34b39b4c 100644
--- a/ko/security/bulletin/2018-09-01.html
+++ b/ko/security/bulletin/2018-09-01.html
@@ -59,8 +59,8 @@ Pixel&amp;hairsp;/&amp;hairsp;Nexus 보안 게시íŒ</a>
<h2 id="mitigations">Android ë° Google 서비스 완화</h2>
<p>
다ìŒì€
-<a href="https://www.android.com/play-protect" class="external">Google Play 프로í…트</a>와 ê°™ì€
-<a href="/security/enhancements/">Android 보안 플랫í¼</a> ë° ì„œë¹„ìŠ¤ 보호 기능ì—ì„œ
+<a href="/security/enhancements/">Android 보안 플랫í¼</a> ë°
+<a href="https://www.android.com/play-protect" class="external">Google Play 프로í…트</a>와 ê°™ì€ ì„œë¹„ìŠ¤ 보호 기능ì—ì„œ
제공하는 ì™„í™”ì— ê´€í•œ 요약입니다. ì´ëŸ¬í•œ ê¸°ëŠ¥ì„ í†µí•´
Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</p>
@@ -190,9 +190,7 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tbody></table>
<h3 id="media-framework">미디어 프레임워í¬</h3>
-<p>ì´ ì„¹ì…˜ì—ì„œ 가장 심ê°í•œ 취약성으로 ì¸í•´ 로컬 악성 애플리케ì´ì…˜ì´ ì‚¬ìš©ìž ìƒí˜¸ìž‘ìš© 요구사항ì„
-우회하여 추가ì ì¸ ê¶Œí•œì— ì•¡ì„¸ìŠ¤í•  수
-있습니다.</p>
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 로컬 악성 애플리케ì´ì…˜ì´ ì‚¬ìš©ìž ìƒí˜¸ìž‘ìš© ìš”êµ¬ì‚¬í•­ì„ ìš°íšŒí•˜ì—¬ 추가ì ì¸ ê¶Œí•œì— ì•¡ì„¸ìŠ¤í•  수 있습니다.</p>
<table>
<colgroup><col width="21%" />
@@ -225,9 +223,7 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tbody></table>
<h3 id="system">시스템</h3>
-<p>ì´ ì„¹ì…˜ì—ì„œ 가장 심ê°í•œ 취약성으로 ì¸í•´ 로컬 공격ìžê°€ ì‚¬ìš©ìž ìƒí˜¸ìž‘ìš© ìš”êµ¬ì‚¬í•­ì„ ìš°íšŒí•˜ì—¬
-추가ì ì¸ ê¶Œí•œì— ì•¡ì„¸ìŠ¤í•  수
-있습니다.</p>
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 로컬 공격ìžê°€ ì‚¬ìš©ìž ìƒí˜¸ìž‘ìš© ìš”êµ¬ì‚¬í•­ì„ ìš°íšŒí•˜ì—¬ 추가ì ì¸ ê¶Œí•œì— ì•¡ì„¸ìŠ¤í•  수 있습니다.</p>
<table>
<colgroup><col width="21%" />
@@ -342,40 +338,6 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tr>
</tbody></table>
-<h3 id="update-media-framework">ì—…ë°ì´íŠ¸: 미디어 프레임워í¬</h3>
-<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 특별히 ì œìž‘ëœ íŒŒì¼ì„ 사용하는
-ì›ê²© 공격ìžê°€ ê¶Œí•œì´ ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ì˜ ì»¨í…스트 ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를
-실행할 수 있습니다.</p>
-
-<table>
- <colgroup><col width="21%" />
- <col width="21%" />
- <col width="14%" />
- <col width="14%" />
- <col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>참조</th>
- <th>유형</th>
- <th>심ê°ë„</th>
- <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
- </tr>
- <tr>
- <td>CVE-2018-9411</td>
- <td><a href="https://android.googlesource.com/platform/system/libhidl/+/93484b9b015d47c0f7e5f4449a214b2fed8bed4f" class="external">A-79376389</a></td>
- <td>RCE</td>
- <td>심ê°</td>
- <td>8.0, 8.1, 9</td>
- </tr>
- <tr>
- <td>CVE-2018-9427</td>
- <td><a href="https://android.googlesource.com/platform/frameworks/av/+/29d991fac25b261a72ce73f96c9df594ea5b9242" class="external">A-77486542</a></td>
- <td>RCE</td>
- <td>심ê°</td>
- <td>8.0, 8.1, 9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-09-05-details">2018-09-05 보안 패치 수준 취약성 세부정보</h2>
<p>
ë‹¤ìŒ ì„¹ì…˜ì—서는 2018-09-05 패치 ìˆ˜ì¤€ì— ì ìš©ë˜ëŠ”
@@ -390,7 +352,7 @@ AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²
</p>
<h3 id="framework">프레임워í¬</h3>
-<p>ì´ ì„¹ì…˜ì—ì„œ 가장 심ê°í•œ 취약성으로 ì¸í•´ 로컬 악성 애플리케ì´ì…˜ì´
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 로컬 악성 애플리케ì´ì…˜ì´
다른 애플리케ì´ì…˜ìœ¼ë¡œë¶€í„° 애플리케ì´ì…˜ ë°ì´í„°ë¥¼ 분리하는
ìš´ì˜ì²´ì œ 보호를 우회할 수 있습니다.</p>
@@ -417,9 +379,8 @@ AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²
</tbody></table>
<h3 id="kernel-components">ì»¤ë„ êµ¬ì„±ìš”ì†Œ</h3>
-<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ ì›ëž˜ëŠ” ê¶Œí•œì„ ê°–ê³  있으며 ë¡œì»¬ì— ì„¤ì¹˜í•œ
-애플리케ì´ì…˜ë§Œ 액세스할 수 있는 ë°ì´í„°ì— ì›ê²© 공격ìžê°€ 액세스하ë„ë¡
-할 수 있습니다.</p>
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 보통 ê¶Œí•œì´ ìžˆìœ¼ë©° ë¡œì»¬ì— ì„¤ì¹˜ëœ
+애플리케ì´ì…˜ë§Œ 액세스할 수 있는 ë°ì´í„°ì— ì›ê²© 공격ìžê°€ 액세스할 수 있습니다.</p>
<table>
<colgroup><col width="21%" />
@@ -448,7 +409,7 @@ AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²
<p>ë‹¤ìŒ ì·¨ì•½ì„±ì€ Qualcomm êµ¬ì„±ìš”ì†Œì— ì˜í–¥ì„ 주며
해당 Qualcomm AMSS 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 알림ì—
ìžì„¸ížˆ 설명ë˜ì–´ 있습니다. Android 파트너는 Createpoint를 통해 기기ì—
-ë¬¸ì œì˜ ì ìš© 여부를 확ì¸í•  수 있습니다. ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ”
+문제가 ì ìš©ë˜ëŠ”지 여부를 확ì¸í•  수 있습니다. ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ”
Qualcommì—ì„œ ì§ì ‘ 제공합니다.</p>
<table>
@@ -527,7 +488,7 @@ QC-CR#2119840<a href="#asterisk">*</a></td>
<p>ë‹¤ìŒ ì·¨ì•½ì„±ì€ Qualcomm êµ¬ì„±ìš”ì†Œì— ì˜í–¥ì„ 주며 해당
Qualcomm AMSS 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´
있습니다. Android 파트너는 Createpoint를 통해 기기ì—
-ë¬¸ì œì˜ ì ìš© 여부를 확ì¸í•  수 있습니다. ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ”
+문제가 ì ìš©ë˜ëŠ”지 여부를 확ì¸í•  수 있습니다. ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ”
Qualcommì—ì„œ ì§ì ‘ 제공합니다.</p>
<table>
@@ -873,7 +834,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë° í•„ìš”í•©ë‹ˆë‹
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/2018-11-01.html b/ko/security/bulletin/2018-11-01.html
index 650d0def..b02e0513 100644
--- a/ko/security/bulletin/2018-11-01.html
+++ b/ko/security/bulletin/2018-11-01.html
@@ -19,7 +19,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p><em>2018ë…„ 11ì›” 5ì¼ ê²Œì‹œë¨</em></p>
+<p><em>2018ë…„ 11ì›” 5ì¼ ê²Œì‹œë¨ | 2018ë…„ 11ì›” 5ì¼ ì—…ë°ì´íŠ¸ë¨</em></p>
<p>
Android 보안 게시íŒì€ Android ê¸°ê¸°ì— ì˜í–¥ì„ 미치는 보안 취약성
@@ -29,9 +29,9 @@ Android 보안 게시íŒì€ Android ê¸°ê¸°ì— ì˜í–¥ì„ 미치는 보안 취약ì
</p>
<p>
Android 파트너ì—게는 게시ë˜ê¸° 최소 í•œ 달 ì „ì— ëª¨ë“  문제 관련 알림ì´
-전달ë˜ì—ˆìŠµë‹ˆë‹¤. ì´ëŸ¬í•œ ë¬¸ì œì˜ í•´ê²°ì„ ìœ„í•œ 소스 코드 패치는 향후 48시간 ë™ì•ˆ
-Android 오픈소스 프로ì íŠ¸(AOSP) ì €ìž¥ì†Œì— ë°°í¬ë©ë‹ˆë‹¤. 패치를 사용할 수 있게 ë˜ë©´ AOSP ë§í¬ì™€ 함께 ì´ ê²Œì‹œíŒì„
-수정하겠습니다.</p>
+전달ë˜ì—ˆìŠµë‹ˆë‹¤. ì´ëŸ¬í•œ 문제를 해결하기 위한 소스 코드 패치는
+Android 오픈소스 프로ì íŠ¸(AOSP) ì €ìž¥ì†Œì— ë°°í¬ë˜ì—ˆìœ¼ë©° ì´ ê²Œì‹œíŒì—ë„ ë§í¬ë˜ì–´ 있습니다.
+ì´ ê²Œì‹œíŒì—는 AOSP ì™¸ë¶€ì˜ íŒ¨ì¹˜ ë§í¬ë„ í¬í•¨ë˜ì–´ 있습니다.</p>
<p>
ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 특별히
ì œìž‘ëœ íŒŒì¼ì„ 사용하는 근접한 공격ìžê°€ ê¶Œí•œì´ ì„¤ì •ëœ
@@ -54,7 +54,6 @@ Android 오픈소스 프로ì íŠ¸(AOSP) ì €ìž¥ì†Œì— ë°°í¬ë©ë‹ˆë‹¤. 패치를
<a href="/security/bulletin/pixel/2018-11-01">2018ë…„ 11ì›”Pixel&amp;hairsp;/&amp;hairsp;Nexus 보안 게시íŒ</a>
ì„ ì°¸ì¡°í•˜ì„¸ìš”.
</p>
-
<h2 id="announcements">공지사항</h2>
<p>
Libxaac ë¼ì´ë¸ŒëŸ¬ë¦¬ì—ì„œ 다ìŒì„ í¬í•¨í•œ 몇 가지 보안 문제가 파악ë˜ì—ˆìŠµë‹ˆë‹¤.
@@ -115,21 +114,21 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tr>
<tr>
<td>CVE-2018-9522</td>
- <td>A-112550251</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/181dc252ddec574464882970d3fab290e8b625b5" class="external">A-112550251</a></td>
<td>EoP</td>
<td>높ìŒ</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9524</td>
- <td>A-34170870</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/c9bc35a45da1e765eb36af604c0c580bd66644cc" class="external">A-34170870</a></td>
<td>EoP</td>
<td>높ìŒ</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
</tr>
<tr>
<td>CVE-2018-9525</td>
- <td>A-111330641</td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/6409cf5c94cc1feb72dc078e84e66362fbecd6d5" class="external">A-111330641</a></td>
<td>EoP</td>
<td>높ìŒ</td>
<td>9</td>
@@ -156,42 +155,42 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tr>
<tr>
<td>CVE-2018-9527</td>
- <td>A-112159345</td>
+ <td><a href="https://android.googlesource.com/platform/external/tremolo/+/cafff8f4535c8bf933c5a2fcb1a0dd66fb75a1c2" class="external">A-112159345</a></td>
<td>RCE</td>
<td>심ê°</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
</tr>
<tr>
<td>CVE-2018-9531</td>
- <td>A-112661641</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/c2208f2a3098410c5a4c79ad6bd4b6d7e1c0b03f" class="external">A-112661641</a></td>
<td>RCE</td>
<td>심ê°</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9536</td>
- <td>A-112662184</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/9744e41c40598c6a0b74440f3b5be63f9f3708a5" class="external">A-112662184</a></td>
<td>EoP</td>
<td>심ê°</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9537</td>
- <td>A-112891564</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/61381bd0f4bc012876ccf4b63eafddd2d60c35c9" class="external">A-112891564</a></td>
<td>EoP</td>
<td>심ê°</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9521</td>
- <td>A-111874331</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/083263937bfb1623adf6015da7ca3cdc258e0352" class="external">A-111874331</a></td>
<td>RCE</td>
<td>높ìŒ</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9539</td>
- <td>A-113027383</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/efe34a570d91b826b009d40e44c2e470dd180ace" class="external">A-113027383</a></td>
<td>EoP</td>
<td>높ìŒ</td>
<td>8.0, 8.1, 9</td>
@@ -218,42 +217,42 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tr>
<tr>
<td>CVE-2018-9540</td>
- <td>A-111450417</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/99d54d0c7dbab6c80f15bbf886ed203b2a547453" class="external">A-111450417</a></td>
<td>ID</td>
<td>높ìŒ</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
</tr>
<tr>
<td>CVE-2018-9542</td>
- <td>A-111896861</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111896861</a></td>
<td>ID</td>
<td>높ìŒ</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
</tr>
<tr>
<td>CVE-2018-9543</td>
- <td>A-112868088</td>
+ <td><a href="https://android.googlesource.com/platform/external/f2fs-tools/+/71313114a147ee3fc4a411904de02ea8b6bf7f91" class="external">A-112868088</a></td>
<td>ID</td>
<td>높ìŒ</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9544</td>
- <td>A-113037220</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113037220</a></td>
<td>ID</td>
<td>높ìŒ</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9545</td>
- <td>A-113111784</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113111784</a></td>
<td>ID</td>
<td>높ìŒ</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">CVE-2018-9541</td>
- <td rowspan="2">A-111450531</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111450531</a></td>
<td>ID</td>
<td>보통</td>
<td>9</td>
@@ -265,54 +264,6 @@ Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
</tr>
</tbody></table>
-<h3 id="update-media-framework">ì—…ë°ì´íŠ¸: 미디어 프레임워í¬</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>참조</th>
- <th>유형</th>
- <th>심ê°ë„</th>
- <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
- </tr>
- <tr>
- <td>CVE-2018-9347</td>
- <td>A-68664359</td>
- <td>DoS</td>
- <td>보통</td>
- <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
- </tr>
-</tbody></table>
-
-<h3 id="update-system">ì—…ë°ì´íŠ¸: 시스템</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>참조</th>
- <th>유형</th>
- <th>심ê°ë„</th>
- <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
- </tr>
- <tr>
- <td>CVE-2018-9457</td>
- <td>A-72872376</td>
- <td>EoP</td>
- <td>보통</td>
- <td>8.0, 8.1, 9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-11-05-details">2018-11-01 보안 패치 수준 취약성 세부정보</h2>
<p>
ë‹¤ìŒ ì„¹ì…˜ì—서는 2018-11-05 패치 ìˆ˜ì¤€ì— ì ìš©ë˜ëŠ”
@@ -346,18 +297,11 @@ AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²
</tr>
<tr>
<td>CVE-2018-9523</td>
- <td>A-112859604</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/6a947f048a76a5936fd2b693e01f849aef22c907" class="external">A-112859604</a></td>
<td>EoP</td>
<td>높ìŒ</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
</tr>
- <tr>
- <td>CVE-2018-9526</td>
- <td>A-112159033</td>
- <td>ID</td>
- <td>높ìŒ</td>
- <td>9</td>
- </tr>
</tbody></table>
<h3 id="qualcomm-components">Qualcomm 구성요소</h3>
@@ -680,6 +624,11 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë° í•„ìš”í•©ë‹ˆë‹
<td>2018ë…„ 11ì›” 5ì¼</td>
<td>게시íŒì´ 게시ë¨</td>
</tr>
+ <tr>
+ <td>1.1</td>
+ <td>2018ë…„ 11ì›” 5ì¼</td>
+ <td>게시íŒì´ 수정ë˜ì–´ AOSP ë§í¬ í¬í•¨ë¨</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/ko/security/bulletin/2018-12-01.html b/ko/security/bulletin/2018-12-01.html
new file mode 100644
index 00000000..3349aea2
--- /dev/null
+++ b/ko/security/bulletin/2018-12-01.html
@@ -0,0 +1,802 @@
+<html devsite><head>
+ <title>Android 보안 게시íŒâ€”2018ë…„ 12ì›”</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<p><em>2018ë…„ 12ì›” 3ì¼ ê²Œì‹œë¨</em></p>
+
+<p>
+Android 보안 게시íŒì€ Android ê¸°ê¸°ì— ì˜í–¥ì„ 미치는 보안 취약성
+세부정보를 다룹니다. ì´ëŸ¬í•œ 문제는 2018-12-05 보안 패치 수준 ì´ìƒì—ì„œ
+ëª¨ë‘ í•´ê²°ë˜ì—ˆìŠµë‹ˆë‹¤. ê¸°ê¸°ì˜ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ í™•ì¸í•˜ëŠ” 방법ì€
+<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android 버전 í™•ì¸ ë° ì—…ë°ì´íŠ¸</a>를 참조하세요.
+</p>
+<p>ì´ëŸ¬í•œ ë¬¸ì œì˜ í•´ê²°ì„ ìœ„í•œ 소스 코드 패치는 향후 48시간 ë™ì•ˆ
+Android 오픈소스 프로ì íŠ¸(AOSP) ì €ìž¥ì†Œì— ë°°í¬ë©ë‹ˆë‹¤. 패치를 사용할 수 있게 ë˜ë©´ AOSP ë§í¬ì™€ 함께 ì´ ê²Œì‹œíŒì„
+수정하겠습니다.</p>
+<p>
+ì´ëŸ¬í•œ 문제 중 가장 심ê°í•œ ê²ƒì€ ë¯¸ë””ì–´ 프레임워í¬ì˜ 심ê°í•œ 보안 취약성으로,
+특별히 ì œìž‘ëœ íŒŒì¼ì„ 사용하는 ì›ê²© 공격ìžê°€ ê¶Œí•œì´ ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ì˜ ì»¨í…스트
+ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를 실행할 수 있습니다. <a href="/security/overview/updates-resources.html#severity">심ê°ë„
+í‰ê°€</a>는
+개발 목ì ìœ¼ë¡œ í”Œëž«í¼ ë° ì„œë¹„ìŠ¤ 완화를 사용할 수 없거나 ìš°íšŒì— ì„±ê³µí•œ 경우 취약성 악용으로 ì¸í•´
+ëŒ€ìƒ ê¸°ê¸°ê°€ 받는 ì˜í–¥ì„
+기준으로 합니다.
+</p>
+<p>
+실제 ê³ ê°ì´ 새로 ë³´ê³ ëœ ì´ëŸ¬í•œ 문제로 ì¸í•´ 악용당했다는 신고는
+접수ë˜ì§€ 않았습니다. Android 플랫í¼ì˜ ë³´ì•ˆì„ ê°œì„ í•˜ëŠ”
+<a href="/security/enhancements/">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-12-01">2017ë…„ 12ì›”
+Pixel&amp;hairsp;/&amp;hairsp;Nexus보안 게시íŒ</a>
+ì„ ì°¸ì¡°í•˜ì„¸ìš”.
+</p>
+
+<h2 id="mitigations">Android ë° Google 서비스 완화</h2>
+
+<p>
+다ìŒì€
+<a href="https://www.android.com/play-protect" class="external">Google Play 프로í…트</a>와 ê°™ì€
+<a href="/security/enhancements/">Android 보안 플랫í¼</a> ë° ì„œë¹„ìŠ¤ 보호 기능ì—ì„œ
+제공하는 ì™„í™”ì— ê´€í•œ 요약입니다. ì´ëŸ¬í•œ ê¸°ëŠ¥ì„ í†µí•´
+Androidì—ì„œ 보안 ì·¨ì•½ì„±ì´ ì•…ìš©ë  ê°€ëŠ¥ì„±ì„ ì¤„ìž…ë‹ˆë‹¤.
+</p>
+<ul>
+<li>Android í”Œëž«í¼ ìµœì‹  ë²„ì „ì˜ í–¥ìƒëœ 기능으로 Androidì˜ ì—¬ëŸ¬ 문제를
+악용하기가 ë”ìš± 어려워졌습니다. 가능하다면 모든 사용ìžëŠ” 최신 ë²„ì „ì˜ Androidë¡œ
+ì—…ë°ì´íŠ¸í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤.</li>
+<li>Android 보안팀ì—서는 <a href="https://www.android.com/play-protect" class="external">Google Play 프로í…트</a>를 통해 악용사례를 ì ê·¹ì ìœ¼ë¡œ 모니터ë§í•˜ê³  <a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">잠재ì ìœ¼ë¡œ 위험한 애플리케ì´ì…˜</a>ì— ê´€í•´ 사용ìžì—게 경고를 보냅니다. Google Play 프로í…트는 <a href="http://www.android.com/gms" class="external">Google ëª¨ë°”ì¼ ì„œë¹„ìŠ¤</a>ê°€ ì ìš©ëœ 기기ì—
+기본ì ìœ¼ë¡œ
+사용 설정ë˜ì–´ 있으며 Google Play 외부ì—ì„œ 가져온 ì•±ì„ ì„¤ì¹˜í•˜ëŠ” 사용ìžì—게
+특히 중요합니다.</li>
+</ul>
+<h2 id="2018-12-01-details">2018-12-01 보안 패치 수준 취약성 세부정보</h2>
+<p>
+ë‹¤ìŒ ì„¹ì…˜ì—서는 2018-12-01 패치 ìˆ˜ì¤€ì— ì ìš©ë˜ëŠ”
+ê° ë³´ì•ˆ ì·¨ì•½ì„±ì— ê´€í•´ ìžì„¸ížˆ 알아볼 수 있습니다. ì·¨ì•½ì„±ì€ ì˜í–¥ì„ 받는
+구성요소 ì•„ëž˜ì— ë¶„ë¥˜ë˜ì–´ 있습니다. 여기ì—는
+문제 설명 ë° CVE, 관련 참조,
+<a href="#type">취약성 유형</a>,
+<a href="/security/overview/updates-resources.html#severity">심ê°ë„</a>,
+ì—…ë°ì´íŠ¸ëœ AOSP 버전(해당하는 경우)ì´ í¬í•¨ëœ 표가 제시ë©ë‹ˆë‹¤. 가능한 경우 AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼
+í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²„ê·¸ IDì— ì—°ê²°í•©ë‹ˆë‹¤. 하나ì˜
+버그와 ê´€ë ¨ëœ ë³€ê²½ì‚¬í•­ì´ ì—¬ëŸ¬ ê°œì¸ ê²½ìš° 추가 참조가 버그 ID
+다ìŒì— 오는 ë²ˆí˜¸ì— ì—°ê²°ë©ë‹ˆë‹¤.
+</p>
+
+<h3 id="framework">프레임워í¬</h3>
+
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 로컬 악성 애플리케ì´ì…˜ì´
+ê¶Œí•œì´ ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를 실행할 수
+있습니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9547</td>
+ <td>A-114223584</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9548</td>
+ <td>A-112555574</td>
+ <td>ID</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+</tbody></table>
+
+<h3 id="media-framework">미디어 프레임워í¬</h3>
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 특별히 ì œìž‘ëœ íŒŒì¼ì„ 사용하는
+ì›ê²© 공격ìžê°€ ê¶Œí•œì´ ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ì˜ ì»¨í…스트 ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를
+실행할 수 있습니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9549</td>
+ <td>A-112160868</td>
+ <td>RCE</td>
+ <td>심ê°</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9550</td>
+ <td>A-112660981</td>
+ <td>RCE</td>
+ <td>심ê°</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9551</td>
+ <td>A-112891548</td>
+ <td>RCE</td>
+ <td>심ê°</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9552</td>
+ <td>A-113260892</td>
+ <td>ID</td>
+ <td>심ê°</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9553</td>
+ <td>A-116615297</td>
+ <td>RCE</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9538</td>
+ <td>A-112181526</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9554</td>
+ <td>A-114770654</td>
+ <td>ID</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">시스템</h3>
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 특별히 ì œìž‘ëœ ì „ì†¡ì„ ì‚¬ìš©í•˜ëŠ”
+ì›ê²© 공격ìžê°€ ê¶Œí•œì´ ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ì˜ ì»¨í…스트 ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를
+실행할 수 있습니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9555</td>
+ <td>A-112321180</td>
+ <td>RCE</td>
+ <td>심ê°</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9556</td>
+ <td>A-113118184</td>
+ <td>RCE</td>
+ <td>심ê°</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9557</td>
+ <td>A-35385357</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9558</td>
+ <td>A-112161557</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9559</td>
+ <td>A-112731440</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9560</td>
+ <td>A-79946737</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9562</td>
+ <td>A-113164621</td>
+ <td>ID</td>
+ <td>높ìŒ</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9566</td>
+ <td>A-74249842</td>
+ <td>ID</td>
+ <td>높ìŒ</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td>
+ </tr>
+</tbody></table>
+
+<h2 id="2018-12-05-details">2018-12-05 보안 패치 수준 취약성 세부정보</h2>
+
+<p>
+ë‹¤ìŒ ì„¹ì…˜ì—서는 2018-12-05 패치 ìˆ˜ì¤€ì— ì ìš©ë˜ëŠ”
+ê° ë³´ì•ˆ ì·¨ì•½ì„±ì— ê´€í•´ ìžì„¸ížˆ 알아볼 수 있습니다. 취약성ì€
+ì˜í–¥ì„ 받는 구성요소 ì•„ëž˜ì— ë¶„ë¥˜ë˜ì–´ 있으며
+CVE, 관련 참조, <a href="#type">취약성 유형</a>,
+<a href="/security/overview/updates-resources.html#severity">심ê°ë„</a>,
+구성요소(해당하는 경우), ì—…ë°ì´íŠ¸ëœ AOSP 버전(해당하는 경우)ê³¼ ê°™ì€ ì„¸ë¶€ì •ë³´ê°€ í¬í•¨ë˜ì–´ 있습니다. 가능한 경우
+AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²„ê·¸ IDì—
+연결합니다. í•˜ë‚˜ì˜ ë²„ê·¸ì™€ ê´€ë ¨ëœ ë³€ê²½ì‚¬í•­ì´ ì—¬ëŸ¬ ê°œì¸ ê²½ìš°
+추가 참조가 버그 ID 다ìŒì— 오는 ë²ˆí˜¸ì— ì—°ê²°ë©ë‹ˆë‹¤.
+</p>
+
+<h3 id="system-05">시스템</h3>
+
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 추가 실행 권한 ì—†ì´ ì›ê²© ì •ë³´ê°€ ê³µê°œë  ìˆ˜ 있습니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>구성요소</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9565</td>
+ <td>A-16680558</td>
+ <td>ID</td>
+ <td>높ìŒ</td>
+ <td>OMA-DM</td>
+ </tr>
+</tbody></table>
+
+<h3 id="htc-components">HTC 구성요소</h3>
+
+<p>ì´ ì„¹ì…˜ì—ì„œ 가장 심ê°í•œ 취약성으로 ì¸í•´ 로컬 공격ìžê°€ ì‚¬ìš©ìž ìƒí˜¸ìž‘ìš© ìš”êµ¬ì‚¬í•­ì„ ìš°íšŒí•˜ì—¬
+추가ì ì¸ ê¶Œí•œì— ì•¡ì„¸ìŠ¤í•  수
+있습니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>구성요소</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9567</td>
+ <td>A-65543936</td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>부트로ë”</td>
+ </tr>
+</tbody></table>
+
+<h3 id="kernel-components">ì»¤ë„ êµ¬ì„±ìš”ì†Œ</h3>
+
+<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 로컬 공격ìžê°€ 권한ì´
+ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ì˜ ì»¨í…스트 ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를 실행할 수
+있습니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>구성요소</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-10840</td>
+ <td>A-116406508<br />
+<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-10840">업스트림 커ë„</a></td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>ext4 íŒŒì¼ ì‹œìŠ¤í…œ</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9568</td>
+ <td>A-113509306<br />
+<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/net/core/sock.c?id=9d538fa60bad4f7b23193c89e843797a1cf71ef3">업스트림 커ë„</a></td>
+ <td>EoP</td>
+ <td>높ìŒ</td>
+ <td>네트워í¬</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Qualcomm 구성요소</h3>
+
+<p>ë‹¤ìŒ ì·¨ì•½ì„±ì€ Qualcomm êµ¬ì„±ìš”ì†Œì— ì˜í–¥ì„ 주며 해당
+Qualcomm 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´
+있습니다.
+ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ” Qualcommì—ì„œ ì§ì ‘ 제공합니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>구성요소</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11960</td>
+ <td>A-114042002<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=18ce15db603e19cfac9a2f4076f255e879100495">QC-CR#2264832</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>HWEngines</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11961</td>
+ <td>A-114040881<br />
+<a href="https://source.codeaurora.org/quic/le/platform/hardware/qcom/gps/commit/?id=c57ee0a5d3261ab20c35b451d1b3ae2b02a21591">QC-CR#2261813</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>GPS_AP_LINUX</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11963</td>
+ <td>A-114041685<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9ac3476a91c384a3f2760fabaecef0ad8698d7b">QC-CR#2220770</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>ìžë™ì°¨ 멀티미디어</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-closed-source-components">Qualcomm 비공개 소스 구성요소</h3>
+
+<p>ë‹¤ìŒ ì·¨ì•½ì„±ì€ Qualcomm êµ¬ì„±ìš”ì†Œì— ì˜í–¥ì„ 주며 해당
+Qualcomm 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´
+있습니다. ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ” Qualcommì—ì„œ ì§ì ‘
+제공합니다.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>구성요소</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-8248</td>
+ <td>A-78135902<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>심ê°</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11004</td>
+ <td>A-66913713<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>심ê°</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18141</td>
+ <td>A-67712316<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>심ê°</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5913</td>
+ <td>A-79419833<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>심ê°</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11279</td>
+ <td>A-109678200<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>심ê°</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18319</td>
+ <td>A-78284753<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18321</td>
+ <td>A-78283451<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18322</td>
+ <td>A-78285196<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18323</td>
+ <td>A-78284194<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18324</td>
+ <td>A-78284517<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18327</td>
+ <td>A-78240177<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18331</td>
+ <td>A-78239686<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18332</td>
+ <td>A-78284545<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18160</td>
+ <td>A-109660689<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18326</td>
+ <td>A-78240324<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8276</td>
+ <td>A-68141338<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18328</td>
+ <td>A-78286046<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18329</td>
+ <td>A-73539037<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18330</td>
+ <td>A-73539235<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3595</td>
+ <td>A-71501115<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18320</td>
+ <td>A-33757308<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11999</td>
+ <td>A-74236942<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5867</td>
+ <td>A-77485184<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5868</td>
+ <td>A-77484529<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5869</td>
+ <td>A-33385206<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-5754</td>
+ <td>A-79419639<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5915</td>
+ <td>A-79420511<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11267</td>
+ <td>A-109678338<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11922</td>
+ <td>A-112279564<a href="#asterisk">*</a></td>
+ <td>N/A</td>
+ <td>높ìŒ</td>
+ <td>비공개 소스 구성요소</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">ì¼ë°˜ì ì¸ 질문 ë° ë‹µë³€</h2>
+
+<p>ì´ ì„¹ì…˜ì—서는 게시íŒì„ ì½ì€ ë’¤ ì œê¸°ë  ìˆ˜ 있는 ì¼ë°˜ì ì¸ ì§ˆë¬¸ì˜ ë‹µë³€ì„
+제시합니다.</p>
+<p><strong>1. ë‚´ 기기가 ì—…ë°ì´íŠ¸ë˜ì–´ ì´ ë¬¸ì œê°€ í•´ê²°ë˜ì—ˆëŠ”지 어떻게 ì•Œ 수
+있나요?</strong></p>
+<p>ê¸°ê¸°ì˜ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ í™•ì¸í•˜ëŠ” 방법ì€
+<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Android 버전 í™•ì¸ ë° ì—…ë°ì´íŠ¸</a>를 참조하세요.</p>
+<ul>
+<li>2018-12-01 보안 패치 수준과 ê´€ë ¨ëœ ëª¨ë“  문제는 2018-12-01
+보안 패치 수준 ì´ìƒì—ì„œ í•´ê²°ë©ë‹ˆë‹¤.</li>
+<li>2018-12-05 보안 패치 수준 ë° ê·¸ ì´ì „ì˜ ëª¨ë“  패치 수준과 관련ëœ
+문제는 2018-12-05 보안 패치 수준 ì´ìƒì—ì„œ ëª¨ë‘ í•´ê²°ë©ë‹ˆë‹¤.</li>
+</ul>
+<p>ì´ ì—…ë°ì´íŠ¸ë¥¼ í¬í•¨í•˜ëŠ” 기기 제조업체는 패치 문ìžì—´ ìˆ˜ì¤€ì„ ë‹¤ìŒê³¼ ê°™ì´
+설정해야 합니다.</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-12-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-12-05]</li>
+</ul>
+<p><strong>2. ì´ ê²Œì‹œíŒì— ë‘ ê°€ì§€ 보안 패치 ìˆ˜ì¤€ì´ ìžˆëŠ” ì´ìœ ê°€ 무엇ì¸ê°€ìš”?</strong></p>
+<p>
+ì´ ê²Œì‹œíŒì—는 Android 파트너가 모든 Android 기기ì—ì„œ 유사하게 ë°œìƒí•˜ëŠ”
+취약성 ë¬¸ì œì˜ ì¼ë¶€ë¥¼ ë”ìš± 빠르고 유연하게 í•´ê²°í•  수 있ë„ë¡ ë‘ ê°€ì§€
+보안 패치 ìˆ˜ì¤€ì´ í¬í•¨ë˜ì–´ 있습니다. Android 파트너는 ì´ ê²Œì‹œíŒì— ì–¸ê¸‰ëœ ë¬¸ì œë¥¼ ëª¨ë‘ ìˆ˜ì •í•˜ê³ 
+최신 보안 패치 ìˆ˜ì¤€ì„ ì‚¬ìš©í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤.
+</p>
+<ul>
+<li>2018-12-01 보안 패치 ìˆ˜ì¤€ì„ ì‚¬ìš©í•˜ëŠ” 기기는 ì´ ë³´ì•ˆ 패치
+수준과 ê´€ë ¨ëœ ëª¨ë“  문제와 ì´ì „ 보안 게시íŒì— ë³´ê³ ëœ
+모든 ë¬¸ì œì˜ ìˆ˜ì •ì‚¬í•­ì„ í¬í•¨í•´ì•¼ 합니다.</li>
+<li>2018-12-05 ì´í›„ì˜ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ ì‚¬ìš©í•˜ëŠ” 기기는
+ì´ ë³´ì•ˆ 게시íŒê³¼ ì´ì „ 게시íŒì˜ 모든 관련 패치를
+í¬í•¨í•´ì•¼ 합니다.</li>
+</ul>
+<p>
+파트너는 해결하는 모든 ë¬¸ì œì˜ ìˆ˜ì •ì‚¬í•­ì„ ë‹¨ í•œ ë²ˆì˜ ì—…ë°ì´íŠ¸ì—ì„œ 번들로 묶는 것ì´
+좋습니다.
+</p>
+<p id="type">
+<strong>3. <em>유형</em> ì—´ì˜ í•­ëª©ì€ ë¬´ì—‡ì„ ì˜ë¯¸í•˜ë‚˜ìš”?</strong>
+</p>
+<p>
+취약성 세부정보 í‘œì˜ <em>유형</em> ì—´ì— ìžˆëŠ” 항목ì€
+보안 취약성 분류를 참조합니다.
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>약어</th>
+ <th>ì •ì˜</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>리모컨 코드 실행</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>권한 승격</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>정보 공개</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>서비스 거부</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>분류 ì—†ìŒ</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>4. <em>참조</em> ì—´ì˜ í•­ëª©ì€ ë¬´ì—‡ì„ ì˜ë¯¸í•˜ë‚˜ìš”?</strong>
+</p>
+<p>
+취약성 세부정보 í‘œì˜ <em>참조</em> ì—´ì— ìžˆëŠ” 항목ì€
+참조 ê°’ì´ ì†í•œ ì¡°ì§ì„ 나타내는 ì ‘ë‘어를 í¬í•¨í•  수
+있습니다.
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>ì ‘ë‘ì–´</th>
+ <th>참조</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android 버그 ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm 참조 번호</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek 참조 번호</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA 참조 번호</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom 참조 번호</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>5. <em>참조</em> ì—´ì—ì„œ Android 버그 ID ì˜†ì— ìžˆëŠ” * 표시는
+ë¬´ì—‡ì„ ì˜ë¯¸í•˜ë‚˜ìš”?</strong>
+</p>
+<p>
+공개ë˜ì§€ ì•Šì€ ë¬¸ì œëŠ” <em>참조</em> ì—´ì˜ Android 버그 ID ì˜†ì— * 표시가
+있습니다. ì¼ë°˜ì ìœ¼ë¡œ ì´ëŸ¬í•œ ë¬¸ì œì— ê´€í•œ ì—…ë°ì´íŠ¸ëŠ”
+<a href="https://developers.google.com/android/drivers" class="external">Google ê°œë°œìž ì‚¬ì´íŠ¸</a>ì—ì„œ 제공하는
+Pixel&amp;hairsp;/&amp;hairsp;Nexus
+기기용
+최신 ë°”ì´ë„ˆë¦¬ ë“œë¼ì´ë²„ì— í¬í•¨ë˜ì–´ 있습니다.
+</p>
+<p>
+<strong>6. 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Pixel / Nexus 게시íŒê³¼ ê°™ì€
+기기&amp;hairsp;/&amp;hairsp;파트너 보안 게시íŒì— 나뉘어져 있는
+ì´ìœ ê°€ 무엇ì¸ê°€ìš”?</strong>
+</p>
+<p>
+ì´ ë³´ì•ˆ 게시íŒì— 설명ë˜ì–´ 있는 보안 취약성ì€
+Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë° í•„ìš”í•©ë‹ˆë‹¤. 기기&amp;hairsp;/&amp;hairsp;파트너
+보안 게시íŒì— ì„¤ëª…ëœ ì¶”ê°€ 보안 ì·¨ì•½ì„±ì€ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
+필요하지 않습니다. Android 기기 ë° ì¹©ì…‹ 제조업체는 <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">삼성</a>, <a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> ë˜ëŠ”
+<a href="/security/bulletin/pixel/" class="external">Pixel&amp;hairsp;/&amp;hairsp;Nexus</a> 보안 게시íŒê³¼ ê°™ì€ ìžì²´
+보안 웹사ì´íŠ¸ë¥¼
+통해 기기와 관련ëœ
+다른 ìˆ˜ì •ì‚¬í•­ì´ ìžˆëŠ”ì§€
+기ë¡í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤.
+</p>
+
+<h2 id="versions">버전</h2>
+
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>버전</th>
+ <th>날짜</th>
+ <th>참고</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018ë…„ 12ì›” 3ì¼</td>
+ <td>게시íŒì´ 게시ë¨</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/ko/security/bulletin/2018.html b/ko/security/bulletin/2018.html
index 0260e642..285e511d 100644
--- a/ko/security/bulletin/2018.html
+++ b/ko/security/bulletin/2018.html
@@ -35,15 +35,13 @@
</tr>
<tr>
<td><a href="/security/bulletin/2018-11-01.html">2018ë…„ 11ì›”</a></td>
- <td>출시 예정
- <!--
- <a href="/security/bulletin/2018-11-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
- -->
+ <td>
+ <a href="/security/bulletin/2018-11-01.html?hl=ko">한국어</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> /
+ <a href="/security/bulletin/2018-11-01.html">English</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=ru">руÌÑÑкий</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=zh-cn">中文 (中国)</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2018ë…„ 11ì›” 5ì¼</td>
<td>2018-11-01<br />
diff --git a/ko/security/bulletin/index.html b/ko/security/bulletin/index.html
index 4a51984e..9d98075d 100644
--- a/ko/security/bulletin/index.html
+++ b/ko/security/bulletin/index.html
@@ -66,15 +66,13 @@ Security Updates 그룹</a>ì— ê°€ìž…í•˜ì—¬ ì´ë©”ì¼ ì „ë‹¬ í™˜ê²½ì„¤ì •ì„ ëª¨
</tr>
<tr>
<td><a href="/security/bulletin/2018-11-01.html">2018ë…„ 11ì›”</a></td>
- <td>출시 예정
- <!--
- <a href="/security/bulletin/2018-11-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/2018-11-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
- -->
+ <td>
+ <a href="/security/bulletin/2018-11-01.html?hl=ko">한국어</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> /
+ <a href="/security/bulletin/2018-11-01.html">English</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=ru">руÌÑÑкий</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=zh-cn">中文 (中国)</a> /
+ <a href="/security/bulletin/2018-11-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2018ë…„ 11ì›” 5ì¼</td>
<td>2018-11-01<br />
@@ -612,7 +610,7 @@ Security Updates 그룹</a>ì— ê°€ìž…í•˜ì—¬ ì´ë©”ì¼ ì „ë‹¬ í™˜ê²½ì„¤ì •ì„ ëª¨
<a href="/security/bulletin/2015-08-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2015ë…„ 8ì›” 13ì¼</td>
- <td>해당 ì—†ìŒ</td>
+ <td>N/A</td>
</tr>
</tbody></table>
diff --git a/ko/security/bulletin/pixel/2018-01-01.html b/ko/security/bulletin/pixel/2018-01-01.html
index 99c90747..f5111022 100644
--- a/ko/security/bulletin/pixel/2018-01-01.html
+++ b/ko/security/bulletin/pixel/2018-01-01.html
@@ -704,7 +704,7 @@ QC-CR#2078342</a></td>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -787,7 +787,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/pixel/2018-02-01.html b/ko/security/bulletin/pixel/2018-02-01.html
index ea1c9a81..d6cff0ed 100644
--- a/ko/security/bulletin/pixel/2018-02-01.html
+++ b/ko/security/bulletin/pixel/2018-02-01.html
@@ -526,7 +526,7 @@ QC-CR#2003798</a></td>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -610,7 +610,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/pixel/2018-03-01.html b/ko/security/bulletin/pixel/2018-03-01.html
index e0ce4c0a..ed42ba58 100644
--- a/ko/security/bulletin/pixel/2018-03-01.html
+++ b/ko/security/bulletin/pixel/2018-03-01.html
@@ -603,7 +603,7 @@ QC-CR#2119401</a></td>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -687,7 +687,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/pixel/2018-04-01.html b/ko/security/bulletin/pixel/2018-04-01.html
index 80d105f2..9d83e600 100644
--- a/ko/security/bulletin/pixel/2018-04-01.html
+++ b/ko/security/bulletin/pixel/2018-04-01.html
@@ -930,7 +930,7 @@ QC-CR#2098332</a></td>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -1014,7 +1014,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/pixel/2018-06-01.html b/ko/security/bulletin/pixel/2018-06-01.html
index 659d0efd..9b3bf8b4 100644
--- a/ko/security/bulletin/pixel/2018-06-01.html
+++ b/ko/security/bulletin/pixel/2018-06-01.html
@@ -795,7 +795,7 @@ A-74058011</td>
<h2 id="common-questions-and-answers">ì¼ë°˜ì ì¸ 질문 ë° ë‹µë³€</h2>
<p>
-ì´ ì„¹ì…˜ì—서는 게시íŒì„ ì½ì€ ë’¤ ì œê¸°ë  ìˆ˜ 있는 ì¼ë°˜ì ì¸ ì§ˆë¬¸ì˜ ë‹µë³€ì„
+ì´ ì„¹ì…˜ì—서는 ê²Œì‹œíŒ ë‚´ìš©ì— ê´€í•œ ì¼ë°˜ì ì¸ ì§ˆë¬¸ì˜ ë‹µë³€ì„
제시합니다.
</p>
<p>
@@ -824,7 +824,7 @@ A-74058011</td>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -908,7 +908,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
@@ -918,7 +918,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
<tr>
<td>1.1</td>
<td>2018ë…„ 6ì›” 6ì¼</td>
- <td>게시íŒì´ 수정ë˜ì–´ AOSP ë§í¬ í¬í•¨ë¨</td>
+ <td>게시íŒì´ 수정ë˜ì–´ AOSP ë§í¬ê°€ í¬í•¨ë¨</td>
</tr>
</tbody></table>
diff --git a/ko/security/bulletin/pixel/2018-07-01.html b/ko/security/bulletin/pixel/2018-07-01.html
index 6eb2a9ea..e73e89a6 100644
--- a/ko/security/bulletin/pixel/2018-07-01.html
+++ b/ko/security/bulletin/pixel/2018-07-01.html
@@ -20,7 +20,7 @@
limitations under the License.
-->
-<p><em>2018ë…„ 7ì›” 2ì¼ì— ê²Œì‹œë¨ | 2018ë…„ 7ì›” 3ì¼ì— ì—…ë°ì´íŠ¸ë¨</em></p>
+<p><em>Published July 2, 2018 | Updated November 8, 2018</em></p>
<p>
Pixel&amp;hairsp;/&amp;hairsp;Nexus 보안 게시íŒì—서는
@@ -244,7 +244,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 관련ëœ
</tr>
<tr>
- <td>CVE-2017-1000</td>
+ <td>CVE-2017-1000112</td>
<td>A-68806309<br />
<a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=85f1bd9a7b5a79d5baa8bf44af19658f7bf77bfa">업스트림 커ë„</a></td>
<td>EoP</td>
@@ -406,7 +406,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 관련ëœ
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -490,7 +490,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
@@ -502,6 +502,11 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
<td>2018ë…„ 7ì›” 3ì¼</td>
<td>게시íŒì´ 수정ë˜ì–´ AOSP ë§í¬ í¬í•¨ë¨</td>
</tr>
+ <tr>
+ <td>1.2</td>
+ <td>2018ë…„ 11ì›” 8ì¼</td>
+ <td>게시íŒì´ 수정ë˜ì–´ CVE-2017-1000112ë¡œ 수정ë¨</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/ko/security/bulletin/pixel/2018-08-01.html b/ko/security/bulletin/pixel/2018-08-01.html
index e4609222..9a85776b 100644
--- a/ko/security/bulletin/pixel/2018-08-01.html
+++ b/ko/security/bulletin/pixel/2018-08-01.html
@@ -459,7 +459,7 @@ QC-CR#2185477</a></td>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -525,7 +525,7 @@ QC-CR#2185477</a></td>
ë“œë¼ì´ë²„ì— í¬í•¨ë˜ì–´ 있습니다.
</p>
<p>
-<strong>5 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— 나뉘어져 있는 ì´ìœ ê°€
+<strong>5. 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— 나뉘어져 있는 ì´ìœ ê°€
무엇ì¸ê°€ìš”?</strong>
</p>
<p>
@@ -542,7 +542,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/pixel/2018-09-01.html b/ko/security/bulletin/pixel/2018-09-01.html
index 0b577f49..6ec7999f 100644
--- a/ko/security/bulletin/pixel/2018-09-01.html
+++ b/ko/security/bulletin/pixel/2018-09-01.html
@@ -279,7 +279,7 @@ QC-CR#2204285</a>
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
@@ -345,7 +345,7 @@ QC-CR#2204285</a>
ë“œë¼ì´ë²„ì— í¬í•¨ë˜ì–´ 있습니다.
</p>
<p>
-<strong>5 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— 나누어져 있는 ì´ìœ ê°€
+<strong>5. 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— 나누어져 있는 ì´ìœ ê°€
무엇ì¸ê°€ìš”?</strong>
</p>
<p>
@@ -362,7 +362,7 @@ Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
</colgroup><tbody><tr>
<th>버전</th>
<th>날짜</th>
- <th>참고사항</th>
+ <th>참고</th>
</tr>
<tr>
<td>1.0</td>
diff --git a/ko/security/bulletin/pixel/2018-11-01.html b/ko/security/bulletin/pixel/2018-11-01.html
index f8ab56f1..b5b78832 100644
--- a/ko/security/bulletin/pixel/2018-11-01.html
+++ b/ko/security/bulletin/pixel/2018-11-01.html
@@ -61,6 +61,33 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ íŒ¨ì
추가 참조가 버그 ID 다ìŒì— 오는 ë²ˆí˜¸ì— ì—°ê²°ë©ë‹ˆë‹¤.
</p>
+<h3 id="framework-05">프레임워í¬</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>ì—…ë°ì´íŠ¸ëœ AOSP 버전</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9526</td>
+ <td><a href="https://android.googlesource.com/device/google/marlin/+/fa7f7382e8b39f7ca209824f97788ab25c44f6a3" class="external">A-112159033</a>
+ [<a href="https://android.googlesource.com/platform/frameworks/base/+/8e81142af3dceb913ca50f67df3ded84233f932a">2</a>]
+ [<a href="https://android.googlesource.com/platform/hardware/qcom/sdm845/gps/+/a5f7c07edd96c69171e8bd758addda7d5c30e3eb">3</a>]
+ </td>
+ <td>ID</td>
+ <td>높ìŒ</td>
+ <td>9</td>
+ </tr>
+</tbody></table>
+
<h3 id="htc-components">HTC 구성요소</h3>
<table>
@@ -193,7 +220,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ íŒ¨ì
</tr>
<tr>
<td>RCE</td>
- <td>ì›ê²© 코드 실행</td>
+ <td>리모컨 코드 실행</td>
</tr>
<tr>
<td>EoP</td>
diff --git a/ko/security/bulletin/pixel/2018-12-01.html b/ko/security/bulletin/pixel/2018-12-01.html
new file mode 100644
index 00000000..596c9a5f
--- /dev/null
+++ b/ko/security/bulletin/pixel/2018-12-01.html
@@ -0,0 +1,309 @@
+<html devsite><head>
+ <title>Pixel / Nexus 보안 게시íŒâ€”2018ë…„ 12ì›”</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<p><em>2018ë…„ 12ì›” 3ì¼ ê²Œì‹œë¨</em></p>
+
+<p>
+Pixel&amp;hairsp;/&amp;hairsp;Nexus 보안 게시íŒì—서는 <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">지ì›ë˜ëŠ”
+Google Pixel ë° Nexus 기기</a>(Google 기기)ì— ì˜í–¥ì„ 미치는 보안 취약성 ë° ê¸°ëŠ¥ ê°œì„ ì„ ìžì„¸ížˆ 다룹니다.
+Google ê¸°ê¸°ì˜ ê²½ìš° 2018-12-05 보안 패치 수준 ì´ìƒì—ì„œ ì´ ê²Œì‹œíŒì— ì–¸ê¸‰ëœ ëª¨ë“  문제와 2018ë…„ 12ì›” Android 보안 게시íŒì˜
+모든 문제를
+해결했습니다. ê¸°ê¸°ì˜ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ í™•ì¸í•˜ëŠ” ë°©ë²•ì€ <a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android 버전 í™•ì¸ ë° ì—…ë°ì´íŠ¸</a>를 참조하세요.
+</p>
+<p>
+지ì›ë˜ëŠ” 모든 Google 기기는 2018-12-05 패치 수준으로
+ì—…ë°ì´íŠ¸ë©ë‹ˆë‹¤. 모든 ê³ ê°ì€ 기기ì—ì„œ ì´ ì—…ë°ì´íŠ¸ë¥¼ 수ë½í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤.
+</p>
+<p class="note">
+<strong>참고:</strong> Google 기기 펌웨어 ì´ë¯¸ì§€ëŠ” <a href="https://developers.google.com/android/images" class="external">Google
+ê°œë°œìž ì‚¬ì´íŠ¸</a>
+ì— ìžˆìŠµë‹ˆë‹¤.
+</p>
+
+<h2 id="announcements">공지사항</h2>
+
+<p><a href="/security/bulletin/2018-12-01">2018ë…„ 12ì›” Android 보안 게시íŒ</a>
+ì— ì„¤ëª…ëœ ë³´ì•ˆ 취약성 외ì—ë„
+Google 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ íŒ¨ì¹˜ë„
+í¬í•¨ë˜ì–´ 있습니다. 파트너ì—게는 ì ì–´ë„ 1개월 ì „ì— ì´ëŸ¬í•œ 문제와 관련해 ì•Œë¦¼ì´ ì „ì†¡ë˜ì—ˆìœ¼ë©°
+파트너는 ì´ëŸ¬í•œ 패치를 기기 ì—…ë°ì´íŠ¸ì˜ ì¼ë¶€ë¡œ í¬í•¨í•˜ë„ë¡ ì„ íƒí•  수
+있습니다.
+</p>
+
+<h2 id="security-patches">보안 패치</h2>
+<p>
+ì·¨ì•½ì„±ì€ ì˜í–¥ì„ 받는 구성요소 ì•„ëž˜ì— ë¶„ë¥˜ë˜ì–´ 있습니다. 여기ì—는
+문제 설명 ë° CVE, 관련 참조,
+<a href="#type">취약성 유형</a>,
+<a href="/security/overview/updates-resources#severity">심ê°ë„</a>,
+ì—…ë°ì´íŠ¸ëœ Android 오픈소스 프로ì íŠ¸(AOSP) 버전(해당하는 경우)ì´ í¬í•¨ëœ 표가 제시ë©ë‹ˆë‹¤.
+가능한 경우 AOSP 변경사항 목ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 ë³€ê²½ì‚¬í•­ì„ ë²„ê·¸ IDì—
+연결합니다. í•˜ë‚˜ì˜ ë²„ê·¸ì™€ ê´€ë ¨ëœ ë³€ê²½ì‚¬í•­ì´ ì—¬ëŸ¬ ê°œì¸ ê²½ìš°
+추가 참조가 버그 ID 다ìŒì— 오는 ë²ˆí˜¸ì— ì—°ê²°ë©ë‹ˆë‹¤.
+</p>
+
+<h3 id="qualcomm-components">Qualcomm 구성요소</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>참조</th>
+ <th>유형</th>
+ <th>심ê°ë„</th>
+ <th>구성요소</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11987</td>
+ <td>A-70638103<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=5e9ffcfa152ecb2832990c42fcd8a0f2e63c2c04">
+QC-CR#2258691</a></td>
+ <td>EoP</td>
+ <td>보통</td>
+ <td>ION</td>
+ </tr>
+</tbody></table>
+
+<h2 id="functional-patches">기능 패치</h2>
+
+<p>기능 패치는 ì˜í–¥ì„ ë°›ì€ Pixel 기기ì—ì„œ Pixel ê¸°ê¸°ì˜ ë³´ì•ˆê³¼ 관련ë˜ì§€ ì•Šì€ ê¸°ëŠ¥ 문제를 해결하기 위해 í¬í•¨ë˜ì—ˆìŠµë‹ˆë‹¤. 아래 í…Œì´ë¸”ì— ì–¸ê¸‰ëœ
+패치ì—는 관련 참조, ì˜í–¥ì„ ë°›ì€ ì¹´í…Œê³ ë¦¬, ì˜í–¥ì„ ë°›ì€ ê¸°ê¸°ê°€
+í¬í•¨ë˜ì–´ 있습니다.</p>
+
+<table>
+<colgroup><col width="15%" />
+<col width="15%" />
+<col width="40%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>참조</th>
+ <th>카테고리</th>
+ <th>개선 사항</th>
+ <th>기기</th>
+ </tr>
+ <tr>
+ <td>A-117522738</td>
+ <td>성능</td>
+ <td>특정 ìƒí™©ì—ì„œ 메모리 성능 개선</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-110969183</td>
+ <td>ì¹´ë©”ë¼</td>
+ <td>ì¹´ë©”ë¼ ìº¡ì²˜ 성능 개선</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111008450</td>
+ <td>Pixel Stand</td>
+ <td>Pixel Stand 사용 ì‹œ ì•Œë¦¼ì˜ ê°€ì‹œì„± 개선</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112376366</td>
+ <td>Android Auto</td>
+ <td>Android Auto 호환성 개선</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115666282</td>
+ <td>ì¹´ë©”ë¼</td>
+ <td>ìžë™ ì´ˆì  ë™ìž‘ ì¡°ì •</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115624433</td>
+ <td>Pixel Stand</td>
+ <td>Pixel Stand 사용 시 핫워드 성능 개선</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-116758282</td>
+ <td>표시</td>
+ <td>í•­ìƒ ì¼œì ¸ 있는 화면 실행 개선</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111964925</td>
+ <td>오디오</td>
+ <td>USB-C 오디오 액세서리 ê°ì§€ 개선</td>
+ <td>Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111716107</td>
+ <td>블루투스</td>
+ <td>블루투스를 전환할 ë•Œ 볼륨 ë™ìž‘ ì¡°ì •</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111159723</td>
+ <td>Android Auto</td>
+ <td>특정 ìžë™ì°¨ì—ì„œ Android Auto 사용 ì‹œ 오디오 성능 개선</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112228430</td>
+ <td>미디어</td>
+ <td>특정 ëª¨ë°”ì¼ ì•±ì—ì„œ HDR ìƒ‰ìƒ ê°œì„ </td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-113151604</td>
+ <td>ì¹´ë©”ë¼</td>
+ <td>ì¹´ë©”ë¼ ì…”í„° 성능 개선</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111277984</td>
+ <td>성능</td>
+ <td>블루투스 사용 시 잠금 해제 성능 개선</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">ì¼ë°˜ì ì¸ 질문 ë° ë‹µë³€</h2>
+<p>
+ì´ ì„¹ì…˜ì—서는 게시íŒì„ ì½ì€ ë’¤ ì œê¸°ë  ìˆ˜ 있는 ì¼ë°˜ì ì¸ ì§ˆë¬¸ì˜ ë‹µë³€ì„
+제시합니다.
+</p>
+<p>
+<strong>1. ë‚´ 기기가 ì—…ë°ì´íŠ¸ë˜ì–´ ì´ ë¬¸ì œê°€ í•´ê²°ë˜ì—ˆëŠ”지 어떻게 ì•Œ 수 있나요?
+</strong>
+</p>
+<p>
+2018-12-05 보안 패치 수준 ë° ê·¸ ì´ì „ì˜ ëª¨ë“  패치 수준과 관련ëœ
+문제는 2018-12-05 보안 패치 수준 ì´ìƒì—ì„œ ëª¨ë‘ í•´ê²°ë©ë‹ˆë‹¤. 기기ì˜
+보안 패치 ìˆ˜ì¤€ì„ í™•ì¸í•˜ëŠ” ë°©ë²•ì„ ì•Œì•„ë³´ë ¤ë©´ <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Pixel ë° Nexus ì—…ë°ì´íŠ¸ ì¼ì •</a>ì˜ ì•ˆë‚´ë¥¼ 참조하세요.
+</p>
+<p id="type">
+<strong>2. <em>유형</em> ì—´ì˜ í•­ëª©ì€ ë¬´ì—‡ì„ ì˜ë¯¸í•˜ë‚˜ìš”?</strong>
+</p>
+<p>
+취약성 세부정보 í‘œì˜ <em>유형</em> ì—´ì— ìžˆëŠ” 항목ì€
+보안 취약성 분류를 참조합니다.
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>약어</th>
+ <th>ì •ì˜</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>리모컨 코드 실행</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>권한 승격</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>정보 공개</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>서비스 거부</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>분류 ì—†ìŒ</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>3. <em>참조</em> ì—´ì˜ í•­ëª©ì€ ë¬´ì—‡ì„ ì˜ë¯¸í•˜ë‚˜ìš”?</strong>
+</p>
+<p>
+취약성 세부정보 í‘œì˜ <em>참조</em> ì—´ì— ìžˆëŠ” 항목ì€
+참조 ê°’ì´ ì†í•œ ì¡°ì§ì„ 나타내는 ì ‘ë‘어를 í¬í•¨í•  수
+있습니다.
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>ì ‘ë‘ì–´</th>
+ <th>참조</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android 버그 ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm 참조 번호</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek 참조 번호</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA 참조 번호</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom 참조 번호</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>4. <em>참조</em> ì—´ì—ì„œ Android 버그 ID ì˜†ì— ìžˆëŠ” * 표시는
+ë¬´ì—‡ì„ ì˜ë¯¸í•˜ë‚˜ìš”?</strong>
+</p>
+<p>
+공개ë˜ì§€ ì•Šì€ ë¬¸ì œëŠ” <em>참조</em> ì—´ì˜ Android 버그 ID ì˜†ì— * 표시가
+있습니다. ì¼ë°˜ì ìœ¼ë¡œ ì´ëŸ¬í•œ ë¬¸ì œì— ê´€í•œ ì—…ë°ì´íŠ¸ëŠ” <a href="https://developers.google.com/android/drivers" class="external">Google
+ê°œë°œìž ì‚¬ì´íŠ¸</a>ì—ì„œ 제공ë˜ëŠ” Pixel / Nexus 기기용 최신 ë°”ì´ë„ˆë¦¬
+ë“œë¼ì´ë²„ì— í¬í•¨ë˜ì–´ 있습니다.
+</p>
+<p>
+<strong>5. 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— 나누어져 있는 ì´ìœ ê°€
+무엇ì¸ê°€ìš”?</strong>
+</p>
+<p>
+Android 보안 게시íŒì— 설명ë˜ì–´ 있는 보안 취약성ì€
+Android ê¸°ê¸°ì˜ ìµœì‹  보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë°
+필요합니다. ì´ ê²Œì‹œíŒì— ì„¤ëª…ëœ ê²ƒê³¼ ê°™ì€ ì¶”ê°€ì ì¸ 보안 취약성ì€
+보안 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë° í•„ìš”í•˜ì§€ 않습니다.
+</p>
+<h2 id="versions">버전</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>버전</th>
+ <th>날짜</th>
+ <th>참고</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018ë…„ 12ì›” 3ì¼</td>
+ <td>게시íŒì´ 게시ë¨</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/ru/security/bulletin/2018-08-01.html b/ru/security/bulletin/2018-08-01.html
index 89a22005..cae4b6cc 100644
--- a/ru/security/bulletin/2018-08-01.html
+++ b/ru/security/bulletin/2018-08-01.html
@@ -623,7 +623,7 @@ QC-CR#2204872</a></td>
</tr>
<tr>
<td>1.0</td>
- <td>6 авгуÑта 2018 г.</td>
+ <td>6 авгуÑта 2018 г.</td>
<td>Бюллетень опубликован.</td>
</tr>
</tbody></table>
diff --git a/ru/security/bulletin/2018-11-01.html b/ru/security/bulletin/2018-11-01.html
index cf7c5639..0243c4f6 100644
--- a/ru/security/bulletin/2018-11-01.html
+++ b/ru/security/bulletin/2018-11-01.html
@@ -19,13 +19,14 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p><em>Опубликовано 5 ноÑÐ±Ñ€Ñ 2018 г.</em></p>
+<p><em>Опубликовано 5 ноÑÐ±Ñ€Ñ 2018 г. | Обновлено 5 ноÑÐ±Ñ€Ñ 2018 г.</em></p>
<p>
Ð’ Ñтом бюллетене ÑодержитÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± уÑзвимоÑÑ‚ÑÑ… в защите уÑтройÑтв Android. Ð’Ñе актуальные проблемы, перечиÑленные здеÑÑŒ, уÑтранены в иÑправлении от 5 ноÑÐ±Ñ€Ñ 2018 года или более новом. Информацию о том, как проверить Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти, можно найти в <a href="https://support.google.com/pixelphone/answer/4457705" class="external">Справочном центре</a>.
</p>
<p>
-Мы Ñообщили партнерам обо вÑех проблемах по крайней мере за меÑÑц до выхода бюллетенÑ. ИÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑзвимоÑтей будут добавлены в хранилище Android Open Source Project (AOSP) в течение 48 чаÑов. СÑылки на AOSP поÑвÑÑ‚ÑÑ Ð² Ñтом бюллетене позже.</p>
+Мы Ñообщили партнерам обо вÑех проблемах по крайней мере за меÑÑц до выхода бюллетенÑ. ИÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑзвимоÑтей доÑтупны в хранилище Android Open Source Project (AOSP).
+Ð’ бюллетене также приведены ÑÑылки на иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð½Ðµ AOSP.</p>
<p>
Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет находÑщемуÑÑ Ð¿Ð¾Ð±Ð»Ð¸Ð·Ð¾Ñти злоумышленнику выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпециально Ñозданного файла. <a href="/security/overview/updates-resources.html#severity">Уровень ÑерьезноÑти</a> завиÑит от того, какой ущерб будет нанеÑен уÑтройÑтву при атаке Ñ Ð¸Ñпользованием уÑзвимоÑти, еÑли ÑредÑтва защиты будут отключены разработчиком или взломаны.
</p>
@@ -35,7 +36,6 @@
<p class="note">
<strong>Примечание.</strong> Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поÑледних автоматичеÑких обновлениÑÑ… (OTA) и образах вÑтроенного ПО Ð´Ð»Ñ ÑƒÑтройÑтв Google ÑодержитÑÑ Ð² <a href="/security/bulletin/pixel/2018-11-01">бюллетене по безопаÑноÑти Pixel  и Nexus</a> за ноÑбрь 2018 года.
</p>
-
<h2 id="announcements">ÐовоÑти</h2>
<p>
Ð’ библиотеке Libxaac было обнаружено неÑколько уÑзвимоÑтей, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ CVE-2018-9528, CVE-2018-9529, CVE-2018-9530, CVE-2018-9531, CVE-2018-9532, CVE-2018-9533, CVE-2018-9534, CVE-2018-9535, CVE-2018-9569, CVE-2018-9570, CVE-2018-9571, CVE-2018-9572, CVE-2018-9573, CVE-2018-9574, CVE-2018-9575, CVE-2018-9576, CVE-2018-9577 и CVE-2018-9578.</p>
@@ -72,21 +72,21 @@
</tr>
<tr>
<td>CVE-2018-9522</td>
- <td>A-112550251</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/181dc252ddec574464882970d3fab290e8b625b5" class="external">A-112550251</a></td>
<td>ПП</td>
<td>Ð’Ñ‹Ñокий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9524</td>
- <td>A-34170870</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/c9bc35a45da1e765eb36af604c0c580bd66644cc" class="external">A-34170870</a></td>
<td>ПП</td>
<td>Ð’Ñ‹Ñокий</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
</tr>
<tr>
<td>CVE-2018-9525</td>
- <td>A-111330641</td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/6409cf5c94cc1feb72dc078e84e66362fbecd6d5" class="external">A-111330641</a></td>
<td>ПП</td>
<td>Ð’Ñ‹Ñокий</td>
<td>9.0</td>
@@ -111,42 +111,42 @@
</tr>
<tr>
<td>CVE-2018-9527</td>
- <td>A-112159345</td>
+ <td><a href="https://android.googlesource.com/platform/external/tremolo/+/cafff8f4535c8bf933c5a2fcb1a0dd66fb75a1c2" class="external">A-112159345</a></td>
<td>УВК</td>
<td>КритичеÑкий</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
</tr>
<tr>
<td>CVE-2018-9531</td>
- <td>A-112661641</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/c2208f2a3098410c5a4c79ad6bd4b6d7e1c0b03f" class="external">A-112661641</a></td>
<td>УВК</td>
<td>КритичеÑкий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9536</td>
- <td>A-112662184</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/9744e41c40598c6a0b74440f3b5be63f9f3708a5" class="external">A-112662184</a></td>
<td>ПП</td>
<td>КритичеÑкий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9537</td>
- <td>A-112891564</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/61381bd0f4bc012876ccf4b63eafddd2d60c35c9" class="external">A-112891564</a></td>
<td>ПП</td>
<td>КритичеÑкий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9521</td>
- <td>A-111874331</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/083263937bfb1623adf6015da7ca3cdc258e0352" class="external">A-111874331</a></td>
<td>УВК</td>
<td>Ð’Ñ‹Ñокий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9539</td>
- <td>A-113027383</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/efe34a570d91b826b009d40e44c2e470dd180ace" class="external">A-113027383</a></td>
<td>ПП</td>
<td>Ð’Ñ‹Ñокий</td>
<td>8.0, 8.1, 9.0</td>
@@ -171,42 +171,42 @@
</tr>
<tr>
<td>CVE-2018-9540</td>
- <td>A-111450417</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/99d54d0c7dbab6c80f15bbf886ed203b2a547453" class="external">A-111450417</a></td>
<td>РИ</td>
<td>Ð’Ñ‹Ñокий</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
</tr>
<tr>
<td>CVE-2018-9542</td>
- <td>A-111896861</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111896861</a></td>
<td>РИ</td>
<td>Ð’Ñ‹Ñокий</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
</tr>
<tr>
<td>CVE-2018-9543</td>
- <td>A-112868088</td>
+ <td><a href="https://android.googlesource.com/platform/external/f2fs-tools/+/71313114a147ee3fc4a411904de02ea8b6bf7f91" class="external">A-112868088</a></td>
<td>РИ</td>
<td>Ð’Ñ‹Ñокий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9544</td>
- <td>A-113037220</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113037220</a></td>
<td>РИ</td>
<td>Ð’Ñ‹Ñокий</td>
<td>9.0</td>
</tr>
<tr>
<td>CVE-2018-9545</td>
- <td>A-113111784</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113111784</a></td>
<td>РИ</td>
<td>Ð’Ñ‹Ñокий</td>
<td>9.0</td>
</tr>
<tr>
<td rowspan="2">CVE-2018-9541</td>
- <td rowspan="2">A-111450531</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111450531</a></td>
<td>РИ</td>
<td>Средний</td>
<td>9.0</td>
@@ -218,54 +218,6 @@
</tr>
</tbody></table>
-<h3 id="update-media-framework">Обновление: Media Framework</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>СÑылки</th>
- <th>Тип</th>
- <th>Уровень ÑерьезноÑти</th>
- <th>Обновленные верÑии AOSP</th>
- </tr>
- <tr>
- <td>CVE-2018-9347</td>
- <td>A-68664359</td>
- <td>ОО</td>
- <td>Средний</td>
- <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
- </tr>
-</tbody></table>
-
-<h3 id="update-system">Обновление: ÑиÑтема</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>СÑылки</th>
- <th>Тип</th>
- <th>Уровень ÑерьезноÑти</th>
- <th>Обновленные верÑии AOSP</th>
- </tr>
- <tr>
- <td>CVE-2018-9457</td>
- <td>A-72872376</td>
- <td>ПП</td>
- <td>Средний</td>
- <td>8.0, 8.1, 9.0</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-11-05-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-11-05)</h2>
<p>
Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-11-05. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведена таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
@@ -289,18 +241,11 @@
</tr>
<tr>
<td>CVE-2018-9523</td>
- <td>A-112859604</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/6a947f048a76a5936fd2b693e01f849aef22c907" class="external">A-112859604</a></td>
<td>ПП</td>
<td>Ð’Ñ‹Ñокий</td>
<td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
</tr>
- <tr>
- <td>CVE-2018-9526</td>
- <td>A-112159033</td>
- <td>РИ</td>
- <td>Ð’Ñ‹Ñокий</td>
- <td>9.0</td>
- </tr>
</tbody></table>
<h3 id="qualcomm-components">Компоненты Qualcomm</h3>
@@ -584,6 +529,11 @@ QC-CR#2090797</a></td>
<td>5 ноÑÐ±Ñ€Ñ 2018 г.</td>
<td>Бюллетень опубликован.</td>
</tr>
+ <tr>
+ <td>1.1</td>
+ <td>5 ноÑÐ±Ñ€Ñ 2018 г.</td>
+ <td>Добавлены ÑÑылки на AOSP.</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/ru/security/bulletin/2018-12-01.html b/ru/security/bulletin/2018-12-01.html
new file mode 100644
index 00000000..8e584dbd
--- /dev/null
+++ b/ru/security/bulletin/2018-12-01.html
@@ -0,0 +1,709 @@
+<html devsite><head>
+ <title>Бюллетень по безопаÑноÑти Android – декабрь 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>Опубликовано 3 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 г.</em></p>
+
+<p>
+Ð’ Ñтом бюллетене ÑодержитÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± уÑзвимоÑÑ‚ÑÑ… в защите уÑтройÑтв Android. Ð’Ñе актуальные проблемы, перечиÑленные здеÑÑŒ, уÑтранены в иÑправлении от 5 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 года или более новом. Информацию о том, как проверить Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти, можно найти в <a href="https://support.google.com/pixelphone/answer/4457705" class="external">Справочном центре</a>.
+</p>
+<p>ИÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑзвимоÑтей будут добавлены в хранилище Android Open Source Project (AOSP) в течение 48 чаÑов. СÑылки на AOSP поÑвÑÑ‚ÑÑ Ð² Ñтом бюллетене позже.</p>
+<p>
+Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ Ð¸Ð· проблем – критичеÑÐºÐ°Ñ ÑƒÑзвимоÑÑ‚ÑŒ в Media Framework, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет злоумышленнику выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпециально Ñозданного файла. <a href="/security/overview/updates-resources.html#severity">Уровень ÑерьезноÑти</a> завиÑит от того, какой ущерб будет нанеÑен уÑтройÑтву при атаке Ñ Ð¸Ñпользованием уÑзвимоÑти, еÑли ÑредÑтва защиты будут отключены разработчиком или взломаны.
+</p>
+<p>
+У Ð½Ð°Ñ Ð½ÐµÑ‚ информации о том, что обнаруженные уÑзвимоÑти ÑкÑплуатировалиÑÑŒ. Ð’ разделе <a href="#mitigations">Предотвращение атак</a> раÑÑказываетÑÑ, как <a href="/security/enhancements/">платформа безопаÑноÑти</a> и Google Play Защита помогают Ñнизить вероÑтноÑÑ‚ÑŒ атак на Android.
+</p>
+<p class="note">
+<strong>Примечание.</strong> Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поÑледних автоматичеÑких обновлениÑÑ… (OTA) и образах вÑтроенного ПО Ð´Ð»Ñ ÑƒÑтройÑтв Google ÑодержитÑÑ Ð² <a href="/security/bulletin/pixel/2018-12-01">бюллетене по безопаÑноÑти Pixel  и Nexus</a> за декабрь 2018 года.
+</p>
+
+<h2 id="mitigations">Предотвращение атак</h2>
+
+<p>
+Ðиже раÑÑказываетÑÑ, как <a href="/security/enhancements/">платформа безопаÑноÑти</a> и ÑредÑтва защиты ÑервиÑов, например <a href="https://www.android.com/play-protect" class="external">Google Play Защита</a>, позволÑÑŽÑ‚ Ñнизить вероÑтноÑÑ‚ÑŒ атак на Android.
+</p>
+<ul>
+<li>Ð’ новых верÑиÑÑ… Android Ñложнее иÑпользовать многие уÑзвимоÑти, поÑтому мы рекомендуем вÑем пользователÑм Ñвоевременно обновлÑÑ‚ÑŒ ÑиÑтему.</li>
+<li>Команда, Ð¾Ñ‚Ð²ÐµÑ‡Ð°ÑŽÑ‰Ð°Ñ Ð·Ð° безопаÑноÑÑ‚ÑŒ Android, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ <a href="https://www.android.com/play-protect" class="external">Google Play Защиты</a> активно отÑлеживает Ð·Ð»Ð¾ÑƒÐ¿Ð¾Ñ‚Ñ€ÐµÐ±Ð»ÐµÐ½Ð¸Ñ Ð¸ предупреждает пользователей об уÑтановке <a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">потенциально опаÑных приложений</a>. Google Play Защита включена по умолчанию на вÑех телефонах и планшетах, иÑпользующих <a href="http://www.android.com/gms" class="external">ÑервиÑÑ‹ Google Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв</a>. Она оÑобенно важна, еÑли уÑтанавливаетÑÑ ÐŸÐž из Ñторонних иÑточников.</li>
+</ul>
+<h2 id="2018-12-01-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-12-01)</h2>
+<p>
+Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-12-01. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
+</p>
+
+<h3 id="framework">Framework</h3>
+
+<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет локальному вредоноÑному ПО выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Обновленные верÑии AOSP</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9547</td>
+ <td>A-114223584</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9548</td>
+ <td>A-112555574</td>
+ <td>РИ</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+</tbody></table>
+
+<h3 id="media-framework">Media Framework</h3>
+<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет злоумышленнику выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпециально Ñозданного файла.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Обновленные верÑии AOSP</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9549</td>
+ <td>A-112160868</td>
+ <td>УВК</td>
+ <td>КритичеÑкий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9550</td>
+ <td>A-112660981</td>
+ <td>УВК</td>
+ <td>КритичеÑкий</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9551</td>
+ <td>A-112891548</td>
+ <td>УВК</td>
+ <td>КритичеÑкий</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9552</td>
+ <td>A-113260892</td>
+ <td>РИ</td>
+ <td>КритичеÑкий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9553</td>
+ <td>A-116615297</td>
+ <td>УВК</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9538</td>
+ <td>A-112181526</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9554</td>
+ <td>A-114770654</td>
+ <td>РИ</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">СиÑтема</h3>
+<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет злоумышленнику выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпециально Ñозданной передачи.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Обновленные верÑии AOSP</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9555</td>
+ <td>A-112321180</td>
+ <td>УВК</td>
+ <td>КритичеÑкий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9556</td>
+ <td>A-113118184</td>
+ <td>УВК</td>
+ <td>КритичеÑкий</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9557</td>
+ <td>A-35385357</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9558</td>
+ <td>A-112161557</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9559</td>
+ <td>A-112731440</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9560</td>
+ <td>A-79946737</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9562</td>
+ <td>A-113164621</td>
+ <td>РИ</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9566</td>
+ <td>A-74249842</td>
+ <td>РИ</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9.0</td>
+ </tr>
+</tbody></table>
+
+<h2 id="2018-12-05-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-12-05)</h2>
+
+<p>
+Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-12-05. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведена таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). и дополнительные ÑÑылки в квадратных Ñкобках.
+</p>
+
+<h3 id="system-05">СиÑтема</h3>
+
+<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет злоумышленнику, не обладающему дополнительными правами на выполнение кода, удаленно раÑкрывать информацию.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Компонент</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9565</td>
+ <td>A-16680558</td>
+ <td>РИ</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Протокол OMA-DM</td>
+ </tr>
+</tbody></table>
+
+<h3 id="htc-components">Компоненты HTC</h3>
+
+<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет злоумышленнику, в руки которого попало уÑтройÑтво, обходить Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº взаимодейÑтвию Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼ и получать доÑтуп к дополнительным разрешениÑм.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Компонент</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9567</td>
+ <td>A-65543936</td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Загрузчик</td>
+ </tr>
+</tbody></table>
+
+<h3 id="kernel-components">Компоненты Ñдра</h3>
+
+<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет злоумышленнику, в руки которого попало уÑтройÑтво, выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Компонент</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-10840</td>
+ <td>A-116406508<br />
+<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-10840">Upstream kernel</a></td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема ext4</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9568</td>
+ <td>A-113509306<br />
+<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/net/core/sock.c?id=9d538fa60bad4f7b23193c89e843797a1cf71ef3">Upstream kernel</a></td>
+ <td>ПП</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Сеть</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Компоненты Qualcomm</h3>
+
+<p>Эти уÑзвимоÑти затрагивают компоненты Qualcomm. Они опиÑаны в бюллетенÑÑ… по безопаÑноÑти Qualcomm или оповещениÑÑ… ÑиÑтемы безопаÑноÑти.
+Уровень ÑерьезноÑти Ñтих уÑзвимоÑтей определÑетÑÑ Ð½ÐµÐ¿Ð¾ÑредÑтвенно компанией Qualcomm.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Компонент</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11960</td>
+ <td>A-114042002<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=18ce15db603e19cfac9a2f4076f255e879100495">QC-CR#2264832</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>HWEngines</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11961</td>
+ <td>A-114040881<br />
+<a href="https://source.codeaurora.org/quic/le/platform/hardware/qcom/gps/commit/?id=c57ee0a5d3261ab20c35b451d1b3ae2b02a21591">QC-CR#2261813</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>GPS_AP_LINUX</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11963</td>
+ <td>A-114041685<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9ac3476a91c384a3f2760fabaecef0ad8698d7b">QC-CR#2220770</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>ÐÐ²Ñ‚Ð¾Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¼ÑƒÐ»ÑŒÑ‚Ð¸Ð¼ÐµÐ´Ð¸Ð°ÑиÑтема</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-closed-source-components">Компоненты Qualcomm Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</h3>
+
+<p>Эти уÑзвимоÑти затрагивают компоненты Qualcomm. Они опиÑаны в бюллетенÑÑ… по безопаÑноÑти Qualcomm или оповещениÑÑ… ÑиÑтемы безопаÑноÑти. Уровень ÑерьезноÑти Ñтих уÑзвимоÑтей определÑетÑÑ Ð½ÐµÐ¿Ð¾ÑредÑтвенно компанией Qualcomm.</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Компонент</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-8248</td>
+ <td>A-78135902<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>КритичеÑкий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11004</td>
+ <td>A-66913713<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>КритичеÑкий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18141</td>
+ <td>A-67712316<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>КритичеÑкий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5913</td>
+ <td>A-79419833<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>КритичеÑкий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11279</td>
+ <td>A-109678200<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>КритичеÑкий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18319</td>
+ <td>A-78284753<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18321</td>
+ <td>A-78283451<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18322</td>
+ <td>A-78285196<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18323</td>
+ <td>A-78284194<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18324</td>
+ <td>A-78284517<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18327</td>
+ <td>A-78240177<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18331</td>
+ <td>A-78239686<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18332</td>
+ <td>A-78284545<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18160</td>
+ <td>A-109660689<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18326</td>
+ <td>A-78240324<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8276</td>
+ <td>A-68141338<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18328</td>
+ <td>A-78286046<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18329</td>
+ <td>A-73539037<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18330</td>
+ <td>A-73539235<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3595</td>
+ <td>A-71501115<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18320</td>
+ <td>A-33757308<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11999</td>
+ <td>A-74236942<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5867</td>
+ <td>A-77485184<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5868</td>
+ <td>A-77484529<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5869</td>
+ <td>A-33385206<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-5754</td>
+ <td>A-79419639<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5915</td>
+ <td>A-79420511<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11267</td>
+ <td>A-109678338<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11922</td>
+ <td>A-112279564<a href="#asterisk">*</a></td>
+ <td>Ð/Д</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">ЧаÑто задаваемые вопроÑÑ‹</h2>
+
+<p>Ð’ Ñтом разделе мы отвечаем на вопроÑÑ‹, которые могут возникнуть поÑле Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð±ÑŽÐ»Ð»ÐµÑ‚ÐµÐ½Ñ.</p>
+<p><strong>1. Как определить, уÑтановлено ли на уÑтройÑтво обновление, в котором уÑтранены перечиÑленные проблемы?</strong></p>
+<p>Информацию о том, как проверить Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти, можно найти в <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Справочном центре</a>.</p>
+<ul>
+<li>Ð’ иÑправлении от 1 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-12-01.</li>
+<li>Ð’ иÑправлении от 5 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-12-05.</li>
+</ul>
+<p>Производители уÑтройÑтв, позволÑющие уÑтановить Ñти обновлениÑ, должны приÑвоить им один из Ñтих уровней:</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-12-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-12-05]</li>
+</ul>
+<p><strong>2. Почему в Ñтом бюллетене говоритÑÑ Ð¾ двух обновлениÑÑ… ÑиÑтемы безопаÑноÑти?</strong></p>
+<p>
+Мы включили в Ñтот бюллетень ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ двух обновлениÑÑ…, чтобы помочь нашим партнерам как можно Ñкорее уÑтранить уÑзвимоÑти, затрагивающие вÑе уÑтройÑтва Android. Рекомендуем партнерам Android иÑправить вÑе вышеперечиÑленные проблемы и уÑтановить поÑледнее обновление ÑиÑтемы безопаÑноÑти.
+</p>
+<ul>
+<li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-12-01 должны быть иÑправлены вÑе проблемы, упомÑнутые в ÑоответÑтвующем разделе Ñтого бюллетенÑ, а также в предыдущих выпуÑках.</li>
+<li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-12-05 или более поздним должны быть иÑправлены вÑе проблемы, упомÑнутые в Ñтом бюллетене и предыдущих выпуÑках.</li>
+</ul>
+<p>
+Рекомендуем партнерам Ñобрать вÑе иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ в одно обновление.
+</p>
+<p id="type">
+<strong>3. Что означают ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð² Ñтолбце <em>Тип</em>?</strong>
+</p>
+<p>
+Ð’ Ñтом Ñтолбце указан тип уÑзвимоÑти по Ñледующей клаÑÑификации:<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>Сокращение</th>
+ <th>ОпиÑание</th>
+ </tr>
+ <tr>
+ <td>УВК</td>
+ <td>Удаленное выполнение кода</td>
+ </tr>
+ <tr>
+ <td>ПП</td>
+ <td>Повышение привилегий</td>
+ </tr>
+ <tr>
+ <td>РИ</td>
+ <td>РаÑкрытие информации</td>
+ </tr>
+ <tr>
+ <td>ОО</td>
+ <td>Отказ в обÑлуживании</td>
+ </tr>
+ <tr>
+ <td>Ð/Д</td>
+ <td>КлаÑÑÐ¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>4. Что означает Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð² Ñтолбце <em>СÑылки</em>?</strong>
+</p>
+<p>
+Ð’ таблицах Ñ Ð¾Ð¿Ð¸Ñанием уÑзвимоÑтей еÑÑ‚ÑŒ Ñтолбец <em>СÑылки</em>. ÐšÐ°Ð¶Ð´Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в нем может Ñодержать префикÑ, указывающий на иÑточник ÑÑылки, а именно:
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>ПрефикÑ</th>
+ <th>Значение</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Идентификатор ошибки Android</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>СÑылочный номер Qualcomm</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>СÑылочный номер MediaTek</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>СÑылочный номер NVIDIA</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>СÑылочный номер Broadcom</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>5. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong>
+</p>
+<p>
+Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/drivers" class="external">Ñайте Google Developers</a>.
+</p>
+<p>
+<strong>6. Почему теперь одни уÑзвимоÑти опиÑываютÑÑ Ð² Ñтих бюллетенÑÑ…, а другие – в бюллетенÑÑ… по безопаÑноÑти Pixel  и Nexus, а также в оÑтальных бюллетенÑÑ… партнеров?</strong>
+</p>
+<p>
+Ð’ Ñтом бюллетене опиÑаны уÑзвимоÑти, которые были уÑтранены в поÑледнем обновлении ÑиÑтемы безопаÑноÑти Ð´Ð»Ñ ÑƒÑтройÑтв Android. Решать дополнительные проблемы, перечиÑленные в бюллетенÑÑ… по безопаÑноÑти партнеров, Ð´Ð»Ñ Ñтого не потребовалоÑÑŒ. Мы рекомендуем производителÑм чипÑетов и уÑтройÑтв Android раÑÑказывать об иÑправлениÑÑ… Ð´Ð»Ñ Ñвоих уÑтройÑтв в бюллетенÑÑ… по безопаÑноÑти на ÑобÑтвенных Ñайтах, например <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>, <a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a>, а также <a href="/security/bulletin/pixel/" class="external">Pixel  и Nexus</a>.
+</p>
+
+<h2 id="versions">ВерÑии</h2>
+
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>ВерÑиÑ</th>
+ <th>Дата</th>
+ <th>ПримечаниÑ</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>3 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 г.</td>
+ <td>Бюллетень опубликован.</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/ru/security/bulletin/pixel/2018-01-01.html b/ru/security/bulletin/pixel/2018-01-01.html
index c658221d..ff943bb7 100644
--- a/ru/security/bulletin/pixel/2018-01-01.html
+++ b/ru/security/bulletin/pixel/2018-01-01.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>Бюллетень по безопаÑноÑти Pixel и Nexus – Ñнварь 2018 г.</title>
+ <title>Бюллетень по безопаÑноÑти Pixel и Nexus – Ñнварь 2018 г.</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -36,7 +36,7 @@
</p>
<h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2>
<p>
-УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
+УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
</p>
<h3 id="framework">Framework</h3>
diff --git a/ru/security/bulletin/pixel/2018-02-01.html b/ru/security/bulletin/pixel/2018-02-01.html
index 21a575e2..5da564b5 100644
--- a/ru/security/bulletin/pixel/2018-02-01.html
+++ b/ru/security/bulletin/pixel/2018-02-01.html
@@ -35,7 +35,7 @@
<h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2>
<p>
-УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="https://source.android.com/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
+УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="https://source.android.com/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
</p>
<h3 id="framework">Framework</h3>
diff --git a/ru/security/bulletin/pixel/2018-03-01.html b/ru/security/bulletin/pixel/2018-03-01.html
index bba31988..e14c7e6d 100644
--- a/ru/security/bulletin/pixel/2018-03-01.html
+++ b/ru/security/bulletin/pixel/2018-03-01.html
@@ -36,7 +36,7 @@
<h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2>
<p>
-УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="https://source.android.com/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
+УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="https://source.android.com/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
</p>
<h3 id="framework">Framework</h3>
diff --git a/ru/security/bulletin/pixel/2018-05-01.html b/ru/security/bulletin/pixel/2018-05-01.html
index 7d851afa..56858411 100644
--- a/ru/security/bulletin/pixel/2018-05-01.html
+++ b/ru/security/bulletin/pixel/2018-05-01.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>Бюллетень по безопаÑноÑти Pixel и Nexus – май 2018 г.</title>
+ <title>Бюллетень по безопаÑноÑти Pixel и Nexus – май 2018 г.</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -36,7 +36,7 @@
<p>Помимо иÑправлений уÑзвимоÑтей, опиÑанных в бюллетене по безопаÑноÑти Android за май 2018 года, Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus Ñодержат также иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, перечиÑленных ниже. Мы Ñообщили партнерам об Ñтих проблемах по крайней мере меÑÑц назад. Они могут включить их иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ñвои Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти.</p>
<h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2>
<p>
-УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="https://source.android.com/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
+УÑзвимоÑти Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="https://source.android.com/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
</p>
<h3 id="framework">Framework</h3>
diff --git a/ru/security/bulletin/pixel/2018-11-01.html b/ru/security/bulletin/pixel/2018-11-01.html
index 7cfd1922..00942ef5 100644
--- a/ru/security/bulletin/pixel/2018-11-01.html
+++ b/ru/security/bulletin/pixel/2018-11-01.html
@@ -41,9 +41,34 @@
<h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2>
<p>
Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии).
-Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках.
+Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). ЕÑли опубликованных изменений неÑколько, дополнительные ÑÑылки указаны в квадратных Ñкобках.
</p>
+<h3 id="framework-05">Framework</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Обновленные верÑии AOSP</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9526</td>
+ <td><a href="https://android.googlesource.com/device/google/marlin/+/fa7f7382e8b39f7ca209824f97788ab25c44f6a3" class="external">A-112159033</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/8e81142af3dceb913ca50f67df3ded84233f932a">2</a>] [<a href="https://android.googlesource.com/platform/hardware/qcom/sdm845/gps/+/a5f7c07edd96c69171e8bd758addda7d5c30e3eb">3</a>]
+ </td>
+ <td>РИ</td>
+ <td>Ð’Ñ‹Ñокий</td>
+ <td>9</td>
+ </tr>
+</tbody></table>
+
<h3 id="htc-components">Компоненты HTC</h3>
<table>
diff --git a/ru/security/bulletin/pixel/2018-12-01.html b/ru/security/bulletin/pixel/2018-12-01.html
new file mode 100644
index 00000000..092e2c35
--- /dev/null
+++ b/ru/security/bulletin/pixel/2018-12-01.html
@@ -0,0 +1,276 @@
+<html devsite><head>
+ <title>Бюллетень по безопаÑноÑти Pixel и Nexus – декабрь 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>Опубликовано 3 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 г.</em></p>
+
+<p>
+Ð’ Ñтом бюллетене ÑодержитÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± уÑзвимоÑÑ‚ÑÑ… в защите и улучшениÑÑ… функциональных возможноÑтей <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">поддерживаемых уÑтройÑтв Pixel и Nexus</a> (уÑтройÑтва Google).
+Ð’Ñе проблемы, перечиÑленные здеÑÑŒ и в бюллетене по безопаÑноÑти Android за декабрь 2018 года, уÑтранены в иÑправлении от 5 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 года или более новом. Информацию о том, как проверить Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти, можно найти в Ñтатье <a href="https://support.google.com/pixelphone/answer/4457705" class="external">Справочного центра</a>.
+</p>
+<p>
+Обновление ÑиÑтемы безопаÑноÑти 2018-12-05 получат вÑе поддерживаемые уÑтройÑтва Google. Мы наÑтоÑтельно рекомендуем пользователÑм уÑтановить Ñто обновление.
+</p>
+<p class="note">
+<strong>Примечание.</strong> Образы вÑтроенного ПО Ð´Ð»Ñ ÑƒÑтройÑтв Google можно найти на <a href="https://developers.google.com/android/images" class="external">Ñайте Google Developers</a>.
+</p>
+
+<h2 id="announcements">ÐовоÑти</h2>
+
+<p>Помимо иÑправлений уÑзвимоÑтей, опиÑанных в <a href="/security/bulletin/2018-12-01">бюллетене по безопаÑноÑти Android</a> за декабрь 2018 года, Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑƒÑтройÑтв Google Ñодержат также иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, перечиÑленных ниже. Мы Ñообщили партнерам об Ñтих проблемах не менее меÑÑца назад. Они могут включить Ñти иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ñвои Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти.
+</p>
+
+<h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2>
+<p>
+Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии).
+Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). и дополнительные ÑÑылки в квадратных Ñкобках.
+</p>
+
+<h3 id="qualcomm-components">Компоненты Qualcomm</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>СÑылки</th>
+ <th>Тип</th>
+ <th>Уровень ÑерьезноÑти</th>
+ <th>Компонент</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11987</td>
+ <td>A-70638103<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=5e9ffcfa152ecb2832990c42fcd8a0f2e63c2c04">
+QC-CR#2258691</a></td>
+ <td>ПП</td>
+ <td>Средний</td>
+ <td>ION</td>
+ </tr>
+</tbody></table>
+
+<h2 id="functional-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… возможноÑтей</h2>
+
+<p>Ð’ Ñти Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ‹ иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, каÑающихÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… возможноÑтей уÑтройÑтв Pixel. Они не ÑвÑзаны Ñ ÑƒÑзвимоÑÑ‚Ñми в защите. Ð’ таблице ниже приведены ÑÑылки, ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ, а также ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± уÑтройÑтвах, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… предназначены обновлениÑ.</p>
+
+<table>
+<colgroup><col width="15%" />
+<col width="15%" />
+<col width="40%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>СÑылки</th>
+ <th>КатегориÑ</th>
+ <th>ОпиÑание</th>
+ <th>УÑтройÑтва</th>
+ </tr>
+ <tr>
+ <td>A-117522738</td>
+ <td>ПроизводительноÑÑ‚ÑŒ</td>
+ <td>Повышена производительноÑÑ‚ÑŒ памÑти в определенных уÑловиÑÑ….</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-110969183</td>
+ <td>Камера</td>
+ <td>Улучшен захват камеры.</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111008450</td>
+ <td>Pixel Stand</td>
+ <td>Улучшена видимоÑÑ‚ÑŒ уведомлений при иÑпользовании Pixel Stand.</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112376366</td>
+ <td>Android Auto</td>
+ <td>Повышена ÑовмеÑтимоÑÑ‚ÑŒ Ñ Android Auto.</td>
+ <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115666282</td>
+ <td>Камера</td>
+ <td>Отрегулировано поведение автофокуÑа.</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115624433</td>
+ <td>Pixel Stand</td>
+ <td>Улучшено раÑпознавание голоÑовых команд при иÑпользовании Pixel Stand.</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-116758282</td>
+ <td>Экран</td>
+ <td>Улучшена Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° заблокированном Ñкране".</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111964925</td>
+ <td>Ðудио</td>
+ <td>Улучшено раÑпознавание аудиоуÑтройÑтв Ñ USB-C.</td>
+ <td>Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111716107</td>
+ <td>Bluetooth</td>
+ <td>Отрегулировано изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾Ñти при включении и выключении Bluetooth.</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111159723</td>
+ <td>Android Auto</td>
+ <td>Улучшено звучание аудио при иÑпользовании Android Auto в некоторых автомобилÑÑ….</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112228430</td>
+ <td>Мультимедиа</td>
+ <td>Улучшены контуры HDR-изображений в некоторых мультимедийных приложениÑÑ….</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-113151604</td>
+ <td>Камера</td>
+ <td>Улучшена работа затвора камеры.</td>
+ <td>Pixel 3, Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111277984</td>
+ <td>ПроизводительноÑÑ‚ÑŒ</td>
+ <td>Улучшена разблокировка при иÑпользовании Bluetooth.</td>
+ <td>Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">ЧаÑто задаваемые вопроÑÑ‹</h2>
+<p>
+Ð’ Ñтом разделе мы отвечаем на вопроÑÑ‹, которые могут возникнуть поÑле Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð±ÑŽÐ»Ð»ÐµÑ‚ÐµÐ½Ñ.
+</p>
+<p>
+<strong>1. Как определить, уÑтановлено ли на уÑтройÑтво обновление, в котором уÑтранены перечиÑленные проблемы?
+</strong>
+</p>
+<p>
+Ð’ иÑправлении от 5 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-12-05. Информацию о том, как проверить Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти, можно найти в Ñтатье <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Справочного центра</a>.
+</p>
+<p id="type">
+<strong>2. Что означают ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð² Ñтолбце <em>Тип</em>?</strong>
+</p>
+<p>
+Ð’ Ñтом Ñтолбце указан тип уÑзвимоÑти по Ñледующей клаÑÑификации:<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>Сокращение</th>
+ <th>ОпиÑание</th>
+ </tr>
+ <tr>
+ <td>УВК</td>
+ <td>Удаленное выполнение кода</td>
+ </tr>
+ <tr>
+ <td>ПП</td>
+ <td>Повышение привилегий</td>
+ </tr>
+ <tr>
+ <td>РИ</td>
+ <td>РаÑкрытие информации</td>
+ </tr>
+ <tr>
+ <td>ОО</td>
+ <td>Отказ в обÑлуживании</td>
+ </tr>
+ <tr>
+ <td>Ð/Д</td>
+ <td>КлаÑÑÐ¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>3. Что означает Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð² Ñтолбце <em>СÑылки</em>?</strong>
+</p>
+<p>
+Ð’ таблицах Ñ Ð¾Ð¿Ð¸Ñанием уÑзвимоÑтей еÑÑ‚ÑŒ Ñтолбец <em>СÑылки</em>. ÐšÐ°Ð¶Ð´Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в нем может Ñодержать префикÑ, указывающий на иÑточник ÑÑылки, а именно:
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>ПрефикÑ</th>
+ <th>Значение</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Идентификатор ошибки Android</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>СÑылочный номер Qualcomm</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>СÑылочный номер MediaTek</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>СÑылочный номер NVIDIA</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>СÑылочный номер Broadcom</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong>
+</p>
+<p>
+Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/drivers" class="external">Ñайте Google Developers</a>.
+</p>
+<p>
+<strong>5. Почему теперь одни уÑзвимоÑти опиÑываютÑÑ Ð² Ñтом бюллетене, а другие – в бюллетенÑÑ… по безопаÑноÑти Android?</strong>
+</p>
+<p>
+Ð’ бюллетене по безопаÑноÑти Android опиÑаны уÑзвимоÑти, которые необходимо уÑтранить в поÑледнем обновлении ÑиÑтемы безопаÑноÑти Ð´Ð»Ñ ÑƒÑтройÑтв Android. ИÑправление дополнительных проблем, перечиÑленных здеÑÑŒ, Ð´Ð»Ñ Ð²Ñ‹Ð¿ÑƒÑка Ñтого Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ требуетÑÑ.
+</p>
+<h2 id="versions">ВерÑии</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>ВерÑиÑ</th>
+ <th>Дата</th>
+ <th>ПримечаниÑ</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>3 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2018 г.</td>
+ <td>Бюллетень опубликован.</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/ru/security/bulletin/pixel/2018.html b/ru/security/bulletin/pixel/2018.html
index 67792eb5..03ab10d6 100644
--- a/ru/security/bulletin/pixel/2018.html
+++ b/ru/security/bulletin/pixel/2018.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>Бюллетени по безопаÑноÑти Pixel и Nexus за 2018 г.</title>
+ <title>Бюллетени по безопаÑноÑти Pixel и Nexus за 2018 г.</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -34,29 +34,27 @@
<th>Обновление ÑиÑтемы безопаÑноÑти</th>
</tr>
<tr>
- <td><a href="/security/bulletin/pixel/2018-11-01.html">ÐоÑбрь 2018 г.</a></td>
- <td>ГотовитÑÑ Ðº публикации
- <!--
- <a href="/security/bulletin/pixel/2018-11-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
- -->
+ <td><a href="/security/bulletin/pixel/2018-11-01.html">ÐоÑбрь 2018 г.</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-11-01.html">English</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
- <td>5 ноÑÐ±Ñ€Ñ 2018 г.</td>
+ <td>5 ноÑÐ±Ñ€Ñ 2018 г.</td>
<td>2018-11-05</td>
</tr>
<tr>
<td><a href="/security/bulletin/pixel/2018-10-01.html">ОктÑбрь 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-10-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>1 октÑÐ±Ñ€Ñ 2018 г.</td>
<td>2018-10-05</td>
@@ -65,11 +63,11 @@
<td><a href="/security/bulletin/pixel/2018-09-01.html">СентÑбрь 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-09-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>4 ÑентÑÐ±Ñ€Ñ 2018 г.</td>
<td>2018-09-05</td>
@@ -78,11 +76,11 @@
<td><a href="/security/bulletin/pixel/2018-08-01.html">ÐвгуÑÑ‚ 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-08-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>6 авгуÑта 2018 г.</td>
<td>2018-08-05</td>
@@ -91,11 +89,11 @@
<td><a href="/security/bulletin/pixel/2018-07-01.html">Июль 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-07-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2Â Ð¸ÑŽÐ»Ñ 2018 г.</td>
<td>2018-07-05</td>
@@ -104,11 +102,11 @@
<td><a href="/security/bulletin/pixel/2018-06-01.html">Июнь 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-06-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>4Â Ð¸ÑŽÐ½Ñ 2018 г.</td>
<td>2018-06-05</td>
@@ -117,11 +115,11 @@
<td><a href="/security/bulletin/pixel/2018-05-01.html">Май 2018 г.</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>
+<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>7Â Ð¼Ð°Ñ 2018 г.</td>
<td>2018-05-05</td>
@@ -130,11 +128,11 @@
<td><a href="/security/bulletin/pixel/2018-04-01.html">Ðпрель 2018 г.</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>
+<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>2Â Ð°Ð¿Ñ€ÐµÐ»Ñ 2018 г.</td>
<td>2018-04-05</td>
@@ -143,11 +141,11 @@
<td><a href="/security/bulletin/pixel/2018-03-01.html">Март 2018 г.</a></td>
<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">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文 (å°ç£)</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">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>Март 2018 г.</td>
<td>2018-03-05</td>
@@ -156,11 +154,11 @@
<td><a href="/security/bulletin/pixel/2018-02-01.html">Февраль 2018 г.</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?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 г.</td>
<td>2018-02-05</td>
@@ -169,11 +167,11 @@
<td><a href="/security/bulletin/pixel/2018-01-01.html">Январь 2018 г.</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?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 г.</td>
<td>2018-01-05</td>
diff --git a/ru/security/bulletin/pixel/index.html b/ru/security/bulletin/pixel/index.html
index 4cb2e1ad..f75d3bf7 100644
--- a/ru/security/bulletin/pixel/index.html
+++ b/ru/security/bulletin/pixel/index.html
@@ -43,29 +43,27 @@
<th>Обновление ÑиÑтемы безопаÑноÑти</th>
</tr>
<tr>
- <td><a href="/security/bulletin/pixel/2018-11-01.html">ÐоÑбрь 2018 г.</a></td>
- <td>ГотовитÑÑ Ðº публикации
- <!--
- <a href="/security/bulletin/pixel/2018-11-01.html">English</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ja">日本語</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ko">한국어</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=ru">руÌÑÑкий</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-cn">中文&nbsp;(中国)</a>&nbsp;/
- <a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-tw">中文&nbsp;(å°ç£)</a>
- -->
+ <td><a href="/security/bulletin/pixel/2018-11-01.html">ÐоÑбрь 2018 г.</a></td>
+ <td>
+ <a href="/security/bulletin/pixel/2018-11-01.html">English</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-11-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
- <td>5 ноÑÐ±Ñ€Ñ 2018 г.</td>
+ <td>5 ноÑÐ±Ñ€Ñ 2018 г.</td>
<td>2018-11-05</td>
</tr>
<tr>
<td><a href="/security/bulletin/pixel/2018-10-01.html">ОктÑбрь 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-10-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-10-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>1 октÑÐ±Ñ€Ñ 2018 г.</td>
<td>2018-10-05</td>
@@ -74,11 +72,11 @@
<td><a href="/security/bulletin/pixel/2018-09-01.html">СентÑбрь 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-09-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-09-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>4 ÑентÑÐ±Ñ€Ñ 2018 г.</td>
<td>2018-09-05</td>
@@ -87,11 +85,11 @@
<td><a href="/security/bulletin/pixel/2018-08-01.html">ÐвгуÑÑ‚ 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-08-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-08-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>6 авгуÑта 2018 г.</td>
<td>2018-08-05</td>
@@ -100,11 +98,11 @@
<td><a href="/security/bulletin/pixel/2018-07-01.html">Июль 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-07-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-07-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2Â Ð¸ÑŽÐ»Ñ 2018 г.</td>
<td>2018-07-05</td>
@@ -113,11 +111,11 @@
<td><a href="/security/bulletin/pixel/2018-06-01.html">Июнь 2018 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2018-06-01.html">English</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-06-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>4Â Ð¸ÑŽÐ½Ñ 2018 г.</td>
<td>2018-06-05</td>
@@ -126,11 +124,11 @@
<td><a href="/security/bulletin/pixel/2018-05-01.html">Май 2018 г.</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>
+<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>7Â Ð¼Ð°Ñ 2018 г.</td>
<td>2018-05-05</td>
@@ -139,11 +137,11 @@
<td><a href="/security/bulletin/pixel/2018-04-01.html">Ðпрель 2018 г.</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>
+<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>2Â Ð°Ð¿Ñ€ÐµÐ»Ñ 2018 г.</td>
<td>2018-04-05</td>
@@ -152,11 +150,11 @@
<td><a href="/security/bulletin/pixel/2018-03-01.html">Март 2018 г.</a></td>
<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">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文 (å°ç£)</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">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2018-03-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>5 марта 2018 г.</td>
<td>2018-03-05</td>
@@ -165,11 +163,11 @@
<td><a href="/security/bulletin/pixel/2018-02-01.html">Февраль 2018 г.</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?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>5Â Ñ„ÐµÐ²Ñ€Ð°Ð»Ñ 2018 г.</td>
<td>2018-02-05</td>
@@ -178,11 +176,11 @@
<td><a href="/security/bulletin/pixel/2018-01-01.html">Январь 2018 г.</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?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>2 ÑÐ½Ð²Ð°Ñ€Ñ 2018 г.</td>
<td>2018-01-05</td>
@@ -191,11 +189,11 @@
<td><a href="/security/bulletin/pixel/2017-12-01.html">Декабрь 2017 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2017-12-01.html">English</a> /
- <a href="/security/bulletin/pixel/2017-12-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2017-12-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2017-12-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2017-12-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2017-12-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2017-12-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2017-12-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2017-12-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2017-12-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2017-12-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>4Â Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2017 г.</td>
<td>2017-12-05</td>
@@ -204,11 +202,11 @@
<td><a href="/security/bulletin/pixel/2017-11-01.html">ÐоÑбрь 2017 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2017-11-01.html">English</a> /
- <a href="/security/bulletin/pixel/2017-11-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2017-11-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2017-11-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2017-11-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2017-11-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2017-11-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2017-11-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2017-11-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2017-11-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2017-11-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>6 ноÑÐ±Ñ€Ñ 2017 г.</td>
<td>2017-11-05</td>
@@ -217,11 +215,11 @@
<td><a href="/security/bulletin/pixel/2017-10-01.html">ОктÑбрь 2017 г.</a></td>
<td>
<a href="/security/bulletin/pixel/2017-10-01.html">English</a> /
- <a href="/security/bulletin/pixel/2017-10-01.html?hl=ja">日本語</a> /
- <a href="/security/bulletin/pixel/2017-10-01.html?hl=ko">한국어</a> /
- <a href="/security/bulletin/pixel/2017-10-01.html?hl=ru">руÑÑкий</a> /
- <a href="/security/bulletin/pixel/2017-10-01.html?hl=zh-cn">中文 (中国)</a> /
- <a href="/security/bulletin/pixel/2017-10-01.html?hl=zh-tw">中文 (å°ç£)</a>
+<a href="/security/bulletin/pixel/2017-10-01.html?hl=ja">日本語</a> /
+<a href="/security/bulletin/pixel/2017-10-01.html?hl=ko">한국어</a> /
+<a href="/security/bulletin/pixel/2017-10-01.html?hl=ru">руÑÑкий</a> /
+<a href="/security/bulletin/pixel/2017-10-01.html?hl=zh-cn">中文 (中国)</a> /
+<a href="/security/bulletin/pixel/2017-10-01.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2 октÑÐ±Ñ€Ñ 2017 г.</td>
<td>2017-10-05</td>
diff --git a/zh-cn/compatibility/9.0/versions.html b/zh-cn/compatibility/9.0/versions.html
deleted file mode 100644
index a9cd6623..00000000
--- a/zh-cn/compatibility/9.0/versions.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<html devsite><head>
- <title>å…许的 Android 9 版本字符串</title>
- <meta name="project_path" value="/_project.yaml"/>
- <meta name="book_path" value="/_book.yaml"/>
- </head>
- <body>
- <!--
- Copyright 2017 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<p>如 <a href="android-9-cdd.pdf">Android 9 兼容性定义</a>第 3.2.2 节所述,系统属性 <code>android.os.Build.VERSION.RELEASE</code> åªèƒ½ä½¿ç”¨ç‰¹å®šå­—符串。这是因为应用和网站å¯èƒ½éœ€è¦è¯¥å­—符串具有å¯é¢„测的值,以便最终用户能够轻æ¾å¯é åœ°è¯†åˆ«å…¶è®¾å¤‡æ­è½½çš„ Android 版本。</p>
-<p>由于 Android 软件的åŽç»­ç‰ˆæœ¬å¯èƒ½ä¼šä¿®æ”¹è¯¥å­—符串,但ä¸ä¼šæ›´æ”¹ä»»ä½• API 行为,因此这些版本å¯èƒ½ä¸ä¼šé™„带新的兼容性定义文档。此页中列出了基于 Android 9 的系统所å…许的版本。对于 Android 9,<code>android.os.Build.VERSION.RELEASE</code> åªèƒ½ä½¿ç”¨ä»¥ä¸‹å€¼ï¼š</p>
-<ul>
-<li>9.0</li>
-</ul>
-
-</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/9.0/android-9.0-cdd.html b/zh-cn/compatibility/9/android-9-cdd.html
index bb4b20dd..bb4b20dd 100644
--- a/zh-cn/compatibility/9.0/android-9.0-cdd.html
+++ b/zh-cn/compatibility/9/android-9-cdd.html
diff --git a/zh-cn/compatibility/cts/audio-framework.html b/zh-cn/compatibility/cts/audio-framework.html
index e65b0b09..47228e56 100644
--- a/zh-cn/compatibility/cts/audio-framework.html
+++ b/zh-cn/compatibility/cts/audio-framework.html
@@ -20,7 +20,7 @@
limitations under the License.
-->
-<p>这套新测试需è¦äººä¸ºå¹²é¢„,并会用到一些外部硬件(包括<a href="#loopback_latency">回环æ’头</a>ã€<a href="#audio_frequency_speaker_test">USB å‚照麦克风</a>å’Œ<a href="#audio_frequency_microphone_test">外部扬声器</a>)。对于没有 3.5 毫米 (â…›") 耳机端å£çš„设备,用户将能够跳过测试并将其标记为æˆåŠŸã€‚有关详情,请å‚阅以下部分。</p>
+<p>这套新测试需è¦äººä¸ºå¹²é¢„,并会用到一些外部硬件(包括<a href="#loopback_latency">回环æ’头</a>ã€<a href="#audio_frequency_speaker_test">USB å‚照麦克风</a>å’Œ<a href="#audio_frequency_microphone_test">外部扬声器</a>。对于没有 3.5 毫米 (â…›") 耳机端å£çš„设备,用户将能够跳过测试并将其标记为æˆåŠŸã€‚有关详情,请å‚阅以下部分。</p>
<h2 id="loopback_latency">回环æ’头延迟测试</h2>
diff --git a/zh-cn/compatibility/cts/camera-wfov-box-assembly.html b/zh-cn/compatibility/cts/camera-wfov-box-assembly.html
index a3396263..886564f1 100644
--- a/zh-cn/compatibility/cts/camera-wfov-box-assembly.html
+++ b/zh-cn/compatibility/cts/camera-wfov-box-assembly.html
@@ -24,7 +24,7 @@
<p>Android 9 引入了盒装 ITS 修订版 2,它是相机图åƒæµ‹è¯•å¥—件 (ITS) 中的一ç§è‡ªåŠ¨æµ‹è¯•ç³»ç»Ÿï¼Œé€‚用于宽视野 (WFoV) 和常规视野 (RFoV) 相机系统。修订版 1 旨在测试 FoV å°äºŽ 90 度 (RFoV) 的移动设备相机。修订版 2 还å¯ç”¨äºŽæµ‹è¯• FoV 大于 90 度 (WFoV) 的相机,这样,您便能够使用一个盒装 ITS 系统测试 FoV å„ä¸ç›¸åŒçš„ä¸åŒç›¸æœºã€‚</p>
<p>盒装 ITS 系统由一个根æ®è®¡ç®—机辅助设计 (CAD) 图纸激光切割而æˆçš„塑料盒ã€ä¸€ä¸ªå†…部照明系统ã€ä¸€å°å›¾è¡¨å¹³æ¿ç”µè„‘和一部被测设备 (DUT) 组æˆã€‚您å¯ä»¥è´­ä¹°ç›’装 ITS,也å¯ä»¥è‡ªè¡Œæž„建。</p>
-<aside class="note"><strong>注æ„:</strong><span>è¦è¯¦ç»†äº†è§£å¦‚何构建盒装 ITS 修订版 1(仅适用于 RFoV 相机),请å‚阅<a href="/compatibility/cts/camera-its-box-assembly">组装盒装 ITS</a>。</span></aside>
+<aside class="note"><strong>注æ„</strong>:<span>è¦è¯¦ç»†äº†è§£å¦‚何构建盒装 ITS 修订版 1(仅适用于 RFoV 相机),请å‚阅<a href="/compatibility/cts/camera-its-box-assembly">组装盒装 ITS</a>。</span></aside>
<h2 id="purchasing_a_wfov_its-in-a-box">购买 WFoV 盒装 ITS</h2>
<p>建议您通过以下任一åˆæ ¼çš„供应商购买 WFoV 盒装 ITS。</p>
diff --git a/zh-cn/compatibility/cts/downloads.html b/zh-cn/compatibility/cts/downloads.html
index 9b70e4ee..3bc7c5d1 100644
--- a/zh-cn/compatibility/cts/downloads.html
+++ b/zh-cn/compatibility/cts/downloads.html
@@ -23,50 +23,50 @@
<p>感谢您对 Android 兼容性计划的关注ï¼æ‚¨å¯ä»¥é€šè¿‡ä»¥ä¸‹é“¾æŽ¥è®¿é—®å…³äºŽè¯¥è®¡åˆ’çš„é‡è¦æ–‡æ¡£å’Œä¿¡æ¯ã€‚éšç€ CTS 的更新,此网页上会陆续添加新的版本。CTS 版本在链接å称中由 R&lt;æ•°å­—&gt; 表示。</p>
<h2 id="android-90">Android 9</h2>
-<p>Android 9 是代å·ä¸º P çš„å¼€å‘里程碑版本。以下测试(包括针对å…安装应用的测试)的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-9.0_r3â€æ ‡è®°åŒæ­¥ã€‚</p>
+<p>Android 9 是代å·ä¸º P çš„å¼€å‘里程碑版本。以下测试(包括针对å…安装应用的测试)的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“'android-cts-9.0_r4â€æ ‡è®°åŒæ­¥ã€‚</p>
<ul>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-9.0_r3-linux_x86-arm.zip">Android 9.0 R3 兼容性测试套件 (CTS) - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-9.0_r3-linux_x86-x86.zip">Android 9.0 R3 兼容性测试套件 (CTS) - x86</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r3-linux_x86-arm.zip">Android 9.0 R3 CTS 验è¯ç¨‹åº - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r3-linux_x86-x86.zip">Android 9.0 R3 CTS 验è¯ç¨‹åº - x86</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r3-linux_x86-arm.zip">Android 9.0 R3 CTS(适用于å…安装应用)- ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r3-linux_x86-x86.zip">Android 9.0 R3 CTS(适用于å…安装应用)- x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-9.0_r4-linux_x86-arm.zip">Android 9.0 R4 兼容性测试套件 (CTS) - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-9.0_r4-linux_x86-x86.zip">Android 9.0 R4 兼容性测试套件 (CTS) - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r4-linux_x86-arm.zip">Android 9.0 R4 CTS 验è¯ç¨‹åº - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r4-linux_x86-x86.zip">Android 9.0 R4 CTS 验è¯ç¨‹åº - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r4-linux_x86-arm.zip">Android 9.0 R4 CTS(适用于å…安装应用)- ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r4-linux_x86-x86.zip">Android 9.0 R4 CTS(适用于å…安装应用)- x86</a></li>
</ul>
<h2 id="android-81">Android 8.1</h2>
-<p>Android 8.1 是代å·ä¸º Oreo-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-8.1_r10â€æ ‡è®°åŒæ­¥ã€‚</p>
+<p>Android 8.1 是代å·ä¸º Oreo-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-8.1_r11â€æ ‡è®°åŒæ­¥ã€‚</p>
<ul>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.1_r10-linux_x86-arm.zip">Android 8.1 R10 兼容性测试套件 (CTS) - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.1_r10-linux_x86-x86.zip">Android 8.1 R10 兼容性测试套件 (CTS) - x86</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r10-linux_x86-arm.zip">Android 8.1 R10 CTS 验è¯ç¨‹åº - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r10-linux_x86-x86.zip">Android 8.1 R10 CTS 验è¯ç¨‹åº - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.1_r11-linux_x86-arm.zip">Android 8.1 R11 兼容性测试套件 (CTS) - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.1_r11-linux_x86-x86.zip">Android 8.1 R11 兼容性测试套件 (CTS) - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r11-linux_x86-arm.zip">Android 8.1 R11 CTS 验è¯ç¨‹åº - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r11-linux_x86-x86.zip">Android 8.1 R11 CTS 验è¯ç¨‹åº - x86</a></li>
</ul>
<h2 id="android-80">Android 8.0</h2>
-<p>Android 8.0 是代å·ä¸º Oreo çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-8.0_r14â€æ ‡è®°åŒæ­¥ã€‚</p>
+<p>Android 8.0 是代å·ä¸º Oreo çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-8.0_r15â€æ ‡è®°åŒæ­¥ã€‚</p>
<ul>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.0_r14-linux_x86-arm.zip">Android 8.0 R14 兼容性测试套件 (CTS) - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.0_r14-linux_x86-x86.zip">Android 8.0 R14 兼容性测试套件 (CTS) - x86</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r14-linux_x86-arm.zip">Android 8.0 R14 CTS 验è¯ç¨‹åº - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r14-linux_x86-x86.zip">Android 8.0 R14 CTS 验è¯ç¨‹åº - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.0_r15-linux_x86-arm.zip">Android 8.0 R15 兼容性测试套件 (CTS) - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.0_r15-linux_x86-x86.zip">Android 8.0 R15 兼容性测试套件 (CTS) - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r15-linux_x86-arm.zip">Android 8.0 R15 CTS 验è¯ç¨‹åº - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r15-linux_x86-x86.zip">Android 8.0 R15 CTS 验è¯ç¨‹åº - x86</a></li>
</ul>
<h2 id="android-71">Android 7.1</h2>
-<p>Android 7.1 是代å·ä¸º Nougat-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-7.1_r22â€æ ‡è®°åŒæ­¥ã€‚</p>
+<p>Android 7.1 是代å·ä¸º Nougat-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-7.1_r23â€æ ‡è®°åŒæ­¥ã€‚</p>
<ul>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.1_r22-linux_x86-arm.zip">Android 7.1 R22 兼容性测试套件 (CTS) - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.1_r22-linux_x86-x86.zip">Android 7.1 R22 兼容性测试套件 (CTS) - x86</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r22-linux_x86-arm.zip">Android 7.1 R22 CTS 验è¯ç¨‹åº - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r22-linux_x86-x86.zip">Android 7.1 R22 CTS 验è¯ç¨‹åº - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.1_r23-linux_x86-arm.zip">Android 7.1 R23 兼容性测试套件 (CTS) - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.1_r23-linux_x86-x86.zip">Android 7.1 R23 兼容性测试套件 (CTS) - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r23-linux_x86-arm.zip">Android 7.1 R23 CTS 验è¯ç¨‹åº - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r23-linux_x86-x86.zip">Android 7.1 R23 CTS 验è¯ç¨‹åº - x86</a></li>
</ul>
<h2 id="android-70">Android 7.0</h2>
-<p>Android 7.0 是代å·ä¸º Nougat çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-7.0_r26â€æ ‡è®°åŒæ­¥ã€‚</p>
+<p>Android 7.0 是代å·ä¸º Nougat çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘中的“android-cts-7.0_r27â€æ ‡è®°åŒæ­¥ã€‚</p>
<ul>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.0_r26-linux_x86-arm.zip">Android 7.0 R26 兼容性测试套件 (CTS) - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.0_r26-linux_x86-x86.zip">Android 7.0 R26 兼容性测试套件 (CTS) - x86</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r26-linux_x86-arm.zip">Android 7.0 R26 CTS 验è¯ç¨‹åº - ARM</a></li>
-<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r26-linux_x86-x86.zip">Android 7.0 R26 CTS 验è¯ç¨‹åº - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.0_r27-linux_x86-arm.zip">Android 7.0 R27 兼容性测试套件 (CTS) - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.0_r27-linux_x86-x86.zip">Android 7.0 R27 兼容性测试套件 (CTS) - x86</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r27-linux_x86-arm.zip">Android 7.0 R27 CTS 验è¯ç¨‹åº - ARM</a></li>
+<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r27-linux_x86-x86.zip">Android 7.0 R27 CTS 验è¯ç¨‹åº - x86</a></li>
</ul>
<h2 id="android-60">Android 6.0</h2>
diff --git a/zh-cn/compatibility/cts/run.html b/zh-cn/compatibility/cts/run.html
index e055437d..370327bc 100644
--- a/zh-cn/compatibility/cts/run.html
+++ b/zh-cn/compatibility/cts/run.html
@@ -240,7 +240,7 @@
</tr>
<tr>
<td><code>run retry</code></td>
- <td><p><strong>对于 Android 9</strong>:é‡æ–°å°è¯•è¿è¡Œåœ¨ä»¥å‰çš„会è¯ä¸­å¤±è´¥æˆ–未执行的所有测试。例如,<code>run retry --retry <session id> -s<device serial></device></session></code>ï¼Œæˆ–åŒ…å« TF 分片的 <code>run retry --retry <session id> --shard-count</session></code>。</p>
+ <td><p><strong>对于 Android 9</strong>:é‡æ–°å°è¯•è¿è¡Œåœ¨ä»¥å‰çš„会è¯ä¸­å¤±è´¥æˆ–未执行的所有测试。例如,<code>run retry --retry <session id> -s<device serial></device></session></code> æˆ–åŒ…å« TF 分片的 <code>run retry --retry <session id> --shard-count</session></code>。</p>
<p>Android 9 ä¸å…许使用 <code>run cts --retry</code>。</p></td>
</tr>
<tr>
@@ -258,7 +258,7 @@
</tr>
<tr>
<td><code>-- module/-m &lt;test_module_name&gt; -- test &lt;test_name&gt; </code></td>
- <td>è¿è¡ŒæŒ‡å®šçš„模å—和测试。例如,<code>run cts -m Gesture --test android.gesture.cts.。GestureTest#testGetStrokes</code> 会è¿è¡ŒæŒ‡å®šçš„包ã€ç±»æˆ–测试。</td>
+ <td>è¿è¡ŒæŒ‡å®šçš„模å—和测试。例如,<code>run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes</code> 会è¿è¡ŒæŒ‡å®šçš„包ã€ç±»æˆ–测试。</td>
</tr>
<tr>
<td><code>--retry</code></td>
diff --git a/zh-cn/compatibility/cts/secure-element.html b/zh-cn/compatibility/cts/secure-element.html
index 9875e19a..dabff778 100644
--- a/zh-cn/compatibility/cts/secure-element.html
+++ b/zh-cn/compatibility/cts/secure-element.html
@@ -41,7 +41,7 @@
<li><code>CtsOmapiTestCases.apk</code> 应能够选择具有以下应用标识符 (AIDs) çš„å°ç¨‹åºï¼š<ol>
<li>0xA000000476416E64726F696443545331
<ol>
- <li>当在 <code>android.se.omapi.Channel.Transmit</code> (Transmit<em></em>) 中收到以下应用å议数æ®å•å…ƒ (APDU) 时,该å°ç¨‹åºåº”引å‘安全异常:<ol>
+ <li>当在 <code>android.se.omapi.Channel.Transmit</code> (Transmit) 中收到以下应用å议数æ®å•å…ƒ (APDU) 时,该å°ç¨‹åºåº”引å‘安全异常:<em></em><ol>
<li>0x00700000</li>
<li>0x00708000</li>
<li>0x00A40404104A535231373754657374657220312E30</li>
@@ -144,7 +144,7 @@
</tr>
<tr>
<td>0x00F30E06</td>
- <td>0x6282</td>
+ <td>0x6286</td>
<td>å¦</td>
</tr>
<tr>
@@ -435,12 +435,12 @@
<tr>
<td>0x00C27FFF00</td>
<td>0x9000</td>
- <td>2048</td>
+ <td>32767</td>
</tr>
<tr>
<td>0x00CF080000</td>
<td>0x9000</td>
- <td>32767</td>
+ <td>2048</td>
</tr>
<tr>
<td>0x94C2080000</td>
@@ -450,9 +450,10 @@
</tbody>
</table>
</li>
- <li>对于以下指定的 APDU,该å°ç¨‹åºåº”返回æˆåŠŸçŠ¶æ€å­—è¯ <code>0x9000</code>:0x00F40000</li>
+ <li>对于以下指定 APDU,该å°ç¨‹åºåº”返回“SELECT(选择)â€å‘½ä»¤ä¸­æ”¶åˆ°çš„ P2 的值和æˆåŠŸçŠ¶æ€å­—ï¼ˆå³ <code>0x009000</code>):0x00F4000000</li>
</ol>
- </li><li>A000000476416E64726F696443545332<ol>
+ </li><li>A000000476416E64726F696443545332
+ <ol>
<li>选中åŽï¼Œè¯¥ AID 应返回一个多于 2 个字节并使用基本编ç è§„则 (BER) 和标记长度值 (TLV) 进行正确格å¼åŒ–的特定å“应。</li>
</ol>
</li>
@@ -486,6 +487,8 @@
<li>0xA000000476416E64726F69644354534F</li>
</ul>
+<p>选中åŽï¼Œä»¥ä¸Šä»»ä¸€ AID 应返回一个多于 2 个字节并使用 BER å’Œ TLV 进行正确格å¼åŒ–的特定å“应。</p>
+
<h3 id="ctssecureelementaccesscontroltestcases1"><code>CtsSecureElementAccessControlTestCases1</code></h3>
<ul>
@@ -748,7 +751,7 @@ uicc.hci.services.connectivity v1.0 - A0000000090005FFFFFFFF8916020200</p>
<p>å°ç¨‹åºå®‰è£…命令</p>
-<p><code>80E60C00300C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>010002C90000</code><br />
+<p><code>80E60C00300C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>01000EEF0AA008810101A5038201C0C9000000</code><br />
<strong>Module_AID</strong>:6F 6D 61 70 69 4A 53 52 31 37 37<br />
<strong>AID</strong>:A000000476416E64726F696443545331</p>
@@ -758,7 +761,7 @@ uicc.hci.services.connectivity v1.0 - A0000000090005FFFFFFFF8916020200</p>
<h5 id="accesscontrol_tests_template_using_pkcs15_structure">AccessControl 测试(使用 PKCS#15 结构的模æ¿ï¼‰</h5>
-<p><code>80E60C003C0C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>01000EEF0AA008810101A5038201C0C90000</code><br />
+<p><code>80E60C003C0C6F6D617069636172646C65740B<var>module_AID</var>10<var>AID</var>01000EEF0AA008810101A5038201C0C9000000</code><br />
<strong>Module_AID</strong>:6F 6D 61 70 69 4A 53 52 31 37 37</p>
<p><strong>AID:</strong></p>
diff --git a/zh-cn/compatibility/cts/setup.html b/zh-cn/compatibility/cts/setup.html
index 5afd5256..cbba8932 100644
--- a/zh-cn/compatibility/cts/setup.html
+++ b/zh-cn/compatibility/cts/setup.html
@@ -28,7 +28,7 @@
<h3 id="camera">相机</h3>
<p>在è¿è¡Œç›¸æœº CTS 时,建议您使用正常光照æ¡ä»¶ï¼Œå¹¶ä¸”测试图案图表(例如棋盘图案)ä¸è¦ä¸Žé•œå¤´é å¾—太近(具体è·ç¦»å–决于设备的最å°ç„¦è·ï¼‰ã€‚</p>
-<p>如果 DUT 支æŒå¤–部相机(如 USB 网络摄åƒå¤´ï¼‰ï¼Œåˆ™åœ¨è¿è¡Œ CTS 时必须将外部相机连接到充电器,å¦åˆ™ CTS 测试将失败。</p>
+<p>如果 DUT 支æŒå¤–部相机(如 USB 网络摄åƒå¤´ï¼‰ï¼Œåˆ™åœ¨è¿è¡Œ CTS 时必须将外部相机接上电æºï¼Œå¦åˆ™ CTS 测试将失败。</p>
<h3 id="gnss">GPS/GNSS</h3>
<p>如果 DUT 支æŒå…¨çƒå®šä½ç³»ç»Ÿ (GPS)/å…¨çƒå¯¼èˆªå«æ˜Ÿç³»ç»Ÿ (GNSS) 功能,则应该以åˆé€‚çš„ä¿¡å·ç”µå¹³å‘ DUT æä¾› GPS/GNSS ä¿¡å·ï¼ˆGPS éƒ¨åˆ†ç¬¦åˆ ICD-GPS-200C 标准),以便其接收到相应信å·å¹¶è®¡ç®— GPS ä½ç½®ã€‚GPS/GNSS ä¿¡å·æºçš„ç§ç±»ä¸é™ï¼ˆå¯ä»¥æ˜¯å«æ˜Ÿæ¨¡æ‹Ÿå™¨ï¼Œä¹Ÿå¯ä»¥æ˜¯å®¤å¤– GPS/GNSS ä¿¡å·ä¸­ç»§å™¨ï¼‰ï¼Œåªéœ€å°† DUT 放在è·ç¦»çª—å£è¶³å¤Ÿè¿‘çš„ä½ç½®ä»¥ä½¿å…¶å¯ä»¥ç›´æŽ¥æŽ¥æ”¶åˆ°è¶³å¤Ÿå¼ºçš„ GPS/GNSS ä¿¡å·å³å¯ã€‚</p>
@@ -108,7 +108,8 @@ ro.product.first_api_level=21
<h4 id="android-9-higher">Android 9 åŠæ›´é«˜ç‰ˆæœ¬çš„åˆå§‹ API 级别</h4>
- <p>对于æ­è½½ Android 9 或更高版本的设备,请将属性 <code>ro.product.first_api_level</code> 设置为在<a href="/setup/start/build-numbers">代å·ã€æ ‡è®°å’Œç»†åˆ†ç‰ˆæœ¬å·</a>上找到的有效值。
+ <p>
+对于æ­è½½ Android 9 或更高版本的设备,请将属性 <code>ro.product.first_api_level</code> 设置为在<a href="/setup/start/build-numbers">代å·ã€æ ‡è®°å’Œç»†åˆ†ç‰ˆæœ¬å·</a>上找到的有效值。
</p>
<h4 id="android-8x-lower">Android 8.x åŠæ›´ä½Žç‰ˆæœ¬çš„åˆå§‹ API 级别</h4>
@@ -165,7 +166,7 @@ ro.product.first_api_level=21
<p class="warning"><strong>警告:</strong>这将清空设备中的所有用户数æ®ã€‚</p>
</li><li>将设备的语言设置为英语(<strong>美国</strong>):<strong>设置 &gt; 语言和输入法 &gt; 语言</strong>
</li><li>如果设备具有 GPS 或 WLAN/移动网络功能,则打开ä½ç½®ä¿¡æ¯è®¾ç½®ï¼š<strong>设置 &gt; ä½ç½®ä¿¡æ¯ &gt; å¼€å¯</strong>
- </li><li>连接到满足以下è¦æ±‚çš„ WLAN ç½‘ç»œï¼šæ”¯æŒ IPv6,å¯ä»¥å°†è¢«æµ‹è®¾å¤‡ (DUT) 视为隔离客户端(请å‚阅上文的<a href="#physical_environment">物ç†çŽ¯å¢ƒ</a>部分),并å¯è¿žæŽ¥åˆ°äº’è”网。具体æ“作方法为:<strong>设置 &gt; WLAN</strong><em></em>
+ </li><li>连接到满足以下è¦æ±‚çš„ WLAN ç½‘ç»œï¼šæ”¯æŒ IPv6ã€å¯ä»¥å°†è¢«æµ‹è®¾å¤‡ (DUT) 视为隔离客户端(请å‚阅上文的<em>物ç†çŽ¯å¢ƒ</em>部分),并å¯è¿žæŽ¥åˆ°äº’è”网。具体æ“作方法为:<a href="#physical_environment">设置 &gt; WLAN</a><strong></strong>
</li><li>ç¡®ä¿è®¾å¤‡ä¸Šæœªè®¾ç½®é”定图案或密ç ï¼š<strong>设置 &gt; 安全 &gt; å±å¹•é”定 &gt; æ— </strong>
</li><li>在设备上å¯ç”¨ <strong>USB 调试</strong>:<strong>设置 &gt; å¼€å‘者选项 &gt; USB 调试</strong>。
<p class="note"><strong>注æ„:</strong>在 Android 4.2 åŠæ›´é«˜ç‰ˆæœ¬ä¸­ï¼Œé»˜è®¤æƒ…况下会éšè—<strong>å¼€å‘者选项</strong>。è¦æ˜¾ç¤ºè¿™äº›é€‰é¡¹ï¼Œè¯·ä¾æ¬¡è½¬åˆ°<strong>设置 &gt; 关于手机</strong>,然åŽç‚¹æŒ‰<strong>版本å·</strong>七次。返回上一å±å¹•ä»¥æŸ¥æ‰¾<strong>å¼€å‘者选项</strong>。è¦æŸ¥çœ‹å…¶ä»–详细信æ¯ï¼Œè¯·å‚阅<a href="http://developer.android.com/studio/run/device.html#developer-device-options">å¯ç”¨è®¾å¤‡ä¸Šçš„å¼€å‘者选项</a>。</p>
@@ -178,12 +179,13 @@ ro.product.first_api_level=21
</li><li>å¯åŠ¨æµè§ˆå™¨å¹¶å…³é—­ä»»ä½•å¯åŠ¨/设置å±å¹•ã€‚
</li><li>使用 USB æ•°æ®çº¿è¿žæŽ¥ç”¨äºŽæµ‹è¯•è®¾å¤‡çš„å°å¼æœº<p class="note"><strong>注æ„:</strong>å°†è¿è¡Œ Android 4.2.2 或更高版本的设备连接到计算机时,系统会显示一个对è¯æ¡†ï¼Œè¯¢é—®æ‚¨æ˜¯å¦æŽ¥å—å…许通过此计算机进行调试的 RSA 密钥。选择“å…许 USB 调试â€ã€‚<em></em></p>
</li><li>在设备上安装和é…置帮助程åºåº”用。
-<p class="note"><strong>注æ„:</strong>对于 CTS 版本 2.1 R2 至 4.2 R4,请通过以下命令设置您的设备(或模拟器),以便执行无障ç¢æµ‹è¯•ï¼š<br />
+<p class="note"><strong>注æ„:</strong>对于 CTS 2.1 R2 - 4.2 R4 的版本,请通过以下命令设置您的设备(或模拟器),以便执行无障ç¢æµ‹è¯•ï¼š<br />
<code>adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk</code><br />
在设备上,ä¾æ¬¡å¯ç”¨ï¼š<strong>设置 &gt; æ— éšœç¢ &gt; æ— éšœç¢ &gt; Delegating Accessibility Service</strong></p>
<p class="note"><strong>注æ„:</strong>对于 7.0 之å‰çš„ CTS 版本,请在声明 <code>android.software.device_admin</code> 的设备上设置您的设备,以使用以下命令执行设备管ç†æµ‹è¯•ï¼š<br />
<code>adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk</code><br />
-</p><p>ä¾æ¬¡é€‰æ‹©â€œè®¾ç½®â€&gt;“安全â€&gt;“选择设备管ç†å™¨â€ï¼Œç„¶åŽå¯ç”¨ä¸¤ä¸ª <code>android.deviceadmin.cts.CtsDeviceAdminReceiver*</code> 设备管ç†å™¨ã€‚ç¡®ä¿ <code>android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver</code> 和任何其他预加载的设备管ç†å™¨å‡ä¿æŒåœç”¨çŠ¶æ€ã€‚
+</p><p>
+ä¾æ¬¡é€‰æ‹©â€œè®¾ç½®â€&gt;“安全â€&gt;“选择设备管ç†å™¨â€ï¼Œç„¶åŽå¯ç”¨ä¸¤ä¸ª <code>android.deviceadmin.cts.CtsDeviceAdminReceiver*</code> 设备管ç†å™¨ã€‚ç¡®ä¿ <code>android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver</code> 和任何其他预加载的设备管ç†å™¨å‡ä¿æŒåœç”¨çŠ¶æ€ã€‚
</p>
</li><li>å°† CTS 媒体文件å¤åˆ¶åˆ°è®¾å¤‡ä¸Šï¼Œå¦‚下所示:<p class="note"><strong>注æ„:</strong>对于 CTS 2.3 R12 åŠæ›´é«˜ç‰ˆæœ¬ï¼Œå¦‚果设备支æŒè§†é¢‘编解ç å™¨ï¼Œåˆ™å¿…须将 CTS 媒体文件å¤åˆ¶åˆ°è®¾å¤‡ä¸Šã€‚</p>
<ul>
diff --git a/zh-cn/compatibility/cts/usb-audio.html b/zh-cn/compatibility/cts/usb-audio.html
index 9cbb72d8..b69e0e04 100644
--- a/zh-cn/compatibility/cts/usb-audio.html
+++ b/zh-cn/compatibility/cts/usb-audio.html
@@ -89,7 +89,7 @@
</li>
<li>æ”¯æŒ <a href="/devices/accessories/headset/usb-headset-spec">Android USB 耳机é…件规范</a>的模拟耳机。这类耳机应连接到 USB 转模拟音频转æ¢å™¨ï¼ˆå¦‚,<a href="https://store.google.com/us/product/usb_c_headphone_adapter" class="external">Google æ•°å­— USB-C 型转 3.5 毫米头戴å¼è€³æœºé€‚é…器</a>或 <a href="https://www.htc.com/us/accessories-b/#!pid=htc-u11&amp;acc=usb-c-digital-to-3-5mm-htc-u11" class="external">HTC æ•°å­— USB-C 型转 3.5 毫米音频耳机æ’孔适é…器</a>)。
- <p>例如,已知的兼容模拟耳机外设包括 <a href="https://www.bose.com/en_us/products/headphones/earphones/soundsport-in-ear-headphones-samsung-devices.html" class="external">Bose SoundSport® 入耳å¼è€³æœº – Samsung å’Œ Androidâ„¢ 设备</a>,以åŠ<a href="https://www.urbanears.com/ue_us_en/reimers#reimers-black-belt" class="external">专为 Android 耳机打造的 UrbanEars Reimers Black Belt</a>。这些模拟耳机必须通过 USB 转音频转æ¢å™¨è¿žæŽ¥åˆ°è®¾å¤‡ä¸Šçš„ USB 端å£ã€‚</p>
+ <p>例如,已知的兼容模拟耳机外设示例包括 <a href="https://www.bose.com/en_us/products/headphones/earphones/soundsport-in-ear-headphones-samsung-devices.html" class="external">Bose SoundSport® 入耳å¼è€³æœº – Samsung å’Œ Androidâ„¢ 设备</a>,以åŠ<a href="https://www.urbanears.com/ue_us_en/reimers#reimers-black-belt" class="external">专为 Android 耳机打造的 UrbanEars Reimers Black Belt</a>。这些模拟耳机必须通过 USB 转音频转æ¢å™¨è¿žæŽ¥åˆ°è®¾å¤‡ä¸Šçš„ USB 端å£ã€‚</p>
</li>
</ul>
diff --git a/zh-cn/compatibility/overview.html b/zh-cn/compatibility/overview.html
index 830466e9..f5246625 100644
--- a/zh-cn/compatibility/overview.html
+++ b/zh-cn/compatibility/overview.html
@@ -70,7 +70,7 @@
<p>Android 兼容性计划由三个关键组æˆéƒ¨åˆ†ç»„æˆï¼š</p>
<ul>
<li><a href="https://android.googlesource.com/">Android 开放æºä»£ç é¡¹ç›®</a>æºä»£ç </li>
-<li><a href="cdd.html">兼容性定义文档 (CDD)</a><a>,代表兼容性方é¢çš„“政策â€</a></li><a>
+<li><a href="cdd.html">兼容性定义文档 (CDD)</a><a>,代表兼容性的“政策â€æ–¹é¢</a></li><a>
</a><li><a></a><a href="cts/index.html">兼容性测试套件 (CTS)</a>,代表兼容性的“机制â€</li>
</ul>
@@ -86,6 +86,6 @@
<p>å°±åƒæ¯ä¸ªç‰ˆæœ¬çš„ Android å¹³å°å­˜åœ¨äºŽæºä»£ç æ ‘çš„å•ç‹¬åˆ†æ”¯ä¸­ä¸€æ ·ï¼Œæ¯ä¸ªç‰ˆæœ¬ä¹Ÿå…·æœ‰å•ç‹¬çš„ CTS å’Œ CDD。CDDã€CTS å’Œæºä»£ç ï¼Œå†åŠ ä¸Šæ‚¨çš„硬件和软件自定义内容,便是打造兼容设备所需的一切。</p>
<h2 id="licensing-gms">申请 Google 移动æœåŠ¡ (GMS) 许å¯</h2>
-<p>打造与 Android 兼容的设备åŽï¼Œè¯·è€ƒè™‘申请在 Android 上è¿è¡Œçš„ Google 移动æœåŠ¡ï¼ˆç®€ç§° GMS,指 Google 拥有的一系列应用,包括 Google Playã€YouTubeã€Google 地图ã€Gmail 等)的使用许å¯ã€‚GMS ä¸æ˜¯ Android 开放æºä»£ç é¡¹ç›®çš„一部分,您åªæœ‰åœ¨èŽ·å¾— Google 许å¯åŽæ‰èƒ½ä½¿ç”¨å®ƒä»¬ã€‚è¦äº†è§£å¦‚何申请 GMS 许å¯ï¼Œè¯·å‚阅<a href="/setup/community#for-business-inquiries">è”系方å¼/社群</a>页é¢ã€‚</p>
+<p>打造与 Android 兼容的设备åŽï¼Œè¯·è€ƒè™‘申请在 Android 上è¿è¡Œçš„ Google 移动æœåŠ¡ï¼ˆç®€ç§° GMS,指 Google 拥有的一系列应用,包括 Google Playã€YouTubeã€Google 地图ã€Gmail 等)的使用许å¯ã€‚GMS ä¸æ˜¯ Android 开放æºä»£ç é¡¹ç›®çš„一部分,您åªæœ‰åœ¨èŽ·å¾— Google 许å¯åŽæ‰èƒ½ä½¿ç”¨å®ƒä»¬ã€‚è¦äº†è§£å¦‚何申请 GMS 许å¯ï¼Œè¯·å‚阅我们的<a href="/setup/community#for-business-inquiries">è”系方å¼/社区</a>页é¢ã€‚</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/atest.html b/zh-cn/compatibility/tests/development/atest.html
new file mode 100644
index 00000000..68bd31c6
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/atest.html
@@ -0,0 +1,450 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="atest" class="page-title">Atest</h1>
+
+<p>Atest 是一个命令行工具,用户å¯ä»¥ä½¿ç”¨è¿™ç§å·¥å…·åœ¨æœ¬åœ°ç¼–译ã€å®‰è£…并è¿è¡Œ Android 测试。本文介ç»äº†å¦‚何使用 Atest è¿è¡Œ Android 测试。</p>
+
+<p>è¦äº†è§£å¦‚何编写测试,请å‚阅 <a href="https://android.googlesource.com/platform/platform_testing/+/master/docs/index.md" class="external">Android å¹³å°æµ‹è¯•</a>。在编写测试的编译脚本文件 (<code>Android.mk</code>) 时,请包å«å˜é‡ <code>LOCAL_COMPATIBILITY_SUITE</code>。建议使用 <code>device-test</code> 作为默认值。</p>
+
+<p>è¦è¯¦ç»†äº†è§£ Atest 的总体结构,请å‚阅 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/docs/atest_structure.md" class="external">Atest å¼€å‘者指å—</a>。è¦äº†è§£å¦‚ä½•å‘ Atest 添加功能,请å‚阅 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/docs/developer_workflow.md" class="external">Atest å¼€å‘者工作æµç¨‹</a>。</p>
+
+<h2 id="setting_up_your_environment">设置您的环境</h2>
+
+<p>è¦è¿è¡Œ Atest,您必须设置环境。</p>
+
+<h3 id="1_run_envsetupsh">1. è¿è¡Œ envsetup.sh</h3>
+
+<p>从 Android æºä»£ç æ£€å‡ºçš„根目录处,è¿è¡Œï¼š</p>
+
+<pre>
+<code class="devsite-terminal">source build/envsetup.sh</code>
+</pre>
+
+<h3 id="2_run_lunch">2. è¿è¡Œ lunch</h3>
+
+<p>è¿è¡Œ <code>$ lunch</code> 命令以显示å—支æŒè®¾å¤‡èœå•ã€‚找到相应设备并è¿è¡Œè¯¥å‘½ä»¤ã€‚</p>
+
+<p>例如,如果您已连接 ARM 设备,请è¿è¡Œä»¥ä¸‹å‘½ä»¤ï¼š</p>
+
+<pre>
+<code class="devsite-terminal">lunch aosp_arm64-eng</code>
+</pre>
+
+<p>这会设置è¿è¡Œ Atest 所需的å„ç§çŽ¯å¢ƒå˜é‡ï¼Œå¹¶å°† Atest 命令添加到您的 <code>$PATH</code>。</p>
+
+<h2 id="basic_usage">基本用法</h2>
+
+<p>Atest 命令采用以下形å¼ï¼š</p>
+
+<pre>
+<code class="devsite-terminal">atest [<var>optional-arguments</var>] <var>test-to-run</var></code>
+</pre>
+
+<h3 id="optional_arguments">å¯é€‰å‚æ•°</h3>
+
+<p>您å¯ä»¥åœ¨ Atest 命令中使用以下å¯é€‰å‚数。</p>
+
+<table>
+<thead>
+<tr>
+<th style="text-align: center">选项</th>
+<th style="text-align: left">长选项</th>
+<th>说明</th>
+</tr>
+</thead>
+
+<tbody>
+<tr>
+<td style="text-align: center"><code>-b</code></td>
+<td style="text-align: left"><code>--build</code></td>
+<td>构建测试目标。</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-i</code>
+</td>
+<td style="text-align: left"><code>--install</code>
+</td>
+<td>在设备上安装测试软件工件 (APK)。</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-t</code></td>
+<td style="text-align: left"><code>--test</code></td>
+<td>è¿è¡Œæµ‹è¯•ã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-s</code>
+</td>
+<td style="text-align: left"><code>--serial</code>
+</td>
+<td>在指定设备上è¿è¡Œæµ‹è¯•ã€‚一次å¯ä»¥æµ‹è¯•ä¸€å°è®¾å¤‡ã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-d</code></td>
+<td style="text-align: left"><code>--disable-teardown</code></td>
+<td>åœç”¨æµ‹è¯•æ‹†è§£å’Œæ¸…ç†ã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><c>
+</c></td>
+<td style="text-align: left"><code>--info</code>
+</td>
+<td>显示指定目标的相关信æ¯å¹¶é€€å‡ºã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><c></c></td>
+<td style="text-align: left"><code>--dry-run</code></td>
+<td>--info çš„åŒä¹‰è¯ã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-m</code>
+</td>
+<td style="text-align: left"><code>--rebuild-module-info</code>
+</td>
+<td>强制é‡å»º module-info.json 文件。</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-w</code>
+</td>
+<td style="text-align: left"><code>--wait-for-debugger</code>
+</td>
+<td>在执行之å‰ç­‰å¾…调试程åºã€‚仅用于æ’桩测试。</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-v</code></td>
+<td style="text-align: left"><code>--verbose</code></td>
+<td>显示 DEBUG 级别日志记录。</td>
+</tr>
+<tr>
+<td style="text-align: center"><c>
+</c></td>
+<td style="text-align: left"><code>--generate-baseline</code>
+</td>
+<td>生æˆåŸºå‡†æŒ‡æ ‡ï¼Œé»˜è®¤æƒ…况下è¿è¡Œ 5 次迭代。</td>
+</tr>
+<tr>
+<td style="text-align: center"><c>
+</c></td>
+<td style="text-align: left"><code>--generate-new-metrics</code>
+</td>
+<td>生æˆæ–°æŒ‡æ ‡ï¼Œé»˜è®¤æƒ…况下è¿è¡Œ 5 次迭代。</td>
+</tr>
+<tr>
+<td style="text-align: center"><c></c></td>
+<td style="text-align: left"><code>--detect-regression</code></td>
+<td>è¿è¡Œå›žå½’检测算法。</td>
+</tr>
+<tr>
+<td style="text-align: center"><c>
+</c></td>
+<td style="text-align: left"><code>--[CUSTOM_ARGS]</code>
+</td>
+<td>为测试è¿è¡Œå™¨æŒ‡å®šè‡ªå®šä¹‰å‚数。</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-a</code>
+</td>
+<td style="text-align: left"><code>--all-abi</code>
+</td>
+<td>针对所有å¯ç”¨çš„设备架构è¿è¡Œæµ‹è¯•ã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>-h</code></td>
+<td style="text-align: left"><code>--help</code></td>
+<td>显示帮助消æ¯å¹¶é€€å‡ºã€‚</td>
+</tr>
+<tr>
+<td style="text-align: center"><c>
+
+</c></td>
+<td style="text-align: left"><code>--host</code>
+
+</td>
+<td>在没有设备的情况下在主机上完全è¿è¡Œæµ‹è¯•ã€‚<br />(注æ„:使用 --host è¿è¡Œéœ€è¦è®¾å¤‡çš„主机测试将失败)。</td>
+</tr>
+</tbody>
+</table>
+
+<p>è¦è¯¦ç»†äº†è§£ <code>-b</code>ã€<code>-i</code> å’Œ <code>-t</code>,请å‚阅<a href="#specifying_steps_build_install_or_run">指定步骤:编译ã€å®‰è£…或è¿è¡Œ</a>。</p>
+
+<h3 id="tests_to_run">è¦è¿è¡Œçš„测试</h3>
+
+<p>您å¯ä»¥ä½¿ç”¨ test-to-run è¿è¡Œä¸€ä¸ªæˆ–多个测试。<var></var>è¦è¿è¡Œå¤šä¸ªæµ‹è¯•ï¼Œè¯·ä½¿ç”¨ç©ºæ ¼å°†å„测试引用分隔开。例如:</p>
+
+<pre>
+<code class="devsite-terminal">atest <var>test-to-run-1</var> <var>test-to-run-2</var></code>
+</pre>
+
+<p>以下是一些示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests</code>
+<code class="devsite-terminal">atest example/reboot</code>
+<code class="devsite-terminal">atest FrameworksServicesTests CtsJankDeviceTestCases</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests</code>
+</pre>
+
+<p>è¦è¯¦ç»†äº†è§£å¦‚何引用测试,请å‚阅<a href="#identifying_tests">标识测试</a>。</p>
+
+<h2 id="identifying_tests">标识测试</h2>
+
+<p>您å¯ä»¥ä½¿ç”¨æµ‹è¯•çš„模å—å称ã€Module:Classã€ç±»å称ã€TF 集æˆæµ‹è¯•ã€æ–‡ä»¶è·¯å¾„或软件包å称æ¥æŒ‡å®š test-to-run å‚数。<var></var></p>
+
+<h3 id="module_name">模å—å称</h3>
+
+<p>è¦è¿è¡Œæ•´ä¸ªæµ‹è¯•æ¨¡å—,请使用其模å—å称。请输入该模å—在该测试的 <code>Android.mk</code> 或 <code>Android.bp</code> 文件中的 <code>LOCAL_MODULE</code> 或 <code>LOCAL_PACKAGE_NAME</code> å˜é‡ä¸­çš„显示å称。</p>
+<aside class="note"><strong>注æ„</strong>:<span>使用 <strong>TF 集æˆæµ‹è¯•</strong>è¿è¡Œç›´æŽ¥é›†æˆåˆ° TradeFed 中的éžæ¨¡å—测试。</span></aside>
+<p>示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests</code>
+<code class="devsite-terminal">atest CtsJankDeviceTestCases</code>
+</pre>
+
+<h3 id="moduleclass">Module:Class</h3>
+
+<p>è¦è¿è¡Œæ¨¡å—内的å•ä¸ªç±»ï¼Œè¯·ä½¿ç”¨ <strong>Module:Class</strong>。<strong>Module</strong> 如<a href="#module_name">模å—å称</a>中所述。<strong>Class</strong> 是 <code>.java</code> 文件中测试类的å称,å¯ä»¥æ˜¯å®Œå…¨é™å®šçš„ç±»å,也å¯ä»¥æ˜¯åŸºæœ¬å称。</p>
+
+<p>示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:com.android.server.wm.ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest CtsJankDeviceTestCases:CtsDeviceJankUi</code>
+</pre>
+
+<h3 id="class_name">ç±»å称</h3>
+
+<p>è¦åœ¨ä¸æ˜Žç¡®å£°æ˜Žæ¨¡å—å称的情况下è¿è¡Œå•ä¸ªç±»ï¼Œè¯·ä½¿ç”¨ç±»å称。</p>
+
+<p>示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest CtsDeviceJankUi</code>
+</pre>
+
+<p>建议尽å¯èƒ½ä½¿ç”¨ <strong>Module:Class</strong> 引用,因为如果没有声明任何模å—,Atest 将需è¦æ›´å¤šæ—¶é—´æ¥æœç´¢å®Œæ•´æºä»£ç æ ‘以查找å¯èƒ½çš„匹é…项。</p>
+
+<p>示例(从最快到最慢排åºï¼‰ï¼š</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:com.android.server.wm.ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests</code>
+<code class="devsite-terminal">atest ScreenDecorWindowTests</code>
+</pre>
+
+<h3 id="tf_integration_test">TF 集æˆæµ‹è¯•</h3>
+
+<p>è¦è¿è¡Œç›´æŽ¥é›†æˆåˆ° TradeFed(éžæ¨¡å—)中的测试,请输入 <code>tradefed.sh list configs</code> 命令的输出中显示的å称。例如:</p>
+
+<p>è¦è¿è¡Œ <a href="https://android.googlesource.com/platform/tools/tradefederation/contrib/+/master/res/config/example/reboot.xml" class="external"><code>reboot.xml</code> 测试</a>,请使用以下命令:</p>
+
+<pre>
+<code class="devsite-terminal">atest example/reboot</code>
+</pre>
+
+<p>è¦è¿è¡Œ <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/res/config/native-benchmark.xml" class="external"><code>native-benchmark.xml</code> 测试</a>,请使用以下命令:</p>
+
+<pre>
+<code class="devsite-terminal">atest native-benchmark</code>
+</pre>
+
+<h3 id="file_path">文件路径</h3>
+
+<p>通过输入相应测试文件或目录的路径,您既å¯ä»¥è¿è¡ŒåŸºäºŽæ¨¡å—的测试,也å¯ä»¥è¿è¡ŒåŸºäºŽé›†æˆçš„测试。您还å¯ä»¥é€šè¿‡æŒ‡å®šå•ä¸ªç±»çš„ Java 文件的路径æ¥è¿è¡Œè¯¥ç±»ã€‚åŒæ—¶æ”¯æŒç›¸å¯¹è·¯å¾„å’Œç»å¯¹è·¯å¾„。</p>
+
+<p>示例:通过路径è¿è¡Œ <code>CtsJankDeviceTestCases</code> 模å—的两ç§æ–¹æ³•</p>
+
+<ol>
+<li><p>从 android repo-root è¿è¡Œæ¨¡å—:<var></var></p>
+
+<pre>
+<code class="devsite-terminal">atest cts/tests/jank</code>
+</pre></li>
+<li><p>从 android <var>repo-root</var>/cts/tests/jank è¿è¡Œï¼š</p>
+
+<pre>
+<code class="devsite-terminal">atest .</code>
+</pre></li>
+</ol>
+
+<p>示例:通过路径è¿è¡Œ <code>CtsJankDeviceTestCases</code> 模å—内的特定类。从 android repo-root è¿è¡Œï¼š<var></var></p>
+
+<pre>
+<code class="devsite-terminal">atest cts/tests/jank/src/android/jank/cts/ui/CtsDeviceJankUi.java</code>
+</pre>
+
+<p>示例:通过路径è¿è¡Œé›†æˆæµ‹è¯•ã€‚从 android repo-root è¿è¡Œï¼š<var></var></p>
+
+<pre>
+<code class="devsite-terminal">atest tools/tradefederation/contrib/res/config/example/reboot.xml</code>
+</pre>
+
+<h3 id="package_name">软件包å称</h3>
+
+<p>Atest 支æŒæŒ‰è½¯ä»¶åŒ…åæœç´¢æµ‹è¯•ã€‚</p>
+
+<p>示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest com.android.server.wm</code>
+<code class="devsite-terminal">atest android.jank.cts</code>
+</pre>
+
+<h2 id="specifying_steps_build_install_or_run">指定步骤:编译ã€å®‰è£…或è¿è¡Œ</h2>
+
+<p>您å¯ä»¥ä½¿ç”¨ <code>-b</code>ã€<code>-i</code> å’Œ <code>-t</code> 选项指定è¦è¿è¡Œçš„步骤。如果未指定选项,则è¿è¡Œæ‰€æœ‰æ­¥éª¤ã€‚</p>
+<aside class="note"><strong>注æ„</strong>:<span>您å¯ä»¥å•ç‹¬è¿è¡Œ <code>-b</code> å’Œ <code>-t</code>,但 <code>-i</code> 需è¦è¿è¡Œ <code>-t</code>。</span></aside>
+<ul>
+<li>ä»…é™ç¼–译目标:<code>atest -b <var>test-to-run</var></code></li>
+<li>ä»…é™è¿è¡Œæµ‹è¯•ï¼š<code>atest -t <var>test-to-run</var></code></li>
+<li>安装 apk 并è¿è¡Œæµ‹è¯•ï¼š<code>atest -it <var>test-to-run</var></code></li>
+<li>编译并è¿è¡Œï¼Œä½†ä¸å®‰è£…:<code>atest -bt
+<var>test-to-run</var></code></li>
+</ul>
+
+<p>Atest å¯ä»¥å¼ºåˆ¶æµ‹è¯•è·³è¿‡æ¸…ç†/拆解步骤。许多测试(例如 CTS)会在è¿è¡Œå®Œæµ‹è¯•åŽæ¸…ç†è®¾å¤‡ï¼Œå› æ­¤å¦‚果没有 <code>--disable-teardown</code> å‚数,å°è¯•ä½¿ç”¨ <code>-t</code> é‡æ–°è¿è¡Œæµ‹è¯•å°†å¤±è´¥ã€‚请在使用 <code>-t</code> 之å‰å…ˆä½¿ç”¨ <code>-d</code> 跳过测试清ç†æ­¥éª¤ä»¥ä¾¿è¿›è¡Œå¾ªçŽ¯æµ‹è¯•ã€‚</p>
+
+<pre>
+<code class="devsite-terminal">atest -d <var>test-to-run</var></code>
+<code class="devsite-terminal">atest -t <var>test-to-run</var></code>
+</pre>
+<aside class="note"><strong>注æ„</strong>:<span><code>-t</code> 会åŒæ—¶ç¦æ­¢å¯¹è®¾å¤‡è¿›è¡Œ <strong>setup/install</strong> å’Œ <strong>teardown/cleanup</strong>,因此您å¯ä»¥ä½¿ç”¨ <code>atest -t
+<var>test-to-run</var></code> é‡æ–°è¿è¡Œæµ‹è¯•ä»»æ„次数。</span></aside>
+<h2 id="running_specific_methods">è¿è¡Œç‰¹å®šæ–¹æ³•</h2>
+
+<p>您å¯ä»¥è¿è¡Œæµ‹è¯•ç±»ä¸­çš„特定方法。虽然需è¦æž„建整个模å—,但这么åšå¯ä»¥ç¼©çŸ­è¿è¡Œæµ‹è¯•æ‰€éœ€çš„时间。è¦è¿è¡Œç‰¹å®šæ–¹æ³•ï¼Œè¯·ä½¿ç”¨ä»»ä½•å—支æŒçš„类标识法(Module:Classã€æ–‡ä»¶è·¯å¾„等)æ¥æ ‡è¯†ç±»ï¼Œå¹¶é™„加相应方法的å称。</p>
+
+<pre>
+<code class="devsite-terminal">atest <var>reference-to-class</var>#<var>method1</var></code>
+</pre>
+
+<p>您å¯ä»¥ä½¿ç”¨é€—å·æŒ‡å®šå¤šä¸ªæ–¹æ³•ã€‚</p>
+
+<pre>
+<code class="devsite-terminal">atest <var>reference-to-class</var>#<var>method1</var>,<var>method2</var>,<var>method3</var></code>
+</pre>
+
+<p>示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest com.android.server.wm.ScreenDecorWindowTests#testMultipleDecors</code>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests#testFlagChange,testRemoval</code>
+</pre>
+
+<p>以下两个示例展示了用于è¿è¡Œå•ä¸ªæ–¹æ³• <code>testFlagChange</code> 的首选方å¼ã€‚之所以首选这些示例而ä¸æ˜¯åªä½¿ç”¨ç±»å称,是因为指定模å—或 Java 文件ä½ç½®å¯ä»¥è®© Atest 更快地找到测试:</p>
+
+<ol>
+<li><p>使用 Module:Class</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests#testFlagChange</code>
+</pre></li>
+<li><p>从 android repo-root è¿è¡Œï¼š<var></var></p>
+
+<pre>
+<code class="devsite-terminal">atest frameworks/base/services/tests/servicestests/src/com/android/server/wm/ScreenDecorWindowTests.java#testFlagChange</code>
+</pre></li>
+</ol>
+
+<p>å¯ä»¥ä»Žä¸åŒçš„类和模å—è¿è¡Œå¤šä¸ªæ–¹æ³•ï¼š</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests#testFlagChange,testRemoval ScreenDecorWindowTests#testMultipleDecors</code>
+</pre>
+
+<h2 id="running_multiple_classes">è¿è¡Œå¤šä¸ªç±»</h2>
+
+<p>è¦è¿è¡Œå¤šä¸ªç±»ï¼Œè¯·ä½¿ç”¨ç©ºæ ¼å°†è¿™äº›ç±»åˆ†éš”开,如åŒè¿è¡Œå¤šä¸ªæµ‹è¯•ã€‚Atest å¯æœ‰æ•ˆåœ°æž„建和è¿è¡Œç±»ï¼Œå› æ­¤æŒ‡å®šæ¨¡å—中的一部分类å¯ä»¥æ高性能(与è¿è¡Œæ•´ä¸ªæ¨¡å—相比)。</p>
+
+<p>示例:</p>
+
+<ul>
+<li><p>åŒä¸€æ¨¡å—中的两个类:</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests FrameworksServicesTests:DimmerTests</code>
+</pre></li>
+<li><p>ä¸åŒæ¨¡å—中的两个类:</p>
+
+<pre>
+<code class="devsite-terminal">atest FrameworksServicesTests:ScreenDecorWindowTests CtsJankDeviceTestCases:CtsDeviceJankUi</code>
+</pre></li>
+</ul>
+
+<h2 id="running_native_tests">è¿è¡ŒåŽŸç”Ÿæµ‹è¯•</h2>
+
+<p>Atest å¯ä»¥è¿è¡ŒåŽŸç”Ÿæµ‹è¯•ã€‚</p>
+
+<p>示例:</p>
+
+<ul>
+<li><p>输入测试:</p>
+
+<pre>
+<code class="devsite-terminal">atest -a libinput_tests inputflinger_tests</code>
+</pre></li>
+</ul>
+
+<p>使用 <code>-a</code> å¯é’ˆå¯¹æ‰€æœ‰å¯ç”¨çš„设备架构(在此示例中为 armeabi-v7a(ARM 32 ä½ï¼‰å’Œ arm64-v8a(ARM 64 ä½ï¼‰ï¼‰è¿è¡Œæµ‹è¯•ã€‚</p>
+
+<h2 id="detecting_metrics_regression">检测指标回归</h2>
+
+<p>您å¯ä»¥ç”Ÿæˆæ‰“è¡¥ä¸å‰æŒ‡æ ‡æˆ–打补ä¸åŽæŒ‡æ ‡ï¼Œè€Œæ— éœ€è¿è¡Œå›žå½’检测。您å¯ä»¥æŒ‡å®šè¿­ä»£æ¬¡æ•°ï¼Œä½†é»˜è®¤å€¼ä¸º 5。</p>
+
+<p>示例:</p>
+
+<pre>
+<code class="devsite-terminal">atest <var>test-to-run</var> --generate-baseline <var>[optional-iteration]</var></code>
+<code class="devsite-terminal">atest <var>test-to-run</var> --generate-new-metrics <var>[optional-iteration]</var></code>
+</pre>
+
+<p>å¯ä»¥é€šè¿‡ä¸‰ç§æ–¹æ³•è¿è¡Œæœ¬åœ°å›žå½’检测:</p>
+
+<ol>
+<li><p>生æˆåŸºå‡†ï¼ˆæ‰“è¡¥ä¸å‰ï¼‰æŒ‡æ ‡å¹¶å°†å…¶æ”¾åœ¨æ–‡ä»¶å¤¹ä¸­ã€‚Atest 按照指定的迭代次数è¿è¡Œæµ‹è¯•ï¼Œç”Ÿæˆæ‰“è¡¥ä¸åŽæŒ‡æ ‡ï¼Œå¹¶å°†è¿™äº›æŒ‡æ ‡ä¸ŽçŽ°æœ‰æŒ‡æ ‡è¿›è¡Œæ¯”较。</p>
+
+<p>例如:</p>
+
+<pre>
+<code class="devsite-terminal">atest <var>test-to-run</var> --detect-regression <var>/path/to/baseline</var> --generate-new-metrics <var>[optional-iteration]</var></code>
+</pre></li>
+<li><p>使用包å«ä»¥å‰ç”Ÿæˆçš„打补ä¸åŽæŒ‡æ ‡çš„文件夹,Atest 会è¿è¡Œæµ‹è¯•å¹¶è¿›è¡Œ n 次迭代,生æˆä¸€ç»„新的打补ä¸å‰æŒ‡æ ‡ï¼Œå¹¶å°†è¿™äº›æŒ‡æ ‡ä¸Žæ‰€æ供的那些指标进行比较。<em></em></p>
+<aside class="note"><strong>注æ„</strong>:<span>å¼€å‘者需è¦å°†è®¾å¤‡/测试还原为打补ä¸å‰çŠ¶æ€ä»¥ç”ŸæˆåŸºå‡†æŒ‡æ ‡ã€‚</span></aside>
+<p>例如:</p>
+
+<pre>
+<code class="devsite-terminal">atest <var>test-to-run</var> --detect-regression <var>/path/to/new</var> --generate-baseline <var>[optional-iteration]</var></code>
+</pre></li>
+<li><p>使用åŒæ—¶åŒ…å«æ‰“è¡¥ä¸å‰æŒ‡æ ‡å’Œæ‰“è¡¥ä¸åŽæŒ‡æ ‡çš„两个文件夹,Atest 会è¿è¡Œå›žå½’检测算法而ä¸è¿›è¡Œä»»ä½•æµ‹è¯•ã€‚</p>
+
+<p>例如:</p>
+
+<pre>
+<code class="devsite-terminal">atest --detect-regression <var>/path/to/baseline</var> <var>/path/to/new</var></code>
+</pre></li>
+</ol>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/blueprints.html b/zh-cn/compatibility/tests/development/blueprints.html
new file mode 100644
index 00000000..5b04446c
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/blueprints.html
@@ -0,0 +1,72 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="soong_and_blueprints" class="page-title">Soong 和 Blueprint</h1>
+
+<p>æ¯ä¸ªæ–°çš„测试模å—都必须具有é…置文件,以使用模å—元数æ®ã€ç¼–译时ä¾èµ–项和打包指令æ¥æŒ‡å¼•ç¼–译系统。</p>
+
+<p><a href="https://android.googlesource.com/platform/build/soong/">Soong 编译系统</a>在 Android 8.0 (Oreo) 中引入,在 Android Q 中实现了对 <code>android_test</code> 的支æŒï¼ŒçŽ°åœ¨å¯åœ¨ Android å¼€æºé¡¹ç›® (AOSP) master 分支中找到它。è¦æŸ¥æ‰¾åŸºäºŽ Make 的系统的相应说明,请å‚阅 <a href="https://android.googlesource.com/platform/platform_testing/+/master/docs/development/instr-self-e2e.md#Makefile">AOSP 中此页é¢çš„原始版本</a>。</p>
+
+<p>对于 Soong,请å‚阅以下 Blueprint 或 <code>.bp</code> 文件示例,它是以 JSON æ ¼å¼ç¼–写的:<a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/instrumentation/Android.bp">/platform_testing/tests/example/instrumentation/Android.bp</a></p>
+
+<p>为方便起è§ï¼Œä¸‹é¢é™„上快照:</p>
+<pre class="prettyprint"><code>android_test {
+ name: "HelloWorldTests",
+ srcs: ["src/**/*.java"],
+ sdk_version: "current",
+ static_libs: ["android-support-test"],
+ certificate: "platform",
+ test_suites: ["device-tests"],
+}
+</code></pre>
+<p>请注æ„,开头的 <code>android_test</code> 声明表示这是一个测试。相å,如果开头为 <code>android_app</code>,则表示这是一个编译软件包。</p>
+
+<p>下é¢å¯¹å„项设置进行了解释:</p>
+<pre class="prettyprint"><code> name: "HelloWorldTests",
+</code></pre>
+<p>如果指定了 <code>android_test</code> 模å—类型(在代ç å—çš„å¼€å¤´ï¼‰ï¼Œåˆ™éœ€è¦ <code>name</code> 设置。此设置会为模å—命å,生æˆçš„ APK 将与模å—å称相åŒï¼Œä¸è¿‡å¸¦æœ‰ <code>.apk</code> åŽç¼€ã€‚例如,在本例中,生æˆçš„测试 apk 将命å为 <code>HelloWorldTests.apk</code>。此外,此设置还å¯ä»¥ä¸ºæ¨¡å—定义 make 目标å称,以便您å¯ä»¥ä½¿ç”¨ <code>make [options]
+&lt;HelloWorldTests&gt;</code> 编译测试模å—åŠå…¶æ‰€æœ‰ä¾èµ–项。</p>
+<pre class="prettyprint"><code> static_libs: ["android-support-test"],
+</code></pre>
+<p><code>static_libs</code> 设置指示编译系统将已命å模å—的内容åˆå¹¶åˆ°å½“å‰æ¨¡å—生æˆçš„ apk 中。这æ„味ç€ï¼Œæ¯ä¸ªå·²å‘½å模å—éƒ½ä¼šç”Ÿæˆ <code>.jar</code> 文件,其内容将用于在编译期间解æžç±»è·¯å¾„引用,以åŠåˆå¹¶åˆ°ç”Ÿæˆçš„ apk 中。</p>
+
+<p>在本例中,å¯èƒ½å¯¹æµ‹è¯•æ™®é有用的内容如下:</p>
+
+<p><code>android-support-test</code> 是 Android 测试支æŒåº“的预编译项,包括新的测试è¿è¡Œå™¨ <code>AndroidJUnitRunner</code>:它替代了现已弃用的内置 <code>InstrumentationTestRunner</code>ï¼Œå¹¶ä¸”æ”¯æŒ JUnit4 测试框架。è¦äº†è§£è¯¦æƒ…,请å‚阅 developer.android.com 上的<a href="https://developer.android.com/training/testing/">在 Android å¹³å°ä¸Šæµ‹è¯•åº”用</a>。</p>
+
+<p>如果è¦ç¼–译一个新的æ’桩模å—,则开始时应始终将 <code>android-support-test</code> 库作为测试è¿è¡Œå™¨ã€‚å¹³å°æºä»£ç æ ‘还包括其他有用的测试框架,如 <code>ub-uiautomator</code>ã€<code>mockito-target</code>ã€<code>easymock</code> 等等。</p>
+<pre class="prettyprint"><code> certificate: "platform",
+</code></pre>
+<p><code>certificate</code> 设置指示编译系统使用与核心平å°ç›¸åŒçš„è¯ä¹¦å¯¹ apk 进行签å。如果您的测试使用å—ç­¾åä¿æŠ¤çš„æƒé™æˆ– API,则需è¦æ­¤è®¾ç½®ã€‚请注æ„,此设置适åˆå¹³å°è¿žç»­æµ‹è¯•ï¼Œä½†ä¸åº”该用于 CTS 测试模å—。<em></em>å¦è¯·æ³¨æ„,本例使用此è¯ä¹¦è®¾ç½®åªæ˜¯ä¸ºäº†è¿›è¡Œè¯´æ˜Žï¼šç¤ºä¾‹ä¸­çš„测试代ç å®žé™…上ä¸éœ€è¦ä½¿ç”¨ç‰¹æ®Šå¹³å°è¯ä¹¦å¯¹æµ‹è¯• apk 进行签å。</p>
+
+<p>如果您è¦ä¸ºç³»ç»ŸæœåŠ¡å™¨ä¹‹å¤–的组件(也就是说,它的打包方å¼å¤šå°‘有些类似于常规应用 apk,åªä¸è¿‡å®ƒå†…置到系统映åƒä¸­å¹¶ä¸”å¯èƒ½æ˜¯ç‰¹æƒåº”用)编写æ’桩,那么æ’æ¡©å¯èƒ½ä¼šä»¥ç»„件的应用软件包(请å‚阅下é¢å…³äºŽæ¸…å•çš„部分)为目标。在这ç§æƒ…况下,应用 makefile å¯èƒ½å…·æœ‰è‡ªå·±çš„ <code>certificate</code> 设置,并且æ’桩模å—应ä¿ç•™ç›¸åŒçš„设置。这是因为,è¦ä»¥å—测应用上的æ’桩为目标,必须使用åŒä¸€è¯ä¹¦å¯¹æµ‹è¯• apk 和应用 apk 进行签å。</p>
+
+<p>在其他情况下,根本ä¸éœ€è¦æ­¤è®¾ç½®ï¼šç¼–译系统将直接使用默认的内置è¯ä¹¦ï¼ˆåŸºäºŽç¼–译å˜ä½“)对其进行签å,并且它通常称为 <code>dev-keys</code>。</p>
+<pre class="prettyprint"><code> test_suites: ["device-tests"],
+</code></pre>
+<p><code>test_suites</code> 设置使 Trade Federation 自动化测试框架很容易å‘现测试。å¯ä»¥åœ¨æ­¤å¤„添加其他套件(如 CTS),以便å¯ä»¥å…±äº«æ­¤æµ‹è¯•ã€‚</p>
+
+<p><code>${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk</code></p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/index.html b/zh-cn/compatibility/tests/development/index.html
new file mode 100644
index 00000000..924e6612
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/index.html
@@ -0,0 +1,69 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="test_development_workflow" class="page-title">测试开å‘工作æµ</h1>
+
+<p>è¦å°†æµ‹è¯•é›†æˆåˆ°å¹³å°è¿žç»­æµ‹è¯•æœåŠ¡ï¼Œå®ƒä»¬åº”该符åˆä»¥ä¸‹å‡†åˆ™ã€‚</p>
+
+<h2 id="test_types">测试类型</h2>
+
+<p>支æŒçš„测试类型包括:</p>
+
+<ul>
+<li>标准<a href="https://developer.android.com/studio/test/">æ’æ¡©</a>测试<ul>
+<li>支æŒåŠŸèƒ½æµ‹è¯•å’ŒæŒ‡æ ‡æµ‹è¯•</li>
+</ul></li>
+<li>原生测试<ul>
+<li>功能:<a href="https://github.com/google/googletest">gtest</a> 框架</li>
+<li>指标:使用 <a href="https://github.com/google/benchmark">google-benchmark</a> 进行原生基准测试</li>
+</ul></li>
+<li><a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/testtype/AndroidJUnitTest.java">主机 Java (Junit) 测试</a></li>
+</ul>
+
+<p>功能测试对测试用例进行通过或未通过测试的断言,而指标测试通常é‡å¤æ‰§è¡Œæ“作以收集时间指标。</p>
+
+<p>采用标准化的输入/输出格å¼åŽï¼Œä¸å†éœ€è¦å¯¹æ¯ä¸ªæµ‹è¯•è¿›è¡Œè‡ªå®šä¹‰ç»“果解æžå’ŒåŽå¤„ç†ï¼Œå¹¶ä¸”通用自动化测试框架å¯ç”¨äºŽç¬¦åˆæƒ¯ä¾‹çš„所有测试。</p>
+
+<h2 id="test_case_guidelines">测试用例准则</h2>
+
+<p>通过连续测试æœåŠ¡æ‰§è¡Œçš„测试用例应该是<strong>å°é—­</strong>测试:</p>
+
+<ul>
+<li>æ—  Google å¸å·ç™»å½•</li>
+<li>无连接设置(电è¯/WLAN/è“牙/NFC)</li>
+<li>ä¸ä¼ å…¥æµ‹è¯•å‚æ•°</li>
+<li>自动化测试框架ä¸å¯¹ç‰¹å®šçš„测试用例执行设置或拆解</li>
+</ul>
+
+<h2 id="building_tests">编译测试</h2>
+
+<p>如果您ä¸ç†Ÿæ‚‰æ·»åŠ å’Œæ‰§è¡Œæµ‹è¯•çš„工作æµï¼Œè¯·å‚阅:</p>
+
+<ul>
+<li><a href="/compatibility/tests/development/instrumentation.md">æ’桩测试</a>(支æŒåŠŸèƒ½æµ‹è¯•å’ŒæŒ‡æ ‡æµ‹è¯•ï¼‰</li>
+<li><a href="/compatibility/tests/development/native.md">原生测试</a></li>
+<li><a href="/compatibility/tests/development/metrics.md">原生指标测试</a></li>
+</ul>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/instr-app-e2e.html b/zh-cn/compatibility/tests/development/instr-app-e2e.html
new file mode 100644
index 00000000..161b9402
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/instr-app-e2e.html
@@ -0,0 +1,181 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="instrumentation_targeting_an_application_a_complete_example" class="page-title">针对应用的æ’桩:完整的示例</h1>
+
+<p>如果您ä¸ç†Ÿæ‚‰ Android å¹³å°å¼€å‘,那么您å¯èƒ½ä¼šå‘现,这个从头开始添加全新æ’桩测试的完整示例很有用,å¯ä»¥å¸®åŠ©äº†è§£æ‰€æ¶‰åŠçš„典型工作æµã€‚</p>
+
+<p>请注æ„,本指å—å‡å®šæ‚¨å·²æŽŒæ¡å¹³å°æºä»£ç æ ‘工作æµçš„一些相关知识。如果没有,请å‚阅 https://source.android.com/source/requirements。本文介ç»çš„示例是编写新的æ’桩测试,其中目标软件包设置为其自己的测试应用软件包。如果您ä¸ç†Ÿæ‚‰ç›¸å…³æ¦‚念,请仔细阅读<a href="../development/index.md">å¹³å°æµ‹è¯•ç®€ä»‹</a>。</p>
+
+<p>本指å—使用以下测试作为示例:</p>
+
+<ul>
+<li>frameworks/base/packages/Shell/tests</li>
+</ul>
+
+<p>建议您先æµè§ˆä»£ç ä»¥èŽ·å¾—粗略的å°è±¡ï¼Œç„¶åŽå†ç»§ç»­ã€‚</p>
+
+<h2 id="deciding_on_a_source_location">确定æºä»£ç æ‰€åœ¨çš„ä½ç½®</h2>
+
+<p>由于此æ’桩测试将针对应用,因此惯例是将测试æºä»£ç æ”¾åœ¨å¹³å°æºä»£ç æ ‘中组件æºä»£ç æ ¹ç›®å½•ä¸‹çš„ <code>tests</code> 目录中。</p>
+
+<p>有关æºä»£ç æ‰€åœ¨ä½ç½®çš„更多说明,请å‚阅<a href="instr-self-e2e.md">自æ’桩测试的端到端示例</a>。</p>
+
+<h2 id="blueprints">Blueprint</h2>
+
+<p>æ¯ä¸ªæ–°çš„测试模å—都必须具有 Blueprint Soong é…置文件,以使用模å—元数æ®ã€ç¼–译时ä¾èµ–项和打包指令æ¥æŒ‡å¼•ç¼–译系统。详情请å‚阅 <a href="blueprints.md">Soong å’Œ Blueprint</a>。</p>
+
+<h2 id="manifest_file">清å•æ–‡ä»¶</h2>
+
+<p>å°±åƒå¸¸è§„应用一样,æ¯ä¸ªæ’桩测试模å—都需è¦ä¸€ä¸ªæ¸…å•æ–‡ä»¶ã€‚如果您将该文件命å为 <code>AndroidManifest.xml</code> 并在 <code>Android.mk</code> æ—边为测试 tmodule æ供该文件,则 <code>BUILD_PACKAGE</code> 核心 makefile 将自动包å«è¯¥æ–‡ä»¶ã€‚</p>
+
+<p>在继续深入阅读以下内容之å‰ï¼Œå¼ºçƒˆå»ºè®®æ‚¨å…ˆæŸ¥é˜…<a href="https://developer.android.com/guide/topics/manifest/manifest-intro.html">有关清å•æ–‡ä»¶çš„外部文档</a>。</p>
+
+<p>此文档概述了清å•æ–‡ä»¶çš„基本组æˆéƒ¨åˆ†åŠå…¶åŠŸèƒ½ã€‚</p>
+
+<p>è¦èŽ·å¾—示例 gerrit 更改的最新版清å•æ–‡ä»¶ï¼Œè¯·è®¿é—®ï¼šhttps://android.googlesource.com/platform/frameworks/base/+/master/packages/Shell/tests/AndroidManifest.xml</p>
+
+<p>为方便起è§ï¼Œä¸‹é¢é™„上快照:</p>
+<pre class="prettyprint lang-xml"><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.shell.tests"&gt;
+
+ &lt;application&gt;
+ &lt;uses-library android:name="android.test.runner" /&gt;
+
+ &lt;activity
+ android:name="com.android.shell.ActionSendMultipleConsumerActivity"
+ android:label="ActionSendMultipleConsumer"
+ android:theme="@android:style/Theme.NoDisplay"
+ android:noHistory="true"
+ android:excludeFromRecents="true"&gt;
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.SEND_MULTIPLE" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="*/*" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;/activity&gt;
+ &lt;/application&gt;
+
+ &lt;instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
+ android:targetPackage="com.android.shell"
+ android:label="Tests for Shell" /&gt;
+
+&lt;/manifest&gt;
+</code></pre>
+<p>关于清å•æ–‡ä»¶çš„一些说明:</p>
+<pre class="prettyprint lang-xml"><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.shell.tests"&gt;
+</code></pre>
+<p><code>package</code> 属性是应用软件包å称:它是 Android 应用框架用æ¥æ ‡è¯†åº”用(在此上下文中å³æ‚¨çš„测试应用)的唯一标识符。系统中的æ¯ä¸ªç”¨æˆ·åªèƒ½å®‰è£…一个采用该软件包å称的应用。</p>
+
+<p>由于这是一个测试应用软件包,独立于接å—测试的应用软件包,因此必须使用ä¸åŒçš„软件包å称:一个常è§çš„惯例是添加åŽç¼€ <code>.test</code>。</p>
+
+<p>此外,此 <code>package</code> 属性与 <a href="https://developer.android.com/reference/android/content/ComponentName.html#getPackageName()"><code>ComponentName#getPackageName()</code></a> 返回的属性相åŒï¼Œè€Œä¸”也与用æ¥é€šè¿‡ <code>adb shell</code> 与å„ç§ <code>pm</code> å­å‘½ä»¤è¿›è¡Œäº¤äº’的属性相åŒã€‚</p>
+
+<p>å¦è¯·æ³¨æ„,虽然该软件包å称通常与 Java 软件包å称的样å¼ç›¸åŒï¼Œä½†æ˜¯å®žé™…上两者之间没有什么关系。æ¢å¥è¯è¯´ï¼Œæ‚¨çš„应用(或测试)软件包å¯èƒ½åŒ…å«å…·æœ‰ä»»ä½•è½¯ä»¶åŒ…å称的类,但å¦ä¸€æ–¹é¢ï¼Œæ‚¨å¯ä»¥é€‰æ‹©ä¿æŒç®€æ´æ€§ï¼Œä½¿åº”用或测试中的顶级 Java 软件包å称与应用软件包å称完全相åŒã€‚</p>
+<pre class="prettyprint lang-xml"><code>&lt;uses-library android:name="android.test.runner" /&gt;
+</code></pre>
+<p>所有æ’桩测试都必须采用此设置,因为相关的类打包在一个å•ç‹¬çš„框架 jar 库文件中,因此在应用框架调用测试软件包时,需è¦é¢å¤–的类路径æ¡ç›®ã€‚</p>
+<pre class="prettyprint lang-xml"><code>android:targetPackage="com.android.shell"
+</code></pre>
+<p>上述代ç å°†æ’桩的目标软件包设置为 <code>com.android.shell.tests</code>。通过 <code>am instrument</code> 命令调用æ’桩时,框架将é‡å¯ <code>com.android.shell.tests</code> 进程,并将æ’桩代ç æ³¨å…¥è¯¥è¿›ç¨‹ä»¥æ‰§è¡Œæµ‹è¯•ã€‚这也æ„味ç€ï¼Œæµ‹è¯•ä»£ç å¯ä»¥è®¿é—®åœ¨æŽ¥å—测试的应用中è¿è¡Œçš„所有类实例,并且或许能够æ“纵状æ€ï¼Œå…·ä½“å–决于公开的测试钩å­ã€‚</p>
+
+<h2 id="test_configuration_file">测试é…置文件</h2>
+
+<p>为了简化测试执行过程,您还需è¦ä¸º Android 的自动化测试框架 <a href="https://source.android.com/devices/tech/test_infra/tradefed/">Trade Federation</a> 编写测试é…置文件。</p>
+
+<p>测试é…ç½®å¯ä»¥æŒ‡å®šç‰¹æ®Šçš„设备设置选项和默认å‚æ•°æ¥æ供测试类。</p>
+
+<p>è¦èŽ·å¾—示例 gerrit 更改的最新版é…置文件,请访问:https://android.googlesource.com/platform/frameworks/base/+/master/packages/Shell/tests/AndroidTest.xml</p>
+
+<p>为方便起è§ï¼Œä¸‹é¢é™„上快照:</p>
+<pre class="prettyprint lang-xml"><code>&lt;configuration description="Runs Tests for Shell."&gt;
+ &lt;target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup"&gt;
+ &lt;option name="test-file-name" value="ShellTests.apk" /&gt;
+ &lt;/target_preparer&gt;
+
+ &lt;option name="test-suite-tag" value="apct" /&gt;
+ &lt;option name="test-tag" value="ShellTests" /&gt;
+ &lt;test class="com.android.tradefed.testtype.AndroidJUnitTest" &gt;
+ &lt;option name="package" value="com.android.shell.tests" /&gt;
+ &lt;option name="runner" value="android.support.test.runner.AndroidJUnitRunner" /&gt;
+ &lt;/test&gt;
+&lt;/configuration&gt;
+</code></pre>
+<p>关于测试é…置文件的一些说明:</p>
+<pre class="prettyprint lang-xml"><code>&lt;target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup"&gt;
+ &lt;option name="test-file-name" value="ShellTests.apk"/&gt;
+&lt;/target_preparer&gt;
+</code></pre>
+<p>上述代ç å‘ŠçŸ¥ Trade Federation 使用指定的 target_preparer å°† ShellTests.apk 安装到目标设备上。Trade Federation 中有许多目标准备器å¯ä¾›å¼€å‘者使用,这些目标准备器å¯ç”¨äºŽç¡®ä¿åœ¨æµ‹è¯•æ‰§è¡Œä¹‹å‰æ­£ç¡®åœ°è®¾ç½®è®¾å¤‡ã€‚</p>
+<pre class="prettyprint lang-xml"><code>&lt;test class="com.android.tradefed.testtype.AndroidJUnitTest"&gt;
+ &lt;option name="package" value="com.android.shell.tests"/&gt;
+ &lt;option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/&gt;
+&lt;/test&gt;
+</code></pre>
+<p>上述代ç æŒ‡å®šè¦ç”¨äºŽæ‰§è¡Œæµ‹è¯•çš„ Trade Federation 测试类,并传入设备上è¦æ‰§è¡Œçš„软件包,以åŠæµ‹è¯•è¿è¡Œå™¨æ¡†æž¶ï¼ˆåœ¨æœ¬ä¾‹ä¸­ä¸º JUnit)。</p>
+
+<p>有关测试模å—é…置的更多信æ¯ï¼Œè¯·å‚阅<a href="test-config.md">此处</a>。</p>
+
+<h2 id="junit4_features">JUnit4 功能</h2>
+
+<p>通过使用 <code>android-support-test</code> 库作为测试è¿è¡Œå™¨ï¼Œå¯ä»¥é‡‡ç”¨æ–°çš„ JUnit4 æ ·å¼æµ‹è¯•ç±»ï¼Œå¹¶ä¸”示例 gerrit æ›´æ”¹åŒ…å« JUnit4 功能的一些éžå¸¸åŸºæœ¬çš„用法。</p>
+
+<p>è¦èŽ·å¾—示例 gerrit 更改的最新æºä»£ç ï¼Œè¯·è®¿é—®ï¼šframeworks/base/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.javast.java</p>
+
+<p>虽然测试模å¼é€šå¸¸ç‰¹å®šäºŽç»„件团队,但有一些普é有用的使用模å¼ã€‚</p>
+<pre class="prettyprint lang-java"><code>@SmallTest
+@RunWith(AndroidJUnit4.class)
+public final class FeatureFactoryImplTest {
+</code></pre>
+<p>JUnit4 的一个显著区别是,ä¸å†éœ€è¦ä»Žé€šç”¨æµ‹è¯•åŸºç±»ç»§æ‰¿æµ‹è¯•ï¼Œè€Œæ˜¯åœ¨æ™®é€š Java 类中编写测试并使用注解æ¥æŒ‡ç¤ºæŸäº›æµ‹è¯•è®¾ç½®å’Œçº¦æŸã€‚在本例中,我们指示此类应作为 Android JUnit4 测试è¿è¡Œã€‚</p>
+
+<p><code>@SmallTest</code> 注解指定了整个测试类的测试大å°ï¼šæ·»åŠ åˆ°æ­¤æµ‹è¯•ç±»ä¸­çš„所有测试方法都继承此测试大å°æ³¨è§£ã€‚测试å‰ç±»è®¾ç½®ã€æµ‹è¯•åŽæ‹†è§£å’Œæµ‹è¯•åŽç±»æ‹†è§£ï¼šç±»ä¼¼äºŽ JUnit4 中的 <code>setUp</code> å’Œ <code>tearDown</code> 方法。
+<code>Test</code> 注解用于对实际测试进行注解。</p>
+<aside class="special"><strong>é‡è¦æ示</strong>:<span>测试方法本身带有 <code>@Test</code> 注解;请注æ„,对于è¦é€šè¿‡ APCT 执行的测试,它们必须带有测试大å°æ³¨è§£ã€‚此类注解å¯ä»¥åœ¨æ–¹æ³•ä½œç”¨åŸŸæˆ–类作用域内应用。</span></aside><pre class="prettyprint lang-java"><code> @Before
+ public void setup() {
+ ...
+ @Test
+ public void testGetProvider_shouldCacheProvider() {
+ ...
+</code></pre>
+<p>JUnit4 在方法上使用 <code>@Before</code> 注解æ¥æ‰§è¡Œæµ‹è¯•å‰è®¾ç½®ã€‚还有用于执行测试åŽæ‹†è§£çš„ <code>@After</code>,ä¸è¿‡åœ¨æœ¬ä¾‹ä¸­æœªä½¿ç”¨ã€‚åŒæ ·ï¼ŒJUnit4 å¯ä»¥åœ¨æ–¹æ³•ä¸Šä½¿ç”¨ <code>@BeforeClass</code> å’Œ <code>@AfterClass</code> 注解,以便在执行测试类中的所有测试之å‰æ‰§è¡Œè®¾ç½®ï¼Œå¹¶åœ¨æ‰§è¡Œæµ‹è¯•ç±»ä¸­çš„所有测试之åŽæ‰§è¡Œæ‹†è§£ã€‚请注æ„,类作用域的设置和拆解方法必须是é™æ€æ–¹æ³•ã€‚</p>
+
+<p>对于测试方法,与早期版本的 JUnit ä¸åŒï¼Œå®ƒä»¬ä¸å†éœ€è¦ä½¿æ–¹æ³•å称以 <code>test</code> 开头,而是æ¯ç§æ–¹æ³•éƒ½å¿…须带有 <code>@Test</code> 注解。åƒå¾€å¸¸ä¸€æ ·ï¼Œæµ‹è¯•æ–¹æ³•å¿…须公开ã€ä¸å£°æ˜Žä»»ä½•è¿”回值ã€ä¸æŽ¥å—任何å‚数,并且å¯èƒ½ä¼šæŠ›å‡ºå¼‚常。</p>
+<pre class="prettyprint lang-java"><code> Context context = InstrumentationRegistry.getTargetContext();
+</code></pre>
+<p>因为 JUnit4 测试ä¸å†éœ€è¦é€šç”¨åŸºç±»ï¼Œæ‰€ä»¥ä¸å†éœ€è¦é‡‡ç”¨åŸºç±»æ–¹æ³•é€šè¿‡ <code>getContext()</code> 或 <code>getTargetContext()</code> æ¥èŽ·å– <code>Context</code> 实例,新的测试è¿è¡Œå™¨ä¼šé€šè¿‡ <a href="https://developer.android.com/reference/android/support/test/InstrumentationRegistry.html"><code>InstrumentationRegistry</code></a>(用于存储æ’桩框架创建的上下文和环境设置)管ç†è¿™äº›å®žä¾‹ã€‚通过此类,您还å¯ä»¥è°ƒç”¨ï¼š</p>
+
+<ul>
+<li><code>getInstrumentation()</code>:<code>Instrumentation</code> 类的实例</li>
+<li><code>getArguments()</code>:通过 <code>-e &lt;key&gt; &lt;value&gt;</code> 传递给 <code>am instrument</code> 的命令行å‚æ•°</li>
+</ul>
+
+<h2 id="build_and_test_locally">在本地编译和测试</h2>
+
+<p>对于最常è§çš„用例,请使用 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a>。</p>
+
+<p>对于更为å¤æ‚的用例,如果需è¦æ›´ç¹ç的自定义,请éµå¾ª<a href="instrumentation.md">æ’桩说明</a>。</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/instr-self-e2e.html b/zh-cn/compatibility/tests/development/instr-self-e2e.html
new file mode 100644
index 00000000..e621cf50
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/instr-self-e2e.html
@@ -0,0 +1,187 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="self-instrumenting_tests_a_complete_example" class="page-title">自æ’桩测试:完整的示例</h1>
+
+<p>如果您ä¸ç†Ÿæ‚‰ Android å¹³å°å¼€å‘,那么您å¯èƒ½ä¼šå‘现,这个从头开始添加全新æ’桩测试的完整示例很有用,å¯ä»¥å¸®åŠ©äº†è§£æ‰€æ¶‰åŠçš„典型工作æµã€‚</p>
+
+<p>请注æ„,本指å—å‡å®šæ‚¨å·²æŽŒæ¡å¹³å°æºä»£ç æ ‘工作æµçš„一些相关知识。如果没有,请å‚阅 https://source.android.com/source/requirements。本文介ç»çš„示例是编写新的æ’桩测试,其中目标软件包设置为其自己的测试应用软件包。如果您ä¸ç†Ÿæ‚‰ç›¸å…³æ¦‚念,请仔细阅读<a href="/compatibility/tests/">å¹³å°æµ‹è¯•æ¦‚è¿°</a>。</p>
+
+<p>本指å—使用以下测试作为示例:</p>
+
+<ul>
+<li><a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/instrumentation/">Hello World æ’桩测试</a></li>
+</ul>
+
+<p>建议您先æµè§ˆä»£ç ä»¥èŽ·å¾—粗略的å°è±¡ï¼Œç„¶åŽå†ç»§ç»­ã€‚</p>
+
+<h2 id="deciding_on_a_source_location">确定æºä»£ç æ‰€åœ¨çš„ä½ç½®</h2>
+
+<p>通常,您的团队已有既定的放置模å¼ï¼Œåœ¨æ—¢å®šçš„ä½ç½®æ£€å…¥ä»£ç ï¼Œå¹¶ä¸”在既定的ä½ç½®æ·»åŠ æµ‹è¯•ã€‚大多数团队拥有å•ä¸ª git 代ç åº“,或与其他团队共享一个代ç åº“,但有一个包å«ç»„件æºä»£ç çš„专用å­ç›®å½•ã€‚</p>
+
+<p>å‡è®¾ç»„件æºä»£ç çš„æ ¹ä½ç½®æ˜¯åœ¨ <code>&lt;component source
+root&gt;</code>,大多数组件在该ä½ç½®ä¸‹å…·æœ‰ <code>src</code> å’Œ <code>tests</code> 文件夹,以åŠä¸€äº›å…¶ä»–文件(如 <code>Android.mk</code>,或拆分为é¢å¤–çš„ <code>.mk</code> 文件)ã€æ¸…å•æ–‡ä»¶ <code>AndroidManifest.xml</code>,以åŠæµ‹è¯•é…置文件“AndroidTest.xmlâ€ã€‚</p>
+
+<p>由于您è¦æ·»åŠ å…¨æ–°çš„测试,因此或许需è¦åœ¨ç»„件 <code>src</code> æ—边创建 <code>tests</code> 目录,并为其填充内容。</p>
+
+<p>在æŸäº›æƒ…况下,您的团队å¯èƒ½ä¼šåœ¨ <code>tests</code> 下设置更深的目录结构,因为需è¦å°†ä¸åŒçš„测试套件打包到å•ç‹¬çš„ apk 中。在这ç§æƒ…况下,您需è¦åœ¨ <code>tests</code> 下创建一个新的å­ç›®å½•ã€‚</p>
+
+<p>ä¸ç®¡æ˜¯ä»€ä¹ˆæ ·çš„结构,您最终都需è¦åœ¨ <code>tests</code> 目录或新建å­ç›®å½•ä¸­æ·»åŠ æ–‡ä»¶ï¼Œå¹¶ä¸”文件应类似于示例 gerrit 更改中的 <code>instrumentation</code> 目录中的文件。下é¢å‡ éƒ¨åˆ†å°†è¿›ä¸€æ­¥è¯¦ç»†è¯´æ˜Žå„个文件。</p>
+
+<h2 id="blueprints">Blueprint</h2>
+
+<p>æ¯ä¸ªæ–°çš„测试模å—都必须具有 Blueprint Soong é…置文件,以使用模å—元数æ®ã€ç¼–译时ä¾èµ–项和打包指令æ¥æŒ‡å¼•ç¼–译系统。详情请å‚阅 <a href="blueprints.md">Soong å’Œ Blueprint</a>。</p>
+
+<h2 id="manifest_file">清å•æ–‡ä»¶</h2>
+
+<p>å°±åƒå¸¸è§„应用一样,æ¯ä¸ªæ’桩测试模å—都需è¦ä¸€ä¸ªæ¸…å•æ–‡ä»¶ã€‚如果您将该文件命å为 <code>AndroidManifest.xml</code> 并在 <code>Android.mk</code> æ—边为测试 tmodule æ供该文件,则 <code>BUILD_PACKAGE</code> 核心 makefile 将自动包å«è¯¥æ–‡ä»¶ã€‚</p>
+
+<p>在继续深入阅读以下内容之å‰ï¼Œå¼ºçƒˆå»ºè®®æ‚¨å…ˆæŸ¥é˜…<a href="https://developer.android.com/guide/topics/manifest/manifest-intro.html">有关清å•æ–‡ä»¶çš„外部文档</a>。</p>
+
+<p>此文档概述了清å•æ–‡ä»¶çš„基本组æˆéƒ¨åˆ†åŠå…¶åŠŸèƒ½ã€‚有关示例,请å‚阅 <a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/instrumentation/AndroidManifest.xml">platform_testing/tests/example/instrumentation/AndroidManifest.xml</a>。</p>
+
+<p>为方便起è§ï¼Œä¸‹é¢é™„上快照:</p>
+<pre class="prettyprint lang-xml"><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android.test.example.helloworld"
+
+ &lt;uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21" /&gt;
+
+ &lt;application&gt;
+ &lt;uses-library android:name="android.test.runner" /&gt;
+ &lt;/application&gt;
+
+ &lt;instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
+ android:targetPackage="android.test.example.helloworld"
+ android:label="Hello World Test"/&gt;
+
+&lt;/manifest&gt;
+</code></pre>
+<p>关于清å•æ–‡ä»¶çš„一些说明:</p>
+<pre class="prettyprint lang-xml"><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android.test.example.helloworld"
+</code></pre>
+<p><code>package</code> 属性是应用软件包å称:它是 Android 应用框架用æ¥æ ‡è¯†åº”用(在此上下文中å³æ‚¨çš„测试应用)的唯一标识符。系统中的æ¯ä¸ªç”¨æˆ·åªèƒ½å®‰è£…一个采用该软件包å称的应用。</p>
+
+<p>此外,此 <code>package</code> 属性与 <a href="https://developer.android.com/reference/android/content/ComponentName.html#getPackageName()"><code>ComponentName#getPackageName()</code></a> 返回的属性相åŒï¼Œè€Œä¸”也与用æ¥é€šè¿‡ <code>adb shell</code> 与å„ç§ <code>pm</code> å­å‘½ä»¤è¿›è¡Œäº¤äº’的属性相åŒã€‚</p>
+
+<p>å¦è¯·æ³¨æ„,虽然该软件包å称通常与 Java 软件包å称的样å¼ç›¸åŒï¼Œä½†æ˜¯å®žé™…上两者之间没有什么关系。æ¢å¥è¯è¯´ï¼Œæ‚¨çš„应用(或测试)软件包å¯èƒ½åŒ…å«å…·æœ‰ä»»ä½•è½¯ä»¶åŒ…å称的类,但å¦ä¸€æ–¹é¢ï¼Œæ‚¨å¯ä»¥é€‰æ‹©ä¿æŒç®€æ´æ€§ï¼Œä½¿åº”用或测试中的顶级 Java 软件包å称与应用软件包å称完全相åŒã€‚</p>
+<pre class="prettyprint lang-xml"><code>android:sharedUserId="android.uid.system"
+</code></pre>
+<p>此代ç å£°æ˜Žåœ¨å®‰è£…时,应该为此 apk 授予与核心平å°ç›¸åŒçš„用户 ID,å³è¿è¡Œæ—¶èº«ä»½ã€‚请注æ„,这å–决于是å¦ä½¿ç”¨ä¸Žæ ¸å¿ƒå¹³å°ç›¸åŒçš„è¯ä¹¦ä¸º apk ç­¾å(请å‚阅上一部分中的 <code>LOCAL_CERTIFICATE</code>),ä¸è¿‡å®ƒä»¬æ˜¯ä¸åŒçš„概念:</p>
+
+<ul>
+<li>æŸäº›æƒé™æˆ– API å—ç­¾åä¿æŠ¤ï¼Œè¿™éœ€è¦ç›¸åŒçš„ç­¾åè¯ä¹¦</li>
+<li>æŸäº›æƒé™æˆ– API 需è¦è°ƒç”¨è€…çš„ <code>system</code> 用户身份,如果调用软件包与核心平å°æœ¬èº«ä¸åŒï¼Œåˆ™éœ€è¦è¯¥è½¯ä»¶åŒ…与 <code>system</code> 共享用户 ID</li>
+</ul>
+<pre class="prettyprint lang-xml"><code>&lt;uses-library android:name="android.test.runner" /&gt;
+</code></pre>
+<p>所有æ’桩测试都必须采用此设置,因为相关的类打包在一个å•ç‹¬çš„框架 jar 库文件中,因此在应用框架调用测试软件包时,需è¦é¢å¤–的类路径æ¡ç›®ã€‚</p>
+<pre class="prettyprint lang-xml"><code>android:targetPackage="android.test.example.helloworld"
+</code></pre>
+<p>您å¯èƒ½å·²ç»æ³¨æ„到,上述代ç å£°æ˜Žçš„ <code>targetPackage</code> 与此文件的 <code>manifest</code> 标记中声明的 <code>package</code> 属性相åŒã€‚如<a href="../basics/index.md">测试基础知识</a>中所述,此类æ’桩测试通常用于测试框架 API,所以除了它们本身之外,拥有特定的目标应用软件包并ä¸æ˜¯å¾ˆæœ‰æ„义。</p>
+
+<h2 id="test_configuration_file">测试é…置文件</h2>
+<aside class="special"><strong>é‡è¦æ示</strong>:<span>åªæœ‰ CTS 测试或需è¦ç‰¹æ®Šè®¾ç½®ï¼ˆå¦‚åœç”¨è“牙或收集示例数æ®ï¼‰çš„测试需è¦éµå¾ªæœ¬éƒ¨åˆ†ä¸­çš„说明。其他所有用例å‡å¯é€šè¿‡ä½¿ç”¨ <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a> æ¥æ¶µç›–。</span></aside>
+<p>对于这些更å¤æ‚的用例,您还需è¦ä¸º Android 的自动化测试框架 <a href="https://source.android.com/devices/tech/test_infra/tradefed/">Trade Federation</a> 编写测试é…置文件。</p>
+
+<p>测试é…ç½®å¯ä»¥æŒ‡å®šç‰¹æ®Šçš„设备设置选项和默认å‚æ•°æ¥æ供测试类。有关示例,请å‚阅 <a href="/platform_testing/+/master/tests/example/instrumentation/AndroidTest.xml">/platform_testing/tests/example/instrumentation/AndroidTest.xml</a>。</p>
+
+<p>为方便起è§ï¼Œä¸‹é¢é™„上快照:</p>
+<pre class="prettyprint lang-xml"><code>&lt;configuration description="Runs sample instrumentation test."&gt;
+ &lt;target_preparer class="com.android.tradefed.targetprep.TestFilePushSetup"/&gt;
+ &lt;target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup"&gt;
+ &lt;option name="test-file-name" value="HelloWorldTests.apk"/&gt;
+ &lt;/target_preparer&gt;
+ &lt;target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"/&gt;
+ &lt;target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"/&gt;
+ &lt;option name="test-suite-tag" value="apct"/&gt;
+ &lt;option name="test-tag" value="SampleInstrumentationTest"/&gt;
+
+ &lt;test class="com.android.tradefed.testtype.AndroidJUnitTest"&gt;
+ &lt;option name="package" value="android.test.example.helloworld"/&gt;
+ &lt;option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/&gt;
+ &lt;/test&gt;
+&lt;/configuration&gt;
+</code></pre>
+<p>关于测试é…置文件的一些说明:</p>
+<pre class="prettyprint lang-xml"><code>&lt;target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup"&gt;
+ &lt;option name="test-file-name" value="HelloWorldTests.apk"/&gt;
+&lt;/target_preparer&gt;
+</code></pre>
+<p>上述代ç å‘ŠçŸ¥ Trade Federation 使用指定的 target_preparer å°† HelloWorldTests.apk 安装到目标设备上。Trade Federation 中有许多目标准备器å¯ä¾›å¼€å‘者使用,这些目标准备器å¯ç”¨äºŽç¡®ä¿åœ¨æµ‹è¯•æ‰§è¡Œä¹‹å‰æ­£ç¡®åœ°è®¾ç½®è®¾å¤‡ã€‚</p>
+<pre class="prettyprint lang-xml"><code>&lt;test class="com.android.tradefed.testtype.AndroidJUnitTest"&gt;
+ &lt;option name="package" value="android.test.example.helloworld"/&gt;
+ &lt;option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/&gt;
+&lt;/test&gt;
+</code></pre>
+<p>上述代ç æŒ‡å®šè¦ç”¨äºŽæ‰§è¡Œæµ‹è¯•çš„ Trade Federation 测试类,并传入设备上è¦æ‰§è¡Œçš„软件包,以åŠæµ‹è¯•è¿è¡Œå™¨æ¡†æž¶ï¼ˆåœ¨æœ¬ä¾‹ä¸­ä¸º JUnit)。</p>
+
+<p>有关测试模å—é…置的更多信æ¯ï¼Œè¯·å‚阅<a href="test-config.md">此处</a>。</p>
+
+<h2 id="junit4_features">JUnit4 功能</h2>
+
+<p>通过使用 <code>android-support-test</code> 库作为测试è¿è¡Œå™¨ï¼Œå¯ä»¥é‡‡ç”¨æ–°çš„ JUnit4 æ ·å¼æµ‹è¯•ç±»ï¼Œå¹¶ä¸”示例 gerrit æ›´æ”¹åŒ…å« JUnit4 功能的一些éžå¸¸åŸºæœ¬çš„用法。有关示例,请å‚阅 <a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/instrumentation/src/android/test/example/helloworld/HelloWorldTest.java">/platform_testing/tests/example/instrumentation/src/android/test/example/helloworld/HelloWorldTest.java</a>。</p>
+
+<p>虽然测试模å¼é€šå¸¸ç‰¹å®šäºŽç»„件团队,但有一些普é有用的使用模å¼ã€‚</p>
+<pre class="prettyprint lang-java"><code>@RunWith(JUnit4.class)
+public class HelloWorldTest {
+</code></pre>
+<p>JUnit4 的一个显著区别是,ä¸å†éœ€è¦ä»Žé€šç”¨æµ‹è¯•åŸºç±»ç»§æ‰¿æµ‹è¯•ï¼Œè€Œæ˜¯åœ¨æ™®é€š Java 类中编写测试并使用注解æ¥æŒ‡ç¤ºæŸäº›æµ‹è¯•è®¾ç½®å’Œçº¦æŸã€‚在本例中,我们指示此类应作为 JUnit4 测试è¿è¡Œã€‚</p>
+<pre class="prettyprint lang-java"><code> @BeforeClass
+ public static void beforeClass() {
+ ...
+ @AfterClass
+ public static void afterClass() {
+ ...
+ @Before
+ public void before() {
+ ...
+ @After
+ public void after() {
+ ...
+ @Test
+ @SmallTest
+ public void testHelloWorld() {
+ ...
+</code></pre>
+<p>JUnit4 在方法上使用 <code>@Before</code> å’Œ <code>@After</code> 注解æ¥æ‰§è¡Œæµ‹è¯•å‰è®¾ç½®å’Œæµ‹è¯•åŽæ‹†è§£ã€‚åŒæ ·ï¼ŒJUnit4 å¯ä»¥åœ¨æ–¹æ³•ä¸Šä½¿ç”¨ <code>@BeforeClass</code> å’Œ <code>@AfterClass</code> 注解,以便在执行测试类中的所有测试之å‰æ‰§è¡Œè®¾ç½®ï¼Œå¹¶åœ¨æ‰§è¡Œæµ‹è¯•ç±»ä¸­çš„所有测试之åŽæ‰§è¡Œæ‹†è§£ã€‚请注æ„,类作用域的设置和拆解方法必须是é™æ€æ–¹æ³•ã€‚对于测试方法,与早期版本的 JUnit ä¸åŒï¼Œå®ƒä»¬ä¸å†éœ€è¦ä½¿æ–¹æ³•å称以 <code>test</code> 开头,而是æ¯ç§æ–¹æ³•éƒ½å¿…须带有 <code>@Test</code> 注解。åƒå¾€å¸¸ä¸€æ ·ï¼Œæµ‹è¯•æ–¹æ³•å¿…须公开ã€ä¸å£°æ˜Žä»»ä½•è¿”回值ã€ä¸æŽ¥å—任何å‚数,并且å¯èƒ½ä¼šæŠ›å‡ºå¼‚常。</p>
+
+<p><strong>é‡è¦æ示</strong>:测试方法本身带有 <code>@Test</code> 注解;请注æ„,对于è¦é€šè¿‡ APCT 执行的测试,它们必须带有测试大å°æ³¨è§£ï¼šåœ¨æœ¬ä¾‹ä¸­ï¼Œå°† <code>testHelloWorld</code> 方法注解为 <code>@SmallTest</code>。该注解å¯ä»¥åœ¨æ–¹æ³•ä½œç”¨åŸŸæˆ–类作用域内应用。</p>
+
+<h2 id="accessing_instrumentation">访问 <code>instrumentation</code></h2>
+
+<p>虽然在基本的 Hello World 示例中未涉åŠï¼Œä½†æ˜¯æœ‰ä¸€ç§ç›¸å½“æ™®é的情况是,Android 测试需è¦è®¿é—® <code>Instrumentation</code> 实例:这是核心 API 接å£ï¼Œå¯æ供对应用上下文ã€Activity 生命周期相关测试 API 等内容的访问æƒé™ã€‚</p>
+
+<p>因为 JUnit4 测试ä¸å†éœ€è¦é€šç”¨åŸºç±»ï¼Œæ‰€ä»¥ä¸å†éœ€è¦é€šè¿‡ <code>InstrumentationTestCase#getInstrumentation()</code> èŽ·å– <code>Instrumentation</code> 实例,新的测试è¿è¡Œå™¨ä¼šé€šè¿‡ <a href="https://developer.android.com/reference/android/support/test/InstrumentationRegistry.html"><code>InstrumentationRegistry</code></a>(用于存储æ’桩框架创建的上下文和环境设置)管ç†è¯¥å®žä¾‹ã€‚</p>
+
+<p>è¦è®¿é—® <code>Instrumentation</code> 类的实例,åªéœ€åœ¨ <code>InstrumentationRegistry</code> 类上调用é™æ€æ–¹æ³• <code>getInstrumentation()</code>:</p>
+<pre class="prettyprint lang-java"><code>Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation()
+</code></pre>
+<h2 id="build_and_test_locally">在本地编译和测试:</h2>
+
+<p>对于最常è§çš„用例,请使用 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a>。</p>
+
+<p>对于更为å¤æ‚的用例,如果需è¦æ›´ç¹ç的自定义,请éµå¾ª<a href="instrumentation.md">æ’桩说明</a>。</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/instrumentation.html b/zh-cn/compatibility/tests/development/instrumentation.html
new file mode 100644
index 00000000..1164965b
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/instrumentation.html
@@ -0,0 +1,106 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="instrumentation_tests" class="page-title">æ’桩测试</h1>
+
+<ol>
+<li><p>下é¢æ˜¯æ¡†æž¶æœåŠ¡å°é—­æµ‹è¯•çš„常è§ä½ç½®ï¼š</p>
+<pre class="prettyprint"><code>frameworks/base/core/tests/coretests
+frameworks/base/services/tests/servicestests
+</code></pre>
+<p>如果è¦ä¸ºç»„件添加全新的æ’桩模å—,请å‚阅</p>
+
+<ul>
+<li><a href="instr-self-e2e.md">自æ’桩测试:完整的示例</a></li>
+<li><a href="instr-app-e2e.md">针对应用的æ’桩:完整的示例</a></li>
+</ul></li>
+<li><p>如果è¦å°†æµ‹è¯•æ·»åŠ åˆ°ä¸Šè¿°æŸä¸ªä½ç½®ï¼Œè¯·éµå¾ªçŽ°æœ‰æƒ¯ä¾‹ã€‚如果è¦è®¾ç½®ä¸€ä¸ªæ–°çš„测试模å—,请在上述æŸä¸ªä½ç½®æŒ‰ç…§ <code>AndroidManifest.xml</code> å’Œ <code>Android.mk</code> 的设置进行æ“作</p></li>
+<li><p>有关示例,请å‚阅 <a href="https://android.googlesource.com/platform/frameworks/base.git/+/master/core/tests/coretests/">/frameworks/base.git/+/master/core/tests/coretests/</a>。请注æ„,以下行会安装é¢å¤–的应用:</p>
+<pre class="prettyprint"><code>&lt;option name="test-file-name" value="FrameworksCoreTests.apk" /&gt;
+&lt;option name="test-file-name" value="BstatsTestApp.apk" /&gt;
+</code></pre></li>
+<li><p>ä¸è¦å¿˜è®°å°†æ‚¨çš„测试标记为 <code>@SmallTest</code>ã€<code>@MediumTest</code> 或 <code>@LargeTest</code></p></li>
+<li><p>使用 make 命令编译测试模å—,例如:</p>
+<pre class="prettyprint"><code>make FrameworksCoreTests -j
+</code></pre></li>
+<li><p>è¿è¡Œæµ‹è¯•ï¼š</p>
+
+<ul>
+<li><p>最简å•çš„解决方案是使用 Atest,如下所示:</p>
+<pre class="prettyprint"><code>atest FrameworksCoreTests
+</code></pre></li>
+<li><p>或者,对于更å¤æ‚的测试,请使用 Trade Federation 自动化测试框架:</p></li>
+</ul>
+<pre class="prettyprint"><code>make tradefed-all -j
+tradefed.sh run template/local_min --template:map test=FrameworksCoreTests
+</code></pre></li>
+<li><p>如果使用 Trade Federation,请手动安装并è¿è¡Œæµ‹è¯•ï¼š</p>
+
+<ol>
+<li>安装生æˆçš„ apk:</li>
+</ol>
+<pre class="prettyprint"><code>adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
+</code></pre>
+<p>æ示:您å¯ä»¥ä½¿ç”¨ <code>adb shell pm list instrumentation</code> 查找刚刚安装的 apk 内的æ’æ¡©</p>
+
+<ol>
+<li><p>使用å„ç§é€‰é¡¹è¿è¡Œæµ‹è¯•ï¼š</p>
+
+<ol>
+<li><p>apk 中的所有测试</p>
+<pre class="prettyprint"><code>adb shell am instrument -w com.android.frameworks.coretests\
+ /android.support.test.runner.AndroidJUnitRunner
+</code></pre></li>
+<li><p>特定 Java 软件包下的所有测试</p>
+<pre class="prettyprint"><code>adb shell am instrument -w -e package android.animation \
+ com.android.frameworks.coretests\
+ /android.support.test.runner.AndroidJUnitRunner
+</code></pre></li>
+<li><p>特定类下的所有测试</p>
+<pre class="prettyprint"><code>adb shell am instrument -w -e class \
+ android.animation.AnimatorSetEventsTest \
+ com.android.frameworks.coretests\
+ /android.support.test.runner.AndroidJUnitRunner
+</code></pre></li>
+<li><p>特定的测试方法</p>
+<pre class="prettyprint"><code>adb shell am instrument -w -e class \
+ android.animation.AnimatorSetEventsTest#testCancel \
+ com.android.frameworks.coretests\
+ /android.support.test.runner.AndroidJUnitRunner
+</code></pre></li>
+</ol></li>
+</ol></li>
+</ol>
+
+<p>测试å¯ä»¥ä½¿ç”¨ <code>JUnit</code> API 对通过或未通过测试进行显å¼æ–­è¨€ï¼›æ­¤å¤–,任何未æ•èŽ·çš„异常也会导致功能性故障。</p>
+
+<p>è¦å‘出性能指标,测试代ç å¯ä»¥è°ƒç”¨ <a href="http://developer.android.com/reference/android/app/Instrumentation.html#sendStatus(int,%20android.os.Bundle)"><code>Instrumentation#sendStatus</code></a> æ¥å‘出键值对列表。请务必注æ„以下几点:</p>
+
+<ol>
+<li>指标å¯ä»¥æ˜¯æ•´æ•°æˆ–浮点数</li>
+<li>任何éžæ•°å­—值都将被èˆå¼ƒ</li>
+<li>测试 apk å¯ä»¥æ˜¯åŠŸèƒ½æµ‹è¯•æˆ–指标测试,但目å‰ä¸æ”¯æŒæ··åˆè¿™ä¸¤ç§æµ‹è¯•</li>
+</ol>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/metrics.html b/zh-cn/compatibility/tests/development/metrics.html
new file mode 100644
index 00000000..35ee36f9
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/metrics.html
@@ -0,0 +1,55 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="native_metric_tests" class="page-title">原生指标测试</h1>
+
+<p>如å‰æ‰€è¿°ï¼ŒåŽŸç”ŸæŒ‡æ ‡æµ‹è¯•é€šå¸¸ç”¨äºŽæ‰§è¡Œ HAL 或直接与较低级别的系统æœåŠ¡äº¤äº’,è¦åˆ©ç”¨è¿žç»­æµ‹è¯•æœåŠ¡ï¼Œåº”使用 <a href="https://github.com/google/benchmark">google-benchmark</a> 框架编译原生指标测试。</p>
+
+<p>下é¢æ˜¯ä¸€äº›å¸¸è§„说明:</p>
+
+<ol>
+<li>å‚阅示例原生测试模å—设置,ä½äºŽï¼š<code>bionic/benchmarks/bionic-benchmarks</code></li>
+<li>æµ‹è¯•æ¨¡å— makefile 应使用 <code>BUILD_NATIVE_BENCHMARK</code> ç¼–è¯‘è§„åˆ™ï¼Œä»¥ä¾¿è‡ªåŠ¨åŒ…å« google-benchmark ä¾èµ–项</li>
+<li><p>使用 make 命令编译测试模å—:</p>
+<pre class="prettyprint lang-shell"><code>make -j40 bionic-benchmarks
+</code></pre></li>
+<li><p>使用 Trade Federation 自动化测试框架自动安装和è¿è¡Œï¼š</p>
+<pre class="prettyprint"><code>make tradefed-all -j
+tradefed.sh run template/local_min --template:map test=bionic-benchmarks
+1. Manually Install and Run:
+1. Push the generated test binary onto device:
+
+ ```shell
+ adb push ${OUT}/data/benchmarktest/bionic-benchmarks/bionic-benchmarks32 \
+ /data/benchmarktest/bionic-benchmarks/bionic-benchmarks32
+ ```
+1. Execute the test by invoking test binary on device:
+
+ ```shell
+ adb shell /data/benchmarktest/bionic-benchmarks/bionic-benchmarks32
+ ```
+</code></pre></li>
+</ol>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/native-func-e2e.html b/zh-cn/compatibility/tests/development/native-func-e2e.html
new file mode 100644
index 00000000..17023aac
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/native-func-e2e.html
@@ -0,0 +1,142 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="adding_a_new_native_test_a_complete_example" class="page-title">添加新的原生测试:完整的示例</h1>
+
+<p>如果您ä¸ç†Ÿæ‚‰ Android å¹³å°å¼€å‘,那么您å¯èƒ½ä¼šå‘现,这个从头开始添加全新原生测试的完整示例很有用,å¯ä»¥å¸®åŠ©äº†è§£æ‰€æ¶‰åŠçš„典型工作æµã€‚</p>
+
+<p>请注æ„,本指å—å‡å®šæ‚¨å·²æŽŒæ¡å¹³å°æºä»£ç æ ‘工作æµçš„一些相关知识。如果没有,请å‚阅 https://source.android.com/source/requirements。</p>
+
+<p>此外,如果您也ä¸ç†Ÿæ‚‰ C++ çš„ gtest 框架,请访问 <a href="https://github.com/google/googletest">gtest 项目网站</a>以查看其他文档。</p>
+
+<p>本指å—使用以下测试作为示例:</p>
+
+<ul>
+<li><a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/native/">Hello World 原生测试</a></li>
+</ul>
+
+<p>建议您先æµè§ˆä»£ç ä»¥èŽ·å¾—粗略的å°è±¡ï¼Œç„¶åŽå†ç»§ç»­ã€‚</p>
+
+<h2 id="deciding_on_a_source_location">确定æºä»£ç æ‰€åœ¨çš„ä½ç½®</h2>
+
+<p>通常,您的团队已有既定的放置模å¼ï¼Œåœ¨æ—¢å®šçš„ä½ç½®æ£€å…¥ä»£ç ï¼Œå¹¶ä¸”在既定的ä½ç½®æ·»åŠ æµ‹è¯•ã€‚大多数团队拥有å•ä¸ª git 代ç åº“,或与其他团队共享一个代ç åº“,但有一个包å«ç»„件æºä»£ç çš„专用å­ç›®å½•ã€‚</p>
+
+<p>å‡è®¾ç»„件æºä»£ç çš„æ ¹ä½ç½®æ˜¯åœ¨ <code>&lt;component source
+root&gt;</code>,大多数组件在该ä½ç½®ä¸‹å…·æœ‰ <code>src</code> å’Œ <code>tests</code> 文件夹,以åŠä¸€äº›å…¶ä»–文件,如 <code>Android.mk</code>(或拆分为é¢å¤–çš„ <code>.bp</code> 文件)。</p>
+
+<p>由于您è¦æ·»åŠ å…¨æ–°çš„测试,因此或许需è¦åœ¨ç»„件 <code>src</code> æ—边创建 <code>tests</code> 目录,并为其填充内容。</p>
+
+<p>在æŸäº›æƒ…况下,您的团队å¯èƒ½ä¼šåœ¨ <code>tests</code> 下设置更深的目录结构,因为需è¦å°†ä¸åŒçš„测试套件打包到å•ç‹¬çš„二进制文件中。在这ç§æƒ…况下,您需è¦åœ¨ <code>tests</code> 下创建一个新的å­ç›®å½•ã€‚</p>
+
+<p>为了进行说明,下é¢ç»™å‡ºäº†å…·æœ‰å•ä¸ª <code>tests</code> 文件夹的组件的典型目录大纲:</p>
+<pre class="prettyprint"><code>\
+ &lt;component source root&gt;
+ \-- Android.bp (component makefile)
+ \-- AndroidTest.bp (test config file)
+ \-- src (component source)
+ | \-- foo.cpp
+ | \-- ...
+ \-- tests (test source root)
+ \-- Android.bp (test makefile)
+ \-- src (test source)
+ \-- foo_test.cpp
+ \-- ...
+</code></pre>
+<p>此外,下é¢è¿˜ç»™å‡ºäº†å…·æœ‰å¤šä¸ªæµ‹è¯•æºæ–‡ä»¶ç›®å½•çš„组件的典型目录大纲:</p>
+<pre class="prettyprint"><code>\
+ &lt;component source root&gt;
+ \-- Android.bp (component makefile)
+ \-- AndroidTest.bp (test config file)
+ \-- src (component source)
+ | \-- foo.cpp
+ | \-- ...
+ \-- tests (test source root)
+ \-- Android.bp (test makefile)
+ \-- testFoo (sub test source root)
+ | \-- Android.bp (sub test makefile)
+ | \-- src (sub test source)
+ | \-- test_foo.cpp
+ | \-- ...
+ \-- testBar
+ | \-- Android.bp
+ | \-- src
+ | \-- test_bar.cpp
+ | \-- ...
+ \-- ...
+</code></pre>
+<p>ä¸ç®¡æ˜¯ä»€ä¹ˆæ ·çš„结构,您最终都需è¦åœ¨ <code>tests</code> 目录或新建å­ç›®å½•ä¸­æ·»åŠ æ–‡ä»¶ï¼Œå¹¶ä¸”文件应类似于示例 gerrit 更改中的 <code>native</code> 目录中的文件。下é¢å‡ éƒ¨åˆ†å°†è¿›ä¸€æ­¥è¯¦ç»†è¯´æ˜Žå„个文件。</p>
+
+<h2 id="blueprints">Blueprint</h2>
+
+<p>æ¯ä¸ªæ–°çš„测试模å—都必须具有 Blueprint Soong é…置文件,以使用模å—元数æ®ã€ç¼–译时ä¾èµ–项和打包指令æ¥æŒ‡å¼•ç¼–译系统。详情请å‚阅 <a href="blueprints.md">Soong å’Œ Blueprint</a>。</p>
+
+<h2 id="source_code">æºä»£ç </h2>
+
+<p>有关示例,请å‚阅 <a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/native/HelloWorldTest.cpp">Hello World 原生测试</a>。</p>
+
+<p>带注解的æºä»£ç å¦‚下所示:</p>
+<pre class="prettyprint lang-c++"><code>#include &lt;gtest/gtest.h&gt;
+</code></pre>
+<p>gtest 的头文件。请注æ„,使用 makefile 中的 <code>BUILD_NATIVE_TEST</code> 会自动解æžå¤´æ–‡ä»¶ä¾èµ–项</p>
+<pre class="prettyprint lang-c++"><code>#include &lt;stdio.h&gt;
+
+TEST(HelloWorldTest, PrintHelloWorld) {
+ printf("Hello, World!");
+}
+</code></pre>
+<p>gtest 使用 <code>TEST</code> å®ç¼–写而æˆï¼šç¬¬ä¸€ä¸ªå‚数是测试用例å称,第二个是测试å称;在结果信æ¯ä¸­å¿ƒæŸ¥çœ‹æ—¶ï¼Œå®ƒä»¬ä¸Žæµ‹è¯•äºŒè¿›åˆ¶æ–‡ä»¶å称一起形æˆä¸‹é¢çš„层次结构:</p>
+<pre class="prettyprint"><code>&lt;test binary 1&gt;
+| \-- &lt;test case 1&gt;
+| | \-- &lt;test 1&gt;
+| | \-- &lt;test 2&gt;
+| | \-- ...
+| \-- &lt;test case 2&gt;
+| | \-- &lt;test 1&gt;
+| | \-- ...
+| \-- ...
+&lt;test binary 2&gt;
+|
+...
+</code></pre>
+<p>有关使用 gtest 编写测试的更多信æ¯ï¼Œè¯·å‚阅其文档:</p>
+
+<ul>
+<li>https://github.com/google/googletest/blob/master/googletest/docs/Primer.md</li>
+</ul>
+
+<h2 id="test_configuration">测试é…ç½®</h2>
+<aside class="special"><strong>é‡è¦æ示</strong>:<span>åªæœ‰ CTS 测试或需è¦ç‰¹æ®Šè®¾ç½®ï¼ˆå¦‚åœç”¨è“牙或收集示例数æ®ï¼‰çš„测试需è¦éµå¾ªæœ¬éƒ¨åˆ†ä¸­çš„说明。其他所有用例å‡å¯é€šè¿‡ä½¿ç”¨ <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a> æ¥æ¶µç›–。</span></aside>
+<p>为了简化测试执行过程,您å¯ä»¥ç¼–写类似以下映射的测试映射:<a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/native/TEST_MAPPING">/platform/platform_testing/tests/example/native/TEST_MAPPING</a>。</p>
+
+<p>è¦æ”¹ç”¨ Trade Federation,请为 Android 的自动化测试框架 <a href="/devices/tech/test_infra/tradefed/">Trade Federation</a> 编写测试é…置文件。</p>
+
+<p>测试é…ç½®å¯ä»¥æŒ‡å®šç‰¹æ®Šçš„设备设置选项和默认å‚æ•°æ¥æ供测试类。</p>
+
+<h2 id="build_and_test_locally">在本地编译和测试</h2>
+
+<p>对于最常è§çš„用例,请使用 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a>。</p>
+
+<p>对于更为å¤æ‚的用例,如果需è¦æ›´ç¹ç的自定义,请éµå¾ª<a href="instrumentation.md">æ’桩说明</a>。</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/native.html b/zh-cn/compatibility/tests/development/native.html
new file mode 100644
index 00000000..9d9fee67
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/native.html
@@ -0,0 +1,60 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="native_tests" class="page-title">原生测试</h1>
+
+<p>如å‰æ‰€è¿°ï¼ŒåŽŸç”Ÿæµ‹è¯•é€šå¸¸ç”¨äºŽæ‰§è¡Œ HAL 或直接与较低级别的系统æœåŠ¡äº¤äº’,è¦åˆ©ç”¨è¿žç»­æµ‹è¯•æœåŠ¡ï¼Œåº”使用 <a href="https://github.com/google/googletest">gtest</a> 框架编译原生测试。</p>
+
+<p>下é¢æ˜¯ä¸€äº›å¸¸è§„说明:</p>
+
+<ol>
+<li>å‚阅示例原生测试模å—设置,ä½äºŽï¼š<code>libs/hwui/unit_tests</code></li>
+<li>æµ‹è¯•æ¨¡å— makefile 应使用 <code>BUILD_NATIVE_TEST</code> ç¼–è¯‘è§„åˆ™ï¼Œä»¥ä¾¿è‡ªåŠ¨åŒ…å« gtest ä¾èµ–项</li>
+<li>编写<a href="test-config.md">测试é…ç½®</a>。</li>
+<li><p>使用 <code>mmm</code> 或 <code>mma</code>(å–决于它是增é‡ç¼–译还是完整编译)编译测试模å—,例如:</p>
+<pre class="prettyprint lang-shell"><code>make hwui_unit_tests -j
+</code></pre></li>
+<li><p>使用 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a> è¿è¡Œæµ‹è¯•ï¼š</p>
+<pre class="prettyprint"><code>atest hwui_unit_tests
+</code></pre></li>
+<li><p>或者,使用 Trade Federation 自动化测试框架è¿è¡Œï¼š</p>
+<pre class="prettyprint"><code>make tradefed-all -j
+tradefed.sh run template/local_min --template:map test=hwui_unit_tests
+</code></pre></li>
+<li><p>如果使用 Trade Federation,请手动安装并è¿è¡Œï¼š</p>
+
+<ol>
+<li><p>将生æˆçš„测试二进制文件推é€åˆ°è®¾å¤‡ï¼š</p>
+<pre class="prettyprint lang-shell"><code>adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
+ /data/nativetest/hwui_unit_tests/hwui_unit_tests
+</code></pre></li>
+<li><p>通过在设备上调用测试二进制文件执行测试:</p>
+<pre class="prettyprint lang-shell"><code>adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
+</code></pre></li>
+</ol>
+
+<p>这样将å¯åŠ¨åŽŸç”Ÿæµ‹è¯•ã€‚您还å¯ä»¥å°† <code>--help</code> å‚数添加到测试二进制文件,以详细了解自定义测试执行的ä¸åŒæ–¹å¼ã€‚最åŽï¼Œè¯·å‚阅 <a href="https://github.com/google/googletest/blob/master/googletest/docs/advanced.md">gtest 高级指å—</a>,以了解更多å‚æ•°åŠå…¶ç”¨æ³•ã€‚</p></li>
+</ol>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/test-config.html b/zh-cn/compatibility/tests/development/test-config.html
new file mode 100644
index 00000000..66d47845
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/test-config.html
@@ -0,0 +1,147 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="test_module_configuration" class="page-title">测试模å—é…ç½®</h1>
+<aside class="special"><strong>é‡è¦æ示</strong>:<span>åªæœ‰ CTS 测试或需è¦ç‰¹æ®Šè®¾ç½®ï¼ˆå¦‚åœç”¨è“牙或收集示例数æ®ï¼‰çš„测试需è¦éµå¾ªæ­¤é¡µé¢ä¸Šçš„说明。其他所有用例å‡å¯é€šè¿‡ä½¿ç”¨ <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md">Atest</a> æ¥æ¶µç›–。</span></aside>
+<p>æŸäº›æµ‹è¯•æ¨¡å—å¯èƒ½éœ€è¦æ‰§è¡Œåœ¨æµ‹è¯•ç”¨ä¾‹æœ¬èº«å†…无法执行的自定义设置和拆解步骤。典型的示例å¯èƒ½åŒ…括:</p>
+
+<ul>
+<li>安装其他 apk(除了测试 apk 之外)</li>
+<li>å°†æŸäº›æ–‡ä»¶æŽ¨é€åˆ°è®¾å¤‡</li>
+<li>è¿è¡Œå‘½ä»¤ï¼ˆä¾‹å¦‚ adb shell pm …)</li>
+</ul>
+
+<p>过去,组件团队通常ä¾é ç¼–写主机端测试æ¥æ‰§è¡Œæ­¤ç±»ä»»åŠ¡ï¼Œè¿™éœ€è¦äº†è§£ Trade Federation 自动化测试框架,并且通常会æ高测试模å—çš„å¤æ‚性。</p>
+
+<p>我们引入了测试模å—é…置的概念(借鉴于 CTS)æ¥æ”¯æŒæ­¤ç±»ä»»åŠ¡ï¼Œåªéœ€å‡ è¡Œé…ç½®å³å¯å®Œæˆä¸Šé¢åˆ—出的常è§ä»»åŠ¡ã€‚为了获得最大的çµæ´»æ€§ï¼Œæ‚¨ç”šè‡³å¯ä»¥å®žçŽ°è‡ªå·±çš„目标准备器(由 <a href="/reference/com/android/tradefed/targetprep/ITargetPreparer.html">ITargetPreparer</a> 或 <a href="/reference/com/android/tradefed/targetprep/ITargetCleaner.html">ITargetCleaner</a> 定义),并对其进行é…置以在您自己的测试模å—é…置中使用。</p>
+
+<p>测试模å—的测试模å—é…置是添加到顶级模å—æºæ–‡ä»¶å¤¹çš„必需 XML 文件,å为“AndroidTest.xmlâ€ã€‚该 XML 文件éµå¾ª Trade Federation 自动化测试框架使用的é…置文件的格å¼ã€‚ç›®å‰ï¼Œé€šè¿‡æµ‹è¯•æ¨¡å—é…置处ç†çš„主è¦æ ‡è®°æ˜¯â€œtarget_preparerâ€å’Œâ€œtestâ€æ ‡è®°ã€‚</p>
+
+<h2 id="target_preparers">目标准备器</h2>
+
+<p>顾åæ€ä¹‰ï¼Œâ€œtarget_preparerâ€æ ‡è®°ä¼šå®šä¹‰ç›®æ ‡å‡†å¤‡å™¨ï¼ˆè¯·å‚阅 <a href="/reference/com/android/tradefed/targetprep/ITargetPreparer.html">ITargetPreparer</a>),该目标准备器æ供了一ç§è®¾ç½®æ–¹æ³•ï¼Œåœ¨æ‰§è¡Œæµ‹è¯•æ¨¡å—以进行测试之å‰ä¼šè°ƒç”¨è¯¥æ–¹æ³•ï¼›å¦‚果“target_preparerâ€æ ‡è®°ä¸­å¼•ç”¨çš„类也实现 <a href="/reference/com/android/tradefed/targetprep/ITargetCleaner.html">ITargetCleaner</a>,则在测试模å—完æˆåŽå°†è°ƒç”¨å…¶æ‹†è§£æ–¹æ³•ã€‚</p>
+
+<p>è¦ä½¿ç”¨å†…置的通用模å—é…置,请在测试模å—的顶级文件夹中添加一个新文件“AndroidTest.xmlâ€ï¼Œå¹¶åœ¨è¯¥æ–‡ä»¶é‡Œå¡«å……以下内容:</p>
+<pre class="prettyprint lang-xml"><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!-- [insert standard AOSP copyright here] --&gt;
+&lt;configuration description="Test module config for Foo"&gt;
+&lt;!-- insert options here --&gt;
+&lt;/configuration&gt;
+</code></pre>
+<p>例如,我们å¯ä»¥æ·»åŠ ä»¥ä¸‹é€‰é¡¹æ ‡è®°ï¼ˆåœ¨ä¸Šé¢çš„“insertâ€æ³¨é‡Šå¤„):</p>
+<pre class="prettyprint lang-xml"><code> &lt;target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"&gt;
+ &lt;option name="run-command" value="settings put secure accessibility_enabled 1" /&gt;
+ &lt;option name="teardown-command" value="settings put secure accessibility_enabled 0" /&gt;
+ &lt;/target_preparer&gt;
+</code></pre>
+<p>这些选项会将自动化测试框架é…置为:</p>
+
+<ol>
+<li>在调用测试模å—之å‰ï¼Œåœ¨è®¾å¤‡ä¸Šæ‰§è¡Œ shell 命令“settings put secure accessibility_enabled 1â€</li>
+<li>在测试模å—完æˆä¹‹åŽï¼Œæ‰§è¡Œ shell 命令“settings put secure accessibility_enabled 0â€</li>
+</ol>
+
+<p>在此特定示例中,分别在测试模å—执行之å‰/之åŽå¯ç”¨/åœç”¨å¯è®¿é—®æ€§ã€‚通过一个简å•çš„示例演示,å¯ä»¥è¯¦ç»†ä»‹ç»å¦‚何使用“optionâ€æ ‡è®°ã€‚如上所示,该标记å¯ä»¥æœ‰ä¸¤ä¸ªå±žæ€§ï¼šå称和值。å称属性指示选项的å称,并进一步分解æˆç”±å†’å·åˆ†éš”的两部分:一部分是准备器的简称,å¦ä¸€éƒ¨åˆ†æ˜¯å‡†å¤‡å™¨æ供的实际选项å称。值字段的确切目的å–决于准备器如何定义选项:它å¯ä»¥æ˜¯å­—符串ã€æ•°å­—ã€å¸ƒå°”值,甚至是文件路径等等。在上é¢çš„示例中,å称“run-command:run-commandâ€è¡¨ç¤ºæˆ‘们正在为由简称为“run-commandâ€çš„目标准备器定义的选项“run-commandâ€è®¾ç½®å€¼ï¼›å称“run-command:teardown-commandâ€è¡¨ç¤ºæˆ‘们正在为也是由简称为“run-commandâ€çš„åŒä¸€ç›®æ ‡å‡†å¤‡å™¨å®šä¹‰çš„选项“teardown-commandâ€è®¾ç½®å€¼ã€‚下é¢æ€»ç»“了三个常è§çš„目标准备器:</p>
+
+<ul>
+<li><p>ç±»å:<a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/targetprep/PushFilePreparer.java">PushFilePreparer</a></p>
+
+<ul>
+<li><strong>简称</strong>:push-file</li>
+<li><strong>功能</strong>:将测试用例文件夹下的任æ„文件推é€åˆ°è®¾å¤‡ä¸Šçš„目标</li>
+<li><strong>注æ„</strong>:<ul>
+<li>此准备器å¯ä»¥ä»Žæ–‡ä»¶å¤¹æŽ¨é€åˆ°æ–‡ä»¶å¤¹ï¼Œæˆ–者从文件推é€åˆ°æ–‡ä»¶ï¼›ä¹Ÿå°±æ˜¯è¯´ï¼Œæ‚¨æ— æ³•å°†æ–‡ä»¶æŽ¨é€åˆ°è®¾å¤‡ä¸Šçš„文件夹下,您还必须指定该文件夹下的目标文件å</li>
+</ul></li>
+<li><strong>选项</strong>:<ul>
+<li><strong>push</strong>:一ç§æŽ¨é€è§„范,格å¼ä¸ºâ€œ<code>/path/to/srcfile.txt-&gt;/path/to/destfile.txt</code>â€æˆ–“<code>/path/to/srcfile.txt-&gt;/path/to/destdir/</code>â€ã€‚å¯ä»¥é‡å¤
+此路径å¯èƒ½ç›¸å¯¹äºŽæµ‹è¯•æ¨¡å—目录或输出目录本身。</li>
+<li>**post-push**:å°è¯•å®Œæ‰€æœ‰æŽ¨é€åŽåœ¨è®¾å¤‡ä¸Šè¿è¡Œçš„命令(使用 `<code>adb shell
+&lt;your command&gt;</code>`)。典型用例是使用 chmod 命令添加æƒé™</li>
+</ul></li>
+</ul></li>
+<li><p>ç±»å:<a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/targetprep/InstallApkSetup.java">InstallApkSetup</a></p>
+
+<ul>
+<li><strong>简称</strong>:install-apk</li>
+<li><strong>功能</strong>ï¼šå°†ä»»æ„ apk 文件推é€åˆ°è®¾å¤‡ä¸Šçš„目标</li>
+<li><strong>选项:</strong>
+<ul>
+<li><strong>test-file-name</strong>:è¦å®‰è£…到设备上的 apk çš„å称。</li>
+<li><strong>install-arg</strong>:è¦ä¼ é€’ç»™ pm install 命令的其他å‚数,包括å‰å¯¼çŸ­åˆ’线,例如“-dâ€ã€‚å¯ä»¥é‡å¤</li>
+</ul></li>
+</ul></li>
+<li><p>ç±»å:<a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/targetprep/RunCommandTargetPreparer.java">RunCommandTargetPreparer</a></p>
+
+<ul>
+<li><strong>简称</strong>:run-command</li>
+<li><strong>功能</strong>:在测试模å—执行之å‰æˆ–之åŽæ‰§è¡Œä»»æ„ shell 命令</li>
+<li><strong>选项:</strong>
+<ul>
+<li><strong>run-command</strong>:è¦è¿è¡Œçš„ adb shell 命令。å¯ä»¥é‡å¤</li>
+<li><strong>teardown-command</strong>:è¦åœ¨æ‹†è§£é˜¶æ®µè¿è¡Œçš„ adb shell 命令。å¯ä»¥é‡å¤</li>
+</ul></li>
+</ul></li>
+</ul>
+
+<h2 id="test_class">测试类</h2>
+
+<p>测试类是用于执行测试的 Trade Federation 类。</p>
+<pre class="prettyprint lang-xml"><code>&lt;test class="com.android.tradefed.testtype.AndroidJUnitTest"&gt;
+ &lt;option name="package" value="android.test.example.helloworld"/&gt;
+ &lt;option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/&gt;
+&lt;/test&gt;
+</code></pre>
+<p>下é¢æ˜¯ä¸‰ä¸ªå¸¸è§çš„测试类:</p>
+
+<ul>
+<li><p>ç±»å:<a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/testtype/GTest.java">GTest</a></p>
+
+<ul>
+<li><strong>简称</strong>:gtest</li>
+<li><strong>功能</strong>:在给定设备上è¿è¡ŒåŽŸç”Ÿæµ‹è¯•è½¯ä»¶åŒ…的测试。</li>
+<li><strong>选项:</strong>
+<ul>
+<li><strong>native-test-device-path</strong>:原生测试在设备上所在的路径。</li>
+</ul></li>
+</ul></li>
+<li><p>ç±»å:<a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/testtype/InstrumentationTest.java">InstrumentationTest</a></p>
+
+<ul>
+<li><strong>简称</strong>:instrumentation</li>
+<li><strong>功能</strong>:在给定设备上è¿è¡Œæ’桩测试软件包的测试</li>
+<li><strong>选项:</strong>
+<ul>
+<li><strong>package</strong>:è¦è¿è¡Œçš„ Android 测试应用的清å•è½¯ä»¶åŒ…å称。</li>
+<li><strong>class</strong>:è¦è¿è¡Œçš„测试类å称。</li>
+<li><strong>method</strong>:è¦è¿è¡Œçš„测试方法å称。</li>
+</ul></li>
+</ul></li>
+<li><p>ç±»å:<a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/src/com/android/tradefed/testtype/AndroidJUnitTest.java">AndroidJUnitTest</a></p>
+
+<ul>
+<li><strong>功能</strong>:使用 android.support.test.runner.AndroidJUnitRunner 在给定设备上è¿è¡Œæ’桩测试软件包的测试。这是执行æ’桩测试的主è¦æ–¹æ³•ã€‚</li>
+</ul></li>
+</ul>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/development/test-mapping.html b/zh-cn/compatibility/tests/development/test-mapping.html
new file mode 100644
index 00000000..e76cdaac
--- /dev/null
+++ b/zh-cn/compatibility/tests/development/test-mapping.html
@@ -0,0 +1,211 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="test_mapping" class="page-title">Test Mapping</h1>
+
+<p>本文简è¦ä»‹ç»äº† Test Mapping,并说明了如何在 Android å¼€æºé¡¹ç›® (AOSP) 中轻æ¾å¼€å§‹é…置测试。</p>
+
+<h2 id="what_is_test_mapping">什么是 Test Mapping?</h2>
+
+<p>Test Mapping 是一ç§åŸºäºŽ Gerrit 的方法,让开å‘者能够直接在 Android æºä»£ç æ ‘中创建æ交å‰è§„则和æ交åŽè§„则,并将è¦æµ‹è¯•çš„分支和设备的决策留给测试基础架构本身。Test Mapping 定义是å为 TEST_MAPPING çš„ JSON 文件,该文件å¯æ”¾ç½®åœ¨ä»»ä½•æºç›®å½•ä¸­ã€‚</p>
+
+<p><a href="atest">Atest</a> å¯ä»¥ä½¿ç”¨ TEST_MAPPING 文件在相关目录中è¿è¡Œæ交å‰æµ‹è¯•ã€‚借助 Test Mapping,您åªéœ€åœ¨ Android æºä»£ç æ ‘中进行简å•çš„更改,å³å¯å°†åŒä¸€ç»„测试添加到æ交å‰æ£€æŸ¥ã€‚</p>
+
+<p>请å‚阅以下示例:</p>
+
+<p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/pm/dex/TEST_MAPPING">针对 services.core å°†æ交å‰æµ‹è¯•æ·»åŠ åˆ° TEST_MAPPING</a></p>
+
+<p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/startop/iorap/TEST_MAPPING">针对 startop/iorap å°†æ交å‰æµ‹è¯•å’Œæ交åŽæµ‹è¯•æ·»åŠ åˆ° TEST_MAPPING</a></p>
+
+<h2 id="defining_test_groups">定义测试组</h2>
+
+<p>Test Mapping 组通过<strong>测试组</strong>进行测试。测试组的å称å¯ä»¥æ˜¯ä»»ä½•å­—符串。例如,presubmit å¯ç”¨äºŽåœ¨éªŒè¯æ›´æ”¹æ—¶è¿è¡Œçš„测试组。<em></em>postsubmit 测试å¯åœ¨æ›´æ”¹åˆå¹¶åŽç”¨äºŽéªŒè¯æž„建。<em></em></p>
+
+<h2 id="packaging_build_script_rules">打包构建脚本规则</h2>
+
+<p>为了让 <a href="/devices/tech/test_infra/tradefed">Trade Federation 自动化测试框架</a>针对指定构建è¿è¡Œ Test Mapping 的测试模å—,这些模å—必须针对 <a href="blueprints">Soong</a> å°† <strong>test_suite</strong>(或针对 Make å°† <strong>LOCAL_COMPATIBILITY_SUITE</strong>)设为以下两个套件之一:</p>
+
+<ul>
+<li><strong>device-tests</strong> - 针对特定设备 CPU 构建</li>
+<li><strong>general-tests</strong> - é’ˆå¯¹ä»»ä½•åº”ç”¨äºŒè¿›åˆ¶æŽ¥å£ (ABI) 构建</li>
+</ul>
+
+<p>如有疑问,请将 gtest 放入 device-test,并将 APK 测试放入 general-test。<em></em><em></em></p>
+
+<p>示例:</p>
+<pre class="prettyprint"><code>Android.bp: test_suites: ["device-tests"],
+Android.mk: LOCAL_COMPATIBILITY_SUITE := device-tests
+</code></pre>
+<h2 id="creating_test_mapping_files">创建 Test Mapping 文件</h2>
+
+<p>对于需è¦æµ‹è¯•è¦†ç›–的目录,åªéœ€æ·»åŠ ä¸Žä»¥ä¸‹ç¤ºä¾‹ç±»ä¼¼çš„ TEST_MAPPING JSON 文件å³å¯ã€‚这些规则å¯ä»¥ç¡®ä¿å½“此目录或其å­ç›®å½•ä¸­çš„任何文件被访问时,相应测试会在æ交å‰æ£€æŸ¥ä¸­è¿è¡Œã€‚</p>
+
+<h3 id="following_an_example">举个例å­</h3>
+
+<p>以下是一个示例 TEST_MAPPING 文件:</p>
+<pre class="prettyprint"><code>{
+ "presubmit": [
+ {
+ "name": "CtsWindowManagerDeviceTestCases",
+ "options": [
+ {
+ "include-annotation": "android.platform.test.annotations.RequiresDevice"
+ }
+ ]
+ }
+ ],
+ "postsubmit": [
+ {
+ "name": "CtsWindowManagerDeviceTestCases"
+ }
+ ],
+ "imports": [
+ {
+ "path": "frameworks/base/services/core/java/com/android/server/am"
+ }
+ ]
+}
+</code></pre>
+<h3 id="setting_attributes">设置属性</h3>
+
+<p>在上é¢çš„示例中,<code>presubmit</code> å’Œ <code>postsubmit</code> 分别是æ¯ä¸ª<strong>测试组</strong>çš„å称。请注æ„,<code>postsubmit</code> 的测试è¿è¡Œå°†è‡ªåŠ¨åŒ…å« <code>presubmit</code> 组中的所有测试。如需详细了解测试组,请å‚阅<a href="#defining_test_groups">定义测试组</a>。</p>
+
+<p><strong>测试模å—</strong>çš„<strong>å称</strong>或 <strong>Trade Federation 集æˆæµ‹è¯•å称</strong>(指å‘测试 XML 文件的资æºè·¯å¾„,例如 <a href="https://android.googlesource.com/platform/tools/tradefederation/contrib/+/master/res/config/uiautomator/uiautomator-demo.xml">uiautomator/uiautomator-demo</a>)å¯åœ¨ <code>name</code> 属性的值中设置。请注æ„,<strong>name</strong> 字段ä¸å¯ä½¿ç”¨ç±» <code>name</code> 或测试方法 <code>name</code>。è¦ç¼©å‡æ‰€è¿è¡Œçš„测试,您å¯ä»¥åœ¨æ­¤å¤„使用 <code>include-filter</code> 等选项请å‚阅(<a href="https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/pm/dex/TEST_MAPPING#7">include-filter</a> 使用示例)。</p>
+
+<p>借助 <code>imports</code> 属性,您å¯ä»¥åŒ…å«å…¶ä»– TEST_MAPPING 文件中的测试,而无需å¤åˆ¶ç›¸åº”内容。请注æ„,导入路径的父目录中的 TEST_MAPPING 文件也将包å«åœ¨å†…。</p>
+
+<p><code>options</code> 属性包å«å…¶ä»– TradeFed 命令行选项。在上é¢çš„示例中,åªæœ‰å¸¦æœ‰æ³¨é‡Š <code>Presubmit</code> 的测试æ‰ä¼šåœ¨æ交å‰æµ‹è¯•ä¸­è¿è¡Œï¼›æ‰€æœ‰æµ‹è¯•éƒ½ä¼šåœ¨æ交åŽæµ‹è¯•ä¸­è¿è¡Œã€‚</p>
+
+<p>è¦èŽ·å–指定测试å¯ç”¨é€‰é¡¹çš„完整列表,请è¿è¡Œä»¥ä¸‹å‘½ä»¤ï¼š</p>
+
+<pre>
+<code class="devsite-terminal">tradefed.sh run commandAndExit [test_module] --help</code>
+</pre>
+
+<p>如需详细了解å„选项的工作原ç†ï¼Œè¯·å‚阅 <a href="/devices/tech/test_infra/tradefed/fundamentals/options">TradeFed 选项处ç†</a>。</p>
+
+<h2 id="running_tests_with_atest">使用 Atest è¿è¡Œæµ‹è¯•</h2>
+
+<p>è¦åœ¨æœ¬åœ°æ‰§è¡Œæ交å‰æµ‹è¯•è§„则,请执行以下æ“作:</p>
+
+<ol>
+<li>è½¬åˆ°åŒ…å« TEST_MAPPING 文件的目录。</li>
+<li>è¿è¡Œä»¥ä¸‹å‘½ä»¤ï¼š</li>
+</ol>
+
+<pre>
+<code class="devsite-terminal">atest</code>
+</pre>
+
+<p>在当å‰ç›®å½•åŠå…¶çˆ¶ç›®å½•çš„ TEST_MAPPING 文件中é…置的所有æ交å‰æµ‹è¯•éƒ½ä¼šè¿è¡Œã€‚Atest 将针对æ交å‰æµ‹è¯•æ‰¾åˆ°ä¸¤ä¸ªæµ‹è¯•ï¼ˆA å’Œ B)并加以è¿è¡Œã€‚</p>
+
+<p>è¦è¿è¡Œå½“å‰å·¥ä½œç›®å½• (CWD) 和父目录中的 TEST_MAPPING 文件中的æ交å‰æµ‹è¯•ï¼Œè¿™æ˜¯æœ€ç®€å•çš„方法。Atest 会找到 CWD åŠå…¶æ‰€æœ‰çˆ¶ç›®å½•ä¸­çš„ TEST_MAPPING æ–‡ä»¶å¹¶ä½¿ç”¨è¿™äº›æ–‡ä»¶ï¼Œé™¤éž TEST_MAPPING 文件将 <code>inherit_parent</code> 设为 false。</p>
+
+<h3 id="structuring_source_code">构建æºä»£ç </h3>
+
+<p>以下示例显示了如何在æºä»£ç æ ‘中é…ç½® TEST_MAPPING 文件。</p>
+<pre class="prettyprint"><code>src
+├── project_1
+│ └── TEST_MAPPING
+├── project_2
+│ └── TEST_MAPPING
+└── TEST_MAPPING
+</code></pre>
+<p><code>src/TEST_MAPPING</code> 的内容:</p>
+<pre class="prettyprint"><code>{
+ "presubmit": [
+ {
+ "name": "A"
+ }
+ ]
+}
+</code></pre>
+<p><code>src/project_1/TEST_MAPPING</code> 的内容:</p>
+<pre class="prettyprint"><code>{
+ "presubmit": [
+ {
+ "name": "B"
+ }
+ ],
+ "postsubmit": [
+ {
+ "name": "C"
+ }
+ ],
+ "other_group": [
+ {
+ "name": "X"
+ }
+ ]}
+</code></pre>
+<p><code>src/project_2/TEST_MAPPING</code> 的内容:</p>
+<pre class="prettyprint"><code>{
+ "presubmit": [
+ {
+ "name": "D"
+ }
+ ],
+ "import": [
+ {
+ "path": "src/project_1"
+ }
+ ]}
+</code></pre>
+<h3 id="specifying_target_directories">指定目标目录</h3>
+
+<p>您å¯ä»¥æŒ‡å®šä¸€ä¸ªç›®æ ‡ç›®å½•ï¼Œä»¥ä¾¿åœ¨è¯¥ç›®å½•ä¸­è¿è¡Œ TEST_MAPPING 文件中的测试。以下命令å¯è¿è¡Œä¸¤ä¸ªæµ‹è¯•ï¼ˆAã€B)。</p>
+
+<pre>
+<code class="devsite-terminal">atest --test-mapping src/project_1</code>
+</pre>
+
+<h3 id="running_postsubmit_test_rules">è¿è¡Œæ交åŽæµ‹è¯•è§„则</h3>
+
+<p>您还å¯ä»¥ä½¿ç”¨æ­¤å‘½ä»¤è¿è¡Œåœ¨ <code>src_path</code>(默认为 CWD)åŠå…¶çˆ¶ç›®å½•ä¸­çš„ TEST_MAPPING 中定义的æ交åŽæµ‹è¯•è§„则:</p>
+
+<pre>
+<code class="devsite-terminal">atest [--test-mapping] [src_path]:postsubmit</code>
+</pre>
+
+<h3 id="identifying_test_groups">识别测试组</h3>
+
+<p>您å¯ä»¥åœ¨ Atest 命令中指定测试组。请注æ„,æ交å‰æµ‹è¯•ä¹Ÿæ˜¯æ交åŽæµ‹è¯•çš„一部分。以下命令å¯è¿è¡Œä¸Ž directory src/project_1 中的文件相关的所有<strong>æ交åŽ</strong>测试,å³ä¸‰ä¸ªæµ‹è¯•ï¼ˆAã€Bã€C)。</p>
+
+<p>或者,您也å¯ä»¥ä½¿ç”¨ <strong>:all</strong> æ¥è¿è¡Œæ‰€æœ‰æµ‹è¯•ï¼ˆæ— è®ºæµ‹è¯•å±žäºŽå“ªä¸ªç»„)。以下命令å¯è¿è¡Œå››ä¸ªæµ‹è¯•ï¼ˆAã€Bã€Cã€X):</p>
+
+<pre>
+<code class="devsite-terminal">atest --test-mapping src/project_1:all</code>
+</pre>
+
+<h3 id="including_subdirectories">包å«å­ç›®å½•</h3>
+
+<p>默认情况下,如果使用 Atest è¿è¡Œ TEST_MAPPING 中的测试,则系统仅è¿è¡Œåœ¨ CWD(或指定目录)åŠå…¶çˆ¶ç›®å½•ä¸­çš„ TEST_MAPPING 文件中é…置的æ交å‰æµ‹è¯•ã€‚如果您想è¿è¡Œå­ç›®å½•ä¸­çš„所有 TEST_MAPPING 文件中的测试,请使用选项 <code>--include-subdir</code> 强制 Atest 将这些测试一并包å«åœ¨å†…。</p>
+
+<pre>
+<code class="devsite-terminal">atest --include-subdir</code>
+</pre>
+
+<p>如果未使用 <code>--include-subdir</code> 选项,则 Atest 将仅è¿è¡Œæµ‹è¯• A。如果使用了 <code>--include-subdir</code> 选项,则 Atest å°†è¿è¡Œä¸¤ä¸ªæµ‹è¯•ï¼ˆAã€B)。</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/tests/index.html b/zh-cn/compatibility/tests/index.html
new file mode 100644
index 00000000..6844579a
--- /dev/null
+++ b/zh-cn/compatibility/tests/index.html
@@ -0,0 +1,144 @@
+<html devsite><head>
+
+ <meta name="book_path" value="/_book.yaml"/>
+
+ <meta name="project_path" value="/_project.yaml"/>
+</head>
+<body>
+
+<!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="android_platform_testing" class="page-title">Android å¹³å°æµ‹è¯•</h1>
+
+<p>本内容é¢å‘ Android å¹³å°å¼€å‘者。在了解如何在 Android å¹³å°ä¸Šè¿›è¡Œæµ‹è¯•ä¹‹å‰ï¼Œè¯·å‚阅 <a href="/devices/architecture">Android å¹³å°æž¶æž„</a>,大致了解相关的信æ¯ã€‚</p>
+
+<h2 id="whats_new">新增内容</h2>
+
+<h3 id="test_development_workflow">测试开å‘工作æµ</h3>
+
+<p><a href="/compatibility/tests/development">测试开å‘工作æµ</a>å°èŠ‚现在包å«ä»‹ç»æ€§æ料,其中包括所有主è¦æµ‹è¯•ç±»åž‹çš„端到端示例。</p>
+
+<h3 id="blueprints">Blueprint</h3>
+
+<p><a href="https://android.googlesource.com/platform/build/soong/">Soong 编译系统</a>在 Android 8.0 (Oreo) 中引入,在 Android Q 中实现了对 <code>android_test</code> 的支æŒï¼ŒçŽ°åœ¨å¯åœ¨ Android å¼€æºé¡¹ç›® (AOSP) master 分支中找到它。</p>
+
+<h3 id="atest">Atest</h3>
+
+<p><a href="https://android.googlesource.com/platform/tools/tradefederation/+/master/atest/README.md" class="external">Atest</a> 是一个命令行工具,用户å¯ä»¥ä½¿ç”¨è¿™ç§å·¥å…·åœ¨æœ¬åœ°ç¼–译ã€å®‰è£…并è¿è¡Œ Android 测试。建议采用此标准对您的功能进行åˆå§‹æµ‹è¯•ã€‚</p>
+
+<h2 id="what_and_how_to_test">测试什么以åŠå¦‚何测试</h2>
+
+<p>å¹³å°æµ‹è¯•é€šå¸¸ä¸Žä¸€ä¸ªæˆ–多个 Android 系统æœåŠ¡æˆ– HAL 层交互ã€æ‰§è¡Œå—测对象的功能,并断言测试结果的正确性。</p>
+
+<p>因此,平å°æµ‹è¯•å¯ä»¥ï¼š</p>
+
+<ol>
+<li>通过应用框架执行框架 API;执行的特定 API å¯èƒ½åŒ…括:<ul>
+<li>用于第三方应用的公共 API</li>
+<li>用于特æƒåº”用的éšè— API,也称为系统 API</li>
+<li>ç§æœ‰ API(@hide 或å—ä¿æŠ¤ï¼Œè½¯ä»¶åŒ…ç§æœ‰ï¼‰</li>
+</ul></li>
+<li>直接通过原始 binder/IPC 代ç†è°ƒç”¨ Android 系统æœåŠ¡</li>
+<li>通过低级 API 或 IPC 接å£ç›´æŽ¥ä¸Ž HAL 交互</li>
+</ol>
+
+<p>上é¢çš„类型 1 å’Œ 2 通常编写为<strong>æ’桩测试</strong>,而类型 3 通常使用 gtest 框架编写为<strong>原生测试</strong>。</p>
+
+<h2 id="instrumentation_tests_for_the_platform">å¹³å°çš„æ’桩测试</h2>
+
+<p>您å¯èƒ½å·²ç»é˜…读 <code>developer.android.com</code> 上的<a href="https://developer.android.com/studio/test/">测试应用</a>一文,ä¸è¿‡ï¼Œåœ¨å¹³å°æµ‹è¯•ä¸­ä½¿ç”¨æ’桩测试的方å¼å¯èƒ½ä»æœ‰ä¸€äº›å·®å¼‚。</p>
+
+<p>简言之,æ’桩测试æ供了一ç§é€šè¿‡ <code>am instrument</code> 命令å¯åŠ¨çš„特殊测试执行环境,其中目标应用进程会é‡å¯å¹¶ä½¿ç”¨åŸºæœ¬çš„应用上下文进行åˆå§‹åŒ–,并在应用进程虚拟机内å¯åŠ¨æ’桩线程。您的测试代ç åœ¨æ­¤æ’桩线程上开始执行,并附带一个 <code>Instrumentation</code> 实例,该实例å¯æ供对应用上下文和 API 的访问æƒé™ï¼Œä»¥æ“纵接å—测试的应用进程。</p>
+
+<p>关于æ’桩的一些关键概念:</p>
+
+<ul>
+<li>æ’桩必须在应用软件包中声明,并在应用软件包清å•çš„ <code>&lt;manifest&gt;</code> 标记下嵌套 <a href="https://developer.android.com/guide/topics/manifest/instrumentation-element.html"><code>&lt;instrumentation&gt;</code></a> 标记</li>
+<li>应用软件包清å•åœ¨æŠ€æœ¯ä¸Šå¯èƒ½åŒ…å«å¤šä¸ª <code>&lt;instrumentation&gt;</code> 标记,ä¸è¿‡å®ƒä¸å¸¸ä»¥è¿™ç§æ–¹å¼ä½¿ç”¨</li>
+<li>æ¯ä¸ª <code>&lt;instrumentation&gt;</code> 必须包å«ï¼š<ul>
+<li><code>android:name</code> 属性:它应该是测试应用中包å«çš„ <a href="https://developer.android.com/reference/android/app/Instrumentation.html"><code>Instrumentation</code></a> çš„å­ç±»çš„å称,通常是正在使用的测试è¿è¡Œå™¨ï¼Œä¾‹å¦‚ <code>android.support.test.runner.AndroidJUnitRunner</code></li>
+<li>必须定义 <code>android:targetPackage</code> 属性。其值应该设置为接å—测试的应用软件包</li>
+</ul></li>
+</ul>
+
+<p>对于平å°æµ‹è¯•ï¼Œé€šå¸¸æœ‰ä¸¤ç±»æ’桩测试:</p>
+
+<h3 id="instrumentation_tests_targeting_applications">针对应用的æ’桩测试</h3>
+
+<p>此类æ’桩测试与针对常规 Android 应用的测试没有什么ä¸åŒã€‚值得注æ„的是,包å«æ’桩的测试应用需è¦ä¸Žå…¶é’ˆå¯¹çš„应用使用相åŒçš„è¯ä¹¦è¿›è¡Œç­¾å。</p>
+
+<p>è¦äº†è§£è¯¦æƒ…,请å‚阅我们的<a href="/compatibility/tests/development/instr-app-e2e.md">端到端示例</a>。</p>
+
+<h3 id="instrumentation_tests_targeting_themselves">针对本身的æ’桩测试</h3>
+
+<p>如å‰æ‰€è¿°ï¼Œå½“å¯åŠ¨æ’桩时,会é‡å¯å…¶ç›®æ ‡è½¯ä»¶åŒ…,并且会注入和å¯åŠ¨æ’桩代ç ä»¥æ‰§è¡Œæµ‹è¯•ã€‚一ç§ä¾‹å¤–情况是,这里的目标软件包ä¸èƒ½æ˜¯ Android 应用框架本身,å³è½¯ä»¶åŒ… <code>android</code>,因为这样åšä¼šå¯¼è‡´å‡ºçŽ°ä¸€ç§çŸ›ç›¾æƒ…况:需è¦é‡å¯ Android 框架,而正是该框架支æŒç³»ç»ŸåŠŸèƒ½ï¼ŒåŒ…括æ’桩本身。</p>
+
+<p>è¿™æ„味ç€ï¼Œæ’桩测试无法将本身注入到 Android 框架(也称为系统æœåŠ¡å™¨ï¼‰ä»¥æ‰§è¡Œæµ‹è¯•ã€‚为了测试 Android 框架,测试代ç åªèƒ½è°ƒç”¨å…¬å…± API Surface,或者通过平å°æºä»£ç æ ‘中å¯ç”¨çš„ <a href="https://developer.android.com/guide/components/aidl.html">AIDL</a> 公开的 API Surface。对于此类测试,针对任何特定软件包都没有æ„义,因此,按照惯例会将此类æ’桩声明为针对其自己的测试应用软件包,如其自己的 <code>AndroidManifest.xml</code> 中的 <code>&lt;manifest&gt;</code> 标记所定义。</p>
+
+<p>æ ¹æ®è¦æ±‚,此类测试应用软件包还å¯ä»¥ï¼š</p>
+
+<ul>
+<li>æ†ç»‘测试所需的 Activity。</li>
+<li>与系统共享用户 ID。</li>
+<li>使用平å°å¯†é’¥è¿›è¡Œç­¾å。</li>
+<li>æ ¹æ®æ¡†æž¶æºä»£ç è€Œä¸æ˜¯å…¬å…± SDK 进行编译。</li>
+</ul>
+
+<p>此类æ’桩测试有时称为自æ’桩。下é¢æ˜¯é‡‡ç”¨å¹³å°æºä»£ç çš„此类æ’桩测试的一些示例:</p>
+<pre class="prettyprint"><code>frameworks/base/core/tests/coretests
+frameworks/base/services/tests/servicestests
+</code></pre>
+<p>è¦äº†è§£è¯¦æƒ…,请å‚阅我们的<a href="/compatibility/tests/development/instr-self-e2e.md">端到端示例</a>。</p>
+
+<h2 id="native_tests_for_the_platform">å¹³å°çš„原生测试</h2>
+
+<p>å¹³å°æµ‹è¯•çš„原生测试通常会访问较低级别的 HAL,或者针对å„ç§ç³»ç»ŸæœåŠ¡æ‰§è¡ŒåŽŸå§‹ IPC,因此测试方法通常与接å—测试的æœåŠ¡å¯†åˆ‡ç›¸å…³ï¼Œè¿™è¶…出了本文档的范畴。</p>
+
+<p>强烈建议使用 <a href="https://github.com/google/googletest">gtest</a> 框架编译原生测试,这是与æŒç»­æµ‹è¯•åŸºç¡€æž¶æž„集æˆçš„先决æ¡ä»¶ã€‚</p>
+
+<p>下é¢æ˜¯é‡‡ç”¨å¹³å°æºä»£ç çš„此类原生测试的一些示例:</p>
+<pre class="prettyprint"><code>frameworks/av/camera/tests
+frameworks/native/libs/gui/tests
+</code></pre>
+<p>è¦äº†è§£è¯¦æƒ…,请å‚阅我们的<a href="/compatibility/tests/development/native-func-e2e.md">端到端示例</a>。</p>
+
+<p>请熟悉以下工具,因为它们是在 Android 系统中进行测试所固有的工具。</p>
+
+<h2 id="compatibility_test_suite_cts">兼容性测试套件 (CTS)</h2>
+
+<p><a href="/compatibility/cts/">Android 兼容性测试套件</a>是一个包å«å„ç§ç±»åž‹çš„æµ‹è¯•çš„å¥—ä»¶ï¼Œç”¨äºŽç¡®ä¿ Android 框架实现在 OEM åˆä½œä¼™ä¼´ä»¥åŠå¹³å°ç‰ˆæœ¬ä¹‹é—´ä¿æŒå…¼å®¹æ€§ã€‚<strong>该套件还包括æ’桩测试和原生测试(也使用 gtest 框架)。</strong></p>
+
+<p>CTS 与平å°æµ‹è¯•å¹¶ä¸äº’斥,下é¢æ˜¯ä¸€äº›å¸¸è§„准则:</p>
+
+<ul>
+<li>如果测试断言框架 API 函数/行为的正确性,并且应该在 OEM åˆä½œä¼™ä¼´ä¹‹é—´å¼ºåˆ¶æ‰§è¡Œï¼Œé‚£ä¹ˆå®ƒåº”该在 CTS 中</li>
+<li>如果测试的æ„图是在平å°å¼€å‘周期内æ•æ‰å›žå½’,并且å¯èƒ½éœ€è¦ç‰¹è®¸æƒé™æ¥æ‰§è¡Œï¼Œè¿˜å¯èƒ½ä¾èµ–于实现细节(如 AOSP 中所å‘布),那么它åªèƒ½æ˜¯å¹³å°æµ‹è¯•</li>
+</ul>
+
+<h2 id="vendor_test_suite_vts">供应商测试套件 (VTS)</h2>
+
+<p><a href="/compatibility/vts/">供应商测试套件</a> (VTS) 会自动执行 HAL å’Œæ“作系统内核测试。è¦ä½¿ç”¨ VTS 测试 Android 原生系统实现,请设置一个测试环境,然åŽä½¿ç”¨ VTS 方案æ¥æµ‹è¯•ç›¸åº”è¡¥ä¸ç¨‹åºã€‚</p>
+
+<h2 id="trade_federation_testing_infrastructure">Trade Federation 测试基础架构</h2>
+
+<p><a href="/devices/tech/test_infra/tradefed/">Trade Federation</a>(简称 tradefed 或 TF)是一ç§è¿žç»­çš„测试框架,专门用于在 Android 设备上è¿è¡Œæµ‹è¯•ã€‚TF å¯ä»¥åœ¨æœ¬åœ°ã€åœ¨æ¡Œé¢è®¾å¤‡ä¸Šä»¥åŠåœ¨å¹³å°æ£€éªŒå¤„è¿è¡ŒåŠŸèƒ½æµ‹è¯•ã€‚è¦åœ¨ TF 中è¿è¡Œæµ‹è¯•ï¼Œæ‚¨å¿…须具备两个文件,一个是 Java 测试æºæ–‡ä»¶ï¼Œå¦ä¸€ä¸ªæ˜¯ XML é…置文件。有关示例,请å‚阅 <a href="https://android.googlesource.com/platform/tools/tradefederation/contrib/+/master/src/com/android/example/RebootTest.java" class="external">RebootTest.java</a> å’Œ <a href="https://android.googlesource.com/platform/tools/tradefederation/contrib/+/master/res/config/example/reboot.xml" class="external">reboot.xml</a>。</p>
+
+<h2 id="debugging">调试</h2>
+
+<p><a href="/devices/tech/debug/">调试</a>部分总结了开å‘å¹³å°çº§åŠŸèƒ½æ—¶ï¼Œå¯ç”¨äºŽè°ƒè¯•ã€è·Ÿè¸ªå’Œåˆ†æžåŽŸç”Ÿ Android å¹³å°ä»£ç çš„实用工具和相关命令。</p>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/vts/codelab-video.html b/zh-cn/compatibility/vts/codelab-video.html
new file mode 100644
index 00000000..a414a6d4
--- /dev/null
+++ b/zh-cn/compatibility/vts/codelab-video.html
@@ -0,0 +1,470 @@
+<html devsite><head>
+ <title>视频和代ç å®žéªŒå®¤æ•™ç¨‹</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+</head>
+
+<body>
+
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <p>供应商测试套件 (VTS) 代ç å®žéªŒå®¤å’Œè§†é¢‘教程æ供了有关在 Android {{ androidPVersionNumber }} åŠ Android 8.1 上è¿è¡Œå’Œå¼€å‘ VTS 与 CTS-on-GSI 的详细信æ¯ã€‚</p>
+
+ <h2>适用于 Android 9 的视频和代ç å®žéªŒå®¤</h2>
+
+ <table>
+ <tbody><tr>
+ <th>主题</th>
+
+ <th>细目</th>
+
+ <th>视频</th>
+
+ <th>代ç å®žéªŒå®¤/SAC</th>
+ </tr>
+
+ <tr>
+ <th>åºè¨€</th>
+
+ <td><strong>概述</strong>
+ </td>
+
+ <td>Android 供应商测试套件(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#0">简介</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">用户手册</th>
+
+ <td><strong>如何è¿è¡Œ VTS å’Œ CTS-on-GSI</strong>
+ </td>
+
+ <td>如何è¿è¡Œ VTS å’Œ CTS-on-GSI(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#1">构建并è¿è¡Œ VTS 测试计划</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>如何刷写 GSI</strong>
+ </td>
+
+ <td>如何刷写常规系统映åƒï¼ˆå³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#3">为设备准备 GSI 以执行 CTS-on-GSI 测试计划</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="3">供应商测试框架 (VTF)</th>
+
+ <td><strong>测试框架</strong>
+ </td>
+
+ <td>测试框架å˜æ›´ï¼ˆå³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://source.android.com/compatibility/vts/shell-commands">SAC 测试框架</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>测试时间优化</strong>
+ </td>
+
+ <td>测试时间优化(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td>--</td>
+ </tr>
+
+ <tr>
+ <td><strong>多设备测试</strong>
+ </td>
+
+ <td>多设备测试(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#12">编写多设备测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">基本测试开å‘</th>
+
+ <td><strong>VTS 测试</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=DVanlGPV0wA&amp;index=4&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">VTS 测试</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#2">编写 VTS 测试(入门)</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>测试模æ¿</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=O4LuIBzB2y8&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=8">测试模æ¿</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#3">选择模æ¿å¹¶ç¼–写自定义 VTS 测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="4">å¼€å‘和了解 HAL 测试</th>
+
+ <td><strong>æ¡ä»¶æµ‹è¯•</strong>
+ </td>
+
+ <td>æ¡ä»¶æµ‹è¯•ï¼ˆå³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td>--</td>
+ </tr>
+
+ <tr>
+ <td><strong>æœåŠ¡å称感知型测试</strong>
+ </td>
+
+ <td>æœåŠ¡å称感知型 HAL(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#5">选择模æ¿å¹¶ç¼–写自定义 VTS 测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>HAL 扩展测试</strong>
+ </td>
+
+ <td>HAL 扩展测试(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#6">编写 VTS HAL 扩展测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>框架å‘åŽå…¼å®¹æ€§</strong>
+ </td>
+
+ <td>Android 框架å‘åŽå…¼å®¹æ€§ï¼ˆå³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#7">编写 HAL 适é…器测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">其他接å£æµ‹è¯•</th>
+
+ <td><strong>内核测试</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=qWxNFhMM0Lc&amp;index=5&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">内核测试</a>
+ </td>
+
+ <td>--</td>
+ </tr>
+
+ <tr>
+ <td><strong>VNDK 测试</strong>
+ </td>
+
+ <td>--</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#9">维护 VNDK ABI 测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">éžåŠŸèƒ½æµ‹è¯•</th>
+
+ <td><strong>性能分æž</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=F41dHKYPoic&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=6">性能测试</a>
+ </td>
+
+ <td>
+ <a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#5">编写 VTS 性能分æžæµ‹è¯•</a>
+
+ <p><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#4">使用 VTS æµ‹é‡ VINTF 性能</a>
+ </p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>模糊测试</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=AkQcNb0Mf94&amp;index=10&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">HIDL å’Œ HAL 接å£æ¨¡ç³Šæµ‹è¯•</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#7">编写 VTS HIDL HAL 接å£æ¨¡ç³Šæµ‹è¯•</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="4">供应商测试基础架构 (VTI)</th>
+
+ <td><strong>代ç è¦†ç›–率</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=tJprsmiTn4g&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=9">VTS 中的覆盖率æ’桩和收集</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#6">使用 VTS 测é‡åŽŸç”Ÿä»£ç è¦†ç›–率</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>录制和é‡æ”¾æµ‹è¯•</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=pwbFCKaldNU&amp;index=11&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">录制和é‡æ”¾æµ‹è¯•</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#8">编写录制和é‡æ”¾æµ‹è¯•</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>端到端自动化</strong>
+ </td>
+
+ <td>自动测é‡åŸºç¡€æž¶æž„(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td>--</td>
+ </tr>
+
+ <tr>
+ <td><strong>ä¿¡æ¯ä¸­å¿ƒ</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=3VwSCYUv2Eo&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=3">æŒç»­é›†æˆä¿¡æ¯ä¸­å¿ƒ</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#10">构建 VTS ä¿¡æ¯ä¸­å¿ƒå’Œé€šçŸ¥æœåŠ¡</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">结语</th>
+
+ <td><strong>åˆä½œä¼™ä¼´å·¥ç¨‹</strong>
+ </td>
+
+ <td>Treble 支æŒæƒ…况(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td>--</td>
+ </tr>
+
+ <tr>
+ <td><strong>总结</strong>
+ </td>
+
+ <td>呼å贡献(å³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#14">报告问题</a>
+ </td>
+ </tr>
+ </tbody></table>
+
+ <h2>适用于 Android 8.1 的视频和代ç å®žéªŒå®¤</h2>
+
+ <table>
+ <tbody><tr>
+ <th>主题</th>
+
+ <th>细目</th>
+
+ <th>视频</th>
+
+ <th>代ç å®žéªŒå®¤/SAC</th>
+ </tr>
+
+ <tr>
+ <th>åºè¨€</th>
+
+ <td><strong>概述</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=7BX7oSHc7nk&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">Android 供应商测试套件 (VTS) 产å“</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#0">简介</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">用户手册</th>
+
+ <td><strong>如何è¿è¡Œ VTS å’Œ CTS-on-GSI</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=BOAxwX8khlg&amp;index=2&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">如何è¿è¡Œ VTS</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#1">构建并è¿è¡Œ VTS 测试计划</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>如何刷写 GSI</strong>
+ </td>
+
+ <td>如何刷写常规系统映åƒï¼ˆå³å°†æŽ¨å‡ºï¼‰</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts/#3">为设备准备 GSI 以执行 CTS-on-GSI 测试计划</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th>供应商测试框架 (VTF)</th>
+
+ <td><strong>测试框架</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=H6sgKtvyprA&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=7">VTS 测试框架</a>
+ </td>
+
+ <td><a href="https://source.android.com/compatibility/vts/shell-commands">SAC 测试框架</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">基本测试开å‘</th>
+
+ <td><strong>VTS 测试</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=DVanlGPV0wA&amp;index=4&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">VTS 测试</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#2">编写 VTS 测试(入门)</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>测试模æ¿</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=O4LuIBzB2y8&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=8">测试模æ¿</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#3">选择模æ¿å¹¶ç¼–写自定义 VTS 测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">其他接å£æµ‹è¯•</th>
+
+ <td><strong>内核测试</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=qWxNFhMM0Lc&amp;index=5&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">内核测试</a>
+ </td>
+
+ <td>--</td>
+ </tr>
+
+ <tr>
+ <td><strong>VNDK 测试</strong>
+ </td>
+
+ <td>--</td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#9">维护 VNDK ABI 测试</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="2">éžåŠŸèƒ½æµ‹è¯•</th>
+
+ <td><strong>性能分æž</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=F41dHKYPoic&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=6">性能测试</a>
+ </td>
+
+ <td>
+ <a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#5">编写 VTS 性能分æžæµ‹è¯•</a>
+
+ <p><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#4">使用 VTS æµ‹é‡ VINTF 性能</a>
+ </p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>模糊测试</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=AkQcNb0Mf94&amp;index=10&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">HIDL å’Œ HAL 接å£æ¨¡ç³Šæµ‹è¯•</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#7">编写 VTS HIDL HAL 接å£æ¨¡ç³Šæµ‹è¯•</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th rowspan="3">供应商测试基础架构 (VTI)</th>
+
+ <td><strong>代ç è¦†ç›–率</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=tJprsmiTn4g&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=9">VTS 中的覆盖率æ’桩和收集</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#6">使用 VTS 测é‡åŽŸç”Ÿä»£ç è¦†ç›–率</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>录制和é‡æ”¾æµ‹è¯•</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=pwbFCKaldNU&amp;index=11&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">录制和é‡æ”¾æµ‹è¯•</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#8">编写录制和é‡æ”¾æµ‹è¯•</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>ä¿¡æ¯ä¸­å¿ƒ</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=3VwSCYUv2Eo&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva&amp;index=3">æŒç»­é›†æˆä¿¡æ¯ä¸­å¿ƒ</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#10">构建 VTS ä¿¡æ¯ä¸­å¿ƒå’Œé€šçŸ¥æœåŠ¡</a>
+ </td>
+ </tr>
+
+ <tr>
+ <th>结语</th>
+ <td><strong>总结</strong>
+ </td>
+
+ <td><a href="https://www.youtube.com/watch?v=-ydHIqD8-o4&amp;index=12&amp;list=PLWz5rJ2EKKc9JOMtoWWMJHFHgvXDoThva">未æ¥è®¡åˆ’</a>
+ </td>
+
+ <td><a href="https://codelabs.developers.google.com/codelabs/android-vts-8/#11">报告问题</a>
+ </td>
+ </tr>
+ </tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/compatibility/vts/hal-testability.html b/zh-cn/compatibility/vts/hal-testability.html
index 3534caa9..8b0ee413 100644
--- a/zh-cn/compatibility/vts/hal-testability.html
+++ b/zh-cn/compatibility/vts/hal-testability.html
@@ -134,7 +134,7 @@ android.hardware.nfc@1.0::I*/* (/vendor/lib64/hw/)
<h2 id="vts-testability-checker">VTS å¯æµ‹è¯•æ€§æ£€æŸ¥å·¥å…·</h2>
<p><code><a href="https://android.googlesource.com/platform/test/vts/+/master/utils/native/testability_checker/?q=vts_testability&amp;g=0" class="external">
- vts_testibility_checker</a></code> 是与 VTS 打包在一起的二进制程åºï¼ŒVTS 测试框架会在è¿è¡Œæ—¶ä½¿ç”¨è¯¥å·¥å…·ç¡®å®šæŒ‡å®šçš„ HAL 测试是å¦å¯æµ‹è¯•ã€‚该工具基于 <code><a href="https://android.googlesource.com/platform/system/libvintf/+/master" class="external">libvintf</a></code> æ¥åŠ è½½å’Œè§£æžä¾›åº”商清å•æ–‡ä»¶ï¼Œå¹¶å®žçŽ°ä¸Šä¸€éƒ¨åˆ†ä¸­æ‰€è¿°çš„决策æµç¨‹ã€‚
+ vts_testibility_checker</a></code> 是与 VTS 打包在一起的二进制程åºï¼ŒVTS 测试框架会在è¿è¡Œæ—¶ä½¿ç”¨è¯¥å·¥å…·ç¡®å®šæŒ‡å®šçš„ HAL 测试是å¦å¯è¡Œã€‚该工具基于 <code><a href="https://android.googlesource.com/platform/system/libvintf/+/master" class="external">libvintf</a></code> æ¥åŠ è½½å’Œè§£æžä¾›åº”商清å•æ–‡ä»¶ï¼Œå¹¶å®žçŽ°ä¸Šä¸€éƒ¨åˆ†ä¸­æ‰€è¿°çš„决策æµç¨‹ã€‚
</p>
<p>è¦ä½¿ç”¨ <code>vts_testability_check</code>,请è¿è¡Œä»¥ä¸‹å‘½ä»¤ï¼š</p>
@@ -159,7 +159,7 @@ vts_testability_check -b &lt;bitness&gt; &lt;hal@version&gt;
<h2 id="determining-accessed-hals">确定会访问哪些 HAL</h2>
<p>
-è¦ç¡®å®š VTS 测试会访问哪些 HAL,请确ä¿æ¯ä¸ª HAL 测试都使用 <code><a href="https://android.googlesource.com/platform/test/vts/+/master/runners/target/vts_hal_hidl_target/VtsHalHidlTargetTestEnvBase.h" class="external">VtsHalHidlTargetTestEnvBase</a></code> 模æ¿æ³¨å†Œè¦åœ¨æµ‹è¯•ä¸­è®¿é—®çš„ HAL。接下æ¥ï¼ŒVTS 测试框架会在预处ç†æµ‹è¯•æ—¶æå–已注册的 HAL。</p>
+è¦ç¡®å®š VTS 测试会访问哪些 HAL,请确ä¿æ¯ä¸ª HAL 测试都使用 <code><a href="https://android.googlesource.com/platform/test/vts/+/master/runners/target/vts_hal_hidl_target/VtsHalHidlTargetTestEnvBase.h" class="external">VtsHalHidlTargetTestEnvBase</a></code> 模æ¿æ³¨å†Œåœ¨æµ‹è¯•ä¸­è®¿é—®çš„ HAL。接下æ¥ï¼ŒVTS 测试框架会在预处ç†æµ‹è¯•æ—¶æå–已注册的 HAL。</p>
<p>对于åˆè§„性测试,您还å¯ä»¥æ£€æŸ¥ <code>/system/etc/vintf/manifest.xml</code>。如果此文件中定义了 HAL,则 VTS 应测试该 HAL(对于系统æ供的 HAL æœåŠ¡ï¼ˆä¾‹å¦‚ <code>graphics.composer/vr</code>),HAL 在 <code>/system/manifest.xml</code> 中声明)。
</p>
diff --git a/zh-cn/compatibility/vts/index.html b/zh-cn/compatibility/vts/index.html
index 06e46c1d..33b02932 100644
--- a/zh-cn/compatibility/vts/index.html
+++ b/zh-cn/compatibility/vts/index.html
@@ -26,6 +26,7 @@ Android 供应商测试套件 (VTS) æ供了大é‡ç”¨äºŽè¿›è¡Œ Android 测试çš
</p>
<ul>
+ <li><a href="/compatibility/vts/codelab-video">Codelab 和视频教程</a>:介ç»äº†æœ‰å…³åœ¨ Android {{ androidPVersionNumber }} å’Œ Android 8.1 上è¿è¡Œå’Œå¼€å‘ VTS 与 CTS-on-GSI 的视频和 Codelab。</li>
<li><a href="/compatibility/vts/systems">使用 VTS 进行系统测试</a>:介ç»äº†å¦‚何使用 VTS 测试 Android 原生系统实现,如何设置测试环境,然åŽå¦‚何使用 VTS 方案测试补ä¸ç¨‹åºã€‚</li>
<li><strong>测试框架</strong>:详细介ç»äº†å¦‚何使用 VTS 测试框架,包括:<ul>
<li><a href="/compatibility/vts/shell-commands">设备 shell 命令</a>:介ç»äº†å¦‚何使用设备 shell 命令执行目标端测试二进制文件,如何获å–/设置属性ã€çŽ¯å¢ƒå˜é‡å’Œç³»ç»Ÿä¿¡æ¯ï¼Œä»¥åŠå¦‚何å¯åŠ¨/åœæ­¢ Android 框架。</li>
@@ -42,7 +43,7 @@ Android 供应商测试套件 (VTS) æ供了大é‡ç”¨äºŽè¿›è¡Œ Android 测试çš
<li><a href="/compatibility/vts/ui.html">ç•Œé¢</a>:一个统一的界é¢ï¼Œåˆ©ç”¨ Material Design 有效显示与测试结果ã€åˆ†æžå’Œè¦†ç›–率相关的信æ¯ã€‚</li>
</ul>
</li>
- <li><strong>实验室基础架构</strong>:介ç»äº†åœ¨æ­è½½ AOSP <a href="/setup/build/gsi">å¸¸è§„ç³»ç»Ÿæ˜ åƒ (GSI)</a> çš„åˆä½œä¼™ä¼´è®¾å¤‡ä¸Šè¿è¡Œ VTSã€CTS 或其他测试的<a href="/compatibility/vts/automated-test-infra">自动化测试基础架构</a>所采用的架构。需è¦<a href="/compatibility/vts/host-controller">主机控制器</a>。
+ <li><strong>实验室基础架构</strong>:介ç»äº†åœ¨æ­è½½ AOSP <a href="/compatibility/vts/automated-test-infra">å¸¸è§„ç³»ç»Ÿæ˜ åƒ (GSI)</a> çš„åˆä½œä¼™ä¼´è®¾å¤‡ä¸Šè¿è¡Œ VTSã€CTS 或其他测试的<a href="/setup/build/gsi">自动化测试基础架构</a>所采用的架构。需è¦<a href="/compatibility/vts/host-controller">主机控制器</a>。
</li>
<li><a href="/compatibility/vts/performance.html">binder å’Œ hwbinder 性能测试</a>:用于衡é‡åžåé‡å’Œå»¶è¿Ÿçš„工具。</li>
</ul>
diff --git a/zh-cn/devices/accessories/headset/usb-headset-spec.html b/zh-cn/devices/accessories/headset/usb-headset-spec.html
index b53e2df0..caf294f2 100644
--- a/zh-cn/devices/accessories/headset/usb-headset-spec.html
+++ b/zh-cn/devices/accessories/headset/usb-headset-spec.html
@@ -36,6 +36,16 @@ USB 耳机å¯ä»¥å®žçŽ°å¤šç§åŸºæœ¬åŠŸèƒ½å’Œé«˜çº§åŠŸèƒ½ã€‚本规范åªæ¶µç›–å¿…è
<li>用于控制音é‡ã€æ’­æ”¾å’Œé€šè¯çš„功能按钮</li>
</ul>
+<h2 id="terminal-types">USB 音频类终端类型</h2>
+<p>
+头戴å¼è€³æœºå’Œè€³æœºå¿…须报告这些 USB 音频类 (UAC) 终端类型:
+</p>
+
+<ul>
+ <li><strong>头戴å¼è€³æœº</strong>。低阻抗æ¢èƒ½å™¨ï¼Œ&lt; 100 欧,无麦克风:0x0302</li>
+ <li><strong>耳机</strong>。带麦克风的低阻抗æ¢èƒ½å™¨ï¼š0x0402</li>
+</ul>
+
<h2 id="control-function">控制功能</h2>
<p>耳机å¯ä»¥å¸¦æœ‰ä¸åŒæ•°é‡çš„按钮以控制特定功能(例如音é‡å’Œæ’­æ”¾/æš‚åœï¼‰ã€‚</p><p>
<table>
diff --git a/zh-cn/devices/architecture/dto/optimize.html b/zh-cn/devices/architecture/dto/optimize.html
index e6dbbf0b..0ae1fe52 100644
--- a/zh-cn/devices/architecture/dto/optimize.html
+++ b/zh-cn/devices/architecture/dto/optimize.html
@@ -81,8 +81,8 @@
<h2 id="libufdt">libufdt</h2>
<p>
- 虽然最新的 <code><a href="https://github.com/dgibson/dtc/tree/master/libfdt" class="external">libfdt</a></code> æ”¯æŒ DTO,但是我们建议您使用 <code>libufdt</code> æ¥å®žçŽ° DTP(AOSP æºä»£ç ä½äºŽ <code><a href="https://android.googlesource.com/platform/system/libufdt/+/refs/heads/master" class="external">platform/system/libufdt</a></code> 下)。
- <code>libufdt</code> 会从æ‰å¹³åŒ–设备树 (FDT) 编译真实的树结构(éžæ‰å¹³åŒ–设备树,简称“ufdtâ€ï¼‰ï¼Œä»Žè€Œæ”¹å–„两个 <code>.dtb</code> 文件(从 O(N2) 到 O(N),其中 N 是树中的节点数)的åˆå¹¶æ•ˆæžœã€‚<em></em>
+ 虽然最新的 <code><a href="https://github.com/dgibson/dtc/tree/master/libfdt" class="external">libfdt</a></code> æ”¯æŒ DTO,但是我们还是建议您使用 <code>libufdt</code> æ¥å®žçŽ° DTP(AOSP æºä»£ç ä½äºŽ <code><a href="https://android.googlesource.com/platform/system/libufdt/+/refs/heads/master" class="external">platform/system/libufdt</a></code> 下)。
+ <code>libufdt</code> 会从æ‰å¹³åŒ–设备树 (FDT) 编译真实的树结构(éžæ‰å¹³åŒ–设备树,简称“ufdtâ€<em></em>),从而改善两个 <code>.dtb</code> 文件(从 O(N2) 到 O(N),其中 N 是树中的节点数)的åˆå¹¶æ•ˆæžœã€‚
</p>
<h3 id="performance">性能测试</h3>
diff --git a/zh-cn/devices/architecture/kernel/modular-kernels.html b/zh-cn/devices/architecture/kernel/modular-kernels.html
index 46550038..88264815 100644
--- a/zh-cn/devices/architecture/kernel/modular-kernels.html
+++ b/zh-cn/devices/architecture/kernel/modular-kernels.html
@@ -47,7 +47,7 @@ CONFIG_MODVERSIONS=y
<p>内核模å—应尽å¯èƒ½æ”¯æŒå¸è½½å’Œé‡æ–°åŠ è½½ã€‚</p>
-<aside class="note"><strong>注æ„</strong>:<code>CONFIG_MODULE_SRCVERSION_ALL</code> 是å¯é€‰é¡¹ï¼Œä¸ä¼šè¿›è¡Œæµ‹è¯•ã€‚</aside>
+<aside class="note"><strong>注æ„</strong>:<code>CONFIG_MODULE_SRCVERSION_ALL</code> 是å¯é€‰é¡¹ï¼Œä¸ä¼šå¯¹å…¶è¿›è¡Œæµ‹è¯•ã€‚</aside>
<h3 id="module-signing">模å—ç­¾å</h3>
<p>(å¯é€‰ï¼‰ODM å¯ä»¥å¯ç”¨ä»¥ä¸‹å†…æ ¸é…置选项,以在其自己的内核é…置中å¯ç”¨æ¨¡å—ç­¾å:</p>
@@ -196,12 +196,9 @@ on early-init
<h3 id="early-mounting-partitions-vboot-1-0">æå‰è£…载分区 (VBoot 1.0)</h3>
<p>使用 VBoot 1.0 æå‰è£…载分区的è¦æ±‚包括:</p>
<ol>
-<li>设备节点路径必须在 <code>fstab</code> 和设备树æ¡ç›®ä¸­ä½¿ç”¨å…¶ by-name 符å·é“¾æŽ¥ã€‚<em></em>例如,确ä¿å¯¹åˆ†åŒºè¿›è¡Œå‘½å且设备节点为 <code>/dev/block/…./by-name/{system,vendor,odm}</code>,而ä¸æ˜¯ä½¿ç”¨ <code>/dev/block/mmcblk0pX</code> 指定分区。
+<li>设备节点路径必须在 <em>fstab</em> 和设备树æ¡ç›®ä¸­ä½¿ç”¨å…¶ by-name 符å·é“¾æŽ¥ã€‚<code>fstab</code>例如,确ä¿å¯¹åˆ†åŒºè¿›è¡Œå‘½å且设备节点为 <code>/dev/block/…./by-name/{system,vendor,odm}</code>,而ä¸æ˜¯ä½¿ç”¨ <code>/dev/block/mmcblk0pX</code> 指定分区。
</li>
-<li>在产å“的设备é…ç½®ä¸­ï¼ˆå³ <code>device/<em>oem</em>/<em>project</em>/device.mk</code> 中)为 <code>PRODUCT_{SYSTEM,VENDOR}_VERITY_PARTITION</code> å’Œ <code>CUSTOM_IMAGE_VERITY_BLOCK_DEVICE</code> 指定的路径必须与 <code>fstab</code>/设备树æ¡ç›®ä¸­ç›¸åº”å—设备节点指定的 by-name 相匹é…。<em></em>
-
-Ruby例如:
-<pre class="prettyprint">
+<li>在产å“的设备é…ç½®ä¸­ï¼ˆå³ <code>device/<em>oem</em>/<em>project</em>/device.mk</code> 中)为 <code>PRODUCT_{SYSTEM,VENDOR}_VERITY_PARTITION</code> å’Œ <code>CUSTOM_IMAGE_VERITY_BLOCK_DEVICE</code> 指定的路径必须与 <code>fstab</code>/设备树æ¡ç›®ä¸­ç›¸åº”å—设备节点指定的 by-name 相匹é…。<em></em>例如:<pre class="prettyprint">
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/…./by-name/system
PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/…./by-name/vendor
CUSTOM_IMAGE_VERITY_BLOCK_DEVICE := /dev/block/…./by-name/odm
diff --git a/zh-cn/devices/architecture/vintf/match-rules.html b/zh-cn/devices/architecture/vintf/match-rules.html
index 3f944f8e..22259b65 100644
--- a/zh-cn/devices/architecture/vintf/match-rules.html
+++ b/zh-cn/devices/architecture/vintf/match-rules.html
@@ -32,8 +32,8 @@
<p>HAL 匹é…规则å¯ä»¥è¯†åˆ«æ¸…å•æ–‡ä»¶ä¸­è¢«è§†ä¸ºå—相应兼容性矩阵的所有者支æŒçš„ <code>hal</code> 元素的版本。</p>
<ul>
<li>多个 <code>&lt;hal&gt;</code> 元素具有 <strong>AND</strong> 关系。</li>
-<li>åŒä¸€ <code>&lt;hal&gt;</code> 中的多个 <code>&lt;version&gt;</code> 元素具有 <strong>OR</strong> 关系。如果指定了两个或两个以上版本,则åªéœ€è¦å®žçŽ°å…¶ä¸­ä¸€ä¸ªç‰ˆæœ¬ï¼ˆè¯·å‚è§ä¸‹é¢çš„ DRM 示例)。</li>
-<li>åŒä¸€ <code>&lt;hal&gt;</code> 中的多个 <code>&lt;instance&gt;</code> å’Œ <code>&lt;regex-instance&gt;</code> 元素具有 <strong>AND</strong> 关系(请å‚è§ä¸‹é¢çš„ DRM 示例)。</li>
+<li>åŒä¸€ä¸ª <code>&lt;version&gt;</code> 中的多个 <code>&lt;hal&gt;</code> 元素具有 <strong>OR</strong> 关系。如果指定了两个或两个以上版本,则åªéœ€è¦å®žçŽ°å…¶ä¸­ä¸€ä¸ªç‰ˆæœ¬ï¼ˆè¯·å‚è§ä¸‹é¢çš„ DRM 示例)。</li>
+<li>åŒä¸€ä¸ª <code>&lt;instance&gt;</code> 中的多个 <code>&lt;regex-instance&gt;</code> å’Œ <code>&lt;hal&gt;</code> 元素具有 <strong>AND</strong> 关系(请å‚è§ä¸‹é¢çš„ DRM 示例)。</li>
</ul>
<h4><strong>示例</strong>:相机模å—çš„æˆåŠŸ HAL 匹é…</h4>
diff --git a/zh-cn/devices/architecture/vndk/linker-namespace.html b/zh-cn/devices/architecture/vndk/linker-namespace.html
index 3306c289..41d4585b 100644
--- a/zh-cn/devices/architecture/vndk/linker-namespace.html
+++ b/zh-cn/devices/architecture/vndk/linker-namespace.html
@@ -32,7 +32,7 @@
<p>å¦ä¸€æ–¹é¢ï¼Œé“¾æŽ¥å™¨å‘½å空间机制å¯æ供相应的çµæ´»æ€§ï¼Œä»Žè€Œå°†ç”±ä¸€ä¸ªé“¾æŽ¥å™¨å‘½å空间导出的æŸäº›å…±äº«åº“用于å¦ä¸€ä¸ªé“¾æŽ¥å™¨å‘½å空间。这些导出的共享库å¯èƒ½ä¼šæˆä¸ºå¯¹å…¶ä»–程åºå…¬å¼€çš„应用编程接å£ï¼ŒåŒæ—¶åœ¨å…¶é“¾æŽ¥å™¨å‘½å空间中éšè—实现细节。</p>
-<p>例如,<code>/system/lib[64]/libcutils.so</code> å’Œ <code>/system/lib[64]/vndk-sp-${VER}/libutils.so</code> 是两个共享库。这两个库å¯èƒ½æœ‰ä¸åŒçš„符å·ã€‚它们将加载到ä¸åŒçš„链接器命å空间中,以便框架模å—å¯ä»¥ä¾èµ–于 <code>/system/lib[64]/libcutils.so</code>,而 SP-HAL 共享库则å¯ä»¥ä¾èµ–于 <code>/system/lib[64]/vndk-sp-${VER}/libcutils.so</code>。</p>
+<p>例如,<code>/system/lib[64]/libcutils.so</code> å’Œ <code>/system/lib[64]/vndk-sp-${VER}/libcutils.so</code> 是两个共享库。这两个库å¯èƒ½æœ‰ä¸åŒçš„符å·ã€‚它们将加载到ä¸åŒçš„链接器命å空间中,以便框架模å—å¯ä»¥ä¾èµ–于 <code>/system/lib[64]/libcutils.so</code>,而 SP-HAL 共享库则å¯ä»¥ä¾èµ–于 <code>/system/lib[64]/vndk-sp-${VER}/libcutils.so</code>。</p>
<p>å¦ä¸€æ–¹é¢ï¼Œ<code>/system/lib[64]/libc.so</code> 是由一个链接器命å空间导出而åŽåˆè¢«å¯¼å…¥åˆ°è®¸å¤šé“¾æŽ¥å™¨å‘½å空间中的公共库。<code>/system/lib[64]/libc.so</code> çš„ä¾èµ–项(例如 <code>libnetd_client.so</code>)将被加载到 <code>/system/lib[64]/libc.so</code> 所在的命å空间中。其他命å空间将无法访问这些ä¾èµ–项。这ç§æœºåˆ¶ä¼šåœ¨æ供公共接å£çš„åŒæ—¶å°è£…实现细节。</p>
diff --git a/zh-cn/devices/bluetooth/asha.html b/zh-cn/devices/bluetooth/asha.html
index 8f22800c..9a157f52 100644
--- a/zh-cn/devices/bluetooth/asha.html
+++ b/zh-cn/devices/bluetooth/asha.html
@@ -65,7 +65,7 @@
<ul>
<li>
- 跟踪最近é…对的左å³å¤–围设备。这两个外围设备应被视为音频接收器。
+ 跟踪最近é…对的左å³å¤–围设备。
</li>
<li>
如果存在有效é…对,则å‡è®¾è¿™äº›å¤–围设备正在使用中。当连接中断时,中央设备应å°è¯•ä¸Žå·²é…对的设备建立连接或é‡æ–°å»ºç«‹è¿žæŽ¥ã€‚
@@ -86,22 +86,26 @@
<ul>
<li>
- 实现兼容的 BT 4.2 或更高版本的控制器</li>
+ 实现兼容的 BT 4.2 或更高版本的控制器。
+ </li>
+ <li>
+ 让中央设备支æŒè‡³å°‘ 2 个åŒæ­¥ LE 链路(包å«<a href="#audio-packet-format-and-timing">音频数æ®åŒ…æ ¼å¼å’Œæ—¶é—´è®¾ç½®</a>中所述的å‚数)。
+ </li>
<li>
- 支æŒè‡³å°‘ 2 个åŒæ­¥ LE 链路(包å«<a href="#audio-packet-format-and-timing">音频数æ®åŒ…æ ¼å¼å’Œæ—¶é—´è®¾ç½®</a>中所述的å‚数)。
+ 让外围设备支æŒè‡³å°‘ 1 个 LE 链路(包å«<a href="#audio-packet-format-and-timing">音频数æ®åŒ…æ ¼å¼å’Œæ—¶é—´è®¾ç½®</a>中所述的å‚数)。
</li>
<li>
拥有基于 LE 信用的æµæŽ§åˆ¶ [BT 第 3 å·ï¼ŒA 部分,第 10.1 节]。
- 设备应该在 CoC 上支æŒè‡³å°‘ 240 个字节的 MTU å’Œ MPS 大å°ï¼Œå¹¶ä¸”最多能够缓冲 8 个数æ®åŒ…。
+ 设备应该在 CoC 上支æŒè‡³å°‘ 241 个字节的 MTU å’Œ MPS 大å°ï¼Œå¹¶ä¸”最多能够缓冲 8 个数æ®åŒ…。
</li>
<li>
- 具有 LE æ•°æ®é•¿åº¦æ‰©å±• [BT 第 6 å·ï¼ŒB 部分,第 5.1.9 节],负载至少为 87 个字节。建议数æ®é•¿åº¦è‡³å°‘为 250 个字节。
+ 具有 LE æ•°æ®é•¿åº¦æ‰©å±• [BT 第 6 å·ï¼ŒB 部分,第 5.1.9 节],负载至少为 167 个字节。对于支æŒç¼–解ç å™¨ G.722 @ 24 kHz 的外围设备,此长度至少为 247 个字节。
</li>
<li>
è®©ä¸­å¤®è®¾å¤‡æ”¯æŒ HCI LE 连接更新命令,并éµå¾ªéžé›¶ minimum_CE_Length å‚数。
</li>
<li>
- 使用<a href="#audio-packet-format-and-timing">音频数æ®åŒ…æ ¼å¼å’Œæ—¶é—´è®¾ç½®</a>中的连接时间间隔和负载大å°ï¼Œä¿æŒä¸Žä¸¤ä¸ªä¸åŒå¤–围设备之间的两个 LE CoC 连接的数æ®åžåé‡ã€‚
+ 让中央设备使用<a href="#audio-packet-format-and-timing">音频数æ®åŒ…æ ¼å¼å’Œæ—¶é—´è®¾ç½®</a>中的连接时间间隔和负载大å°ï¼Œä¿æŒä¸Žä¸¤ä¸ªä¸åŒå¤–围设备之间的两个 LE CoC 连接的数æ®åžåé‡ã€‚
</li>
<li>
让外围设备将 <code>LL_LENGTH_REQ</code> 或 <code>LL_LENGTH_RSP</code> 帧中的 <code>MaxRxOctets</code> å’Œ <code>MaxRxTime</code> å‚数设置为这些规范所需的最å°å¿…需值。这样,中央设备å¯ä»¥åœ¨è®¡ç®—接收帧所需的时间长度时优化其时间调度程åºã€‚
@@ -109,7 +113,7 @@
</ul>
<p>
- 外围设备和中央设备å¯ä»¥å®žçŽ° BT 5 中指定的 2 Mbit PHY。中央设备应该åŒæ—¶åœ¨ 1 Mbit å’Œ 2 Mbit PHY 上支æŒé«˜è¾¾ 64 kbit/s 的音频链路,但å¯ä»¥é€‰æ‹©å°†å¯¹éœ€è¦é«˜äºŽ 64 kbit/s 的链路的支æŒé™åˆ¶ä¸º 2 Mbit PHY,以便改善与其他 2.4 GHz 设备的共存性。请勿使用 BLE 远程 PHY。
+ 外围设备和中央设备å¯ä»¥å®žçŽ° BT 5 中指定的 2M PHY。中央设备应该åŒæ—¶åœ¨ 1M å’Œ 2M PHY 上支æŒé«˜è¾¾ 64 kbit/s 的音频链路,但å¯ä»¥é€‰æ‹©å°†å¯¹éœ€è¦é«˜äºŽ 64 kbit/s 的链路的支æŒé™åˆ¶ä¸º 2M PHY,以便改善与其他 2.4 GHz 设备的共存性。请勿使用 BLE 远程 PHY。
</p>
<p>
@@ -160,7 +164,7 @@
</td>
</tr>
<tr>
- <td>LE_PSM</td>
+ <td>LE_PSM_OUT</td>
<td>读å–</td>
<td>
è¦ç”¨äºŽè¿žæŽ¥å£°é“çš„ PSM。将从动æ€èŒƒå›´ä¸­æŒ‘选 [BT 第 3 å·ï¼ŒA 部分,第 4.22 节]
@@ -194,7 +198,7 @@
<td><code>{00e4ca9e-ab14-41e4-8823-f9e70c7e91df}</code></td>
</tr>
<tr>
- <td>LE_PSM</td>
+ <td>LE_PSM_OUT</td>
<td><code>{2d410339-82b6-42aa-b34e-e2e01df8cc1a}</code></td>
</tr>
</tbody></table>
@@ -280,8 +284,7 @@
</tr>
<tr>
<td>0-1</td>
- <td>制造商的 ID。</td>
- </tr>
+ <td>制造商的 ID。这是 BTSIG 分é…çš„<a href="https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers">å…¬å¸æ ‡è¯†</a>。</td></tr>
<tr>
<td>2-7</td>
<td>
@@ -299,7 +302,7 @@
</tr>
<tr>
<td>0</td>
- <td>是å¦æ”¯æŒ LE CoC 音频æµå¼ä¼ è¾“(是/å¦ï¼‰ã€‚</td>
+ <td>是å¦æ”¯æŒ LE CoC 音频输出æµå¼ä¼ è¾“(是/å¦ï¼‰ã€‚</td>
</tr>
<tr>
<td>1-7</td>
@@ -388,7 +391,7 @@
<td>2 <code>«Stop»</code></td>
<td>æ— </td>
<td>
- 指示外围设备设备åœæ­¢å‘ˆçŽ°éŸ³é¢‘。若è¦å†æ¬¡å‘ˆçŽ°éŸ³é¢‘,应在这次åœæ­¢åŽå¯åŠ¨æ–°çš„音频设置åºåˆ—。外围设备å¯ä»¥æ ¹æ®æ­¤å‘½ä»¤è¯·æ±‚连接更新。
+ 指示外围设备设备åœæ­¢å‘ˆçŽ°éŸ³é¢‘。若è¦å†æ¬¡å‘ˆçŽ°éŸ³é¢‘,应在这次åœæ­¢åŽå¯åŠ¨æ–°çš„音频设置åºåˆ—。
</td>
</tr>
</tbody></table>
@@ -482,8 +485,7 @@
<ul>
<li>
- 音频帧应一律与连接时间间隔相匹é…。
- 例如,如果连接时间间隔为 15 毫秒且采样率为 1 kHzï¼Œåˆ™éŸ³é¢‘å¸§åº”åŒ…å« 240 个样本。
+ 音频帧应一律与连接时间间隔相匹é…。例如,如果连接时间间隔为 10 毫秒且采样率为 16 kHzï¼Œåˆ™éŸ³é¢‘å¸§åº”åŒ…å« 160 个样本。
</li>
<li>
无论帧时间或连接时间间隔为何,系统中的采样率都é™åˆ¶ä¸º 8kHz çš„å€æ•°ï¼Œä»¥ä¾¿å¸§ä¸­åŒ…å«çš„样本个数始终为整数。
@@ -513,7 +515,7 @@
<th>编解ç å™¨</th>
<th>比特率</th>
<th>连接时间间隔</th>
- <th>CE 长度 (1/2 Mbit)</th>
+ <th>CE 长度 (1M/2M PHY)</th>
<th>音频负载大å°</th>
</tr>
<tr>
@@ -555,15 +557,16 @@
</aside>
<p>
- 在å¯åŠ¨éŸ³é¢‘æµä¹‹å‰ï¼Œä¸­å¤®è®¾å¤‡ä¼šæŸ¥è¯¢å¤–围设备,并确立最高质é‡æ ‡å‡†çš„编解ç å™¨ã€‚接下æ¥ï¼ŒéŸ³é¢‘æµè®¾ç½®ä¼šæŒ‰é¡ºåºè¿›è¡Œä»¥ä¸‹æ“作:</p>
+ 在å¯åŠ¨éŸ³é¢‘æµä¹‹å‰ï¼Œä¸­å¤®è®¾å¤‡ä¼šæŸ¥è¯¢å¤–围设备,并确立通用的编解ç å™¨ã€‚接下æ¥ï¼ŒéŸ³é¢‘æµè®¾ç½®ä¼šæŒ‰é¡ºåºè¿›è¡Œä»¥ä¸‹æ“作:</p>
<ol>
- <li>è¯»å– PSM å’Œ PreparationDelay(å¯é€‰ï¼‰ã€‚</li>
+ <li>è¯»å– PSM ä»¥åŠ PreparationDelay å’Œ RenderDelay(å¯é€‰ï¼‰ã€‚这些值å¯ä»¥ç”±ä¸­å¤®è®¾å¤‡ç¼“存。
+ </li>
<li>
打开 CoC L2CAP é€šé“ - 外围设备最åˆåº”授予 8 个 Credit。
</li>
<li>
- å‘出连接更新命令以将链接切æ¢åˆ°æ‰€é€‰ç¼–解ç å™¨éœ€è¦çš„å‚数。
+ å‘出连接更新命令以将链接切æ¢åˆ°æ‰€é€‰ç¼–解ç å™¨éœ€è¦çš„å‚数。中央设备å¯ä»¥åœ¨ä¸Šä¸€æ­¥éª¤ä¸­çš„ CoCo 连接之å‰è¿›è¡Œæ­¤è¿žæŽ¥æ›´æ–°ã€‚
</li>
<li>
中央设备和外围设备主机等待更新完æˆäº‹ä»¶ã€‚
diff --git a/zh-cn/devices/bootloader/flashing-updating.html b/zh-cn/devices/bootloader/flashing-updating.html
index e1519a89..61aa0493 100644
--- a/zh-cn/devices/bootloader/flashing-updating.html
+++ b/zh-cn/devices/bootloader/flashing-updating.html
@@ -37,8 +37,8 @@
<li>引导加载程åºå‘½ä»¤è¡Œï¼šç”±å¼•å¯¼åŠ è½½ç¨‹åºç¡®å®šçš„一组é™æ€å’ŒåŠ¨æ€å‚æ•°</li>
<li>设备树:从 chosen/bootargs 节点</li>
<li><code>defconfig</code>:从 CONFIG_CMDLINE</li>
-<li><code>boot.img</code>:从命令行(有关å移和大å°ï¼Œè¯·å‚è§ <a href="https://android.googlesource.com/platform/system/core/+/master/mkbootimg/include/bootimg/bootimg.h" class="external"><code>system/core/mkbootimg/bootimg.h</code></a>)</li>
-<li>通过 PMIC(电æºç®¡ç†é›†æˆç”µè·¯ï¼‰ç¡®å®šçš„éµå¾ª <a href="/compatibility/cdd">Android 兼容性定义文档</a>的规范é‡æ–°å¯åŠ¨æˆ–关闭原因ã€å…¶ä»–硬件资æºå’Œé‡æ–°å¯åŠ¨é­”æ•°å‚æ•° (<code>LINUX_REBOOT_CMD_RESTART2</code>) 消æ¯ä¼ é€’,记录为:<code>androidboot.bootreason=&lt;reason&gt;</code></li>
+<li><code>boot.img</code>:从命令行(关于å移和大å°ï¼Œè¯·å‚è§ <a href="https://android.googlesource.com/platform/system/core/+/master/mkbootimg/include/bootimg/bootimg.h" class="external"><code>system/core/mkbootimg/bootimg.h</code></a>)</li>
+<li>通过 PMIC(电æºç®¡ç†é›†æˆç”µè·¯ï¼‰ã€å…¶ä»–硬件资æºå’Œé‡æ–°å¯åŠ¨é­”æ•°å‚æ•° (<code>LINUX_REBOOT_CMD_RESTART2</code>) 消æ¯ä¼ é€’确定且éµä»Ž <a href="/compatibility/cdd">Android 兼容性定义文档</a>的规范性é‡æ–°å¯åŠ¨æˆ–关闭原因,会记录为:<code>androidboot.bootreason=&lt;reason&gt;</code></li>
</ul>
<h2 id="booting-device-tree">å¯åŠ¨ï¼šè®¾å¤‡æ ‘/设备树å åŠ å±‚</h2>
@@ -63,7 +63,7 @@
如果使用标准 AOSP æ¢å¤æ˜ åƒï¼Œé‚£ä¹ˆåœ¨å¯åŠ¨è¿‡ç¨‹ä¸­ï¼Œå¼•å¯¼åŠ è½½ç¨‹åºåº”è¯¥è¯»å– misc åˆ†åŒºä¸Šçš„å‰ 32 个字节,如果相应的数æ®åŒ¹é…,它将å¯åŠ¨åˆ°æ¢å¤æ˜ åƒï¼šâ€œå¯åŠ¨-æ¢å¤â€ã€‚这样一æ¥ï¼Œå¯ä»¥ç»§ç»­æ‰§è¡Œä»»ä½•å¾…处ç†çš„æ¢å¤å·¥ä½œï¼ˆä¾‹å¦‚,应用 OTAã€æ‰§è¡Œæ•°æ®ç§»é™¤ç­‰ï¼‰ï¼Œç›´åˆ°æˆåŠŸå®Œæˆä¸ºæ­¢ã€‚
</p>
<p>
-è¦è¯¦ç»†äº†è§£åˆ·å†™è¿‡ç¨‹ä¸­æ¢å¤è¿›ç¨‹ä¸Žå¼•å¯¼åŠ è½½ç¨‹åºè¿›è¡Œé€šä¿¡æ—¶ç”¨åˆ°çš„å—内容,请å‚è§ <a href="https://android.googlesource.com/platform/bootable/recovery/+/master/bootloader_message/include/bootloader_message/bootloader_message.h#64" class="external"><code>bootable/recovery/bootloader_message/bootloader_message.h</code></a>。
+è¦è¯¦ç»†äº†è§£åˆ·å†™è¿‡ç¨‹ä¸­æ¢å¤è¿›ç¨‹ä¸Žå¼•å¯¼åŠ è½½ç¨‹åºè¿›è¡Œé€šä¿¡æ—¶ç”¨åˆ°çš„å—中的内容,请å‚è§ <a href="https://android.googlesource.com/platform/bootable/recovery/+/master/bootloader_message/include/bootloader_message/bootloader_message.h#64" class="external"><code>bootable/recovery/bootloader_message/bootloader_message.h</code></a>。
</p>
<h3 id="a-b-updates">A/B æ›´æ–°</h3>
<p>
@@ -71,7 +71,9 @@
<ul>
<li>所有通过 OTA 更新的分区都应å¯ä»¥åœ¨ä¸»ç³»ç»Ÿå¯åŠ¨æ—¶æ›´æ–°ï¼Œè€Œä¸æ˜¯é€šè¿‡æ¢å¤æ¥æ›´æ–°ã€‚
</li><li>对于 A/B 更新,更新程åºå°†æŸ¥è¯¢<a href="/reference/hidl/android/hardware/boot/1.0/IBootControl">å¯åŠ¨æŽ§ä»¶ HAL</a>,更新当å‰æœªä½¿ç”¨çš„å¯åŠ¨æ§½ä½ï¼Œé€šè¿‡ HAL 更改活动槽ä½ï¼Œå¹¶é‡æ–°å¯åŠ¨åˆ°æ›´æ–°åŽçš„æ“作系统。请å‚è§<a href="/devices/tech/ota/ab/ab_implement#bootcontrol" class="external">实现å¯åŠ¨æŽ§ä»¶ HAL</a>
-</li><li>æ‰€æœ‰æ”¯æŒ A/B 的分区都会在其å称åŽé¢é™„加一个åŽç¼€ã€‚æ­¤åŽç¼€å¯åŒºåˆ†å±žäºŽå¼•å¯¼åŠ è½½ç¨‹åºä¸­ç‰¹å®šæ§½ä½çš„分区。对于æ¯ä¸ªè¿™æ ·çš„分区,都有一个相应的å˜é‡ <code>has-slot:<partition base name></partition></code>,其值为“yesâ€</li><li>槽ä½æŒ‰å­—æ¯é¡ºåºå‘½å为 aã€bã€c 等,与åŽç¼€ä¸º _aã€_bã€_c 等的分区相对应。</li><li>引导加载程åºåº”通过以下æŸç§æ–¹å¼é€šçŸ¥æ“作系统å¯åŠ¨äº†å“ªä¸ªæ§½ä½ï¼š<ul>
+</li><li>æ‰€æœ‰æ”¯æŒ A/B 的分区都会在其å称åŽé¢é™„加一个åŽç¼€ã€‚æ­¤åŽç¼€å¯åŒºåˆ†å±žäºŽå¼•å¯¼åŠ è½½ç¨‹åºä¸­ç‰¹å®šæ’槽的分区。对于æ¯ä¸ªè¿™æ ·çš„分区,都有一个相应的å˜é‡ <code>has-slot:<partition base name></partition></code>,其值为“yesâ€
+</li><li>æ’槽按字æ¯é¡ºåºå‘½å为 aã€bã€c 等,与åŽç¼€ä¸º _aã€_bã€_c 等的分区相对应。
+</li><li>引导加载程åºåº”通过以下æŸç§æ–¹å¼é€šçŸ¥æ“作系统å¯åŠ¨äº†å“ªä¸ªæ§½ä½ï¼š<ul>
<li>DT 属性:<code>/firmware/android/slot_suffix</code>
或:
</li><li>命令行属性:<code>androidboot.slot_suffix</code>
diff --git a/zh-cn/devices/bootloader/partitions-images.html b/zh-cn/devices/bootloader/partitions-images.html
index 8b33252c..895768dd 100644
--- a/zh-cn/devices/bootloader/partitions-images.html
+++ b/zh-cn/devices/bootloader/partitions-images.html
@@ -31,7 +31,7 @@ Android 设备包å«è‹¥å¹²ä¸ªåˆ†åŒºï¼Œè¿™äº›åˆ†åŒºåœ¨å¯åŠ¨è¿‡ç¨‹ä¸­å‘挥ä¸åŒ
</li><li><strong>system</strong>:<code>system</code> 分区主è¦åŒ…å« Android 框架。
</li><li><strong>recovery</strong>:<code>recovery</code> 分区会存储在 OTA 过程中å¯åŠ¨çš„æ¢å¤æ˜ åƒã€‚å¦‚æžœè®¾å¤‡æ”¯æŒ <a href="/devices/tech/ota/ab/">A/B æ›´æ–°</a>,则æ¢å¤æ˜ åƒå¯ä»¥æ˜¯å¯åŠ¨æ˜ åƒä¸­åŒ…å«çš„ RAM ç£ç›˜ï¼Œè€Œä¸æ˜¯å•ç‹¬çš„映åƒã€‚
</li><li><strong>cache</strong>:<code>cache</code> 分区会存储临时数æ®ï¼Œå¦‚果设备使用 A/B 更新,则该分区是å¯é€‰çš„。cache 分区ä¸éœ€è¦å¯ä»Žå¼•å¯¼åŠ è½½ç¨‹åºå†™å…¥ï¼Œè€Œåªéœ€è¦å¯æ¸…空。大å°å–决于设备类型和 userdata 分区的å¯ç”¨ç©ºé—´ã€‚ç›®å‰ï¼Œ50MB 至 100MB 应该没问题。
-</li><li><strong>misc</strong>:<code>misc</code> 分区由æ¢å¤æ˜ åƒä½¿ç”¨ï¼Œå¤§å°ä¸º 4KB 或更大。
+</li><li><strong>misc</strong>:<code>misc</code> 分区由æ¢å¤æ˜ åƒä½¿ç”¨ï¼Œå­˜å‚¨ç©ºé—´ä¸º 4KB 或更大。
</li><li><strong>userdata</strong>:<code>userdata</code> 分区包å«ç”¨æˆ·å®‰è£…的应用和数æ®ï¼ŒåŒ…括自定义数æ®ã€‚
</li><li><strong>metadata</strong>:当设备已加密且存储空间为 16MB 或更大时,便会使用 <code>metadata</code> 分区。
</li><li><strong>vendor</strong>:<code>vendor</code> 分区包å«æ‰€æœ‰ä¸å¯åˆ†å‘ç»™ Android å¼€æºé¡¹ç›® (AOSP) 的二进制文件。如果没有专有信æ¯ï¼Œåˆ™å¯ä»¥çœç•¥æ­¤åˆ†åŒºã€‚
diff --git a/zh-cn/devices/bootloader/product-partitions.html b/zh-cn/devices/bootloader/product-partitions.html
index bb6d433b..09063df9 100644
--- a/zh-cn/devices/bootloader/product-partitions.html
+++ b/zh-cn/devices/bootloader/product-partitions.html
@@ -31,7 +31,7 @@
许多原始设备制造商 (OEM) 会自定义 AOSP 系统映åƒï¼Œä»¥å®žæ–½è‡ªå·±çš„功能并满足è¿è¥å•†çš„è¦æ±‚。ä¸è¿‡ï¼Œå¦‚果进行这类自定义,则无法针对多个软件 SKU 使用å•ä¸ªç³»ç»Ÿæ˜ åƒï¼Œå› ä¸ºæ˜ åƒå¿…é¡»å„ä¸ç›¸åŒï¼Œæ‰èƒ½æ”¯æŒä¸åŒçš„语言区域ã€è¿è¥å•†ç­‰ï¼›å¦‚果使用å•ç‹¬çš„ <code>/product</code> 分区æ¥åŒ…å«è‡ªå®šä¹‰é¡¹ï¼Œåˆ™å¯ä»¥æ— æ³•é’ˆå¯¹å¤šä¸ªè½¯ä»¶ SKU 使用å•ä¸ªç³»ç»Ÿæ˜ åƒï¼ˆ<code>/system</code> 分区会托管å¯åœ¨ä¼—多软件 SKU 之间共享的通用代ç ï¼‰ã€‚<code>/vendor</code> 分区会继续托管 SoC 专用æ¿çº§ (BSP) 代ç ï¼Œè¿™ç±»ä»£ç å¯ä»¥åŸºäºŽæŒ‡å®š SoC 在多å°è®¾å¤‡ä¹‹é—´å…±äº«ã€‚</p>
<p>
-使用å•ç‹¬çš„分区存在一些弊端,例如,难以管ç†ç£ç›˜ç©ºé—´ï¼ˆåº”该预留一定的空间满足未æ¥å¢žé•¿çš„空间需求),以åŠéš¾ä»¥åœ¨å„分区之间<a href="/devices/architecture/vndk/abi-stability">ç»´æŠ¤ç¨³å®šçš„åº”ç”¨äºŒè¿›åˆ¶æŽ¥å£ (ABI)</a>。在决定使用 <code>/product</code> 分区之å‰ï¼Œè¯·èŠ±äº›æ—¶é—´è€ƒè™‘一下您独特的 AOSP 实现和å¯è¡Œçš„缓解策略(例如,在<a href="/devices/tech/ota/">无线下载 (OTA) æ›´æ–°</a>期间对设备进行é‡æ–°åˆ†åŒºï¼Œè¿™ä¸æ˜¯ç”± Google 完æˆçš„,而是由æŸäº›åŽŸå§‹è®¾å¤‡åˆ¶é€ å•†(OEM) 完æˆçš„)。
+使用å•ç‹¬çš„分区存在一些弊端,例如,难以管ç†ç£ç›˜ç©ºé—´ï¼ˆåº”该预留一定的空间满足未æ¥å¢žé•¿çš„空间需求),以åŠéš¾ä»¥åœ¨å„分区之间<a href="/devices/architecture/vndk/abi-stability">ç»´æŠ¤ç¨³å®šçš„åº”ç”¨äºŒè¿›åˆ¶æŽ¥å£ (ABI)</a>。在决定使用 <code>/product</code> 分区之å‰ï¼Œè¯·èŠ±äº›æ—¶é—´è€ƒè™‘一下您独特的 AOSP 实现和å¯è¡Œçš„缓解策略(例如,在<a href="/devices/tech/ota/">无线下载 (OTA) æ›´æ–°</a>期间对设备进行é‡æ–°åˆ†åŒºï¼Œè¿™ä¸æ˜¯ç”± Google 完æˆçš„,而是由æŸäº›åŽŸå§‹è®¾å¤‡åˆ¶é€ å•† (OEM) 完æˆçš„)。
</p>
<h3 id="legacy-oem">æ—§å¼ /oem 与 /product</h3>
diff --git a/zh-cn/devices/bootloader/system-as-root.html b/zh-cn/devices/bootloader/system-as-root.html
index 20dd250d..6729e1da 100644
--- a/zh-cn/devices/bootloader/system-as-root.html
+++ b/zh-cn/devices/bootloader/system-as-root.html
@@ -94,7 +94,7 @@
<aside class="note"><strong>注æ„</strong>:如果设备使用的是 A/B 分区架构,则无需åšå‡ºä»»ä½•æ”¹åŠ¨ã€‚</aside>
- <p>与将 <code>/boot</code> 改编为 <a href="/devices/tech/ota/ab_implement#recovery">recovery</a> 分区的 A/B 设备ä¸åŒï¼Œ<strong>éž A/B 设备必须使 <code>/recovery</code> 分区å•ç‹¬å­˜åœ¨ï¼Œå› ä¸ºå®ƒä»¬æ²¡æœ‰åŽå¤‡æ’槽分区</strong>(例如,从 <code>boot_a</code> → <code>boot_b</code>ï¼‰ã€‚å¦‚æžœåœ¨éž A/B 设备上移除 <code>/recovery</code> 并使其与 A/B 架构类似,那么在 <code>/boot</code> 分区更新失败时,æ¢å¤æ¨¡å¼å¯èƒ½ä¼šé­åˆ°ç ´åã€‚å› æ­¤ï¼Œå¯¹äºŽéž A/B 设备æ¥è¯´ï¼Œ<code>/recovery</code> 分区<strong>å¿…é¡»</strong>作为å•ç‹¬çš„分区存在(ä¸åŒäºŽéž A/B 设备的 <code>/boot</code>),这æ„味ç€æ¢å¤æ˜ åƒå°†ç»§ç»­å»¶è¿Ÿæ›´æ–°ï¼ˆå³å¦‚åŒ <a href="/devices/tech/ota/nonab/#life-ota-update">pre-9</a> 设备中那样)。</p>
+ <p>与将 <code>/boot</code> 改编为 <a href="/devices/tech/ota/ab_implement#recovery">recovery</a> 分区的 A/B 设备ä¸åŒï¼Œ<strong>éž A/B 设备必须使 <code>/recovery</code> 分区å•ç‹¬å­˜åœ¨ï¼Œå› ä¸ºå®ƒä»¬æ²¡æœ‰åŽå¤‡æ’槽分区</strong>(例如,从 <code>boot_a</code> → <code>boot_b</code>ï¼‰ã€‚å¦‚æžœåœ¨éž A/B 设备上移除 <code>/recovery</code> 并使其与 A/B 架构类似,那么在 <code>/boot</code> 分区更新失败时,æ¢å¤æ¨¡å¼å¯èƒ½ä¼šé­åˆ°ç ´åã€‚å› æ­¤ï¼Œå¯¹äºŽéž A/B 设备æ¥è¯´ï¼Œ<code>/recovery</code> 分区<strong>å¿…é¡»</strong>作为å•ç‹¬çš„分区存在(ä¸åŒäºŽéž A/B 设备的 <code>/boot</code>),这æ„味ç€æ¢å¤æ˜ åƒå°†ç»§ç»­å»¶è¿Ÿæ›´æ–°ï¼ˆå³å¦‚åŒ <a href="/devices/tech/ota/nonab/#life-ota-update">Android 9 之å‰</a>的设备中那样)。</p>
<p>éž A/B 设备在使用 Android 9 å‰åŽçš„分区布局差异:</p>
@@ -212,7 +212,7 @@ system.img
<li><a href="https://android-review.googlesource.com/#/c/kernel/common/+/158491/" class="external">https://android-review.googlesource.com/#/c/kernel/common/+/158491/</a>
</li>
- <li><a href="https://android-review.googlesource.com/q/hashtag:avb-kernel-patch-4.4" class="external">内核 4.4 è¡¥ä¸ç¨‹åº</a>ã€<a href="https://android-review.googlesource.com/q/hashtag:avb-kernel-patch-4.9" class="external">内核 4.9 è¡¥ä¸ç¨‹åº</a>ç­‰<aside class="note"><strong>注æ„</strong>:您也å¯ä»¥åœ¨ <a href="https://android.googlesource.com/platform/external/avb/+/master/contrib/linux/" class="external">external/avb/contrib/linux/</a>{4.4,4.9,etc.}/* 上找到上述 AVB 专用内核补ä¸ç¨‹åºæ–‡ä»¶ã€‚
+ <li><a href="https://android-review.googlesource.com/q/hashtag:avb-kernel-patch-4.4" class="external">内核 4.4 è¡¥ä¸ç¨‹åº</a>ã€<a href="https://android-review.googlesource.com/q/hashtag:avb-kernel-patch-4.9" class="external">内核 4.9 è¡¥ä¸ç¨‹åº</a>ç­‰<aside class="note"><strong>注æ„</strong>:您也å¯ä»¥åœ¨ <a href="https://android.googlesource.com/platform/external/avb/+/master/contrib/linux/" class="external">external/avb/contrib/linux/</a> {4.4,4.9,etc.}/* 上找到上述 AVB 专用内核补ä¸ç¨‹åºæ–‡ä»¶ã€‚
</aside>
</li>
</ul>
diff --git a/zh-cn/devices/graphics/build-tests.html b/zh-cn/devices/graphics/build-tests.html
index 6c6a016f..936eaeca 100644
--- a/zh-cn/devices/graphics/build-tests.html
+++ b/zh-cn/devices/graphics/build-tests.html
@@ -58,7 +58,7 @@
<h2 id="creating_target_build_file">创建目标编译文件</h2>
-<p>针对新目标的 deqp 编译系统使用目标编译文件进行é…置。目标编译文件å¯å®šä¹‰å¹³å°æ”¯æŒå“ªäº›åŠŸèƒ½ä»¥åŠéœ€è¦å“ªäº›åº“或其他包å«è·¯å¾„。目标文件åéµå¾ª <code>targets/<var>NAME</var>/<var>NAME</var>.cmake</code> æ ¼å¼ï¼Œä¸”目标通过 <code>DEQP_TARGET</code> 编译å‚数进行选择。</p>
+<p>针对新目标的 deqp 编译系统使用目标编译文件进行é…置。目标编译文件å¯å®šä¹‰å¹³å°æ”¯æŒå“ªäº›åŠŸèƒ½ä»¥åŠéœ€è¦å“ªäº›åº“或其他包å«è·¯å¾„。目标文件åéµå¾ª <code>targets/<var>NAME</var>/<var>NAME</var>.cmake</code> æ ¼å¼ï¼Œä¸”使用 <code>DEQP_TARGET</code> 编译å‚数选择目标。</p>
<p>目标文件中的文件路径是相对于基本 <code>deqp</code> ç›®å½•ï¼ˆè€Œéž <code>targets/<var>NAME</var></code> 目录)的路径。目标编译文件å¯ä»¥è®¾ç½®ä»¥ä¸‹æ ‡å‡†å˜é‡ã€‚</p>
diff --git a/zh-cn/devices/graphics/run-tests.html b/zh-cn/devices/graphics/run-tests.html
index dd75284b..9bd0a29d 100644
--- a/zh-cn/devices/graphics/run-tests.html
+++ b/zh-cn/devices/graphics/run-tests.html
@@ -218,7 +218,7 @@ adb –d shell setprop log.tag.dEQP DEBUG
<h3 id="executing_tests_on_android_without_android_cts">在没有 Android CTS 的 Android 设备上执行测试</h3>
-<p>è¦æ‰‹åŠ¨å¯åŠ¨æµ‹è¯•æ‰§è¡Œ Activity,需构造一个目标为 <code>android.app.NativeActivity</code> çš„ Android Intent。这些 Activity å¯ä»¥åœ¨ <code>com.drawelements.deqp</code> 包中找到。在 Intent ä¸­ï¼Œå‘½ä»¤è¡Œå¿…é¡»ä»¥å« <code>"cmdLine"</code> 键的é¢å¤–字符串æ供。</p>
+<p>è¦æ‰‹åŠ¨å¯åŠ¨æµ‹è¯•æ‰§è¡Œ Activity,请构造一个目标为 <code>android.app.NativeActivity</code> çš„ Android Intent。这些 Activity å¯ä»¥åœ¨ <code>com.drawelements.deqp</code> 包中找到。在 Intent ä¸­ï¼Œå‘½ä»¤è¡Œå¿…é¡»ä»¥å« <code>"cmdLine"</code> 键的é¢å¤–字符串æ供。</p>
<p>测试日志会写入 <code>/sdcard/dEQP-log.qpa</code>。若测试è¿è¡Œæ— æ³•æ­£å¸¸å¯åŠ¨ï¼Œè¯·æŸ¥çœ‹è®¾å¤‡æ—¥å¿—,了解其他调试信æ¯ã€‚</p>
diff --git a/zh-cn/devices/graphics/tracing-win-transitions.html b/zh-cn/devices/graphics/tracing-win-transitions.html
new file mode 100644
index 00000000..9ebf8ee3
--- /dev/null
+++ b/zh-cn/devices/graphics/tracing-win-transitions.html
@@ -0,0 +1,120 @@
+<html devsite><head>
+ <title>跟踪窗å£è½¬æ¢</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <p>WinScope å¯å¸®åŠ©æ‚¨è·Ÿè¸ªçª—å£è½¬æ¢ï¼Œå¹¶æ供了用于在转æ¢æœŸé—´å’Œè½¬æ¢åŽè®°å½•å’Œåˆ†æžçª—å£ç®¡ç†å™¨çŠ¶æ€å’Œ Surface Flinger 状æ€çš„基础架构和工具。WinScope 将所有相关的系统æœåŠ¡çŠ¶æ€è®°å½•åœ¨ä¸€ä¸ªè·Ÿè¸ªæ–‡ä»¶ä¸­ï¼Œæ‚¨å¯ä»¥ä½¿ç”¨è¯¥æ–‡ä»¶é‡çŽ°å¹¶é€æ­¥æŸ¥çœ‹è½¬æ¢ã€‚
+
+ </p>
+
+ <h2 id="capture_trace">记录跟踪情况</h2>
+ <p>您å¯ä»¥åœ¨è¿è¡Œ userdebug 或 eng 版本的设备上通过快æ·è®¾ç½®æˆ– ADB 记录跟踪情况。
+ </p>
+
+ <h3 id="capture_trace_quick_settings">通过快æ·è®¾ç½®</h3>
+ <ol>
+ <li><a href="https://developer.android.com/studio/debug/dev-options#enable" class="external">å¯ç”¨å¼€å‘者选项</a></li>
+ <li>ä¾æ¬¡è½¬åˆ°<b>å¼€å‘者选项</b> -&gt; <b>å¿«æ·è®¾ç½®å¼€å‘者图å—</b></li>
+ <li>å¯ç”¨ Winscope 跟踪</li>
+ <li>打开快æ·è®¾ç½®</li>
+ <li>点按 <b>Winscope 跟踪</b>以å¯ç”¨è·Ÿè¸ª</li>
+ <li>在设备上执行窗å£è½¬æ¢</li>
+ <li>窗å£è½¬æ¢å®ŒæˆåŽï¼Œè¯·æ‰“开快æ·è®¾ç½®ï¼Œç„¶åŽç‚¹æŒ‰ <b>Winscope 跟踪</b>以åœç”¨è·Ÿè¸ª
+ </li>
+ </ol>
+ <p>跟踪记录会被写入 <code>/data/misc/wmtrace/wm_trace.pb</code> å’Œ <code>/data/misc/wmtrace/layers_trace.pb</code>,åŒæ—¶è¿˜ä¼šåŒ…å«åœ¨æ‰€æœ‰é”™è¯¯æŠ¥å‘Šä¸­ã€‚
+ </p>
+
+ <h3 id="capture_trace_quick_adb">通过 ADB</h3>
+ <h4 id="capture_trace_quick_adb_wm">窗å£ç®¡ç†å™¨è·Ÿè¸ªè®°å½•</h4>
+ <ol>
+ <li>å¯ç”¨è·Ÿè¸ª
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell cmd window tracing start</pre>
+ </li>
+ <li>åœç”¨è·Ÿè¸ª
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell cmd window tracing stop</pre>
+ </li>
+ <li>抓å–跟踪文件
+ <pre class="devsite-terminal devsite-click-to-copy">adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb</pre>
+ </li>
+ </ol>
+ <h4 id="capture_trace_quick_adb_sf">Surface Flinger 跟踪记录</h4>
+ <ol>
+ <li>å¯ç”¨è·Ÿè¸ª
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell su root service call SurfaceFlinger 1025 i32 1</pre>
+ </li>
+ <li>åœç”¨è·Ÿè¸ª
+ <pre class="devsite-terminal devsite-click-to-copy">adb shell su root service call SurfaceFlinger 1025 i32 0</pre>
+ </li>
+ <li>抓å–跟踪文件
+ <pre class="devsite-terminal devsite-click-to-copy">adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb</pre>
+ </li>
+ </ol>
+
+ <h3 id="capture_trace_gen_state">生æˆçŠ¶æ€è½¬å‚¨æ–‡ä»¶</h3>
+ <p></p><p>WinScope å¯ä»¥ä»Žé”™è¯¯æŠ¥å‘Šè¯»å–窗å£ç®¡ç†å™¨å’Œ Surface Flinger 当å‰çŠ¶æ€çš„快照。错误报告将状æ€ä¿¡æ¯ä»¥å•ç‹¬çš„ Proto 文件的形å¼å­˜å‚¨åœ¨ <code>proto</code> 文件夹中。è¦ä½¿ç”¨ ADB 生æˆçŠ¶æ€è½¬å‚¨æ–‡ä»¶ï¼Œè¯·è¿è¡Œä»¥ä¸‹å‘½ä»¤ã€‚</p>
+ <h4 id="window_manager_dump">窗å£ç®¡ç†å™¨</h4>
+ <pre class="devsite-terminal devsite-click-to-copy">adb exec-out dumpsys window --proto &gt; window_dump.pb</pre>
+ <h4 id="surface_flinger_dump">Surface Flinger</h4>
+ <pre class="devsite-terminal devsite-click-to-copy">adb exec-out dumpsys SurfaceFlinger --proto &gt; sf_dump.pb</pre>
+ <p></p>
+
+ <h2 id="analyze_traces">分æžè·Ÿè¸ªè®°å½•</h2>
+ <p>è¦åˆ†æžè·Ÿè¸ªæ–‡ä»¶ï¼Œè¯·ä½¿ç”¨ WinScope 网络应用。您å¯ä»¥åœ¨æºä»£ç çš„基础上编译此应用,也å¯ä»¥ä»Žé¢„编译目录中打开此应用。
+ </p>
+ <ol>
+ <li>从 Android æºä»£ç ä»£ç åº“中下载预编译的软件工件
+ <pre class="devsite-terminal devsite-click-to-copy">curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d &gt; winscope.html</pre>
+ </li>
+ <li>在网络æµè§ˆå™¨æ‰“开已下载的软件工件</li>
+ <li>打开 WinScope åŽï¼Œç‚¹å‡»<b>打开文件</b>以加载跟踪文件</li>
+ </ol>
+
+ <h3 id="using_winscope">使用 WinScope</h3>
+ <p>在 WinScope 中打开跟踪文件åŽï¼Œæ‚¨ä¾¿å¯ä»¥é€šè¿‡å¤šç§æ–¹å¼å¯¹è¯¥æ–‡ä»¶è¿›è¡Œåˆ†æžã€‚</p>
+ <img src="images/winscope_screenshot.png" alt="WinScope å±å¹•æˆªå›¾"/>
+ <p><em>时间轴</em></p>
+ <p>您å¯ä»¥ä½¿ç”¨ç®­å¤´é”®æˆ–点击å„个æ¡ç›®ä»¥æµè§ˆæ—¶é—´è½´ã€‚</p>
+ <p><em>å±å¹•</em></p>
+ <p>您å¯ä»¥åœ¨å±å¹•ä¸Šç›´è§‚地查看æ¯ä¸ªå¯è§çª—å£ã€‚点击å±å¹•ä¸Šçš„æŸä¸ªçª—å£å³å¯é€‰æ‹©å±‚次结构中相应的æºçª—å£ã€‚</p>
+ <p><em>层次结构</em></p>
+ <p>您å¯ä»¥é€šè¿‡å±‚次结构查看系统已知的æ¯ä¸ªçª—å£ã€‚有些窗å£ä¸åŒ…å«ç¼“冲区,它们存在的目的在于为其å­é¡¹è®¾ç½®æ”¿ç­–。å¯è§çª—å£å‡æ ‡æœ‰ <code>V</code> 图标。
+ </p>
+ <p><em>属性</em></p>
+ <p>您å¯ä»¥åœ¨å±žæ€§ä¸­æŸ¥çœ‹åœ¨å±‚次结构中所选æ¡ç›®çš„状æ€ä¿¡æ¯ã€‚</p>
+
+ <h2 id="winscope_dev">å¼€å‘ WinScope</h2>
+ <p>
+ 您å¯ç”¨è·Ÿè¸ªåŽï¼Œçª—å£ç®¡ç†å™¨å’Œ Surface Flinger 会记录æ¯ä¸ªå…´è¶£ç‚¹çš„当å‰çŠ¶æ€ï¼Œå¹¶å°†çŠ¶æ€ä¿¡æ¯ä¿å­˜åœ¨æ–‡ä»¶ä¸­ã€‚<code>frameworks/base/core/proto/android/server/windowmanagertrace.proto</code> å’Œ <code>frameworks/native/services/surfaceflinger/layerproto/layerstrace.proto</code> 包å«å…¶å†…部状æ€çš„ Proto 定义。
+ </p>
+ <h3 id="winscope_dev_checkout">检查代ç å’Œè®¾ç½®çŽ¯å¢ƒ</h3>
+ <ol>
+ <li>安装 <a href="https://yarnpkg.com" class="external">Yarn</a>(一个 JS 软件包管ç†å™¨ï¼‰</li>
+ <li><a href="/setup/build/downloading.html">下载 Android æºä»£ç </a></li>
+ <li>å‰å¾€ <code>development/tools/winscope</code></li>
+ <li>è¿è¡Œ<pre class="devsite-terminal devsite-click-to-copy">yarn install</pre></li>
+ </ol>
+ <h3 id="winscope_dev_build">编译和测试更改</h3>
+ <ol>
+ <li>å‰å¾€ <code>development/tools/winscope</code></li>
+ <li>è¿è¡Œ<pre class="devsite-terminal devsite-click-to-copy">yarn run dev</pre></li>
+ </ol>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/media/oem.html b/zh-cn/devices/media/oem.html
index 6038f5ad..108f13cb 100644
--- a/zh-cn/devices/media/oem.html
+++ b/zh-cn/devices/media/oem.html
@@ -98,7 +98,7 @@ following codecs' concurrent instances limit in /etc/media_codecs.xml:
<li>首先使用 cts-tradefed è¿è¡Œæµ‹è¯•ã€‚鉴于 Android 性能的波动性,建议多次è¿è¡Œæµ‹è¯•ä»¥èŽ·å¾—更准确的最å°å€¼å’Œæœ€å¤§å€¼ã€‚
</li><li>使用æ供的 <a href="https://android.googlesource.com/platform/cts/+/master/tools/cts-media/get_achievable_rates.py">get_achievable_rates.py</a> è„šæœ¬ç”Ÿæˆ XML 文件。
</li><li>å°† XML 文件放置在以下ä½ç½®ï¼š<code>/etc/media_codecs_performance.xml</code><br />
-<em></em><em></em>为了完æˆæ­¤è¿‡ç¨‹ï¼Œæ‚¨é€šå¸¸éœ€è¦å°† XML 文件放置在设备项目 (device/&lt;vendor&gt;/&lt;product&gt;) 中,并将 <code>PRODUCT_COPY_FILES</code> 行添加到 <code>device.mk</code> 中,如下所示:
+<em></em><em></em>为了完æˆæ­¤è¿‡ç¨‹ï¼Œæ‚¨é€šå¸¸éœ€è¦å°† XML 文件放置在设备项目(device/&lt;供应商&gt;/&lt;产å“&gt;)中,并将 <code>PRODUCT_COPY_FILES</code> 行添加到 <code>device.mk</code> 中,如下所示:
<pre class="devsite-click-to-copy">
PRODUCT_COPY_FILES += \
...
diff --git a/zh-cn/devices/sensors/batching.html b/zh-cn/devices/sensors/batching.html
index b5a3a6c5..c9915ced 100644
--- a/zh-cn/devices/sensors/batching.html
+++ b/zh-cn/devices/sensors/batching.html
@@ -68,7 +68,7 @@
在挂起模å¼ä¸‹ï¼Œ<code>max_report_latency</code> 对éžå”¤é†’ FIFO 没有影å“。</p>
<p>当唤醒 FIFO 存满时,或者当其中一个唤醒传感器的 <code>max_report_latency</code> 已过时,硬件必须唤醒 SoC 并报告数æ®ã€‚</p>
<p>在这两ç§æƒ…况下(唤醒和éžå”¤é†’),åªè¦ SoC 退出挂起模å¼ï¼Œå³ä½¿ä¸€äº›ä¼ æ„Ÿå™¨çš„ <code>max_report_latency</code> 未过,也会产生一个包å«æ‰€æœ‰ FIFO 内容的批处ç†ã€‚这样å¯æœ€å¤§é™åº¦åœ°é™ä½Ž SoC å†æ¬¡æŒ‚起而必须é‡æ–°å°†å…¶å”¤é†’的风险。这进而å¯ä»¥æœ€å¤§é™åº¦åœ°é™ä½ŽåŠŸè€—。</p>
-<p>*ä¸å…许驱动程åºæŒæœ‰å”¤é†’é”定的一个明显例外情况是,在 <code>max_report_latency</code> å°äºŽ 1 秒的情况下å¯ç”¨å¸¦<a href="report-modes.html#continuous">连续报告模å¼</a>的唤醒传感器。在此情况下,驱动程åºå¯ä»¥æŒæœ‰å”¤é†’é”,这是因为 SoC 在进入挂起模å¼å‰ä¼šè¢«å”¤é†’事件唤醒,因此没有机会进入挂起模å¼ã€‚</p>
+<p>*ä¸å…许驱动程åºå°†å”¤é†’é”定暂åœçš„一个明显例外情况是,在 <code>max_report_latency</code> å°äºŽ 1 秒的情况下å¯ç”¨å¤„于<a href="report-modes.html#continuous">连续报告模å¼</a>的唤醒传感器。在此情况下,驱动程åºå¯ä»¥æŒæœ‰å”¤é†’é”,这是因为 SoC 在进入挂起模å¼å‰ä¼šè¢«å”¤é†’事件唤醒,因此没有机会进入挂起模å¼ã€‚</p>
<h2 id="precautions_to_take_when_batching_wake-up_sensors">批处ç†å”¤é†’传感器时的注æ„事项</h2>
<p>æ ¹æ®è®¾å¤‡ä¸åŒï¼ŒSoC å¯èƒ½éœ€è¦å‡ æ¯«ç§’æ‰èƒ½å®Œå…¨é€€å‡ºæŒ‚起模å¼å¹¶å¼€å§‹åˆ·æ–° FIFO。因此必须在 FIFO 中分é…足够的头空间,æ‰èƒ½è®©è®¾å¤‡å®Œå…¨é€€å‡ºæŒ‚起状æ€ï¼Œè€Œä¸é€ æˆå”¤é†’ FIFO 溢出。ä¸å¾—丢失任何事件,并且必须éµç…§ <code>max_report_latency</code>。</p>
<h2 id="precautions_to_take_when_batching_non-wake-up_on-change_sensors">批处ç†é‡‡ç”¨ On-change 触å‘æ–¹å¼çš„éžå”¤é†’传感器时的注æ„事项</h2>
@@ -123,6 +123,6 @@
<h3 id="medium-low_value_continuous_full-sensors_collection">中低值:连续全传感器采集</h3>
<p>目标批处ç†æ—¶é—´ï¼š1 到 10 分钟</p>
<p>待批处ç†çš„传感器:所有唤醒传感器(在高频下è¿è¡Œï¼‰</p>
-<p>å…许在 SoC 处于挂起模å¼çš„情况下,完整收集传感器数æ®ã€‚åªéœ€è€ƒè™‘ FIFO 空间是å¦æž„æˆé—®é¢˜ã€‚</p>
+<p>å…许在 SoC 处于挂起模å¼çš„情况下,完整收集传感器数æ®ã€‚仅当 FIFO 空间ä¸æž„æˆé—®é¢˜æ—¶ï¼Œæ‰ä¼šè€ƒè™‘è¿™ç§æ–¹å¼ã€‚</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/sensors/power-use.html b/zh-cn/devices/sensors/power-use.html
index a4e97dc5..e7b8a022 100644
--- a/zh-cn/devices/sensors/power-use.html
+++ b/zh-cn/devices/sensors/power-use.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>功耗</title>
+ <title>耗电é‡</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
diff --git a/zh-cn/devices/sensors/sensor-stack.html b/zh-cn/devices/sensors/sensor-stack.html
index a20448fc..9acbac27 100644
--- a/zh-cn/devices/sensors/sensor-stack.html
+++ b/zh-cn/devices/sensors/sensor-stack.html
@@ -25,7 +25,7 @@
<p class="img-caption"><strong>图 1. </strong> Android 传感器堆栈层级以åŠå„自的所有者</p>
<h2 id="sdk">SDK</h2>
-<p>应用通过 <a href="http://developer.android.com/reference/android/hardware/SensorManager.html">Sensors SDK(软件开å‘套件)API</a> 访问传感器。SDK 包å«ç”¨ä»¥åˆ—示å¯ç”¨ä¼ æ„Ÿå™¨å’Œæ³¨å†Œåˆ°ä¼ æ„Ÿå™¨çš„函数。</p>
+<p>应用通过 <a href="http://developer.android.com/reference/android/hardware/SensorManager.html">Sensors SDK(软件开å‘套件)API</a> 访问传感器。SDK 包å«ç”¨ä»¥åˆ—出å¯ç”¨ä¼ æ„Ÿå™¨å’Œæ³¨å†Œåˆ°ä¼ æ„Ÿå™¨çš„函数。</p>
<p>在注册到传感器时,应用å¯æŒ‡å®šè‡ªå·±çš„首选采样率和延迟è¦æ±‚。</p>
<ul>
<li>例如,应用å¯æ³¨å†Œåˆ°é»˜è®¤åŠ é€Ÿåº¦è®¡ï¼Œä»¥ 100Hz 的频率请求事件,并å…许事件报告有 1 秒延迟。</li>
@@ -33,25 +33,25 @@
</ul>
<p>请å‚阅<a href="index.html#targeted_at_developers">å¼€å‘者文档</a>,详细了解 SDK。</p>
<h2 id="framework">框架</h2>
-<p>框架负责将多个应用关è”到 <a href="hal-interface.html">HAL</a>。HAL 本身是å•ä¸€å®¢æˆ·ç«¯ã€‚如果框架级别没有å‘生这ç§å¤šè·¯å¤ç”¨ï¼Œåˆ™åœ¨ä»»ä½•æŒ‡å®šæ—¶é—´å†…åªæœ‰ä¸€ä¸ªåº”用å¯ä»¥è®¿é—®å„个传感器。</p>
+<p>框架负责将多个应用关è”到 <a href="hal-interface.html">HAL</a>。HAL 本身是å•ä¸€å®¢æˆ·ç«¯ã€‚如果框架级别没有å‘生这ç§å¤šè·¯å¤ç”¨ï¼Œåˆ™åœ¨ä»»ä½•æŒ‡å®šæ—¶é—´å†…æ¯ä¸ªä¼ æ„Ÿå™¨éƒ½åªèƒ½è¢«ä¸€ä¸ªåº”用访问。</p>
<ul>
<li>å½“ç¬¬ä¸€ä¸ªåº”ç”¨æ³¨å†Œåˆ°ä¼ æ„Ÿå™¨æ—¶ï¼Œæ¡†æž¶ä¼šå‘ HAL å‘é€è¯·æ±‚以激活传感器。</li>
<li>当其他应用注册到相åŒçš„传感器时,框架会考虑æ¯ä¸ªåº”用的è¦æ±‚,并将更新的已请求å‚æ•°å‘é€åˆ° HAL。<ul>
<li><a href="hal-interface.html#sampling_period_ns">采样率</a>将是请求的采样率的最大值,这æ„味ç€ä¸€äº›åº”用接收事件的频率会高于所请求的频率。</li>
- <li><a href="hal-interface.html#max_report_latency_ns">最大报告延迟</a>将是请求的延迟的最å°å€¼ã€‚如果æŸä¸ªåº”用以 0 为最大报告延迟请求传感器,则所有应用将以连续模å¼ä»Žè¯¥ä¼ æ„Ÿå™¨æŽ¥æ”¶äº‹ä»¶ï¼Œå³ä½¿æŸäº›åº”用以éžé›¶å€¼çš„最大报告延迟请求传感器也是如此。有关详情,请å‚阅<a href="batching.html">批处ç†</a>。</li>
+ <li><a href="hal-interface.html#max_report_latency_ns">最大报告延迟</a>将是请求的延迟的最å°å€¼ã€‚如果æŸä¸ªåº”用的最大报告延迟是 0,若它请求传感器,则所有应用将以连续模å¼ä»Žè¯¥ä¼ æ„Ÿå™¨æŽ¥æ”¶äº‹ä»¶ï¼Œå³ä½¿æŸäº›åº”用请求传感器时的最大报告延迟ä¸æ˜¯ 0 也是如此。有关详情,请å‚阅<a href="batching.html">批处ç†</a>。</li>
</ul>
</li>
<li>当注册到æŸä¸ªä¼ æ„Ÿå™¨çš„最åŽä¸€ä¸ªåº”用å–消注册之åŽï¼Œæ¡†æž¶ä¼šå‘ HAL å‘é€è¯·æ±‚以åœç”¨è¯¥ä¼ æ„Ÿå™¨ï¼Œä»Žè€Œé¿å…ä¸å¿…è¦çš„功耗。</li>
</ul>
<h3 id="impact_of_multiplexing">多路å¤ç”¨çš„å½±å“</h3>
-<p>在框架中实现多路å¤ç”¨å±‚的这一需求解释了一些设计决策。</p>
+<p>在框架中实现多路å¤ç”¨å±‚的这一需求说明了一些设计决策的原因。</p>
<ul>
- <li>当应用请求特定采样率时,ä¸èƒ½ä¿è¯äº‹ä»¶ä¸ä¼šä»¥æ›´å¿«çš„频率到达。如果å¦ä¸€ä¸ªåº”用以更快的频率请求åŒä¸€ä¼ æ„Ÿå™¨ï¼Œåˆ™ç¬¬ä¸€ä¸ªåº”用也将以较快频率接收事件。</li>
+ <li>当应用请求特定采样率时,ä¸èƒ½ä¿è¯äº‹ä»¶ä¸ä¼šä»¥æ›´å¿«çš„频率到达。如果å¦ä¸€ä¸ªåº”用以更快的频率请求åŒä¸€ä¼ æ„Ÿå™¨ï¼Œåˆ™ç¬¬ä¸€ä¸ªåº”用也将以那个快的频率æ¥æŽ¥æ”¶äº‹ä»¶ã€‚</li>
<li>请求的最大报告延迟åŒæ ·æ— æ³•å¾—到ä¿è¯ï¼šåº”用å¯èƒ½ä»¥æ¯”请求的延迟短的多的延迟接收事件。</li>
<li>除了采样率和最大报告延迟之外,应用还无法é…置传感器å‚数。
<ul>
<li>例如,å‡è®¾æŸä¸ªç‰©ç†ä¼ æ„Ÿå™¨å¯åŒæ—¶åœ¨â€œé«˜ç²¾ç¡®åº¦â€å’Œâ€œä½Žç”µè€—â€æ¨¡å¼ä¸‹è¿è¡Œã€‚</li>
- <li>这两ç§æ¨¡å¼ä¸­åªæœ‰ä¸€ç§å¯ä»¥åœ¨ Android 设备上使用,因为å¦åˆ™ä¸€ä¸ªåº”用å¯èƒ½è¯·æ±‚高精确度模å¼ï¼Œè€Œå¦ä¸€ä¸ªå¯èƒ½è¯·æ±‚低电耗模å¼ï¼›æ¡†æž¶æ ¹æœ¬æ— æ³•åŒæ—¶æ»¡è¶³è¿™ä¸¤ä¸ªåº”用的è¦æ±‚。框架必须始终能够满足所有客户端的需è¦ï¼Œå› æ­¤åŒæ—¶ä½¿ç”¨ä¸¤ç§æ¨¡å¼æ˜¯ä¸å¯è¡Œçš„。</li>
+ <li>这两ç§æ¨¡å¼ä¸­åªæœ‰ä¸€ç§å¯ä»¥åœ¨ Android 设备上使用,因为若éžå¦‚此,一个应用å¯èƒ½è¯·æ±‚高精确度模å¼ï¼Œè€Œå¦ä¸€ä¸ªå¯èƒ½è¯·æ±‚低电耗模å¼ï¼Œè€Œæ¡†æž¶æ ¹æœ¬æ— æ³•åŒæ—¶æ»¡è¶³è¿™ä¸¤ä¸ªåº”用的è¦æ±‚。框架必须始终能够满足所有客户端的需è¦ï¼Œå› æ­¤åŒæ—¶ä½¿ç”¨ä¸¤ç§æ¨¡å¼æ˜¯ä¸å¯è¡Œçš„。</li>
</ul>
</li>
<li>没有将数æ®ä»Žåº”用å‘下å‘é€è‡³ä¼ æ„Ÿå™¨æˆ–其驱动程åºçš„机制。这样å¯ä»¥ç¡®ä¿æŸä¸ªåº”用无法修改传感器的行为,从而ä¸ä¼šå¯¹å…¶ä»–应用造æˆç ´å。</li>
@@ -73,7 +73,7 @@
<p>接å£ç”± Android å’Œ AOSP 贡献者定义,并由设备制造商æ供实现。</p>
<p>传感器 HAL 接å£ä½äºŽ <code>hardware/libhardware/include/hardware</code> 中。有关详情,请å‚阅 <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">sensors.h</a>。</p>
<h3 id="release_cycle">版本周期</h3>
-<p>HAL 实现通过设置 <code>your_poll_device.common.version</code> 指定实现的 HAL 接å£ç‰ˆæœ¬ã€‚现有 HAL 接å£ç‰ˆæœ¬åœ¨ sensors.h 中定义,相应功能与这些版本绑定在一起。</p>
+<p>HAL 实现通过设置 <code>your_poll_device.common.version</code> 指定实现的 HAL 接å£ç‰ˆæœ¬ã€‚现有的 HAL 接å£ç‰ˆæœ¬åœ¨ sensors.h 中有所定义,相应功能与这些版本绑定在一起。</p>
<p>Android 框架目å‰æ”¯æŒç‰ˆæœ¬ 1.0 å’Œ 1.3,ä¸è¿‡ç‰ˆæœ¬ 1.0 很快将ä¸å†å—支æŒã€‚本文档介ç»äº†ç‰ˆæœ¬ 1.3(所有设备å‡åº”å‡çº§åˆ°è¯¥ç‰ˆæœ¬ï¼‰çš„行为。è¦è¯¦ç»†äº†è§£å¦‚何å‡çº§åˆ°ç‰ˆæœ¬ 1.3,请å‚阅 <a href="versioning.html">HAL 版本弃用</a>。</p>
<h2 id="kernel_driver">内核驱动程åº</h2>
<p>传感器驱动程åºå¯ä¸Žç‰©ç†è®¾å¤‡è¿›è¡Œäº¤äº’。在æŸäº›æƒ…况下,HAL 实现和驱动程åºæ˜¯åŒä¸€è½¯ä»¶å®žä½“。在其他情况下,硬件集æˆè€…会è¦æ±‚传感器芯片制造商æ供相应驱动程åºï¼Œä½†æ˜¯å®ƒä»¬æ˜¯ç”¨äºŽç¼–写 HAL 实现的驱动程åºã€‚</p>
diff --git a/zh-cn/devices/sensors/versioning.html b/zh-cn/devices/sensors/versioning.html
index 65fb903f..261259fa 100644
--- a/zh-cn/devices/sensors/versioning.html
+++ b/zh-cn/devices/sensors/versioning.html
@@ -109,7 +109,7 @@ SENSOR_FLAG_CONTINUOUS_MODE,
<p><code>SENSOR_FLAG_WAKE_UP | SENSOR_FLAG_ONE_SHOT_MODE</code> - <a href="/devices/sensors/report-modes.html#one-shot">å•æ¬¡æ¨¡å¼</a>传感器</p>
-<p><code>SENSOR_FLAG_CONTINUOUS_MODE</code> - <a href="/devices/sensors/report-modes.html#continuous">连续模å¼</a>传感器;<code>SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/report-modes.html#on-change">å˜åŒ–模å¼</a>传感器(<a href="#proximity">近程</a>传感器除外);<code>SENSOR_FLAG_SPECIAL_REPORTING_MODE</code> - <a href="/devices/sensors/report-modes.html#special">特殊</a>报告模å¼ä¼ æ„Ÿå™¨ï¼ˆ<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜探测器</a>传感器除外)。</p>
+<p><code>SENSOR_FLAG_CONTINUOUS_MODE</code> - <a href="/devices/sensors/report-modes.html#continuous">连续模å¼</a>传感器;<code>SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/report-modes.html#on-change">å˜åŒ–模å¼</a>传感器(<a href="#proximity">近程</a>传感器除外);<code>SENSOR_FLAG_SPECIAL_REPORTING_MODE</code> - <a href="/devices/sensors/report-modes.html#special">特殊</a>报告模å¼ä¼ æ„Ÿå™¨ï¼ˆ<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜探测器</a>除外)。</p>
<p><code>SENSOR_FLAG_WAKE_UP | SENSOR_FLAG_ON_CHANGE_MODE</code> - <a href="/devices/sensors/sensor-types.html#proximity">近程</a>传感器和 Android 官方<a href="/devices/sensors/sensor-types.html#tilt_detector">倾斜探测器</a>传感器。</p>
diff --git a/zh-cn/devices/tech/config/filesystem.html b/zh-cn/devices/tech/config/filesystem.html
index f53bf504..cd7bc8be 100644
--- a/zh-cn/devices/tech/config/filesystem.html
+++ b/zh-cn/devices/tech/config/filesystem.html
@@ -292,8 +292,7 @@ caps: SYS_ADMIN | SYS_NICE
TARGET_FS_CONFIG_GEN += device/x/y/config.fs
</pre>
-<p>
- 当执行æœåŠ¡ <code><strong>vendor_</strong>foo</code> 时,它会先使用æƒèƒ½ <code>CAP_SYS_ADMIN</code> å’Œ <code>CAP_SYS_NICE</code>,而ä¸ä½¿ç”¨ <code>setuid</code> å’Œ <code>setgid</code> 调用。此外,<code><strong>vendor_</strong>foo</code> æœåŠ¡çš„ SELinux 策略也ä¸å†éœ€è¦ <code>setuid</code> å’Œ <code>setgid</code> æƒèƒ½ï¼Œå› æ­¤å¯ä»¥åˆ é™¤è¿™äº›æƒèƒ½ã€‚
+<p>当执行æœåŠ¡ <code><strong>vendor_</strong>foo</code> 时,它会先使用æƒèƒ½ <code>CAP_SYS_ADMIN</code> å’Œ <code>CAP_SYS_NICE</code>,而ä¸ä½¿ç”¨ <code>setuid</code> å’Œ <code>setgid</code> 调用。此外,<code><strong>vendor_</strong>foo</code> æœåŠ¡çš„ SELinux 策略也ä¸å†éœ€è¦ <code>setuid</code> å’Œ <code>setgid</code> æƒèƒ½ï¼Œå› æ­¤å¯ä»¥åˆ é™¤è¿™äº›æƒèƒ½ã€‚
</p>
<h2 id="older">é…置替æ¢ï¼ˆAndroid 6.x 到 7.x 版本)</h2>
diff --git a/zh-cn/devices/tech/config/update.html b/zh-cn/devices/tech/config/update.html
index 8a954ffe..b6ce2748 100644
--- a/zh-cn/devices/tech/config/update.html
+++ b/zh-cn/devices/tech/config/update.html
@@ -26,14 +26,8 @@
<p>è¦æ›´æ–° APN ä¿¡æ¯æˆ– CarrierConfig,您需è¦ä½¿ç”¨ä¸Žæœ‰æ•ˆçš„å…¬å¸ç”µå­é‚®ä»¶åœ°å€ç›¸å…³è”çš„ Google å¸å·æ交请求(例如,æ¥è‡ª Acme Company å…¬å¸çš„ APN 更新请求应æ¥è‡ªäºŽ foobar@acme.com <em></em>之类的电å­é‚®ä»¶åœ°å€ï¼‰ã€‚</p>
<p>如果您没有与公å¸ç”µå­é‚®ä»¶åœ°å€ç›¸å…³è”çš„ Google å¸å·ï¼Œè¯·ä»Žæµè§ˆå™¨ä¸­é€€å‡ºç™»å½•æ‰€æœ‰ Gmail å¸å·ï¼ˆå»ºè®®æ‚¨ä½¿ç”¨æ— ç—•å¼çª—å£ç­‰æ— ç—•æµè§ˆåŠŸèƒ½ï¼Œä»¥å…与其他å¸å·æ··æ·†ï¼‰ï¼Œç„¶åŽ<a href="https://accounts.google.com/SignUpWithoutGmail?hl=zh-cn">使用您的公å¸ç”µå­é‚®ä»¶åœ°å€åˆ›å»º Google å¸å·</a>。</p>
-<!--<ol>-->
- <!--<li>Sign out of all gmail accounts from your browser. (We recommend you use a private browsing
- feature such as an incognito window to avoid confusion with your other accounts.)</li>-->
- <!--<li>Create a Google account with your corporate email address using:
- <a href="https://accounts.google.com/SignUpWithoutGmail?hl=zh-cn">
- https://accounts.google.com/SignUpWithoutGmail?hl=en</a></li>-->
-<!--</ol>-->
-<aside class="note"><strong>注æ„</strong>:请勿将任何 Gmail å¸å·ä¸Žè¿™ä¸€æ–°å»ºçš„å¸å·ç›¸å…³è”。</aside>
+
+<aside class="caution"><strong>注æ„</strong>:请勿将任何 Gmail å¸å·ä¸Žè¿™ä¸€æ–°å»ºçš„å¸å·ç›¸å…³è”。</aside>
<h2 id="local-environment">准备本地开å‘环境</h2>
@@ -71,7 +65,7 @@
<h2 id="submit-changes">æ交更改</h2>
-<p>当您准备好进行更改时,请按以下步骤æ“作:</p>
+<p>è¦è¿›è¡Œæ›´æ”¹ï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ­¥éª¤ï¼š</p>
<ol>
<li>确定è¦æ›´æ”¹çš„文件。</li>
<li>对相应的文件进行更改。</li>
diff --git a/zh-cn/devices/tech/connect/block-numbers.html b/zh-cn/devices/tech/connect/block-numbers.html
index 8fd38391..a9886c21 100644
--- a/zh-cn/devices/tech/connect/block-numbers.html
+++ b/zh-cn/devices/tech/connect/block-numbers.html
@@ -112,7 +112,7 @@ getContentResolver().delete(uri, null, null);
</p>
<p>
-如果设备在之å‰å‡ºåŽ‚时就具备了呼å«/短信é™åˆ¶åŠŸèƒ½ï¼Œè¯·è°ƒæ•´ç›¸åº”功能,<em></em>以便所有严格匹é…的被å±è”½ç”µè¯å·ç éƒ½å­˜å‚¨åœ¨ <code>BlockedNumberProvider,</code> 中,并且围绕该æ供程åºå‘生的行为也能满足 Android 兼容性定义文档 (CDD) 中针对此功能列出的è¦æ±‚。
+如果设备在之å‰å‡ºåŽ‚时就具备了呼å«/短信é™åˆ¶åŠŸèƒ½ï¼Œè¯·è°ƒæ•´ç›¸åº”功能,<em></em>以便所有严格匹é…的被å±è”½ç”µè¯å·ç éƒ½å­˜å‚¨åœ¨ <code>BlockedNumberProvider,</code> 中,并且围绕该æ供程åºå‘生的行为都满足 Android 兼容性定义文档 (CDD) 中针对此功能列出的è¦æ±‚。
</p>
<p>
@@ -172,7 +172,8 @@ android.telephony.cts.SmsManagerTest#testSmsBlocking
</pre>
<p>
-在è¿è¡Œ <code>$ adb root</code> 之åŽï¼Œå¯ä»¥ä½¿ç”¨ <code>adb</code> 命令æ¥æ“作 <code>BlockedNumberProvider</code>。例如:</p>
+在è¿è¡Œ <code>$ adb root</code> 之åŽï¼Œå¯ä»¥ä½¿ç”¨ <code>adb</code> 命令æ¥æ“作 <code>BlockedNumberProvider</code>。例如:
+</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">adb root</code>
<code class="devsite-terminal">adb shell content query --uri content://com.android.blockednumber/blocked</code>
diff --git a/zh-cn/devices/tech/connect/carrier-wifi.html b/zh-cn/devices/tech/connect/carrier-wifi.html
index 52f4eddf..b1b94e40 100644
--- a/zh-cn/devices/tech/connect/carrier-wifi.html
+++ b/zh-cn/devices/tech/connect/carrier-wifi.html
@@ -22,7 +22,7 @@
limitations under the License.
-->
-<h1 id="carrier_wi_fi" class="page-title">è¿è¥å•† WLAN</h1>
+<h1 id="carrier_wi-fi" class="page-title">è¿è¥å•† WLAN</h1>
<p>è¿è¥å•† WLAN 是 Android 9 中引入的一项功能,该功能å¯è®©è®¾å¤‡è‡ªåŠ¨è¿žæŽ¥åˆ°è¿è¥å•†å®žçŽ°çš„ WLAN 网络。在高度拥塞或信å·è¦†ç›–范围较å°çš„区域(如体育场或地é“站),è¿è¥å•† WLAN å¯ç”¨äºŽæ”¹å–„用户的连接体验和分载æµé‡ã€‚</p>
@@ -35,9 +35,27 @@
<p>在è¿è¥å•†é…置管ç†å™¨ä¸­ï¼Œä¸ºæ¯ä¸ªè¿è¥å•†é…置以下å‚数:</p>
<ul>
-<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1542">KEY_CARRIER_WIFI_STRING_ARRAY</a>:以 Base64 ç¼–ç çš„ WLAN SSID。</li>
-<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1746">IMSI_KEY_AVAILABILITY_INT</a>:标识用于 IMSI 加密的密钥适用于 WLAN 还是 EPDG,或两者都适用。</li>
-<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1739">IMSI_KEY_DOWNLOAD_URL_STRING</a>:从中下载 proto(包å«ç”¨äºŽ IMSI 加密的è¿è¥å•†å…¬é’¥ï¼‰çš„网å€ã€‚</li>
+<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1606" class="external"><code>KEY_CARRIER_WIFI_STRING_ARRAY</code></a>:一个字符串数组,其中å„字符串æ¡ç›®æ˜¯ä»¥ Base64 ç¼–ç çš„ WLAN SSID å’Œ EAP 类型(中间由逗å·éš”开,EAP 类型是一个整数)(请å‚阅 <a href="https://www.iana.org/assignments/eap-numbers/eap-numbers.xhtml" class="external">https://www.iana.org/assignments/eap-numbers/eap-numbers.xhtml</a>)。例如,以下é…置针对使用 <strong>EAP-AKA</strong> çš„ SOME_SSID_NAME 和使用 <strong>EAP-SIM</strong> çš„ Some_Other_SSID:<em></em><em></em></p>
+<pre class="prettyprint"><code>config {
+ key: "carrier_wifi_string_array"
+ text_array {
+ item: "U09NRV9TU0lEX05BTUUK,23"
+ item: "U29tZV9PdGhlcl9TU0lECg==,18"
+ }
+}
+</code></pre></li>
+<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1837" class="external"><code>IMSI_KEY_AVAILABILITY_INT</code></a>:标识用于 IMSI 加密的密钥是适用于 WLANï¼ˆè®¾ç½®ä½ 1)还是 EPDGï¼ˆè®¾ç½®ä½ 0),或两者都适用(åŒæ—¶è®¾ç½®ä½ 0 å’Œä½ 1)。例如,以下é…置指示 IMSI 加密适用于 WLAN,但ä¸é€‚用于 EPDG:</p>
+<pre class="prettyprint"><code>config {
+ key: "imsi_key_availability_int"
+ int_value: 2
+}
+</code></pre></li>
+<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#1830" class="external"><code>IMSI_KEY_DOWNLOAD_URL_STRING</code></a>:从中下载 proto(包å«ç”¨äºŽ IMSI 加密的è¿è¥å•†å…¬é’¥ï¼‰çš„网å€ã€‚例如,以下é…ç½®æ供了特定的网å€ï¼š</p>
+<pre class="prettyprint"><code>config {
+ key: "imsi_key_download_url_string"
+ text_value: "https://www.some_company_name.com:5555/some_directory_name/"
+}
+</code></pre></li>
</ul>
<h3 id="carriers">è¿è¥å•†</h3>
diff --git a/zh-cn/devices/tech/connect/connect_tests.html b/zh-cn/devices/tech/connect/connect_tests.html
index 6a6c2803..aca43af2 100644
--- a/zh-cn/devices/tech/connect/connect_tests.html
+++ b/zh-cn/devices/tech/connect/connect_tests.html
@@ -42,11 +42,11 @@
<h3 id="script-native">原生脚本层</h3>
-<p><code><a href="https://android.googlesource.com/platform/packages/apps/Test/connectivity/"><platform>/packages/apps/Test/connectivity</platform></a></code> 中的<a href="https://android.googlesource.com/platform/packages/apps/Test/connectivity/+/master/sl4n/README.md">原生脚本层</a>是全新的内部å‘展型 RPC æœåŠ¡å™¨ï¼Œç”¨äºŽå…¬å¼€ Android 的原生 API,并且所用方å¼ä¸Ž Android 脚本层公开 Java API çš„æ–¹å¼ç›¸åŒã€‚该工具目å‰ç”¨äºŽæµ‹è¯• Brillo,我们预计该项目将迅速扩展,以满足越æ¥è¶Šé‡è¦çš„原生无线 API 的测试需求。</p>
+<p><code><a href="https://android.googlesource.com/platform/packages/apps/Test/connectivity/"><platform>/packages/apps/Test/connectivity</platform></a></code> 中的<a href="https://android.googlesource.com/platform/packages/apps/Test/connectivity/+/master/sl4n/README.md">原生脚本层</a>是全新的内部å‘展型 RPC æœåŠ¡å™¨ï¼Œç”¨äºŽå…¬å¼€ Android 的原生 API,并且公开方å¼ä¸Ž Android 脚本层公开 Java API çš„æ–¹å¼ç›¸åŒã€‚该工具目å‰ç”¨äºŽæµ‹è¯• Brillo,我们预计该项目将迅速扩大,以满足越æ¥è¶Šé‡è¦çš„原生无线 API 的测试需求。</p>
<h3 id="script-android">Android 通讯测试套件</h3>
-<p><code><a href="https://android.googlesource.com/platform/tools/test/connectivity/"><platform>/tools/test/connectivity</platform></a></code> 中的 <a href="https://android.googlesource.com/platform/tools/test/connectivity/+/master/acts/README.md">Android 通讯测试套件</a>是基于 Python çš„è½»é‡çº§è‡ªåŠ¨åŒ–工具集,用于针对当å‰å’Œå³å°†æŽ¨å‡ºçš„ Android 设备执行自动化测试。它æ供了简æ´çš„执行界é¢ã€ä¸€ç»„用于访问衰å‡å™¨ç­‰è®¾å¤‡å’Œ Android 设备的å¯æ’拔库,以åŠä¸€äº›å¯è¿›ä¸€æ­¥ç®€åŒ–测试开å‘的实用函数。我们认为它是一ç§éžå¸¸é€‚åˆæ— çº¿å †æ ˆå¼€å‘者或集æˆäººå‘˜çš„æ¡Œé¢å·¥å…·ï¼Œæ— è®ºä»–们是创建新的代ç è·¯å¾„ã€æ‰§è¡ŒåŸºæœ¬çš„完整性测试,还是è¿è¡Œæ‰©å±•çš„回归测试套件都没问题。</p>
+<p><code><a href="https://android.googlesource.com/platform/tools/test/connectivity/"><platform>/tools/test/connectivity</platform></a></code> 中的 <a href="https://android.googlesource.com/platform/tools/test/connectivity/+/master/acts/README.md">Android 通讯测试套件</a>是基于 Python çš„è½»é‡çº§è‡ªåŠ¨åŒ–工具集,用于对当å‰çš„å’Œå³å°†æŽ¨å‡ºçš„ Android 设备执行自动测试。它æ供了简æ´çš„执行界é¢ã€ä¸€ç»„用于访问衰å‡å™¨ç­‰è®¾å¤‡å’Œ Android 设备的å¯æ’拔库,以åŠä¸€äº›å¯è¿›ä¸€æ­¥ç®€åŒ–测试开å‘的实用函数。我们认为它是一ç§éžå¸¸é€‚åˆæ— çº¿å †æ ˆå¼€å‘者或集æˆäººå‘˜çš„æ¡Œé¢å·¥å…·ï¼Œæ— è®ºä»–们是创建新的代ç è·¯å¾„ã€æ‰§è¡ŒåŸºæœ¬çš„完整性测试,还是è¿è¡Œæ‰©å±•çš„回归测试套件都没问题。</p>
<p>本测试套件还包括一系列测试,很多测试在一å°æˆ–两å°å…·æœ‰ WLANã€ç§»åŠ¨ç½‘络或è“牙连接的 Android 设备上å³å¯è¿è¡Œï¼Œå…¶ä¸­åŒ…括:</p>
@@ -61,6 +61,6 @@
<p>ACTS 测试并éžè®¤è¯å¥—件,严格æ„义上æ¥è¯´ï¼Œå‘布 Android 设备无需通过这些测试,但是,测试失败å¯èƒ½è¯´æ˜Žç”¨æˆ·ä½“验ä¸ä½³ã€‚也就是说,如果测试失败,也无需感到失望。一些测试有æ„让您很难通过,其目的是帮助开å‘者推出高性能设备。</p>
-<p>ACTS 是一项相对较新的举措,并且æ¥è‡ªå¼€å‘社区的å‚与至关é‡è¦ã€‚如需添加测试ã€æŠ¥å‘Šé—®é¢˜æˆ–æ出问题,请在 <a href="https://code.google.com/p/android/issues/entry">Android 问题跟踪器</a>上使用连接性测试模æ¿æ–°å¼€ä¸€ä¸ª Bug,以å‘起相关交æµã€‚</p>
+<p>ACTS 是一项相对较新的举措,并且æ¥è‡ªå¼€å‘社区的å‚与至关é‡è¦ã€‚如需添加测试ã€æŠ¥å‘Šé—®é¢˜æˆ–æ出问题,请在 <a href="https://code.google.com/p/android/issues/entry">Android 问题跟踪器</a>上使用连接测试模æ¿æ‰“开一个 Bug,以å‘起相关交æµã€‚</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/connect/data-plans.html b/zh-cn/devices/tech/connect/data-plans.html
index 09a065a8..04229c4c 100644
--- a/zh-cn/devices/tech/connect/data-plans.html
+++ b/zh-cn/devices/tech/connect/data-plans.html
@@ -28,7 +28,7 @@
<h2 id="configuration_by_carrier">è¿è¥å•†é…ç½®</h2>
-<p>è¦é…ç½®æµé‡å¥—é¤ï¼Œè¿è¥å•†å¯ä»¥ä½¿ç”¨ <a href="https://developer.android.com/reference/android/telephony/SubscriptionPlan.Builder"><code>SubscriptionPlan</code> API</a> å‘其现有 Android 应用中添加功能。这些 API 用于支æŒå„ç§ç±»åž‹çš„æµé‡å¥—é¤ï¼Œå…¶ä¸­åŒ…括å¯ç»­è´¹å’Œä¸å¯ç»­è´¹å¥—é¤ä»¥åŠéšæ—¶é—´è€Œå˜åŒ–的套é¤ã€‚</p>
+<p>è¦é…ç½®æµé‡å¥—é¤ï¼Œè¿è¥å•†å¯ä»¥ä½¿ç”¨ <a href="https://developer.android.com/reference/android/telephony/SubscriptionPlan.Builder" class="external"><code>SubscriptionPlan</code> API</a> å‘其现有 Android 应用中添加功能。这些 API 用于支æŒå„ç§ç±»åž‹çš„æµé‡å¥—é¤ï¼Œå…¶ä¸­åŒ…括å¯ç»­è´¹å’Œä¸å¯ç»­è´¹å¥—é¤ä»¥åŠéšæ—¶é—´è€Œå˜åŒ–的套é¤ã€‚</p>
<p>以下是如何é…置按月续费的常è§æµé‡å¥—é¤ç±»åž‹çš„示例:</p>
<pre class="prettyprint"><code>SubscriptionManager sm =
@@ -45,24 +45,24 @@ sm.setSubscriptionPlans(subId, Lists.newArrayList(
<p>åªæœ‰å½“应用符åˆä»¥ä¸‹æŸé¡¹æ¡ä»¶æ—¶ï¼Œè®¾å¤‡æ‰å…许其é…ç½®æµé‡å¥—é¤ï¼š</p>
<ul>
-<li>SIM å¡å·²æ˜Žç¡®æŒ‡å®šå¯å¯¹å…¶è¿›è¡Œç®¡ç†çš„应用(如 <a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#canManageSubscription(android.telephony.SubscriptionInfo)"><code>SubscriptionManager.canManageSubscription()</code></a> 中所定义)。</li>
-<li>è¿è¥å•†å·²é€šè¿‡ <code>CarrierConfigManager</code> æŽ¨é€ <a href="https://developer.android.com/reference/android/telephony/CarrierConfigManager#KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING"><code>KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING</code></a> 值,以指明å¯ç®¡ç†å…¶æµé‡å¥—é¤çš„应用。</li>
+<li>SIM å¡å·²æ˜Žç¡®æŒ‡å®šå¯å¯¹å…¶è¿›è¡Œç®¡ç†çš„应用(如 <a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#canManageSubscription(android.telephony.SubscriptionInfo)" class="external"><code>SubscriptionManager.canManageSubscription()</code></a> 中所定义)。</li>
+<li>è¿è¥å•†å·²é€šè¿‡ <code>CarrierConfigManager</code> æŽ¨é€ <a href="https://developer.android.com/reference/android/telephony/CarrierConfigManager#KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING" class="external"><code>KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING</code></a> 值,以指明å¯ç®¡ç†å…¶æµé‡å¥—é¤çš„应用。</li>
<li>设备在系统映åƒä¸­å†…置了一个具有 <code>MANAGE_SUBSCRIPTION_PLANS</code> æƒé™çš„应用。</li>
</ul>
<p>若符åˆå‰ä¸¤ä¸ªæ¡ä»¶ï¼Œåˆ™è¿è¥å•†åº”用å¯ç”±ç”¨æˆ·ç›´æŽ¥å®‰è£…,而无需在出厂å‰é¢„安装在系统映åƒä¸­ã€‚æ“作系统强制è¦æ±‚(且 CDD è¦æ±‚)所有已é…置的æµé‡å¥—é¤è¯¦æƒ…一律å—到ä¿æŠ¤ï¼Œä¸”仅供最åˆå‘æ“作系统æ供相应详情的è¿è¥å•†åº”用使用。</p>
-<p>针对è¿è¥å•†åº”用的一项建议是,使用空闲维护æœåŠ¡ä»¥ä¾¿æ¯å¤©æ›´æ–°æµé‡å¥—é¤è¯¦æƒ…,但è¿è¥å•†å¯ä»¥è‡ªç”±é€‰æ‹©ä½¿ç”¨å„ç§æœºåˆ¶ï¼ˆä¾‹å¦‚通过è¿è¥å•†å†…部短信æ¥æŽ¥æ”¶æµé‡å¥—é¤è¯¦æƒ…)。建议通过使用 <a href="https://developer.android.com/reference/android/app/job/JobInfo.Builder#setRequiresDeviceIdle(boolean)"><code>setRequiresDeviceIdle()</code></a> å’Œ <a href="https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setRequiresCharging(boolean)"><code>setRequiresCharging()</code></a> çš„ <code>JobScheduler</code> 作业æ¥å®žçŽ°ç©ºé—²ç»´æŠ¤æœåŠ¡ã€‚</p>
+<p>针对è¿è¥å•†åº”用的一项建议是,使用空闲维护æœåŠ¡ä»¥ä¾¿æ¯å¤©æ›´æ–°æµé‡å¥—é¤è¯¦æƒ…,但è¿è¥å•†å¯ä»¥è‡ªç”±é€‰æ‹©ä½¿ç”¨å„ç§æœºåˆ¶ï¼ˆä¾‹å¦‚通过è¿è¥å•†å†…部短信æ¥æŽ¥æ”¶æµé‡å¥—é¤è¯¦æƒ…)。建议通过æŸé¡¹ä½¿ç”¨ <a href="https://developer.android.com/reference/android/app/job/JobInfo.Builder#setRequiresDeviceIdle(boolean)" class="external"><code>setRequiresDeviceIdle()</code></a> å’Œ <a href="https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setRequiresCharging(boolean)" class="external"><code>setRequiresCharging()</code></a> çš„ <code>JobScheduler</code> 作业æ¥å®žçŽ°ç©ºé—²ç»´æŠ¤æœåŠ¡ã€‚</p>
<h2 id="usage_by_os">æ“作系统使用情况</h2>
<p>æ“作系统通过以下方å¼ä½¿ç”¨ç”± SubscriptionPlan API æ供的æµé‡å¥—é¤è¯¦æƒ…:</p>
<ul>
-<li>通过“设置â€åº”用æ¥æ˜¾ç¤ºå¥—é¤è¯¦æƒ…,以å‘用户显示准确的æµé‡ç”¨é‡æ•°æ®ï¼Œå¹¶æä¾›<a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#ACTION_MANAGE_SUBSCRIPTION_PLANS">指å‘è¿è¥å•†åº”用的直接深层链接</a>以获得å‡çº§/追加销售的机会。</li>
+<li>通过“设置â€åº”用æ¥æ˜¾ç¤ºå¥—é¤è¯¦æƒ…,以å‘用户显示准确的æµé‡ç”¨é‡æ•°æ®ï¼Œå¹¶æä¾›<a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#ACTION_MANAGE_SUBSCRIPTION_PLANS" class="external">指å‘è¿è¥å•†åº”用的直接深层链接</a>以获得å‡çº§/追加销售的机会。</li>
<li>系统会根æ®å¥—é¤è¯¦æƒ…自动é…ç½®æµé‡ç”¨é‡è­¦å‘Šå’Œä¸Šé™é€šçŸ¥é˜ˆå€¼ï¼›ç”¨é‡è¾¾åˆ°ä¸Šé™çš„ 90% 时便会å‘出警告æ醒。</li>
-<li>如果è¿è¥å•†æš‚æ—¶æ示网络<a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#setSubscriptionOverrideCongested(int, boolean, long)">“拥挤â€</a>,æ“作系统将延迟å¯è¿›è¡Œæ—¶ç§»çš„ JobScheduler 作业,从而å‡å°‘è¿è¥å•†ç½‘络的负载。</li>
-<li>如果è¿è¥å•†æš‚æ—¶æ示网络<a href="https://developer.android.com/reference/android/telephony/SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, long)">“ä¸æŒ‰æµé‡è®¡è´¹â€</a>,æ“作系统会将移动网络连接报告为“ä¸æŒ‰æµé‡è®¡è´¹â€ï¼Œç›´åˆ°è¿è¥å•†æ¸…除替æ¢å†…容或达到超时值(如果æ供)。</li>
+<li>如果è¿è¥å•†æš‚æ—¶æ示网络<a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#setSubscriptionOverrideCongested(int,%20boolean,%20long)" class="external">“拥挤â€</a>,æ“作系统将延迟å¯è¿›è¡Œæ—¶ç§»çš„ JobScheduler 作业,从而å‡å°‘è¿è¥å•†ç½‘络的负载。</li>
+<li>如果è¿è¥å•†æš‚æ—¶æ示网络<a href="https://developer.android.com/reference/android/telephony/SubscriptionManager#setSubscriptionOverrideUnmetered(int,%20boolean,%20long)" class="external">“ä¸æŒ‰æµé‡è®¡è´¹â€</a>,æ“作系统会将移动网络连接报告为“ä¸æŒ‰æµé‡è®¡è´¹â€ï¼Œç›´åˆ°è¿è¥å•†æ¸…除替æ¢å†…容或达到超时值(如果æ供)。</li>
<li>通过将用户当å‰çš„æµé‡ç”¨é‡ä¸Žæ€»ä½“æµé‡ä¸Šé™è¿›è¡Œæ¯”较,æ“作系统会估算用户在结算周期结æŸæ—¶çš„正常æµé‡ç”¨é‡ï¼Œå¹¶é€‚å½“åˆ†é… 10% 的剩余æµé‡ä»¥æ”¹å–„用户体验,例如让应用使用æ¥è‡ªå¤šä¸ªé€”径的æµé‡ã€‚</li>
</ul>
diff --git a/zh-cn/devices/tech/connect/esim-euicc-api.html b/zh-cn/devices/tech/connect/esim-euicc-api.html
index 98c87a4f..60f3b370 100644
--- a/zh-cn/devices/tech/connect/esim-euicc-api.html
+++ b/zh-cn/devices/tech/connect/esim-euicc-api.html
@@ -28,7 +28,7 @@
<h2 id="about_euicc">eUICC 简介</h2>
-<p>è¿è¥å•†å¯ä»¥æž„建使用 EuiccManager 管ç†é…置文件的è¿è¥å•†åº”用(如图 1 所示)。è¿è¥å•†åº”用ä¸éœ€è¦æ˜¯ç³»ç»Ÿåº”用,但需è¦æ‹¥æœ‰ eUICC é…置文件授予的è¿è¥å•†æƒé™ã€‚<a href="/devices/tech/connect/esim-overview#making-an-lpa-app">LPA 应用</a>(LUI å’Œ LPA åŽç«¯ï¼‰éœ€è¦æ˜¯ç³»ç»Ÿåº”用(å³åŒ…å«åœ¨ç³»ç»Ÿæ˜ åƒä¸­ï¼‰æ‰èƒ½è°ƒç”¨ @SystemApi。</p>
+<p>è¿è¥å•†å¯ä»¥æž„建使用 EuiccManager 管ç†é…置文件的è¿è¥å•†åº”用(如图 1 所示)。è¿è¥å•†åº”用ä¸éœ€è¦æ˜¯ç³»ç»Ÿåº”用,但需è¦æ‹¥æœ‰ eUICC é…置文件授予的è¿è¥å•†æƒé™ã€‚<a href="/devices/tech/connect/esim-overview#making_an_lpa_app">LPA 应用</a>(LUI å’Œ LPA åŽç«¯ï¼‰éœ€è¦æ˜¯ç³»ç»Ÿåº”用(å³åŒ…å«åœ¨ç³»ç»Ÿæ˜ åƒä¸­ï¼‰æ‰èƒ½è°ƒç”¨ @SystemApi。</p>
<p><img src="/devices/tech/connect/images/carrier-oem-lpa.png" alt="安装了è¿è¥å•†åº”用和 OEM LPA çš„ Android 手机"/></p>
@@ -56,12 +56,12 @@
<h3 id="apis">API</h3>
-<p>您å¯ä»¥åœ¨ <a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager"><code>EuiccManager</code> å‚考文档</a>å’Œ <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccManager.java"><code>EuiccManager.java</code></a> 中找到以下 API。</p>
+<p>您å¯ä»¥åœ¨ <a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager" class="external"><code>EuiccManager</code> å‚考文档</a>å’Œ <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccManager.java" class="external"><code>EuiccManager.java</code></a> 中找到以下 API。</p>
<h4 id="get_instance_public">获å–实例(公共)</h4>
<p>通过 <code>Context#getSystemService</code> èŽ·å– <code>EuiccManager</code> 的实例。</p>
-<pre class="prettyprint"><code>EuiccManager mgr = context.getSystemService(Context.EUICC_SERVICE);
+<pre class="prettyprint"><code>EuiccManager mgr = (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
</code></pre>
<h4 id="check_enabled_public">检查å¯ç”¨æƒ…况(公共)</h4>
@@ -183,6 +183,6 @@ mgr.startResolutionActivity(getActivity(), 0 /* requestCode */, resultIntent, ca
</code></pre>
<h3 id="constants">常é‡</h3>
-<p>è¦æŸ¥çœ‹ <code>EuiccManager</code> 中的 <code>public</code> 常é‡åˆ—表,请å‚阅<a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager#constants">常é‡</a>。</p>
+<p>è¦æŸ¥çœ‹ <code>EuiccManager</code> 中的 <code>public</code> 常é‡åˆ—表,请å‚阅<a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager#constants" class="external">常é‡</a>。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/connect/esim-modem-requirements.html b/zh-cn/devices/tech/connect/esim-modem-requirements.html
index 2736f489..4ebdb08a 100644
--- a/zh-cn/devices/tech/connect/esim-modem-requirements.html
+++ b/zh-cn/devices/tech/connect/esim-modem-requirements.html
@@ -39,15 +39,15 @@
<h3 id="implement_setsimpower_api_in_radio_hal_v11">在 Radio HAL v1.1 中实现 setSimPower API</h3>
-<p>è°ƒåˆ¶è§£è°ƒå™¨åº”è¯¥æ”¯æŒ <a href="https://source.android.com/reference/hidl/android/hardware/radio/1.1/IRadio#setsimcardpower_1_1">setSimPower</a> API。</p>
+<p>è°ƒåˆ¶è§£è°ƒå™¨åº”è¯¥æ”¯æŒ <a href="/reference/hidl/android/hardware/radio/1.1/IRadio#setsimcardpower_1_1">setSimPower</a> API。</p>
<h3 id="implement_getsimslotsstatus_api_in_iradioconfig_hal_v10">在 IRadioConfig HAL v1.0 中实现 getSimSlotsStatus API</h3>
-<p>è°ƒåˆ¶è§£è°ƒå™¨åº”è¯¥æ”¯æŒ <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/config/1.0/IRadioConfig.hal#51">getSimSlotsStatus</a> API,此 API 会指出æ’槽中是å¦æœ‰ eSIM å¡ã€‚</p>
+<p>è°ƒåˆ¶è§£è°ƒå™¨åº”è¯¥æ”¯æŒ <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/config/1.0/IRadioConfig.hal#51" class="external">getSimSlotsStatus</a> API,此 API 会指出æ’槽中是å¦æœ‰ eSIM å¡ã€‚</p>
<h3 id="implement_geticccardstatus_api_in_iradio_hal_v12">在 IRadio HAL v1.2 中实现 getIccCardStatus API</h3>
-<p>调制解调器应æ供在 <a href="https://source.android.com/reference/hidl/android/hardware/radio/1.0/IRadio#getIccCardStatus">getIccCardStatus</a> API 中指定的 ATR å’Œå¡çŠ¶æ€çš„æ’槽 ID。v1.0 中首次引入了此 API(å为 <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/1.2/types.hal#341">CardStatus</a>),v1.2 中对此 API è¿›è¡Œäº†æ›´æ”¹ä»¥åŒ…å« <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/1.2/types.hal#351">ATR</a>。</p>
+<p>调制解调器应æ供在 <a href="/reference/hidl/android/hardware/radio/1.0/IRadio#getIccCardStatus">getIccCardStatus</a> API 中指定的 ATR å’Œå¡çŠ¶æ€çš„æ’槽 ID。v1.0 中首次引入了此 API(å为 <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/1.2/types.hal#341" class="external">CardStatus</a>),v1.2 中对此 API è¿›è¡Œäº†æ›´æ”¹ä»¥åŒ…å« <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/1.2/types.hal#351" class="external">ATR</a>。</p>
<h3 id="optional_support_esim_os_ota">(å¯é€‰ï¼‰æ”¯æŒ eSIM å¡æ“作系统 OTA</h3>
@@ -65,7 +65,7 @@
<p>日志记录应该支æŒæ•èŽ·è°ƒè¯•æ—¥å¿—å’Œå议层信æ¯ï¼ŒåŒ…括å议层状æ€ã€æ— çº¿è£…置功率测é‡ã€ç½‘络å•å…ƒä¿¡æ¯ã€æ•°æ®åŒ… TX/RX 统计信æ¯ã€å±‚间消æ¯ä¼ é€’ã€å¤„ç†å™¨é—´é€šä¿¡ã€SIM å¡åŠŸèƒ½å’Œ APDU æ—¥å¿—è®°å½•ï¼Œä»¥åŠ RIL 日志记录。</p>
-<h3 id="on_device_logging">设备上的日志记录</h3>
+<h3 id="on-device_logging">设备上的日志记录</h3>
<p>设备软件应该支æŒè®¾å¤‡ä¸Šçš„调制解调器日志æ•èŽ·æœºåˆ¶ã€‚</p>
diff --git a/zh-cn/devices/tech/connect/esim-overview.html b/zh-cn/devices/tech/connect/esim-overview.html
index d754bc6e..63914f74 100644
--- a/zh-cn/devices/tech/connect/esim-overview.html
+++ b/zh-cn/devices/tech/connect/esim-overview.html
@@ -32,11 +32,11 @@
<p><strong>图 1.</strong> 简化的远程 SIM é…ç½® (RSP) 架构</p>
-<p>有兴趣开å‘è¿è¥å•†åº”用的移动网络è¿è¥å•†å¯ä»¥å‚阅 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccManager.java">EuiccManager</a> 中的 API,其中介ç»äº†é«˜çº§é…置文件管ç†æ“作(例如 <code>downloadSubscription()</code>ã€<code>switchToSubscription()</code> å’Œ <code>deleteSubscription()</code>)。<em></em></p>
+<p><em></em>有兴趣开å‘è¿è¥å•†åº”用的移动网络è¿è¥å•†å¯ä»¥å‚阅 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccManager.java" class="external">EuiccManager</a> 中的 API,其中介ç»äº†é«˜çº§é…置文件管ç†æ“作(例如 <code>downloadSubscription()</code>ã€<code>switchToSubscription()</code> å’Œ <code>deleteSubscription()</code>)。</p>
-<p>å¦‚æžœæ‚¨æ˜¯æœ‰å…´è¶£è‡ªè¡Œå¼€å‘ LPA 系统应用的原始设备制造商 (OEM),那么您必须为 Android 框架扩展 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java">EuiccService</a> 以连接到您的 LPA æœåŠ¡ã€‚此外,您还应使用 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccCardManager.java">EuiccCardManager</a> 中的 API,这些 API æ供了基于 GSMA 远程 SIM é…ç½® (RSP) v2.0 çš„ ES10x å‡½æ•°ã€‚æ­¤ç±»å‡½æ•°ç”¨äºŽå‘ eUICC 芯片å‘出命令(例如 <code>prepareDownload()</code>ã€<code>loadBoundProfilePackage()</code>ã€<code>retrieveNotificationList()</code> å’Œ <code>resetMemory()</code>)。</p>
+<p>å¦‚æžœæ‚¨æ˜¯æœ‰å…´è¶£è‡ªè¡Œå¼€å‘ LPA 系统应用的原始设备制造商 (OEM),那么您必须为 Android 框架扩展 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java" class="external">EuiccService</a> 以连接到您的 LPA æœåŠ¡ã€‚此外,您还应使用 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccCardManager.java" class="external">EuiccCardManager</a> 中的 API,这些 API æ供了基于 GSMA 远程 SIM é…ç½® (RSP) v2.0 çš„ ES10x å‡½æ•°ã€‚æ­¤ç±»å‡½æ•°ç”¨äºŽå‘ eUICC 芯片å‘出命令(例如 <code>prepareDownload()</code>ã€<code>loadBoundProfilePackage()</code>ã€<code>retrieveNotificationList()</code> å’Œ <code>resetMemory()</code>)。</p>
-<p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccManager.java">EuiccManager</a> 中的 API 需è¦ä¸€ä¸ªæ­£ç¡®å®žçŽ°çš„ LPA 应用æ‰èƒ½æ­£å¸¸è¿è¡Œï¼Œä¸” <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccCardManager.java">EuiccCardManager</a> API 的调用程åºå¿…须是 LPA。这是 Android 框架的强制è¦æ±‚。</p>
+<p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccManager.java" class="external">EuiccManager</a> 中的 API 需è¦ä¸€ä¸ªæ­£ç¡®å®žçŽ°çš„ LPA 应用æ‰èƒ½æ­£å¸¸è¿è¡Œï¼Œä¸” <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/euicc/EuiccCardManager.java" class="external">EuiccCardManager</a> API 的调用程åºå¿…须是 LPA。这是 Android 框架的强制è¦æ±‚。</p>
<h2 id="making_a_carrier_app">å¼€å‘è¿è¥å•†åº”用</h2>
@@ -47,7 +47,7 @@
<p><code>EuiccManager</code> 是应用与 LPA 交互的主入å£ç‚¹ã€‚这包括å¯ä¸‹è½½ã€åˆ é™¤åŠåˆ‡æ¢åˆ°è¿è¥å•†æ‰€æ‹¥æœ‰çš„订阅的è¿è¥å•†åº”用。此外,这还包括 LUI 系统应用,该应用å¯æ供用于管ç†æ‰€æœ‰åµŒå…¥å¼è®¢é˜…的中心ä½ç½®/ç•Œé¢ï¼Œä¸”å¯ä»¥æ˜¯ä¸Žæä¾› <code>EuiccService</code> 的应用ä¸åŒçš„应用。<em></em></p>
<p>è¦ä½¿ç”¨å…¬å…± API,è¿è¥å•†åº”用必须先通过 <code>Context#getSystemService</code> èŽ·å– <code>EuiccManager</code> 的实例:</p>
-<pre class="prettyprint"><code>EuiccManager mgr = context.getSystemService(Context.EUICC_SERVICE);
+<pre class="prettyprint"><code>EuiccManager mgr = (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
</code></pre>
<p>在执行任何 eSIM æ“作之å‰ï¼Œæ‚¨åº”检查设备是å¦æ”¯æŒ eSIM。如果系统已指定 android.hardware.telephony.euicc 功能且存在 LPA 软件包,<code>EuiccManager#isEnabled()</code> 通常会返回 true。</p>
<pre class="prettyprint"><code>boolean isEnabled = mgr.isEnabled();
@@ -132,9 +132,9 @@ mgr.switchToSubscription(1 /* subscriptionId */, callbackIntent);
<p>æœ‰æ—¶ï¼Œç³»ç»Ÿæ— æ³•å®Œæˆ eSIM æ“作,但用户å¯ä»¥ç›´æŽ¥è§£å†³ç”±æ­¤å¯¼è‡´çš„错误。例如,如果é…置文件元数æ®æ示需è¦è¿è¥å•†ç¡®è®¤ç ï¼Œåˆ™ <code>downloadSubscription</code> å¯èƒ½ä¼šå¤±è´¥ã€‚<em></em>或者,如果è¿è¥å•†åº”用具备目标é…置文件的è¿è¥å•†æƒé™ï¼ˆå³è¿è¥å•†æ‹¥æœ‰è¯¥é…置文件),但它ä¸å…·å¤‡å½“å‰æ‰€å¯ç”¨é…置文件的è¿è¥å•†æƒé™ï¼ˆå› æ­¤éœ€è¦å¾å¾—用户的åŒæ„),<code>switchToSubscription</code> å¯èƒ½ä¹Ÿä¼šå¤±è´¥ã€‚</p>
-<p>在这些情况下,调用程åºä½¿ç”¨ <code>EuiccManager#EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR</code> 进行回调。回调 <code>Intent</code> 将包å«å†…部 extra,以便在调用程åºå°†å…¶ä¼ é€’ç»™ <a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager.html#startResolutionActivity(android.app.Activity, int, android.content.Intent, android.app.PendingIntent)"><code>EuiccManager#startResolutionActivity</code></a> 时,å¯ä»¥é€šè¿‡ LUI 请求解决问题。å†æ¬¡ä»¥ç¡®è®¤ç ä¸ºä¾‹ï¼Œ<a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager.html#startResolutionActivity(android.app.Activity, int, android.content.Intent, android.app.PendingIntent)"><code>EuiccManager#startResolutionActivity</code></a> 会触å‘å±å¹•æ˜¾ç¤º LUI æ¥è®©ç”¨æˆ·è¾“入确认ç ï¼Œè¾“入完æˆåŽï¼Œä¸‹è½½æ“作å³ä¼šæ¢å¤ã€‚è¿™ç§æ–¹æ³•ä½¿å¾—è¿è¥å•†åº”用能够完全控制在何时显示该界é¢ï¼ŒåŒæ—¶ä¹Ÿä¸º LPA/LUI æ供了一ç§æ‰©å±•æ–¹æ³•ï¼Œç”¨äºŽåœ¨å°†æ¥æ·»åŠ å¤„ç†â€œç”¨æˆ·å¯æ¢å¤é—®é¢˜â€çš„新方法(无需客户端应用åšå‡ºæ›´æ”¹ï¼‰ã€‚</p>
+<p>在这些情况下,调用程åºä½¿ç”¨ <code>EuiccManager#EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR</code> 进行回调。回调 <code>Intent</code> 将包å«å†…部 extra,以便在调用程åºå°†å…¶ä¼ é€’ç»™ <a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager.html#startResolutionActivity(android.app.Activity,%20int,%20android.content.Intent,%20android.app.PendingIntent)" class="external"><code>EuiccManager#startResolutionActivity</code></a> 时,å¯ä»¥é€šè¿‡ LUI 请求解决问题。å†æ¬¡ä»¥ç¡®è®¤ç ä¸ºä¾‹ï¼Œ<a href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager.html#startResolutionActivity(android.app.Activity,%20int,%20android.content.Intent,%20android.app.PendingIntent)" class="external"><code>EuiccManager#startResolutionActivity</code></a> 会触å‘å±å¹•æ˜¾ç¤º LUI æ¥è®©ç”¨æˆ·è¾“入确认ç ï¼Œè¾“入完æˆåŽï¼Œä¸‹è½½æ“作å³ä¼šæ¢å¤ã€‚è¿™ç§æ–¹æ³•ä½¿å¾—è¿è¥å•†åº”用能够完全控制在何时显示该界é¢ï¼ŒåŒæ—¶ä¹Ÿä¸º LPA/LUI æ供了一ç§æ‰©å±•æ–¹æ³•ï¼Œç”¨äºŽåœ¨å°†æ¥æ·»åŠ å¤„ç†â€œç”¨æˆ·å¯æ¢å¤é—®é¢˜â€çš„新方法(无需客户端应用åšå‡ºæ›´æ”¹ï¼‰ã€‚</p>
-<p>Android 9 在 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java"><code>EuiccService</code></a> 中定义了 LUI 应处ç†çš„上述å¯ä¿®æ­£çš„错误:</p>
+<p>Android 9 在 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java" class="external"><code>EuiccService</code></a> 中定义了 LUI 应处ç†çš„上述å¯ä¿®æ­£çš„错误:</p>
<pre class="prettyprint"><code>/**
* Alert the user that this action will result in an active SIM being
* deactivated. To implement the LUI triggered by the system, you need to define
@@ -160,7 +160,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
<p>为确ä¿æŸä¸ªé…置文件仅供其所有者访问,Android 采用了一ç§æœºåˆ¶å‘é…置文件所有者的应用(å³è¿è¥å•†åº”用)授予特殊æƒé™ã€‚Android å¹³å°ä¼šåŠ è½½å­˜å‚¨åœ¨é…置文件的访问规则文件 (ARF) 中的è¯ä¹¦ï¼Œå¹¶å‘由这些è¯ä¹¦ç­¾å的应用授予æƒé™ï¼Œä»¥å…许其调用 <code>EuiccManager</code> API。详细æµç¨‹å¦‚下所述:</p>
<ol>
-<li>è¿è¥å•†ç­¾ç½²è¿è¥å•†åº”用 APKï¼›<a href="https://developer.android.com/studio/command-line/apksigner">apksigner</a> 工具将公钥è¯ä¹¦é™„加到 APK。</li>
+<li>è¿è¥å•†ç­¾ç½²è¿è¥å•†åº”用 APKï¼›<a href="https://developer.android.com/studio/command-line/apksigner" class="external">apksigner</a> 工具将公钥è¯ä¹¦é™„加到 APK。</li>
<li><p>è¿è¥å•†/SM-DP+ 准备é…置文件åŠå…¶å…ƒæ•°æ®ï¼Œå…¶ä¸­çš„ ARF 包å«ä»¥ä¸‹å†…容:</p>
<ol>
@@ -185,7 +185,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
}
}
</code></pre>
-<p>è¦è¯¦ç»†äº†è§£åº”用签å,请å‚阅<a href="https://developer.android.com/studio/publish/app-signing">为您的应用签å</a>。è¦è¯¦ç»†äº†è§£è¿è¥å•†æƒé™ï¼Œè¯·å‚阅 <a href="/devices/tech/config/uicc">UICC è¿è¥å•†æƒé™</a>。</p>
+<p>è¦è¯¦ç»†äº†è§£åº”用签å,请å‚阅<a href="https://developer.android.com/studio/publish/app-signing" class="external">为您的应用签å</a>。è¦è¯¦ç»†äº†è§£è¿è¥å•†æƒé™ï¼Œè¯·å‚阅 <a href="/devices/tech/config/uicc">UICC è¿è¥å•†æƒé™</a>。</p>
<h2 id="making_an_lpa_app">å¼€å‘ LPA 应用</h2>
@@ -193,7 +193,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
<h3 id="hardwaremodem_requirements">硬件/调制解调器è¦æ±‚</h3>
-<p>eUICC 芯片上的 LPA å’Œ eSIM æ“作系统必须支æŒæœ€ä½Ž 2.0 或 2.2 版的 GSMA RSP(远程 SIM é…置)。您还应当安排使用具有与之匹é…çš„ RSP 版本的 SM-DP+ å’Œ SM-DS æœåŠ¡å™¨ã€‚è¦è¯¦ç»†äº†è§£ RSP 架构,请å‚阅 <a href="https://www.gsma.com/newsroom/all-documents/sgp-21-rsp-architecture-v2-2/">GSMA SGP.21 RSP 架构规范</a>。</p>
+<p>eUICC 芯片上的 LPA å’Œ eSIM æ“作系统必须支æŒæœ€ä½Ž 2.0 或 2.2 版的 GSMA RSP(远程 SIM é…置)。您还应当安排使用具有与之匹é…çš„ RSP 版本的 SM-DP+ å’Œ SM-DS æœåŠ¡å™¨ã€‚è¦è¯¦ç»†äº†è§£ RSP 架构,请å‚阅 <a href="https://www.gsma.com/newsroom/all-documents/sgp-21-rsp-architecture-v2-2/" class="external">GSMA SGP.21 RSP 架构规范</a>。</p>
<p>此外,è¦ä¸Ž Android 9 中的 eUICC API 集æˆï¼Œè®¾å¤‡è°ƒåˆ¶è§£è°ƒå™¨åº”å‘é€æ”¯æŒå·²ç¼–ç çš„ eUICC 功能的终端功能(本地é…置文件管ç†å’Œé…置文件下载)。它还需è¦å®žçŽ°ä»¥ä¸‹ API:</p>
@@ -205,13 +205,13 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
<p>调制解调器应将已å¯ç”¨é»˜è®¤å¯åŠ¨é…置文件的 eSIM å¡è¯†åˆ«ä¸ºæœ‰æ•ˆ SIM å¡ï¼Œå¹¶ä½¿è¯¥ SIM å¡ä¿æŒæ­£å¸¸ä½¿ç”¨çŠ¶æ€ã€‚</p>
-<p>有关调制解调器è¦æ±‚的完整列表,请å‚阅 <a href="/devices/tech/connect/esim-modem-reqs">eSIM 支æŒçš„调制解调器è¦æ±‚</a>。</p>
+<p>有关调制解调器è¦æ±‚的完整列表,请å‚阅 <a href="/devices/tech/connect/esim-modem-requirements">eSIM 支æŒçš„调制解调器è¦æ±‚</a>。</p>
<h3 id="euiccservice">EuiccService</h3>
<p>LPA 由两个独立的组件组æˆï¼ˆå¯åœ¨åŒä¸€ APK 中实现):LPA åŽç«¯å’Œ LPA ç•Œé¢æˆ– LUI。</p>
-<p>è¦å®žçŽ° LPA åŽç«¯ï¼Œæ‚¨å¿…须扩展 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java"><code>EuiccService</code></a> 并在清å•æ–‡ä»¶ä¸­å£°æ˜Žæ­¤æœåŠ¡ã€‚该æœåŠ¡å¿…须请求获得 <code>android.permission.BIND_EUICC_SERVICE</code> 系统æƒé™ï¼Œä»¥ç¡®ä¿åªæœ‰è¯¥ç³»ç»Ÿæ‰èƒ½ä¸Žä¹‹ç»‘定。该æœåŠ¡è¿˜å¿…须包å«å…·æœ‰ <code>android.service.euicc.EuiccService</code> æ“作的 intent 过滤器。如果设备上存在多个实现,则应将 intent 过滤器的优先级设置为éžé›¶å€¼ã€‚例如:</p>
+<p>è¦å®žçŽ° LPA åŽç«¯ï¼Œæ‚¨å¿…须扩展 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java" class="external"><code>EuiccService</code></a> 并在清å•æ–‡ä»¶ä¸­å£°æ˜Žæ­¤æœåŠ¡ã€‚该æœåŠ¡å¿…须请求获得 <code>android.permission.BIND_EUICC_SERVICE</code> 系统æƒé™ï¼Œä»¥ç¡®ä¿åªæœ‰è¯¥ç³»ç»Ÿæ‰èƒ½ä¸Žä¹‹ç»‘定。该æœåŠ¡è¿˜å¿…须包å«å…·æœ‰ <code>android.service.euicc.EuiccService</code> æ“作的 intent 过滤器。如果设备上存在多个实现,则应将 intent 过滤器的优先级设置为éžé›¶å€¼ã€‚例如:</p>
<pre class="prettyprint"><code>&lt;service
android:name=".EuiccServiceImpl"
android:permission="android.permission.BIND_EUICC_SERVICE"&gt;
@@ -220,7 +220,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
&lt;/intent-filter&gt;
&lt;/service&gt;
</code></pre>
-<p>Android 框架从内部确定处于活跃状æ€çš„ LPA,并视需è¦ä¸Žå…¶äº¤äº’ä»¥æ”¯æŒ Android eUICC API。系统会针对具有 <code>android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS</code> æƒé™çš„所有应用查询 <code>PackageManager</code>,而该æƒé™ä¸º <code>android.service.euicc.EuiccService</code> æ“作指定了一项æœåŠ¡ã€‚系统将选择优先级最高的æœåŠ¡ï¼Œå¦‚果未找到任何æœåŠ¡ï¼Œåˆ™ä¼šåœç”¨ LPA 支æŒã€‚</p>
+<p>Android 框架从内部确定处于活跃状æ€çš„ LPA,并视需è¦ä¸Žå…¶äº¤äº’ä»¥æ”¯æŒ Android eUICC API。系统会查询 <code>PackageManager</code>(针对具有 <code>android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS</code> æƒé™çš„所有应用),而该æƒé™ä¸º <code>android.service.euicc.EuiccService</code> æ“作指定了一项æœåŠ¡ã€‚系统将选择优先级最高的æœåŠ¡ï¼Œå¦‚果未找到任何æœåŠ¡ï¼Œåˆ™ä¼šåœç”¨ LPA 支æŒã€‚</p>
<p>è¦å®žçŽ° LUI,您必须为以下æ“作æä¾›æ“作组件:</p>
@@ -229,7 +229,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
<li><code>android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION</code></li>
</ul>
-<p>与æœåŠ¡ä¸€æ ·ï¼Œæ¯ä¸ªæ“作组件都必须获得 <code>android.permission.BIND_EUICC_SERVICE</code> 系统æƒé™ï¼Œè€Œä¸”都应当包å«å…·æœ‰é€‚当æ“作的 intent 过滤器ã€<code>android.service.euicc.category.EUICC_UI</code> 类别以åŠéžé›¶ä¼˜å…ˆçº§ã€‚选择这些æ“作组件的实现与选择 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java"><code>EuiccService</code></a> 实现所使用的逻辑是类似的。例如:</p>
+<p>与æœåŠ¡ä¸€æ ·ï¼Œæ¯ä¸ªæ“作组件都必须获得 <code>android.permission.BIND_EUICC_SERVICE</code> 系统æƒé™ï¼Œè€Œä¸”都应当包å«å…·æœ‰é€‚当æ“作的 intent 过滤器ã€<code>android.service.euicc.category.EUICC_UI</code> 类别以åŠéžé›¶ä¼˜å…ˆçº§ã€‚选择这些æ“作组件的实现与选择 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java" class="external"><code>EuiccService</code></a> 实现所使用的逻辑是类似的。例如:</p>
<pre class="prettyprint"><code>&lt;activity android:name=".MyLuiActivity"
android:exported="true"
android:permission="android.permission.BIND_EUICC_SERVICE"&gt;
@@ -243,7 +243,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
&lt;/intent-filter&gt;
&lt;/activity&gt;
</code></pre>
-<p>è¿™æ„味ç€ï¼Œå®žçŽ°è¿™äº›å±å¹•çš„ç•Œé¢çš„ APK å¯ä»¥ä¸Žå®žçŽ° <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java"><code>EuiccService</code></a> çš„ APK ä¸åŒã€‚使用å•ä¸ª APK 还是多个 APK(例如一个用于实现 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java"><code>EuiccService</code></a>,å¦ä¸€ä¸ªç”¨äºŽæä¾› LUI æ“作组件)å–决于设计时的选择。</p>
+<p>è¿™æ„味ç€ï¼Œå®žçŽ°è¿™äº›å±å¹•çš„ç•Œé¢çš„ APK å¯ä»¥ä¸Žå®žçŽ° <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java" class="external"><code>EuiccService</code></a> çš„ APK ä¸åŒã€‚使用å•ä¸ª APK 还是多个 APK(例如一个用于实现 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/euicc/EuiccService.java" class="external"><code>EuiccService</code></a>,å¦ä¸€ä¸ªç”¨äºŽæä¾› LUI æ“作组件)å–决于设计时的选择。</p>
<h3 id="euicccardmanager">EuiccCardManager</h3>
@@ -257,7 +257,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
<p>通过 <code>EuiccCardManager</code> 实现的é…置文件æ“作 API è¦æ±‚调用程åºæ˜¯ LPA。这是 Android 框架的强制è¦æ±‚。这æ„味ç€è°ƒç”¨ç¨‹åºå¿…须扩展 <code>EuiccService</code> 并在清å•æ–‡ä»¶ä¸­å¾—以声明(如å‰å‡ éƒ¨åˆ†æ‰€è¿°ï¼‰ã€‚</p>
<p>与 <code>EuiccManager</code> 类似,è¦ä½¿ç”¨ <code>EuiccCardManager</code> API,您的 LPA 必须先通过 <code>Context#getSystemService</code> èŽ·å– <code>EuiccCardManager</code> 的实例:</p>
-<pre class="prettyprint"><code>EuiccCardManager cardMgr = context.getSystemService(Context.EUICC_CARD_SERVICE);
+<pre class="prettyprint"><code>EuiccCardManager cardMgr = (EuiccCardManager) context.getSystemService(Context.EUICC_CARD_SERVICE);
</code></pre>
<p>接下æ¥ï¼Œè¦èŽ·å– eUICC 上的所有é…置文件,请执行以下命令:</p>
<pre class="prettyprint"><code>ResultCallback&lt;EuiccProfileInfo[]&gt; callback =
@@ -275,7 +275,7 @@ public static final String ACTION_RESOLVE_CONFIRMATION_CODE =
cardMgr.requestAllProfiles(eid, AsyncTask.THREAD_POOL_EXECUTOR, callback);
</code></pre>
-<p>在内部,<code>EuiccCardManager</code> 会通过 AIDL 接å£ç»‘定到 <code>EuiccCardController</code>(在电è¯è¿›ç¨‹ä¸­è¿è¡Œï¼‰ï¼Œè€Œä¸”æ¯ä¸ª <code>EuiccCardManager</code> 方法å‡å¯ä»¥é€šè¿‡ä¸åŒçš„专用 AIDL 接å£ä»Žç”µè¯è¿›ç¨‹æŽ¥æ”¶å›žè°ƒã€‚使用 <code>EuiccCardManager</code> API æ—¶ï¼Œè°ƒç”¨ç¨‹åº (LPA) 必须通过所调用的回调æä¾› <a href="https://developer.android.com/reference/java/util/concurrent/Executor"><code>Executor</code></a>。该 <code>Executor</code> å¯ä»¥åœ¨å•ä¸ªçº¿ç¨‹ä¸Šè¿è¡Œï¼Œä¹Ÿå¯ä»¥åœ¨çº¿ç¨‹æ± ä¸Šè¿è¡Œï¼Œå…·ä½“å–决于您的选择。</p>
+<p>在内部,<code>EuiccCardManager</code> 会通过 AIDL 接å£ç»‘定到 <code>EuiccCardController</code>(在电è¯è¿›ç¨‹ä¸­è¿è¡Œï¼‰ï¼Œè€Œä¸”æ¯ä¸ª <code>EuiccCardManager</code> 方法å‡å¯ä»¥é€šè¿‡ä¸åŒçš„专用 AIDL 接å£ä»Žç”µè¯è¿›ç¨‹æŽ¥æ”¶å›žè°ƒã€‚使用 <code>EuiccCardManager</code> API æ—¶ï¼Œè°ƒç”¨ç¨‹åº (LPA) 必须通过所调用的回调æä¾› <a href="https://developer.android.com/reference/java/util/concurrent/Executor" class="external"><code>Executor</code></a>。该 <code>Executor</code> å¯ä»¥åœ¨å•ä¸ªçº¿ç¨‹ä¸Šè¿è¡Œï¼Œä¹Ÿå¯ä»¥åœ¨çº¿ç¨‹æ± ä¸Šè¿è¡Œï¼Œå…·ä½“å–决于您的选择。</p>
<p>大多数 <code>EuiccCardManager</code> API 都具有相åŒçš„使用模å¼ã€‚例如,è¦å°†ç»‘定的é…置文件包加载到 eUICC,请执行以下命令:</p>
<pre class="prettyprint"><code>...
@@ -305,10 +305,10 @@ cardMgr.listNotifications(eid,
<p>您应该确ä¿ç‰ˆæœ¬é€šè¿‡ä»¥ä¸‹ CTS 测试用例(针对公共 API):</p>
-<p><a href="https://android.googlesource.com/platform/cts/+/master/tests/tests/telephony/src/android/telephony/">https://android.googlesource.com/platform/cts/+/master/tests/tests/telephony/src/android/telephony/</a></p>
+<p><a href="https://android.googlesource.com/platform/cts/+/master/tests/tests/telephony/src/android/telephony/euicc/cts" class="external">https://android.googlesource.com/platform/cts/+/master/tests/tests/telephony/src/android/telephony/</a> </p>
<p>实现è¿è¥å•†åº”用的è¿è¥å•†åº”该执行其常规的内部质é‡ä¿è¯å‘¨æœŸæµ‹è¯•ï¼Œä»¥ç¡®ä¿æ‰€æœ‰å®žçŽ°çš„功能都能正常è¿è¡Œã€‚è¿è¥å•†åº”用至少应能够列出åŒä¸€è¿è¥å•†æ‹¥æœ‰çš„所有订阅é…置文件,下载并安装é…置文件,激活é…置文件上的æœåŠ¡ï¼Œåœ¨é…置文件之间切æ¢ä»¥åŠåˆ é™¤é…置文件。</p>
-<p>如果您目å‰æ­£åœ¨å¼€å‘自己的 LPA,则应进行更严格的测试。您应与调制解调器供应商ã€eUICC 芯片或 eSIM æ“作系统供应商ã€SM-DP+ 供应商以åŠè¿è¥å•†è¿›è¡Œåˆä½œï¼Œä»¥è§£å†³ç›¸å…³é—®é¢˜å¹¶ç¡®ä¿ LPA 在 RSP 架构中的互æ“作性。进行大é‡çš„手动测试是必ä¸å¯å°‘的。为获得最佳测试覆盖率,您应éµå¾ª <a href="https://www.gsma.com/newsroom/all-documents/sgp-23-v1-2-rsp-test-specification/">GSMA SGP.23 RSP 测试计划</a>。</p>
+<p>如果您目å‰æ­£åœ¨å¼€å‘自己的 LPA,则应进行更严格的测试。您应与调制解调器供应商ã€eUICC 芯片或 eSIM æ“作系统供应商ã€SM-DP+ 供应商以åŠè¿è¥å•†è¿›è¡Œåˆä½œï¼Œä»¥è§£å†³ç›¸å…³é—®é¢˜å¹¶ç¡®ä¿ LPA 在 RSP 架构中的互æ“作性。进行大é‡çš„手动测试是必ä¸å¯å°‘的。为获得最佳测试覆盖率,您应éµå¾ª <a href="https://www.gsma.com/newsroom/all-documents/sgp-23-v1-2-rsp-test-specification/" class="external">GSMA SGP.23 RSP 测试计划</a>。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/connect/ims.html b/zh-cn/devices/tech/connect/ims.html
index b1087a6c..b7fc3791 100644
--- a/zh-cn/devices/tech/connect/ims.html
+++ b/zh-cn/devices/tech/connect/ims.html
@@ -24,7 +24,7 @@
<h1 id="implementing_ims" class="page-title">实现 IMS</h1>
-<p>Android 9 引入了一个å为 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/ims/">ImsService</a> çš„æ–° SystemApi 接å£ï¼Œå¯å¸®åŠ©æ‚¨å®žçŽ° IP 多媒体å­ç³»ç»Ÿ (IMS)。ImsService API 是 Android å¹³å°ä¸Žä¾›åº”商(å³è¿è¥å•†æ供的 IMS 实现)之间明确定义的接å£ã€‚</p>
+<p>Android 9 引入了一个å为 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/ims/" class="external">ImsService</a> çš„æ–° SystemApi 接å£ï¼Œå¯å¸®åŠ©æ‚¨å®žçŽ° IP 多媒体å­ç³»ç»Ÿ (IMS)。ImsService API 是 Android å¹³å°ä¸Žä¾›åº”商(å³è¿è¥å•†æ供的 IMS 实现)之间明确定义的接å£ã€‚</p>
<p><img src="/devices/tech/connect/images/imsservice.png" alt="ImsService 概览" width/></p>
@@ -34,9 +34,9 @@
<h2 id="examples_and_source">示例和æ¥æº</h2>
-<p>为了便于进行测试和开å‘,Android 在 AOSP 中æ供了一个应用,它å¯ä»¥å®žçŽ° ImsService API çš„æŸäº›éƒ¨åˆ†ã€‚您å¯ä»¥åœ¨ä»¥ä¸‹ä½ç½®æ‰¾åˆ°è¯¥åº”用:<a href="https://android.googlesource.com/platform/packages/services/Telephony/+/master/testapps/ImsTestService/">/testapps/ImsTestService</a>。</p>
+<p>为了便于进行测试和开å‘,Android 在 AOSP 中æ供了一个应用,它å¯ä»¥å®žçŽ° ImsService API çš„æŸäº›éƒ¨åˆ†ã€‚您å¯ä»¥åœ¨ä»¥ä¸‹ä½ç½®æ‰¾åˆ°è¯¥åº”用:<a href="https://android.googlesource.com/platform/packages/services/Telephony/+/master/testapps/ImsTestService/" class="external">/testapps/ImsTestService</a>。</p>
-<p>您å¯ä»¥åœ¨ <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/ims/ImsService.java">ImsService</a> 和该 API 的其他类中找到关于 ImsService API 的文档。</p>
+<p>您å¯ä»¥åœ¨ <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/ims/ImsService.java" class="external">ImsService</a> 和该 API 的其他类中找到关于 ImsService API 的文档。</p>
<h2 id="implementation">实现</h2>
@@ -90,7 +90,7 @@
<h4 id="feature_mmtel">FEATURE_MMTEL</h4>
-<p><code>ImsService</code> å¯å®žçŽ° IMS MMTEL 功能,该功能包å«å¯¹æ‰€æœ‰ IMS 媒体(IR.92 å’Œ IR.94 规范)的支æŒï¼ˆç´§æ€¥è¿žæŽ¥åˆ° IMS PDN 以进行紧急呼å«çš„æƒ…å†µé™¤å¤–ï¼‰ã€‚ä»»ä½•å¸Œæœ›æ”¯æŒ MMTEL 功能的 <code>ImsService</code> 实现都应该扩展 <code>android.telephony.ims.MmTelFeature</code> 基类,并在 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/ims/ImsService.java#335"><code>ImsService#createMmTelFeature</code></a> 中返回自定义 <code>MmTelFeature</code> 实现。</p>
+<p><code>ImsService</code> å¯å®žçŽ° IMS MMTEL 功能,该功能包å«å¯¹æ‰€æœ‰ IMS 媒体(IR.92 å’Œ IR.94 规范)的支æŒï¼ˆç´§æ€¥è¿žæŽ¥åˆ° IMS PDN 以进行紧急呼å«çš„æƒ…å†µé™¤å¤–ï¼‰ã€‚ä»»ä½•å¸Œæœ›æ”¯æŒ MMTEL 功能的 <code>ImsService</code> 实现都应该扩展 <code>android.telephony.ims.MmTelFeature</code> 基类,并在 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/ims/ImsService.java#335" class="external"><code>ImsService#createMmTelFeature</code></a> 中返回自定义 <code>MmTelFeature</code> 实现。</p>
<h4 id="feature_emergency_mmtel">FEATURE_EMERGENCY_MMTEL</h4>
@@ -113,8 +113,8 @@
<p>在 AndroidManifest.xml 中对 ImsService 进行正确定义åŽï¼Œå¿…须将平å°é…置为适时(安全地)绑定到 ImsService。框架å¯ç»‘å®šåˆ°ä»¥ä¸‹ä¸¤ç§ ImsService:</p>
<ol>
-<li>è¿è¥å•†â€œæ›¿æ¢â€ImsService:这类 ImsService 会预先加载到设备上,但与一个或多个手机è¿è¥å•†ç›¸å…³è”,并且åªæœ‰åœ¨æ’入匹é…çš„ SIM å¡æ—¶æ‰ä¼šç»‘定。该类型是使用 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#301"><code>key_config_ims_package_override</code></a> CarrierConfig 密钥é…置的。</li>
-<li>设备“默认â€ImsService:该类型是由原始设备制造商 (OEM) 加载到设备上的默认 ImsService。当è¿è¥å•† ImsService ä¸å¯ç”¨æ—¶ï¼Œå®ƒåº”该能够在任何情况下æä¾› IMS æœåŠ¡ã€‚在设备没有æ’å…¥ SIM å¡æˆ–æ’入的 SIM å¡æ²¡æœ‰å®‰è£…è¿è¥å•† ImsService çš„æƒ…å†µä¸‹ï¼Œè¿™ç§ ImsService éžå¸¸æœ‰ç”¨ã€‚该类型是在设备å åŠ å±‚ <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml#2517"><code>config_ims_package</code></a> 密钥中进行定义的。</li>
+<li>è¿è¥å•†â€œæ›¿æ¢â€ImsService:这类 ImsService 会预先加载到设备上,但与一个或多个手机è¿è¥å•†ç›¸å…³è”,并且åªæœ‰åœ¨æ’入匹é…çš„ SIM å¡æ—¶æ‰ä¼šç»‘定。该类型是使用 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CarrierConfigManager.java#309" class="external"><code>key_config_ims_package_override</code></a> CarrierConfig 密钥é…置的。</li>
+<li>设备“默认â€ImsService:该类型是由原始设备制造商 (OEM) 加载到设备上的默认 ImsService。当è¿è¥å•† ImsService ä¸å¯ç”¨æ—¶ï¼Œå®ƒåº”该能够在任何情况下æä¾› IMS æœåŠ¡ã€‚在设备没有æ’å…¥ SIM å¡æˆ–æ’入的 SIM å¡æ²¡æœ‰å®‰è£…è¿è¥å•† ImsService çš„æƒ…å†µä¸‹ï¼Œè¿™ç§ ImsService éžå¸¸æœ‰ç”¨ã€‚该类型是在设备å åŠ å±‚ <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml#2705" class="external"><code>config_ims_package</code></a> 密钥中进行定义的。</li>
</ol>
<p>这两ç§ç±»åž‹çš„ ImsService 实现必须是系统应用,或必须驻留在 /system/priv-app/ 文件夹中,以授予相应的由用户授予的æƒé™ï¼ˆå³ç”µè¯ã€éº¦å…‹é£Žã€ä½ç½®ã€ç›¸æœºå’Œé€šè®¯å½•æƒé™ï¼‰ã€‚é€šè¿‡éªŒè¯ IMS 实现的软件包å称是å¦ä¸Žä¸Šæ–‡å®šä¹‰çš„ CarrierConfig 或设备å åŠ å±‚值匹é…,仅绑定å—信任的应用。</p>
diff --git a/zh-cn/devices/tech/connect/third-party-call-apps.html b/zh-cn/devices/tech/connect/third-party-call-apps.html
index 8db627bc..5871d7c1 100644
--- a/zh-cn/devices/tech/connect/third-party-call-apps.html
+++ b/zh-cn/devices/tech/connect/third-party-call-apps.html
@@ -22,17 +22,17 @@
limitations under the License.
-->
-<h1 id="supporting_third_party_calling_apps" class="page-title">支æŒç¬¬ä¸‰æ–¹é€šè¯åº”用</h1>
+<h1 id="supporting_third-party_calling_apps" class="page-title">支æŒç¬¬ä¸‰æ–¹é€šè¯åº”用</h1>
<p>Android 9 æ供的 API å¯æ›´å¥½åœ°æ”¯æŒç¬¬ä¸‰æ–¹é€šè¯åº”用。第三方通è¯åº”ç”¨é€šå¸¸å€ŸåŠ©ç”µè¯ API(例如 <code>PHONE_STATE</code> 广播)与è¿è¥å•†é€šè¯å…±å­˜ã€‚因此,第三方通è¯åº”用必须礼让è¿è¥å•†é€šè¯ï¼Œè€Œä¸”通常会默默拒ç»åº”用中的æ¥ç”µï¼Œæˆ–者终止正在进行的通è¯ï¼Œä»¥ä¾¿ä¸ºè¿è¥å•†é€šè¯â€œè®©è·¯â€ã€‚</p>
<p>Android 9 中的 API 支æŒåœ¨è¿è¡Œç¬¬ä¸‰æ–¹åº”用的åŒæ—¶è¿›è¡Œè¿è¥å•†é€šè¯ã€‚这使得在è¿è¥å•†é€šè¯è¿‡ç¨‹ä¸­æŽ¥å¬ç¬¬ä¸‰æ–¹æ¥ç”µæˆä¸ºå¯èƒ½ã€‚该框架è¦è´Ÿè´£ç¡®ä¿ï¼Œåœ¨ç”¨æˆ·è¿›è¡Œç¬¬ä¸‰æ–¹åº”用通è¯æ—¶ä½¿è¿è¥å•†é€šè¯å¤„于呼å«ä¿æŒçŠ¶æ€ã€‚</p>
-<p>在 Android 9 中,建议您使用第三方通è¯åº”用æ¥å®žçŽ°è‡ªè¡Œç®¡ç†çš„ <code>ConnectionService</code> API。è¦è¯¦ç»†äº†è§£å¦‚何使用此 API 构建通è¯åº”用,请å‚阅<a href="https://developer.android.com/guide/topics/connectivity/telecom/selfManaged">构建通è¯åº”用</a>。</p>
+<p>在 Android 9 中,建议您使用第三方通è¯åº”用æ¥å®žçŽ°è‡ªè¡Œç®¡ç†çš„ <code>ConnectionService</code> API。è¦è¯¦ç»†äº†è§£å¦‚何使用此 API 构建通è¯åº”用,请å‚阅<a href="https://developer.android.com/guide/topics/connectivity/telecom/selfManaged" class="external">构建通è¯åº”用</a>。</p>
-<p>借助自行管ç†çš„ <code>ConnectionService</code> API,开å‘者还å¯ä»¥é€‰æ‹©ä½¿å…¶åº”用中的通è¯è®°å½•æ˜¾ç¤ºåœ¨ç³»ç»Ÿçš„通è¯è®°å½•ä¸­ï¼ˆè¯·å‚阅 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount#EXTRA_LOG_SELF_MANAGED_CALLS"><code>EXTRA_LOG_SELF_MANAGED_CALLS</code></a>ï¼‰ã€‚æ ¹æ® <a href="/compatibility/android-cdd#7_4_data_connectivity">Android 兼容性定义文档 (CDD)</a>(第 7.4.1.2 节)中的è¦æ±‚,您应确ä¿è‡ªå·±çš„拨å·å™¨/电è¯åº”用能够显示此类通è¯è®°å½•æ¡ç›®ï¼Œå¹¶æ˜¾ç¤ºæŽ¥å…¥ç›¸åº”通è¯çš„第三方通è¯åº”用的å称(è¦æŸ¥çœ‹æœ‰å…³ AOSP 拨å·å™¨åº”用如何满足此è¦æ±‚的示例,请å‚阅<a href="#call_log_entries_from_3p_calling_apps">æºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用的通è¯è®°å½•æ¡ç›®</a>)。</p>
+<p>借助自行管ç†çš„ <code>ConnectionService</code> API,开å‘者还å¯ä»¥é€‰æ‹©ä½¿å…¶åº”用中的通è¯è®°å½•æ˜¾ç¤ºåœ¨ç³»ç»Ÿçš„通è¯è®°å½•ä¸­ï¼ˆè¯·å‚阅 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount#EXTRA_LOG_SELF_MANAGED_CALLS" class="external"><code>EXTRA_LOG_SELF_MANAGED_CALLS</code></a>ï¼‰ã€‚æ ¹æ® <a href="/compatibility/android-cdd#7_4_data_connectivity">Android 兼容性定义文档 (CDD)</a>(第 7.4.1.2 节)中的è¦æ±‚,您应确ä¿è‡ªå·±çš„拨å·å™¨/电è¯åº”用能够显示此类通è¯è®°å½•æ¡ç›®ï¼Œå¹¶æ˜¾ç¤ºæŽ¥å…¥ç›¸åº”通è¯çš„第三方通è¯åº”用的å称(è¦æŸ¥çœ‹æœ‰å…³ AOSP 拨å·å™¨åº”用如何满足此è¦æ±‚的示例,请å‚阅<a href="#call_log_entries_from_3p_calling_apps">æºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用的通è¯è®°å½•æ¡ç›®</a>)。</p>
-<p>应用需è¦åœ¨å…¶è¿žæŽ¥ä¸­è®¾ç½® <a href="https://developer.android.com/reference/android/telecom/Connection.html#CAPABILITY_SUPPORT_HOLD"><code>CAPABILITY_SUPPORT_HOLD</code></a> å’Œ <a href="https://developer.android.com/reference/android/telecom/Connection.html#CAPABILITY_HOLD"><code>CAPABILITY_HOLD</code></a>。但在æŸäº›æƒ…况下,应用å¯èƒ½æ— æ³•ä½¿é€šè¯å¤„于呼å«ä¿æŒçŠ¶æ€ã€‚该框架包å«äº†åº”对此类情形的规定。</p>
+<p>应用需è¦åœ¨å…¶è¿žæŽ¥ä¸­è®¾ç½® <a href="https://developer.android.com/reference/android/telecom/Connection.html#CAPABILITY_SUPPORT_HOLD" class="external"><code>CAPABILITY_SUPPORT_HOLD</code></a> å’Œ <a href="https://developer.android.com/reference/android/telecom/Connection.html#CAPABILITY_HOLD" class="external"><code>CAPABILITY_HOLD</code></a>。但在æŸäº›æƒ…况下,应用å¯èƒ½æ— æ³•ä½¿é€šè¯å¤„于呼å«ä¿æŒçŠ¶æ€ã€‚该框架包å«äº†åº”对此类情形的规定。</p>
<h2 id="scenarios">场景</h2>
@@ -51,11 +51,11 @@
<figcaption><strong>图 1.</strong> 导致正在进行的第三方通è¯ä¸­æ–­çš„æ¥ç”µ</figcaption>
</figure>
-<p>您的拨å·å™¨åº”用å¯é€šè¿‡æ£€æŸ¥<a href="https://developer.android.com/reference/android/telecom/Call.Details.html#getExtras()">é€šè¯ extra</a> æ¥åˆ¤æ–­æŸä¸ªæ¥ç”µæ˜¯å¦ä¼šå¯¼è‡´å…¶ä»–通è¯ä¸­æ–­ã€‚请务必将 <a href="https://developer.android.com/reference/android/telecom/Connection.html#EXTRA_ANSWERING_DROPS_FG_CALL"><code>EXTRA_ANSWERING_DROPS_FG_CALL</code></a> 设置为 <code>TRUE</code>,并将 <a href="https://developer.android.com/reference/android/telecom/Connection.html#EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME"><code>EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME</code></a> 设置为接å¬ç§»åŠ¨ç½‘络æ¥ç”µæ—¶å…¶é€šè¯ä¼šè¢«ä¸­æ–­çš„应用的å称。</p>
+<p>您的拨å·å™¨åº”用å¯é€šè¿‡æ£€æŸ¥<a href="https://developer.android.com/reference/android/telecom/Call.Details.html#getExtras()" class="external">é€šè¯ extra</a> æ¥åˆ¤æ–­æŸä¸ªæ¥ç”µæ˜¯å¦ä¼šå¯¼è‡´å…¶ä»–通è¯ä¸­æ–­ã€‚请务必将 <a href="https://developer.android.com/reference/android/telecom/Connection.html#EXTRA_ANSWERING_DROPS_FG_CALL" class="external"><code>EXTRA_ANSWERING_DROPS_FG_CALL</code></a> 设置为 <code>TRUE</code>,并将 <a href="https://developer.android.com/reference/android/telecom/Connection.html#EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME" class="external"><code>EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME</code></a> 设置为接å¬ç§»åŠ¨ç½‘络æ¥ç”µæ—¶å…¶é€šè¯ä¼šè¢«ä¸­æ–­çš„应用的å称。</p>
<h3 id="call_log_entries_from_3p_calling_apps">æºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用的通è¯è®°å½•æ¡ç›®</h3>
-<p>第三方通è¯åº”用的开å‘者å¯ä»¥é€‰æ‹©è®©å…¶åº”用中的通è¯è®°å½•æ˜¾ç¤ºåœ¨ç³»ç»Ÿçš„通è¯è®°å½•ä¸­ï¼ˆè¯·å‚阅 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount#EXTRA_LOG_SELF_MANAGED_CALLS"><code>EXTRA_LOG_SELF_MANAGED_CALLS</code></a>)。这æ„味ç€é€šè¯è®°å½•ä¸­å¯ä»¥åŒ…å«æœ‰å…³éžç§»åŠ¨ç½‘络通è¯çš„æ¡ç›®ã€‚</p>
+<p>第三方通è¯åº”用的开å‘者å¯ä»¥é€‰æ‹©ä½¿å…¶åº”用中的通è¯è®°å½•æ˜¾ç¤ºåœ¨ç³»ç»Ÿçš„通è¯è®°å½•ä¸­ï¼ˆè¯·å‚阅 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount#EXTRA_LOG_SELF_MANAGED_CALLS" class="external"><code>EXTRA_LOG_SELF_MANAGED_CALLS</code></a>)。这æ„味ç€é€šè¯è®°å½•ä¸­å¯ä»¥åŒ…å«æœ‰å…³éžç§»åŠ¨ç½‘络通è¯çš„æ¡ç›®ã€‚</p>
<p>当 AOSP 拨å·å™¨åº”用显示与第三方通è¯åº”用相关的通è¯è®°å½•æ¡ç›®æ—¶ï¼Œå‘生通è¯çš„应用的å称将显示在通è¯è®°å½•ä¸­ï¼Œå¦‚下图所示:</p>
@@ -64,13 +64,14 @@
<figcaption><strong>图 2.</strong> 拨å·å™¨åº”用上显示的通è¯è®°å½•æ¡ç›®ï¼ˆåŒ…å«ç¬¬ä¸‰æ–¹é€šè¯åº”用的å称)</figcaption>
</figure>
-<p>è¦ç¡®å®šä¸Žé€šè¯è®°å½•æ¡ç›®ç›¸å…³è”的应用的å称,请使用通è¯è®°å½•æ供程åºä¸­çš„ <a href="https://developer.android.com/reference/android/provider/CallLog.Calls.html#PHONE_ACCOUNT_COMPONENT_NAME"><code>PHONE_ACCOUNT_COMPONENT_NAME</code></a> å’Œ <a href="https://developer.android.com/reference/android/provider/CallLog.Calls.html#PHONE_ACCOUNT_ID"><code>PHONE_ACCOUNT_ID</code></a> 列创建一个 <a href="https://developer.android.com/reference/android/telecom/PhoneAccountHandle.html#PhoneAccountHandle(android.content.ComponentName, java.lang.String)"><code>PhoneAccountHandle</code></a> 实例,以用于识别通è¯è®°å½•æ¡ç›®çš„æ¥æºã€‚查询 <a href="https://developer.android.com/reference/android/telecom/TelecomManager.html#getPhoneAccount(android.telecom.PhoneAccountHandle)"><code>TelecomManager</code></a> 以获å–相应 PhoneAccount 的详细信æ¯ã€‚<br />è¦ç¡®å®šæŸæ¡é€šè¯è®°å½•æ¡ç›®æ˜¯å¦æºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用,请检查 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#getCapabilities()"><code>PhoneAccount</code> 功能</a>,查看是å¦å·²è®¾ç½® <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#CAPABILITY_SELF_MANAGED"><code>CAPABILITY_SELF_MANAGED</code></a>。</p>
+<p>è¦ç¡®å®šä¸Žé€šè¯è®°å½•æ¡ç›®ç›¸å…³è”的应用的å称,请使用通è¯è®°å½•æ供程åºä¸­çš„ <a href="https://developer.android.com/reference/android/provider/CallLog.Calls.html#PHONE_ACCOUNT_COMPONENT_NAME" class="external"><code>PHONE_ACCOUNT_COMPONENT_NAME</code></a> å’Œ <a href="https://developer.android.com/reference/android/provider/CallLog.Calls.html#PHONE_ACCOUNT_ID" class="external"><code>PHONE_ACCOUNT_ID</code></a> 列创建一个 <a href="https://developer.android.com/reference/android/telecom/PhoneAccountHandle.html#PhoneAccountHandle(android.content.ComponentName,%20java.lang.String)" class="external"><code>PhoneAccountHandle</code></a> 实例,以用于识别通è¯è®°å½•æ¡ç›®çš„æ¥æºã€‚查询 <a href="https://developer.android.com/reference/android/telecom/TelecomManager.html#getPhoneAccount(android.telecom.PhoneAccountHandle)" class="external"><code>TelecomManager</code></a> 以获å–相应 PhoneAccount 的详细信æ¯ã€‚<br />
+è¦ç¡®å®šæŸæ¡é€šè¯è®°å½•æ¡ç›®æ˜¯å¦æºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用,请检查 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#getCapabilities()" class="external"><code>PhoneAccount</code> 功能</a>,查看是å¦å·²è®¾ç½® <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#CAPABILITY_SELF_MANAGED" class="external"><code>CAPABILITY_SELF_MANAGED</code></a>。</p>
-<p>返回的 <code>PhoneAccount</code> çš„ <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#getLabel()"><code>getLabel</code></a> 方法将返回与相关通è¯è®°å½•æ¡ç›®ï¼ˆæºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用)相关è”的应用的å称。</p>
+<p>返回的 <code>PhoneAccount</code> çš„ <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#getLabel()" class="external"><code>getLabel</code></a> 方法将返回与相关通è¯è®°å½•æ¡ç›®ï¼ˆæºè‡ªç¬¬ä¸‰æ–¹é€šè¯åº”用)相关è”的应用的å称。</p>
<h2 id="validation">验è¯</h2>
-<p>è¦æµ‹è¯•æ‚¨çš„设备是å¦æ”¯æŒç¬¬ä¸‰æ–¹é€šè¯åº”用,请使用 Telecomm 测试应用,该应用å¯å®žçŽ°è‡ªè¡Œç®¡ç†çš„ ConnectionService API。该应用ä½äºŽ <a href="https://android.googlesource.com/platform/packages/services/Telecomm/+/master/testapps/"><code>/packages/services/Telecomm/testapps/</code></a> 中。</p>
+<p>è¦æµ‹è¯•æ‚¨çš„设备是å¦æ”¯æŒç¬¬ä¸‰æ–¹é€šè¯åº”用,请使用 Telecomm 测试应用,该应用å¯å®žçŽ°è‡ªè¡Œç®¡ç†çš„ ConnectionService API。该应用ä½äºŽ <a href="https://android.googlesource.com/platform/packages/services/Telecomm/+/master/testapps/" class="external"><code>/packages/services/Telecomm/testapps/</code></a> 中。</p>
<ol>
<li><p>使用以下命令从 Android æºä»£ç ä»£ç åº“的根目录构建测试应用:</p>
diff --git a/zh-cn/devices/tech/connect/wifi-aware.html b/zh-cn/devices/tech/connect/wifi-aware.html
index 8e6ca80f..4dcfe581 100644
--- a/zh-cn/devices/tech/connect/wifi-aware.html
+++ b/zh-cn/devices/tech/connect/wifi-aware.html
@@ -22,17 +22,17 @@
limitations under the License.
-->
-<h1 id="wi_fi_aware" class="page-title">WLAN 感知</h1>
+<h1 id="wi-fi_aware" class="page-title">WLAN 感知</h1>
-<p>通过 Android 8.0 中新增的 <a href="https://developer.android.com/guide/topics/connectivity/wifi-aware.html">WLAN 感知</a>功能,支æŒè®¾å¤‡å¯ä»¥ç›´æŽ¥ä½¿ç”¨ WLAN 感知åè®®å‘现其他设备ã€ä¸Žå…¶ä»–设备进行互连,以åŠå°†è¦†ç›–范围扩展到其他设备(Android 9 中新增的功能),而无需连接到互è”网或移动网络。此功能是基于 <a href="https://www.wi-fi.org/">WLAN è”盟</a> (WFA) <a href="https://www.wi-fi.org/discover-wi-fi/wi-fi-aware">WLAN 感知规范</a>(2.0 版)构建的,它支æŒåœ¨æ–­å¼€ç½‘络的情况下,在å¯ä¿¡è®¾å¤‡ä¸Žåº”用之间轻æ¾å…±äº«é«˜åžåé‡æ•°æ®ã€‚</p>
+<p>通过 Android 8.0 中新增的 <a href="https://developer.android.com/guide/topics/connectivity/wifi-aware.html" class="external">WLAN 感知</a>功能,支æŒè®¾å¤‡å¯ä»¥ç›´æŽ¥ä½¿ç”¨ WLAN 感知åè®®å‘现其他设备ã€ä¸Žå…¶ä»–设备进行互连,以åŠå°†è¦†ç›–范围扩展到其他设备(Android 9 中新增的功能),而无需连接到互è”网或移动网络。此功能是基于 <a href="https://www.wi-fi.org/" class="external">WLAN è”盟</a> (WFA) <a href="https://www.wi-fi.org/discover-wi-fi/wi-fi-aware" class="external">WLAN 感知规范</a>(2.0 版)构建的,它支æŒåœ¨æ–­å¼€ç½‘络的情况下,在å¯ä¿¡è®¾å¤‡ä¸Žåº”用之间轻æ¾å…±äº«é«˜åžåé‡æ•°æ®ã€‚</p>
<h2 id="examples_and_source">示例和æ¥æº</h2>
<p>è¦ä½¿ç”¨æ­¤åŠŸèƒ½ï¼Œè®¾å¤‡åˆ¶é€ å•†åº”采用在 Android å¼€æºé¡¹ç›® (AOSP) 中æ供的 WLAN <a href="/devices/architecture/hidl">硬件接å£è®¾è®¡è¯­è¨€ (HIDL)</a>。HIDL å–代了之å‰ä½¿ç”¨çš„<a href="/devices/architecture/hal">硬件抽象层 (HAL)</a> 结构,以便通过指定收集到接å£å’Œè½¯ä»¶åŒ…的类型和方法调用æ¥ç®€åŒ–实现æµç¨‹ã€‚</p>
-<p>借助 WLAN HIDL 使用 WLAN 感知功能:hardware/interfaces/wifi/1.2。WLAN 感知 HAL 表é¢éžå¸¸å¤§ï¼›<a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/wifi/">hardware/interfaces/wifi/1.2/README-NAN.md</a> 文件æ述了框架当å‰ä½¿ç”¨çš„å­é›†ã€‚</p>
+<p>借助 WLAN HIDL 使用 WLAN 感知功能:hardware/interfaces/wifi/1.2。WLAN 感知 HAL 表é¢éžå¸¸å¤§ï¼›<a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/wifi/1.2/README-NAN.md" class="external">hardware/interfaces/wifi/1.2/README-NAN.md</a> 文件æ述了框架当å‰ä½¿ç”¨çš„å­é›†ã€‚</p>
-<p>您å¯ä»¥å‚考旧版 WLAN HAL æ¥äº†è§£å®ƒä¸Žæ–° HIDL 接å£ä¹‹é—´çš„关系:<a href="https://android.googlesource.com/platform/hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h">hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h</a>。</p>
+<p>您å¯ä»¥å‚考旧版 WLAN HAL æ¥äº†è§£å®ƒä¸Žæ–° HIDL 接å£ä¹‹é—´çš„关系:<a href="https://android.googlesource.com/platform/hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h" class="external">hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h</a>。</p>
<h2 id="implementation">实现</h2>
diff --git a/zh-cn/devices/tech/connect/wifi-debug.html b/zh-cn/devices/tech/connect/wifi-debug.html
index af7d2c31..1cae3751 100644
--- a/zh-cn/devices/tech/connect/wifi-debug.html
+++ b/zh-cn/devices/tech/connect/wifi-debug.html
@@ -68,7 +68,7 @@
<h3 id="implementation">实现</h3>
-<p>有关å‚考实现,请å‚阅供应商 HAL 中的<a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/wifi/">默认实现</a>。</p>
+<p>有关å‚考实现,请å‚阅供应商 HAL 中的<a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/wifi/1.2/default/wifi_chip.cpp#1388" class="external">默认实现</a>。</p>
<p>您å¯ä»¥é€šè¿‡å°†èµ„æº <code>config_wifi_enable_wifi_firmware_debugging</code> 设置为 false æ¥åœç”¨å›ºä»¶æ—¥å¿—记录。</p>
@@ -80,12 +80,12 @@
<h3 id="manual_test">手动测试</h3>
-<p>è¿è¡Œä»¥ä¸‹æ‰‹åŠ¨æµ‹è¯•ï¼Œä»¥éªŒè¯ <a href="https://source.android.com/devices/tech/debug/#debuggerd">tombstone 目录</a>中的旧文件是å¦å·²è¢«åˆ é™¤ã€‚</p>
+<p>è¿è¡Œä»¥ä¸‹æ‰‹åŠ¨æµ‹è¯•ï¼Œä»¥éªŒè¯ <a href="/devices/tech/debug/#debuggerd">tombstone 目录</a>中的旧文件是å¦å·²è¢«åˆ é™¤ã€‚</p>
<ol>
<li>å¼€å¯ WLAN。</li>
<li>连接到网络。</li>
-<li>生æˆ<a href="setup/contribute/read-bug-reports">错误报告</a>。</li>
+<li>生æˆ<a href="/setup/contribute/read-bug-reports">错误报告</a>。</li>
<li>检查 bugreport zip æ–‡ä»¶å¹¶éªŒè¯ <code>/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt</code> 中是å¦åŒ…å«å·²å½’档的固件日志。</li>
</ol>
diff --git a/zh-cn/devices/tech/connect/wifi-hal.html b/zh-cn/devices/tech/connect/wifi-hal.html
index be4be71d..a8f31f2a 100644
--- a/zh-cn/devices/tech/connect/wifi-hal.html
+++ b/zh-cn/devices/tech/connect/wifi-hal.html
@@ -21,7 +21,7 @@
limitations under the License.
-->
-<h1 id="wi_fi_hal" class="page-title">WLAN HAL</h1>
+<h1 id="wi-fi_hal" class="page-title">WLAN HAL</h1>
<p>WLAN 框架具有三个 WLAN HAL 表é¢ï¼Œåˆ†åˆ«ç”±ä¸‰ä¸ªä¸åŒçš„ HIDL 软件包表示:</p>
@@ -33,7 +33,7 @@
<h2 id="vendor_hal">供应商 HAL</h2>
-<p>供应商 HAL æä¾› Android 专用命令。供应商 HAL 对于基础架构 Station (STA) å’Œ Soft AP (SAP) 模å¼çš„正常è¿è¡Œè€Œè¨€æ˜¯å¯é€‰çš„(ä¸æ˜¯å¿…需的)。ä¸è¿‡ï¼Œå¯¹äºŽ <a href="/devices/tech/connect/wifi-aware">WLAN 感知</a>å’Œ <a href="/devices/tech/connect/wifi-rtt">WLAN RTT</a> æœåŠ¡è€Œè¨€ï¼Œä¾›åº”商 HAL 是必需的。</p>
+<p>供应商 HAL æä¾› Android 专用命令。供应商 HAL 对于基础架构 Station (STA) å’Œ Soft AP (SAP) 模å¼çš„正常è¿è¡Œè€Œè¨€æ˜¯å¯é€‰çš„(ä¸æ˜¯å¿…需的)。ä¸è¿‡ï¼Œå¯¹äºŽ <a href="/devices/tech/connect/wifi-aware">WLAN 感知</a>å’Œ <a href="/devices/tech/connect/wifi-rtt">WLAN RTT</a> æœåŠ¡è€Œè¨€ï¼Œä¾›åº”商 HAL æ˜¯å¿…è¦ HAL。</p>
<p>在 HIDL 之å‰ï¼ˆå³ Android 8.0 版本之å‰ï¼‰ï¼ŒAndroid 使用的是现在称为“旧版 HALâ€çš„ HAL 机制。<em></em>Android æºä»£ç ç›®å‰ä½¿ç”¨åœ¨æ—§ç‰ˆ HAL 之上è¿è¡Œçš„ shim æ¥æä¾› HIDL 默认实现。</p>
@@ -51,9 +51,9 @@
<p>hostapd æºä»£ç ä½äºŽ <code>external/wpa_supplicant_8/hostapd</code> 中。æä¾› HIDL 接å£çš„ hostapd 代ç ä½äºŽ <code>hidl</code> å­ç›®å½•ä¸­ã€‚</p>
-<h2 id="wi_fi_multi_interface_concurrency">WLAN 多接å£å¹¶å‘</h2>
+<h2 id="wi-fi_multi-interface_concurrency">WLAN 多接å£å¹¶å‘</h2>
-<p>ä¸åŒçš„ Android 设备å¯ä»¥å¹¶è¡Œæ”¯æŒä¸åŒçš„ WLAN 接å£ç»„åˆã€‚å—支æŒçš„组åˆåœ¨ HAL 中定义,并æ供给框架。规范格å¼åœ¨ <code>android/hardware/interfaces/wifi/1.0/IWifiChip.hal</code> 中定义。例如,一å°è®¾å¤‡å¯ä»¥æ”¯æŒä¸€ä¸ª STA 和一个 NAN(<a href="https://developer.android.com/guide/topics/connectivity/wifi-aware">WLAN 感知</a>)类型或点对点(<a href="https://developer.android.com/guide/topics/connectivity/wifip2p">WLAN ç›´è¿ž</a>)类型的接å£ï¼ˆä½†ä¸èƒ½åŒæ—¶æ”¯æŒè¿™ä¸¤ç§æŽ¥å£ï¼‰ã€‚è¿™å¯ä»¥è¡¨ç¤ºä¸ºï¼š</p>
+<p>ä¸åŒçš„ Android 设备å¯ä»¥å¹¶è¡Œæ”¯æŒä¸åŒçš„ WLAN 接å£ç»„åˆã€‚å—支æŒçš„组åˆåœ¨ HAL 中定义,并æ供给框架。规范格å¼åœ¨ <code>android/hardware/interfaces/wifi/1.0/IWifiChip.hal</code> 中定义。例如,一å°è®¾å¤‡å¯ä»¥æ”¯æŒä¸€ä¸ª STA 和一个 NAN(<a href="https://developer.android.com/guide/topics/connectivity/wifi-aware" class="external">WLAN 感知</a>)类型或点对点(<a href="https://developer.android.com/guide/topics/connectivity/wifip2p" class="external">WLAN ç›´è¿ž</a>)类型的接å£ï¼ˆä½†ä¸èƒ½åŒæ—¶æ”¯æŒè¿™ä¸¤ç§æŽ¥å£ï¼‰ã€‚è¿™å¯ä»¥è¡¨ç¤ºä¸ºï¼š</p>
<p><code>[{STA} &lt;= 1, {NAN,P2P} &lt;= 1]</code></p>
diff --git a/zh-cn/devices/tech/connect/wifi-overview.html b/zh-cn/devices/tech/connect/wifi-overview.html
index b2ea569a..d5b3aed8 100644
--- a/zh-cn/devices/tech/connect/wifi-overview.html
+++ b/zh-cn/devices/tech/connect/wifi-overview.html
@@ -42,9 +42,9 @@
<h2 id="application_framework">应用框架</h2>
-<p>应用代ç ä½äºŽåº”用框架级别,它使用å„ç§ <a href="https://developer.android.com/reference/android/net/wifi/package-summary">android.net.wifi</a> API 与 WLAN 框架和硬件进行交互。此代ç åœ¨å†…部通过 Binder IPC 机制调用 WLAN 进程。</p>
+<p>应用代ç ä½äºŽåº”用框架级别,它使用å„ç§ <a href="https://developer.android.com/reference/android/net/wifi/package-summary" class="external">android.net.wifi</a> API 与 WLAN 框架和硬件进行交互。此代ç åœ¨å†…部通过 Binder IPC 机制调用 WLAN 进程。</p>
-<h2 id="wi_fi_services">WLAN æœåŠ¡</h2>
+<h2 id="wi-fi_services">WLAN æœåŠ¡</h2>
<p>WLAN æœåŠ¡åœ¨ç³»ç»ŸæœåŠ¡ä¸­è¿è¡Œï¼Œè¿™ç±»æœåŠ¡ä½äºŽ <code>frameworks/opt/net/wifi</code> 中。WLAN æœåŠ¡é€šè¿‡ HIDL 与 WLAN HAL 进行通信。</p>
@@ -59,7 +59,7 @@
<p>此外,WLAN 框架还包括一个独立的进程 <strong>wificond</strong>,此进程ä½äºŽ <code>system/connectivity/wificond</code> 中。<strong>wificond</strong> 进程通过标准 <code>nl80211</code> 命令与 WLAN 驱动程åºè¿›è¡Œé€šä¿¡ã€‚</p>
-<h2 id="wi_fi_hals">WLAN HAL</h2>
+<h2 id="wi-fi_hals">WLAN HAL</h2>
<p>WLAN 框架具有三个 WLAN HAL 表é¢ï¼Œåˆ†åˆ«ç”±ä¸‰ä¸ªä¸åŒçš„ HIDL 软件包表示:供应商 HALã€å®¢æˆ·ç«¯ HAL å’Œ Hostapd HAL。</p>
diff --git a/zh-cn/devices/tech/connect/wifi-rtt.html b/zh-cn/devices/tech/connect/wifi-rtt.html
index 504d9d6d..fe62da2e 100644
--- a/zh-cn/devices/tech/connect/wifi-rtt.html
+++ b/zh-cn/devices/tech/connect/wifi-rtt.html
@@ -22,9 +22,9 @@
limitations under the License.
-->
-<h1 id="wi_fi_rtt_ieee_80211mc" class="page-title">WLAN RTT (IEEE 802.11mc)</h1>
+<h1 id="wi-fi_rtt_ieee_80211mc" class="page-title">WLAN RTT (IEEE 802.11mc)</h1>
-<p>Android 9 中的 <a href="https://developer.android.com/reference/android/net/wifi/rtt/package-summary">WLAN 往返时间 (RTT)</a> 功能å…许设备测é‡ä¸Žå…¶ä»–支æŒè®¾å¤‡çš„è·ç¦»ï¼šæ— è®ºå®ƒä»¬æ˜¯æŽ¥å…¥ç‚¹ (AP) 还是 WLAN æ„ŸçŸ¥å¯¹ç­‰è®¾å¤‡ï¼ˆå¦‚æžœè®¾å¤‡æ”¯æŒ <a href="/devices/tech/connect/wifi-aware">WLAN 感知</a>)。此功能基于 IEEE 802.11mc å议,使应用能够使用准确性更高的定ä½åŠŸèƒ½å’Œå¢žå¼ºçš„感知功能。</p>
+<p>Android 9 中的 <a href="https://developer.android.com/guide/topics/connectivity/wifi-rtt" class="external">WLAN 往返时间 (RTT)</a> 功能å…许设备测é‡ä¸Žå…¶ä»–支æŒè®¾å¤‡çš„è·ç¦»ï¼šæ— è®ºå®ƒä»¬æ˜¯æŽ¥å…¥ç‚¹ (AP) 还是 WLAN æ„ŸçŸ¥å¯¹ç­‰è®¾å¤‡ï¼ˆå¦‚æžœè®¾å¤‡æ”¯æŒ <a href="/devices/tech/connect/wifi-aware">WLAN 感知</a>)。此功能基于 IEEE 802.11mc å议,使应用能够使用准确性更高的定ä½åŠŸèƒ½å’Œå¢žå¼ºçš„感知功能。</p>
<h2 id="examples_and_source">示例和æ¥æº</h2>
@@ -32,7 +32,7 @@
<p>借助 WLAN HIDL 使用 WLAN RTT 功能:<code>hardware/interfaces/wifi/1.0</code> 或更高版本。</p>
-<p>您å¯ä»¥å‚考旧版 WLAN HAL æ¥äº†è§£å®ƒä¸Žæ–° HIDL 接å£ä¹‹é—´çš„关系:<a href="https://android.googlesource.com/platform/hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h">hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h</a>。</p>
+<p>您å¯ä»¥å‚考旧版 WLAN HAL æ¥äº†è§£å®ƒä¸Žæ–° HIDL 接å£ä¹‹é—´çš„关系:<a href="https://android.googlesource.com/platform/hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h" class="external">hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h</a>。</p>
<h2 id="implementation">实现</h2>
@@ -64,7 +64,7 @@
<h2 id="validation">验è¯</h2>
-<p>这项功能有适用的 Android 兼容性测试套件 (CTS) 测试。CTS 会检测何时å¯ç”¨äº†è¿™é¡¹åŠŸèƒ½ï¼Œå¹¶ä¼šè‡ªåŠ¨åŒ…å«ç›¸å…³æµ‹è¯•ã€‚您也å¯ä»¥ä½¿ç”¨<a href="/devices/tech/test_infra/tradefed/fundamentals/vts">供应商测试套件 (VTS)</a> å’Œ <a href="https://android.googlesource.com/platform/tools/test/connectivity/+/master/acts/tests/google/wifi/">acts/sl4a</a>(用于执行扩展程åºé›†æˆæµ‹è¯•çš„测试套件)æ¥æµ‹è¯•æ­¤åŠŸèƒ½ã€‚</p>
+<p>这项功能有适用的 Android 兼容性测试套件 (CTS) 测试。CTS 会检测何时å¯ç”¨äº†è¿™é¡¹åŠŸèƒ½ï¼Œå¹¶ä¼šè‡ªåŠ¨åŒ…å«ç›¸å…³æµ‹è¯•ã€‚您也å¯ä»¥ä½¿ç”¨<a href="/devices/tech/test_infra/tradefed/fundamentals/vts">供应商测试套件 (VTS)</a> å’Œ <a href="https://android.googlesource.com/platform/tools/test/connectivity/+/master/acts/tests/google/wifi/" class="external">acts/sl4a</a>(用于执行扩展程åºé›†æˆæµ‹è¯•çš„测试套件)æ¥æµ‹è¯•æ­¤åŠŸèƒ½ã€‚</p>
<h3 id="unit_tests">å•å…ƒæµ‹è¯•</h3>
diff --git a/zh-cn/devices/tech/connect/wifi-sta-ap-concurrency.html b/zh-cn/devices/tech/connect/wifi-sta-ap-concurrency.html
index 0b28ca5f..a46201c6 100644
--- a/zh-cn/devices/tech/connect/wifi-sta-ap-concurrency.html
+++ b/zh-cn/devices/tech/connect/wifi-sta-ap-concurrency.html
@@ -22,7 +22,7 @@
limitations under the License.
-->
-<h1 id="wi_fi_staap_concurrency" class="page-title">WLAN STA/AP 并å‘</h1>
+<h1 id="wi-fi_staap_concurrency" class="page-title">WLAN STA/AP 并å‘</h1>
<p>Android 9 引入了å¯è®©è®¾å¤‡åŒæ—¶åœ¨ STA å’Œ AP 模å¼ä¸‹è¿è¡Œçš„功能。对于支æŒåŒé¢‘å¹¶å‘ (DBS) 的设备,此功能让一些新功能得以实现,例如在用户想è¦å¯ç”¨çƒ­ç‚¹ (softAP) æ—¶ä¸ä¼šä¸­æ–­ STA WLAN。</p>
diff --git a/zh-cn/devices/tech/dalvik/improvements.html b/zh-cn/devices/tech/dalvik/improvements.html
index 141027de..9a7e8f22 100644
--- a/zh-cn/devices/tech/dalvik/improvements.html
+++ b/zh-cn/devices/tech/dalvik/improvements.html
@@ -200,7 +200,7 @@
<h2 id="faster-native-methods">更快速的原生方法</h2>
<p>
- 使用 <a class="external" href="https://android.googlesource.com/platform/libcore/+/master/dalvik/src/main/java/dalvik/annotation/optimization/FastNative.java"><code>@FastNative</code></a> å’Œ <a class="external" href="https://android.googlesource.com/platform/libcore/+/master/dalvik/src/main/java/dalvik/annotation/optimization/CriticalNative.java"><code>@CriticalNative</code></a> 注解å¯å®žçŽ°å¯¹ Java åŽŸç”ŸæŽ¥å£ (JNI) 更快速的原生调用。这ç§å†…置的 ART è¿è¡Œæ—¶ä¼˜åŒ–å¯åŠ å¿« JNI 转æ¢ï¼Œå¹¶å–代现在已弃用的 !<em>bang JNI 标记。</em>注解对éžåŽŸç”Ÿæ–¹æ³•æ²¡æœ‰ä»»ä½•å½±å“,并且仅适用于 <code>bootclasspath</code> ä¸Šçš„å¹³å° Java 语言代ç ï¼ˆæ—  Play 商店更新)。
+ 使用 <a class="external" href="https://android.googlesource.com/platform/libcore/+/master/dalvik/src/main/java/dalvik/annotation/optimization/FastNative.java"><code>@FastNative</code></a> å’Œ <a class="external" href="https://android.googlesource.com/platform/libcore/+/master/dalvik/src/main/java/dalvik/annotation/optimization/CriticalNative.java"><code>@CriticalNative</code></a> 注解å¯ä»¥æ›´å¿«é€Ÿåœ°å¯¹ Java åŽŸç”ŸæŽ¥å£ (JNI) 进行原生调用。这些内置的 ART è¿è¡Œæ—¶ä¼˜åŒ–å¯åŠ å¿« JNI 转æ¢é€Ÿåº¦ï¼Œå¹¶å–代现在已弃用的 !<em>bang JNI 注解。</em>注解对éžåŽŸç”Ÿæ–¹æ³•æ²¡æœ‰ä»»ä½•å½±å“,并且仅适用于 <code>bootclasspath</code> ä¸Šçš„å¹³å° Java 语言代ç ï¼ˆæ—  Play 商店更新)。
</p>
<p>
diff --git a/zh-cn/devices/tech/debug/gdb.html b/zh-cn/devices/tech/debug/gdb.html
index 7ef38676..67e0e5ac 100644
--- a/zh-cn/devices/tech/debug/gdb.html
+++ b/zh-cn/devices/tech/debug/gdb.html
@@ -32,19 +32,25 @@ gdbclient.py -p 1234
<p>此脚本会设置端å£è½¬å‘,在设备上å¯åŠ¨ç›¸åº”çš„ <code>gdbserver</code>,在主机上å¯åŠ¨ç›¸åº”çš„ <code>gdb</code>,é…ç½® <code>gdb</code> 以找出符å·ï¼Œç„¶åŽå°† <code>gdb</code> 连接到远程 <code>gdbserver</code>。</p>
-<aside class="note"><strong>注æ„</strong>:在 Android 6 åŠæ›´æ—©ç‰ˆæœ¬ä¸­ï¼Œè¯¥è„šæœ¬æ˜¯ä¸€ä¸ªå为 <code>gdbclient</code> çš„ Shell 脚本,而ä¸æ˜¯å为 <code>gdbclient.py</code> çš„ Python 脚本。</aside>
+<aside class="note"><strong>注æ„</strong>:在 Android 6 åŠæ›´ä½Žç‰ˆæœ¬ä¸­ï¼Œè¯¥è„šæœ¬æ˜¯ä¸€ä¸ªå为 <code>gdbclient</code> çš„ Shell 脚本,而ä¸æ˜¯å为 <code>gdbclient.py</code> çš„ Python 脚本。</aside>
<h2 id="starts">调试本机进程å¯åŠ¨</h2>
-<p>è¦åœ¨è¿›ç¨‹å¯åŠ¨æ—¶å¯¹å…¶è¿›è¡Œè°ƒè¯•ï¼Œè¯·ä½¿ç”¨ <code>gdbserver</code> 或 <code>gdbserver64</code>(适用于 64 ä½è¿›ç¨‹ï¼‰ã€‚例如:</p>
+<p>è¦åœ¨è¿›ç¨‹å¯åŠ¨æ—¶å¯¹å…¶è¿›è¡Œè°ƒè¯•ï¼Œè¯·ä½¿ç”¨ <code>gdbserver</code> 或 <code>gdbserver64</code>。对于 64 ä½å¯æ‰§è¡Œæ–‡ä»¶ï¼š</p>
<pre class="devsite-terminal devsite-click-to-copy">
-adb shell gdbserver :5039 /system/bin/<var>MY_TEST_APP</var>
+adb shell gdbserver64 :5039 /system/bin/<var>MY_TEST_64_BIT_APP</var>
+</pre>
+
+<p>对于 32 ä½å¯æ‰§è¡Œæ–‡ä»¶ï¼š</p>
+
+<pre class="devsite-terminal devsite-click-to-copy">
+adb shell gdbserver :5039 /system/bin/<var>MY_TEST_32_BIT_APP</var>
</pre>
<p>输出示例:</p>
<pre class="devsite-click-to-copy">
-Process <var>MY_TEST_APP</var> created; pid = 3460
+Process <var>MY_TEST_64_BIT_APP</var> created; pid = 3460
Listening on port 5039
</pre>
@@ -102,7 +108,7 @@ gdbclient.py -p <var>PID</var>
<h2 id="symbols">无符å·è°ƒè¯•</h2>
-<p>对于 32 ä½ ARM,如果您的指令中没有符å·ï¼Œ<code>gdb</code> å°±ä¸æ¸…楚自己正在å汇编哪个指令集(ARM 或 Thumb)。è¦æŒ‡å®šç¼ºå°‘符å·ä¿¡æ¯æ—¶é€‰ä¸ºé»˜è®¤æŒ‡ä»¤é›†çš„指令集,请设置以下属性:</p>
+<p>对于 32 ä½ ARM,如果您的指令中没有符å·ï¼Œ<code>gdb</code> å°±ä¸æ¸…楚自己正在å汇编哪个指令集(ARM 或 Thumb)。è¦æŒ‡å®šç¼ºå°‘符å·ä¿¡æ¯æ—¶é€‰ç”¨çš„默认指令集,请设置以下属性:</p>
<pre class="devsite-terminal devsite-click-to-copy">
set arm fallback-mode arm # or thumb
diff --git a/zh-cn/devices/tech/debug/index.html b/zh-cn/devices/tech/debug/index.html
index 19584ac4..2fd55911 100644
--- a/zh-cn/devices/tech/debug/index.html
+++ b/zh-cn/devices/tech/debug/index.html
@@ -22,9 +22,9 @@
<p>本部分总结了开å‘å¹³å°çº§åŠŸèƒ½æ—¶ï¼Œå¯ç”¨äºŽè°ƒè¯•ã€è·Ÿè¸ªå’Œåˆ†æžåŽŸç”Ÿ Android å¹³å°ä»£ç çš„实用工具和相关命令。</p>
-<p class="note"><strong>注æ„</strong>: 本部分和本网站其他部分的页é¢å»ºè®®æ‚¨é…åˆä½¿ç”¨ <code>adb</code> å’Œ <code>setprop</code> å‚æ•°æ¥è°ƒè¯• Android çš„æŸäº›æ–¹é¢ã€‚请注æ„,在 Android æ“作系统的 O 版本之å‰ï¼Œå±žæ€§å称的长度上é™ä¸º 32 个字符。也就是说,è¦åˆ›å»ºä¸€ä¸ªåŒ…å«åº”用å称的 wrap 属性,您需è¦æˆªæ–­è¯¥å称以使其符åˆå­—符数é™åˆ¶ã€‚在 Android O åŠæ›´é«˜ç‰ˆæœ¬ä¸­ï¼Œæ­¤å­—符数上é™å€¼è¦å¤§å¾—多,应该ä¸éœ€è¦æˆªæ–­ã€‚</p>
+<p class="note"><strong>注æ„</strong>:本部分和本网站其他部分的页é¢å»ºè®®æ‚¨é…åˆä½¿ç”¨ <code>adb</code> å’Œ <code>setprop</code> å‚æ•°æ¥è°ƒè¯• Android çš„æŸäº›æ–¹é¢ã€‚请注æ„,在 Android æ“作系统的 O 版本之å‰ï¼Œå±žæ€§å称的长度上é™ä¸º 32 个字符。也就是说,è¦åˆ›å»ºä¸€ä¸ªåŒ…å«åº”用å称的 wrap 属性,您需è¦æˆªæ–­è¯¥å称以使其符åˆå­—符数é™åˆ¶ã€‚在 Android O åŠæ›´é«˜ç‰ˆæœ¬ä¸­ï¼Œæ­¤å­—符数上é™å€¼è¦å¤§å¾—多,应该ä¸éœ€è¦æˆªæ–­ã€‚</p>
-<p>本页é¢ä»‹ç»äº†ä¸Žå´©æºƒè½¬å‚¨æœ‰å…³çš„基本信æ¯ï¼ˆå¯ä»¥åœ¨ logcat 输出中找到)。其他页é¢æ›´è¯¦ç»†åœ°ä»‹ç»äº†å¦‚何<a href="/devices/tech/debug/native-crash.html">诊断原生代ç å´©æºƒé—®é¢˜</a>,通过 <a href="https://developer.android.com/studio/command-line/dumpsys.html"> <code>dumpsys</code></a> 了解系统æœåŠ¡çŠ¶å†µï¼ŒæŸ¥çœ‹<a href="/devices/tech/debug/native-memory.html">本地内存</a>ã€<a href="https://developer.android.com/studio/command-line/dumpsys.html#network">网络</a>å’Œ<a href="https://developer.android.com/studio/command-line/dumpsys.html#procstats">内存</a>使用情况,使用 <a href="/devices/tech/debug/asan.html">AddressSanitizer</a> 检测原生代ç ä¸­çš„内存错误,评估<a href="/devices/tech/debug/eval_perf.html">性能问题</a>(包括 <a href="/devices/tech/debug/systrace">systrace</a>),以åŠä½¿ç”¨ <a href="/devices/tech/debug/gdb.html">GNU è°ƒè¯•ç¨‹åº (GDB)</a> 和其他调试工具。</p>
+<p>本页é¢ä¸­ä»‹ç»äº†ä¸Žå´©æºƒè½¬å‚¨æœ‰å…³çš„基本信æ¯ï¼ˆå¯ä»¥åœ¨ logcat 输出中找到);其他页é¢æ›´è¯¦ç»†åœ°ä»‹ç»äº†å¦‚何<a href="/devices/tech/debug/native-crash.html">诊断原生代ç å´©æºƒé—®é¢˜</a>,如何通过<a href="https://developer.android.com/studio/command-line/dumpsys.html"> <code>dumpsys</code></a> 了解系统æœåŠ¡çŠ¶å†µï¼Œå¦‚何查看<a href="/devices/tech/debug/native-memory.html">本地内存</a>ã€<a href="https://developer.android.com/studio/command-line/dumpsys.html#network">网络</a>å’Œ<a href="https://developer.android.com/studio/command-line/dumpsys.html#procstats">内存</a>使用情况,如何使用 <a href="/devices/tech/debug/asan.html">AddressSanitizer</a> 检测原生代ç ä¸­çš„内存错误,如何评估<a href="/devices/tech/debug/eval_perf.html">性能问题</a>(包括 <a href="/devices/tech/debug/systrace">systrace</a>),以åŠå¦‚何使用 <a href="/devices/tech/debug/gdb.html">GNU è°ƒè¯•ç¨‹åº (GDB)</a> 和其他调试工具。</p>
<h2 id="debuggerd">崩溃转储</h2>
diff --git a/zh-cn/devices/tech/debug/sanitizers.html b/zh-cn/devices/tech/debug/sanitizers.html
index da390a94..6568f93c 100644
--- a/zh-cn/devices/tech/debug/sanitizers.html
+++ b/zh-cn/devices/tech/debug/sanitizers.html
@@ -37,7 +37,7 @@ Android 编译版本最好在å¯ç”¨æŽ’错程åºï¼ˆå¦‚ AddressSanitizer å’Œ Undef
<li>释放åŽå†ä½¿ç”¨</li>
</ul>
<p>
-Android å…许在完整编译级别和在<a href="/devices/tech/debug/asan">应用级别</a>通过 asanwrapper 进行 <a href="/devices/tech/debug/asan#addresssanitizer_in_the_apps">ASan æ’æ¡©</a>。
+Android å…许在完整编译级别和在<a href="/devices/tech/debug/asan#addresssanitizer_in_the_apps">应用级别</a>通过 asanwrapper 进行 <a href="/devices/tech/debug/asan">ASan æ’æ¡©</a>。
</p>
<p>
AddressSanitizer 对所有与内存相关的函数调用(包括 allocaã€malloc å’Œ free)进行æ’桩,并使用被读å–æˆ–å†™å…¥æ—¶ä¼šè§¦å‘ ASan 回调的内存填充所有å˜é‡å’Œå·²åˆ†é…的内存区域。
diff --git a/zh-cn/devices/tech/display/display-cutouts.html b/zh-cn/devices/tech/display/display-cutouts.html
index 3dfe0fc6..3f2f7960 100644
--- a/zh-cn/devices/tech/display/display-cutouts.html
+++ b/zh-cn/devices/tech/display/display-cutouts.html
@@ -41,7 +41,7 @@
<h2 id="examples_and_source">示例和æ¥æº</h2>
-<p>以下窗å£ç®¡ç†å™¨ä»£ç  (<a href="https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/policy/PhoneWindowManager.java">frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java</a>) 显示了如何在未设置 <code>LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS</code> 的情况下将显示å±æ¡†æž¶åµŒå…¥å®‰å…¨åŒºåŸŸã€‚</p>
+<p>以下窗å£ç®¡ç†å™¨ä»£ç  (<a href="https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/policy/PhoneWindowManager.java" class="external">PhoneWindowManager.java</a>) 显示了如何在未设置 <code>LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS</code> 的情况下将显示å±æ¡†æž¶åµŒå…¥å®‰å…¨åŒºåŸŸã€‚</p>
<pre class="prettyprint lang-java"><code>// Ensure that windows with a DEFAULT or NEVER display cutout mode are laid out in
// the cutout safe zone.
if (cutoutMode != LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS) {
@@ -90,7 +90,7 @@ if (cutoutMode != LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS) {
}
</code></pre>
<p>SystemUI 在刘海å±åŒºåŸŸå‘ˆçŽ°ï¼Œä¸”需è¦ç¡®å®šå¯ä»¥ç»˜åˆ¶çš„ä½ç½®ã€‚
-<a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java">frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java</a> æ供了一个视图示例,它确定了刘海å±çš„ä½ç½®ã€åˆ˜æµ·å±å¤§å°ï¼Œä»¥åŠä»Žå¯¼èˆªæ åµŒå…¥æ˜¯å¦å¯ä»¥é¿å¼€åˆ˜æµ·å±åŒºåŸŸã€‚</p>
+<a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java" class="external">PhoneStatusBarView.java</a> æ供了一个视图示例,它确定了刘海å±çš„ä½ç½®ã€åˆ˜æµ·å±å¤§å°ï¼Œä»¥åŠä»Žå¯¼èˆªæ åµŒå…¥æ˜¯å¦å¯ä»¥é¿å¼€åˆ˜æµ·å±åŒºåŸŸã€‚</p>
<p>通过覆盖 <code>onApplyWindowInsets()</code>,视图å¯ä»¥ç¡®å®šåˆ˜æµ·å±çš„ä½ç½®ï¼Œå¹¶ç›¸åº”地更新其布局。</p>
<pre class="prettyprint lang-java"><code>@Override
@@ -115,7 +115,7 @@ if (cutoutMode != LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS) {
<p>您的设备最多å¯ä»¥åœ¨æ¯ä¸ªçŸ­è¾¹å¤„(顶部和底部)å„设一个刘海å±ã€‚</p>
-<p>有关详情,请å‚阅 <a href="/compatibility/android-cdd">CDD</a>。</p>
+<p>有关详情,请å‚阅 <a href="/compatibility/android-cdd#3_8_15_display_cutout">CDD</a>。</p>
<aside class="note"><strong>注æ„</strong>:<span>对于é¢å‘ Android 8.0 或更低版本的应用,您å¯ä»¥ä¸ºç”¨æˆ·æ供一个å¯ä½¿å…¨å±æˆ–横å±åº”用延伸至刘海å±åŒºåŸŸçš„选项(例如导航æ ä¸­çš„切æ¢å¼€å…³ï¼‰ã€‚由于这样åšå¯èƒ½ä¼šå¯¼è‡´å†…容被切断,因此 <code>layoutInDisplayCutoutMode</code> 活动主题属性已åå‘移æ¤åˆ° Android 8.1,以å…许应用选择åœç”¨è¯¥é€‰é¡¹ã€‚如果您设置了该属性,则å¯èƒ½æ— æ³•æ˜¾ç¤ºç‰¹æ®Šçš„模å¼åˆ‡æ¢å¼€å…³ã€‚</span></aside>
<h2 id="implementation">实现</h2>
@@ -184,8 +184,8 @@ config_fillMainBuiltinDisplayCutout
<p>有关默认定义,请å‚阅以下 <code>dimens</code> 文件:</p>
<ul>
-<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values-land/dimens.xml"><code>core/res/res/values-land/dimens.xml</code></a></li>
-<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/dimens.xml"><code>core/res/res/values/dimens.xml</code></a></li>
+<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values-land/dimens.xml" class="external"><code>core/res/res/values-land/dimens.xml</code></a> </li>
+<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/dimens.xml" class="external"><code>core/res/res/values/dimens.xml</code></a> </li>
</ul>
<p>模拟刘海å±çš„示例å åŠ å±‚:</p>
@@ -232,6 +232,6 @@ config_fillMainBuiltinDisplayCutout
</code></pre>
<h2 id="validation">验è¯</h2>
-<p>è¦éªŒè¯åˆ˜æµ·å±çš„实现,请在以下ä½ç½®è¿è¡Œ CTS 测试:<a href="https://android.googlesource.com/platform/cts/+/master/tests/">tests/framework/base/windowmanager/src/android/server/wm</a>。</p>
+<p>è¦éªŒè¯åˆ˜æµ·å±çš„实现,请在以下ä½ç½®è¿è¡Œ CTS 测试:<a href="https://android.googlesource.com/platform/cts/+/master/tests/framework/base/windowmanager/src/android/server/wm" class="external">tests/framework/base/windowmanager/src/android/server/wm</a>。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/display/synched-app-transitions.html b/zh-cn/devices/tech/display/synched-app-transitions.html
index 2f0ef2af..0c9b12e0 100644
--- a/zh-cn/devices/tech/display/synched-app-transitions.html
+++ b/zh-cn/devices/tech/display/synched-app-transitions.html
@@ -33,13 +33,13 @@
<p>请å‚阅以下å‚考æ¥äº†è§£è¿™é¡¹åŠŸèƒ½ã€‚</p>
<ul>
-<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/ActivityOptions.java"><code>ActivityOptions.makeRemoteAnimation</code></a></p></li>
-<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/"><code>RemoteAnimationAdapter</code></a></p></li>
-<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/"><code>RemoteAnimationRunner</code></a></p></li>
-<li><p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/Activity.java#7869"><code>Activity.registerRemoteAnimations</code></a></p></li>
+<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/ActivityOptions.java#844" class="external"><code>ActivityOptions.makeRemoteAnimation</code></a> </li>
+<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/RemoteAnimationAdapter.java" class="external"><code>RemoteAnimationAdapter</code></a> </li>
+<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/IRemoteAnimationRunner.aidl" class="external"><code>RemoteAnimationRunner</code></a> </li>
+<li><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/Activity.java#7869" class="external"><code>Activity.registerRemoteAnimations</code></a> </li>
</ul>
-<p>有关通知å¯åŠ¨åŠ¨ç”»çš„å‚考实现,请å‚阅 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/src/com/android/systemui/statusbar/notification/"><code>ActivityLaunchAnimator.java</code></a>。</p>
+<p>有关通知å¯åŠ¨åŠ¨ç”»çš„å‚考实现,请å‚阅 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java" class="external"><code>ActivityLaunchAnimator.java</code></a>。</p>
<h2 id="implementation">实现</h2>
@@ -47,6 +47,6 @@
<aside class="note"><strong>注æ„</strong>:<span>这项功能会增加 GPU å’Œ CPU 在动画期间的负载。</span></aside>
<h2 id="validation">验è¯</h2>
-<p>è¦éªŒè¯åŠ¨ç”»æ•ˆæžœï¼Œè¯·è¡¡é‡æŽ§åˆ¶åº”ç”¨ï¼ˆå³ SystemUI 或å¯åŠ¨å™¨ï¼‰åœ¨åŠ¨ç”»æœŸé—´çš„性能(如<a href="https://developer.android.com/training/testing/performance">测试界é¢æ€§èƒ½</a>中所述)。</p>
+<p>è¦éªŒè¯åŠ¨ç”»æ•ˆæžœï¼Œè¯·è¡¡é‡æŽ§åˆ¶åº”ç”¨ï¼ˆå³ SystemUI 或å¯åŠ¨å™¨ï¼‰åœ¨åŠ¨ç”»æœŸé—´çš„性能(如<a href="https://developer.android.com/training/testing/performance" class="external">测试界é¢æ€§èƒ½</a>中所述)。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/health/deprecation.html b/zh-cn/devices/tech/health/deprecation.html
index 45c85d62..adb5fc12 100644
--- a/zh-cn/devices/tech/health/deprecation.html
+++ b/zh-cn/devices/tech/health/deprecation.html
@@ -21,7 +21,7 @@
<h1 id="deprecating_health10" class="page-title">弃用 health@1.0</h1>
-<p>在根æ®æ ‡å‡† <a href="/devices/architecture/vintf/fcm#hal-version-deprecation">HAL 弃用时间表</a>彻底弃用 health@1.0 之å‰ï¼Œæ¡†æž¶å°†ç»§ç»­æ”¯æŒ health@1.0。弃用 health@1.0(å³ä»Ž<a href="https://source.android.com/devices/architecture/vintf/comp-matrices">框架兼容性矩阵</a>中移除相关æ¡ç›®ï¼‰åŽï¼Œä¹Ÿå¿…须从系统中移除 <code>healthd</code> å’Œ <code>libbatterymonitor</code>ï¼Œä»¥å… healthd 出现未知行为。由于 health@1.0 是å¯é€‰ HAL,且 health@1.0 的所有 <code>healthd</code> ä¾èµ–é¡¹éƒ½å— NULL 检查的ä¿æŠ¤ï¼Œå› æ­¤å¼ƒç”¨ä¸å¾—被任何事项打断。</p>
+<p>在根æ®æ ‡å‡† <a href="/devices/architecture/vintf/fcm#hal-version-deprecation">HAL 弃用时间表</a>彻底弃用 health@1.0 之å‰ï¼Œæ¡†æž¶å°†ç»§ç»­æ”¯æŒ health@1.0。弃用 health@1.0(å³ä»Ž<a href="/devices/architecture/vintf/comp-matrices">框架兼容性矩阵</a>中移除相关æ¡ç›®ï¼‰åŽï¼Œä¹Ÿå¿…须从系统中移除 <code>healthd</code> å’Œ <code>libbatterymonitor</code>ï¼Œä»¥å… healthd 出现未知行为。由于 health@1.0 是å¯é€‰ HAL,且 health@1.0 的所有 <code>healthd</code> ä¾èµ–é¡¹éƒ½å— NULL 检查的ä¿æŠ¤ï¼Œå› æ­¤å¼ƒç”¨ä¸å¾—被任何事项打断。</p>
<p>æ ¹æ®å¼ƒç”¨æ—¶é—´è¡¨ï¼Œå½“ Android 移除旧版代ç è·¯å¾„(healthdã€health@1.0)时,Health@1.0 HAL 便会被弃用。此外,Android 还会移除以下内容:</p>
@@ -40,21 +40,16 @@
<ol>
<li><p>从系统映åƒä¸­ç§»é™¤ <code>healthd</code> å’Œ <code>healthd.rc</code>,方法是在 Soong 中å‘特定于设备的实现中添加以下行:</p>
-<pre class="prettyprint"><code>```
-cc_binary {
+<pre class="prettyprint"><code>cc_binary {
name: "android.hardware.health@2.0-service.device_name"
overrides: ["healthd"],
// ...
}
-```
-
-Or, if the module is in Make:
-
-```yaml
-LOCAL_MODULE_NAME := \
+</code></pre>
+<p>或者,如果模å—在 Make 中:</p>
+<pre class="prettyprint lang-yaml"><code>LOCAL_MODULE_NAME := \
android.hardware.health@2.0-service.device_name
LOCAL_OVERRIDES_MODULES := healthd
-```
</code></pre>
<p>如果已安装默认实现 <code>android.hardware.health@2.0-service</code>,则改为实现特定于设备的 <code>android.hardware.health@2.0-service.device_name</code>。有关详情,请å‚阅<a href="/devices/tech/health/implementation">实现 Health</a>。</p></li>
<li><p>将以下行添加到 <code>BoardConfig.mk</code>,以从框架清å•ä¸­ç§»é™¤å¤‡ä»½å®žä¾‹ã€‚这样å¯ä»¥ç¡®ä¿æ¡†æž¶æ¸…å•æ­£ç¡®å映设备上的 HAL,并让相关 VTS 测试å¯ä»¥é¡ºåˆ©é€šè¿‡ã€‚</p>
diff --git a/zh-cn/devices/tech/health/implementation.html b/zh-cn/devices/tech/health/implementation.html
index 5e05a341..083a3479 100644
--- a/zh-cn/devices/tech/health/implementation.html
+++ b/zh-cn/devices/tech/health/implementation.html
@@ -36,7 +36,7 @@
<li>在广泛推出 IHealth/default 实例且弃用 Android 8.1 供应商映åƒåŽï¼Œå°±å¯ä»¥å¼ƒç”¨ IHealth/backup 实例和 <code>healthd</code> 了。如需了解详情,请å‚阅<a href="/devices/tech/health/deprecation">弃用 health@1.0</a>。</li>
</ol>
-<h2 id="board_specific_build_variables_for_healthd">针对 healthd çš„æ¿çº§ç¼–译å˜é‡</h2>
+<h2 id="board-specific_build_variables_for_healthd">针对 healthd çš„æ¿çº§ç¼–译å˜é‡</h2>
<p><code>BOARD_PERIODIC_CHORES_INTERVAL_*</code> 是用于编译 <code>healthd</code> çš„æ¿çº§å˜é‡ã€‚æ¿çº§å€¼ç”¨äºŽåˆ†éš”系统编译部分和供应商编译部分,<strong>无法</strong>针对系统模å—定义进行定义。在 health@2.0 中,供应商å¯ä»¥åœ¨ <code>healthd_mode_ops-&gt;init</code> 中覆盖这两个值(方法是弃用 <code>health@2.0-service.&lt;device&gt;</code> 中的 <code>libhealthservice</code> ä¾èµ–项并é‡æ–°å®žçŽ°æ­¤å‡½æ•°ï¼‰ã€‚</p>
@@ -82,7 +82,7 @@ int main() { return health_service_main(); }
<li><p>æ›´æ–°å¿…è¦çš„ SELinux æƒé™ã€‚</p></li>
</ul>
-<p>如需了解详情,请å‚阅 <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/health/2.0/README">hardware/interfaces/health/2.0/README</a>。</p>
+<p>如需了解详情,请å‚阅 <a href="https://android.googlesource.com/platform/hardware/interfaces/+/master/health/2.0/README.md" class="external">hardware/interfaces/health/2.0/README.md</a>。</p>
<h2 id="health_clients">Health 客户端</h2>
diff --git a/zh-cn/devices/tech/health/index.html b/zh-cn/devices/tech/health/index.html
index fea95b90..6bd66008 100644
--- a/zh-cn/devices/tech/health/index.html
+++ b/zh-cn/devices/tech/health/index.html
@@ -93,9 +93,9 @@
<h2 id="hal_interface">HAL 接å£</h2>
-<p>health@2.0 HAL 为框架æ供了与旧版 healthd 守护进程相åŒçš„功能。此外,它还æ供了与 healthd 以å‰ä½œä¸º Binder æœåŠ¡æ供的 API 类似的 APIï¼ˆå³ <a href="https://android.googlesource.com/platform/frameworks/base/+/2392cbd888212f61a242058f749bcc39d495bf4b/core/java/android/os/IBatteryPropertiesRegistrar.aidl">IBatteryPropertiesRegistrar</a>)。</p>
+<p>health@2.0 HAL 为框架æ供了与旧版 healthd 守护进程相åŒçš„功能。此外,它还æ供了与 healthd 以å‰ä½œä¸º Binder æœåŠ¡æ供的 API 类似的 APIï¼ˆå³ <a href="https://android.googlesource.com/platform/frameworks/base/+/2392cbd888212f61a242058f749bcc39d495bf4b/core/java/android/os/IBatteryPropertiesRegistrar.aidl" class="external">IBatteryPropertiesRegistrar</a>)。</p>
-<p>ä¸»ç•Œé¢ <a href="https://android.googlesource.com/platform/hardware/interfaces/+/de542acbbf46812cfb53d231ecb50048baf8780e/health/2.0/IHealth.hal">IHealth</a> æ供以下函数:</p>
+<p>ä¸»ç•Œé¢ <a href="https://android.googlesource.com/platform/hardware/interfaces/+/de542acbbf46812cfb53d231ecb50048baf8780e/health/2.0/IHealth.hal" class="external">IHealth</a> æ供以下函数:</p>
<ul>
<li><code>registerCallback</code>ï¼Œç”¨äºŽæ›¿æ¢ <code>IBatteryPropertiesRegistrar.registerListener</code></li>
diff --git a/zh-cn/devices/tech/ota/ab/ab_implement.html b/zh-cn/devices/tech/ota/ab/ab_implement.html
index 3250dc18..bb96e487 100644
--- a/zh-cn/devices/tech/ota/ab/ab_implement.html
+++ b/zh-cn/devices/tech/ota/ab/ab_implement.html
@@ -23,7 +23,7 @@
<p>想è¦å®žçŽ° A/B 系统更新的原始设备制造商 (OEM) å’Œ SoC 供应商必须确ä¿å…¶å¼•å¯¼åŠ è½½ç¨‹åºå®žçŽ° boot_control HAL,并将<a href="#kernel">正确的å‚æ•°</a>传递到内核。</p>
<h2 id="bootcontrol">实现å¯åŠ¨æŽ§ä»¶ HAL</h2>
-<p>æ”¯æŒ A/B 更新的引导加载程åºå¿…须在 <code><a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/boot_control.h" class="external">hardware/libhardware/include/hardware/boot_control.h</a></code> 中实现 <code>boot_control</code> HAL。您å¯ä»¥ä½¿ç”¨ <code><a href="https://android.googlesource.com/platform/system/extras/+/master/bootctl/" class="external">system/extras/bootctl</a></code> 实用工具和 <code><a href="https://android.googlesource.com/platform/system/extras/+/refs/heads/master/tests/bootloader/" class="external">system/extras/tests/bootloader/</a></code> æ¥æµ‹è¯•å®žçŽ°ã€‚
+<p>æ”¯æŒ A/B 更新的引导加载程åºå¿…须在 <code><a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/boot_control.h" class="external">hardware/libhardware/include/hardware/boot_control.h</a></code> 中实现 <code>boot_control</code> HAL。您å¯ä»¥ä½¿ç”¨ <code><a href="https://android.googlesource.com/platform/system/extras/+/master/bootctl/" class="external">system/extras/bootctl</a></code> 实用工具和 <code><a href="https://android.googlesource.com/platform/system/extras/+/refs/heads/master/tests/bootloader/" class="external">system/extras/tests/bootloader/</a></code> æ¥æµ‹è¯•æ­¤ç±»å®žçŽ°ã€‚
</p>
<p>您还必须实现状æ€æœºï¼Œå¦‚下所示:</p>
@@ -42,7 +42,7 @@
<li>ç¡®ä¿å†…核命令行å‚数包å«ä¸­ä»¥ä¸‹é¢å¤–å‚数:
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">skip_initramfs rootwait ro init=/init root="/dev/dm-0 dm=system none ro,0 1 android-verity &lt;public-key-id&gt; &lt;path-to-system-partition&gt;"</code></pre>
-其中 <code>&lt;public-key-id&gt;</code> å€¼æ˜¯ç”¨äºŽéªŒè¯ verity 表签å的公钥 ID(有关详情,请å‚阅 <a href="/security/verifiedboot/dm-verity.html">dm-verity</a>)。</li>
+... 其中 <code>&lt;public-key-id&gt;</code> å€¼æ˜¯éªŒè¯ verity 表签å时使用的公钥的 ID(有关详情,请å‚阅 <a href="/security/verifiedboot/dm-verity.html">dm-verity</a>)。</li>
<li>将包å«å…¬é’¥çš„ .X509 è¯ä¹¦æ·»åŠ åˆ°ç³»ç»Ÿå¯†é’¥çŽ¯ï¼š
<ol>
<li>将设置为 <code>.der</code> æ ¼å¼çš„ .X509 è¯ä¹¦å¤åˆ¶åˆ° <code>kernel</code> 的根目录。如果 .X509 è¯ä¹¦çš„æ ¼å¼ä¸º <code>.pem</code> 文件,请使用以下 <code>openssl</code> 命令将è¯ä¹¦æ ¼å¼ä»Ž <code>.pem</code> 转æ¢ä¸º <code>.der</code>:
@@ -122,7 +122,7 @@ A/B 化的所有分区都应按以下方法命å(æ’槽始终被命å为 <co
<h3 id="fstab">Fstab</h3>
-<p><code>slotselect</code> å‚æ•°<strong>å¿…é¡»</strong>ä½äºŽè¿›è¡Œ A/B 更新的分区对应的行中。例如:</p>
+<p><code>slotselect</code> å‚æ•°<strong>å¿…é¡»</strong>ä½äºŽå·²è¿›è¡Œ A/B 更新的分区对应的行中。例如:</p>
<pre class="devsite-click-to-copy">
&lt;path-to-block-device&gt;/vendor /vendor ext4 ro
@@ -135,23 +135,23 @@ wait,verify=&lt;path-to-block-device&gt;/metadata,slotselect
<p>应通过特定的设备树 (DT) 节点 (<code>/firmware/android/slot_suffix</code>) 或 <code>androidboot.slot_suffix</code> 命令行å‚数传递当å‰æ’槽åŽç¼€ã€‚</p>
-<p>默认情况下,fastboot åªä¼šé—ªå­˜ A/B 设备上的æ’槽 <code>a</code>,并将当å‰æ’槽设置为 <code>a</code>。如果更新软件包还包å«æ’槽 <code>b</code> 的映åƒï¼Œåˆ™ fastboot 也会闪存这些映åƒã€‚å¯ç”¨é€‰é¡¹åŒ…括:</p>
+<p>默认情况下,fastboot 会刷写 A/B 设备上的当å‰æ’槽。如果更新软件包还包å«å…¶ä»–éžå½“å‰æ’槽的映åƒï¼Œåˆ™ fastboot 也会刷写这些映åƒã€‚å¯ç”¨é€‰é¡¹åŒ…括:</p>
<ul>
-<li><code>--slot</code>。æ示 fastboot 使用æ’槽 <code>b</code>,而éžæ’槽 <code>a</code>。</li>
-<li><code>--set-active</code>。将æ’槽设置为活动æ’槽。</li>
-<li><code>fastboot --help</code>。获å–有关命令的详细信æ¯ã€‚</li>
+ <li><code>--slot <var>SLOT</var></code>:替æ¢é»˜è®¤è¡Œä¸ºï¼Œå¹¶æ示 fastboot 刷写以å‚æ•°å½¢å¼ä¼ å…¥çš„æ’槽。</li>
+ <li><code>--set-active [<var>SLOT</var>]</code>:将指定æ’槽设为活动æ’槽。如果未指定å¯é€‰å‚数,则将当å‰æ’槽设为活动æ’槽。</li>
+<li><code>fastboot --help</code>:获å–有关命令的详细信æ¯ã€‚</li>
</ul>
<p>如果引导加载程åºå®žçŽ° fastboot,则应该支æŒå‘½ä»¤ <code>set_active &lt;slot&gt;</code>,该命令将当å‰æ´»åŠ¨æ’槽设置为指定æ’槽(此外,还必须清除该æ’槽的ä¸å¯å¯åŠ¨æ ‡è®°ï¼Œå¹¶å°†é‡è¯•è®¡æ•°é‡ç½®ä¸ºé»˜è®¤å€¼ï¼‰ã€‚引导加载程åºè¿˜åº”支æŒä»¥ä¸‹å˜é‡ï¼š</p>
<ul>
-<li><code>has-slot:&lt;partition-base-name-without-suffix&gt;</code>。如果指定分区支æŒæ’槽,则返回“yesâ€ï¼Œå¦åˆ™è¿”回“noâ€ã€‚</li>
-<li><code>current-slot</code>。返回接下æ¥å°†ä»Žä¸­å¯åŠ¨çš„æ’槽åŽç¼€ã€‚</li>
-<li><code>slot-count</code>。返回一个表示å¯ç”¨æ’槽数é‡çš„整数。目å‰æ”¯æŒä¸¤ä¸ªæ’槽,因此该值为 <code>2</code>。</li>
-<li><code>slot-successful:&lt;slot-suffix&gt;</code>。如果指定æ’槽已标记为æˆåŠŸå¯åŠ¨ï¼Œåˆ™è¿”回“yesâ€ï¼Œå¦åˆ™è¿”回“noâ€ã€‚</li>
-<li><code>slot-unbootable:&lt;slot-suffix&gt;</code>。如果指定æ’槽已标记为ä¸å¯å¯åŠ¨ï¼Œåˆ™è¿”回“yesâ€ï¼Œå¦åˆ™è¿”回“noâ€ã€‚</li>
-<li><code>slot-retry-count<slot suffix></slot></code>。å¯åŠ¨æŒ‡å®šæ’槽的剩余é‡è¯•æ¬¡æ•°ã€‚</li>
+<li><code>has-slot:&lt;partition-base-name-without-suffix&gt;</code>:如果指定分区支æŒæ’槽,则返回“yesâ€ï¼Œå¦åˆ™è¿”回“noâ€ã€‚</li>
+<li><code>current-slot</code>:返回接下æ¥å°†ä»Žä¸­å¯åŠ¨çš„æ’槽åŽç¼€ã€‚</li>
+<li><code>slot-count</code>:返回一个表示å¯ç”¨æ’槽数é‡çš„整数。目å‰æ”¯æŒä¸¤ä¸ªæ’槽,因此该值为 <code>2</code>。</li>
+<li><code>slot-successful:&lt;slot-suffix&gt;</code>:如果指定æ’槽已标记为æˆåŠŸå¯åŠ¨ï¼Œåˆ™è¿”回“yesâ€ï¼Œå¦åˆ™è¿”回“noâ€ã€‚</li>
+<li><code>slot-unbootable:&lt;slot-suffix&gt;</code>:如果指定æ’槽已标记为ä¸å¯å¯åŠ¨ï¼Œåˆ™è¿”回“yesâ€ï¼Œå¦åˆ™è¿”回“noâ€ã€‚</li>
+<li><code>slot-retry-count<slot suffix></slot></code>:å¯åŠ¨æŒ‡å®šæ’槽的剩余é‡è¯•æ¬¡æ•°ã€‚</li>
</ul>
<p>è¦æŸ¥çœ‹æ‰€æœ‰å˜é‡ï¼Œè¯·è¿è¡Œ <code class="devsite-terminal devsite-click-to-copy">fastboot getvar all</code>。
diff --git a/zh-cn/devices/tech/ota/nonab/device_code.html b/zh-cn/devices/tech/ota/nonab/device_code.html
index 390690c4..ec2d49e8 100644
--- a/zh-cn/devices/tech/ota/nonab/device_code.html
+++ b/zh-cn/devices/tech/ota/nonab/device_code.html
@@ -106,7 +106,7 @@ static const char* ITEMS[] = {"reboot system now",
<p class="note"><strong>注æ„</strong>:过长的行会被截断(而éžæ¢è¡Œï¼‰ï¼Œå› æ­¤è¯·ç•™æ„您设备的å±å¹•å®½åº¦ã€‚</p>
<h3 id="customize-checkkey">自定义 CheckKey</h3>
-<p>接下æ¥ï¼Œè¯·å®šä¹‰æ‚¨è®¾å¤‡çš„ RecoveryUI 实现。本示例å‡è®¾ <b>tardis</b> 设备é…有å±å¹•ï¼Œå› æ­¤æ‚¨å¯ä»¥æ²¿ç”¨å†…置的 ScreenRecoveryUIimplementation(å¦è¯·å‚阅<a href="#devices-without-screens">æ— å±å¹•è®¾å¤‡</a>说明)。å¯é€šè¿‡ ScreenRecoveryUI 自定义的唯一函数是 <code>CheckKey()</code>,该函数会执行åˆå§‹å¼‚步键处ç†æ“作:</p>
+<p>接下æ¥ï¼Œè¯·å®šä¹‰æ‚¨è®¾å¤‡çš„ RecoveryUI 实现。本示例å‡è®¾ <b>tardis</b> 设备é…有å±å¹•ï¼Œå› æ­¤æ‚¨å¯ä»¥æ²¿ç”¨å†…置的 ScreenRecoveryUIimplementation(请å‚阅针对<a href="#devices-without-screens">æ— å±å¹•è®¾å¤‡</a>的说明)。å¯é€šè¿‡ ScreenRecoveryUI 自定义的唯一函数是 <code>CheckKey()</code>,该函数会执行åˆå§‹å¼‚步键处ç†æ“作:</p>
<pre class="prettyprint">
class TardisUI : public ScreenRecoveryUI {
@@ -164,7 +164,7 @@ class TardisUI : public ScreenRecoveryUI {
<h3 id="screenrecoveryui">ScreenRecoveryUI</h3>
<p>如果您在 ScreenRecoveryUI 中使用自己的图片(错误图标ã€å®‰è£…动画ã€è¿›åº¦æ¡ï¼‰ï¼Œåˆ™å¯ä»¥è®¾ç½®å˜é‡ <code>animation_fps</code> æ¥æŽ§åˆ¶åŠ¨ç”»çš„速度(以æ¯ç§’帧数 (FPS) 为å•ä½ï¼‰ã€‚</p>
-<p class="note"><strong>注æ„</strong>:当å‰çš„ <code>interlace-frames.py</code> 脚本å…许您将 <code>animation_fps</code> ä¿¡æ¯å­˜å‚¨åˆ°å›¾ç‰‡æœ¬èº«ä¸­ã€‚在早期版本的 Android 中,您必须自行设置 <code>animation_fps</code>。</p>
+<p class="note"><strong>注æ„</strong>:当å‰çš„ <code>interlace-frames.py</code> 脚本å…许您将 <code>animation_fps</code> ä¿¡æ¯å­˜å‚¨åˆ°å›¾ç‰‡æœ¬èº«ã€‚在早期版本的 Android 中,您必须自行设置 <code>animation_fps</code>。</p>
<p>è¦è®¾ç½®å˜é‡ <code>animation_fps</code>,请替æ¢å­ç±»ä¸­çš„ <code>ScreenRecoveryUI::Init()</code> 函数。设置值,然åŽè°ƒç”¨ <code>parent Init() </code>函数以完æˆåˆå§‹åŒ–。默认值 (20 FPS) 对应默认æ¢å¤å›¾ç‰‡ï¼›æ‚¨åœ¨ä½¿ç”¨è¿™äº›å›¾ç‰‡æ—¶æ— éœ€æä¾› <code>Init()</code> 函数。
有关图片的详细信æ¯ï¼Œè¯·å‚阅<a href="#recovery-ui-images">æ¢å¤ç•Œé¢å›¾ç‰‡</a>。</p>
@@ -227,7 +227,7 @@ const char* const* GetMenuItems() { return ITEMS; }
<li><b>kNoAction</b>:ä¸å› æ­¤æ¬¡æŒ‰é”®æ‰§è¡Œä»»ä½•æ“作</li>
</ul>
-<p>您å¯ä»¥æ ¹æ® visible å‚数而猜到,å³ä½¿åœ¨èœå•ä¸å¯è§æ—¶ï¼Œç³»ç»Ÿä¹Ÿä¼šè°ƒç”¨ <code>HandleMenuKey()</code>。与 <code>CheckKey()</code> ä¸åŒçš„是,当æ¢å¤ç³»ç»Ÿæ‰§è¡Œæ¸…除数æ®æˆ–安装软件包等æ“作时,系统ä¸ä¼šè°ƒç”¨è¯¥å‡½æ•°ï¼Œåªæœ‰æ¢å¤ç³»ç»Ÿå¤„于闲置状æ€å¹¶ç­‰å¾…输入时æ‰ä¼šè°ƒç”¨è¯¥å‡½æ•°ã€‚<i></i></p>
+<p>您å¯ä»¥æ ¹æ® visible å‚数而猜到,å³ä½¿åœ¨èœå•ä¸å¯è§æ—¶ï¼Œç³»ç»Ÿä¹Ÿä¼šè°ƒç”¨ <code>HandleMenuKey()</code>。与 <code>CheckKey()</code> ä¸åŒçš„是,当æ¢å¤ç³»ç»Ÿæ‰§è¡Œæ¸…除数æ®æˆ–安装软件包等æ“作时,系统ä¸ä¼šè°ƒç”¨è¯¥å‡½æ•°ï¼Œä»…当æ¢å¤ç³»ç»Ÿå¤„于闲置状æ€å¹¶ç­‰å¾…输入时,系统æ‰ä¼šè°ƒç”¨è¯¥å‡½æ•°ã€‚<i></i></p>
<h4 id="trackball-mechanism">轨迹çƒæœºåˆ¶</h4>
<p>如果您的设备采用类似于轨迹çƒçš„输入机制(生æˆç±»åž‹ä¸º EV_RELã€ä»£ç ä¸º REL_Y 的输入事件),那么,åªè¦ç±»ä¼¼äºŽè½¨è¿¹çƒçš„输入设备报告 Y 轴的动作,æ¢å¤ç³»ç»Ÿå°±ä¼šåˆæˆ KEY_UP å’Œ KEY_DOWN 按键。您åªéœ€å°† KEY_UP å’Œ KEY_DOWN 事件映射到相应的èœå•æ“作å³å¯ã€‚<i></i>由于无法针对 <code>CheckKey()</code> 实现此映射,因此您ä¸èƒ½å°†è½¨è¿¹çƒè¿åŠ¨ç”¨ä½œé‡æ–°å¯åŠ¨æˆ–切æ¢æ˜¾ç¤ºçŠ¶æ€çš„触å‘器。</p>
@@ -245,7 +245,7 @@ const char* const* GetMenuItems() { return ITEMS; }
}
</pre>
-<p class="note"><strong>注æ„</strong>:如果 <b>visible</b> 为 false,则返回æ“作èœå•ï¼ˆç§»åŠ¨çªå‡ºæ˜¾ç¤ºé¡¹ã€è°ƒç”¨çªå‡ºæ˜¾ç¤ºé¡¹ï¼‰çš„特殊值将毫无æ„义,因为用户看ä¸åˆ°çªå‡ºæ˜¾ç¤ºé¡¹ã€‚ä¸è¿‡ï¼Œæ‚¨å¯ä»¥è§†éœ€è¦è¿”回相应的值。</p>
+<p class="note"><strong>注æ„</strong>:如果 <b>visible</b> 为 false,则返回用于æ“控èœå•ï¼ˆç§»åŠ¨çªå‡ºæ˜¾ç¤ºäº®æ ‡ã€è°ƒç”¨çªå‡ºæ˜¾ç¤ºé¡¹ï¼‰çš„特殊值将毫无æ„义,因为用户看ä¸åˆ°çªå‡ºæ˜¾ç¤ºäº®æ ‡ã€‚ä¸è¿‡ï¼Œæ‚¨å¯ä»¥è§†éœ€è¦è¿”回相应的值。</p>
<h4 id="invokemenuitem">InvokeMenuItem</h4>
<p>接下æ¥ï¼Œæä¾› <code>InvokeMenuItem()</code> 方法,将由 <code>GetMenuItems()</code> 返回的项数组中的整数ä½ç½®æ˜ å°„到相应的æ“作。对于 tardis 示例中的项数组,请使用:</p>
@@ -393,7 +393,7 @@ TARGET_RECOVERY_UI_LIB := librecovery_ui_tardis
<p>åŽç»­å¸§é€šè¿‡åªç»˜åˆ¶ä¸‹ä¸€å¼ å·²ä½äºŽé¡¶éƒ¨çš„å åŠ å›¾ç‰‡æ˜¾ç¤ºï¼›åŸºæœ¬å›¾ç‰‡ä¸ä¼šé‡æ–°ç»˜åˆ¶ã€‚<i></i></p>
-<p>动画中的帧数ã€æ‰€éœ€é€Ÿåº¦ä»¥åŠå åŠ å›¾ç‰‡ç›¸å¯¹äºŽåŸºæœ¬å›¾ç‰‡çš„ x è½´å’Œ y è½´å移é‡å‡é€šè¿‡ ScreenRecoveryUI 类的æˆå‘˜å˜é‡æ¥è®¾ç½®ã€‚如果您使用的是自定义图片而ä¸æ˜¯é»˜è®¤å›¾ç‰‡ï¼Œè¯·é€šè¿‡æ›¿æ¢æ‚¨å­ç±»ä¸­çš„ <code>Init()</code> 方法æ¥æ›´æ”¹è‡ªå®šä¹‰å›¾ç‰‡çš„这些值(如需了解详情,请å‚阅 <a href="#screenrecoveryui">ScreenRecoveryUI</a>)。<code>bootable/recovery/make-overlay.py
+<p>动画中的帧数ã€æ‰€éœ€é€Ÿåº¦ä»¥åŠå åŠ å›¾ç‰‡ç›¸å¯¹äºŽåŸºæœ¬å›¾ç‰‡çš„ x è½´å’Œ y è½´å移é‡å‡é€šè¿‡ ScreenRecoveryUI 类的æˆå‘˜å˜é‡æ¥è®¾ç½®ã€‚如果您使用的是自定义图片而ä¸æ˜¯é»˜è®¤å›¾ç‰‡ï¼Œè¯·æ›¿æ¢å­ç±»ä¸­çš„ <code>Init()</code> 方法,以便更改自定义图片的这些值(如需了解详情,请å‚阅 <a href="#screenrecoveryui">ScreenRecoveryUI</a>)。<code>bootable/recovery/make-overlay.py
</code> 脚本å¯å助将一组图片帧转为 recovery 所需的“基本图片 + å åŠ å›¾ç‰‡â€ï¼Œå…¶ä¸­åŒ…括计算所需的å移é‡ã€‚</p>
<p>默认图片ä½äºŽ <code>bootable/recovery/res/images</code> 中。è¦åœ¨å®‰è£…过程中使用é™æ€å›¾ç‰‡ï¼Œæ‚¨åªéœ€æä¾› icon_installing.png 图片,并将动画中的帧数设置为 0(错误图标ä¸æ˜¯åŠ¨ç”»ï¼›è¯¥å›¾ç‰‡ä¸€å¾‹ä¸ºé™æ€å›¾ç‰‡ï¼‰å³å¯ã€‚</p>
@@ -514,7 +514,7 @@ Value* ReprogramTardisFn(const char* name, State* state, int argc, Expr* argv[])
}
</pre>
-<p><code>ReadValueArgs()</code> ä¸ä¼šæ‰§è¡Œç±»åž‹æ£€æŸ¥ï¼Œå› æ­¤æ‚¨å¿…é¡»åœ¨è¿™é‡Œæ‰§è¡Œè¿™é¡¹æ£€æŸ¥ï¼›ä½¿ç”¨ä¸€æ¡ <b>if</b> 语å¥æ‰§è¡Œè¿™é¡¹æ£€æŸ¥ä¼šæ›´æ–¹ä¾¿ï¼Œä¸è¿‡è¿™æ ·åšä¹Ÿæœ‰ä¸€ä¸ªå¼Šç«¯ï¼Œå³å¦‚æžœæ“作失败,所显示的错误消æ¯ä¼šä¸å¤Ÿå…·ä½“。ä¸è¿‡ï¼Œå¦‚果有任何求值æ“作失败,<code>ReadValueArgs()</code> 会处ç†æ¯ä¸ªå‚数的求值æ“作,并释放之å‰æ±‚值的所有å‚数(以åŠè®¾ç½®æœ‰ç”¨çš„错误消æ¯ï¼‰ã€‚您å¯ä»¥ä½¿ç”¨ <code>
+<p><code>ReadValueArgs()</code> ä¸ä¼šæ‰§è¡Œç±»åž‹æ£€æŸ¥ï¼Œå› æ­¤æ‚¨å¿…é¡»åœ¨è¿™é‡Œæ‰§è¡Œè¿™é¡¹æ£€æŸ¥ï¼›ä½¿ç”¨ä¸€æ¡ <b>if</b> 语å¥æ‰§è¡Œè¿™é¡¹æ£€æŸ¥ä¼šæ›´æ–¹ä¾¿ï¼Œä¸è¿‡è¿™æ ·åšä¹Ÿæœ‰ä¸€ä¸ªå¼Šç«¯ï¼šå¦‚æžœæ“作失败,所显示的错误消æ¯ä¸å¤Ÿå…·ä½“。ä¸è¿‡ï¼Œå¦‚果有任何求值æ“作失败,<code>ReadValueArgs()</code> 会处ç†æ¯ä¸ªå‚数的求值æ“作,并释放之å‰æ±‚值的所有å‚数(以åŠè®¾ç½®æœ‰ç”¨çš„错误消æ¯ï¼‰ã€‚您å¯ä»¥ä½¿ç”¨ <code>
ReadValueVarArgs()</code> 便æ·å‡½æ•°å¯¹æ•°é‡ä¸å®šçš„å‚数进行求值(它会返回 <code>Value*</code> 的数组)。</p>
<p>对å‚数进行求值åŽï¼Œæ‰§è¡Œä»¥ä¸‹å‡½æ•°ï¼š</p>
@@ -543,7 +543,7 @@ ReadValueVarArgs()</code> 便æ·å‡½æ•°å¯¹æ•°é‡ä¸å®šçš„å‚数进行求值(它
}
</pre>
-<p>便æ·å‡½æ•° <code>StringValue()</code> 会将字符串å°è£…到新的 Value 对象中。使用此函数å¯ä»¥ç®€åŒ–上述代ç çš„编写æµç¨‹ï¼š</p>
+<p>便æ·å‡½æ•° <code>StringValue()</code> 会将字符串å°è£…到新的 Value 对象中。使用此函数å¯ä»¥æ›´ç²¾ç®€åœ°ç¼–写上述代ç ï¼š</p>
<pre class="prettyprint">
FreeValue(key);
@@ -553,7 +553,7 @@ ReadValueVarArgs()</code> 便æ·å‡½æ•°å¯¹æ•°é‡ä¸å®šçš„å‚数进行求值(它
}
</pre>
-<p>è¦å°†å‡½æ•°æŒ‚接到 edify 解释器中,请æ供函数 <code>Register_<i>foo</i></code>(其中 foo 是包å«è¯¥ä»£ç çš„é™æ€åº“çš„å称)。<i></i>调用 <code>RegisterFunction()</code> å³å¯æ³¨å†Œå„个扩展函数。按照惯例,您需è¦å¯¹è®¾å¤‡ä¸“属函数 <code><i>device</i>.<i>whatever</i></code> 进行命å,以å…与将æ¥æ·»åŠ çš„内置函数å‘生冲çªã€‚</p>
+<p>è¦å°†å‡½æ•°æŒ‚接到 edify 解释器中,请æ供函数 <code>Register_<i>foo</i></code>(其中 foo 是该代ç æ‰€åœ¨çš„é™æ€åº“çš„å称)。<i></i>调用 <code>RegisterFunction()</code> å³å¯æ³¨å†Œå„个扩展函数。按照惯例,您需è¦å¯¹è®¾å¤‡ä¸“属函数 <code><i>device</i>.<i>whatever</i></code> 进行命å,以å…与将æ¥æ·»åŠ çš„内置函数å‘生冲çªã€‚</p>
<pre class="prettyprint">
void Register_librecovery_updater_tardis() {
@@ -561,7 +561,7 @@ void Register_librecovery_updater_tardis() {
}
</pre>
-<p>现在,您å¯ä»¥é…ç½® makefile,以使用您的代ç ç¼–译é™æ€åº“(此 makefile å³æ˜¯ç”¨äºŽè‡ªå®šä¹‰ä¹‹å‰åŒºæ®µä¸­çš„æ¢å¤ç•Œé¢çš„ makefile;您设备的两个é™æ€åº“å¯èƒ½éƒ½æ˜¯åœ¨æ­¤å®šä¹‰çš„)。</p>
+<p>现在,您å¯ä»¥é…ç½® makefile,以使用您的代ç ç¼–译é™æ€åº“(此 makefile å³æ˜¯åœ¨ä¹‹å‰çš„部分中自定义æ¢å¤ç•Œé¢æ—¶ä½¿ç”¨çš„ makefile;您设备的两个é™æ€åº“å¯èƒ½éƒ½æ˜¯åœ¨æ­¤å¤„定义的)。</p>
<pre class="devsite-click-to-copy">
device/yoyodyne/tardis/recovery/Android.mk
@@ -580,7 +580,7 @@ LOCAL_MODULE := librecovery_updater_tardis
include $(BUILD_STATIC_LIBRARY)
</pre>
-<p>最åŽï¼Œé…ç½® recovery 的编译版本以拉入您的库。将您的库添加到 TARGET_RECOVERY_UPDATER_LIBS(它å¯èƒ½åŒ…å«å¤šä¸ªåº“;所有库å‡å·²æ³¨å†Œï¼‰ã€‚如果您的代ç ä¾èµ–于本身ä¸æ˜¯ edify 扩展程åºçš„其他é™æ€åº“(å³å®ƒä»¬æ²¡æœ‰ <code>Register_<i>libname</i></code> 函数),您å¯ä»¥å°†è¿™äº›åº“列于 TARGET_RECOVERY_UPDATER_EXTRA_LIBS 中,以将其关è”到更新程åºï¼Œè€Œæ— éœ€è°ƒç”¨å…¶ï¼ˆä¸å­˜åœ¨çš„)注册函数。例如,如果您的设备专属代ç éœ€è¦ä½¿ç”¨ zlib 解压缩数æ®ï¼Œæ‚¨å¯ä»¥åœ¨æ­¤å¤„åŒ…å« libz。</p>
+<p>最åŽï¼Œé…ç½® recovery 的编译版本以拉入您的库。将您的库添加到 TARGET_RECOVERY_UPDATER_LIBS(它å¯èƒ½åŒ…å«å¤šä¸ªåº“;所有库å‡å·²æ³¨å†Œï¼‰ã€‚如果您的代ç ä¾èµ–于本身ä¸æ˜¯ edify 扩展的其他é™æ€åº“(å³å®ƒä»¬æ²¡æœ‰ <code>Register_<i>libname</i></code> 函数),您å¯ä»¥å°†è¿™äº›åº“列入 TARGET_RECOVERY_UPDATER_EXTRA_LIBS 中,以便将其关è”到更新程åºï¼Œè€Œæ— éœ€è°ƒç”¨å…¶ï¼ˆä¸å­˜åœ¨çš„)注册函数。例如,如果您的设备专属代ç éœ€è¦ä½¿ç”¨ zlib æ¥è§£åŽ‹ç¼©æ•°æ®ï¼Œæ‚¨å¯ä»¥åœ¨æ­¤å¤„åŒ…å« libz。</p>
<pre class="devsite-click-to-copy">
device/yoyodyne/tardis/BoardConfig.mk
@@ -693,12 +693,12 @@ def IncrementalOTA_InstallEnd(info):
<p>将函数传递到包å«å„ç§å®žç”¨é¡¹çš„å•ä¸ª info 对象:
</p>
<ul>
-<li><b>info.input_zip</b>:(仅é™å®Œæ•´ OTA)输入 target-files .zip çš„ <code>zipfile.ZipFile</code> 对象。</li>
-<li><b>info.source_zip</b>:(仅é™å¢žé‡ OTAï¼‰æº target-files .zip çš„ <code>zipfile.ZipFile
-</code> 对象(安装增é‡åŒ…时编译版本已在设备上)。</li>
-<li><b>info.target_zip</b>:(仅é™å¢žé‡ OTA)目标 target-files .zip çš„ <code>zipfile.ZipFile
-</code> 对象(增é‡åŒ…置于设备上的编译版本)。</li>
-<li><b>info.output_zip</b>:正在创建的更新包;为进行写入而打开的 <code>zipfile.ZipFile
+<li><b>info.input_zip</b>:(仅é™å®Œæ•´ OTA)输入项 target-files .zip çš„ <code>zipfile.ZipFile</code> 对象。</li>
+<li><b>info.source_zip</b>:(仅é™ç‰ˆæœ¬é€’增 OTAï¼‰æº target-files .zip çš„ <code>zipfile. ZipFile
+</code> 对象(安装版本递增包时编译版本已在设备上)。</li>
+<li><b>info.target_zip</b>:(仅é™ç‰ˆæœ¬é€’增 OTA)目标 target-files .zip çš„ <code>zipfile.ZipFile
+</code> 对象(版本递增包置于设备上的编译版本)。</li>
+<li><b>info.output_zip</b>:正在创建的更新包;为进行写入æ“作而打开的 <code>zipfile.ZipFile
</code> 对象。使用 common.ZipWriteStr(info.output_zipã€filenameã€data)将文件添加到更新包。<i></i><i></i></li>
<li><b>info.script</b>:å¯ä»¥é™„加命令的目标脚本对象。调用 <code>info.script.AppendExtra(<i>script_text</i>)</code> 以将文本输出到脚本中。请确ä¿è¾“出文本以英文分å·ç»“尾,这样就ä¸ä¼šé‡åˆ°éšåŽå‘出 (emit) 的命令。</li>
</ul>
@@ -745,11 +745,11 @@ build/tools/releasetools/ota_from_target_files</code> 中的 <code>ota_from_targ
Device::InvokeMenuItem()</code> 方法å¯ä»¥è¿”回以下 BuiltinAction 值:</p>
<ul>
-<li><b>APPLY_EXT</b>:从外部存储设备(<code>
+<li><b>APPLY_EXT</b>:从外部存储空间(<code>
/sdcard</code> 目录)æ—加载更新包。您的 recovery.fstab 必须定义 <code>/sdcard
</code> 装载点。此方法在通过符å·é“¾æŽ¥åˆ° <code>/data</code> æ¥æ¨¡æ‹Ÿ SD å¡ï¼ˆæˆ–其他类似机制)的设备上ä¸å¯ç”¨ã€‚<code>/data
</code> 通常ä¸å¯ç”¨äºŽæ¢å¤ç³»ç»Ÿï¼Œå› ä¸ºå®ƒå¯èƒ½ä¼šè¢«åŠ å¯†ã€‚æ¢å¤ç•Œé¢ä¼šæ˜¾ç¤º <code>/sdcard</code> 中的 .zip 文件èœå•ï¼Œä»¥ä¾¿ç”¨æˆ·è¿›è¡Œé€‰æ‹©ã€‚</li>
-<li><b>APPLY_CACHE</b>:类似于从 <code>/sdcard</code> 加载更新包,ä¸è¿‡ä½¿ç”¨çš„是 <code>/cache</code> 目录(始终å¯ç”¨äºŽæ¢å¤ï¼‰ã€‚<i></i>在常规系统中,<code>/cache
+<li><b>APPLY_CACHE</b>:类似于从 <code>/sdcard</code> 加载更新包,ä¸è¿‡ä½¿ç”¨çš„是 <code>/cache</code> 目录(始终å¯ä¾›æ¢å¤ç³»ç»Ÿä½¿ç”¨ï¼‰ã€‚<i></i>在常规系统中,<code>/cache
</code> åªèƒ½ç”±ç‰¹æƒç”¨æˆ·å†™å…¥ï¼›å¦‚果设备ä¸å¯å¯åŠ¨ï¼Œåˆ™å®Œå…¨æ— æ³•å†™å…¥ <code>/cache</code> 目录(这样一æ¥ï¼Œè¯¥æœºåˆ¶çš„效用就会有所é™åˆ¶ï¼‰ã€‚</li>
<li><b>APPLY_ADB_SIDELOAD</b>:å…许用户通过 USB æ•°æ®çº¿å’Œ adb å¼€å‘工具将更新包å‘é€åˆ°è®¾å¤‡ã€‚调用此机制时,æ¢å¤ç³»ç»Ÿå°†å¯åŠ¨è‡ªèº«çš„迷你版 adbd 守护进程,以便已连接的主机上的 adb 与其进行对è¯ã€‚该迷你版守护进程仅支æŒä¸€ä¸ªå‘½ä»¤ï¼š<code>adb sideload <i>filename</i></code>。已命å的文件会从主机å‘é€åˆ°è®¾å¤‡ï¼Œç„¶åŽæŽ¥å—验è¯å¹¶è¿›è¡Œå®‰è£…(如åŒæ–‡ä»¶åœ¨æœ¬åœ°å­˜å‚¨åŒºä¸­ä¸€æ ·ï¼‰ã€‚</li>
</ul>
@@ -758,7 +758,7 @@ Device::InvokeMenuItem()</code> 方法å¯ä»¥è¿”回以下 BuiltinAction 值:</p
<ul>
<li>ä»…æ”¯æŒ USB 传输。</li>
<li>如果您的æ¢å¤ç³»ç»Ÿå¯ä»¥æ­£å¸¸è¿è¡Œ adbd(对于 userdebug å’Œ eng 版本æ¥è¯´é€šå¸¸æ˜¯è¿™æ ·ï¼‰ï¼Œåˆ™ä¼šåœ¨è®¾å¤‡å¤„于 adb æ—加载模å¼æ—¶å…³é—­ï¼Œå¹¶å°†åœ¨ adb æ—加载完æˆæŽ¥æ”¶æ›´æ–°åŒ…åŽé‡æ–°å¯åŠ¨ã€‚在 adb æ—加载模å¼ä¸‹ï¼Œåªæœ‰ <code>sideload</code> 命令å¯ä»¥å‘挥作用(<code>logcat</code>ã€<code>reboot</code>ã€<code>push</code>ã€<code>pull</code>ã€<code>shell</code> 等都ä¸èµ·ä½œç”¨ï¼‰ã€‚</li>
-<li>您无法在设备上退出 adb æ—加载模å¼ã€‚è¦ç»ˆæ­¢ï¼Œæ‚¨å¯ä»¥å°† <code>/dev/null</code>(或有效更新包以外的其他任何文件)作为更新包进行å‘é€ï¼Œç„¶åŽè®¾å¤‡å°†æ— æ³•å¯¹å…¶è¿›è¡ŒéªŒè¯ï¼Œå¹¶ä¼šåœæ­¢å®‰è£…过程。RecoveryUI 实现的 <code>CheckKey()</code> 方法将继续为按键所调用,因此,您å¯ä»¥æä¾›å¯é‡æ–°å¯åŠ¨è®¾å¤‡å¹¶åœ¨ adb æ—加载模å¼ä¸‹è¿è¡Œçš„按键åºåˆ—。</li>
+<li>您无法在设备上退出 adb æ—加载模å¼ã€‚è¦ç»ˆæ­¢ï¼Œæ‚¨å¯ä»¥å°† <code>/dev/null</code>(或有效更新包以外的其他任何文件)作为更新包进行å‘é€ï¼Œç„¶åŽè®¾å¤‡å°†æ— æ³•å¯¹å…¶è¿›è¡ŒéªŒè¯ï¼Œå¹¶ä¼šåœæ­¢å®‰è£…过程。对于按键事件,系统会继续调用 RecoveryUI 实现的 <code>CheckKey()</code> 方法,因此,您å¯ä»¥æä¾›å¯é‡æ–°å¯åŠ¨è®¾å¤‡å¹¶åœ¨ adb æ—加载模å¼ä¸‹è¿è¡Œçš„按键åºåˆ—。</li>
</ul>
</body></html> \ No newline at end of file
diff --git a/zh-cn/devices/tech/ota/sign_builds.html b/zh-cn/devices/tech/ota/sign_builds.html
index 95f77634..c76fc016 100644
--- a/zh-cn/devices/tech/ota/sign_builds.html
+++ b/zh-cn/devices/tech/ota/sign_builds.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>对è¦å‘布的编译版本进行签å</title>
+ <title>ç­¾å版本以供å‘布</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
diff --git a/zh-cn/devices/tech/perf/compatibility-wal.html b/zh-cn/devices/tech/perf/compatibility-wal.html
index 672c54d3..a8cd2970 100644
--- a/zh-cn/devices/tech/perf/compatibility-wal.html
+++ b/zh-cn/devices/tech/perf/compatibility-wal.html
@@ -22,7 +22,7 @@
limitations under the License.
-->
-<h1 id="compatibility_wal_write_ahead_logging_for_apps" class="page-title">应用的兼容性 WAL(预写日志记录)</h1>
+<h1 id="compatibility_wal_write-ahead_logging_for_apps" class="page-title">应用的兼容性 WAL(预写日志记录)</h1>
<p>Android 9 引入了 <a href="https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html" class="external">SQLiteDatabase</a> 的一ç§ç‰¹æ®Šæ¨¡å¼ï¼Œç§°ä¸ºâ€œå…¼å®¹æ€§ WAL(预写日志记录)â€ï¼Œå®ƒå…许数æ®åº“使用 <code>journal_mode=WAL</code>,åŒæ—¶ä¿ç•™æ¯ä¸ªæ•°æ®åº“最多创建一个连接的行为。</p>
@@ -39,7 +39,7 @@
<aside class="note"><strong>注æ„</strong>:<span>对于使用 <a href="https://developer.android.com/topic/libraries/architecture/room">Room</a> 的应用,系统会默认å¯ç”¨å®Œå…¨é¢„写日志记录模å¼ï¼ˆè€Œéžå…¼å®¹æ€§ WAL)。这适用于è¿è¡Œ API 16 或更高版本且未被归为<a href="https://developer.android.com/reference/android/app/ActivityManager.html#isLowRamDevice()">低内存设备</a>的设备。è¦äº†è§£è¯¦æƒ…,请å‚阅 <a href="https://developer.android.com/reference/androidx/room/RoomDatabase.JournalMode#AUTOMATIC"><code>RoomDatabase.JournalMode AUTOMATIC</code></a>。</span></aside>
<h2 id="disabling_compatibility_wal">åœç”¨å…¼å®¹æ€§ WAL</h2>
-<p>è¦åœç”¨å…¼å®¹æ€§ WAL 模å¼ï¼Œè¯·è¦†ç›– <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml" class="external"><code>db_compatibility_wal_supported</code></a> é…置资æºã€‚</p>
+<p>è¦åœç”¨å…¼å®¹æ€§ WAL 模å¼ï¼Œè¯·è¦†ç›– <a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml#1844" class="external"><code>db_compatibility_wal_supported</code></a> é…置资æºã€‚</p>
<p>例如:</p>
<pre class="prettyprint"><code>&lt;bool name="db_compatibility_wal_supported"&gt;false&lt;/bool&gt;
diff --git a/zh-cn/devices/tech/power/batteryless.html b/zh-cn/devices/tech/power/batteryless.html
index 88b9cfd6..a7bce71e 100644
--- a/zh-cn/devices/tech/power/batteryless.html
+++ b/zh-cn/devices/tech/power/batteryless.html
@@ -94,7 +94,7 @@ return batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true);
<p>如上所述,Android 9 原始代ç å¯åœ¨æ‚¨çš„设备上正常è¿è¡Œï¼Œä½†å»ºè®®æ‚¨å¯¹å†…核或 HAL 进行更改,以准确å映产å“的电æºå’Œç”µæ± çŠ¶æ€ã€‚如果 Android 9 åŠæ›´é«˜ç‰ˆæœ¬æœªæ£€æµ‹åˆ° <a href="https://www.kernel.org/doc/Documentation/power/power_supply_class.txt" class="external">Linux power supply ç±»</a>充电器设备,则在默认情况下,所有充电器类型(交æµã€USBã€æ— çº¿ï¼‰çš„状æ€éƒ½å°†ä¸ºâ€œç¦»çº¿â€<em></em>。如å‰æ‰€è¿°ï¼Œå¦‚果所有充电器都处于离线状æ€ï¼Œä½†æœªæ£€æµ‹åˆ°ç”µæ± è®¾å¤‡ï¼Œåˆ™ç³»ç»Ÿä»ä¼šè¢«è§†ä¸ºâ€œæ­£åœ¨å……电â€ï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œç³»ç»Ÿæ­£åœ¨ä½¿ç”¨å¤–部电æºï¼ˆè€Œä¸æ˜¯ç”µæ± ç”µé‡ï¼‰è¿è¡Œã€‚</p>
-<p>如果您的产å“没有电池,且会始终连接到电æºï¼Œé‚£ä¹ˆï¼Œæ‚¨æœ€å¥½é’ˆå¯¹äº¤æµç”µæºæˆ– USB 电æºï¼ˆå…¶åœ¨çº¿ <em></em><code>sysfs</code> 属性会设置为 <code>true</code>)实现 Linux 内核 power_supply ç±»<em></em>充电器驱动程åºã€‚或者,您也å¯ä»¥åœ¨ Health HAL 中为设备é…置交æµå……电器在线属性。为此,请按照<a href="/devices/tech/health/implementation">实现 Health 2.0</a> 中的说明实现 Health HAL。</p>
+<p><em></em>如果您的产å“没有电池,且会始终连接到电æºï¼Œé‚£ä¹ˆï¼Œæ‚¨æœ€å¥½é’ˆå¯¹äº¤æµç”µæºæˆ– USB 电æºï¼ˆå…¶åœ¨çº¿ <code>sysfs</code> 属性会设置为 <code>true</code>)实现 Linux 内核 power_supply ç±»<em></em>充电器驱动程åºã€‚或者,您也å¯ä»¥åœ¨ Health HAL 中为设备é…置交æµå……电器在线属性。为此,请按照<a href="/devices/tech/health/implementation">实现 Health 2.0</a> 中的说明实现 Health HAL。</p>
<p>此自定义 Health HAL 会实现 <code>Health::getHealthInfo()</code> 的自定义版本,而该版本会修改 <code>BatteryProperties.chargerAcOnline = true</code> 的值。</p>
diff --git a/zh-cn/devices/tech/power/component.html b/zh-cn/devices/tech/power/component.html
index f9c382ab..3b9eccf8 100644
--- a/zh-cn/devices/tech/power/component.html
+++ b/zh-cn/devices/tech/power/component.html
@@ -146,7 +146,7 @@ adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
<p><code>wifi.on</code> å€¼æµ‹é‡ Wi-Fi 在å¯ç”¨ä½†æœªä¸»åŠ¨å‘é€æˆ–接收数æ®çš„状æ€ä¸‹çš„功耗。该值通常是测é‡ç³»ç»ŸæŒ‚起(休眠)状æ€ä¸‹å¯ç”¨/ç¦ç”¨ Wi-Fi 之间产生的电æµå¢žé‡ã€‚</p>
-<p><code>wifi.scan</code> 值å¯ç”¨äºŽæµ‹é‡ WLAN 接入点扫æ过程中的功耗。应用å¯ä»¥ä½¿ç”¨ WifiManager ç±»<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html"> <code>startScan()</code>API</a> æ¥è§¦å‘ WLAN 扫æ。您也å¯ä»¥ä¾æ¬¡æ‰“开“设置â€&gt;“WLANâ€ï¼Œè¿™æ · WLAN æ¯éš”几秒钟就会执行一次接入点扫æ,而且扫æ过程中功耗会明显上å‡ï¼Œä½†æ‚¨å¿…须从这些测é‡å€¼ä¸­å‡åŽ»å±å¹•åŠŸè€—。</p>
+<p><code>wifi.scan</code> 值å¯ç”¨äºŽæµ‹é‡ WLAN 接入点扫æ过程中的功耗。应用å¯ä»¥ä½¿ç”¨ WifiManager ç±»<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html"> <code>startScan()</code>API</a> æ¥è§¦å‘ WLAN 扫æ。您也å¯ä»¥ä¾æ¬¡æ‰“开“设置â€&gt;“WLANâ€ï¼Œè¿™æ ·ä¼šæ¯éš”几秒钟执行一次接入点扫æ,而且扫æ过程中功耗会明显上å‡ï¼Œä½†æ‚¨å¿…须从这些测é‡å€¼ä¸­å‡åŽ»å±å¹•åŠŸè€—。</p>
<p class="note">
<strong>注æ„</strong>:请使用å—控设置(如 <a href="http://en.wikipedia.org/wiki/Iperf">iperf</a>)生æˆç½‘络收å‘æµé‡ã€‚</p>
diff --git a/zh-cn/devices/tech/power/platform_mgmt.html b/zh-cn/devices/tech/power/platform_mgmt.html
index 238dd558..ed3f077e 100644
--- a/zh-cn/devices/tech/power/platform_mgmt.html
+++ b/zh-cn/devices/tech/power/platform_mgmt.html
@@ -151,7 +151,7 @@
<li>确认预加载的应用和æœåŠ¡æ»¡è¶³ä»¥ä¸‹è¦æ±‚:<ul>
<li>éµå¾ª<a href="https://developer.android.com/training/monitoring-device-state/doze-standby.html" class="external">节电优化指å—</a>。有关详情,请å‚阅<a href="#test-apps">测试和优化应用</a>。
<p><strong>或</strong></p>
-</li><li>获得è±å…,ä¸ä¼šè¿›å…¥ä½Žç”µè€—模å¼å’Œåº”用待机模å¼ã€‚有关详情,请å‚阅<a href="#exempt-apps">è±å…应用</a>。</li>
+</li><li>获得è±å…,ä¸ä¼šè¿›å…¥ä½Žç”µè€—模å¼å’Œåº”用待机模å¼ã€‚有关详情,请å‚阅<a href="/devices/tech/power/mgmt#exempt-apps">è±å…应用</a>。</li>
</ul>
</li>
<li>确认必è¦çš„æœåŠ¡å·²èŽ·å¾—è±å…,ä¸ä¼šè¿›å…¥ä½Žç”µè€—模å¼ã€‚</li>
diff --git a/zh-cn/devices/tv/reference-tv-app.html b/zh-cn/devices/tv/reference-tv-app.html
index ca7f7d04..a92a2e05 100644
--- a/zh-cn/devices/tv/reference-tv-app.html
+++ b/zh-cn/devices/tv/reference-tv-app.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>å‚考 TV 应用</title>
+ <title>å‚考电视应用</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -92,7 +92,7 @@ adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
<h2 id="test">测试</h2>
-<p>在设备上安装 Live TV åŽï¼Œæ‚¨éœ€è¦æµ‹è¯•è¯¥åº”用是å¦å·²æ­£ç¡®é›†æˆã€‚除了对 TV 应用è¿è¡Œ<a href="/compatibility/cts/index.html">兼容性测试套件</a>å’Œ <a href="/compatibility/cts/verifier.html">CTS 验è¯ç¨‹åºæµ‹è¯•</a>外,您还å¯ä»¥ä½¿ç”¨ä»¥ä¸‹è¿™äº›æµ‹è¯•ï¼š</p>
+<p>在设备上安装 Live TV åŽï¼Œæ‚¨éœ€è¦æµ‹è¯•è¯¥åº”用是å¦å·²æ­£ç¡®é›†æˆã€‚除了对该电视应用è¿è¡Œ<a href="/compatibility/cts/index.html">兼容性测试套件</a>å’Œ <a href="/compatibility/cts/verifier.html">CTS 验è¯ç¨‹åºæµ‹è¯•</a>外,您还å¯ä»¥ä½¿ç”¨ä»¥ä¸‹è¿™äº›æµ‹è¯•ï¼š</p>
<h3 id="unit_tests">å•å…ƒæµ‹è¯•</h3>
@@ -134,7 +134,7 @@ adb shell am instrument \
<h3 id="jank_tests">Jank 测试</h3>
-<p>Jank 测试用于检查是å¦å­˜åœ¨ä¸¢å¸§å’Œæ¸²æŸ“延迟的情况。</p>
+<p>Jank 测试用于检查是å¦å­˜åœ¨ä¸¢å¸§å’Œå‘ˆçŽ°å»¶è¿Ÿçš„情况。</p>
<pre class="devsite-terminal devsite-click-to-copy">
adb shell logcat -c
diff --git a/zh-cn/security/advisory/index.html b/zh-cn/security/advisory/index.html
index 1c617e69..c2cd0b1d 100644
--- a/zh-cn/security/advisory/index.html
+++ b/zh-cn/security/advisory/index.html
@@ -33,14 +33,14 @@
<th>å‘布日期</th>
</tr>
<tr>
- <td><a href="2016-03-18.html">2016-03-18</a></td>
+ <td><a href="/security/advisory/2016-03-18.html">2016-03-18</a></td>
<td>
<a href="/security/advisory/2016-03-18.html">English</a> /
<a href="/security/advisory/2016-03-18.html?hl=ja">日本語</a> /
<a href="/security/advisory/2016-03-18.html?hl=ko">한국어</a> /
<a href="/security/advisory/2016-03-18.html?hl=ru">руÌÑÑкий</a> /
- <a href="/security/advisory/2016-03-18.html?hl=zh-cn">中文(中国)</a>/
- <a href="/security/advisory/2016-03-18.html?hl=zh-tw">中文(å°ç£ï¼‰</a>
+ <a href="/security/advisory/2016-03-18.html?hl=zh-cn">中文 (中国)</a> /
+ <a href="/security/advisory/2016-03-18.html?hl=zh-tw">中文 (å°ç£)</a>
</td>
<td>2016 年 3 月 18 日</td>
</tr>
diff --git a/zh-cn/security/bulletin/2018-07-01.html b/zh-cn/security/bulletin/2018-07-01.html
index 5e6bf3b6..30d9f190 100644
--- a/zh-cn/security/bulletin/2018-07-01.html
+++ b/zh-cn/security/bulletin/2018-07-01.html
@@ -31,7 +31,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
这些问题中å±é™©æ€§æœ€é«˜çš„是媒体框架中的一个严é‡ç¨‹åº¦ä¸ºâ€œä¸¥é‡â€çš„安全æ¼æ´žï¼Œè¯¥æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用特制的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç ã€‚<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦è¯„ä¼°</a>çš„ä¾æ®æ˜¯æ¼æ´žè¢«åˆ©ç”¨åŽå¯èƒ½ä¼šå¯¹å—å½±å“的设备造æˆçš„å½±å“(å‡è®¾ç›¸å…³å¹³å°å’ŒæœåŠ¡ç¼“解措施被æˆåŠŸè§„é¿æˆ–出于开å‘目的而被åœç”¨ï¼‰ã€‚
</p>
<p>
-尚未有人å‘我们举报过有用户主动利用或滥用这些新报告的问题。请å‚阅 <a href="#mitigations">Android å’Œ Google Play ä¿æŠ¤æœºåˆ¶æ供的缓解措施</a>部分,详细了解有助于æ高 Android å¹³å°å®‰å…¨æ€§çš„ <a href="/security/enhancements/index.html">Android 安全平å°é˜²æŠ¤åŠŸèƒ½</a>å’Œ Google Play ä¿æŠ¤æœºåˆ¶ã€‚
+我们尚未收到用户关于这些新报告的问题被利用或滥用的举报。请å‚阅 <a href="#mitigations">Android å’Œ Google Play ä¿æŠ¤æœºåˆ¶æ供的缓解措施</a>部分,详细了解有助于æ高 Android å¹³å°å®‰å…¨æ€§çš„ <a href="/security/enhancements/index.html">Android 安全平å°é˜²æŠ¤åŠŸèƒ½</a>å’Œ Google Play ä¿æŠ¤æœºåˆ¶ã€‚
</p>
<p class="note">
<strong>注æ„</strong>:如需了解适用于 Google 设备的最新无线下载更新 (OTA) 和固件映åƒï¼Œè¯·å‚阅 <a href="/security/bulletin/pixel/2018-07-01.html">2018 å¹´ 7 月的 Pixel/Nexus 安全公告</a>。
@@ -43,7 +43,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</p>
<ul>
<li>较高版本的 Android å¹³å°ä¸­æ供的增强功能让攻击者更加难以利用 Android 上存在的许多问题。我们建议所有用户都尽å¯èƒ½æ›´æ–°åˆ°æœ€æ–°ç‰ˆ 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>æ—¶å‘用户å‘出警告。在安装有 <a href="http://www.android.com/gms">Google 移动æœåŠ¡</a>的设备上,Google Play ä¿æŠ¤æœºåˆ¶ä¼šé»˜è®¤å¤„于å¯ç”¨çŠ¶æ€ï¼Œå¯¹äºŽä»Ž Google Play 以外的æ¥æºå®‰è£…应用的用户æ¥è¯´ï¼Œè¯¥åŠŸèƒ½å°¤ä¸ºé‡è¦ã€‚</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>æ—¶å‘用户å‘出警告。在安装有 <a href="http://www.android.com/gms">Google 移动æœåŠ¡</a>的设备上,Google Play ä¿æŠ¤æœºåˆ¶ä¼šé»˜è®¤å¤„于å¯ç”¨çŠ¶æ€ï¼Œå¯¹äºŽä»Ž Google Play 以外的æ¥æºå®‰è£…应用的用户æ¥è¯´ï¼Œè¯¥åŠŸèƒ½å°¤ä¸ºé‡è¦ã€‚</li>
</ul>
<h2 id="2018-07-01-details">2018-07-01 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2>
<p>
@@ -83,7 +83,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tbody></table>
<h3 id="media-framework">媒体框架</h3>
-<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用特制的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç ã€‚</p>
+<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸­æ‰§è¡Œä»»æ„代ç ã€‚</p>
<table>
<colgroup><col width="21%" />
@@ -471,7 +471,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</ul>
<p><strong>2. 为何本公告有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Ÿ</strong></p>
<p>
-本公告之所以有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Œæ˜¯ä¸ºäº†è®© Android åˆä½œä¼™ä¼´èƒ½å¤Ÿçµæ´»åœ°ã€æ›´å¿«é€Ÿåœ°ä¿®å¤åœ¨å„ç§ Android 设备上类似的一部分æ¼æ´žã€‚我们建议 Android åˆä½œä¼™ä¼´ä¿®å¤æœ¬å…¬å‘Šä¸­çš„所有问题并使用最新的安全补ä¸ç¨‹åºçº§åˆ«ã€‚
+本公告之所以有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Œæ˜¯ä¸ºäº†è®© Android åˆä½œä¼™ä¼´èƒ½å¤Ÿçµæ´»åœ°ã€æ›´å¿«é€Ÿåœ°ä¿®å¤åœ¨å„ç§ Android 设备上类似的一系列æ¼æ´žã€‚我们建议 Android åˆä½œä¼™ä¼´ä¿®å¤æœ¬å…¬å‘Šä¸­çš„所有问题并使用最新的安全补ä¸ç¨‹åºçº§åˆ«ã€‚
</p>
<ul>
<li>如果设备使用的是 2018-07-01 这一安全补ä¸ç¨‹åºçº§åˆ«ï¼Œåˆ™å¿…须包å«è¯¥å®‰å…¨è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题以åŠä¹‹å‰çš„安全公告中报告的所有问题的修å¤ç¨‹åºã€‚</li>
diff --git a/zh-cn/security/bulletin/2018-09-01.html b/zh-cn/security/bulletin/2018-09-01.html
index c6f5d74c..95faa0d8 100644
--- a/zh-cn/security/bulletin/2018-09-01.html
+++ b/zh-cn/security/bulletin/2018-09-01.html
@@ -30,7 +30,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
这些问题中å±é™©æ€§æœ€é«˜çš„是媒体框架中的一个严é‡ç¨‹åº¦ä¸ºâ€œä¸¥é‡â€çš„安全æ¼æ´žï¼Œè¯¥æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç ã€‚<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦è¯„ä¼°</a>çš„ä¾æ®æ˜¯æ¼æ´žè¢«åˆ©ç”¨åŽå¯èƒ½ä¼šå¯¹å—å½±å“的设备造æˆçš„å½±å“(å‡è®¾ç›¸å…³å¹³å°å’ŒæœåŠ¡ç¼“解措施被æˆåŠŸè§„é¿æˆ–出于开å‘目的而被åœç”¨ï¼‰ã€‚
</p>
<p>
-尚未有人å‘我们举报过有用户主动利用或滥用这些新报告的问题。请å‚阅 <a href="#mitigations">Android å’Œ Google Play ä¿æŠ¤æœºåˆ¶æ供的缓解措施</a>部分,详细了解有助于æ高 Android å¹³å°å®‰å…¨æ€§çš„ <a href="/security/enhancements/">Android 安全平å°é˜²æŠ¤åŠŸèƒ½</a>å’Œ Google Play ä¿æŠ¤æœºåˆ¶ã€‚
+我们尚未收到用户关于这些新报告的问题被利用或滥用的举报。请å‚阅 <a href="#mitigations">Android å’Œ Google Play ä¿æŠ¤æœºåˆ¶æ供的缓解措施</a>部分,详细了解有助于æ高 Android å¹³å°å®‰å…¨æ€§çš„ <a href="/security/enhancements/">Android 安全平å°é˜²æŠ¤åŠŸèƒ½</a>å’Œ Google Play ä¿æŠ¤æœºåˆ¶ã€‚
</p>
<p class="note">
<strong>注æ„</strong>:如需了解适用于 Google 设备的最新无线下载更新 (OTA) 和固件映åƒï¼Œè¯·å‚阅 <a href="/security/bulletin/pixel/2018-09-01">2018 å¹´ 9 月的 Pixel/Nexus 安全公告</a>。
@@ -42,11 +42,11 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</p>
<ul>
<li>较高版本的 Android å¹³å°ä¸­æ供的增强功能让攻击者更加难以利用 Android 上存在的许多问题。我们建议所有用户都尽å¯èƒ½æ›´æ–°åˆ°æœ€æ–°ç‰ˆ Android。</li>
-<li>Android 安全团队会积æžåˆ©ç”¨ <a href="https://www.android.com/play-protect" class="external">Google Play ä¿æŠ¤æœºåˆ¶</a>监控滥用行为,并会在å‘现<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">å¯èƒ½æœ‰å®³çš„应用</a>æ—¶å‘用户å‘出警告。在安装有 <a href="http://www.android.com/gms" class="external">Google 移动æœåŠ¡</a>的设备上,Google Play ä¿æŠ¤æœºåˆ¶ä¼šé»˜è®¤å¤„于å¯ç”¨çŠ¶æ€ï¼Œå¯¹äºŽä»Ž Google Play 以外的æ¥æºå®‰è£…应用的用户æ¥è¯´ï¼Œè¯¥åŠŸèƒ½å°¤ä¸ºé‡è¦ã€‚</li>
+<li>Android 安全团队会积æžåˆ©ç”¨ <a href="https://www.android.com/play-protect" class="external">Google Play ä¿æŠ¤æœºåˆ¶</a>监控滥用行为,并会在å‘现<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">潜在有害应用</a>æ—¶å‘用户å‘出警告。在安装有 <a href="http://www.android.com/gms" class="external">Google 移动æœåŠ¡</a>的设备上,Google Play ä¿æŠ¤æœºåˆ¶ä¼šé»˜è®¤å¤„于å¯ç”¨çŠ¶æ€ï¼Œå¯¹äºŽä»Ž Google Play 以外的æ¥æºå®‰è£…应用的用户æ¥è¯´ï¼Œè¯¥åŠŸèƒ½å°¤ä¸ºé‡è¦ã€‚</li>
</ul>
<h2 id="2018-09-01-details">2018-09-01 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2>
<p>
-我们在下é¢æ供了 2018-09-01 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 AOSP 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+我们在下é¢æ供了 2018-09-01 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 AOSP 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="android-runtime">Android è¿è¡Œæ—¶</h3>
@@ -60,7 +60,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -92,7 +92,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -131,7 +131,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -156,7 +156,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -188,7 +188,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -293,41 +293,9 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
</tbody></table>
-<h3 id="update-media-framework">更新:媒体框架</h3>
-<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç ã€‚</p>
-
-<table>
- <colgroup><col width="21%" />
- <col width="21%" />
- <col width="14%" />
- <col width="14%" />
- <col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>å‚考内容</th>
- <th>类型</th>
- <th>严é‡ç¨‹åº¦</th>
- <th>已更新的 AOSP 版本</th>
- </tr>
- <tr>
- <td>CVE-2018-9411</td>
- <td><a href="https://android.googlesource.com/platform/system/libhidl/+/93484b9b015d47c0f7e5f4449a214b2fed8bed4f" class="external">A-79376389</a></td>
- <td>RCE</td>
- <td>严é‡</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
- <tr>
- <td>CVE-2018-9427</td>
- <td><a href="https://android.googlesource.com/platform/frameworks/av/+/29d991fac25b261a72ce73f96c9df594ea5b9242" class="external">A-77486542</a></td>
- <td>RCE</td>
- <td>严é‡</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-09-05-details">2018-09-05 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2>
<p>
-我们在下é¢æ供了 2018-09-05 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括 CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>ã€ç»„件(如果适用)和已更新的 AOSP 版本(如果适用)等详细信æ¯ã€‚如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+我们在下é¢æ供了 2018-09-05 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括 CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>ã€ç»„件(如果适用)和已更新的 AOSP 版本(如果适用)等详细信æ¯ã€‚如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="framework">框架</h3>
@@ -341,7 +309,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -366,7 +334,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -391,7 +359,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -463,7 +431,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -711,17 +679,17 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
</tbody></table>
<p>
-<strong>4.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>4.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -745,16 +713,16 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
</tbody></table>
<p id="asterisk">
-<strong>5. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>5. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>6. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œè®¾å¤‡â€Š/ åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šï¼ˆå¦‚ Pixel/Nexus 公告)中?</strong>
</p>
<p>
-è¦åœ¨ Android 设备上声明最新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œå¿…须修å¤æœ¬å®‰å…¨å…¬å‘Šä¸­è®°å½•çš„安全æ¼æ´žã€‚但在声明安全补ä¸ç¨‹åºçº§åˆ«æ—¶ï¼Œå¹¶ä¸æ˜¯å¿…é¡»è¦ä¿®å¤è®¾å¤‡/åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šä¸­è®°å½•çš„其他安全æ¼æ´žã€‚我们建议 Android 设备和芯片组制造商通过自己的安全网站(例如 <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>ã€<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> 或 <a href="/security/bulletin/pixel/" class="external">Pixel&amp;hairsp;/&amp;hairsp;Nexus</a> 安全公告)记录其设备上存在的其他修å¤ç¨‹åºã€‚
+è¦åœ¨ Android 设备上声明最新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œå¿…须修å¤æœ¬å®‰å…¨å…¬å‘Šä¸­è®°å½•çš„安全æ¼æ´žã€‚但在声明安全补ä¸ç¨‹åºçº§åˆ«æ—¶ï¼Œå¹¶ä¸æ˜¯å¿…é¡»è¦ä¿®å¤è®¾å¤‡/åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šä¸­è®°å½•çš„其他安全æ¼æ´žã€‚我们建议 Android 设备和芯片组制造商通过自己的安全网站(例如 <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>ã€<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> 或 <a href="/security/bulletin/pixel/" class="external">Pixel/Nexus</a> 安全公告)记录其设备上存在的其他修å¤ç¨‹åºã€‚
</p>
<h2 id="versions">版本</h2>
diff --git a/zh-cn/security/bulletin/2018-11-01.html b/zh-cn/security/bulletin/2018-11-01.html
index c1b7bf56..876f5043 100644
--- a/zh-cn/security/bulletin/2018-11-01.html
+++ b/zh-cn/security/bulletin/2018-11-01.html
@@ -19,13 +19,13 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p><em>å‘布时间:2018 å¹´ 11 月 5 æ—¥</em></p>
+<p><em>å‘布时间:2018 å¹´ 11 月 5 æ—¥ | 更新时间:2018 å¹´ 11 月 5 æ—¥</em></p>
<p>
本 Android 安全公告详细介ç»äº†ä¼šå½±å“ Android 设备的安全æ¼æ´žã€‚安全补ä¸ç¨‹åºçº§åˆ«ä¸º 2018-11-05 或更新的 Android 系统都已解决本公告中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705" class="external">查看并更新 Android 版本</a>。
</p>
<p>
-Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有问题的通知。我们会在接下æ¥çš„ 48 å°æ—¶å†…将针对这些问题的æºä»£ç è¡¥ä¸ç¨‹åºå‘布到 Android å¼€æºé¡¹ç›® (AOSP) 代ç åº“中。届时,我们将会修订本公告,将相关 AOSP 链接增补到本文中。</p>
+Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有问题的通知。我们已将针对这些问题的æºä»£ç è¡¥ä¸ç¨‹åºå‘布到 Android å¼€æºé¡¹ç›® (AOSP) 代ç åº“中,并在本公告中æ供了相应链接。本公告中还æä¾›äº†æŒ‡å‘ AOSP 之外的补ä¸ç¨‹åºçš„链接。</p>
<p>
这一部分中最严é‡çš„æ¼æ´žå¯è®©é‚»è¿‘区域内的攻击者利用蓄æ„创建的文件在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸­æ‰§è¡Œä»»æ„代ç ã€‚<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦è¯„ä¼°</a>çš„ä¾æ®æ˜¯æ¼æ´žè¢«åˆ©ç”¨åŽå¯èƒ½ä¼šå¯¹å—å½±å“的设备造æˆçš„å½±å“(å‡è®¾ç›¸å…³å¹³å°å’ŒæœåŠ¡ç¼“解措施被æˆåŠŸè§„é¿æˆ–出于开å‘目的而被åœç”¨ï¼‰ã€‚
</p>
@@ -35,7 +35,6 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<p class="note">
<strong>注æ„</strong>:如需了解适用于 Google 设备的最新无线下载更新 (OTA) 和固件映åƒï¼Œè¯·å‚阅 <a href="/security/bulletin/pixel/2018-11-01">2018 å¹´ 11 月的 Pixel / Nexus 安全公告</a>。
</p>
-
<h2 id="announcements">通告</h2>
<p>
我们在 Libxaac 库中å‘现了多个安全问题,包括 CVE-2018-9528ã€CVE-2018-9529ã€CVE-2018-9530ã€CVE-2018-9531ã€CVE-2018-9532ã€CVE-2018-9533ã€CVE-2018-9534ã€CVE-2018-9535ã€CVE-2018-9569ã€CVE-2018-9570ã€CVE-2018-9571ã€CVE-2018-9572ã€CVE-2018-9573ã€CVE-2018-9574ã€CVE-2018-9575ã€CVE-2018-9576ã€CVE-2018-9577 å’Œ CVE-2018-9578。</p>
@@ -72,21 +71,21 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
<tr>
<td>CVE-2018-9522</td>
- <td>A-112550251</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/181dc252ddec574464882970d3fab290e8b625b5" class="external">A-112550251</a></td>
<td>EoP</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9524</td>
- <td>A-34170870</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/c9bc35a45da1e765eb36af604c0c580bd66644cc" class="external">A-34170870</a></td>
<td>EoP</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
</tr>
<tr>
<td>CVE-2018-9525</td>
- <td>A-111330641</td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/6409cf5c94cc1feb72dc078e84e66362fbecd6d5" class="external">A-111330641</a></td>
<td>EoP</td>
<td>高</td>
<td>9</td>
@@ -111,42 +110,42 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
<tr>
<td>CVE-2018-9527</td>
- <td>A-112159345</td>
+ <td><a href="https://android.googlesource.com/platform/external/tremolo/+/cafff8f4535c8bf933c5a2fcb1a0dd66fb75a1c2" class="external">A-112159345</a></td>
<td>RCE</td>
<td>严é‡</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9531</td>
- <td>A-112661641</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/c2208f2a3098410c5a4c79ad6bd4b6d7e1c0b03f" class="external">A-112661641</a></td>
<td>RCE</td>
<td>严é‡</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9536</td>
- <td>A-112662184</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/9744e41c40598c6a0b74440f3b5be63f9f3708a5" class="external">A-112662184</a></td>
<td>EoP</td>
<td>严é‡</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9537</td>
- <td>A-112891564</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/61381bd0f4bc012876ccf4b63eafddd2d60c35c9" class="external">A-112891564</a></td>
<td>EoP</td>
<td>严é‡</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9521</td>
- <td>A-111874331</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/083263937bfb1623adf6015da7ca3cdc258e0352" class="external">A-111874331</a></td>
<td>RCE</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9539</td>
- <td>A-113027383</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/efe34a570d91b826b009d40e44c2e470dd180ace" class="external">A-113027383</a></td>
<td>EoP</td>
<td>高</td>
<td>8.0ã€8.1ã€9</td>
@@ -171,42 +170,42 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
<tr>
<td>CVE-2018-9540</td>
- <td>A-111450417</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/99d54d0c7dbab6c80f15bbf886ed203b2a547453" class="external">A-111450417</a></td>
<td>ID</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9542</td>
- <td>A-111896861</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111896861</a></td>
<td>ID</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9543</td>
- <td>A-112868088</td>
+ <td><a href="https://android.googlesource.com/platform/external/f2fs-tools/+/71313114a147ee3fc4a411904de02ea8b6bf7f91" class="external">A-112868088</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9544</td>
- <td>A-113037220</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113037220</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9545</td>
- <td>A-113111784</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113111784</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">CVE-2018-9541</td>
- <td rowspan="2">A-111450531</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111450531</a></td>
<td>ID</td>
<td>中</td>
<td>9</td>
@@ -218,54 +217,6 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
</tbody></table>
-<h3 id="update-media-framework">更新:媒体框架</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>å‚考编å·</th>
- <th>类型</th>
- <th>严é‡ç¨‹åº¦</th>
- <th>已更新的 AOSP 版本</th>
- </tr>
- <tr>
- <td>CVE-2018-9347</td>
- <td>A-68664359</td>
- <td>DoS</td>
- <td>中</td>
- <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
-<h3 id="update-system">更新:系统</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>å‚考编å·</th>
- <th>类型</th>
- <th>严é‡ç¨‹åº¦</th>
- <th>已更新的 AOSP 版本</th>
- </tr>
- <tr>
- <td>CVE-2018-9457</td>
- <td>A-72872376</td>
- <td>EoP</td>
- <td>中</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-11-05-details">2018-11-05 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2>
<p>
我们在下é¢æ供了 2018-11-05 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括 CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>ã€ç»„件(如果适用)和已更新的 AOSP 版本(如果适用)等详细信æ¯ã€‚如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
@@ -289,18 +240,11 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
</tr>
<tr>
<td>CVE-2018-9523</td>
- <td>A-112859604</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/6a947f048a76a5936fd2b693e01f849aef22c907" class="external">A-112859604</a></td>
<td>EoP</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
- <tr>
- <td>CVE-2018-9526</td>
- <td>A-112159033</td>
- <td>ID</td>
- <td>高</td>
- <td>9</td>
- </tr>
</tbody></table>
<h3 id="qualcomm-components">Qualcomm 组件</h3>
@@ -557,7 +501,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<strong>5. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Pixel/Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>6. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œè®¾å¤‡â€Š/ åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šï¼ˆå¦‚ Pixel/Nexus 公告)中?</strong>
@@ -581,6 +525,11 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有
<td>2018 年 11 月 5 日</td>
<td>å‘布了本公告。</td>
</tr>
+ <tr>
+ <td>1.1</td>
+ <td>2018 年 11 月 5 日</td>
+ <td>在本公告中添加了 AOSP 链接。</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/zh-cn/security/bulletin/2018-12-01.html b/zh-cn/security/bulletin/2018-12-01.html
new file mode 100644
index 00000000..8fccebbc
--- /dev/null
+++ b/zh-cn/security/bulletin/2018-12-01.html
@@ -0,0 +1,708 @@
+<html devsite><head>
+ <title>Android 安全公告 - 2018 年 12 月</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<p><em>å‘布时间:2018 å¹´ 12 月 3 æ—¥</em></p>
+
+<p>
+本 Android 安全公告详细介ç»äº†ä¼šå½±å“ Android 设备的安全æ¼æ´žã€‚安全补ä¸ç¨‹åºçº§åˆ«ä¸º 2018-12-05 或更新的 Android 系统都已解决本公告中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705" class="external">查看并更新 Android 版本</a>。
+</p>
+<p>我们会在接下æ¥çš„ 48 å°æ—¶å†…将针对这些问题的æºä»£ç è¡¥ä¸ç¨‹åºå‘布到 Android å¼€æºé¡¹ç›® (AOSP) 代ç åº“中。届时,我们将会修订本公告,将相关 AOSP 链接增补到本文中。</p>
+<p>
+这些问题中å±é™©æ€§æœ€é«˜çš„是媒体框架中的一个严é‡ç¨‹åº¦ä¸ºâ€œä¸¥é‡â€çš„安全æ¼æ´žï¼Œè¯¥æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…使用特制文件通过特许进程执行任æ„代ç ã€‚<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦è¯„ä¼°</a>çš„ä¾æ®æ˜¯æ¼æ´žè¢«åˆ©ç”¨åŽå¯èƒ½ä¼šå¯¹å—å½±å“的设备造æˆçš„å½±å“(å‡è®¾ç›¸å…³å¹³å°å’ŒæœåŠ¡ç¼“解措施被æˆåŠŸè§„é¿æˆ–出于开å‘目的而被åœç”¨ï¼‰ã€‚
+</p>
+<p>
+我们尚未收到用户关于这些新报告的问题被利用或滥用的举报。请å‚阅 <a href="#mitigations">Android å’Œ Google Play ä¿æŠ¤æœºåˆ¶æ供的缓解措施</a>部分,详细了解有助于æ高 Android å¹³å°å®‰å…¨æ€§çš„ <a href="/security/enhancements/">Android 安全平å°é˜²æŠ¤åŠŸèƒ½</a>å’Œ Google Play ä¿æŠ¤æœºåˆ¶ã€‚
+</p>
+<p class="note">
+<strong>注æ„</strong>:如需了解适用于 Google 设备的最新无线下载更新 (OTA) 和固件映åƒï¼Œè¯·å‚阅 <a href="/security/bulletin/pixel/2018-12-01">2018 å¹´ 12 月的 Pixel / Nexus 安全公告</a>。
+</p>
+
+<h2 id="mitigations">Android å’Œ Google æœåŠ¡ç¼“解措施</h2>
+
+<p>
+这一部分总结了 <a href="/security/enhancements/">Android 安全平å°</a>å’ŒæœåŠ¡é˜²æŠ¤åŠŸèƒ½ï¼ˆå¦‚ <a href="https://www.android.com/play-protect" class="external">Google Play ä¿æŠ¤æœºåˆ¶</a>)æ供的缓解措施。这些功能有助于é™ä½Ž Android 上的安全æ¼æ´žè¢«æˆåŠŸåˆ©ç”¨çš„å¯èƒ½æ€§ã€‚
+</p>
+<ul>
+<li>较高版本的 Android å¹³å°ä¸­æ供的增强功能让攻击者更加难以利用 Android 上存在的许多问题。我们建议所有用户都尽å¯èƒ½æ›´æ–°åˆ°æœ€æ–°ç‰ˆ Android。</li>
+<li>Android 安全团队会积æžåˆ©ç”¨ <a href="https://www.android.com/play-protect" class="external">Google Play ä¿æŠ¤æœºåˆ¶</a>监控滥用行为,并会在å‘现<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">å¯èƒ½æœ‰å®³çš„应用</a>æ—¶å‘用户å‘出警告。在安装有 <a href="http://www.android.com/gms" class="external">Google 移动æœåŠ¡</a>的设备上,Google Play ä¿æŠ¤æœºåˆ¶ä¼šé»˜è®¤å¤„于å¯ç”¨çŠ¶æ€ï¼Œå¯¹äºŽä»Ž Google Play 以外的æ¥æºå®‰è£…应用的用户æ¥è¯´ï¼Œè¯¥åŠŸèƒ½å°¤ä¸ºé‡è¦ã€‚</li>
+</ul>
+<h2 id="2018-12-01-details">2018-12-01 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2>
+<p>
+我们在下é¢æ供了 2018-12-01 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 AOSP 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+</p>
+
+<h3 id="framework">框架</h3>
+
+<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©æœ¬åœ°æ¶æ„应用在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸­æ‰§è¡Œä»»æ„代ç ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9547</td>
+ <td>A-114223584</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9548</td>
+ <td>A-112555574</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+</tbody></table>
+
+<h3 id="media-framework">媒体框架</h3>
+<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸­æ‰§è¡Œä»»æ„代ç ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9549</td>
+ <td>A-112160868</td>
+ <td>RCE</td>
+ <td>严é‡</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9550</td>
+ <td>A-112660981</td>
+ <td>RCE</td>
+ <td>严é‡</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9551</td>
+ <td>A-112891548</td>
+ <td>RCE</td>
+ <td>严é‡</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9552</td>
+ <td>A-113260892</td>
+ <td>ID</td>
+ <td>严é‡</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9553</td>
+ <td>A-116615297</td>
+ <td>RCE</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9538</td>
+ <td>A-112181526</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.1, 9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9554</td>
+ <td>A-114770654</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">系统</h3>
+<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的传输在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸­æ‰§è¡Œä»»æ„代ç ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9555</td>
+ <td>A-112321180</td>
+ <td>RCE</td>
+ <td>严é‡</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9556</td>
+ <td>A-113118184</td>
+ <td>RCE</td>
+ <td>严é‡</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9557</td>
+ <td>A-35385357</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9558</td>
+ <td>A-112161557</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9559</td>
+ <td>A-112731440</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9560</td>
+ <td>A-79946737</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9562</td>
+ <td>A-113164621</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9566</td>
+ <td>A-74249842</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+</tbody></table>
+
+<h2 id="2018-12-05-details">2018-12-05 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2>
+
+<p>
+我们在下é¢æ供了 2018-12-05 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括 CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>ã€ç»„件(如果适用)和已更新的 AOSP 版本(如果适用)等详细信æ¯ã€‚如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„更改记录,我们还将通过 Bug ID åŽé¢çš„数字链接到更多å‚考信æ¯ã€‚
+</p>
+
+<h3 id="system-05">系统</h3>
+
+<p>这一部分中最严é‡çš„æ¼æ´žå¯å¯¼è‡´è¿œç¨‹ä¿¡æ¯æ³„露,而无需é¢å¤–的执行æƒé™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9565</td>
+ <td>A-16680558</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>OMA-DM</td>
+ </tr>
+</tbody></table>
+
+<h3 id="htc-components">HTC 组件</h3>
+
+<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©æœ¬åœ°æ”»å‡»è€…绕过用户互动è¦æ±‚æ¥èŽ·å¾—é¢å¤–çš„æƒé™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9567</td>
+ <td>A-65543936</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>引导加载程åº</td>
+ </tr>
+</tbody></table>
+
+<h3 id="kernel-components">内核组件</h3>
+
+<p>这一部分中最严é‡çš„æ¼æ´žå¯è®©æœ¬åœ°æ”»å‡»è€…在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸­æ‰§è¡Œä»»æ„代ç ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-10840</td>
+ <td>A-116406508<br />
+<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-10840">上游内核</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>ext4 文件系统</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9568</td>
+ <td>A-113509306<br />
+<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/net/core/sock.c?id=9d538fa60bad4f7b23193c89e843797a1cf71ef3">上游内核</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>网络</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Qualcomm 组件</h3>
+
+<p>以下æ¼æ´žä¼šå½±å“ Qualcomm 组件,相应的 Qualcomm 安全公告或安全æ醒中对这些æ¼æ´žè¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žã€‚这些æ¼æ´žçš„严é‡ç¨‹åº¦è¯„估是由 Qualcomm 直接æ供的。</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11960</td>
+ <td>A-114042002<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=18ce15db603e19cfac9a2f4076f255e879100495">QC-CR#2264832</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>HWEngines</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11961</td>
+ <td>A-114040881<br />
+<a href="https://source.codeaurora.org/quic/le/platform/hardware/qcom/gps/commit/?id=c57ee0a5d3261ab20c35b451d1b3ae2b02a21591">QC-CR#2261813</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>GPS_AP_LINUX</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11963</td>
+ <td>A-114041685<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9ac3476a91c384a3f2760fabaecef0ad8698d7b">QC-CR#2220770</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>汽车多媒体</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-closed-source-components">Qualcomm é—­æºç»„件</h3>
+
+<p>以下æ¼æ´žä¼šå½±å“ Qualcomm 组件,相应的 Qualcomm 安全公告或安全æ醒中对这些æ¼æ´žè¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žã€‚这些æ¼æ´žçš„严é‡ç¨‹åº¦è¯„估是由 Qualcomm 直接æ供的。</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-8248</td>
+ <td>A-78135902<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>严é‡</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11004</td>
+ <td>A-66913713<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>严é‡</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18141</td>
+ <td>A-67712316<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>严é‡</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5913</td>
+ <td>A-79419833<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>严é‡</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11279</td>
+ <td>A-109678200<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>严é‡</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18319</td>
+ <td>A-78284753<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18321</td>
+ <td>A-78283451<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18322</td>
+ <td>A-78285196<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18323</td>
+ <td>A-78284194<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18324 </td>
+ <td>A-78284517<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18327</td>
+ <td>A-78240177<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18331</td>
+ <td>A-78239686<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18332</td>
+ <td>A-78284545<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18160</td>
+ <td>A-109660689<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18326</td>
+ <td>A-78240324<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8276</td>
+ <td>A-68141338<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18328</td>
+ <td>A-78286046<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18329</td>
+ <td>A-73539037<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18330</td>
+ <td>A-73539235<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3595</td>
+ <td>A-71501115<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18320</td>
+ <td>A-33757308<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11999</td>
+ <td>A-74236942<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5867</td>
+ <td>A-77485184<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5868</td>
+ <td>A-77484529<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5869</td>
+ <td>A-33385206<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-5754</td>
+ <td>A-79419639<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5915</td>
+ <td>A-79420511<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11267</td>
+ <td>A-109678338<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11922</td>
+ <td>A-112279564<a href="#asterisk">*</a></td>
+ <td>æ— </td>
+ <td>高</td>
+ <td>é—­æºç»„件</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">常è§é—®é¢˜å’Œè§£ç­”</h2>
+
+<p>这一部分解答了用户在阅读本公告åŽå¯èƒ½ä¼šæ出的常è§é—®é¢˜ã€‚</p>
+<p><strong>1. 如何确定我的设备是å¦å·²é€šè¿‡æ›´æ–°è§£å†³è¿™äº›é—®é¢˜ï¼Ÿ</strong></p>
+<p>è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">查看并更新 Android 版本</a>。</p>
+<ul>
+<li>如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-12-01 或更新,则æ„味ç€å·²è§£å†³ 2018-12-01 安全补ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题。</li>
+<li>如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-12-05 或更新,则æ„味ç€å·²è§£å†³ 2018-12-05 以åŠä¹‹å‰çš„所有安全补ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题。</li>
+</ul>
+<p>预装这些更新的设备制造商应将补ä¸ç¨‹åºå­—符串级别设为:</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-12-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-12-05]</li>
+</ul>
+<p><strong>2.为何本公告有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Ÿ</strong></p>
+<p>
+本公告之所以有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Œæ˜¯ä¸ºäº†è®© Android åˆä½œä¼™ä¼´èƒ½å¤Ÿçµæ´»åœ°ã€æ›´å¿«é€Ÿåœ°ä¿®å¤åœ¨å„ç§ Android 设备上类似的一系列æ¼æ´žã€‚我们建议 Android åˆä½œä¼™ä¼´ä¿®å¤æœ¬å…¬å‘Šä¸­çš„所有问题并使用最新的安全补ä¸ç¨‹åºçº§åˆ«ã€‚
+</p>
+<ul>
+<li>如果设备使用的是 2018-12-01 这一安全补ä¸ç¨‹åºçº§åˆ«ï¼Œåˆ™å¿…须包å«è¯¥å®‰å…¨è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题以åŠä¹‹å‰çš„安全公告中报告的所有问题的修å¤ç¨‹åºã€‚</li>
+<li>如果设备使用的是 2018-12-05 或更新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œåˆ™å¿…须包å«æœ¬å®‰å…¨å…¬å‘Šï¼ˆä»¥åŠä¹‹å‰çš„安全公告)中的所有适用补ä¸ç¨‹åºã€‚</li>
+</ul>
+<p>
+我们建议åˆä½œä¼™ä¼´å°†è¦è§£å†³çš„全部问题的修å¤æ–¹æ¡ˆæ‰“包到一个更新中。
+</p>
+<p id="type">
+<strong>3.“类型â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+</p>
+<p>
+在æ¼æ´žè¯¦æƒ…表内,“类型â€åˆ—中的æ¡ç›®æ˜¯å®‰å…¨æ¼æ´žçš„分类。<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>缩写è¯</th>
+ <th>定义</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>远程代ç æ‰§è¡Œ</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>ææƒ</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>ä¿¡æ¯æŠ«éœ²</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>æ‹’ç»æœåŠ¡</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>没有分类</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>4.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+</p>
+<p>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>å‰ç¼€</th>
+ <th>å‚考编å·</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android Bug ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm å‚考编å·</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek å‚考编å·</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA å‚考编å·</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom å‚考编å·</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>5. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+</p>
+<p>
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Pixel/Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+</p>
+<p>
+<strong>6. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œè®¾å¤‡â€Š/ åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šï¼ˆå¦‚ Pixel/Nexus 公告)中?</strong>
+</p>
+<p>
+è¦åœ¨ Android 设备上声明最新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œå¿…须修å¤æœ¬å®‰å…¨å…¬å‘Šä¸­è®°å½•çš„安全æ¼æ´žã€‚但在声明安全补ä¸ç¨‹åºçº§åˆ«æ—¶ï¼Œå¹¶ä¸æ˜¯å¿…é¡»è¦ä¿®å¤è®¾å¤‡/åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šä¸­è®°å½•çš„其他安全æ¼æ´žã€‚我们建议 Android 设备和芯片组制造商通过自己的安全网站(例如 <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>ã€<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> 或 <a href="/security/bulletin/pixel/" class="external">Pixel/Nexus</a> 安全公告)记录其设备上存在的其他修å¤ç¨‹åºã€‚
+</p>
+
+<h2 id="versions">版本</h2>
+
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>版本</th>
+ <th>日期</th>
+ <th>备注</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 12 月 3 日</td>
+ <td>å‘布了本公告</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/security/bulletin/pixel/2018-01-01.html b/zh-cn/security/bulletin/pixel/2018-01-01.html
index e4436c36..c9950317 100644
--- a/zh-cn/security/bulletin/pixel/2018-01-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-01-01.html
@@ -22,7 +22,7 @@
<p><em>å‘布时间:2018 å¹´ 1 月 2 æ—¥ | 更新时间:2018 å¹´ 1 月 29 æ—¥</em></p>
<p>
-本 Pixel/Nexus 安全公告详细介ç»äº†ä¼šå½±å“<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">å—支æŒçš„ Google Pixel å’Œ Nexus 设备</a>(Google 设备)的安全æ¼æ´žå’ŒåŠŸèƒ½æ”¹è¿›ã€‚对于 Google 设备,如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-01-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ <a href="/security/bulletin/2018-01-01">2018 å¹´ 1 月的 Android 安全公告</a>中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705">查看并更新 Android 版本</a>。
+本 Pixel/Nexus 安全公告详细介ç»äº†ä¼šå½±å“<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">å—支æŒçš„ Google Pixel å’Œ Nexus 设备</a>(Google 设备)的安全æ¼æ´žå’ŒåŠŸèƒ½æ”¹è¿›ã€‚对于 Google 设备,如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-01-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ <a href="/security/bulletin/2018-01-01">2018 å¹´ 1 月的 Android 安全公告</a>中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705">查看和更新 Android 版本</a>。
</p>
<p>
所有å—支æŒçš„ Google 设备都将会收到 2018-01-05 è¡¥ä¸ç¨‹åºçº§åˆ«çš„更新。我们建议所有用户都在自己的设备上接å—这些更新。
@@ -30,13 +30,13 @@
<p class="note">
<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/nexus/images">Google Developers 网站</a>上找到 Google 设备固件映åƒã€‚
</p>
-<h2 id="announcements">通告</h2>
+<h2 id="announcements">公告</h2>
<p>
除了 <a href="/security/bulletin/2018-01-01">2018 å¹´ 1 月的 Android 安全公告</a>中所述的安全æ¼æ´žå¤–,Pixel å’Œ Nexus 设备中还包å«é’ˆå¯¹ä¸‹è¿°å®‰å…¨æ¼æ´žçš„è¡¥ä¸ç¨‹åºã€‚åˆä½œä¼™ä¼´åœ¨è‡³å°‘一个月å‰å°±å·²æ”¶åˆ°å…³äºŽè¿™äº›é—®é¢˜çš„通知,并å¯ä»¥é€‰æ‹©å°†é’ˆå¯¹è¿™äº›é—®é¢˜çš„è¡¥ä¸ç¨‹åºçº³å…¥åˆ°å…¶è®¾å¤‡æ›´æ–°ä¸­ã€‚
</p>
<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
<p>
-æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="framework">框架</h3>
@@ -49,7 +49,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -74,7 +74,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -263,7 +263,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -287,7 +287,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -311,7 +311,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -335,7 +335,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -404,7 +404,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -426,7 +426,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -450,7 +450,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -601,11 +601,11 @@
<h2 id="functional-updates">功能更新</h2>
<p>
-我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考内容ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)以åŠæ”¹è¿›ã€‚
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)以åŠæ”¹è¿›ã€‚
</p>
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
</tr>
@@ -667,17 +667,17 @@
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -701,10 +701,10 @@
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告中?</strong>
diff --git a/zh-cn/security/bulletin/pixel/2018-02-01.html b/zh-cn/security/bulletin/pixel/2018-02-01.html
index 7071ae92..db890aba 100644
--- a/zh-cn/security/bulletin/pixel/2018-02-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-02-01.html
@@ -30,13 +30,13 @@
<p class="note">
<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/nexus/images">Google Developers 网站</a>上找到 Google 设备固件映åƒã€‚
</p>
-<h2 id="announcements">通告</h2>
+<h2 id="announcements">公告</h2>
<p>
除了 <a href="/security/bulletin/2018-02-01">2018 å¹´ 2 月的 Android 安全公告</a>中所述的安全æ¼æ´žå¤–,Pixel å’Œ Nexus 设备中还包å«é’ˆå¯¹ä¸‹è¿°å®‰å…¨æ¼æ´žçš„è¡¥ä¸ç¨‹åºã€‚åˆä½œä¼™ä¼´åœ¨è‡³å°‘一个月å‰å°±å·²æ”¶åˆ°å…³äºŽè¿™äº›é—®é¢˜çš„通知,并å¯ä»¥é€‰æ‹©å°†é’ˆå¯¹è¿™äº›é—®é¢˜çš„è¡¥ä¸ç¨‹åºçº³å…¥åˆ°å…¶è®¾å¤‡æ›´æ–°ä¸­ã€‚</p>
<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
<p>
-æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="https://source.android.com/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="https://source.android.com/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="framework">框架</h3>
@@ -49,7 +49,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -81,7 +81,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -130,15 +130,14 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
</tr>
<tr>
<td>CVE-2017-13242</td>
- <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/26e2b2456a444777de114f728c4dc2af88c2fb03">A-62672248</a> [<a href="https://android.googlesource.com/platform/packages/apps/Settings/+/7ed7d00e6028234088b58bf6d6d9362a5effece1">2</a>]
- </td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/26e2b2456a444777de114f728c4dc2af88c2fb03">A-62672248</a> [<a href="https://android.googlesource.com/platform/packages/apps/Settings/+/7ed7d00e6028234088b58bf6d6d9362a5effece1">2</a>]</td>
<td>ID</td>
<td>中</td>
<td>6.0ã€6.0.1ã€7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
@@ -162,7 +161,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -208,7 +207,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -366,12 +365,12 @@
<h2 id="functional-updates">功能更新</h2>
<p>
-我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考内容ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
</p>
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
<th>设备</th>
@@ -484,17 +483,17 @@
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -518,10 +517,10 @@
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告中?</strong>
@@ -552,12 +551,12 @@
<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>
<tr>
<td>1.4</td>
<td>2018 年 4 月 30 日</td>
- <td>更新了 CVE-2017-15852,从 CR 2046770 更新为 CR 2028702。</td>
+ <td>将 CVE-2017-15852 从 CR 2046770 更新为 CR 2028702。</td>
</tr>
</tbody></table>
diff --git a/zh-cn/security/bulletin/pixel/2018-03-01.html b/zh-cn/security/bulletin/pixel/2018-03-01.html
index 32d22589..90eb3e02 100644
--- a/zh-cn/security/bulletin/pixel/2018-03-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-03-01.html
@@ -23,7 +23,7 @@
<p><em>å‘布时间:2018 å¹´ 3 月 5 æ—¥ | 更新时间:2018 å¹´ 3 月 7 æ—¥</em></p>
<p>
-本 Pixel/Nexus 安全公告详细介ç»äº†ä¼šå½±å“<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">å—支æŒçš„ Google Pixel å’Œ Nexus 设备</a>(Google 设备)的安全æ¼æ´žå’ŒåŠŸèƒ½æ”¹è¿›ã€‚对于 Google 设备,如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-03-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ <a href="/security/bulletin/2018-03-01">2018 å¹´ 3 月的 Android 安全公告</a>中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705">查看并更新 Android 版本</a>。</p>
+本 Pixel/Nexus 安全公告详细介ç»äº†ä¼šå½±å“<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">å—支æŒçš„ Google Pixel å’Œ Nexus 设备</a>(Google 设备)的安全æ¼æ´žå’ŒåŠŸèƒ½æ”¹è¿›ã€‚对于 Google 设备,如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-03-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ <a href="/security/bulletin/2018-03-01">2018 å¹´ 3 月的 Android 安全公告</a>中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705">查看和更新 Android 版本</a>。</p>
<p>
所有å—支æŒçš„ Google 设备都将会收到 2018-03-05 è¡¥ä¸ç¨‹åºçº§åˆ«çš„更新。我们建议所有用户都在自己的设备上接å—这些更新。
</p>
@@ -31,13 +31,13 @@
<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/nexus/images">Google Developers 网站</a>上找到 Google 设备固件映åƒã€‚
</p>
-<h2 id="announcements">通告</h2>
+<h2 id="announcements">公告</h2>
<p>
除了 <a href="/security/bulletin/2018-03-01">2018 å¹´ 3 月的 Android 安全公告</a>中所述的安全æ¼æ´žå¤–,Google 设备中还包å«é’ˆå¯¹ä¸‹è¿°å®‰å…¨æ¼æ´žçš„è¡¥ä¸ç¨‹åºã€‚åˆä½œä¼™ä¼´åœ¨è‡³å°‘一个月å‰å°±å·²æ”¶åˆ°å…³äºŽè¿™äº›é—®é¢˜çš„通知,并å¯ä»¥é€‰æ‹©å°†é’ˆå¯¹è¿™äº›é—®é¢˜çš„è¡¥ä¸ç¨‹åºçº³å…¥åˆ°å…¶è®¾å¤‡æ›´æ–°ä¸­ã€‚</p>
<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
<p>
-æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="https://source.android.com/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="https://source.android.com/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="framework">框架</h3>
@@ -50,15 +50,14 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
</tr>
<tr>
<td>CVE-2017-13263</td>
- <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/c38c7404fd89ae43716dddba89e5c8ac3e8bfcba">A-69383160</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/6f89a3e373271be0f93740b96d5792649962439f">2</a>]
- </td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/c38c7404fd89ae43716dddba89e5c8ac3e8bfcba">A-69383160</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/6f89a3e373271be0f93740b96d5792649962439f">2</a>]</td>
<td>EoP</td>
<td>中</td>
<td>8.0ã€8.1</td>
@@ -75,7 +74,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -116,15 +115,14 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
</tr>
<tr>
<td>CVE-2017-13265</td>
- <td><a href="https://android.googlesource.com/platform/build/+/9de91d94e8224314f856d0d3c884142ef5d71f44">A-36232423</a> [<a href="https://android.googlesource.com/platform/system/update_engine/+/8c3c80cbc706137fa1a3dc8784fd8108c0841b30">2</a>] [<a href="https://android.googlesource.com/platform/system/update_engine/+/55b7e08bf5dda75be4b3468b55bd9dda94f67e64">3</a>]
- </td>
+ <td><a href="https://android.googlesource.com/platform/build/+/9de91d94e8224314f856d0d3c884142ef5d71f44">A-36232423</a> [<a href="https://android.googlesource.com/platform/system/update_engine/+/8c3c80cbc706137fa1a3dc8784fd8108c0841b30">2</a>] [<a href="https://android.googlesource.com/platform/system/update_engine/+/55b7e08bf5dda75be4b3468b55bd9dda94f67e64">3</a>]</td>
<td>EoP</td>
<td>中</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
@@ -157,7 +155,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -219,7 +217,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -257,7 +255,7 @@
<col width="39%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -477,12 +475,12 @@
<h2 id="functional-updates">功能更新</h2>
<p>
-我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考内容ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
</p>
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
<th>设备</th>
@@ -553,17 +551,17 @@
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -587,10 +585,10 @@
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告中?</strong>
diff --git a/zh-cn/security/bulletin/pixel/2018-06-01.html b/zh-cn/security/bulletin/pixel/2018-06-01.html
index 20e31392..cdad74c2 100644
--- a/zh-cn/security/bulletin/pixel/2018-06-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-06-01.html
@@ -31,11 +31,11 @@
<p class="note">
<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/images">Google Developers 网站</a>上找到 Google 设备固件映åƒã€‚
</p>
-<h2 id="announcements">通告</h2>
+<h2 id="announcements">公告</h2>
<p>除了 2018 å¹´ 6 月的 Android 安全公告中所述的安全æ¼æ´žå¤–,Pixel å’Œ Nexus 设备中还包å«é’ˆå¯¹ä¸‹è¿°å®‰å…¨æ¼æ´žçš„è¡¥ä¸ç¨‹åºã€‚åˆä½œä¼™ä¼´åœ¨è‡³å°‘一个月å‰å°±å·²æ”¶åˆ°å…³äºŽè¿™äº›é—®é¢˜çš„通知,并å¯ä»¥é€‰æ‹©å°†é’ˆå¯¹è¿™äº›é—®é¢˜çš„è¡¥ä¸ç¨‹åºçº³å…¥åˆ°å…¶è®¾å¤‡æ›´æ–°ä¸­ã€‚</p>
<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
<p>
-æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="https://source.android.com/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="https://source.android.com/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="framework">框架</h3>
@@ -48,7 +48,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -86,7 +86,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -189,7 +189,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>已更新的 AOSP 版本</th>
@@ -227,7 +227,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -311,7 +311,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -468,7 +468,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -649,7 +649,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -672,12 +672,12 @@
<h2 id="functional-patches">功能补ä¸ç¨‹åº</h2>
<p>
-我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考内容ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
</p>
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
<th>设备</th>
@@ -768,17 +768,17 @@ A-74058011</td>
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -802,10 +802,10 @@ A-74058011</td>
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers">Google Developers 网站</a>上针对 Pixel/Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告中?</strong>
diff --git a/zh-cn/security/bulletin/pixel/2018-07-01.html b/zh-cn/security/bulletin/pixel/2018-07-01.html
index 1cdd45d2..81c84549 100644
--- a/zh-cn/security/bulletin/pixel/2018-07-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-07-01.html
@@ -20,7 +20,7 @@
limitations under the License.
-->
-<p><em>å‘布时间:2018 å¹´ 7 月 2 æ—¥ | 更新时间:2018 å¹´ 7 月 3 æ—¥</em></p>
+<p><em>å‘布时间:2018 å¹´ 7 月 2 æ—¥ | 更新时间:2018 å¹´ 11 月 8 æ—¥</em></p>
<p>
本 Pixel/Nexus 安全公告详细介ç»äº†ä¼šå½±å“<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">å—支æŒçš„ Google Pixel å’Œ Nexus 设备</a>(Google 设备)的安全æ¼æ´žå’ŒåŠŸèƒ½æ”¹è¿›ã€‚对于 Google 设备,如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-07-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ 2018 å¹´ 7 月的 Android 安全公告中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705">查看并更新 Android 版本</a>。
@@ -221,7 +221,7 @@
</tr>
<tr>
- <td>CVE-2017-1000</td>
+ <td>CVE-2017-1000112</td>
<td>A-68806309<br />
<a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=85f1bd9a7b5a79d5baa8bf44af19658f7bf77bfa">上游内核</a></td>
<td>EoP</td>
@@ -454,6 +454,11 @@
<td>2018 年 7 月 3 日</td>
<td>在本公告中添加了 AOSP 链接。</td>
</tr>
+ <tr>
+ <td>1.2</td>
+ <td>2018 年 11 月 8 日</td>
+ <td>修订了本公告,对 CVE-2017-1000112 进行了更正。</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/zh-cn/security/bulletin/pixel/2018-09-01.html b/zh-cn/security/bulletin/pixel/2018-09-01.html
index 5b742fb8..c0b86523 100644
--- a/zh-cn/security/bulletin/pixel/2018-09-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-09-01.html
@@ -37,7 +37,7 @@
<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
<p>
-æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
<h3 id="kernel-components">内核组件</h3>
@@ -50,7 +50,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -98,7 +98,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -195,12 +195,12 @@
<h2 id="functional-patches">功能补ä¸ç¨‹åº</h2>
<p>
-我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考内容ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
</p>
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
<th>设备</th>
@@ -271,17 +271,17 @@
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -305,7 +305,7 @@
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
diff --git a/zh-cn/security/bulletin/pixel/2018-10-01.html b/zh-cn/security/bulletin/pixel/2018-10-01.html
index a9412a79..cebc1593 100644
--- a/zh-cn/security/bulletin/pixel/2018-10-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-10-01.html
@@ -29,7 +29,7 @@
所有å—支æŒçš„ Google 设备都将会收到 2018-10-05 è¡¥ä¸ç¨‹åºçº§åˆ«çš„更新。我们建议所有用户都在自己的设备上接å—这些更新。
</p>
<p class="note">
-<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/images" class="external">Google Developers 网站</a>上找到 Google 设备固件映åƒã€‚
+<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/images" class="external">Google Developer 网站</a>上找到 Google 设备固件映åƒã€‚
</p>
<h2 id="announcements">通告</h2>
@@ -39,12 +39,12 @@
<h2 id="functional-patches">功能补ä¸ç¨‹åº</h2>
<p>
-我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考内容ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下更新,以解决与 Pixel 设备的安全性无关的功能问题。下表中包å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别(例如è“牙或移动数æ®ç½‘络)ã€æ”¹è¿›ä»¥åŠå—å½±å“设备。
</p>
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
<th>设备</th>
@@ -121,17 +121,17 @@
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -155,7 +155,7 @@
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
diff --git a/zh-cn/security/bulletin/pixel/2018-11-01.html b/zh-cn/security/bulletin/pixel/2018-11-01.html
index b1623f8c..bd6cfaf7 100644
--- a/zh-cn/security/bulletin/pixel/2018-11-01.html
+++ b/zh-cn/security/bulletin/pixel/2018-11-01.html
@@ -39,9 +39,33 @@
<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
<p>
-æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç æ›´æ”¹è®°å½•ï¼Œæˆ‘们还会通过 Bug ID åŽé¢çš„数字链接到更多å‚考内容。
</p>
+<h3 id="framework-05">框架</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>已更新的 AOSP 版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9526</td>
+ <td><a href="https://android.googlesource.com/device/google/marlin/+/fa7f7382e8b39f7ca209824f97788ab25c44f6a3" class="external">A-112159033</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/8e81142af3dceb913ca50f67df3ded84233f932a">2</a>] [<a href="https://android.googlesource.com/platform/hardware/qcom/sdm845/gps/+/a5f7c07edd96c69171e8bd758addda7d5c30e3eb">3</a>]</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+</tbody></table>
+
<h3 id="htc-components">HTC 组件</h3>
<table>
@@ -52,7 +76,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -76,7 +100,7 @@
<col width="30%" />
</colgroup><tbody><tr>
<th>CVE</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类型</th>
<th>严é‡ç¨‹åº¦</th>
<th>组件</th>
@@ -107,7 +131,7 @@
<table>
<tbody><tr>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
<th>类别</th>
<th>改进</th>
<th>设备</th>
@@ -184,17 +208,17 @@
</tr>
</tbody></table>
<p>
-<strong>3.“å‚考内容â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
</p>
<table>
<colgroup><col width="25%" />
<col width="75%" />
</colgroup><tbody><tr>
<th>å‰ç¼€</th>
- <th>å‚考内容</th>
+ <th>å‚考编å·</th>
</tr>
<tr>
<td>A-</td>
@@ -218,10 +242,10 @@
</tr>
</tbody></table>
<p id="asterisk">
-<strong>4. 在“å‚考内容â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
</p>
<p>
-如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers" class="external">Google Developers 网站</a>上针对 Pixel/ Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«ç”¨äºŽè§£å†³ç›¸åº”问题的更新。
</p>
<p>
<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告中?</strong>
diff --git a/zh-cn/security/bulletin/pixel/2018-12-01.html b/zh-cn/security/bulletin/pixel/2018-12-01.html
new file mode 100644
index 00000000..22f14669
--- /dev/null
+++ b/zh-cn/security/bulletin/pixel/2018-12-01.html
@@ -0,0 +1,275 @@
+<html devsite><head>
+ <title>Pixel /Nexus 安全公告 - 2018 年 12 月</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<p><em>å‘布时间:2018 å¹´ 12 月 3 æ—¥</em></p>
+
+<p>
+本 Pixel/Nexus 安全公告详细介ç»äº†ä¼šå½±å“<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">å—支æŒçš„ Google Pixel å’Œ Nexus 设备</a>(Google 设备)的安全æ¼æ´žå’ŒåŠŸèƒ½æ”¹è¿›ã€‚对于 Google 设备,如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-12-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ 2018 å¹´ 12 月的 Android 安全公告中所述的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705" class="external">查看并更新 Android 版本</a>。
+</p>
+<p>
+所有å—支æŒçš„ Google 设备都将会收到 2018-12-05 è¡¥ä¸ç¨‹åºçº§åˆ«çš„更新。建议所有用户都在自己的设备上接å—这些更新。
+</p>
+<p class="note">
+<strong>注æ„</strong>:å¯åœ¨ <a href="https://developers.google.com/android/images" class="external">Google Developers 网站</a>上找到 Google 设备固件映åƒã€‚
+</p>
+
+<h2 id="announcements">通知</h2>
+
+<p>除了 <a href="/security/bulletin/2018-12-01">2018 å¹´ 12 月的 Android 安全公告</a>中所述的安全æ¼æ´žå¤–,Google 设备中还包å«é’ˆå¯¹ä¸‹è¿°å®‰å…¨æ¼æ´žçš„è¡¥ä¸ç¨‹åºã€‚åˆä½œä¼™ä¼´åœ¨è‡³å°‘一个月å‰å°±å·²æ”¶åˆ°å…³äºŽè¿™äº›é—®é¢˜çš„通知,并å¯ä»¥é€‰æ‹©å°†é’ˆå¯¹è¿™äº›é—®é¢˜çš„è¡¥ä¸ç¨‹åºçº³å…¥åˆ°å…¶è®¾å¤‡æ›´æ–°ä¸­ã€‚
+</p>
+
+<h2 id="security-patches">安全补ä¸ç¨‹åº</h2>
+<p>
+æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æè¿°å’Œä¸€ä¸ªè¡¨ï¼Œè¯¥è¡¨ä¸­åŒ…å« CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources#severity">严é‡ç¨‹åº¦</a>和已更新的 Android å¼€æºé¡¹ç›® (AOSP) 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç æ›´æ”¹åˆ—表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„更改记录,我们还将通过 Bug ID åŽé¢çš„数字链接到更多å‚考信æ¯ã€‚
+</p>
+
+<h3 id="qualcomm-components">Qualcomm 组件</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>å‚考编å·</th>
+ <th>类型</th>
+ <th>严é‡ç¨‹åº¦</th>
+ <th>组件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11987</td>
+ <td>A-70638103<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=5e9ffcfa152ecb2832990c42fcd8a0f2e63c2c04">
+QC-CR#2258691</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>ION</td>
+ </tr>
+</tbody></table>
+
+<h2 id="functional-patches">功能补ä¸ç¨‹åº</h2>
+
+<p>
+我们针对å—å½±å“çš„ Pixel 设备纳入了以下功能补ä¸ç¨‹åºï¼Œä»¥è§£å†³ä¸Ž Pixel 设备安全性无关的功能问题。下表中列出的补ä¸ç¨‹åºåŒ…å«ç›¸å…³å‚考编å·ã€å—å½±å“的类别和å—å½±å“的设备。</p>
+
+<table>
+<colgroup><col width="15%" />
+<col width="15%" />
+<col width="40%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>å‚考编å·</th>
+ <th>类别</th>
+ <th>改进</th>
+ <th>设备</th>
+ </tr>
+ <tr>
+ <td>A-117522738</td>
+ <td>性能</td>
+ <td>改进了在æŸäº›æƒ…形下的内存性能</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-110969183</td>
+ <td>相机</td>
+ <td>改进了相机æ•èŽ·æ€§èƒ½</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111008450</td>
+ <td>Pixel Stand</td>
+ <td>改进了使用 Pixel Stand 时的通知å¯è§æ€§</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112376366</td>
+ <td>Android Auto</td>
+ <td>改进了 Android Auto 的兼容性</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115666282</td>
+ <td>相机</td>
+ <td>调整了自动对焦行为</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115624433</td>
+ <td>Pixel Stand</td>
+ <td>改进了使用 Pixel Stand 时的å¯åŠ¨æŒ‡ä»¤æ€§èƒ½</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-116758282</td>
+ <td>显示</td>
+ <td>改进了“显示å±å§‹ç»ˆä¿æŒå¼€å¯çŠ¶æ€â€çš„触å‘性能</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111964925</td>
+ <td>音频</td>
+ <td>改进了 USB-C 音频é…件检测</td>
+ <td>Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111716107</td>
+ <td>è“牙</td>
+ <td>调整了切æ¢è“牙时的音é‡è¡Œä¸º</td>
+ <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111159723</td>
+ <td>Android Auto</td>
+ <td>改进了在æŸäº›è½¦è¾†ä¸­ä½¿ç”¨ Android Auto 时的音频性能</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112228430</td>
+ <td>媒体</td>
+ <td>改进了æŸäº›åª’体应用上的 HDR 颜色轮廓</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-113151604</td>
+ <td>相机</td>
+ <td>改进了相机快门性能</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111277984</td>
+ <td>性能</td>
+ <td>改进使用è“牙时的解é”性能</td>
+ <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">常è§é—®é¢˜å’Œè§£ç­”</h2>
+<p>
+这一部分解答了用户在阅读本公告åŽå¯èƒ½ä¼šæ出的常è§é—®é¢˜ã€‚
+</p>
+<p>
+<strong>1. 如何确定我的设备是å¦å·²é€šè¿‡æ›´æ–°è§£å†³è¿™äº›é—®é¢˜ï¼Ÿ
+</strong>
+</p>
+<p>
+如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-12-05 或更新,则æ„味ç€å·²è§£å†³ 2018-12-05 以åŠä¹‹å‰çš„所有安全补ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅 <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Pixel å’Œ Nexus 更新时间表</a>中的说明。
+</p>
+<p id="type">
+<strong>2.“类型â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+</p>
+<p>
+在æ¼æ´žè¯¦æƒ…表内,“类型â€åˆ—中的æ¡ç›®æ˜¯å®‰å…¨æ¼æ´žçš„分类。<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>缩写è¯</th>
+ <th>定义</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>远程代ç æ‰§è¡Œ</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>ææƒ</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>ä¿¡æ¯æŠ«éœ²</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>æ‹’ç»æœåŠ¡</td>
+ </tr>
+ <tr>
+ <td>N/A</td>
+ <td>没有分类</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>3.“å‚考编å·â€åˆ—中的æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong>
+</p>
+<p>
+在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—中的æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em>
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>å‰ç¼€</th>
+ <th>å‚考编å·</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android Bug ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm å‚考编å·</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek å‚考编å·</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA å‚考编å·</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom å‚考编å·</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>4. 在“å‚考编å·â€åˆ—中,Android Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong>
+</p>
+<p>
+如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—中,相应 Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸­é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。
+</p>
+<p>
+<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告中?</strong>
+</p>
+<p>
+è¦åœ¨ Android 设备上声明最新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œå¿…é¡»ä¿®å¤ Android 安全公告中记录的安全æ¼æ´žã€‚但在声明安全补ä¸ç¨‹åºçº§åˆ«æ—¶ï¼Œå¹¶ä¸æ˜¯å¿…é¡»è¦ä¿®å¤å…¶ä»–安全æ¼æ´žï¼ˆå¦‚本公告中记录的æ¼æ´žï¼‰ã€‚
+</p>
+<h2 id="versions">版本</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>版本</th>
+ <th>日期</th>
+ <th>备注</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 12 月 3 日</td>
+ <td>å‘布了本公告。</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/zh-cn/security/encryption/file-based.html b/zh-cn/security/encryption/file-based.html
index 2622f3fe..8186f380 100644
--- a/zh-cn/security/encryption/file-based.html
+++ b/zh-cn/security/encryption/file-based.html
@@ -28,7 +28,7 @@ Android 7.0 åŠæ›´é«˜ç‰ˆæœ¬æ”¯æŒæ–‡ä»¶çº§åŠ å¯† (FBE)。采用文件级加密æ—
</p>
<aside class="caution">
- <p><strong>注æ„</strong>:在è¿è¡Œ Android 7.0 - 8.1 的设备上,文件级加密无法用于<a href="/devices/storage/adoptable.html">å¯åˆå¹¶çš„存储设备</a>。在使用 FBE 的设备上,必须将新添加的存储媒介(例如 SD å¡ï¼‰ç”¨ä½œ<a href="/devices/storage/traditional.html">传统存储设备</a>。</p>
+ <p><strong>注æ„</strong>:在è¿è¡Œ Android 7.0-8.1 的设备上,文件级加密无法用于<a href="/devices/storage/adoptable.html">å¯åˆå¹¶çš„存储设备</a>。在使用 FBE 的设备上,必须将新添加的存储媒介(例如 SD å¡ï¼‰ç”¨ä½œ<a href="/devices/storage/traditional.html">传统存储设备</a>。</p>
<p>è¿è¡Œ Android 9 åŠæ›´é«˜ç‰ˆæœ¬çš„设备å¯ä»¥ä½¿ç”¨å¯åˆå¹¶çš„存储设备和 FBE。</p>
</aside>
@@ -53,7 +53,7 @@ Android 7.0 åŠæ›´é«˜ç‰ˆæœ¬æ”¯æŒæ–‡ä»¶çº§åŠ å¯† (FBE)。采用文件级加密æ—
Direct Boot API å…许加密感知型应用访问上述任何一个存储空间。应用生命周期会å‘生一些å˜åŒ–,以便系统在用户的 CE 存储空间因用户在é”定å±å¹•ä¸Šé¦–次输入凭æ®è€Œè§£é”<em></em>时,或者在工作资料æä¾›<a href="https://developer.android.com/about/versions/nougat/android-7.0.html#android_for_work">工作资料安全验è¯</a>时,通知应用。无论是å¦å®žçŽ°äº† FBE,è¿è¡Œ Android 7.0 的设备都必须è¦æ”¯æŒè¿™äº›æ–°çš„ API 和生命周期。ä¸è¿‡ï¼Œå¦‚果没有å¯ç”¨ FBE,DE å’Œ CE 存储空间将始终处于解é”状æ€ã€‚
</p>
<p>
-Android å¼€æºé¡¹ç›® (AOSP) 中æ供了 EXT4 文件系统中的文件级加密的完整实现。在满足相关è¦æ±‚的设备上,åªéœ€å¯ç”¨è¯¥å®žçŽ°å³å¯ä½¿ç”¨è¯¥åŠŸèƒ½ã€‚选择使用 FBE 的制造商å¯èƒ½æƒ³è¦äº†è§£åŸºäºŽæ‰€ç”¨ç³»ç»ŸèŠ¯ç‰‡ (SoC) 优化该功能的方法。
+Android å¼€æºé¡¹ç›® (AOSP) 中æ供了 Ext4 å’Œ F2FS 文件系统中的文件级加密的完整实现。在满足相关è¦æ±‚的设备上,åªéœ€å¯ç”¨è¯¥å®žçŽ°å³å¯ä½¿ç”¨è¯¥åŠŸèƒ½ã€‚选择使用 FBE 的制造商å¯èƒ½æƒ³è¦äº†è§£åŸºäºŽæ‰€ç”¨ç³»ç»ŸèŠ¯ç‰‡ (SoC) 优化该功能的方法。
</p>
<p>
AOSP 中的所有必è¦ç¨‹åºåŒ…å‡å·²æ›´æ–°ä¸ºç›´æŽ¥å¯åŠ¨æ„ŸçŸ¥åž‹ç¨‹åºåŒ…。ä¸è¿‡ï¼Œå¦‚果设备制造商使用的是这些应用的定制版本,则需è¦ç¡®ä¿è‡³å°‘存在能够æ供以下æœåŠ¡çš„直接å¯åŠ¨æ„ŸçŸ¥åž‹ç¨‹åºåŒ…:</p>
@@ -64,12 +64,13 @@ AOSP 中的所有必è¦ç¨‹åºåŒ…å‡å·²æ›´æ–°ä¸ºç›´æŽ¥å¯åŠ¨æ„ŸçŸ¥åž‹ç¨‹åºåŒ…。
<h2 id="examples-and-source">示例和æºä»£ç </h2>
<p>
-Android æ供了文件级加密的å‚考实现,其中 vold (<a href="https://android.googlesource.com/platform/system/vold/">system/vold</a>) è´Ÿè´£æä¾›ç”¨äºŽç®¡ç† Android 上的存储设备和存储å·çš„功能。添加 FBE 会为 vold æ供一些新命令,以便支æŒå¯¹å¤šä½ç”¨æˆ·çš„ CE 密钥和 DE 密钥进行密钥管ç†ã€‚除了为使用内核中的 <a href="#kernel-support">EXT4 加密</a>功能而进行的核心更改外,许多系统程åºåŒ…(包括é”定å±å¹•å’Œ SystemUI)也ç»è¿‡äº†ä¿®æ”¹ï¼Œä»¥æ”¯æŒ FBE 和“直接å¯åŠ¨â€åŠŸèƒ½ã€‚其中包括:</p>
+Android æ供了文件级加密的å‚考实现,其中 vold (<a href="https://android.googlesource.com/platform/system/vold/">system/vold</a>) è´Ÿè´£æä¾›ç”¨äºŽç®¡ç† Android 上的存储设备和存储å·çš„功能。添加 FBE 会为 vold æ供一些新命令,以便支æŒå¯¹å¤šä½ç”¨æˆ·çš„ CE 密钥和 DE 密钥进行密钥管ç†ã€‚除了为使用内核中的<a href="#kernel-support">文件级加密</a>功能而进行的核心更改外,许多系统程åºåŒ…(包括é”定å±å¹•å’Œ SystemUI)也ç»è¿‡äº†ä¿®æ”¹ï¼Œä»¥æ”¯æŒ FBE 和“直接å¯åŠ¨â€åŠŸèƒ½ã€‚这些选项包括:
+</p>
<ul>
<li>AOSP 拨å·å™¨ (packages/apps/Dialer)</li><li>æ¡Œé¢æ—¶é’Ÿ (packages/apps/DeskClock)</li><li>LatinIME (packages/inputmethods/LatinIME)*</li><li>“设置â€åº”用 (packages/apps/Settings)*</li><li>SystemUI (frameworks/base/packages/SystemUI)*</li></ul>
<p>
-<em>*使用 <code><a href="#supporting-direct-boot-in-system-applications">defaultToDeviceProtectedStorage</a></code> 清å•å±žæ€§çš„系统应用</em>
+<em>* 使用 <code><a href="#supporting-direct-boot-in-system-applications">defaultToDeviceProtectedStorage</a></code> 清å•å±žæ€§çš„系统应用</em>
</p>
<p>
通过在 AOSP æºä»£ç æ ‘的框架或程åºåŒ…目录中è¿è¡Œ <code>mangrep directBootAware</code> 命令,å¯ä»¥æ‰¾åˆ°æ›´å¤šåŠ å¯†æ„ŸçŸ¥åž‹åº”用和æœåŠ¡çš„示例。
@@ -79,7 +80,8 @@ Android æ供了文件级加密的å‚考实现,其中 vold (<a href="https://
è¦å®‰å…¨åœ°ä½¿ç”¨ AOSP æ供的 FBE 实现,设备需è¦æ»¡è¶³ä»¥ä¸‹ä¾èµ–关系:</p>
<ul>
-<li>对 EXT4 加密的<strong>内核支æŒ</strong>(内核é…置选项:EXT4_FS_ENCRYPTION)</li><li>基于 1.0 或 2.0 版 HAL çš„ <strong><a href="/security/keystore/index.html">Keymaster 支æŒ</a></strong>。ä¸æ”¯æŒ Keymaster 0.3,因为它既ä¸æ供必è¦çš„功能,也ä¸èƒ½ä¿è¯ä¸ºåŠ å¯†å¯†é’¥æ供充分ä¿æŠ¤ã€‚
+<li>对 Ext4 加密或 F2FS 加密的<strong>内核支æŒ</strong>(内核é…置选项:<code>EXT4_FS_ENCRYPTION</code> 或 <code>F2FS_FS_ENCRYPTION</code>)
+</li><li>基于 1.0 或 2.0 版 HAL çš„ <strong><a href="/security/keystore/index.html">Keymaster 支æŒ</a></strong>。ä¸æ”¯æŒ Keymaster 0.3,因为它既ä¸æ供必è¦çš„功能,也ä¸èƒ½ä¿è¯ä¸ºåŠ å¯†å¯†é’¥æ供充分ä¿æŠ¤ã€‚
</li><li>必须在<a href="/security/trusty/index.html">å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒ</a> (TEE) 中实现 <strong>Keymaster/<a href="/security/keystore/index.html">Keystore</a> å’Œ Gatekeeper</strong>,以便为 DE 密钥æä¾›ä¿æŠ¤ï¼Œä»Žè€Œä½¿æœªç»æŽˆæƒçš„æ“作系统(刷写到设备上的定制æ“作系统)无法直接请求 DE 密钥。
</li><li>内核<strong>加密性能</strong>å¿…é¡»è¦åœ¨ä½¿ç”¨ AES XTS 时至少达到 50MB/s,以确ä¿è‰¯å¥½çš„用户体验。
</li><li><strong>硬件信任根</strong>å’Œ<strong>验è¯å¯åŠ¨</strong>需è¦ç»‘定到 Keymaster åˆå§‹åŒ–进程,以确ä¿æœªç»æŽˆæƒçš„æ“作系统无法获å–设备加密凭æ®ã€‚</li>
@@ -95,41 +97,10 @@ Android æ供了文件级加密的å‚考实现,其中 vold (<a href="https://
</p>
<h3 id="kernel-support">内核支æŒ</h3>
<p>
-AOSP æ供的文件级加密实现会用到 Linux 4.4 内核中的 EXT4 加密功能。推è的解决方案是使用基于 4.4 或更高版本的内核。EXT4 加密还åå‘移æ¤åˆ°äº† Android 公共代ç åº“内的 3.10 内核以åŠå—支æŒçš„ Nexus 内核。
-</p>
-<p>
-对于希望将该功能引入到其设备内核的设备制造商æ¥è¯´ï¼ŒAOSP 内核/公共 Git 代ç åº“中的 android-3.10.y 分支å¯ä½œä¸ºä¸€ä¸ªå¾ˆå¥½çš„ç€æ‰‹ç‚¹ã€‚ä¸è¿‡ï¼ŒåŠ¡å¿…è¦åœ¨æœ€æ–°çš„稳定版 Linux 内核(目å‰æ˜¯ <a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?id=refs/tags/v4.6">linux-4.6</a>)中应用 EXT4 å’Œ JBD2 项目æ供的最新补ä¸ç¨‹åºã€‚Nexus 设备内核已ç»åŒ…å«å…¶ä¸­å¾ˆå¤šè¡¥ä¸ç¨‹åºã€‚
-</p>
-<table>
- <tbody><tr>
- <th>设备</th>
- <th>内核</th>
- </tr>
- <tr>
- <td>Android Common</td>
- <td><strong>kernel/common</strong> android-3.10.y (<a href="https://android.googlesource.com/kernel/common/+/android-3.10.y">git</a>)
- </td>
- </tr>
- <tr>
- <td>Nexus 5X (bullhead)</td>
- <td><strong>kernel/msm</strong> android-msm-bullhead-3.10-n-preview-2 (<a href="https://android.googlesource.com/kernel/msm/+/android-msm-bullhead-3.10-n-preview-2">git</a>)
- </td>
- </tr>
- <tr>
- <td>Nexus 6P (angler)</td>
- <td><strong>kernel/msm</strong> android-msm-angler-3.10-n-preview-2 (<a href="https://android.googlesource.com/kernel/msm/+/android-msm-angler-3.10-n-preview-2">git</a>)
- </td>
- </tr>
-</tbody></table>
-<p>
-请注æ„,以上æ¯ä¸ªå†…核都使用了到 3.10 çš„åå‘移æ¤ã€‚Linux 3.18 中的 EXT4 å’Œ JBD2 驱动程åºå·²ç§»æ¤åˆ°åŸºäºŽ 3.10 的现有内核中。由于内核å„个部分之间存在ä¾èµ–关系,因此这ç§åå‘移æ¤ä¼šå¯¼è‡´ç³»ç»Ÿåœæ­¢æ”¯æŒ Nexus 设备ä¸ä½¿ç”¨çš„一些功能。其中包括:</p>
-
-<ul>
-<li>EXT3 驱动程åºï¼Œä¸è¿‡ EXT4 ä»å¯ä»¥è£…载并使用 EXT3 文件系统</li><li>全局文件系统 (GFS) 支æŒ</li><li>EXT4 中的 ACL 支æŒ</li>
-</ul>
-
+Android 通用内核 3.18 版或更高版本中æ供了对 Ext4 å’Œ F2FS 加密的内核支æŒã€‚
+</p>
<p>
-除了对 EXT4 加密æ供功能支æŒå¤–,设备制造商还å¯ä»¥è€ƒè™‘实现加密加速功能,以便加快文件级加密的速度并改善用户体验。
+除了对 Ext4 或 F2FS 加密æ供功能支æŒå¤–,设备制造商还å¯ä»¥è€ƒè™‘实现加密加速功能,以便加快文件级加密的速度并改善用户体验。
</p>
<h3 id="enabling-file-based-encryption">å¯ç”¨æ–‡ä»¶çº§åŠ å¯†</h3>
<p>
@@ -153,11 +124,15 @@ AOSP æ供的文件级加密实现会用到 Linux 4.4 内核中的 EXT4 加密å
<h3 id="encryption-policy">加密政策</h3>
<p>
-EXT4 加密在目录级应用加密政策。首次创建设备的 <code>userdata</code> 分区时,会由 <code>init</code> 脚本应用基本结构和政策。这些脚本将触å‘创建首ä½ç”¨æˆ·ï¼ˆç”¨æˆ· 0)的 CE 密钥和 DE 密钥,并定义è¦ä½¿ç”¨è¿™äº›å¯†é’¥åŠ å¯†å“ªäº›ç›®å½•ã€‚创建其他用户和资料时,会生æˆå¿…è¦çš„其他密钥并将其存储在密钥代ç åº“中;接下æ¥ä¼šä¸ºå¯†é’¥åˆ›å»ºå‡­æ®å’Œè®¾å¤‡å­˜å‚¨ä½ç½®ï¼Œå¹¶ä¸”加密政策会将这些密钥关è”到相应目录。
+文件级加密在目录级应用加密政策。首次创建设备的 <code>userdata</code> 分区时,会由 <code>init</code> 脚本应用基本结构和政策。这些脚本将触å‘创建首ä½ç”¨æˆ·ï¼ˆç”¨æˆ· 0)的 CE 密钥和 DE 密钥,并定义è¦ä½¿ç”¨è¿™äº›å¯†é’¥åŠ å¯†å“ªäº›ç›®å½•ã€‚创建其他用户和资料时,会生æˆå¿…è¦çš„其他密钥并将其存储在密钥代ç åº“中;接下æ¥ä¼šä¸ºå¯†é’¥åˆ›å»ºå‡­æ®å’Œè®¾å¤‡å­˜å‚¨ä½ç½®ï¼Œå¹¶ä¸”加密政策会将这些密钥关è”到相应目录。
</p>
<p>
在 AOSP 当å‰æ供的文件级加密实现中,加密政策被硬编ç åˆ°äº†ä»¥ä¸‹ä½ç½®ï¼š
</p>
+<pre class="devsite-click-to-copy">/system/extras/libfscrypt/fscrypt_init_extensions.cpp</pre>
+<p>
+在 Android P åŠæ›´æ—©ç‰ˆæœ¬ä¸­ï¼Œè¯¥ä½ç½®ä¸ºï¼š
+</p>
<pre class="devsite-click-to-copy">/system/extras/ext4_utils/ext4_crypt_init_extensions.cpp</pre>
<p>
å¯ä»¥åœ¨è¯¥æ–‡ä»¶ä¸­æ·»åŠ ä¾‹å¤–情况,以彻底防止特定目录被加密,具体方法是将相应目录添加到 <code>directories_to_exclude</code> 列表中。如果进行了此类修改,设备制造商应添加 <a href="/security/selinux/device-policy.html">SELinux 政策</a>,以便仅å‘需è¦ä½¿ç”¨æœªåŠ å¯†ç›®å½•çš„应用授予访问æƒé™ï¼ˆåº”排除所有ä¸å¯ä¿¡çš„应用)。
@@ -225,13 +200,18 @@ EXT4 加密在目录级应用加密政策。首次创建设备的 <code>userdata
为了确ä¿å®žçŽ°çš„ FBE 功能版本能够按预期工作,需è¦éƒ¨ç½²å¤šç§ <a href="https://android.googlesource.com/platform/cts/+/master/hostsidetests/appsecurity/src/android/appsecurity/cts/DirectBootHostTest.java">CTS 加密测试</a>。
</p>
<p>
-å¯ä»¥é¡ºåˆ©ä¸ºæ‚¨çš„主æ¿ç¼–译内核åŽï¼Œè¿˜éœ€è¦ä¸º x86 编译内核并在 QEMU 下è¿è¡Œè¯¥å†…核,以便使用以下命令通过 <a hre="https://git.kernel.org/cgit/fs/ext2/xfstests-bld.git/plain/quick-start?h=META">xfstest</a> 进行测试:
+å¯ä»¥é¡ºåˆ©ä¸ºæ‚¨çš„主æ¿ç¼–译内核åŽï¼Œæ‚¨è¿˜åº”该为 x86 编译内核并在 QEMU 下è¿è¡Œè¯¥å†…核,以便通过 <a hre="https://git.kernel.org/cgit/fs/ext2/xfstests-bld.git/plain/quick-start?h=META">kvm-xfstests</a> 进行测试。对于 Ext4,请使用:
</p>
<pre class="devsite-terminal devsite-click-to-copy">
-kvm-xfstests -c encrypt -g auto
+kvm-xfstests -c ext4/encrypt -g auto
</pre>
<p>
-此外,设备制造商å¯ä»¥æ‰§è¡Œè¿™äº›æ‰‹åŠ¨æµ‹è¯•ã€‚在å¯ç”¨äº† FBE 的设备上进行以下手动测试:</p>
+对于 F2FS,请使用:
+</p>
+<pre class="devsite-terminal devsite-click-to-copy">
+kvm-xfstests -c f2fs/encrypt -g auto
+</pre>
+<p>此外,设备制造商å¯ä»¥åœ¨å¯ç”¨äº† FBE 的设备上进行以下手动测试:</p>
<ul>
<li>检查 <code>ro.crypto.state</code> 是å¦å­˜åœ¨<ul>
diff --git a/zh-cn/security/enhancements/enhancements42.html b/zh-cn/security/enhancements/enhancements42.html
index 9c6383b8..c0444910 100644
--- a/zh-cn/security/enhancements/enhancements42.html
+++ b/zh-cn/security/enhancements/enhancements42.html
@@ -33,13 +33,13 @@ Android æ供了一个多层安全模型,<a href="/security/index.html">Andro
<li><strong>改进åŽçš„ Android æƒé™æ˜¾ç¤ºæ–¹å¼</strong> - æƒé™åˆ’分到了多个对用户æ¥è¯´æ›´æ¸…晰明了的组中。在审核æƒé™æ—¶ï¼Œç”¨æˆ·å¯ä»¥ç‚¹å‡»æƒé™æ¥æŸ¥çœ‹å…³äºŽç›¸åº”æƒé™çš„更多详细信æ¯ã€‚</li>
-<li><strong>installd 安全强化</strong> - <code>installd</code> 守护进程ä¸ä¼šä»¥ Root 用户身份è¿è¡Œï¼Œä»Žè€Œå¯å‡å° Root ææƒæ”»å‡»çš„潜在攻击é¢ã€‚</li>
+<li><strong>installd 安全强化</strong> - <code>installd</code> 守护进程ä¸ä¼šä»¥ Root 用户身份è¿è¡Œï¼Œä»Žè€Œå¯ç¼©å° Root ææƒæ”»å‡»çš„潜在攻击é¢ã€‚</li>
<li><strong>init 脚本安全强化</strong> - init 脚本现在应用 <code>O_NOFOLLOW</code> 语义æ¥é˜²èŒƒä¸Žç¬¦å·é“¾æŽ¥ç›¸å…³çš„攻击。</li>
<li><strong>FORTIFY_SOURCE</strong> - Android 现在实现了 <code>FORTIFY_SOURCE</code>,以供系统库和应用用于防范内存æŸå。</li>
-<li><strong>ContentProvider 默认é…ç½®</strong> - 采用 API 17 级的应用会针对æ¯ä¸ª<a href="https://developer.android.com/reference/android/content/ContentProvider.html">内容æ供程åº</a>默认将“exportâ€è®¾ä¸ºâ€œfalseâ€ï¼Œä»Žè€Œå‡å°åº”用的默认å—攻击é¢ã€‚</li>
+<li><strong>ContentProvider 默认é…ç½®</strong> - 采用 API 17 级的应用会针对æ¯ä¸ª<a href="https://developer.android.com/reference/android/content/ContentProvider.html">内容æ供程åº</a>默认将“exportâ€è®¾ä¸ºâ€œfalseâ€ï¼Œä»Žè€Œç¼©å°åº”用的默认å—攻击é¢ã€‚</li>
<li><strong>加密</strong> - 修改了 SecureRandom å’Œ Cipher.RSA 的默认实现,以便使用 OpenSSL。为使用 OpenSSL 1.0.1 çš„ TLSv1.1 å’Œ TLSv1.2 添加了安全套接字支æŒ</li>
diff --git a/zh-cn/security/index.html b/zh-cn/security/index.html
index 18573db5..5d699c58 100644
--- a/zh-cn/security/index.html
+++ b/zh-cn/security/index.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>安全</title>
+ <title>安全性</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
diff --git a/zh-cn/security/keystore/tags.html b/zh-cn/security/keystore/tags.html
index 1e847c89..2a9dcec4 100644
--- a/zh-cn/security/keystore/tags.html
+++ b/zh-cn/security/keystore/tags.html
@@ -93,7 +93,7 @@ typedef enum {
<p><strong>版本</strong>:1ã€2ã€3ã€4</p>
<p><strong>是å¦å¯é‡å¤ä½¿ç”¨</strong>?å¦</p>
-<p>将此标记æ供给 <a href="/security/keystore/implementer-ref#generate_key">generateKey</a> 或 <a href="/security/keystore/implementer-ref#import_key">importKey</a> 时,此标记å¯ç”¨äºŽæŒ‡å®šä»»ä½•æ—¶å€™ä½¿ç”¨ç›¸åº”密钥时必需的数æ®ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œè°ƒç”¨ <a href="/security/keystore/implementer-ref#export_key">exportKey</a> å’Œ <a href="/security/keystore/implementer-ref#get_key_characteristics">getKeyCharacteristics</a> 时需è¦ä¸º <code>clientId</code> å‚æ•°æ供相åŒçš„值,而调用 <a href="/security/keystore/implementer-ref#begin">begin</a> 时则需è¦æ供此标记以åŠç›¸åŒçš„相关数æ®ï¼ˆä½œä¸º <code>inParams</code> 集的一部分)。如果未收到正确的数æ®ï¼Œåˆ™è¯¥å‡½æ•°ä¼šè¿”回 <code>ErrorCode::INVALID_KEY_BLOB</code>。</p>
+<p>将此标记æ供给 <a href="/security/keystore/implementer-ref#generate_key">generateKey</a> 或 <a href="/security/keystore/implementer-ref#import_key">importKey</a> 时,此标记å¯ç”¨äºŽæŒ‡å®šä½¿ç”¨ç›¸åº”密钥时å‡å¿…é¡»è¦æ供的数æ®ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œè°ƒç”¨ <a href="/security/keystore/implementer-ref#export_key">exportKey</a> å’Œ <a href="/security/keystore/implementer-ref#get_key_characteristics">getKeyCharacteristics</a> 时需è¦ä¸º <code>clientId</code> å‚æ•°æ供相åŒçš„值,而调用 <a href="/security/keystore/implementer-ref#begin">begin</a> 时则需è¦æ供此标记以åŠç›¸åŒçš„相关数æ®ï¼ˆä½œä¸º <code>inParams</code> 集的一部分)。如果未收到正确的数æ®ï¼Œåˆ™è¯¥å‡½æ•°ä¼šè¿”回 <code>ErrorCode::INVALID_KEY_BLOB</code>。</p>
<p>此标记的内容以加密形å¼ç»‘定到相应密钥,这æ„味ç€ï¼Œå¦‚果有ä¸è½¨äººå£«æœ‰æƒè®¿é—®å®‰å…¨åŸŸçš„所有机密内容,但无æƒè®¿é—®æ­¤æ ‡è®°çš„内容,必须è¦ç¡®ä¿ä»–们在ä¸å¯¹æ­¤æ ‡è®°çš„内容进行暴力破解攻击的情况下无法解密相应密钥,应用å¯é€šè¿‡æŒ‡å®šè¶³å¤Ÿçš„高熵内容æ¥é˜²èŒƒè¿™ä¸€è¡Œä¸ºã€‚<em></em></p>
@@ -104,7 +104,7 @@ typedef enum {
<p><strong>版本</strong>:1ã€2ã€3ã€4</p>
<p><strong>是å¦å¯é‡å¤ä½¿ç”¨</strong>?å¦</p>
-<p>将此标记æ供给 <a href="/security/keystore/implementer-ref#generate_key">generateKey</a> 或 <a href="/security/keystore/implementer-ref#import_key">importKey</a> 时,此标记å¯ç”¨äºŽæŒ‡å®šä»»ä½•æ—¶å€™ä½¿ç”¨ç›¸åº”密钥时必需的数æ®ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œè°ƒç”¨ <a href="/security/keystore/implementer-ref#export_key">exportKey</a> å’Œ <a href="/security/keystore/implementer-ref#get_key_characteristics">getKeyCharacteristics</a> 时需è¦ä¸º <code>clientId</code> å‚æ•°æ供相åŒçš„值,而调用 <a href="/security/keystore/implementer-ref#begin">begin</a> 时则需è¦æ供此标记以åŠç›¸åŒçš„相关数æ®ï¼ˆä½œä¸º <code>inParams</code> 集的一部分)。如果未收到正确的数æ®ï¼Œåˆ™è¯¥å‡½æ•°ä¼šè¿”回 <code>ErrorCode::INVALID_KEY_BLOB</code>。</p>
+<p>将此标记æ供给 <a href="/security/keystore/implementer-ref#generate_key">generateKey</a> 或 <a href="/security/keystore/implementer-ref#import_key">importKey</a> 时,此标记å¯ç”¨äºŽæŒ‡å®šä½¿ç”¨ç›¸åº”密钥时å‡å¿…é¡»è¦æ供的数æ®ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œè°ƒç”¨ <a href="/security/keystore/implementer-ref#export_key">exportKey</a> å’Œ <a href="/security/keystore/implementer-ref#get_key_characteristics">getKeyCharacteristics</a> 时需è¦ä¸º <code>clientId</code> å‚æ•°æ供相åŒçš„值,而调用 <a href="/security/keystore/implementer-ref#begin">begin</a> 时则需è¦æ供此标记以åŠç›¸åŒçš„相关数æ®ï¼ˆä½œä¸º <code>inParams</code> 集的一部分)。如果未收到正确的数æ®ï¼Œåˆ™è¯¥å‡½æ•°ä¼šè¿”回 <code>ErrorCode::INVALID_KEY_BLOB</code>。</p>
<p>此标记的内容以加密形å¼ç»‘定到相应密钥,这æ„味ç€ï¼Œå³ä½¿æœ‰ä¸è½¨äººå£«æœ‰æƒè®¿é—®å®‰å…¨åŸŸçš„所有机密内容,也应无æƒè®¿é—®æ­¤æ ‡è®°çš„内容,必须è¦ç¡®ä¿ä»–们无法解密相应密钥(在ä¸å¯¹æ­¤æ ‡è®°çš„内容进行暴力破解攻击的情况下)。<em></em></p>
@@ -213,7 +213,7 @@ typedef enum {
<p><strong>版本</strong>:1ã€2ã€3ã€4</p>
<p><strong>是å¦å¯é‡å¤ä½¿ç”¨</strong>?å¦</p>
-<p>ç”¨äºŽå‘ <a href="/security/keystore/authentication/#authentication_token_format">begin</a>ã€<a href="/security/keystore/implementer-ref#begin">update</a> 或 <a href="/security/keystore/implementer-ref#update">finish</a> æä¾›<a href="/security/keystore/implementer-ref#finish">身份验è¯ä»¤ç‰Œ</a>,以便å‘è¦æ±‚用户通过身份验è¯çš„密钥æ“作(密钥带有 <a href="#user_secure_id">Tag::USER_SECURE_ID</a>)è¯æ˜Žç›¸åº”用户已通过身份验è¯ã€‚</p>
+<p>ç”¨äºŽå‘ <a href="/security/keystore/implementer-ref#begin">begin</a>ã€<a href="/security/keystore/implementer-ref#update">update</a> 或 <a href="/security/keystore/implementer-ref#finish">finish</a> æä¾›<a href="/security/keystore/authentication/#authentication_token_format">身份验è¯ä»¤ç‰Œ</a>,以便å‘è¦æ±‚用户通过身份验è¯çš„密钥æ“作(密钥带有 <a href="#user_secure_id">Tag::USER_SECURE_ID</a>)è¯æ˜Žç›¸åº”用户已通过身份验è¯ã€‚</p>
<p>æ­¤æ ‡è®°çš„å€¼æ˜¯ä¸€ä¸ªåŒ…å« <code>hw_auth_token_t</code> 结构的 Blob。</p>
@@ -286,7 +286,8 @@ typedef enum {
</p>
<p>在æ¯æ¬¡å¯åŠ¨æœŸé—´ï¼Œå¼•å¯¼åŠ è½½ç¨‹åºéƒ½å¿…须将å¯åŠ¨æ˜ åƒçš„è¡¥ä¸ç¨‹åºçº§åˆ«æ供给安全环境(相应机制是由实现定义的)。
</p>
-<p>必须由硬件强制执行。
+<p>
+必须由硬件强制执行。
</p>
<h2 id="bootloader_only">Tag::BOOTLOADER_ONLY</h2>
@@ -714,7 +715,8 @@ typedef enum {
<p>该标记的值是形å¼ä¸º YYYYMMDD 的整数,其中 YYYY 表示上次更新时间的四ä½æ•°å¹´ä»½ï¼ŒMM 表示上次更新时间的两ä½æ•°æœˆä»½ï¼ŒDD 表示上次更新时间的两ä½æ•°æ—¥æœŸã€‚例如,对于上次更新时间为 2018 å¹´ 6 月 5 日的 Android 设备上生æˆçš„密钥,其值将表示为 20180605。</p>
<p>IKeymasterDevice HAL 必须从系统属性 <code>ro.vendor.build.security_patch</code> 读å–当å‰ä¾›åº”商补ä¸ç¨‹åºçº§åˆ«ï¼Œå¹¶åœ¨ HAL 首次加载时将其传递给安全环境(相应机制是由实现定义的)。在下次å¯åŠ¨å®Œæˆå‰ï¼Œå®‰å…¨çŽ¯å¢ƒä¸å¾—接å—其他补ä¸ç¨‹åºçº§åˆ«ã€‚
</p>
-<p>必须由硬件强制执行。
+<p>
+必须由硬件强制执行。
</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/security/overview/acknowledgements.html b/zh-cn/security/overview/acknowledgements.html
index 28b1e22b..a9694d39 100644
--- a/zh-cn/security/overview/acknowledgements.html
+++ b/zh-cn/security/overview/acknowledgements.html
@@ -20,11 +20,56 @@
limitations under the License.
-->
-<p>Android 安全团队衷心感谢以下个人和团队帮助æ高 Android 安全性。他们或å‘现安全æ¼æ´žï¼Œå¹¶è´Ÿè´£åœ°é€šè¿‡ AOSP 错误跟踪工具<a href="https://www.google.com/appserve/security-bugs/m2/new">安全错误报告</a>模æ¿å‘我们报告,或æ交对 Android 安全性具有积æžå½±å“的代ç ï¼ˆåŒ…括符åˆ<a href="https://www.google.com/about/appsecurity/patch-rewards/">è¡¥ä¸ç¨‹åºå¥–励</a>计划æ¡ä»¶çš„代ç ï¼‰ï¼Œå¸®åŠ©æ高了 Android 安全性。</p>
+<p>Android 安全团队衷心感谢以下个人和团队帮助æ高 Android 安全性。他们有的å‘现了安全æ¼æ´žï¼Œå¹¶è´Ÿè´£åœ°é€šè¿‡ AOSP 错误跟踪工具<a href="https://www.google.com/appserve/security-bugs/m2/new">安全错误报告</a>模æ¿å‘我们报告,有的æ交了对 Android 安全性具有积æžå½±å“的代ç ï¼ˆåŒ…括符åˆ<a href="https://www.google.com/about/appsecurity/patch-rewards/">è¡¥ä¸ç¨‹åºå¥–励</a>计划æ¡ä»¶çš„代ç ï¼‰ï¼Œå¸®åŠ©æ高了 Android 安全性。</p>
<h2 id="2018">2018 å¹´</h2>
<p>2018 年的安全致谢信æ¯å°†æŒ‰æœˆåˆ—出。过去几年的致谢信æ¯æ˜¯åˆ—在一起的。</p>
+<h4 id="nov-2018">11 月</h4>
+
+<table>
+ <tbody><tr>
+ <th>研究人员</th>
+ <th>CVE</th>
+ </tr>
+ <tr>
+ <td><a href="https://labs.mwrinfosecurity.com/" class="external">MWR 实验室</a>的 <a href="https://twitter.com/amarekano" class="external">Amar Menezes</a></td>
+ <td>CVE-2018-9524</td>
+ </tr>
+ <tr>
+ <td>奇虎 360 科技有é™å…¬å¸ Alpha 团队的 Elphet 和龚广</td>
+ <td>CVE-2018-9569ã€CVE-2018-9570ã€CVE-2018-9573ã€CVE-2018-9576ã€CVE-2018-9577</td>
+ </tr>
+ <tr>
+ <td>MS509Team (<a href="http://www.ms509.com" class="external">www.ms509.com</a>) 的 En He (<a href="https://twitter.com/@heeeeen4x" class="external">@heeeeen4x</a>) 和 Bo Liu</td>
+ <td>CVE-2018-9457</td>
+ </tr>
+ <tr>
+ <td><a href="https://github.com/michalbednarski" class="external">Michał Bednarski</a></td>
+ <td>CVE-2018-9522ã€CVE-2018-9523</td>
+ </tr>
+ <tr>
+ <td>Niky1235 (<a href="https://twitter.com/jiych_guru" class="external">@jiych_guru</a>)</td>
+ <td>CVE-2018-9347</td>
+ </tr>
+ <tr>
+ <td>Zimperium zLabs 团队的 Tamir Zahavi-Brunner (<a href="https://twitter.com/tamir_zb" class="external">@tamir_zb</a>)</td>
+ <td>CVE-2018-9539</td>
+ </tr>
+ <tr>
+ <td>IIE 的项晓波;奇虎 360 科技有é™å…¬å¸ Alpha 团队的龚广</td>
+ <td>CVE-2018-9571ã€CVE-2018-9572ã€CVE-2018-9574ã€CVE-2018-9575</td>
+ </tr>
+ <tr>
+ <td><a href="https://xlab.tencent.com/en/" class="external">腾讯安全玄武实验室</a>的王永科 (<a href="https://twitter.com/rudykewang" class="external">@Rudykewang</a>) 和 Xiangqian Zhang (<a href="https://twitter.com/h3rb0x" class="external">@h3rb0x</a>)</td>
+ <td>CVE-2018-9540ã€CVE-2018-9541</td>
+ </tr>
+ <tr>
+ <td>奇虎 360 科技有é™å…¬å¸æˆéƒ½å®‰å…¨å“应中心的韩å­è¯º (<a href="http://weibo.com/ele7enxxh" class="external">weibo.com/ele7enxxh</a>)</td>
+ <td>CVE-2018-9527ã€CVE-2018-9544ã€CVE-2018-9545ã€CVE-2018-9578</td>
+ </tr>
+</tbody></table>
+
<h4 id="oct-2018">10 月</h4>
<table>
@@ -262,7 +307,7 @@
<td>CVE-2018-9418ã€CVE-2018-9419ã€CVE-2018-9413ã€CVE-2018-9365</td>
</tr>
<tr>
- <td>奇虎 360 IceSword 实验室的 Jianqiang Zhao (<a href="https://twitter.com/jianqiangzhao" class="external">@jianqiangzhao</a>) 和 pjf (<a href="http://weibo.com/jfpan">weibo.com/jfpan</a>)</td>
+ <td>奇虎 360 冰刃实验室的赵建强 (<a href="https://twitter.com/jianqiangzhao" class="external">@jianqiangzhao</a>) 和潘剑锋 (<a href="http://weibo.com/jfpan">weibo.com/jfpan</a>)</td>
<td>CVE-2018-9417</td>
</tr>
<tr>
@@ -410,7 +455,7 @@
<td>CVE-2017-6293ã€CVE-2018-6246</td>
</tr>
<tr>
- <td>奇虎 360 科技有é™å…¬å¸ IceSword 实验室的陈耿佳 (<a href="https://twitter.com/chengjia4574">@chengjia4574</a>) å’Œ <a href="http://weibo.com/jfpan">pjf</a></td>
+ <td>奇虎 360 科技有é™å…¬å¸å†°åˆƒå®žéªŒå®¤çš„陈耿佳 (<a href="https://twitter.com/chengjia4574">@chengjia4574</a>) å’Œ<a href="http://weibo.com/jfpan">潘剑锋</a></td>
<td>CVE-2017-18153</td>
</tr>
<tr>
@@ -449,8 +494,7 @@
<th>CVE</th>
</tr>
<tr>
- <td>Google çš„ Billy Lau
- </td>
+ <td>Google çš„ Billy Lau</td>
<td>CVE-2017-13305</td>
</tr>
<tr>
@@ -462,7 +506,7 @@
<td>CVE-2017-13289ã€CVE-2017-13286</td>
</tr>
<tr>
- <td>Huawei L.O. 团队的 Cusas</td>
+ <td>åŽä¸ºå…¬å¸ L.O. 团队的 Cusas</td>
<td>CVE-2017-13279</td>
</tr>
<tr>
@@ -478,8 +522,7 @@
<td>CVE-2017-13276</td>
</tr>
<tr>
- <td><a href="http://www.ms509.com">MS509Team</a> 的 En He (<a href="https://twitter.com/heeeeen4x">@heeeeen4x</a>) 和 Bo Liu
- </td>
+ <td><a href="http://www.ms509.com">MS509Team</a> 的 En He (<a href="https://twitter.com/heeeeen4x">@heeeeen4x</a>) 和 Bo Liu</td>
<td>CVE-2017-13294</td>
</tr>
<tr>
@@ -491,66 +534,47 @@
<td>CVE-2018-3596</td>
</tr>
<tr>
- <td>Haosheng Wang (<a href="https://twitter.com/gnehsoah">@gnehsoah</a>)</td>
- <td>CVE-2017-13280
- </td>
+ <td>王浩生 (<a href="https://twitter.com/gnehsoah">@gnehsoah</a>)</td>
+ <td>CVE-2017-13280</td>
</tr>
<tr>
- <td>Jean-Baptiste Cayrou (<a href="https://twitter.com/jbcayrou">@jbcayrou</a>)
- </td>
- <td>CVE-2017-13284
- </td>
+ <td>Jean-Baptiste Cayrou (<a href="https://twitter.com/jbcayrou">@jbcayrou</a>)</td>
+ <td>CVE-2017-13284</td>
</tr>
<tr>
- <td>奇虎 360 科技有é™å…¬å¸ Alpha 团队的戴建军 (<a href="https://twitter.com/Jioun_dai">@Jioun_dai</a>) 和龚广
- </td>
- <td>CVE-2017-13291ã€CVE-2017-13283ã€CVE-2017-13282ã€CVE-2017-13281ã€CVE-2017-13267
- </td>
+ <td>奇虎 360 科技有é™å…¬å¸ Alpha 团队的戴建军 (<a href="https://twitter.com/Jioun_dai">@Jioun_dai</a>) 和龚广</td>
+ <td>CVE-2017-13291ã€CVE-2017-13283ã€CVE-2017-13282ã€CVE-2017-13281ã€CVE-2017-13267</td>
</tr>
<tr>
- <td>Orange Labs çš„ Patrick Delvenne (<a href="https://twitter.com/wintzx">@wintzx</a>)
- </td>
- <td>CVE-2018-3584
- </td>
+ <td>Orange Labs çš„ Patrick Delvenne (<a href="https://twitter.com/wintzx">@wintzx</a>)</td>
+ <td>CVE-2018-3584</td>
</tr>
<tr>
- <td>百度安全实验室的ä¸é¹é£žã€åŒ…沉浮和韦韬
- </td>
- <td>CVE-2017-13306ã€CVE-2017-13290ã€CVE-2017-15837
- </td>
+ <td>百度安全实验室的ä¸é¹é£žã€åŒ…沉浮和韦韬</td>
+ <td>CVE-2017-13306ã€CVE-2017-13290ã€CVE-2017-15837</td>
</tr>
<tr>
- <td>Tencent Blade 团队
- </td>
- <td>CVE-2017-15853
- </td>
+ <td>Tencent Blade 团队</td>
+ <td>CVE-2017-15853</td>
</tr>
<tr>
- <td>Vasily Vasiliev
- </td>
- <td>CVE-2017-13297
- </td>
+ <td>Vasily Vasiliev</td>
+ <td>CVE-2017-13297</td>
</tr>
<tr>
- <td>阿里巴巴的 Weichao Sun (<a href="https://twitter.com/sunblate">@sunblate</a>)
- </td>
- <td>CVE-2017-13277
- </td>
+ <td>阿里巴巴的 Weichao Sun (<a href="https://twitter.com/sunblate">@sunblate</a>)</td>
+ <td>CVE-2017-13277</td>
</tr>
<tr>
<td>奇虎 360 科技有é™å…¬å¸ Vulpecker 团队的<a href="mailto:huahuaisadog@gmail.com">戴阳</a>å’Œ<a href="http://weibo.com/panyu6325">潘宇</a></td>
- <td>CVE-2017-13304
- </td>
+ <td>CVE-2017-13304</td>
</tr>
<tr>
- <td>奇虎 360 科技有é™å…¬å¸ IceSword 实验室的郭永刚 (<a href="https://twitter.com/guoygang">@guoygang</a>)
- </td>
- <td>CVE-2017-8269ã€CVE-2017-13307ã€CVE-2018-5826
- </td>
+ <td>奇虎 360 科技有é™å…¬å¸å†°åˆƒå®žéªŒå®¤çš„郭永刚 (<a href="https://twitter.com/guoygang">@guoygang</a>)</td>
+ <td>CVE-2017-8269ã€CVE-2017-13307ã€CVE-2018-5826</td>
</tr>
<tr>
- <td>Huawei L.O. 团队的 Zhongwen 和 Chao Dai
- </td>
+ <td>åŽä¸ºå…¬å¸ L.O. 团队的 Zhongwen å’Œ Chao Dai</td>
<td>CVE-2017-13274</td>
</tr>
<tr>
@@ -625,7 +649,7 @@
<td>CVE-2017-13249ã€CVE-2017-13248ã€CVE-2017-13264</td>
</tr>
<tr>
- <td>èš‚èšé‡‘æœå·´æ–¯å…‰å¹´å®‰å…¨å®žéªŒå®¤çš„<a href="http://www.weibo.com/wishlinux">å´æ½æµ </a> (<a href=" https://twitter.com/wish_wu">@wish_wu</a>)</td>
+ <td>èš‚èšé‡‘æœå·´æ–¯å…‰å¹´å®‰å…¨å®žéªŒå®¤çš„<a href=" https://twitter.com/wish_wu">å´æ½æµ </a> (<a href="http://www.weibo.com/wishlinux">@wish_wu</a>)</td>
<td>CVE-2017-13259ã€CVE-2017-13272</td>
</tr>
<tr>
@@ -664,92 +688,64 @@
<td>CVE-2017-13235</td>
</tr>
<tr>
- <td>奇虎 360 科技有é™å…¬å¸ Alpha 团队的 Elphet 和龚广
- </td>
- <td>CVE-2017-13229
- </td>
+ <td>奇虎 360 科技有é™å…¬å¸ Alpha 团队的 Elphet 和龚广</td>
+ <td>CVE-2017-13229</td>
</tr>
<tr>
- <td><a href="http://www.ms509.com">MS509Team</a> 的 En He (<a href="https://twitter.com/heeeeen4x">@heeeeen4x</a>) 和 Bo Liu
- </td>
- <td>CVE-2017-13242
- </td>
+ <td><a href="http://www.ms509.com">MS509Team</a> 的 En He (<a href="https://twitter.com/heeeeen4x">@heeeeen4x</a>) 和 Bo Liu</td>
+ <td>CVE-2017-13242</td>
</tr>
<tr>
- <td>Google çš„ Gal Beniamini
- </td>
- <td>CVE-2017-13236
- </td>
+ <td>Google çš„ Gal Beniamini</td>
+ <td>CVE-2017-13236</td>
</tr>
<tr>
<td>奇虎 360 科技有é™å…¬å¸ Alpha 团队的陈豪和龚广</td>
- <td>CVE-2017-13245
- </td>
+ <td>CVE-2017-13245</td>
</tr>
<tr>
- <td><a href="http://c0reteam.org">C0RE 团队</a>çš„ Hongli Han (<a href="https://twitter.com/HexB1n">@HexB1n</a>)ã€<a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a> 和周明建 (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)
- </td>
- <td>CVE-2017-6258
- </td>
+ <td><a href="http://c0reteam.org">C0RE 团队</a>çš„ Hongli Han (<a href="https://twitter.com/HexB1n">@HexB1n</a>)ã€<a href="mailto:shaodacheng2016@gmail.com">Dacheng Shao</a> 和周明建 (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)</td>
+ <td>CVE-2017-6258</td>
</tr>
<tr>
- <td><a href="http://c0reteam.org">C0RE 团队</a>çš„ Hongli Han (<a href="https://twitter.com/HexB1n">@HexB1n</a>)ã€å‘¨æ˜Žå»º (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)
- </td>
- <td>CVE-2017-17767ã€CVE-2017-6279
- </td>
+ <td><a href="http://c0reteam.org">C0RE 团队</a>çš„ Hongli Han (<a href="https://twitter.com/HexB1n">@HexB1n</a>)ã€å‘¨æ˜Žå»º (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)</td>
+ <td>CVE-2017-17767ã€CVE-2017-6279</td>
</tr>
<tr>
- <td><a href="http://c0reteam.org">C0RE 团队</a>的周明建 (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)
- </td>
- <td>CVE-2017-13241ã€CVE-2017-13231
- </td>
+ <td><a href="http://c0reteam.org">C0RE 团队</a>的周明建 (<a href="https://twitter.com/Mingjian_Zhou">@Mingjian_Zhou</a>)</td>
+ <td>CVE-2017-13241ã€CVE-2017-13231</td>
</tr>
<tr>
- <td>Nightwatch Cybersecurity Research
- </td>
- <td>CVE-2017-13243
- </td>
+ <td>Nightwatch Cybersecurity Research</td>
+ <td>CVE-2017-13243</td>
</tr>
<tr>
<td><a href="mailto:jiych.guru&#64;gmail.com">Niky1235</a> (<a href="https://twitter.com/jiych_guru">@jiych_guru</a>)</td>
- <td>CVE-2017-13230ã€CVE-2017-13234
- </td>
+ <td>CVE-2017-13230ã€CVE-2017-13234</td>
</tr>
<tr>
- <td>Outware
- </td>
- <td>CVE-2017-13239
- </td>
+ <td>Outware</td>
+ <td>CVE-2017-13239</td>
</tr>
<tr>
- <td>PDD 安全团队的何淇丹 (<a href="https://twitter.com/flanker_hqd?lang=en">@flanker_hqd</a>)
- </td>
- <td>CVE-2017-13246
- </td>
+ <td>PDD 安全团队的何淇丹 (<a href="https://twitter.com/flanker_hqd?lang=en">@flanker_hqd</a>)</td>
+ <td>CVE-2017-13246</td>
</tr>
<tr>
- <td>腾讯安全平å°éƒ¨é—¨çš„ Xiling Gong
- </td>
- <td>CVE-2017-15852
- </td>
+ <td>腾讯安全平å°éƒ¨é—¨çš„ Xiling Gong</td>
+ <td>CVE-2017-15852</td>
</tr>
<tr>
- <td>奇虎 360 科技有é™å…¬å¸ IceSword 实验室的郭永刚 (<a href="https://twitter.com/guoygang">@guoygang</a>)
- </td>
- <td>CVE-2017-13273
- </td>
+ <td>奇虎 360 科技有é™å…¬å¸å†°åˆƒå®žéªŒå®¤çš„郭永刚 (<a href="https://twitter.com/guoygang">@guoygang</a>)</td>
+ <td>CVE-2017-13273</td>
</tr>
<tr>
- <td>腾讯安全平å°éƒ¨é—¨çš„å¼ åš
- </td>
- <td>CVE-2015-9016
- </td>
+ <td>腾讯安全平å°éƒ¨é—¨çš„å¼ åš</td>
+ <td>CVE-2015-9016</td>
</tr>
<tr>
- <td>奇虎 360 科技有é™å…¬å¸æˆéƒ½å®‰å…¨å“应中心的<a href="http://weibo.com/ele7enxxh">韩å­è¯º</a>
- </td>
- <td>CVE-2017-13232
- </td>
+ <td>奇虎 360 科技有é™å…¬å¸æˆéƒ½å®‰å…¨å“应中心的<a href="http://weibo.com/ele7enxxh">韩å­è¯º</a></td>
+ <td>CVE-2017-13232</td>
</tr>
</tbody></table>
@@ -1503,7 +1499,7 @@
<td>CVE-2017-0758ã€CVE-2017-0760</td>
</tr>
<tr>
- <td><a href="http://www.nsfocus.com/">NSFocus</a> çš„ <a href="mailto:zhouzhenster@gmail.com">Zhen Zhou</a> (<a href="https://twitter.com/henices">@henices</a>)</td>
+ <td><a href="http://www.nsfocus.com/">绿盟科技</a>的<a href="mailto:zhouzhenster@gmail.com">周振</a> (<a href="https://twitter.com/henices">@henices</a>)</td>
<td>CVE-2017-0406</td>
</tr>
<tr>
@@ -1511,7 +1507,7 @@
<td>CVE-2017-0752</td>
</tr>
<tr>
- <td><a href="http://www.nsfocus.com/">NSFocus</a> çš„ <a href="mailto:sundaywind2004@gmail.com">Zhixin Li</a></td>
+ <td><a href="http://www.nsfocus.com/">绿盟科技</a>çš„<a href="mailto:sundaywind2004@gmail.com">æŽå¿—昕</a></td>
<td>CVE-2017-0406</td>
</tr>
<tr>
@@ -1815,7 +1811,7 @@
<p>阿里巴巴的 Weichao Sun (<a href="https://twitter.com/sunblate">@sunblate</a>)</p>
-<p>腾讯科æ©å®žéªŒå®¤ (<a href="https://twitter.com/keen_lab">@keen_lab</a>) çš„ Wen Niu (<a href="https://twitter.com/NWMonster">@NWMonster</a>)</p>
+<p>腾讯科æ©å®žéªŒå®¤ (<a href="https://twitter.com/keen_lab">@keen_lab</a>) 的钮文 (<a href="https://twitter.com/NWMonster">@NWMonster</a>)</p>
<p><a href="http://c0reteam.org">C0RE 团队</a>的 <a href="mailto:vancouverdou@gmail.com">Wenke Dou</a></p>
@@ -1835,7 +1831,7 @@
<p>北京大学的 <a href="mailto:hanxinhui@pku.edu.cn">Xinhui Han</a></p>
-<p><a href="http://www.360safe.com/">奇虎 360</a><a href="http://c0reteam.org">C0RE 团队</a>的 Xuxian Jiang</p>
+<p><a href="http://www.360safe.com/">奇虎 360</a> <a href="http://c0reteam.org">C0RE 团队</a>的 Xuxian Jiang</p>
<p>Android Bionic 团队的 Yabin Cui</p>
@@ -2048,7 +2044,8 @@
<p><a href="http://www.sonymobile.com">索尼移动</a></p>
-<p><a href="https://www.sit.fraunhofer.de/">Fraunhofer SIT</a> 移动安全测试实验室的 Stephan Huber (<a href="mailto:Stephan.Huber@sit.fraunhofer.de">Stephan.Huber@sit.fraunhofer.de</a>)</p>
+<p><a href="https://www.sit.fraunhofer.de/">Fraunhofer SIT</a> 移动安全测试实验室的 Stephan Huber (<a href="mailto:Stephan.Huber@sit.fraunhofer.de">Stephan.Huber@sit.fraunhofer.de</a>)
+</p>
<p>美国国家安全局<a href="https://www.nsa.gov/research/ia_research/">å¯ä¿¡ç³»ç»Ÿç ”究团队</a>çš„ Stephen Smalley
<a href="https://android-review.googlesource.com/#/q/owner:%22Stephen+Smalley+%253Csds%2540tycho.nsa.gov%253E%22+status:merged">
diff --git a/zh-cn/security/overview/app-security.html b/zh-cn/security/overview/app-security.html
index 1bfa5288..a0393120 100644
--- a/zh-cn/security/overview/app-security.html
+++ b/zh-cn/security/overview/app-security.html
@@ -28,13 +28,13 @@
<p><strong>AndroidManifest.xml</strong>:<a href="https://developer.android.com/guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a> 文件是一个控制文件,用于告诉系统如何处ç†åº”用中的所有顶层组件(具体æ¥è¯´å°±æ˜¯ä¸‹é¢ä»‹ç»çš„ Activityã€æœåŠ¡ã€å¹¿æ’­æŽ¥æ”¶å™¨å’Œå†…容æ供程åºï¼‰ã€‚该文件还用于指定需è¦å“ªäº›æƒé™ã€‚</p>
</li>
<li>
- <p><strong>Activity</strong>:<a href="https://developer.android.com/guide/topics/fundamentals/activities.html">Activity</a> 通常是指é¢å‘用户的å•ä¸ªä»»åŠ¡çš„代ç ï¼Œé€šå¸¸åŒ…括å‘用户显示界é¢ï¼Œä½†å¹¶ä¸ä¸€å®šä¼šè¿™æ ·ï¼Œæœ‰äº› Activity 就从ä¸æ˜¾ç¤ºç•Œé¢ã€‚通常情况下,应用的入å£ç‚¹æ˜¯åº”用的其中一项活动。</p>
+ <p><strong>Activity</strong>:<a href="https://developer.android.com/guide/topics/fundamentals/activities.html">Activity</a> 通常是指é¢å‘用户的å•ä¸ªä»»åŠ¡çš„代ç ï¼Œé€šå¸¸åŒ…括å‘用户显示界é¢ï¼Œä½†ä¹Ÿå¹¶ä¸ä¸€å®šè¿™æ ·ï¼Œæœ‰äº› Activity 就从ä¸æ˜¾ç¤ºç•Œé¢ã€‚通常情况下,应用的入å£ç‚¹æ˜¯åº”用的其中一项活动。</p>
</li>
<li>
<p><strong>æœåŠ¡</strong>:<a href="https://developer.android.com/guide/topics/fundamentals/services.html">æœåŠ¡</a>是指在åŽå°è¿è¡Œçš„一段代ç ã€‚æœåŠ¡å¯ä»¥åœ¨è‡ªå·±çš„进程中è¿è¡Œï¼Œä¹Ÿå¯ä»¥åœ¨å…¶ä»–应用的进程中è¿è¡Œã€‚其他组件会“绑定â€åˆ°æŸé¡¹æœåŠ¡ï¼Œå¹¶é€šè¿‡è¿œç¨‹è¿‡ç¨‹è°ƒç”¨æ¥è°ƒç”¨è¯¥æœåŠ¡çš„方法。比如媒体播放器就是一项æœåŠ¡ï¼šå³ä½¿ç”¨æˆ·é€€å‡ºåª’体选择界é¢ï¼Œä¹Ÿå¯èƒ½ä»ç„¶å¸Œæœ›éŸ³ä¹ç»§ç»­æ’­æ”¾ã€‚å³ä½¿ç•Œé¢å·²å…³é—­ï¼ŒæœåŠ¡ä¹Ÿå¯ä½¿éŸ³ä¹ç»§ç»­æ’­æ”¾ã€‚</p>
</li>
<li>
- <p><strong>广播接收器</strong>:<a href="https://developer.android.com/reference/android/content/BroadcastReceiver.html">广播接收器</a>是一ç§å¯¹è±¡ï¼Œåœ¨æ“作系统或其他应用å‘出称为 <a href="https://developer.android.com/reference/android/content/Intent.html">Intent</a> çš„ IPC 机制时进行实例化。例如,应用å¯ä»¥æ³¨å†Œä¸€ä¸ªæŽ¥æ”¶å™¨æ¥æŽ¥æ”¶ç”µé‡ä¸è¶³çš„消æ¯ï¼Œå¹¶å¯ä»¥æ ¹æ®è¯¥ä¿¡æ¯æ”¹å˜è‡ªå·±çš„行为。</p>
+ <p><strong>广播接收器</strong>:<a href="https://developer.android.com/reference/android/content/BroadcastReceiver.html">广播接收器</a>是一ç§å¯¹è±¡ï¼Œè¯¥å¯¹è±¡ä¼šåœ¨æ“作系统或其他应用å‘出称为 <a href="https://developer.android.com/reference/android/content/Intent.html">Intent</a> çš„ IPC 机制时实例化。例如,应用å¯ä»¥æ³¨å†Œä¸€ä¸ªæŽ¥æ”¶å™¨æ¥æŽ¥æ”¶ç”µé‡ä¸è¶³çš„消æ¯ï¼Œå¹¶å¯ä»¥æ ¹æ®è¯¥ä¿¡æ¯æ”¹å˜è‡ªå·±çš„行为。</p>
</li>
</ul>
<h2 id="the-android-permission-model-accessing-protected-apis">Android æƒé™æ¨¡å¼ï¼šè®¿é—®å—ä¿æŠ¤çš„ API</h2>
@@ -60,8 +60,8 @@
<h2 id="how-users-understand-third-party-applications">用户如何了解第三方应用</h2>
<p>当用户与第三方应用互动时,Android 会尽力让用户清楚这一情况,并让用户知é“这些应用具备的功能。在安装任何应用之å‰ï¼Œç³»ç»Ÿéƒ½ä¼šå‘用户显示一æ¡æ˜Žæ™°çš„消æ¯ï¼Œè®©ç”¨æˆ·çŸ¥é“è¦å®‰è£…的应用请求获得的å„项æƒé™ã€‚安装完毕åŽï¼Œç³»ç»Ÿä¸ä¼šå†æ¬¡æ示用户确认任何æƒé™ã€‚</p>
<p>在安装å‰ä¸€åˆ»æ˜¾ç¤ºæƒé™çš„原因有很多。这时用户正在主动查看应用ã€å¼€å‘者和功能方é¢çš„ä¿¡æ¯ï¼Œä»¥ç¡®å®šå…¶æ˜¯å¦ç¬¦åˆè‡ªå·±çš„需求和期望。åŒæ ·éžå¸¸é‡è¦çš„一点是,他们尚未对è¦å®‰è£…的应用åšå‡ºå¿ƒç†æˆ–财务方é¢çš„承诺,并且å¯ä»¥è½»æ¾åœ°å°†è¦å®‰è£…的应用与其他替代应用进行比较。</p>
-<p>有些其他平å°ä¼šä½¿ç”¨ä¸åŒçš„æ–¹å¼é€šçŸ¥ç”¨æˆ·ï¼Œå³åœ¨æ¯ä¸ªä¼šè¯å¼€å§‹æ—¶æˆ–用户正在使用应用时请求æƒé™ã€‚Android 的愿景是让用户能够éšæ„在应用之间无ç¼åˆ‡æ¢ã€‚æ¯æ¬¡éƒ½è®©ç”¨æˆ·ç¡®è®¤ä¼šæ‹–慢用户的æ“作速度,而且会导致 Android 无法æ供良好的用户体验。如果让用户在安装应用时查看æƒé™ï¼Œç”¨æˆ·ä¾¿å¯ä»¥åœ¨ä¸æ„¿æ„授予相应æƒé™æ—¶é€‰æ‹©ä¸è¿›è¡Œå®‰è£…。</p>
-<p>此外,许多界é¢ç ”究表明,过度æ示用户会导致用户开始在看到任何对è¯æ¡†æ—¶éƒ½é€‰æ‹©â€œç¡®å®šâ€ã€‚Android 的安全目标之一是å‘用户有效地传达é‡è¦çš„安全信æ¯ï¼Œè€Œä½¿ç”¨è®©ç”¨æˆ·ä¹ æƒ¯æ€§å¿½ç•¥çš„对è¯æ¡†åˆ™æ— æ³•åšåˆ°è¿™ä¸€ç‚¹ã€‚如果åªå‘用户æ供一次é‡è¦ä¿¡æ¯å¹¶ä¸”仅在é‡è¦æ—¶åˆ»æ供,用户更有å¯èƒ½æ…Žé‡æ€è€ƒä»–们è¦åŒæ„的是什么。</p>
+<p>有些其他平å°ä¼šä½¿ç”¨ä¸åŒçš„æ–¹å¼é€šçŸ¥ç”¨æˆ·ï¼Œå³åœ¨æ¯ä¸ªä¼šè¯å¼€å§‹æ—¶æˆ–用户正在使用应用时请求æƒé™ã€‚Android 的愿景是让用户能够éšæ„在应用之间无ç¼åˆ‡æ¢ã€‚æ¯æ¬¡éƒ½è¦æ±‚用户确认会拖慢用户的æ“作速度,而且会导致 Android 无法æ供良好的用户体验。如果让用户在安装应用时查看æƒé™ï¼Œç”¨æˆ·ä¾¿å¯ä»¥åœ¨ä¸æ„¿æ„授予æƒé™æ—¶é€‰æ‹©ä¸äºˆå®‰è£…。</p>
+<p>此外,许多界é¢ç ”究表明,过度æ示用户会导致用户在看到任何对è¯æ¡†æ—¶éƒ½é€‰æ‹©â€œç¡®å®šâ€ã€‚Android 的安全目标之一是å‘用户有效地传达é‡è¦çš„安全信æ¯ï¼Œè€Œä½¿ç”¨è®©ç”¨æˆ·ä¹ æƒ¯æ€§å¿½ç•¥çš„对è¯æ¡†åˆ™æ— æ³•åšåˆ°è¿™ä¸€ç‚¹ã€‚如果åªå‘用户æ供一次é‡è¦ä¿¡æ¯å¹¶ä¸”仅在é‡è¦æ—¶åˆ»æ供,用户更有å¯èƒ½æ…Žé‡æ€è€ƒä»–们è¦åŒæ„的是什么。</p>
<p>有些平å°ä¼šé€‰æ‹©å®Œå…¨ä¸æ˜¾ç¤ºä¸Žåº”用功能有关的任何信æ¯ã€‚è¿™ç§æ–¹å¼ä¼šå¯¼è‡´ç”¨æˆ·æ— æ³•è½»æ¾äº†è§£å’Œè®¨è®ºåº”用功能。尽管无法使所有用户都是在充分了解相关信æ¯çš„情况下åšå‡ºå†³å®šï¼Œä½† Android æƒé™æ¨¡å¼å¯è®©ä¼—多用户轻æ¾èŽ·å–与应用相关的信æ¯ã€‚例如,如果é‡åˆ°æ„外的æƒé™è¯·æ±‚,ç»éªŒæ›´ä¸°å¯Œçš„用户å¯èƒ½ä¼šè¯¢é—®æœ‰å…³åº”用功能的关键问题,并在 <a href="htts://play.google.com">Google Play</a> 等所有用户都å¯ä»¥çœ‹åˆ°çš„ä½ç½®åˆ†äº«ä»–们的疑问。</p>
<table>
<tbody><tr>
@@ -114,10 +114,10 @@
<p>默认情况下,收集个人信æ¯çš„所有应用都会仅é™ç‰¹å®šåº”用访问这些数æ®ã€‚如果æŸä¸ªåº”用选择通过 IPC 将数æ®æ供给其他应用,那么这个授予访问æƒé™çš„应用便å¯ä»¥é™åˆ¶ç”±æ“作系统强制执行的 IPC 机制的æƒé™ã€‚</p>
<h2 id="sensitive-data-input-devices">æ•æ„Ÿæ•°æ®è¾“入设备</h2>
<p>Android 设备ç»å¸¸ä¼šæä¾›å¯è®©åº”用与周围环境进行互动的æ•æ„Ÿæ•°æ®è¾“入设备(例如,摄åƒå¤´ã€éº¦å…‹é£Žæˆ– GPS)。对于è¦ä½¿ç”¨è¿™äº›è®¾å¤‡çš„第三方应用,必须先由用户通过使用 Android æ“作系统æƒé™å‘其明确æ供使用æƒé™ã€‚安装应用时,安装程åºä¼šä»¥æä¾›å称的方å¼è¯·æ±‚用户授予使用相应传感器的æƒé™ã€‚</p>
-<p>如果æŸä¸ªåº”用想è¦çŸ¥é“用户所在的ä½ç½®ï¼Œåˆ™éœ€è¦èŽ·å¾—获å–用户ä½ç½®ä¿¡æ¯çš„æƒé™ã€‚安装应用时,安装程åºä¼šè¯¢é—®ç”¨æˆ·æ˜¯å¦å…许相应应用获å–用户的ä½ç½®ä¿¡æ¯ã€‚如果用户ä¸å¸Œæœ›ä»»ä½•åº”用获å–å…¶ä½ç½®ä¿¡æ¯ï¼Œå¯ä»¥éšæ—¶è¿è¡Œâ€œè®¾ç½®â€åº”用,转到“ä½ç½®å’Œå®‰å…¨â€ï¼Œç„¶åŽå–消选中“使用无线网络â€å’Œâ€œå¯ç”¨ GPS å«æ˜Ÿâ€ã€‚这将针对用户设备上的所有应用åœç”¨éœ€è¦ä½¿ç”¨ä½ç½®ä¿¡æ¯çš„æœåŠ¡ã€‚</p>
+<p>如果æŸä¸ªåº”用想è¦çŸ¥é“用户所在的ä½ç½®ï¼Œåˆ™éœ€è¦èŽ·å¾—获å–用户ä½ç½®ä¿¡æ¯çš„æƒé™ã€‚安装应用时,安装程åºä¼šè¯¢é—®ç”¨æˆ·æ˜¯å¦å…许该应用获å–用户的ä½ç½®ä¿¡æ¯ã€‚如果用户ä¸å¸Œæœ›ä»»ä½•åº”用获å–å…¶ä½ç½®ä¿¡æ¯ï¼Œå¯ä»¥éšæ—¶è¿è¡Œâ€œè®¾ç½®â€åº”用,转到“ä½ç½®å’Œå®‰å…¨â€ï¼Œç„¶åŽå–消选中“使用无线网络â€å’Œâ€œå¯ç”¨ GPS å«æ˜Ÿâ€ã€‚这将针对用户设备上的所有应用åœç”¨éœ€è¦ä½¿ç”¨ä½ç½®ä¿¡æ¯çš„æœåŠ¡ã€‚</p>
<h2 id="device-metadata">设备元数æ®</h2>
-<p>Android 还会尽力é™åˆ¶è®¿é—®æœ¬èº«å¹¶ä¸å±žäºŽæ•æ„Ÿæ•°æ®ï¼Œä½†å¯èƒ½ä¼šé—´æŽ¥é€éœ²ç”¨æˆ·ç‰¹å¾ã€ç”¨æˆ·å好以åŠç”¨æˆ·ä½¿ç”¨è®¾å¤‡çš„æ–¹å¼çš„æ•°æ®ã€‚</p>
-<p>默认情况下,应用无æƒè®¿é—®æ“作系统日志ã€æµè§ˆå™¨åŽ†å²è®°å½•ã€ç”µè¯å·ç ä»¥åŠç¡¬ä»¶/网络标识信æ¯ã€‚如果应用在安装时请求获得访问此类信æ¯çš„æƒé™ï¼Œå®‰è£…程åºä¼šè¯¢é—®ç”¨æˆ·æ˜¯å¦å…许相应应用访问此类信æ¯ã€‚如果用户没有授予该æƒé™ï¼Œç³»ç»Ÿå°†ä¸ä¼šå®‰è£…相应应用。</p>
+<p>Android 还会尽力é™åˆ¶è®¿é—®æœ¬èº«å¹¶ä¸å±žäºŽæ•æ„Ÿæ•°æ®ï¼Œä½†å¯èƒ½ä¼šé—´æŽ¥é€éœ²ç”¨æˆ·ç‰¹å¾ã€ç”¨æˆ·å好以åŠè®¾å¤‡ä½¿ç”¨æ–¹å¼çš„æ•°æ®ã€‚</p>
+<p>默认情况下,应用无æƒè®¿é—®æ“作系统日志ã€æµè§ˆå™¨åŽ†å²è®°å½•ã€ç”µè¯å·ç ä»¥åŠç¡¬ä»¶/网络标识信æ¯ã€‚如果应用在安装时请求获得访问此类信æ¯çš„æƒé™ï¼Œå®‰è£…程åºä¼šè¯¢é—®ç”¨æˆ·æ˜¯å¦å…许该应用访问此类信æ¯ã€‚如果用户没有授予该æƒé™ï¼Œç³»ç»Ÿå°†ä¸ä¼šå®‰è£…应用。</p>
<h2 id="certificate-authorities">è¯ä¹¦æŽˆæƒä¸­å¿ƒ</h2>
<p>Android 中收录了一组已安装的系统è¯ä¹¦æŽˆæƒä¸­å¿ƒï¼Œè¿™äº›æŽˆæƒä¸­å¿ƒåœ¨æ•´ä¸ªç³»ç»ŸèŒƒå›´å†…å‡å¯ä¿¡ã€‚在 Android 7.0 之å‰çš„版本中,设备制造商å¯ä»¥ä¿®æ”¹å…¶è®¾å¤‡ä¸Šæ­è½½çš„ CA 组。ä¸è¿‡ï¼Œè¿è¡Œ 7.0 åŠæ›´é«˜ç‰ˆæœ¬çš„设备将具有一组统一的系统 CA,并且ä¸å†å…许设备制造商对其进行修改。
</p>
diff --git a/zh-cn/security/overview/reports.html b/zh-cn/security/overview/reports.html
index a9c1ccce..16eb3b73 100644
--- a/zh-cn/security/overview/reports.html
+++ b/zh-cn/security/overview/reports.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>安全状况报告</title>
+ <title>安全报告</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -19,40 +19,56 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p>Android 安全团队有时会å‘布报告或白皮书。以下是一些最新å‘布的内容。</p>
+<p>Android 安全团队有时会å‘布安全报告或白皮书。以下是一些最新å‘布的内容。</p>
+
+<h2 id="enterprise-2018">Android Enterprise 安全性白皮书</h2>
+
+<p>这份安全性白皮书概述了 Android 为ä¼ä¸šå®¢æˆ·æ供移动安全æœåŠ¡æ—¶é‡‡ç”¨çš„方法,并详细介ç»äº† Android å¹³å°çš„优势ã€å¯ç”¨äºŽå®žæ–½æŽ§åˆ¶çš„ç®¡ç† API èŒƒå›´ï¼Œä»¥åŠ Google Play ä¿æŠ¤æœºåˆ¶åœ¨æ£€æµ‹å¨èƒæ–¹é¢å‘挥的作用。</p>
+<p>
+<a href="/security/reports/Google_Android_Enterprise_Security_Whitepaper_2018.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="Enterprise" data-action="download">下载此白皮书</a></p>
+
+<a href="/security/reports/Google_Android_Enterprise_Security_Whitepaper_2018.pdf" class="gc-analytics-event" data-category="AOSP" data-label="Enterprise"><img src="/security/images/enterprise-whitepaper-cover.png" class="screenshot"/></a>
+
<h2 id="yir-2017">2017 年度回顾</h2>
<p>此报告介ç»äº† Google 在 2017 年为 Android 安全所åšçš„一切。</p>
<p>
-<a href="/security/reports/Google_Android_Security_2017_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2017" data-action="download">下载该报告</a></p>
+<a href="/security/reports/Google_Android_Security_2017_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2017" data-action="download">下载此报告</a></p>
<a href="/security/reports/Google_Android_Security_2017_Report_Final.pdf" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2017"><img src="/security/images/yir-2017.png" class="screenshot"/></a>
<h2 id="yir-2016">2016 年度回顾</h2>
<p>此报告介ç»äº† Google 在 2016 年为 Android 安全所åšçš„一切。</p>
-<p><a href="/security/reports/Google_Android_Security_2016_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2016" data-action="download">下载该报告</a></p>
+<p><a href="/security/reports/Google_Android_Security_2016_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2016" data-action="download">下载此报告</a></p>
<a href="/security/reports/Google_Android_Security_2016_Report_Final.pdf" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2016"><img src="/security/images/yir-2016.png" class="screenshot"/></a>
<h2 id="yir-2015">2015 年度回顾</h2>
<p>此报告介ç»äº† Google 在 2015 年为 Android 安全所åšçš„一切。</p>
-<p><a href="/security/reports/Google_Android_Security_2015_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2015" data-action="download">下载该报告</a></p>
+<p><a href="/security/reports/Google_Android_Security_2015_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2015" data-action="download">下载此报告</a></p>
<a href="/security/reports/Google_Android_Security_2015_Report_Final.pdf" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2015"><img src="/security/images/yir-2015.png" class="screenshot"/></a>
<h2 id="yir-2014">2014 年度回顾</h2>
<p>此报告介ç»äº† Google 在 2014 年为 Android 安全所åšçš„一切。</p>
-<p><a href="/security/reports/Google_Android_Security_2014_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2014" data-action="download">下载该报告</a></p>
+<p><a href="/security/reports/Google_Android_Security_2014_Report_Final.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2014" data-action="download">下载此报告</a></p>
<a href="/security/reports/Google_Android_Security_2014_Report_Final.pdf" class="gc-analytics-event" data-category="AOSP" data-label="YIR-2014"><img src="/security/images/yir-2014.png" class="screenshot"/></a>
+<h2 id="keeping-harmful-apps-out-of-play">ç¡®ä¿æœ‰å®³åº”用无法在 Google Play 上架</h2>
+
+<p>此白皮书介ç»äº† Android 安全团队在审核和检测å¯èƒ½ä¼šç»™ç”¨æˆ·æˆ–其数æ®å¸¦æ¥å®‰å…¨é£Žé™©çš„应用时所采用的一些方法。</p>
+<p><a href="/security/reports/Android_WhitePaper_Final_02092016.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="GPP" data-action="download">下载此白皮书</a></p>
+
+<a href="/security/reports/Android_WhitePaper_Final_02092016.pdf" class="gc-analytics-event" data-category="AOSP" data-label="GPP"><img src="/security/images/gpp.png" class="screenshot"/></a>
+
<h2 id="PHA-classifications">潜在有害应用分类</h2>
<p>此报告介ç»äº† Android 安全团队所采用的应用分类法,å¯è®©æ‚¨äº†è§£æˆ‘们如何对å¯èƒ½ä¼šç»™ç”¨æˆ·æˆ–其数æ®å¸¦æ¥å®‰å…¨é£Žé™©çš„应用进行分类。</p>
-<p><a href="/security/reports/Google_Android_Security_PHA_classifications.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="PHA-classifications" data-action="download">下载该报告</a></p>
+<p><a href="/security/reports/Google_Android_Security_PHA_classifications.pdf" class="button" class="gc-analytics-event" data-category="AOSP" data-label="PHA-classifications" data-action="download">下载此报告</a></p>
<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf" class="gc-analytics-event" data-category="AOSP" data-label="PHA-classifications"><img src="/security/images/PHA-classification.png" class="screenshot"/></a>
diff --git a/zh-cn/security/selinux/compatibility.html b/zh-cn/security/selinux/compatibility.html
index 98a66e16..227d14e0 100644
--- a/zh-cn/security/selinux/compatibility.html
+++ b/zh-cn/security/selinux/compatibility.html
@@ -140,9 +140,7 @@ AOSP SELinux 政策已ç»ä¸ºå¹³å°ä¸Žä¹‹äº¤äº’çš„ <code>vendor</code> 分区部å
</tr>
</tbody></table>
<aside class="note">
- <strong>*</strong> 有关更多示例,请å‚阅
-<a href="https://android.googlesource.com/platform/system/sepolicy/+/master/private/file_contexts" class="external">
- <code>system/sepolicy/private/file_contexts</code></a>。</aside>
+ <strong>*</strong>有关更多示例,请å‚阅 <a href="https://android.googlesource.com/platform/system/sepolicy/+/master/private/file_contexts" class="external"><code>system/sepolicy/private/file_contexts</code></a>。</aside>
<p>
因此,您在 <code>vendor</code> 分区中标记é¢å¤–的文件时,必须éµå¾ªç‰¹å®šè§„则(通过 <code>neverallows</code> 强制执行):
@@ -243,7 +241,7 @@ Vendor: allow v_domain sysfs:class perm;</pre>
<h3 id="policy-writability">政策å¯å†™æ€§</h3>
<p>
-为了实现无需了解具体版本å˜åŒ–å³å¯åˆ¶å®šæ”¿ç­–的目标,Android 8.0 包å«å¹³å°å…¬å…±æ”¿ç­–类型与其属性之间的映射。类型 <code>foo</code> 映射到属性 <code>foo_v<em>N</em></code>,其中 <code><em>N</em></code> 是目标版本。<code>vN</code> 对应于 <code>PLATFORM_SEPOLICY_VERSION</code> 编译å˜é‡ï¼Œæ ¼å¼ä¸º <code>MM.NN</code>(其中 <code>MM</code> å¯¹åº”äºŽå¹³å° SDK ç¼–å·ï¼Œ<code>NN</code> æ˜¯å¹³å° sepolicy 特定版本)。
+为了实现无需了解具体版本å˜åŒ–å³å¯åˆ¶å®šæ”¿ç­–的目标,Android 8.0 包å«å¹³å°å…¬å…±æ”¿ç­–类型与其属性之间的映射。类型 <code>foo</code> 映射到属性 <code>foo_v<em>N</em></code>,其中 <code><em>N</em></code> 是目标版本 ,<code>vN</code> 对应于 <code>PLATFORM_SEPOLICY_VERSION</code> 编译å˜é‡ï¼Œæ ¼å¼ä¸º <code>MM.NN</code>(其中 <code>MM</code> å¯¹åº”äºŽå¹³å° SDK ç¼–å·ï¼Œ<code>NN</code> æ˜¯å¹³å° sepolicy 特定版本)。
</p>
<p>
公共政策中的属性未进行版本化,而是以 API å½¢å¼å­˜åœ¨ï¼ˆå¯ä»¥æ®æ­¤æž„建平å°å’Œä¾›åº”商政策,以使两个分区之间的接å£ä¿æŒç¨³å®šï¼‰ã€‚å¹³å°å’Œä¾›åº”商政策写入程åºéƒ½å¯ä»¥åƒå½“å‰é‚£æ ·ç»§ç»­å†™å…¥æ”¿ç­–。
@@ -259,7 +257,7 @@ perm</em>;</code> å½¢å¼å¯¼å‡ºçš„å¹³å°å…¬å…±æ”¿ç­–包å«åœ¨ä¾›åº”商政策中ã€
<h3 id="policy-diffs">政策差异</h3>
<p>
-如果ä¸åœ¨å„版本差异中将属性映射到类型,那么通过å‘æ¯ç§ç±»åž‹çš„末尾添加 <code>_v<em>N</em></code> æ¥è‡ªåŠ¨åˆ›å»ºå±žæ€§ä¸èµ·ä»»ä½•ä½œç”¨ã€‚Android 维护ç€å±žæ€§ç‰ˆæœ¬ä¹‹é—´çš„映射以åŠç±»åž‹åˆ°è¿™äº›å±žæ€§çš„映射。这是在å‰é¢æ到的包å«è¯­å¥çš„映射文件(例如 (CIL))中完æˆçš„:
+如果ä¸åœ¨å„版本差异中将属性映射到类型,那么通过在æ¯ç§ç±»åž‹çš„末尾添加 <code>_v<em>N</em></code> æ¥è‡ªåŠ¨åˆ›å»ºå±žæ€§ä¸èµ·ä»»ä½•ä½œç”¨ã€‚Android 维护ç€å±žæ€§ç‰ˆæœ¬ä¹‹é—´çš„映射以åŠç±»åž‹åˆ°è¿™äº›å±žæ€§çš„映射。这是在å‰é¢æ到的包å«è¯­å¥çš„映射文件(例如 (CIL))中完æˆçš„:
</p>
<pre class="prettyprint">(typeattributeset foo_vN (foo))</pre>
diff --git a/zh-cn/security/selinux/customize.html b/zh-cn/security/selinux/customize.html
index 58b17172..fa4414f2 100644
--- a/zh-cn/security/selinux/customize.html
+++ b/zh-cn/security/selinux/customize.html
@@ -54,7 +54,7 @@
<li>ä»…é’ˆå¯¹æ‚¨å‘ Android 添加的内容调整 SELinux 政策。默认政策能够自动适用于 <a href="https://android.googlesource.com/">Android å¼€æºé¡¹ç›®</a>代ç åº“。</li>
<li>å°†å„个软件组件拆分æˆå¤šä¸ªè´Ÿè´£æ‰§è¡Œå•é¡¹ä»»åŠ¡çš„模å—。</li>
<li>创建用于将这些任务与无关功能隔离开æ¥çš„ SELinux 政策。</li>
- <li>将这些政策放在 <code>/device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 目录下的 <code>*.te</code> 文件(SELinux 政策æºä»£ç æ–‡ä»¶çš„扩展)中,然åŽä½¿ç”¨ <code>BOARD_SEPOLICY</code> å˜é‡å°†å…¶çº³å…¥åˆ°æ‚¨çš„细分版本。</li>
+ <li>将这些政策放在 <code>/device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 目录下的 <code>*.te</code> 文件(te 是 SELinux 政策æºä»£ç æ–‡ä»¶ä½¿ç”¨çš„扩展å)中,然åŽä½¿ç”¨ <code>BOARD_SEPOLICY</code> å˜é‡å°†å®ƒä»¬çº³å…¥åˆ°æ‚¨çš„版本中。</li>
<li>先将新域设为宽容域。为此,å¯ä»¥åœ¨è¯¥åŸŸçš„ <code>.te</code> 文件中使用宽容声明。</li>
<li>分æžç»“果并优化域定义。</li>
<li>当 userdebug 版本中ä¸å†å‡ºçŽ°æ‹’ç»äº‹ä»¶æ—¶ï¼Œç§»é™¤å®½å®¹å£°æ˜Žã€‚</li>
@@ -227,7 +227,7 @@ audit_control setfcap</pre>
<h2 id="neverallow">neverallow 规则</h2>
-<p>SELinux <code>neverallow</code> 规则用于ç¦æ­¢åœ¨ä»»ä½•æƒ…况下都ä¸åº”该å‘生的行为。通过<a href="/compatibility/cts/">兼容性</a>测试,现在会在å„ç§è®¾å¤‡ä¸Šå¼ºåˆ¶æ‰§è¡Œ SELinux <code>neverallow</code> 规则。</p>
+<p>SELinux <code>neverallow</code> 规则用于ç¦æ­¢åœ¨ä»»ä½•æƒ…况下都ä¸åº”该å‘生的行为。通过执行<a href="/compatibility/cts/">兼容性</a>测试,现在å„ç§è®¾å¤‡ä¸Šéƒ½ä¼šå¼ºåˆ¶æ‰§è¡Œ SELinux <code>neverallow</code> 规则。</p>
<p>以下准则旨在å助制造商在自定义过程中é¿å…出现与 <code>neverallow</code> 规则相关的错误。此处使用的规则编å·ä¸Ž Android 5.1 中使用的编å·ä¸€è‡´ï¼Œå¹¶ä¸”会因版本而异。</p>
@@ -251,7 +251,7 @@ audit_control setfcap</pre>
<li><strong>system/sepolicy/public</strong>。其中包括所导出的用于供应商特定政策的政策。所有内容都会纳入 Android 8.0 <a href="/security/selinux/compatibility">兼容性基础架构</a>。公共政策会ä¿ç•™åœ¨ä¸åŒç‰ˆæœ¬ä¸Šï¼Œå› æ­¤æ‚¨å¯ä»¥åœ¨è‡ªå®šä¹‰æ”¿ç­–çš„ <code>/public</code> 中添加任何内容。正因如此,å¯å­˜æ”¾åœ¨ <code>/public</code> 中的政策类型的é™åˆ¶æ€§æ›´å¼ºã€‚将此目录视为相应平å°çš„已导出政策 APIï¼šå¤„ç† <code>/system</code> 与 <code>/vendor</code> 之间的接å£çš„所有内容都ä½äºŽè¿™é‡Œã€‚</li>
<li><strong>system/sepolicy/private</strong>。包括系统映åƒæ­£å¸¸è¿è¡Œæ‰€å¿…需(但供应商映åƒæ”¿ç­–应该ä¸çŸ¥é“)的政策。</li>
<li><strong>system/sepolicy/vendor</strong>。包括ä½äºŽ <code>/vendor</code> 但存在于核心平å°æ ‘(éžè®¾å¤‡ç‰¹å®šç›®å½•ï¼‰ä¸­çš„组件的相关政策。这是编译系统区分设备和全局组件的软件工件;从概念上讲,这是下述设备专用政策的一部分。</li>
- <li><strong>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</strong>。包å«è®¾å¤‡ä¸“用政策,以åŠå¯¹æ”¿ç­–进行的设备自定义(在 Android 8.0 åŠæ›´é«˜ç‰ˆæœ¬ä¸­ï¼Œè¯¥æ”¿ç­–对应于供应商映åƒç»„件的相关政策)。</li>
+ <li>device/manufacturer/device-name/sepolicy<strong></strong><var></var><var></var>。包å«è®¾å¤‡ä¸“用政策,以åŠå¯¹æ”¿ç­–进行的设备自定义(在 Android 8.0 åŠæ›´é«˜ç‰ˆæœ¬ä¸­ï¼Œè¯¥æ”¿ç­–对应于供应商映åƒç»„件的相关政策)。</li>
</ul>
<h3 id="supported-policy-scenarios">支æŒçš„政策场景</h3>
<p>
@@ -301,7 +301,7 @@ audit_control setfcap</pre>
<strong>示例</strong>ï¼šæ·»åŠ æ–°çš„éž AOSP HAL 以供无需 AOSP 模拟的客户端进程使用(因此,该进程需è¦è‡ªå·±çš„域)。
</p>
<p>
-与 <a href="#vendor-image-extensions-that-serve-extended-aosp-components">AOSP 扩展示例</a>类似,系统与供应商之间的互动政策必须ä½äºŽä¾›åº”商分区上的 <code>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 目录中(以确ä¿ç³»ç»Ÿæ”¿ç­–ä¸çŸ¥é“与特定供应商有关的详细信æ¯ï¼‰ã€‚您å¯ä»¥åœ¨ <code>system/sepolicy/public</code> 中添加新的用于扩展该政策的公共类型;åªèƒ½åœ¨çŽ°æœ‰ AOSP 政策的基础上进行添加,å³ä¸è¦ç§»é™¤ AOSP 公共政策。新添加的公共类型éšåŽå¯ç”¨äºŽ <code>system/sepolicy/private</code> å’Œ <code>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 中的政策。
+与 <a href="#vendor-image-extensions-that-serve-extended-aosp-components">AOSP 扩展示例</a>类似,系统与供应商之间的互动政策必须ä½äºŽä¾›åº”商分区上的 <code>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 目录中(以确ä¿ç³»ç»Ÿæ”¿ç­–ä¸çŸ¥é“与特定供应商相关的详细信æ¯ï¼‰ã€‚您å¯ä»¥åœ¨ <code>system/sepolicy/public</code> 中添加新的用于扩展该政策的公共类型;åªèƒ½åœ¨çŽ°æœ‰ AOSP 政策的基础上进行添加,å³ä¸è¦ç§»é™¤ AOSP 公共政策。新添加的公共类型éšåŽå¯ç”¨äºŽ <code>system/sepolicy/private</code> å’Œ <code>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 中的政策。
</p>
<p>
请注æ„,æ¯æ¬¡å‘ <code>system/sepolicy/public</code> 添加内容都会增加å¤æ‚程度,因为这会增加必须在映射文件中跟踪的新兼容性ä¿è¯ï¼ˆä¼šå—到其他é™åˆ¶ï¼‰ã€‚åªæœ‰æ–°ç±»åž‹å’Œç›¸å…³é¡¹å…许在 <code>system/sepolicy/public</code> 中添加规则;属性和其他政策声明ä¸å—支æŒã€‚此外,新的公共类型ä¸èƒ½ç”¨äºŽç›´æŽ¥ä¸º <code>/vendor</code> 政策中的对象添加标签。
@@ -321,6 +321,6 @@ audit_control setfcap</pre>
<strong>示例</strong>:对系统进程(AOSP æˆ–éž AOSPï¼‰çš„æ›´æ”¹å¿…é¡»æ›´æ”¹å®ƒä¸Žæ–°çš„éž AOSP 供应商组件进行互动的方å¼ã€‚
</p>
<p>
-在编写系统映åƒä¸Šçš„政策时必须对供应商独有的自定义ä¸çŸ¥æƒ…。因此,系统会通过 system/sepolicy/public 中的属性公开 AOSP 中涉åŠç‰¹å®šæŽ¥å£çš„政策,以便供应商政策å¯ä»¥é€‰æ‹©å¯ç”¨å°†æ¥ä½¿ç”¨è¿™äº›å±žæ€§çš„系统政策。ä¸è¿‡ï¼Œ<strong><code>system/sepolicy/public</code> 中的属性扩展ä¸å—支æŒ</strong>,因此指明系统组件与新供应商组件如何交互的所有政策(这些政策ä¸é€šè¿‡ AOSP <code>system/sepolicy/public</code> 中已存在的属性进行处ç†ï¼‰éƒ½å¿…é¡»ä½äºŽ <code>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 中。这æ„味ç€ç³»ç»Ÿç±»åž‹æ— æ³•åœ¨ä»…针对框架的 OTA 中更改已为供应商类型授予的访问æƒé™ã€‚</p>
+在编写系统映åƒä¸Šçš„政策时必须对供应商独有的自定义ä¸çŸ¥æƒ…。因此,系统会通过 system/sepolicy/public 中的属性公开 AOSP 中涉åŠç‰¹å®šæŽ¥å£çš„政策,以便供应商政策å¯ä»¥é€‰æ‹©å¯ç”¨å°†æ¥ä½¿ç”¨è¿™äº›å±žæ€§çš„系统政策。ä¸è¿‡ï¼Œ<strong><code>system/sepolicy/public</code> 中的属性扩展ä¸å—支æŒ</strong>,因此用于指明系统组件与新供应商组件之间交互方å¼çš„所有政策(这些政策ä¸é€šè¿‡ AOSP <code>system/sepolicy/public</code> 中已存在的属性进行处ç†ï¼‰éƒ½å¿…é¡»ä½äºŽ <code>device/<var>manufacturer</var>/<var>device-name</var>/sepolicy</code> 中。这æ„味ç€ç³»ç»Ÿç±»åž‹æ— æ³•åœ¨ä»…针对框架的 OTA 中更改已为供应商类型授予的访问æƒé™ã€‚</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/security/selinux/validate.html b/zh-cn/security/selinux/validate.html
index eaf1f492..f154945b 100644
--- a/zh-cn/security/selinux/validate.html
+++ b/zh-cn/security/selinux/validate.html
@@ -24,7 +24,7 @@
<p>实施新政策åŽï¼Œæ‚¨å¯ä»¥é€šè¿‡æ‰§è¡Œ <code>getenforce</code> 命令æ¥ç¡®è®¤ SELinux 在设备上的è¿è¡Œæ¨¡å¼æ˜¯å¦æ­£ç¡®ã€‚</p>
-<p>该命令会显示全局 SELinux 模å¼ï¼šå¼ºåˆ¶æˆ–宽容。è¦ç¡®å®šæ¯ä¸ªåŸŸçš„ SELinux 模å¼ï¼Œæ‚¨å¿…须查看相应的文件,或è¿è¡Œå¸¦æœ‰é€‚当 (<code>-p</code>) 标记的最新版 <code>sepolicy-analyze</code>(ä½äºŽ <a href="https://android.googlesource.com/platform/system/sepolicy/+/master/tools/" class="external"><code>/platform/system/sepolicy/tools/</code></a> 中)。</p>
+<p>该命令会显示全局 SELinux 模å¼ï¼šå¼ºåˆ¶æˆ–宽容。è¦ç¡®å®šæ¯ä¸ªåŸŸçš„ SELinux 模å¼ï¼Œæ‚¨å¿…须查看相应的文件,或è¿è¡Œå¸¦æœ‰é€‚当 (<code>-p</code>) 标记的最新版 <code>sepolicy-analyze</code> (ä½äºŽ <a href="https://android.googlesource.com/platform/system/sepolicy/+/master/tools/" class="external"><code>/platform/system/sepolicy/tools/</code></a> 中)。</p>
<h2 id="reading_denials">读å–æ‹’ç»äº‹ä»¶</h2>
@@ -60,8 +60,8 @@ tcontext=u:object_r:kmem_device:s0 tclass=chr_file
<p>以下是此拒ç»äº‹ä»¶çš„关键元素:</p>
<ul>
- <li>æ“作 - 试图进行的æ“作会使用括å·çªå‡ºæ˜¾ç¤ºï¼š<code>read write</code> 或 <code>setenforce</code>。<em></em>
- </li><li>æ“作方 - <code>scontext</code>(æ¥æºçŽ¯å¢ƒï¼‰æ¡ç›®è¡¨ç¤ºæ“作方;在此例中为<code> rmt_storage</code> 守护进程。<em></em>
+ <li><em></em>æ“作 - 试图进行的æ“作会使用括å·çªå‡ºæ˜¾ç¤ºï¼š<code>read write</code> 或 <code>setenforce</code>。
+ </li><li><em></em>æ“作方 - <code>scontext</code>(æ¥æºçŽ¯å¢ƒï¼‰æ¡ç›®è¡¨ç¤ºæ“作方;在此例中为<code> rmt_storage</code> 守护进程。
</li><li>对象 - <code>tcontext</code>(目标环境)æ¡ç›®è¡¨ç¤ºæ˜¯å¯¹å“ªä¸ªå¯¹è±¡æ‰§è¡Œæ“作;在此例中为 kmem。<em></em>
</li><li>结果 - <code>tclass</code>(目标类别)æ¡ç›®è¡¨ç¤ºæ“作对象的类型;在此例中为 <code>chr_file</code>(字符设备)。<em></em>
</li></ul>
diff --git a/zh-cn/setup/build/building-kernels.html b/zh-cn/setup/build/building-kernels.html
index ef657e32..ba49ca14 100644
--- a/zh-cn/setup/build/building-kernels.html
+++ b/zh-cn/setup/build/building-kernels.html
@@ -35,6 +35,18 @@
<th>编译é…ç½®</th>
</tr>
<tr>
+ <td>blueline</td>
+ <td>device/google/crosshatch-kernel</td>
+ <td><a href="#building-b1c1">说明</a></td>
+ <td>b1c1_defconfig</td>
+ </tr>
+ <tr>
+ <td>crosshatch</td>
+ <td>device/google/crosshatch-kernel</td>
+ <td><a href="#building-b1c1">说明</a></td>
+ <td>b1c1_defconfig</td>
+ </tr>
+ <tr>
<td>taimen</td>
<td>device/google/wahoo-kernel</td>
<td>kernel/msm</td>
@@ -241,7 +253,7 @@ git clone https://android.googlesource.com/kernel/common
<p><code>x86_64</code> 项目包å«é€‚用于 Nexus Player 的内核æºä»£ç ï¼Œå¯ç”¨ä½œåœ¨ Intel x86_64 芯片组上开展相关工作的ç€æ‰‹ç‚¹ã€‚</p>
<pre class="devsite-terminal devsite-click-to-copy">git clone https://android.googlesource.com/kernel/x86_64</pre>
-<h2 id="building">编译内核</h2>
+<h2 id="building">手动编译内核</h2>
<p>当您了解了内核的最åŽä¸€æ¡æ交消æ¯å¹¶å·²æˆåŠŸä¸‹è½½å†…æ ¸æºä»£ç å’Œé¢„编译的 gcc åŽï¼Œå°±å¯ä»¥ç¼–译内核了。以下编译命令使用了 hikey 内核:</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">export ARCH=arm64</code>
@@ -264,4 +276,15 @@ export TARGET_PREBUILT_KERNEL=$your_kernel_path/arch/arm/boot/zImage-dtb
<p class="note"><strong>注æ„</strong>:内核å称因设备而异。è¦æ‰¾åˆ°å†…核的正确文件å,请å‚阅内核æºä»£ç ä¸­çš„ <code>device/<var>VENDOR</var>/<var>NAME</var></code>。</p>
+<h2 id="building-b1c1">编译 Pixel 3 (blueline) 内核和 Pixel 3 XL (crosshatch) 内核</h2>
+
+<p>Pixel 3 å’Œ Pixel 3 XL 的内核æºä»£ç å·²åˆ†ä¸ºå¤šä¸ªé¡¹ç›®ã€‚使用 <a href="/setup/develop/repo#init">repo</a> 下载相应分支的内核æºä»£ç ï¼ˆåœ¨æ’°å†™æœ¬æ–‡æ—¶ï¼Œ<code><var>VERSION</var></code> 应为 <code>4.9-pie-qpr1</code>):</p>
+
+<pre class="devsite-terminal devsite-click-to-copy">repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-bluecross-$<var>VERSION</var></pre>
+<pre class="devsite-terminal devsite-click-to-copy">repo sync</pre>
+
+<p>然åŽä½¿ç”¨ä»¥ä¸‹å†…容编译内核:</p>
+
+<pre class="devsite-terminal devsite-click-to-copy">sh build/build.sh</pre>
+
</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/build/jack.html b/zh-cn/setup/build/jack.html
index 5871e50b..50696dce 100644
--- a/zh-cn/setup/build/jack.html
+++ b/zh-cn/setup/build/jack.html
@@ -21,7 +21,7 @@
-->
<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 编译工具链。
+ <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 字节ç ã€‚è¦ä½¿ç”¨ Jack,您åªéœ€ä½¿ç”¨æ ‡å‡†çš„ Makefile 命令æ¥ç¼–译æºä»£ç æ ‘或您的项目å³å¯ï¼Œæ— éœ€è¿›è¡Œä»»ä½•å…¶ä»–æ“作。Android 8.1 是使用 Jack 的最åŽä¸€ä¸ªç‰ˆæœ¬ã€‚</p>
diff --git a/zh-cn/setup/build/running.html b/zh-cn/setup/build/running.html
index 827d73a7..06dc2f6e 100644
--- a/zh-cn/setup/build/running.html
+++ b/zh-cn/setup/build/running.html
@@ -1,5 +1,5 @@
<html devsite><head>
- <title>è¿è¡Œç‰ˆæœ¬</title>
+ <title>è¿è¡Œç¼–译系统</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
@@ -40,6 +40,26 @@
</thead>
<tbody>
<tr>
+<td>Pixel 3 XL</td>
+<td>crosshatch</td>
+<td>按ä½éŸ³é‡è°ƒä½Žé”®ï¼Œç„¶åŽæŒ‰ä½ç”µæºé”®ã€‚<em></em><em></em></td>
+</tr>
+<tr>
+<td>Pixel 3</td>
+<td>blueline</td>
+<td>按ä½éŸ³é‡è°ƒä½Žé”®ï¼Œç„¶åŽæŒ‰ä½ç”µæºé”®ã€‚<em></em><em></em></td>
+</tr>
+<tr>
+<td>Pixel 2 XL</td>
+<td>taimen</td>
+<td>按ä½éŸ³é‡è°ƒä½Žé”®ï¼Œç„¶åŽæŒ‰ä½ç”µæºé”®ã€‚<em></em><em></em></td>
+</tr>
+<tr>
+<td>Pixel 2</td>
+<td>walleye</td>
+<td>按ä½éŸ³é‡è°ƒä½Žé”®ï¼Œç„¶åŽæŒ‰ä½ç”µæºé”®ã€‚<em></em><em></em></td>
+</tr>
+<tr>
<td>Pixel XL</td>
<td>marlin</td>
<td>按ä½éŸ³é‡è°ƒä½Žé”®ï¼Œç„¶åŽæŒ‰ä½ç”µæºé”®ã€‚<em></em><em></em></td>
@@ -248,6 +268,26 @@
</thead>
<tbody>
<tr>
+<td>Pixel 3 XL</td>
+<td>crosshatch</td>
+<td>aosp_crosshatch-userdebug</td>
+</tr>
+<tr>
+<td>Pixel 3</td>
+<td>blueline</td>
+<td>aosp_blueline-userdebug</td>
+</tr>
+<tr>
+<td>Pixel 2 XL</td>
+<td>taimen</td>
+<td>aosp_taimen-userdebug</td>
+</tr>
+<tr>
+<td>Pixel 2</td>
+<td>walleye</td>
+<td>aosp_walleye-userdebug</td>
+</tr>
+<tr>
<td>Pixel XL</td>
<td>marlin</td>
<td>aosp_marlin-userdebug</td>
@@ -370,7 +410,7 @@ unlock</code> 类似,刷写设备也会清空所有用户数æ®ã€‚</p>
<code>-w</code> 选项会清除设备上的 <code>/data</code> 分区;该选项在您第一次刷写特定设备时éžå¸¸æœ‰ç”¨ï¼Œä½†åœ¨å…¶ä»–情况下则没必è¦ä½¿ç”¨ã€‚</li>
</ol>
-<aside class="note"><strong>注æ„</strong>:在 Motorola Xoom 上通过 <code>fastboot</code> 创建的文件系统无法å‘挥最佳作用。建议您使用 <code>$ adb reboot
+<aside class="note"><strong>注æ„</strong>:在 Motorola Xoom 上通过 <code>fastboot</code> 创建的文件系统无法达到最佳工作状æ€ã€‚建议您使用 <code>$ adb reboot
recovery</code> 命令通过æ¢å¤åŠŸèƒ½æ¥é‡æ–°åˆ›å»ºæ–‡ä»¶ç³»ç»Ÿã€‚在执行æ¢å¤æ“作时,打开èœå•ï¼ˆåŒæ—¶æŒ‰ç”µæºé”®å’ŒéŸ³é‡è°ƒé«˜é”®ï¼‰ï¼Œæ“¦é™¤ç¼“存分区,然åŽæ“¦é™¤æ•°æ®ã€‚</aside>
<h2 id="restoring-devices-to-factory-state">将设备æ¢å¤åˆ°å‡ºåŽ‚状æ€</h2>
diff --git a/zh-cn/setup/community.html b/zh-cn/setup/community.html
index cebc8a93..0bb9f7fc 100644
--- a/zh-cn/setup/community.html
+++ b/zh-cn/setup/community.html
@@ -248,6 +248,6 @@
<h2 id="for-business-inquiries">关于 Google 移动æœåŠ¡è®¸å¯æ–¹é¢çš„问题</h2>
<p>请通过 <a href="https://www.android.com/gms/contact/">GMS è”ç³»</a>表å•å’¨è¯¢å…³äºŽ <a href="https://www.android.com/gms/">Google 移动æœåŠ¡</a>许å¯çš„é—®é¢˜ã€‚å…¶ä»–éž GMS åˆä½œä¼™ä¼´å…³ç³»é—®è¯¢å¯å‘é€è‡³ <a href="mailto:android-partnerships@google.com">android-partnerships@google.com</a>。</p>
-<p>我们会阅读收到的æ¯å°é‚®ä»¶ï¼Œä½†æ— æ³•ä¸€ä¸€è¿›è¡Œå›žå¤ã€‚如果我们能够æ供相关帮助,一定会与您è”ç³»ï¼</p>
+<p>我们会阅读收到的æ¯å°é‚®ä»¶ï¼Œä½†æ— æ³•ä¸€ä¸€è¿›è¡Œå›žå¤ã€‚如果我们能够æ供帮助,一定会与您è”ç³»ï¼</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/contribute/read-bug-reports.html b/zh-cn/setup/contribute/read-bug-reports.html
index ecca4dbb..e8ebb997 100644
--- a/zh-cn/setup/contribute/read-bug-reports.html
+++ b/zh-cn/setup/contribute/read-bug-reports.html
@@ -20,7 +20,7 @@
limitations under the License.
-->
-<p>无论是任何类型的开å‘工作,出错都在所难å…,而错误报告对于找出和解决问题至关é‡è¦ã€‚Android 的所有版本都支æŒé€šè¿‡ <a href="http://developer.android.com/tools/help/adb.html">Android 调试桥 (adb)</a> 获å–错误报告;Android 4.2 åŠæ›´é«˜ç‰ˆæœ¬æ供了一个<a href="http://developer.android.com/tools/device.html#developer-device-options">å¼€å‘者选项</a>,供用户获å–错误报告以åŠé€šè¿‡ç”µå­é‚®ä»¶ã€äº‘端硬盘等分享报告。</p>
+<p>无论是任何类型的开å‘工作,出错都在所难å…,而错误报告对于找出和解决问题至关é‡è¦ã€‚Android 的所有版本都支æŒé€šè¿‡ <a href="http://developer.android.com/tools/help/adb.html">Android 调试桥 (adb)</a> 获å–错误报告;Android 4.2 åŠæ›´é«˜ç‰ˆæœ¬æ供了一个<a href="http://developer.android.com/tools/device.html#developer-device-options">å¼€å‘者选项</a>,供开å‘者获å–错误报告以åŠé€šè¿‡ç”µå­é‚®ä»¶ã€äº‘端硬盘等分享报告。</p>
<p>Android 错误报告中包å«æ–‡æœ¬ (.txt) æ ¼å¼çš„ <code>dumpsys</code>ã€<code>dumpstate</code> å’Œ <code>logcat</code> æ•°æ®ï¼Œä»¥ä¾¿æ‚¨è½»æ¾æœç´¢ç‰¹å®šå†…容。以下å„部分详细说明了错误报告的组æˆéƒ¨åˆ†ã€ä»‹ç»äº†å¸¸è§é—®é¢˜ï¼Œå¹¶æ供了关于查找与这些错误相关的日志的实用æ示和 <code>grep</code> 命令。大多数部分中还包括 <code>grep</code> 命令åŠè¾“出和/或 <code>dumpsys</code> 输出方é¢çš„示例。</p>
@@ -682,7 +682,7 @@ ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)
</section>
<p></p>
-<p>错误报告中还包å«å…³äºŽå”¤é†’é”定的统计信æ¯ï¼Œå”¤é†’é”定是应用开å‘者采用的一ç§æœºåˆ¶ï¼Œç”¨äºŽè¡¨æ˜Žå…¶åº”用需è¦è®¾å¤‡ä¿æŒå¼€å¯çŠ¶æ€ã€‚(è¦è¯¦ç»†äº†è§£å”¤é†’é”定,请å‚阅 <a href="https://developer.android.com/reference/android/os/PowerManager.WakeLock.html">PowerManager.WakeLock</a> å’Œ<a href="https://developer.android.com/training/scheduling/wakelock.html#cpu">使 CPU ä¿æŒè¿è¡ŒçŠ¶æ€</a>)。
+<p>错误报告中还包å«å…³äºŽå”¤é†’é”定的统计信æ¯ï¼Œå”¤é†’é”定是应用开å‘者采用的一ç§æœºåˆ¶ï¼Œç”¨äºŽè¡¨æ˜Žå…¶åº”用需è¦è®¾å¤‡ä¿æŒå¼€å¯çŠ¶æ€ã€‚(è¦è¯¦ç»†äº†è§£å”¤é†’é”定,请å‚阅 <a href="https://developer.android.com/reference/android/os/PowerManager.WakeLock.html">PowerManager.WakeLock</a> å’Œ<a href="https://developer.android.com/training/scheduling/wakelock.html#cpu">使 CPU ä¿æŒè¿è¡ŒçŠ¶æ€</a>。)
</p><p>唤醒é”定总时长统计信æ¯<strong>ä»…</strong>跟踪唤醒é”定实际负责使设备ä¿æŒå”¤é†’状æ€çš„时间,<strong>ä¸</strong>包括å±å¹•å¤„于开å¯çŠ¶æ€çš„时间。此外,如果åŒæ—¶æŒæœ‰å¤šä¸ªå”¤é†’é”定,系统会在它们之间分é…唤醒é”定时长。</p>
diff --git a/zh-cn/setup/develop/64-bit-builds.html b/zh-cn/setup/develop/64-bit-builds.html
index 2c6e904d..0c967e11 100644
--- a/zh-cn/setup/develop/64-bit-builds.html
+++ b/zh-cn/setup/develop/64-bit-builds.html
@@ -28,7 +28,7 @@
<p>对于å¯æ‰§è¡Œæ–‡ä»¶å’Œåº”用,编译系统默认仅编译 64 ä½ç‰ˆæœ¬ï¼Œä½†æ‚¨å¯ä»¥ä½¿ç”¨ä¸€ä¸ªå…¨å±€ <code>BoardConfig.mk</code> å˜é‡æˆ–针对特定模å—çš„å˜é‡æ¥æ›¿æ¢æ­¤è®¾ç½®ã€‚</p>
-<p class="caution"><strong>注æ„</strong>:如果æŸä¸ªåº”用æ供了一个å¯ä¾›å…¶ä»–应用(32 ä½æˆ– 64 ä½ï¼‰ä½¿ç”¨çš„ API,那么在该应用的清å•ä¸­ï¼Œ<code>android:multiarch</code> 属性的值必须设为 <code>true</code> 以é¿å…å¯èƒ½å‡ºçŽ°çš„错误。</p>
+<p class="caution"><strong>注æ„</strong>:如果æŸä¸ªåº”用æ供了一个å¯ä¾›å…¶ä»–应用(32 ä½æˆ– 64 ä½ï¼‰ä½¿ç”¨çš„ API,那么在该应用的清å•ä¸­ï¼Œ<code>android:multiarch</code> 属性的值必须设为 <code>true</code>,以é¿å…å¯èƒ½å‡ºçŽ°çš„错误。</p>
<h2 id="product_configuration">产å“é…ç½®</h2>
diff --git a/zh-cn/setup/start/brands.html b/zh-cn/setup/start/brands.html
index 6fa3917d..1366b4ed 100644
--- a/zh-cn/setup/start/brands.html
+++ b/zh-cn/setup/start/brands.html
@@ -106,6 +106,6 @@
</p><h2 id="Questions">问题</h2>
-<p>如需了解更多å“牌使用信æ¯ï¼Œè¯·é€šè¿‡æ交<a href="https://support.google.com/contact/partner_brand_approval">åˆä½œä¼™ä¼´å“牌咨询表å•</a>与 Android åˆä½œä¼™ä¼´è¥é”€å›¢é˜Ÿè”系。</p>
+<p>如需了解更多å“牌使用信æ¯ï¼Œè¯·æ交<a href="https://support.google.com/contact/partner_brand_approval">åˆä½œä¼™ä¼´å“牌咨询表å•</a>,与 Android åˆä½œä¼™ä¼´è¥é”€å›¢é˜Ÿè”系。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/start/p-release-notes.html b/zh-cn/setup/start/p-release-notes.html
index 12835d7a..8a7cab6e 100644
--- a/zh-cn/setup/start/p-release-notes.html
+++ b/zh-cn/setup/start/p-release-notes.html
@@ -58,7 +58,7 @@
<h4 id="dto_image_header_versioning">DTO 映åƒæ ‡å¤´ç‰ˆæœ¬æŽ§åˆ¶</h4>
-<p>此版本在 DTBO 映åƒæ ‡å¤´ä¸­å¼•å…¥äº†<a href="/devices/architecture/dto/partitions">新的版本字段</a>。</p>
+<p>此版本在 DTBO 映åƒæ ‡å¤´ä¸­å¼•å…¥äº†ä¸€ä¸ª<a href="/devices/architecture/dto/partitions">新的版本字段</a>。</p>
<h4 id="dtbo_verification">DTBO 验è¯</h4>
@@ -130,7 +130,7 @@
<h4 id="system_as_root">系统作为 Root</h4>
-<p>æ­è½½æ­¤ç‰ˆæœ¬çš„所有设备å‡å¿…须使用 <a href="/devices/bootloader/system-as-root">system-as-root</a>,它会将 <code>ramdisk.img</code> åˆå¹¶åˆ° <code>system.img</code>(亦称为 no-ramdisk),而åŽè€…åˆä¼šä½œä¸º <code>rootfs</code> 装载。</p>
+<p>æ­è½½æ­¤ç‰ˆæœ¬çš„所有设备å‡å¿…须使用 <a href="/devices/bootloader/system-as-root">system-as-root</a>,以便将 <code>ramdisk.img</code> åˆå¹¶åˆ° <code>system.img</code>(亦称为 no-ramdisk),而åŽè€…会作为 <code>rootfs</code> 进行装载。</p>
<h4 id="boot_image_header_versioning">å¯åŠ¨æ˜ åƒæ ‡å¤´ç‰ˆæœ¬æŽ§åˆ¶</h4>
@@ -173,7 +173,7 @@
<h3 id="android_compatibility_definition_document_cdd">Android 兼容性定义文档 (CDD)</h3>
-<p><a href="/compatibility/android-cdd">Android 9 兼容性定义文档</a>基于<a href="/compatibility/cdd">之å‰ç‰ˆæœ¬</a>进行了迭代更新,包括有关新功能的更新以åŠé’ˆå¯¹ä¹‹å‰æ‰€å‘布功能的è¦æ±‚åšå‡ºçš„的更改。</p>
+<p><a href="/compatibility/android-cdd">Android 9 兼容性定义文档</a>是在<a href="/compatibility/cdd">之å‰ç‰ˆæœ¬</a>的基础上编写的,并进行了一些更新,以涵盖新功能,以åŠå¯¹ä¹‹å‰å·²å‘布功能的è¦æ±‚进行的更改。</p>
<h2 id="settings">设置</h2>
@@ -296,7 +296,7 @@
<h4 id="file-based_encryption">文件级加密</h4>
-<p><a href="/security/encryption/file-based">文件级加密</a>已更新,å¯ç”¨äºŽ<a href="/devices/storage/adoptable">å¯åˆå¹¶çš„存储设备</a>。对于新设备,我们建议使用文件级加密而ä¸æ˜¯å…¨ç›˜åŠ å¯†ã€‚</p>
+<p><a href="/security/encryption/file-based">文件级加密</a>进行了更新,以支æŒ<a href="/devices/storage/adoptable">å¯åˆå¹¶çš„存储设备</a>。对于新设备,我们建议使用文件级加密而ä¸æ˜¯å…¨ç›˜åŠ å¯†ã€‚</p>
<h4 id="metadata_encryption">元数æ®åŠ å¯†</h4>
@@ -328,11 +328,11 @@
<h4 id="version_binding">版本绑定</h4>
-<p>ä¸ºäº†æ”¯æŒ Treble 的模å—化结构并终止 <code>system.img</code> 到 <code>boot.img</code> 的绑定,Keymaster 4 å°†<a href="/security/keystore/version-binding">密钥版本绑定</a>模å¼æ›´æ”¹ä¸ºæ¯ä¸ªåˆ†åŒºéƒ½å…·æœ‰å•ç‹¬çš„è¡¥ä¸ç¨‹åºçº§åˆ«ã€‚è¿™å…许æ¯ä¸ªåˆ†åŒºç‹¬ç«‹æ›´æ–°ï¼ŒåŒæ—¶ä»æ供回滚ä¿æŠ¤ã€‚</p>
+<p>ä¸ºäº†æ”¯æŒ Treble 的模å—化结构并å–消 <code>system.img</code> 到 <code>boot.img</code> 的绑定,Keymaster 4 对<a href="/security/keystore/version-binding">密钥版本绑定</a>模å¼è¿›è¡Œäº†æ›´æ”¹ï¼Œä½¿æ¯ä¸ªåˆ†åŒºéƒ½æœ‰å•ç‹¬çš„è¡¥ä¸ç¨‹åºçº§åˆ«ã€‚è¿™å…许æ¯ä¸ªåˆ†åŒºç‹¬ç«‹æ›´æ–°ï¼ŒåŒæ—¶ä»æ供回滚ä¿æŠ¤ã€‚</p>
<h4 id="android_protected_confirmation">Android å—ä¿æŠ¤çš„确认</h4>
-<p>æ­è½½ Android 9 çš„å—支æŒè®¾å¤‡ä½¿å¼€å‘者能够使用 <a href="https://developer.android.com/preview/features/security#android-protected-confirmation" class="external">Android Protected Confirmation API</a>。通过使用这个新 API,应用å¯ä»¥ä½¿ç”¨ <code><a href="https://developer.android.com/reference/android/security/ConfirmationPrompt.html">ConfirmationPrompt</a></code> 实例å‘用户显示æ示,è¦æ±‚他们批准一æ¡ç®€çŸ­å£°æ˜Žã€‚此声明å…许应用é‡æ–°ç¡®è®¤ç”¨æˆ·å¸Œæœ›å®Œæˆæ•æ„Ÿäº¤æ˜“,例如进行付款。</p>
+<p>在æ­è½½ Android 9 çš„å—支æŒè®¾å¤‡ä¸Šï¼Œå¼€å‘者å¯ä»¥ä½¿ç”¨ <a href="https://developer.android.com/preview/features/security#android-protected-confirmation" class="external">Android Protected Confirmation API</a>。通过使用这个新 API,应用å¯ä»¥åˆ©ç”¨ <code><a href="https://developer.android.com/reference/android/security/ConfirmationPrompt.html">ConfirmationPrompt</a></code> 实例å‘用户显示æ示,以æ醒他们批准一æ¡ç®€çŸ­å£°æ˜Žã€‚此声明å…许应用é‡æ–°ç¡®è®¤ç”¨æˆ·å¸Œæœ›å®Œæˆæ•æ„Ÿäº¤æ˜“,例如进行付款。</p>
<h3 id="selinux">SELinux</h3>
@@ -346,15 +346,15 @@
<h4 id="vendor_init">Vendor_init</h4>
-<p><a href="/security/selinux/vendor-init">供应商åˆå§‹åŒ–</a>æ述了以下更新:通过使用å•ç‹¬çš„ SELinux 域,利用供应商特定的æƒé™è¿è¡Œ <code>/vendor</code> 命令,从而关闭 Treble 系统/供应商拆分中的 init 进程访问孔。</p>
+<p><a href="/security/selinux/vendor-init">供应商åˆå§‹åŒ–</a>中介ç»äº†ç›¸å…³æ›´æ–°ï¼Œè¿™äº›æ›´æ–°æ—¨åœ¨å¼¥è¡¥é€šè¿‡ä½¿ç”¨å•ç‹¬çš„ SELinux 域拆分的 Treble system/vendor 分区(以便利用供应商专属æƒé™è¿è¡Œ <code>/vendor</code> 命令)中存在的 init 进程访问æ¼æ´žã€‚</p>
<h4 id="system_properties">系统属性</h4>
-<p>Android 9 通过对<a href="/security/selinux/compatibility#system-property-and-process-labeling-ownership">系统属性</a>共享进行é™åˆ¶ï¼Œé˜»æ­¢åœ¨ä¸å¿…è¦çš„情况下在 <code>system</code> å’Œ <code>vendor</code> 分区之间共享系统属性,åŒæ—¶æ供了一ç§ç¡®ä¿åœ¨å…±äº«ç³»ç»Ÿå±žæ€§ä¹‹é—´ä¿æŒä¸€è‡´æ€§çš„方法。</p>
+<p>Android 9 ç¦æ­¢åœ¨éžå¿…è¦æ—¶åœ¨ <code>system</code> å’Œ <code>vendor</code> 分区之间共享<a href="/security/selinux/compatibility#system-property-and-process-labeling-ownership">系统属性</a>,并æ供了一ç§ç”¨äºŽç¡®ä¿åœ¨å…±äº«ç³»ç»Ÿå±žæ€§ä¹‹é—´ä¿æŒä¸€è‡´æ€§çš„方法。</p>
<h5 id="selinux_attribute_tests">SELinux 属性测试</h5>
-<p>Android 9 包å«æ–°çš„<a href="https://android.googlesource.com/platform/system/sepolicy/+/master/tests/sepolicy_tests.py" class="external">编译时测试</a>,å¯ç¡®ä¿ç‰¹å®šä½ç½®çš„所有文件都具有<a href="/security/selinux/compatibility#compatibility-attributes">适当的属性</a>。例如,<code>sysfs</code> 中的所有文件都具有所需的 <code>sysfs_type</code> 属性。</p>
+<p>Android 9 包å«ä¸€äº›æ–°çš„<a href="https://android.googlesource.com/platform/system/sepolicy/+/master/tests/sepolicy_tests.py" class="external">编译时测试</a>,旨在确ä¿ç‰¹å®šä½ç½®çš„所有文件都具有<a href="/security/selinux/compatibility#compatibility-attributes">适当的属性</a>。例如,<code>sysfs</code> 中的所有文件都具有所需的 <code>sysfs_type</code> 属性。</p>
<h2 id="audio">音频</h2>
@@ -390,7 +390,7 @@
<h4 id="implementing_data_plans">实现æµé‡å¥—é¤</h4>
-<p>此版本改善了对使用 <code>SubcriptionPlan</code> API <a href="/devices/tech/connect/data-plans">实现æµé‡å¥—é¤</a>çš„è¿è¥å•†çš„支æŒã€‚</p>
+<p>此版本å¯ä»¥æ›´å¥½åœ°ä¸ºä½¿ç”¨ <code>SubcriptionPlan</code> API <a href="/devices/tech/connect/data-plans">实现æµé‡å¥—é¤</a>çš„è¿è¥å•†æ供支æŒã€‚</p>
<h4 id="third-party_calling_apps">第三方通è¯åº”用</h4>
@@ -418,7 +418,7 @@
<h4 id="sim_state_broadcasts">SIM 状æ€å¹¿æ’­</h4>
-<p>在此版本中,<code>Intent.ACTION_SIM_STATE_CHANGED</code> 已弃用,并添加了两个用于å¡çŠ¶æ€å’Œå¡åº”用状æ€çš„å•ç‹¬å¹¿æ’­ï¼š<code>TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED</code> å’Œ <code>TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED</code>。</p>
+<p>此版本弃用了 <code>Intent.ACTION_SIM_STATE_CHANGED</code>,并针对å¡çŠ¶æ€å’Œå¡åº”用状æ€æ·»åŠ äº†ä¸¤ä¸ªå•ç‹¬çš„广播:<code>TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED</code> å’Œ <code>TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED</code>。</p>
<p>通过此项å˜æ›´ï¼Œä»…需è¦çŸ¥é“å¡æ˜¯å¦å­˜åœ¨çš„接收器ä¸å†éœ€è¦ç›‘å¬åº”用状æ€æ”¹å˜ï¼Œå¹¶ä¸”仅需è¦çŸ¥é“å¡åº”用是å¦å‡†å¤‡å¥½çš„接收器ä¸éœ€è¦ç›‘å¬å¡çŠ¶æ€æ”¹å˜ã€‚</p>
@@ -456,7 +456,7 @@
<li><code>config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz</code></li>
<li><code>config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz</code></li>
</ul>
-<aside class="note"><strong>注æ„</strong><span>:Android 8.1 中引入了“进入â€å€¼ï¼Œå¹¶ä¸”选择了默认值以匹é…“差â€é˜ˆå€¼çš„默认值,从而实现兼容性。ç†æƒ³æƒ…况下,进入阈值应比相应的退出(“差â€ï¼‰é˜ˆå€¼é«˜ 3 分è´æˆ–更多。</span></aside>
+<aside class="note"><strong>注æ„</strong><span>:Android 8.1 中引入了“entryâ€å€¼ï¼Œå¹¶ä¸”会根æ®â€œbadâ€é˜ˆå€¼çš„默认值æ¥ä¸ºå…¶é€‰æ‹©é»˜è®¤å€¼ï¼Œä»¥å®žçŽ°å…¼å®¹æ€§ã€‚ç†æƒ³æƒ…况下,进入阈值应比相应的退出(“差â€ï¼‰é˜ˆå€¼é«˜ 3 分è´æˆ–更多。</span></aside>
<h4 id="wi-fi_staap_concurrency">WLAN STA/AP 并å‘</h4>
<p><a href="/devices/tech/connect/wifi-sta-ap-concurrency">WLAN STA/AP 并å‘</a>å¯ä»¥è®©è®¾å¤‡åŒæ—¶åœ¨ç”µå° (STA) 和接入点 (AP) 模å¼ä¸‹è¿è¡Œã€‚对于支æŒåŒæ­¥åŒé¢‘段 (DBS) 的设备,此功能开å¯äº†æ–°åŠŸèƒ½ï¼Œä¾‹å¦‚,当用户想è¦å¯ç”¨çƒ­ç‚¹ (softAP) æ—¶ä¸ä¼šä¸­æ–­ STA WLAN。</p>
@@ -532,7 +532,7 @@
<h3 id="gnss_hardware_model">GNSS 硬件型å·</h3>
-<p>在 Android 9 中,GNSS HAL 1.1 或更高版本å¯ä»¥å°†æœ‰å…³ç¡¬ä»¶ API çš„ä¿¡æ¯ä¼ é€’给平å°ã€‚å¹³å°éœ€è¦å®žçŽ° <code>IGnssCallback</code> 接å£å¹¶å°†å¥æŸ„传递给 HAL。GNSS HAL 通过 <a href="https://developer.android.com/reference/android/location/LocationManager#getGnssHardwareModelName()" class="external"><code>LocationManager#getGnssHardwareModelName()</code></a> API 传递硬件型å·ä¿¡æ¯ã€‚设备制造商应与其 GNSS HAL æ供商åˆä½œï¼Œå°½å¯èƒ½æ供此信æ¯ã€‚</p>
+<p>在 Android 9 中,GNSS HAL 1.1 或更高版本å¯ä»¥å°†æœ‰å…³ç¡¬ä»¶ API çš„ä¿¡æ¯ä¼ é€’给平å°ã€‚å¹³å°éœ€è¦å®žçŽ° <code>IGnssCallback</code> 接å£å¹¶å‘ HAL 传递一个å¥æŸ„。GNSS HAL 通过 <a href="https://developer.android.com/reference/android/location/LocationManager#getGnssHardwareModelName()" class="external"><code>LocationManager#getGnssHardwareModelName()</code></a> API 传递硬件型å·ä¿¡æ¯ã€‚设备制造商应与其 GNSS HAL æ供商åˆä½œï¼Œä»¥å°½å¯èƒ½æ供此信æ¯ã€‚</p>
<h2 id="permissions">æƒé™</h2>
@@ -550,9 +550,9 @@
<p>Android 9 改进了对带宽估测的支æŒã€‚如果 Android 应用知é“å¯ç”¨çš„æ•°æ®å¸¦å®½ï¼Œåˆ™å¯ä»¥æ›´å¥½åœ°å†³å®šç”¨äºŽè§†é¢‘通è¯å’Œè§†é¢‘串æµçš„分辨率。</p>
-<p>在è¿è¡Œ Android 6.0 åŠæ›´é«˜ç‰ˆæœ¬çš„设备上,想对移动网络进行带宽估算的调用者会调用 <a href="https://developer.android.com/reference/android/net/ConnectivityManager.html#requestBandwidthUpdate(android.net.Network)" class="external"><code>ConnectivityManager.requestBandwidthUpdate()</code></a>,而且框架å¯ä»¥æ供下行链路带宽估算值。<em></em></p>
+<p>在è¿è¡Œ Android 6.0 åŠæ›´é«˜ç‰ˆæœ¬çš„设备上,想获得移动网络带宽估算值的调用程åºä¼šè°ƒç”¨ <a href="https://developer.android.com/reference/android/net/ConnectivityManager.html#requestBandwidthUpdate(android.net.Network)" class="external"><code>ConnectivityManager.requestBandwidthUpdate()</code></a>,而且框架å¯ä»¥æ供下行链路带宽估算值。<em></em></p>
-<p>但是,在è¿è¡Œ Android 9 或更高版本的设备上,当估算的带宽å‘生显著å˜åŒ–时,<a href="https://developer.android.com/reference/android/net/ConnectivityManager.NetworkCallback.html#onCapabilitiesChanged(android.net.Network,%20android.net.NetworkCapabilities)" class="external"><code>onNetworkCapabilitiesChanged()</code></a> callback 会自动触å‘,并且调用 <code>requestBandwidthUpdate()</code> 是空æ“作;相关的 <a href="https://developer.android.com/reference/android/net/NetworkCapabilities#getlinkdownstreambandwidthkbps" class="external"><code>getLinkDownstreamBandwidthKbps()</code></a> å’Œ <a href="https://developer.android.com/reference/android/net/NetworkCapabilities#getlinkupstreambandwidthkbps" class="external"><code>getLinkUpstreamBandwidthKbps()</code></a> 会填充由物ç†å±‚æ供的更新信æ¯ã€‚</p>
+<p>但是,在è¿è¡Œ Android 9 或更高版本的设备上,当带宽估算值å‘生显著å˜åŒ–时,<a href="https://developer.android.com/reference/android/net/ConnectivityManager.NetworkCallback.html#onCapabilitiesChanged(android.net.Network,%20android.net.NetworkCapabilities)" class="external"><code>onNetworkCapabilitiesChanged()</code></a> callback 会自动触å‘,并且调用 <code>requestBandwidthUpdate()</code> 是空æ“作;系统会为关è”çš„ <a href="https://developer.android.com/reference/android/net/NetworkCapabilities#getlinkdownstreambandwidthkbps" class="external"><code>getLinkDownstreamBandwidthKbps()</code></a> å’Œ <a href="https://developer.android.com/reference/android/net/NetworkCapabilities#getlinkupstreambandwidthkbps" class="external"><code>getLinkUpstreamBandwidthKbps()</code></a> 填入由物ç†å±‚æ供的已更新信æ¯ã€‚</p>
<p>此外,设备å¯ä»¥é€šè¿‡ <a href="https://developer.android.com/reference/android/telephony/ServiceState#getcellbandwidths" class="external"><code>ServiceState.getCellBandwidths()</code></a> 检查 LTE å•å…ƒå¸¦å®½ã€‚这使应用å¯ä»¥ç¡®åˆ‡åœ°çŸ¥é“给定å•å…ƒä¸Šå¯ç”¨çš„带宽(频率)有多少。通过éšè—èœå•å¯ä»¥èŽ·å¾—å•å…ƒå¸¦å®½ä¿¡æ¯ï¼Œä»¥ä¾¿çŽ°åœºæµ‹è¯•äººå‘˜å¯ä»¥æ£€æŸ¥æœ€æ–°ä¿¡æ¯ã€‚</p>
@@ -568,16 +568,16 @@
<p>建议您使用验è¯ç¨‹åºæ£€æŸ¥ç»™å®šå¤‡ä»½æ•°æ®æ˜¯å¦å­˜åœ¨æ— æ•ˆå€¼ï¼Œå¹¶ä»…æ¢å¤æœ‰æ•ˆæ•°æ®ï¼ˆå¦‚ <code>core/java/android/provider/SettingsValidators.java</code>)。</p>
-<p>此功能在默认情况下处于å¯ç”¨çŠ¶æ€ã€‚å¯ä»¥é€šè¿‡ <code>Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION</code> åœç”¨ SettingsBackupAgent 对从未æ¥ç‰ˆæœ¬è¿›è¡Œæ¢å¤çš„支æŒã€‚除éžè®¾å¤‡åˆ¶é€ å•†æ‰©å±• ROM 中包å«çš„æŸä¸ªå¤‡ä»½ä»£ç†ï¼ˆæˆ–添加一个自定义代ç†ï¼‰ï¼Œå¦åˆ™æ— éœ€è¿›è¡Œä»»ä½•é¢å¤–的实现。</p>
+<p>此功能在默认情况下处于å¯ç”¨çŠ¶æ€ã€‚å¯ä»¥é€šè¿‡ <code>Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION</code> åœæ­¢æ”¯æŒ SettingsBackupAgent(用于从未æ¥ç‰ˆæœ¬è¿›è¡Œæ¢å¤ï¼‰ã€‚除éžè®¾å¤‡åˆ¶é€ å•†æ‰©å±•äº† ROM 中包å«çš„æŸä¸ªå¤‡ä»½ä»£ç†ï¼ˆæˆ–添加了自定义代ç†ï¼‰ï¼Œå¦åˆ™æ— éœ€è¿›è¡Œä»»ä½•é¢å¤–的实现。</p>
<p>此功能å…许系统从平å°çš„未æ¥ç‰ˆæœ¬è¿›è¡Œæ¢å¤ï¼›ä¸è¿‡ï¼Œæ¢å¤åŽçš„æ•°æ®å¯èƒ½ä¼šä¸å®Œæ•´ï¼Œè¿™ä¸€ç‚¹æ˜¯å¯ä»¥ç†è§£çš„。以下说明适用于下述备份代ç†ï¼š</p>
<ul>
<li><p><strong>PackageManagerBackupAgent</strong>:通过格å¼ç‰ˆæœ¬æŽ§åˆ¶ä¸ºæœªæ¥ç‰ˆæœ¬çš„备份数æ®æ供支æŒï¼›æ­¤å¤„的扩展程åºå¿…须与当å‰çš„æ¢å¤ä»£ç å…¼å®¹ï¼Œæˆ–éµå¾ªç±»ä¸­çš„指令(包括递增适当的常é‡ï¼‰ã€‚</p></li>
<li><p><strong>SystemBackupAgent</strong>:在此版本åŠæ›´é«˜ç‰ˆæœ¬çš„ Android 中,<code>restoreAnyVersion = false</code>。ä¸æ”¯æŒä»Žæ›´é«˜ç‰ˆæœ¬çš„ API 进行æ¢å¤ã€‚</p></li>
-<li><p><strong>SettingsBackupAgent</strong>:从此版本开始,<code>restoreAnyVersion = true</code>
+<li><p><strong>SettingsBackupAgent</strong>:从此版本开始,<code>restoreAnyVersion = true</code>。
通过验è¯ç¨‹åºæ供部分支æŒã€‚如果目标æ“作系统中存在æŸé¡¹è®¾ç½®çš„验è¯ç¨‹åºï¼Œåˆ™å¯ä»¥ä»Žæ›´é«˜ç‰ˆæœ¬çš„ API æ¢å¤è¯¥è®¾ç½®ã€‚添加任何设置都应附带该设置的验è¯ç¨‹åºã€‚请查看相关类以了解详情。</p></li>
-<li><p>ROM 中包å«çš„任何<strong>自定义备份代ç†</strong>都应在备份数æ®æ ¼å¼å‘生ä¸å…¼å®¹çš„更改时递增其版本å·ï¼Œå¹¶åœ¨å…¶ä»£ç†å°šæœªå‡†å¤‡å¥½æ ¹æ®æœªæ¥ç‰ˆæœ¬çš„代ç å¤„ç†å¤‡ä»½æ•°æ®æ—¶ç¡®ä¿ <code>restoreAnyVersion = false</code>(默认值)。</p></li>
+<li><p>ROM 中包å«çš„任何<strong>自定义备份代ç†</strong>都应åšåˆ°ä»¥ä¸‹ä¸¤ç‚¹ï¼šå½“备份数æ®æ ¼å¼å‘生ä¸å…¼å®¹çš„更改时,递增其版本å·ï¼›å¦‚果其代ç†æœªåšå¥½å‡†å¤‡ï¼Œæ— æ³•æ ¹æ®æœªæ¥ç‰ˆæœ¬çš„代ç å¤„ç†å¤‡ä»½æ•°æ®ï¼Œåˆ™åº”ç¡®ä¿ <code>restoreAnyVersion = false</code>(默认值)。</p></li>
</ul>
<h2 id="enterprise">ä¼ä¸š</h2>
@@ -626,6 +626,6 @@
<h3 id="batteryless_devices">无电池设备</h3>
-<p>Android 9 能够比以å‰çš„版本更得体地处ç†<a href="/devices/tech/power/batteryless">无电池设备</a>。Android 9 删除了一些以å‰çš„无电池设备代ç ï¼Œè¿™äº›ä»£ç åœ¨é»˜è®¤æƒ…况下å‡è£…电池存在,充电率为 100%,并且è¿è¡ŒçŠ¶å†µè‰¯å¥½ï¼ˆçƒ­æ•ç”µé˜»çš„温度读数正常)。</p>
+<p>Android 9 能够比以å‰çš„版本更得体地处ç†<a href="/devices/tech/power/batteryless">无电池设备</a>。Android 9 移除了以å‰çš„一些针对无电池设备的代ç ï¼Œè¿™äº›ä»£ç åœ¨é»˜è®¤æƒ…况下会å‡è£…电池存在ã€å·²å……满电且è¿è¡ŒçŠ¶å†µè‰¯å¥½ï¼ˆå…¶çƒ­æ•ç”µé˜»çš„温度读数正常)。</p>
</body></html> \ No newline at end of file
diff --git a/zh-cn/setup/start/site-updates.html b/zh-cn/setup/start/site-updates.html
index be357501..6a5ede13 100644
--- a/zh-cn/setup/start/site-updates.html
+++ b/zh-cn/setup/start/site-updates.html
@@ -28,7 +28,7 @@
<p>欢迎访问修订åŽçš„ Android å¼€æºé¡¹ç›® (AOSP) 网站。éšç€æˆ‘们网站å‘展规模越æ¥è¶Šå¤§ï¼Œæˆ‘们é‡æ–°æ”¹å–„了平å°æ–‡æ¡£å¯¼èˆªåŠŸèƒ½ï¼Œä»¥ä¾¿æ›´å¥½åœ°é…åˆæ–°ä¿¡æ¯å’Œæ›´æ–°ä¿¡æ¯ä½¿ç”¨ã€‚</p>
-<p>有关é‡å¤§æ›´æ”¹çš„指å—,请å‚阅以下å„å°èŠ‚。有关功能摘è¦ã€æ›´æ–°å’Œæ–°å¢žå†…容,请查看<a href="/setup/start/p-release-notes">版本说明</a>。您å¯ä»¥é€šè¿‡åœ¨ <a href="https://g.co/androidsourceissue" class="external">g.co/androidsourceissue</a> 中归档的错误,或通过点击该网站上æ¯ä¸ªç½‘页页脚中的<a href="https://issuetracker.google.com/issues/new?component=191476">网站å馈</a>链接,å‘我们å‘é€æ‚¨çš„å馈。</p>
+<p>有关é‡å¤§æ›´æ”¹çš„指å—,请å‚阅以下å„å°èŠ‚。有关功能摘è¦ã€æ›´æ–°å’Œæ–°å¢žå†…容,请查看<a href="/setup/start/p-release-notes">版本说明</a>。您å¯ä»¥é€šè¿‡ä»¥ä¸‹æ–¹å¼å‘我们æ交å馈:在 <a href="https://g.co/androidsourceissue" class="external">g.co/androidsourceissue</a> 上报告错误,或点击该网站上的<a href="https://issuetracker.google.com/issues/new?component=191476">网站å馈</a>链接(您å¯ä»¥åœ¨æ¯ä¸ªç½‘页的页脚中找到该链接)。</p>
<h3 id="second-menu">å¦ä¸€ä¸ªæ¨ªå‘èœå•</h3>
@@ -38,23 +38,23 @@
<h3 id="set-up">“设置â€(Setup) æ›´å为“设置â€(Set up)</h3>
-<p>主“设置â€(Setup) 标签略微åšäº†ä¸€äº›æ”¹åŠ¨ï¼ˆæ›´å为<strong>设置</strong> (Set up)),以便与用于åŽç»­ä¸»è¦æ ‡ç­¾çš„动è¯ä¿æŒä¸€è‡´ã€‚<em></em>
-<strong>下载</strong>å’Œ<strong>编译</strong>内容已拆分为ä¸åŒçš„å­æ ‡ç­¾ï¼Œä»¥ä¾¿äºŽè®¿é—®å…¶ä¸­åŒ…å«çš„页é¢ã€‚<em></em>“开å‘â€å­éƒ¨åˆ†å·²é‡å‘½å为<strong>创建</strong>å­æ ‡ç­¾ï¼Œä»¥é¿å…与新的åŒå顶级<strong>å¼€å‘</strong>标签混淆。</p>
+<p>主“设置â€(Setup) 标签的å称略微åšäº†ä¸€ç‚¹æ”¹åŠ¨ï¼Œæ”¹æˆäº†<strong>设置</strong> (Set up),以便与用于åŽç»­ä¸»è¦æ ‡ç­¾çš„动è¯ä¿æŒä¸€è‡´ã€‚<em></em>
+<strong>下载</strong>å’Œ<strong>编译</strong>内容已拆分为ä¸åŒçš„å­æ ‡ç­¾ï¼Œä»¥ä¾¿äºŽè®¿é—®å…¶ä¸­åŒ…å«çš„页é¢ã€‚“开å‘â€å­éƒ¨åˆ†å·²æ›´å为<strong>创建</strong>å­æ ‡ç­¾ï¼Œä»¥é¿å…与新增的顶级åŒå<strong>å¼€å‘</strong>标签混淆。<em></em></p>
-<p><em></em>之å‰åœ¨â€œå…¼å®¹æ€§â€&gt;“与我们è”ç³»â€é¡µé¢ä¸Šæ供的信æ¯çŽ°å·²åˆå¹¶åˆ°<strong>设置 &gt; 通讯录(社区)</strong>主列表中。
+<p>之å‰åœ¨â€œå…¼å®¹æ€§â€&gt;“与我们è”ç³»â€é¡µé¢ä¸Šæ供的信æ¯çŽ°å·²åˆå¹¶åˆ°ä¸»<strong>设置 &gt; è”系方å¼ï¼ˆç¤¾åŒºï¼‰</strong>列表中。<em></em>
</p>
<h3 id="design">“兼容性â€æ›´å为“设计â€</h3>
-<p>以å‰åœ¨<em></em>“兼容性â€é¡¶çº§æ ‡ç­¾ä¸Šæ供的信æ¯çŽ°ä½äºŽ<strong>设计</strong>下。è¦å¤§è‡´äº†è§£è¯¥è®¡åˆ’以åŠæŒ‡å‘æ–°çš„ Android 兼容性定义文档 (CDD) 的链接,请å‚阅<strong>兼容性</strong>å­æ ‡ç­¾ã€‚<em></em></p>
+<p>以å‰åœ¨â€œå…¼å®¹æ€§â€é¡¶çº§æ ‡ç­¾ä¸­æ供的信æ¯çŽ°ä½äºŽ<strong>设计</strong>下。<em></em>è¦å¤§è‡´äº†è§£è¯¥è®¡åˆ’以åŠæŒ‡å‘新的《Android 兼容性定义文档》(CDD) 的链接,请å‚阅<strong>兼容性</strong>å­æ ‡ç­¾ã€‚<em></em></p>
-<p><em></em>在相关更改中,Android 兼容性测试套件 (CTS) 的说明和常规调试信æ¯å·²ç§»è‡³æ–°çš„<strong>测试</strong>å­æ ‡ç­¾ã€‚<strong>显示</strong>å’Œ<strong>设置</strong>èœå•æŒ‡å—已转移到专用å­æ ‡ç­¾ã€‚</p>
+<p>在相关更改中,关于《Android 兼容性测试套件》(CTS) 的说明以åŠå¸¸è§„的调试信æ¯å·²ç§»è‡³æ–°çš„<strong>测试</strong>å­æ ‡ç­¾ã€‚<em></em><strong>显示</strong>å’Œ<strong>设置</strong>èœå•æŒ‡å—已转移到专用å­æ ‡ç­¾ã€‚</p>
<h3 id="develop">“移æ¤â€æ›´å为“开å‘â€</h3>
-<p><em></em>“移æ¤â€æ ‡ç­¾å·²æ›´å为<strong>å¼€å‘</strong>,以更好地传达此标签包å«çš„说明。本文档主è¦ä¾§é‡äºŽå®žçŽ°å„个接å£ï¼Œå¯å¸®åŠ©æ‚¨ç¼–写将设备连接到 Android æ“作系统所需的驱动程åºã€‚</p>
+<p>“移æ¤â€æ ‡ç­¾å·²æ›´å为<strong>å¼€å‘</strong>,以更好地体现此标签中包å«çš„说明。<em></em>本文档主è¦ä¾§é‡äºŽå®žçŽ°å„个接å£ï¼Œå¯å¸®åŠ©æ‚¨ç¼–写将设备连接到 Android æ“作系统所需的驱动程åºã€‚</p>
-<p>因此,æ述总体 HIDL æ ¼å¼çš„<strong>架构</strong>部分已移至<em></em><strong>设计</strong>标签,以便在开å‘周期早期的规划阶段予以考虑。<strong>引导加载程åº</strong>内容现在ä½äºŽ<strong>设计 &gt; 架构</strong>下,åŒæ—¶å¼•å…¥äº†<strong>互动</strong>å­æ ‡ç­¾ä»¥åŒ…å«è¾“å…¥ã€ä¼ æ„Ÿå™¨å’Œç›¸å…³ä¿¡æ¯ã€‚<em></em><em></em></p>
+<p>因此,æ述总体 HIDL æ ¼å¼çš„<strong>架构</strong>部分已移至<strong>设计</strong>标签,以便在开å‘周期早期的规划阶段予以考虑。<em></em><strong>引导加载程åº</strong>内容现在ä½äºŽ<strong>设计 &gt; 架构</strong>下,åŒæ—¶å¼•å…¥äº†<strong>交互性</strong>å­æ ‡ç­¾ï¼Œä»¥åŒ…å«è¾“å…¥ã€ä¼ æ„Ÿå™¨å’Œç›¸å…³ä¿¡æ¯ã€‚<em></em><em></em></p>
<p><strong>连接</strong>部分已ç»è¿‡é‡æ–°æ•´ç†ï¼ŒåŒ…å«<strong>è“牙和 NFC</strong>ã€<strong>通è¯å’ŒçŸ­ä¿¡</strong>ã€<strong>è¿è¥å•†</strong>å’Œ <strong>WLAN</strong> å­éƒ¨åˆ†ã€‚此外,WLAN 部分还包å«ä»¥ä¸‹æ–°æ–‡ç« ï¼š</p>
@@ -68,7 +68,7 @@
<h3 id="configure">“微调â€æ›´å为“é…ç½®â€</h3>
-<p><em></em>“微调â€æ ‡ç­¾å·²æ›´å为<strong>é…ç½®</strong>,以å°è£…多个自定义和优化步骤。<em></em>现在,您å¯ä»¥åœ¨<strong>ä¼ä¸š</strong>下找到以å‰çš„“设备管ç†â€å­éƒ¨åˆ†ã€‚<em></em>“ART å’Œ Dalvikâ€å†…容ä½äºŽ <strong>ART</strong> 下方,“无线下载 (OTA) æ›´æ–°â€<em></em>ä¿¡æ¯ä½äºŽ<strong>æ›´æ–°</strong>下方。</p>
+<p>“微调â€æ ‡ç­¾å·²æ›´å为<strong>é…ç½®</strong>,因为除了自定义和优化步骤之外,还会包å«å…¶ä»–ä¿¡æ¯ã€‚<em></em>现在,您å¯ä»¥åœ¨<strong>ä¼ä¸š</strong>下方找到以å‰çš„“设备管ç†â€å­éƒ¨åˆ†ã€‚<em></em>ART å’Œ Dalvik 内容ä½äºŽ <strong>ART</strong> 下方,无线下载 (OTA) æ›´æ–°ä¿¡æ¯ä½äºŽ<strong>æ›´æ–°</strong>下方。<em></em><em></em></p>
<h2 id="Dec-2017">2017 年 12 月</h2>
<p>
@@ -128,7 +128,7 @@ Android 8.1 中的 WLAN 感知功能支æŒå¤šä¸ªè®¾å¤‡ç›´æŽ¥é€šè¿‡ WLAN 进行äº
<h2 id="Nov-2017">2017 年 11 月</h2>
<p>
-<em></em>“æºä»£ç â€éƒ¨åˆ†å·²æ›´å为<a href="/setup"><em>设置</em></a>。我们设置了é‡å®šå‘,以确ä¿æ—§ç½‘å€ä»å¯æ­£å¸¸è¿è¡Œã€‚
+“æºä»£ç â€éƒ¨åˆ†å·²æ›´å为<a href="/setup"><em>设置</em></a>。<em></em>我们设置了é‡å®šå‘,以确ä¿æ—§ç½‘å€ä»å¯æ­£å¸¸è¿è¡Œã€‚
</p>
<h2 id="Sept-2017">2017 年 9 月</h2>
@@ -173,7 +173,9 @@ SquashFS 是一个é¢å‘ Linux 且ç»è¿‡åŽ‹ç¼©çš„åªè¯»æ–‡ä»¶ç³»ç»Ÿï¼Œé€‚åˆåœ¨ç
<h4>模糊测试</h4>
<p>
-AOSP æ供了用于测试 <a href="/devices/tech/dalvik/">Android Runtime (ART)</a> 基础架构的全新模糊测试套件。全新的工具包 JFuzz 以åŠç»è¿‡æ”¹è¿›çš„ DexFuzz 现在å¯ä»¥ç›´æŽ¥åœ¨ AOSP 中获得,并且éšé™„了相关文档。请å‚阅:<a href="https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md">https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md</a> <a href="https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README">https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README</a>
+AOSP æ供了用于测试 <a href="/devices/tech/dalvik/">Android Runtime (ART)</a> 基础架构的全新模糊测试套件。全新的工具包 JFuzz 以åŠç»è¿‡æ”¹è¿›çš„ DexFuzz 现在å¯ä»¥ç›´æŽ¥åœ¨ AOSP 中获得,并且éšé™„了相关文档。请å‚阅:
+ <a href="https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md">https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md</a>
+ <a href="https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README">https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README</a>
</p>
<p>
无需执行任何æ“作,å³å¯å®žçŽ°æˆ–使用这些新工具。必è¦æ—¶æ‚¨å¯ä»¥å¯¹è¿™äº›å·¥å…·è¿›è¡Œæ›´æ”¹ï¼Œå°±åƒæ‚¨å¯ä»¥æ›´æ”¹è¿è¡Œæ—¶/编译器一样。
@@ -440,7 +442,7 @@ cts-tradefed run cts -m CtsLibcoreOkHttpTestCases</pre>
<a href="https://developer.android.com/reference/android/printservice/PrintService.html" class="external">打å°æœåŠ¡</a>是一款应用,å¯ç”¨äºŽå‘现打å°æœºå¹¶å°†å…¶å‘ˆçŽ°ç»™è®¾å¤‡çš„打å°æ¡†æž¶ã€‚在较低的 Android 版本中,用户必须æœç´¢å¹¶å®‰è£…第三方打å°æœåŠ¡æ‰èƒ½è¿›è¡Œæ‰“å°ã€‚
</p>
<p>
-Android 8.0 在 <code><a href="https://android.googlesource.com/platform/packages/services/BuiltInPrintService/" class="external">platform/packages/services/BuiltInPrintService/</a></code> 中纳入了一项默认打å°æœåŠ¡ï¼Œè¯¥æœåŠ¡å¯è®©ç”¨æˆ·åœ¨çŽ°ä»£æ‰“å°æœºä¸Šè¿›è¡Œæ‰“å°ï¼Œè€Œæ— éœ€å®‰è£…é¢å¤–的应用。此实现支æŒç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„打å°æœºï¼šä½¿ç”¨äº’è”网打å°åè®® (IPP) 进行通信,并使用 PCLmã€PWG-Raster 或 PDF å‘é€å¯æ‰“å°çš„内容。对于较旧的打å°æœºï¼Œç”¨æˆ·åº”安装 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/PrintRecommendationService/" class="external">PrintRecommendationService</a> 推è的应用(如<a href="https://youtu.be/M_JGeGLpOKs?t=16m20s" class="external">æ­¤ I/O 演示</a>中所示)。
+Android 8.0 在 <code><a href="https://android.googlesource.com/platform/packages/services/BuiltInPrintService/" class="external">platform/packages/services/BuiltInPrintService/</a></code> 中纳入了一项默认打å°æœåŠ¡ï¼Œä»¥ä¾¿ç”¨æˆ·åœ¨æ–°åž‹æ‰“å°æœºä¸Šè¿›è¡Œæ‰“å°ï¼Œè€Œæ— éœ€å®‰è£…é¢å¤–的应用。此实现支æŒç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„打å°æœºï¼šä½¿ç”¨äº’è”网打å°åè®® (IPP) 进行通信,并使用 PCLmã€PWG-Raster 或 PDF å‘é€å¯æ‰“å°çš„内容。è¦ä½¿ç”¨æ—§å¼æ‰“å°æœºï¼Œç”¨æˆ·åº”安装 <a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/PrintRecommendationService/" class="external">PrintRecommendationService</a> 推è的应用(如<a href="https://youtu.be/M_JGeGLpOKs?t=16m20s" class="external">æ­¤ I/O 演示</a>中所示)。
</p><h3 id="reference">å‚考资料更新</h3>
<p>
@@ -495,17 +497,17 @@ Android 8.0 利用 EXT4 文件系统的“é…é¢â€æ”¯æŒï¼Œè¿‘乎å³æ—¶åœ°æä¾
<h3 id="top-tabs">新的顶级标签</h3>
<p>
-<em></em>之å‰çš„“设备â€æ ‡ç­¾å·²æ›´å为<a href="/devices/">移æ¤</a>,åŒæ—¶ä¹‹å‰çš„“核心技术â€å­æ ‡ç­¾å·²æ›´å为<em></em><a href="/devices/tech/">微调</a>并移到了网站顶部,以便更好地显示给用户。
+<em></em>之å‰çš„“设备â€æ ‡ç­¾å·²æ›´å为<a href="/devices/">移æ¤</a>,åŒæ—¶ä¹‹å‰çš„“核心技术â€å­æ ‡ç­¾å·²æ›´å为<em></em><a href="/devices/tech/">微调</a>,并移到了网站顶部,以便更好地显示给用户。
</p>
<h3 id="security-forefront">“安全性â€æ ‡ç­¾æŽ’在了å‰åˆ—</h3>
<p>
-éšç€äººä»¬è¶Šæ¥è¶Šå…³æ³¨ Android 的安全性,我们将<a href="/security/">安全性</a>标签å‘å‰ç§»åˆ°äº†<a href="/setup/">æºä»£ç </a>æ—边,以体现其é‡è¦æ€§ã€‚
+鉴于人们越æ¥è¶Šå…³æ³¨ Android 的安全性,我们将<a href="/security/">安全性</a>标签å‘å‰ç§»åˆ°äº†<a href="/setup/">æºä»£ç </a>æ—边,以体现其é‡è¦æ€§ã€‚
</p>
<h3 id="reference-materials">更好的å‚考资料</h3>
<p>
- 您å¯ä»¥ç›´æŽ¥ä»Žé¡¶å±‚çš„<a href="/reference/">å‚考资料</a>标签获得<a href="/reference/hal/">硬件抽象层</a>å’Œ <a href="/reference/tradefed/packages">Trade Federation</a> å‚考资料。
+ 您å¯ä»¥ç›´æŽ¥ä»Žé¡¶å±‚çš„<a href="/reference/">å‚考资料</a>标签中找到<a href="/reference/hal/">硬件抽象层</a>å’Œ <a href="/reference/tradefed/packages">Trade Federation</a> å‚考资料。
</p>
<h3 id="code-links">æ¯é¡µéƒ½æœ‰çš„代ç é“¾æŽ¥</h3>
diff --git a/zh-tw/security/bulletin/2018-07-01.html b/zh-tw/security/bulletin/2018-07-01.html
index 392363d7..5c4b2e86 100644
--- a/zh-tw/security/bulletin/2018-07-01.html
+++ b/zh-tw/security/bulletin/2018-07-01.html
@@ -31,7 +31,7 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
在這些å•é¡Œä¸­ï¼Œæœ€åš´é‡çš„就是媒體架構中嚴é‡ç¨‹åº¦ã€Œæœ€é«˜ã€çš„安全性æ¼æ´žã€‚é ç«¯æ”»æ“Šè€…å¯åˆ©ç”¨é€™é¡žæ¼æ´žï¼Œåœ¨ç²å¾—授權的程åºç’°å¢ƒå…§é€éŽç‰¹è£½æª”案執行任何程å¼ç¢¼ã€‚<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>。
+é‡å°é€™äº›æ–°ç™¼ç¾çš„æ¼æ´žï¼Œæˆ‘們目å‰å°šæœªæ”¶åˆ°ä»»ä½•å®¢æˆ¶å›žå ±ç›¸é—œçš„æ¼æ´žæ¿«ç”¨æ¡ˆä¾‹ã€‚如果想進一步瞭解 <a href="/security/enhancements/index.html">Android 安全性平å°é˜²è­·æŽªæ–½</a>å’Œ Google Play 安全防護機制如何加強 Android å¹³å°çš„安全性,請åƒé–± <a href="#mitigations">Android å’Œ Google Play 安全防護機制所æ供的因應措施</a>。
</p>
<p class="note">
<strong>注æ„:</strong>在 <a href="/security/bulletin/pixel/2018-07-01.html">2018 å¹´ 7 月 Pixel/Nexus 安全性公告</a>中,我們æ供了 Google è£ç½®é©ç”¨çš„最新無線下載更新 (OTA) 和韌體映åƒæª”的相關資訊。
diff --git a/zh-tw/security/bulletin/2018-08-01.html b/zh-tw/security/bulletin/2018-08-01.html
index fa5f0c18..9be6ebf5 100644
--- a/zh-tw/security/bulletin/2018-08-01.html
+++ b/zh-tw/security/bulletin/2018-08-01.html
@@ -337,8 +337,7 @@ QC-CR#2204872</a></td>
</tbody></table>
<h3 id="qualcomm-closed-source-components">Qualcomm å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</h3>
-<p>
-以下列出會影響 Qualcomm 元件的安全性æ¼æ´žï¼Œè©³æƒ…è«‹åƒè€ƒé©ç”¨çš„ Qualcomm AMSS 安全性公告或安全性警示。這些å•é¡Œçš„åš´é‡ç¨‹åº¦æ˜¯ç”± Qualcomm 直接評定。</p>
+<p>以下列出會影響 Qualcomm 元件的安全性æ¼æ´žï¼Œè©³æƒ…è«‹åƒè€ƒé©ç”¨çš„ Qualcomm AMSS 安全性公告或安全性警示。這些å•é¡Œçš„åš´é‡ç¨‹åº¦æ˜¯ç”± Qualcomm 直接評定。</p>
<table>
<colgroup><col width="21%" />
diff --git a/zh-tw/security/bulletin/2018-09-01.html b/zh-tw/security/bulletin/2018-09-01.html
index 0daf32cb..37449f75 100644
--- a/zh-tw/security/bulletin/2018-09-01.html
+++ b/zh-tw/security/bulletin/2018-09-01.html
@@ -293,38 +293,6 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
</tr>
</tbody></table>
-<h3 id="update-media-framework">更新項目:媒體架構</h3>
-<p>本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“é ç«¯æ”»æ“Šè€…得以利用特製檔案在ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚</p>
-
-<table>
- <colgroup><col width="21%" />
- <col width="21%" />
- <col width="14%" />
- <col width="14%" />
- <col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>åƒè€ƒè³‡æ–™</th>
- <th>é¡žåž‹</th>
- <th>åš´é‡ç¨‹åº¦</th>
- <th>更新的 Android 開放原始碼計劃版本</th>
- </tr>
- <tr>
- <td>CVE-2018-9411</td>
- <td><a href="https://android.googlesource.com/platform/system/libhidl/+/93484b9b015d47c0f7e5f4449a214b2fed8bed4f" class="external">A-79376389</a></td>
- <td>RCE</td>
- <td>最高</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
- <tr>
- <td>CVE-2018-9427</td>
- <td><a href="https://android.googlesource.com/platform/frameworks/av/+/29d991fac25b261a72ce73f96c9df594ea5b9242" class="external">A-77486542</a></td>
- <td>RCE</td>
- <td>最高</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-09-05-details">2018-09-05 安全性修補程å¼ç­‰ç´š - 資安æ¼æ´žè©³æƒ…</h2>
<p>
下列å„節é‡å° 2018-09-05 安全性修補程å¼ç­‰ç´šé©ç”¨çš„å„項安全性æ¼æ´žæ供了詳細資訊,我們ä¾ç…§è³‡å®‰å•é¡Œæœ¬èº«æ‰€å½±éŸ¿çš„元件將å„é …æ¼æ´žåˆ†é–€åˆ¥é¡žï¼Œå¦å¤–也附上了一些詳細資料,例如 CVEã€ç›¸é—œåƒè€ƒè³‡æ–™ã€<a href="#type">æ¼æ´žé¡žåž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">åš´é‡ç¨‹åº¦</a>ã€å…ƒä»¶ (在é©ç”¨æƒ…æ³ä¸‹),和更新的 Android 開放原始碼計劃版本 (在é©ç”¨æƒ…æ³ä¸‹)。å‡å¦‚相關錯誤有公開變更,該錯誤 ID 會連çµåˆ°ç›¸å°æ‡‰çš„變更 (例如 Android 開放原始碼計劃變更清單)。如果單一錯誤有多項相關變更,您å¯ä»¥é€éŽè©²éŒ¯èª¤ ID 後é¢çš„編號連çµé–‹å•Ÿé¡å¤–çš„åƒè€ƒè³‡æ–™ã€‚</p>
diff --git a/zh-tw/security/bulletin/2018-11-01.html b/zh-tw/security/bulletin/2018-11-01.html
index 762f9e9c..8b36c8e7 100644
--- a/zh-tw/security/bulletin/2018-11-01.html
+++ b/zh-tw/security/bulletin/2018-11-01.html
@@ -19,13 +19,13 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p><em>發佈日期:2018 年 11 月 5 日</em></p>
+<p><em>發佈日期:2018 年 11 月 5 日 | 更新日期:2018 年 11 月 5 日</em></p>
<p>
-Android å®‰å…¨æ€§å…¬å‘Šåˆ—èˆ‰æœƒå° Android è£ç½®é€ æˆå½±éŸ¿çš„安全性æ¼æ´žï¼Œä¸¦èªªæ˜Žå„項相關細節。2018-11-05 之後的安全性修補程å¼ç­‰ç´šå·²è§£æ±ºäº†é€™äº›å•é¡Œã€‚è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705" class="external">檢查åŠæ›´æ–° Android 版本</a>一文,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚
+Android å®‰å…¨æ€§å…¬å‘Šåˆ—èˆ‰å° Android è£ç½®é€ æˆå½±éŸ¿çš„安全性æ¼æ´žï¼Œä¸¦èªªæ˜Žå„項相關細節。2018-11-05 之後的安全性修補程å¼ç­‰ç´šå·²è§£æ±ºäº†é€™äº›å•é¡Œã€‚è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705" class="external">檢查åŠæ›´æ–° Android 版本</a>一文,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚
</p>
<p>
-Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相關通知。這些å•é¡Œçš„原始碼修補程å¼å°‡æ–¼æŽ¥ä¸‹ä¾† 48 å°æ™‚內發佈到 Android 開放原始碼計劃 (AOSP) 存放å€ï¼Œç­‰åˆ°ç›¸é—œ Android 開放原始碼計劃連çµå»ºç«‹å®Œæˆå¾Œï¼Œæˆ‘們就會修訂這則公告。</p>
+Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相關通知。這些å•é¡Œçš„原始碼修補程å¼å·²ç™¼ä½ˆåˆ° Android 開放原始碼計劃 (AOSP) 存放å€ä¸­ï¼Œä¸”公告中亦æ供相關連çµã€‚此外,本公告也æä¾› Android 開放原始碼計劃以外的修補程å¼é€£çµã€‚</p>
<p>
本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“鄰近的攻擊者得以利用特製檔案在ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚<a href="/security/overview/updates-resources.html#severity">åš´é‡ç¨‹åº¦è©•å®šæ¨™æº–</a>是å‡è¨­å¹³å°èˆ‡æœå‹™çš„因應防護措施基於開發作業的需求而被關閉,或是é­åˆ°æœ‰å¿ƒäººå£«ç ´è§£ï¼Œç„¶å¾ŒæŽ¨ç®—當有人惡æ„é‹ç”¨æ¼æ´žæ™‚,使用者的è£ç½®å¯èƒ½æœƒå—到多大的影響,據此評定æ¼æ´žçš„åš´é‡ç¨‹åº¦ã€‚
</p>
@@ -35,7 +35,6 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
<p class="note">
<strong>注æ„:</strong>在 <a href="/security/bulletin/pixel/2018-11-01">2018 å¹´ 11 月 Pixel/Nexus 安全性公告</a>中,我們æ供了 Google è£ç½®é©ç”¨çš„最新無線下載更新 (OTA) 和韌體映åƒæª”的相關資訊。
</p>
-
<h2 id="announcements">公告事項</h2>
<p>
我們在 Libxaac 程å¼åº«ä¸­ç™¼ç¾å¤šå€‹å®‰å…¨æ€§å•é¡Œï¼ŒåŒ…括:CVE-2018-9528ã€CVE-2018-9529ã€CVE-2018-9530ã€CVE-2018-9531ã€CVE-2018-9532ã€CVE-2018-9533ã€CVE-2018-9534ã€CVE-2018-9535ã€CVE-2018-9569ã€CVE-2018-9570ã€CVE-2018-9571ã€CVE-2018-9572ã€CVE-2018-9573ã€CVE-2018-9574ã€CVE-2018-9575ã€CVE-2018-9576ã€CVE-2018-9577 å’Œ CVE-2018-9578。</p>
@@ -71,21 +70,21 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
</tr>
<tr>
<td>CVE-2018-9522</td>
- <td>A-112550251</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/181dc252ddec574464882970d3fab290e8b625b5" class="external">A-112550251</a></td>
<td>EoP</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9524</td>
- <td>A-34170870</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/c9bc35a45da1e765eb36af604c0c580bd66644cc" class="external">A-34170870</a></td>
<td>EoP</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
</tr>
<tr>
<td>CVE-2018-9525</td>
- <td>A-111330641</td>
+ <td><a href="https://android.googlesource.com/platform/packages/apps/Settings/+/6409cf5c94cc1feb72dc078e84e66362fbecd6d5" class="external">A-111330641</a></td>
<td>EoP</td>
<td>高</td>
<td>9</td>
@@ -110,42 +109,42 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
</tr>
<tr>
<td>CVE-2018-9527</td>
- <td>A-112159345</td>
+ <td><a href="https://android.googlesource.com/platform/external/tremolo/+/cafff8f4535c8bf933c5a2fcb1a0dd66fb75a1c2" class="external">A-112159345</a></td>
<td>RCE</td>
<td>最高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9531</td>
- <td>A-112661641</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/c2208f2a3098410c5a4c79ad6bd4b6d7e1c0b03f" class="external">A-112661641</a></td>
<td>RCE</td>
<td>最高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9536</td>
- <td>A-112662184</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/9744e41c40598c6a0b74440f3b5be63f9f3708a5" class="external">A-112662184</a></td>
<td>EoP</td>
<td>最高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9537</td>
- <td>A-112891564</td>
+ <td><a href="https://android.googlesource.com/platform/external/aac/+/61381bd0f4bc012876ccf4b63eafddd2d60c35c9" class="external">A-112891564</a></td>
<td>EoP</td>
<td>最高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9521</td>
- <td>A-111874331</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/083263937bfb1623adf6015da7ca3cdc258e0352" class="external">A-111874331</a></td>
<td>RCE</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9539</td>
- <td>A-113027383</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/av/+/efe34a570d91b826b009d40e44c2e470dd180ace" class="external">A-113027383</a></td>
<td>EoP</td>
<td>高</td>
<td>8.0ã€8.1ã€9</td>
@@ -170,42 +169,42 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
</tr>
<tr>
<td>CVE-2018-9540</td>
- <td>A-111450417</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/99d54d0c7dbab6c80f15bbf886ed203b2a547453" class="external">A-111450417</a></td>
<td>ID</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9542</td>
- <td>A-111896861</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111896861</a></td>
<td>ID</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
<tr>
<td>CVE-2018-9543</td>
- <td>A-112868088</td>
+ <td><a href="https://android.googlesource.com/platform/external/f2fs-tools/+/71313114a147ee3fc4a411904de02ea8b6bf7f91" class="external">A-112868088</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9544</td>
- <td>A-113037220</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113037220</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td>CVE-2018-9545</td>
- <td>A-113111784</td>
+ <td><a href="https://android.googlesource.com/platform/system/bt/+/e3fbbdeb251dc59890e469c627fce322614944c0" class="external">A-113111784</a></td>
<td>ID</td>
<td>高</td>
<td>9</td>
</tr>
<tr>
<td rowspan="2">CVE-2018-9541</td>
- <td rowspan="2">A-111450531</td>
+ <td rowspan="2"><a href="https://android.googlesource.com/platform/system/bt/+/cc364611362cc5bc896b400bdc471a617d1ac628" class="external">A-111450531</a></td>
<td>ID</td>
<td>中</td>
<td>9</td>
@@ -217,54 +216,6 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
</tr>
</tbody></table>
-<h3 id="update-media-framework">更新項目:媒體架構</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>åƒè€ƒè³‡æ–™</th>
- <th>é¡žåž‹</th>
- <th>åš´é‡ç¨‹åº¦</th>
- <th>更新的 Android 開放原始碼計劃版本</th>
- </tr>
- <tr>
- <td>CVE-2018-9347</td>
- <td>A-68664359</td>
- <td>DoS</td>
- <td>中</td>
- <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
-<h3 id="update-system">更新項目:系統</h3>
-
-<table>
-<colgroup><col width="21%" />
-<col width="21%" />
-<col width="14%" />
-<col width="14%" />
-<col width="30%" />
- </colgroup><tbody><tr>
- <th>CVE</th>
- <th>åƒè€ƒè³‡æ–™</th>
- <th>é¡žåž‹</th>
- <th>åš´é‡ç¨‹åº¦</th>
- <th>更新的 Android 開放原始碼計劃版本</th>
- </tr>
- <tr>
- <td>CVE-2018-9457</td>
- <td>A-72872376</td>
- <td>EoP</td>
- <td>中</td>
- <td>8.0ã€8.1ã€9</td>
- </tr>
-</tbody></table>
-
<h2 id="2018-11-05-details">2018-11-05 安全性修補程å¼ç­‰ç´š - 資安æ¼æ´žè©³æƒ…</h2>
<p>
下列å„節é‡å° 2018-11-05 安全性修補程å¼ç­‰ç´šé©ç”¨çš„å„項安全性æ¼æ´žæ供了詳細資訊。我們ä¾ç…§è³‡å®‰å•é¡Œæœ¬èº«æ‰€å½±éŸ¿çš„元件將å„é …æ¼æ´žåˆ†é–€åˆ¥é¡žï¼Œå¦å¤–也附上了一些詳細資料,例如 CVEã€ç›¸é—œåƒè€ƒè³‡æ–™ã€<a href="#type">æ¼æ´žé¡žåž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">åš´é‡ç¨‹åº¦</a>ã€å…ƒä»¶ (在é©ç”¨æƒ…æ³ä¸‹),和更新的 Android 開放原始碼計劃版本 (在é©ç”¨æƒ…æ³ä¸‹)。å‡å¦‚相關錯誤有公開變更,該錯誤 ID 會連çµåˆ°ç›¸å°æ‡‰çš„變更 (例如 Android 開放原始碼計劃變更清單)。如果單一錯誤有多項相關變更,您å¯ä»¥é€éŽè©²éŒ¯èª¤ ID 後é¢çš„編號連çµé–‹å•Ÿé¡å¤–çš„åƒè€ƒè³‡æ–™ã€‚</p>
@@ -287,18 +238,11 @@ Android çš„åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°å…¬å‘Šä¸­æ‰€æœ‰å•é¡Œçš„相
</tr>
<tr>
<td>CVE-2018-9523</td>
- <td>A-112859604</td>
+ <td><a href="https://android.googlesource.com/platform/frameworks/base/+/6a947f048a76a5936fd2b693e01f849aef22c907" class="external">A-112859604</a></td>
<td>EoP</td>
<td>高</td>
<td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
</tr>
- <tr>
- <td>CVE-2018-9526</td>
- <td>A-112159033</td>
- <td>ID</td>
- <td>高</td>
- <td>9</td>
- </tr>
</tbody></table>
<h3 id="qualcomm-components">Qualcomm 元件</h3>
@@ -582,6 +526,11 @@ QC-CR#2090797</a></td>
<td>2018 年 11 月 5 日</td>
<td>發佈公告。</td>
</tr>
+ <tr>
+ <td>1.1</td>
+ <td>2018 年 11 月 5 日</td>
+ <td>修訂公告內容 (加入 Android 開放原始碼計劃連çµ)。</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/zh-tw/security/bulletin/2018-12-01.html b/zh-tw/security/bulletin/2018-12-01.html
new file mode 100644
index 00000000..ccf5c113
--- /dev/null
+++ b/zh-tw/security/bulletin/2018-12-01.html
@@ -0,0 +1,706 @@
+<html devsite><head>
+ <title>Android 安全性公告 - 2018 年 12 月</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<p><em>發佈日期:2018 年 12 月 3 日</em></p>
+
+<p>
+Android å®‰å…¨æ€§å…¬å‘Šåˆ—èˆ‰å° Android è£ç½®é€ æˆå½±éŸ¿çš„安全性æ¼æ´žï¼Œä¸¦èªªæ˜Žå„項相關細節。2018-12-05 之後的安全性修補程å¼ç­‰ç´šå·²è§£æ±ºäº†é€™äº›å•é¡Œã€‚è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705" class="external">檢查åŠæ›´æ–° Android 版本</a>一文,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚
+</p>
+<p>這些å•é¡Œçš„原始碼修補程å¼å°‡æ–¼æŽ¥ä¸‹ä¾† 48 å°æ™‚內發佈到 Android 開放原始碼計劃 (AOSP) 存放å€ï¼Œç­‰åˆ°ç›¸é—œ Android 開放原始碼計劃連çµå»ºç«‹å®Œæˆå¾Œï¼Œæˆ‘們就會修訂這則公告。</p>
+<p>
+在這些å•é¡Œä¸­ï¼Œæœ€åš´é‡çš„就是媒體架構中嚴é‡ç¨‹åº¦ã€Œæœ€é«˜ã€çš„安全性æ¼æ´žã€‚é ç«¯æ”»æ“Šè€…å¯åˆ©ç”¨é€™é¡žæ¼æ´žï¼Œåœ¨ç²å¾—授權的程åºç’°å¢ƒå…§é€éŽç‰¹è£½æª”案執行任何程å¼ç¢¼ã€‚<a href="/security/overview/updates-resources.html#severity">åš´é‡ç¨‹åº¦è©•å®šæ¨™æº–</a>是å‡è¨­å¹³å°èˆ‡æœå‹™çš„因應防護措施基於開發作業的需求而被關閉,或是é­åˆ°æœ‰å¿ƒäººå£«ç ´è§£ï¼Œç„¶å¾ŒæŽ¨ç®—當有人惡æ„é‹ç”¨æ¼æ´žæ™‚,使用者的è£ç½®æœƒå—到多大的影響,據此評定æ¼æ´žçš„åš´é‡ç¨‹åº¦ã€‚
+</p>
+<p>
+é‡å°é€™äº›æ–°ç™¼ç¾çš„æ¼æ´žï¼Œæˆ‘們目å‰å°šæœªæ”¶åˆ°ä»»ä½•å®¢æˆ¶å›žå ±ç›¸é—œçš„æ¼æ´žæ¿«ç”¨æ¡ˆä¾‹ã€‚如果想進一步瞭解 <a href="/security/enhancements/">Android 安全性平å°é˜²è­·æŽªæ–½</a>å’Œ Google Play 安全防護機制如何加強 Android å¹³å°çš„安全性,請åƒé–± <a href="#mitigations">Android å’Œ Google Play 安全防護機制所æ供的因應措施</a>。
+</p>
+<p class="note">
+<strong>注æ„:</strong><a href="/security/bulletin/pixel/2018-12-01">2018 å¹´ 12 月 Pixel/Nexus 安全性公告</a>æ供了和 Google è£ç½®çš„最新無線下載更新 (OTA) 與韌體映åƒæª”有關的資訊。
+</p>
+
+<h2 id="mitigations">Android å’Œ Google æœå‹™å•é¡Œå› æ‡‰æŽªæ–½</h2>
+
+<p>
+本節概述 <a href="/security/enhancements/">Android 安全性平å°</a>å’Œ <a href="https://www.android.com/play-protect" class="external">Google Play 安全防護</a>ç­‰æœå‹™é˜²è­·æ–¹æ¡ˆæ‰€æ供的因應措施。這些措施å¯æœ‰æ•ˆé˜²ç¯„有心人士在 Android 系統上惡æ„é‹ç”¨å®‰å…¨æ€§æ¼æ´žä¾†é”到特定目的。
+</p>
+<ul>
+<li>Android å¹³å°æŒçºŒæŽ¨å‡ºæ–°çš„版本來強化安全性,因此有心人士越來越難在 Android 系統上找出æ¼æ´žåŠ ä»¥åˆ©ç”¨ã€‚我們建議所有使用者盡å¯èƒ½æ›´æ–°è‡³æœ€æ–°ç‰ˆçš„ Android。</li>
+<li>Android 安全性å°çµ„é€éŽ <a href="https://www.android.com/play-protect" class="external">Google Play 安全防護</a>主動監控濫用情形;使用這些功能的目的是在發ç¾<a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">å¯èƒ½æœ‰å®³çš„應用程å¼</a>時警告使用者。在é è¨­æƒ…æ³ä¸‹ï¼Œæ­è¼‰ <a href="http://www.android.com/gms" class="external">Google 行動æœå‹™</a>çš„è£ç½®æœƒè‡ªå‹•å•Ÿç”¨ Google Play 安全防護機制。å°æ–¼éœ€è¦å¾ž Google Play 以外的來æºå®‰è£æ‡‰ç”¨ç¨‹å¼çš„使用者來說,這項防護措施格外é‡è¦ã€‚</li>
+</ul>
+<h2 id="2018-12-01-details">2018-12-01 安全性修補程å¼ç­‰ç´š - 資安æ¼æ´žè©³æƒ…</h2>
+<p>
+下列å„節é‡å° 2018-12-01 安全性修補程å¼ç­‰ç´šé©ç”¨çš„å„項安全性æ¼æ´žæ供了詳細資訊,我們ä¾ç…§è³‡å®‰å•é¡Œæœ¬èº«æ‰€å½±éŸ¿çš„元件將å„é …æ¼æ´žåˆ†é–€åˆ¥é¡žï¼Œå¦å¤–也附上了å•é¡Œèªªæ˜Žå’Œä¸€ä»½ CVE 資訊表,其中包括了相關åƒè€ƒè³‡æ–™ã€<a href="#type">æ¼æ´žé¡žåž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">åš´é‡ç¨‹åº¦</a>,以åŠæ›´æ–°çš„ Android 開放原始碼計劃版本 (在é©ç”¨æƒ…æ³ä¸‹)。å‡å¦‚相關錯誤有公開變更,該錯誤 ID 會連çµåˆ°ç›¸å°æ‡‰çš„變更 (例如 Android 開放原始碼計劃變更清單)。如果單一錯誤有多項相關變更,您å¯ä»¥é€éŽè©²éŒ¯èª¤ ID 後é¢çš„編號連çµé–‹å•Ÿé¡å¤–çš„åƒè€ƒè³‡æ–™ã€‚</p>
+
+<h3 id="framework">架構</h3>
+
+<p>本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“本機惡æ„應用程å¼åœ¨ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>更新的 Android 開放原始碼計劃版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9547</td>
+ <td>A-114223584</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9548</td>
+ <td>A-112555574</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+</tbody></table>
+
+<h3 id="media-framework">媒體架構</h3>
+<p>本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“é ç«¯æ”»æ“Šè€…得以利用特製檔案在ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>更新的 Android 開放原始碼計劃版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9549</td>
+ <td>A-112160868</td>
+ <td>RCE</td>
+ <td>最高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9550</td>
+ <td>A-112660981</td>
+ <td>RCE</td>
+ <td>最高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9551</td>
+ <td>A-112891548</td>
+ <td>RCE</td>
+ <td>最高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9552</td>
+ <td>A-113260892</td>
+ <td>ID</td>
+ <td>最高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9553</td>
+ <td>A-116615297</td>
+ <td>RCE</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9538</td>
+ <td>A-112181526</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9554</td>
+ <td>A-114770654</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td>
+ </tr>
+</tbody></table>
+
+<h3 id="system">系統</h3>
+<p>本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“é ç«¯æ”»æ“Šè€…得以利用特製傳輸檔案在ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>更新的 Android 開放原始碼計劃版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9555</td>
+ <td>A-112321180</td>
+ <td>RCE</td>
+ <td>最高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9556</td>
+ <td>A-113118184</td>
+ <td>RCE</td>
+ <td>最高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9557</td>
+ <td>A-35385357</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9558</td>
+ <td>A-112161557</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9559</td>
+ <td>A-112731440</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9560</td>
+ <td>A-79946737</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9562</td>
+ <td>A-113164621</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9566</td>
+ <td>A-74249842</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td>
+ </tr>
+</tbody></table>
+
+<h2 id="2018-12-05-details">2018-12-05 安全性修補程å¼ç­‰ç´š - 資安æ¼æ´žè©³æƒ…</h2>
+
+<p>
+下列å„節é‡å° 2018-12-05 安全性修補程å¼ç­‰ç´šé©ç”¨çš„å„項安全性æ¼æ´žæ供了詳細資訊,我們ä¾ç…§è³‡å®‰å•é¡Œæœ¬èº«æ‰€å½±éŸ¿çš„元件將å„é …æ¼æ´žåˆ†é–€åˆ¥é¡žï¼Œå¦å¤–也附上了一些詳細資料,例如 CVEã€ç›¸é—œåƒè€ƒè³‡æ–™ã€<a href="#type">æ¼æ´žé¡žåž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">åš´é‡ç¨‹åº¦</a>ã€å…ƒä»¶ (在é©ç”¨æƒ…æ³ä¸‹),和更新的 Android 開放原始碼計劃版本 (在é©ç”¨æƒ…æ³ä¸‹)。å‡å¦‚相關錯誤有公開變更,該錯誤 ID 會連çµåˆ°ç›¸å°æ‡‰çš„變更 (例如 Android 開放原始碼計劃變更清單)。如果單一錯誤有多項相關變更,您å¯ä»¥é€éŽè©²éŒ¯èª¤ ID 後é¢çš„編號連çµé–‹å•Ÿé¡å¤–çš„åƒè€ƒè³‡æ–™ã€‚</p>
+
+<h3 id="system-05">系統</h3>
+
+<p>本節中最嚴é‡çš„æ¼æ´žå°±æ˜¯æ”»æ“Šè€…å¯åœ¨ä¸å…·å‚™ä»»ä½•é¡å¤–執行權é™çš„情æ³ä¸‹ï¼Œé€ æˆé ç«¯è³‡è¨Šå¤–æ´©çš„å•é¡Œã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>元件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9565</td>
+ <td>A-16680558</td>
+ <td>ID</td>
+ <td>高</td>
+ <td>OMA-DM</td>
+ </tr>
+</tbody></table>
+
+<h3 id="htc-components">HTC 元件</h3>
+
+<p>本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“本機攻擊者得以è¦é¿ä½¿ç”¨è€…互動è¦æ±‚,藉此å–得其他權é™ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>元件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9567</td>
+ <td>A-65543936</td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>系統啟動載入程å¼</td>
+ </tr>
+</tbody></table>
+
+<h3 id="kernel-components">核心元件</h3>
+
+<p>本節中最嚴é‡çš„æ¼æ´žå¯èƒ½æœƒè®“本機攻擊者在ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>元件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-10840</td>
+ <td>A-116406508<br />
+<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-10840">上游程å¼åº«æ ¸å¿ƒ</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>ext4 filesystem</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-9568</td>
+ <td>A-113509306<br />
+<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/net/core/sock.c?id=9d538fa60bad4f7b23193c89e843797a1cf71ef3">上游程å¼åº«æ ¸å¿ƒ</a></td>
+ <td>EoP</td>
+ <td>高</td>
+ <td>網路</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-components">Qualcomm 元件</h3>
+
+<p>以下列出會影響 Qualcomm 元件的安全性æ¼æ´žï¼Œè©³æƒ…è«‹åƒè€ƒé©ç”¨çš„ Qualcomm 安全性公告或安全性警示。這些å•é¡Œçš„åš´é‡ç¨‹åº¦æ˜¯ç”± Qualcomm 直接評定。</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>元件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11960</td>
+ <td>A-114042002<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=18ce15db603e19cfac9a2f4076f255e879100495">QC-CR#2264832</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>HWEngines</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11961</td>
+ <td>A-114040881<br />
+<a href="https://source.codeaurora.org/quic/le/platform/hardware/qcom/gps/commit/?id=c57ee0a5d3261ab20c35b451d1b3ae2b02a21591">QC-CR#2261813</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>GPS_AP_LINUX</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11963</td>
+ <td>A-114041685<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9ac3476a91c384a3f2760fabaecef0ad8698d7b">QC-CR#2220770</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>汽車多媒體</td>
+ </tr>
+</tbody></table>
+
+<h3 id="qualcomm-closed-source-components">Qualcomm å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</h3>
+
+<p>以下列出會影響 Qualcomm 元件的安全性æ¼æ´žï¼Œè©³æƒ…è«‹åƒè€ƒé©ç”¨çš„ Qualcomm 安全性公告或安全性警示。這些å•é¡Œçš„åš´é‡ç¨‹åº¦æ˜¯ç”± Qualcomm 直接評定。</p>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>元件</th>
+ </tr>
+ <tr>
+ <td>CVE-2017-8248</td>
+ <td>A-78135902<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>最高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-11004</td>
+ <td>A-66913713<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>最高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18141</td>
+ <td>A-67712316<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>最高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5913</td>
+ <td>A-79419833<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>最高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11279</td>
+ <td>A-109678200<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>最高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18319</td>
+ <td>A-78284753<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18321</td>
+ <td>A-78283451<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18322</td>
+ <td>A-78285196<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18323</td>
+ <td>A-78284194<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18324</td>
+ <td>A-78284517<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18327</td>
+ <td>A-78240177<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18331</td>
+ <td>A-78239686<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18332</td>
+ <td>A-78284545<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18160</td>
+ <td>A-109660689<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18326</td>
+ <td>A-78240324<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-8276</td>
+ <td>A-68141338<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18328</td>
+ <td>A-78286046<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18329</td>
+ <td>A-73539037<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18330</td>
+ <td>A-73539235<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-3595</td>
+ <td>A-71501115<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-18320</td>
+ <td>A-33757308<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11999</td>
+ <td>A-74236942<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5867</td>
+ <td>A-77485184<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5868</td>
+ <td>A-77484529<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5869</td>
+ <td>A-33385206<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2017-5754</td>
+ <td>A-79419639<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-5915</td>
+ <td>A-79420511<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11267</td>
+ <td>A-109678338<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+ <tr>
+ <td>CVE-2018-11922</td>
+ <td>A-112279564<a href="#asterisk">*</a></td>
+ <td>ç„¡</td>
+ <td>高</td>
+ <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">常見å•é¡Œèˆ‡è§£ç­”</h2>
+
+<p>如果您在閱讀這篇公告後有任何疑å•ï¼Œå¯åƒè€ƒæœ¬ç¯€çš„常見å•ç­”。</p>
+<p><strong>1. 如何判斷我目å‰çš„è£ç½®è»Ÿé«”版本是å¦å·²ä¿®æ­£é€™äº›å•é¡Œï¼Ÿ</strong></p>
+<p>è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">檢查åŠæ›´æ–° Android 版本</a>一文,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚</p>
+<ul>
+<li>2018-12-01 後的安全性修補程å¼ç­‰ç´šå·²è§£æ±ºäº†æ‰€æœ‰èˆ‡ 2018-12-01 安全性修補程å¼ç­‰ç´šç›¸é—œçš„å•é¡Œã€‚</li>
+<li>2018-12-05 之後的安全性修補程å¼ç­‰ç´šå®Œå…¨è§£æ±ºäº†èˆ‡ 2018-12-05 安全性修補程å¼ç­‰ç´šåŠæ‰€æœ‰å…ˆå‰ä¿®è£œç¨‹å¼ç­‰ç´šç›¸é—œçš„å•é¡Œã€‚</li>
+</ul>
+<p>æ供這些更新的è£ç½®è£½é€ å•†æ‡‰å°‡ä¿®è£œç¨‹å¼å­—串等級設定為:</p>
+<ul>
+ <li>[ro.build.version.security_patch]:[2018-12-01]</li>
+ <li>[ro.build.version.security_patch]:[2018-12-05]</li>
+</ul>
+<p><strong>2. 為什麼這篇公告有兩種安全性修補程å¼ç­‰ç´šï¼Ÿ</strong></p>
+<p>
+本公告有兩種安全性修補程å¼ç­‰ç´šï¼Œè®“ Android åˆä½œå¤¥ä¼´èƒ½å¤ éˆæ´»é‹ç”¨ï¼Œä»¥å¿«é€Ÿä¿®æ­£æŸäº›ç™¼ç”Ÿåœ¨æ‰€æœ‰ Android è£ç½®ä¸Šçš„é¡žä¼¼æ¼æ´žã€‚我們建議 Android åˆä½œå¤¥ä¼´ä¿®æ­£æœ¬å…¬å‘Šæ‰€åˆ—的所有å•é¡Œï¼Œä¸¦ä½¿ç”¨æœ€æ–°çš„安全性修補程å¼ç­‰ç´šã€‚
+</p>
+<ul>
+<li>安全性修補程å¼ç­‰ç´šç‚º 2018-12-01 çš„è£ç½®å¿…é ˆç´å…¥æ‰€æœ‰èˆ‡è©²å®‰å…¨æ€§ä¿®è£œç¨‹å¼ç­‰ç´šç›¸é—œçš„å•é¡Œï¼Œä»¥åŠåœ¨ä¹‹å‰å®‰å…¨æ€§å…¬å‘Šä¸­å›žå ±çš„所有å•é¡Œé©ç”¨çš„修正程å¼ã€‚</li>
+<li>如果è£ç½®çš„安全性修補程å¼ç­‰ç´šåœ¨ 2018-12-05 之後,就必須加入本安全性公告 (以åŠä¹‹å‰å…¬å‘Š) 中的所有é©ç”¨ä¿®è£œç¨‹å¼ã€‚</li>
+</ul>
+<p>
+我們建議åˆä½œå¤¥ä¼´å°‡æ‰€æœ‰å•é¡Œé©ç”¨çš„修補程å¼éƒ½å½™æ•´åœ¨å–®ä¸€æ›´æ–°ä¸­ã€‚
+</p>
+<p id="type">
+<strong>3.「類型ã€<em></em>欄中的項目代表什麼æ„義?</strong>
+</p>
+<p>
+在資安æ¼æ´žè©³æƒ…表格中,「類型ã€<em></em>欄中的項目代表的是安全性æ¼æ´žçš„類別。
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>縮寫</th>
+ <th>定義</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>é ç«¯ç¨‹å¼ç¢¼åŸ·è¡Œ</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>權é™å‡ç´š</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>資訊外洩</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>阻斷æœå‹™</td>
+ </tr>
+ <tr>
+ <td>ç„¡</td>
+ <td>未分類</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>4.「åƒè€ƒè³‡æ–™ã€<em></em>欄底下列出的識別碼代表什麼æ„義?</strong>
+</p>
+<p>
+資安æ¼æ´žè©³æƒ…表格中「åƒè€ƒè³‡æ–™ã€<em></em>欄底下的項目å¯èƒ½æœƒåŒ…å«ä¸€å€‹å‰ç½®å­—串,用以表示該åƒè€ƒè³‡æ–™å€¼æ‰€å±¬çš„機構或公å¸ã€‚
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>å‰ç½®å­—串</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android 錯誤 ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>5.「åƒè€ƒè³‡æ–™ã€<em></em>欄中 Android 錯誤 ID æ—邊的星號 (*) 代表什麼æ„義?</strong>
+</p>
+<p>
+在「åƒè€ƒè³‡æ–™ã€<em></em>欄中 Android 錯誤 ID æ—邊標上星號 (*) 代表該å•é¡Œä¸¦æœªå…¬é–‹ï¼Œç›¸é—œçš„更新通常是直接整åˆåœ¨æœ€æ–°çš„ Pixel/Nexus è£ç½®å°ˆç”¨é©…動程å¼çš„安è£æª”中。您å¯ä»¥å‰å¾€ <a href="https://developers.google.com/android/drivers" class="external">Google Developers 網站</a>下載這些驅動程å¼ã€‚
+</p>
+<p>
+<strong>6. 為什麼安全性æ¼æ´žæœƒå€åˆ†ç‚ºæœ¬å®‰å…¨æ€§å…¬å‘Šä»¥åŠè£ç½®åˆä½œå¤¥ä¼´çš„安全性公告,例如 Pixel/Nexus 公告?</strong>
+</p>
+<p>
+為了宣告 Android è£ç½®æœ€æ–°çš„安全性修補程å¼ç­‰ç´šï¼Œæˆ‘們必須先在這份安全性公告中刊載相關的安全性æ¼æ´žã€‚è£ç½®/åˆä½œå¤¥ä¼´å®‰å…¨æ€§å…¬å‘Šæ‰€åˆŠè¼‰çš„其他安全性æ¼æ´žå‰‡æœªå¼·åˆ¶è¦å®šå®£å‘Šå®‰å…¨æ€§ä¿®è£œç¨‹å¼ç­‰ç´šã€‚我們鼓勵 Android è£ç½®å’Œæ™¶ç‰‡çµ„製造商將旗下è£ç½®çš„其他修正刊載在自己的安全性網站上,例如 <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>ã€<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> 或是 <a href="/security/bulletin/pixel/" class="external">Pixel/Nexus</a> 安全性公告。
+</p>
+
+<h2 id="versions">版本</h2>
+
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>版本</th>
+ <th>日期</th>
+ <th>附註</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 12 月 3 日</td>
+ <td>發佈公告</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file
diff --git a/zh-tw/security/bulletin/pixel/2018-07-01.html b/zh-tw/security/bulletin/pixel/2018-07-01.html
index 162900bc..43219b8f 100644
--- a/zh-tw/security/bulletin/pixel/2018-07-01.html
+++ b/zh-tw/security/bulletin/pixel/2018-07-01.html
@@ -20,7 +20,7 @@
limitations under the License.
-->
-<p><em>發佈日期:2018 年 7 月 2 日 | 更新日期:2018 年 7 月 3 日</em></p>
+<p><em>發佈日期:2018 年 7 月 2 日 | 更新日期:2018 年 11 月 8 日</em></p>
<p>
Pixel/Nexus 安全性公告列舉å°<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices">支æ´çš„ Google Pixel å’Œ Nexus è£ç½®</a> (Google è£ç½®) 造æˆå½±éŸ¿çš„安全性æ¼æ´žå’ŒåŠŸèƒ½æ”¹å–„項目,並說明å„項相關細節。2018-07-05 之後的安全性修補程å¼ç­‰ç´šä¹Ÿå·²é‡å° Google è£ç½®è§£æ±ºäº†é€™å€‹å…¬å‘Šå’Œ 2018 å¹´ 7 月 Android 安全性公告列出的所有å•é¡Œã€‚è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705">檢查åŠæ›´æ–° Android 版本</a>一文,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚
@@ -221,7 +221,7 @@ Pixel/Nexus 安全性公告列舉å°<a href="https://support.google.com/pixelpho
</tr>
<tr>
- <td>CVE-2017-1000</td>
+ <td>CVE-2017-1000112</td>
<td>A-68806309<br />
<a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=85f1bd9a7b5a79d5baa8bf44af19658f7bf77bfa">上游程å¼åº«æ ¸å¿ƒ</a></td>
<td>EoP</td>
@@ -460,6 +460,11 @@ Pixel/Nexus 安全性公告列舉å°<a href="https://support.google.com/pixelpho
<td>2018 年 7 月 3 日</td>
<td>修訂公告內容 (加入 Android 開放原始碼計劃連çµ)。</td>
</tr>
+ <tr>
+ <td>1.2</td>
+ <td>2018 年 11 月 8 日</td>
+ <td>修訂公告內容 (更正 CVE-2017-1000112)。</td>
+ </tr>
</tbody></table>
</body></html> \ No newline at end of file
diff --git a/zh-tw/security/bulletin/pixel/2018-11-01.html b/zh-tw/security/bulletin/pixel/2018-11-01.html
index ca88bb31..52706984 100644
--- a/zh-tw/security/bulletin/pixel/2018-11-01.html
+++ b/zh-tw/security/bulletin/pixel/2018-11-01.html
@@ -42,6 +42,33 @@ Pixel/Nexus 安全性公告列舉會å°<a href="https://support.google.com/pixel
<p>
我們ä¾ç…§è³‡å®‰å•é¡Œæœ¬èº«æ‰€å½±éŸ¿çš„元件將å„é …æ¼æ´žåˆ†é–€åˆ¥é¡žï¼Œå¦å¤–也附上了å•é¡Œèªªæ˜Žå’Œä¸€ä»½ CVE 資訊表,其中包括了相關åƒè€ƒè³‡æ–™ã€<a href="#type">æ¼æ´žé¡žåž‹</a>ã€<a href="/security/overview/updates-resources#severity">åš´é‡ç¨‹åº¦</a>,以åŠæ›´æ–°çš„ Android 開放原始碼計劃 (AOSP) 版本 (在é©ç”¨æƒ…æ³ä¸‹)。å‡å¦‚相關錯誤有公開變更,該錯誤 ID 會連çµåˆ°ç›¸å°æ‡‰çš„變更 (例如 Android 開放原始碼計劃變更清單)。如果單一錯誤有多項相關變更,您å¯ä»¥é€éŽè©²éŒ¯èª¤ ID 後é¢çš„編號連çµé–‹å•Ÿé¡å¤–çš„åƒè€ƒè³‡æ–™ã€‚</p>
+<h3 id="framework-05">架構</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>更新的 Android 開放原始碼計劃版本</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-9526</td>
+ <td><a href="https://android.googlesource.com/device/google/marlin/+/fa7f7382e8b39f7ca209824f97788ab25c44f6a3" class="external">A-112159033</a>
+ [<a href="https://android.googlesource.com/platform/frameworks/base/+/8e81142af3dceb913ca50f67df3ded84233f932a">2</a>]
+ [<a href="https://android.googlesource.com/platform/hardware/qcom/sdm845/gps/+/a5f7c07edd96c69171e8bd758addda7d5c30e3eb">3</a>]
+ </td>
+ <td>ID</td>
+ <td>高</td>
+ <td>9</td>
+ </tr>
+</tbody></table>
+
<h3 id="htc-components">HTC 元件</h3>
<table>
diff --git a/zh-tw/security/bulletin/pixel/2018-12-01.html b/zh-tw/security/bulletin/pixel/2018-12-01.html
new file mode 100644
index 00000000..c82c8ecc
--- /dev/null
+++ b/zh-tw/security/bulletin/pixel/2018-12-01.html
@@ -0,0 +1,273 @@
+<html devsite><head>
+ <title>Pixel/Nexus 安全性公告 - 2018 年 12 月</title>
+ <meta name="project_path" value="/_project.yaml"/>
+ <meta name="book_path" value="/_book.yaml"/>
+ </head>
+ <body>
+ <!--
+ Copyright 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ //www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<p><em>發佈日期:2018 年 12 月 3 日</em></p>
+
+<p>
+Pixel/Nexus 安全性公告列舉å°<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">支æ´çš„ Google Pixel å’Œ Nexus è£ç½®</a> (Google è£ç½®) 造æˆå½±éŸ¿çš„安全性æ¼æ´žå’ŒåŠŸèƒ½æ”¹å–„項目,並說明å„項相關細節。2018-12-05 之後的安全性修補程å¼ç­‰ç´šä¹Ÿå·²é‡å° Google è£ç½®è§£æ±ºäº†é€™å€‹å…¬å‘Šå’Œ 2018 å¹´ 12 月 Android 安全性公告列出的所有å•é¡Œã€‚è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705" class="external">檢查åŠæ›´æ–° Android 版本</a>一文,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚
+</p>
+<p>
+所有支æ´çš„ Google è£ç½®éƒ½æœƒæ”¶åˆ° 2018-12-05 修補程å¼ç­‰ç´šæ›´æ–°ã€‚我們建議所有客戶接å—這些è£ç½®æ›´æ–°ã€‚
+</p>
+<p class="note">
+<strong>注æ„:</strong>您å¯ä»¥å‰å¾€ <a href="https://developers.google.com/android/images" class="external">Google Developers 網站</a>å–å¾— Google è£ç½®éŸŒé«”映åƒæª”。
+</p>
+
+<h2 id="announcements">公告事項</h2>
+
+<p>我們除了修補 <a href="/security/bulletin/2018-12-01">2018 å¹´ 12 月 Android 安全性公告</a>中所列出的安全性æ¼æ´žå¤–,也é‡å°ä¸‹æ–‡åˆ—出的 Google è£ç½®çš„安全性æ¼æ´žæ供修補程å¼ã€‚我們的åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°é€™äº›å•é¡Œçš„相關通知,方便他們將相關內容ç´å…¥å…¶è£ç½®æ›´æ–°ä¸­ã€‚
+</p>
+
+<h2 id="security-patches">安全性修補程å¼</h2>
+<p>
+我們ä¾ç…§è³‡å®‰å•é¡Œæœ¬èº«æ‰€å½±éŸ¿çš„元件將å„é …æ¼æ´žåˆ†é–€åˆ¥é¡žï¼Œå¦å¤–也附上了å•é¡Œèªªæ˜Žå’Œä¸€ä»½ CVE 資訊表,其中包括了相關åƒè€ƒè³‡æ–™ã€<a href="#type">æ¼æ´žé¡žåž‹</a>ã€<a href="/security/overview/updates-resources#severity">åš´é‡ç¨‹åº¦</a>,以åŠæ›´æ–°çš„ Android 開放原始碼計劃 (AOSP) 版本 (在é©ç”¨æƒ…æ³ä¸‹)。å‡å¦‚相關錯誤有公開變更,該錯誤 ID 會連çµåˆ°ç›¸å°æ‡‰çš„變更 (例如 Android 開放原始碼計劃變更清單)。如果單一錯誤有多項相關變更,您å¯ä»¥é€éŽè©²éŒ¯èª¤ ID 後é¢çš„編號連çµé–‹å•Ÿé¡å¤–çš„åƒè€ƒè³‡æ–™ã€‚</p>
+
+<h3 id="qualcomm-components">Qualcomm 元件</h3>
+
+<table>
+<colgroup><col width="21%" />
+<col width="21%" />
+<col width="14%" />
+<col width="14%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>CVE</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>é¡žåž‹</th>
+ <th>åš´é‡ç¨‹åº¦</th>
+ <th>元件</th>
+ </tr>
+ <tr>
+ <td>CVE-2018-11987</td>
+ <td>A-70638103<br />
+<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=5e9ffcfa152ecb2832990c42fcd8a0f2e63c2c04">
+QC-CR#2258691</a></td>
+ <td>EoP</td>
+ <td>中</td>
+ <td>ION</td>
+ </tr>
+</tbody></table>
+
+<h2 id="functional-patches">功能修補程å¼</h2>
+
+<p>這些功能修補程å¼çš„目的在於解決å—影響 Pixel è£ç½®çš„功能å•é¡Œï¼Œèˆ‡ Pixel è£ç½®çš„安全性無關。下表列出的修補程å¼å…§å®¹åŒ…括相關的åƒè€ƒè³‡æ–™ã€å—影響類別,以åŠå—影響的è£ç½®ã€‚</p>
+
+<table>
+<colgroup><col width="15%" />
+<col width="15%" />
+<col width="40%" />
+<col width="30%" />
+ </colgroup><tbody><tr>
+ <th>åƒè€ƒè³‡æ–™</th>
+ <th>類別</th>
+ <th>改善項目</th>
+ <th>è£ç½®</th>
+ </tr>
+ <tr>
+ <td>A-117522738</td>
+ <td>效能</td>
+ <td>改善特定情æ³ä¸‹çš„記憶體效能</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-110969183</td>
+ <td>相機</td>
+ <td>改善相機的æ‹ç…§æ•ˆèƒ½</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111008450</td>
+ <td>Pixel Stand</td>
+ <td>æ高è£ç½®åœ¨ä½¿ç”¨ Pixel Stand 時的通知å¯è¦‹åº¦</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112376366</td>
+ <td>Android Auto</td>
+ <td>改善 Android Auto 相容性</td>
+ <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115666282</td>
+ <td>相機</td>
+ <td>調整自動å°ç„¦è¡Œç‚º</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-115624433</td>
+ <td>Pixel Stand</td>
+ <td>改善使用 Pixel Stand 時的啟動字詞效能</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-116758282</td>
+ <td>螢幕</td>
+ <td>改善æŒçºŒå¾…機螢幕的觸發æ¢ä»¶</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111964925</td>
+ <td>音訊</td>
+ <td>改善 USB-C 音訊é…件åµæ¸¬æ•ˆèƒ½</td>
+ <td>Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111716107</td>
+ <td>è—牙</td>
+ <td>調整切æ›è—牙時的音é‡è¡Œç‚º</td>
+ <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111159723</td>
+ <td>Android Auto</td>
+ <td>改善在特定車輛上使用 Android Auto 時的音訊效能</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-112228430</td>
+ <td>媒體</td>
+ <td>改善特定媒體應用程å¼çš„ HDR 色彩輪廓</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-113151604</td>
+ <td>相機</td>
+ <td>改善相機快門效能</td>
+ <td>Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+ <tr>
+ <td>A-111277984</td>
+ <td>效能</td>
+ <td>改善使用è—牙時的解鎖效能</td>
+ <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td>
+ </tr>
+</tbody></table>
+
+<h2 id="common-questions-and-answers">常見å•é¡Œèˆ‡è§£ç­”</h2>
+<p>
+如果您在閱讀這篇公告後有任何疑å•ï¼Œå¯åƒè€ƒæœ¬ç¯€çš„常見å•ç­”。
+</p>
+<p>
+<strong>1. 如何判斷我目å‰çš„è£ç½®è»Ÿé«”版本是å¦å·²ä¿®æ­£é€™äº›å•é¡Œï¼Ÿ
+</strong>
+</p>
+<p>
+2018-12-05 之後的安全性修補程å¼ç­‰ç´šå®Œå…¨è§£æ±ºäº†èˆ‡ 2018-12-05 安全性修補程å¼ç­‰ç´šåŠæ‰€æœ‰å…ˆå‰ä¿®è£œç¨‹å¼ç­‰ç´šç›¸é—œçš„å•é¡Œã€‚è«‹åƒé–± <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Pixel 與 Nexus 更新時間表</a>中的æ“作說明,瞭解如何查看è£ç½®çš„安全性修補程å¼ç­‰ç´šã€‚
+</p>
+<p id="type">
+<strong>2.「類型ã€<em></em>欄中的項目代表什麼æ„義?</strong>
+</p>
+<p>
+在資安æ¼æ´žè©³æƒ…表格中,「類型ã€<em></em>欄中的項目代表的是安全性æ¼æ´žçš„類別。
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>縮寫</th>
+ <th>定義</th>
+ </tr>
+ <tr>
+ <td>RCE</td>
+ <td>é ç«¯ç¨‹å¼ç¢¼åŸ·è¡Œ</td>
+ </tr>
+ <tr>
+ <td>EoP</td>
+ <td>權é™å‡ç´š</td>
+ </tr>
+ <tr>
+ <td>ID</td>
+ <td>資訊外洩</td>
+ </tr>
+ <tr>
+ <td>DoS</td>
+ <td>阻斷æœå‹™</td>
+ </tr>
+ <tr>
+ <td>ç„¡</td>
+ <td>未分類</td>
+ </tr>
+</tbody></table>
+<p>
+<strong>3.「åƒè€ƒè³‡æ–™ã€<em></em>欄底下列出的識別碼代表什麼æ„義?</strong>
+</p>
+<p>
+資安æ¼æ´žè©³æƒ…表格中「åƒè€ƒè³‡æ–™ã€<em></em>欄底下的項目å¯èƒ½æœƒåŒ…å«ä¸€å€‹å‰ç½®å­—串,用以表示該åƒè€ƒè³‡æ–™å€¼æ‰€å±¬çš„機構或公å¸ã€‚
+</p>
+<table>
+ <colgroup><col width="25%" />
+ <col width="75%" />
+ </colgroup><tbody><tr>
+ <th>å‰ç½®å­—串</th>
+ <th>åƒè€ƒè³‡æ–™</th>
+ </tr>
+ <tr>
+ <td>A-</td>
+ <td>Android 錯誤 ID</td>
+ </tr>
+ <tr>
+ <td>QC-</td>
+ <td>Qualcomm åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+ <tr>
+ <td>M-</td>
+ <td>MediaTek åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+ <tr>
+ <td>N-</td>
+ <td>NVIDIA åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+ <tr>
+ <td>B-</td>
+ <td>Broadcom åƒè€ƒç·¨è™Ÿ</td>
+ </tr>
+</tbody></table>
+<p id="asterisk">
+<strong>4.「åƒè€ƒè³‡æ–™ã€<em></em>欄中 Android 錯誤 ID æ—邊的星號 (*) 代表什麼æ„義?</strong>
+</p>
+<p>
+在「åƒè€ƒè³‡æ–™ã€<em></em>欄中 Android 錯誤 ID æ—邊標上星號 (*) 代表該å•é¡Œä¸¦æœªå…¬é–‹ï¼Œç›¸é—œçš„更新通常是直接整åˆåœ¨æœ€æ–°çš„ Pixel/Nexus è£ç½®å°ˆç”¨é©…動程å¼çš„安è£æª”中。您å¯ä»¥å‰å¾€ <a href="https://developers.google.com/android/drivers" class="external">Google Developers 網站</a>下載這些驅動程å¼ã€‚
+</p>
+<p>
+<strong>5. 為什麼安全性æ¼æ´žæœƒåˆ†åˆ¥åˆŠè¼‰åœ¨é€™ä»½å®‰å…¨æ€§å…¬å‘Šå’Œ Android 安全性公告?</strong>
+</p>
+<p>
+為了宣告 Android è£ç½®æœ€æ–°çš„安全性修補程å¼ç­‰ç´šï¼Œæˆ‘們必須先在 Android 安全性公告中刊載相關的安全性æ¼æ´žã€‚其他安全性æ¼æ´ž (例如本安全性公告所刊載的安全性æ¼æ´ž) 並未強制è¦å®šå®£å‘Šå®‰å…¨æ€§ä¿®è£œç¨‹å¼ç­‰ç´šã€‚
+</p>
+<h2 id="versions">版本</h2>
+<table>
+ <colgroup><col width="25%" />
+ <col width="25%" />
+ <col width="50%" />
+ </colgroup><tbody><tr>
+ <th>版本</th>
+ <th>日期</th>
+ <th>附註</th>
+ </tr>
+ <tr>
+ <td>1.0</td>
+ <td>2018 年 12 月 3 日</td>
+ <td>發佈公告。</td>
+ </tr>
+</tbody></table>
+
+</body></html> \ No newline at end of file