diff options
author | Mark Hecomovich <mheco@google.com> | 2018-11-27 19:17:50 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-27 19:17:50 +0000 |
commit | 0929a40f7786a1f574c202f8bf01bf38fc5bdc03 (patch) | |
tree | 8fbf6e2601385c1bbc6f7fe46e7c4e4b663f5a91 | |
parent | ef9d83d7f86c7f2bf6c4cf2967abb3dfea7e8636 (diff) | |
parent | 179abc8d13154ca5242e77a80145c479a9548e9d (diff) | |
download | source.android.com-nougat-iot-release.tar.gz |
Merge "Docs: Changes to source.android.com"android-o-mr1-iot-release-1.0.7android-n-iot-release-ihome-igv1nougat-iot-release
129 files changed, 17574 insertions, 2236 deletions
diff --git a/en/_book.yaml b/en/_book.yaml index a2875e95..ada73e7a 100644 --- a/en/_book.yaml +++ b/en/_book.yaml @@ -58,7 +58,7 @@ upper_tabs: - name: Features contents: - include: /security/_toc-features.yaml - - name: Dynamic Analysis + - name: Testing contents: - include: /security/_toc-fuzz.yaml - name: Develop diff --git a/en/compatibility/cts/downloads.html b/en/compatibility/cts/downloads.html index 16798cde..6f3811d0 100644 --- a/en/compatibility/cts/downloads.html +++ b/en/compatibility/cts/downloads.html @@ -31,102 +31,102 @@ R<number> in the link name.</p> <h2 id="android-90">Android 9</h2> <p>Android 9 is the release of the development milestone code-named P. The source code for the following tests, including tests for instant apps, can be synced with the -'android-cts-9.0_r3' tag in the open-source tree.</p> +'android-cts-9.0_r4' tag in the open-source tree.</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 Compatibility Test Suite (CTS) - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-9.0_r4-linux_x86-arm.zip">Android +9.0 R4 Compatibility Test Suite (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 Compatibility Test Suite (CTS) - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-9.0_r4-linux_x86-x86.zip">Android +9.0 R4 Compatibility Test Suite (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 Verifier - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r4-linux_x86-arm.zip">Android +9.0 R4 CTS Verifier - 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 Verifier - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r4-linux_x86-x86.zip">Android +9.0 R4 CTS Verifier - 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 for Instant Apps - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r4-linux_x86-arm.zip">Android +9.0 R4 CTS for Instant Apps - 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 for Instant Apps - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r4-linux_x86-x86.zip">Android +9.0 R4 CTS for Instant Apps - x86</a></li> </ul> <h2 id="android-81">Android 8.1</h2> <p>Android 8.1 is the release of the development milestone code-named Oreo-MR1. The source code for the following tests can be synced with the -'android-cts-8.1_r10' tag in the open-source tree.</p> +'android-cts-8.1_r11' tag in the open-source tree.</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 Compatibility Test Suite (CTS) - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-8.1_r11-linux_x86-arm.zip">Android +8.1 R11 Compatibility Test Suite (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 Compatibility Test Suite (CTS) - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-8.1_r11-linux_x86-x86.zip">Android +8.1 R11 Compatibility Test Suite (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 Verifier - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r11-linux_x86-arm.zip">Android +8.1 R11 CTS Verifier - 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 Verifier - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r11-linux_x86-x86.zip">Android +8.1 R11 CTS Verifier - x86</a></li> </ul> <h2 id="android-80">Android 8.0</h2> <p>Android 8.0 is the release of the development milestone code-named Oreo. The source code for the following tests can be synced with the -'android-cts-8.0_r14' tag in the open-source tree.</p> +'android-cts-8.0_r15' tag in the open-source tree.</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 Compatibility Test Suite (CTS) - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-8.0_r15-linux_x86-arm.zip">Android +8.0 R15 Compatibility Test Suite (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 Compatibility Test Suite (CTS) - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-8.0_r15-linux_x86-x86.zip">Android +8.0 R15 Compatibility Test Suite (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 Verifier - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r15-linux_x86-arm.zip">Android +8.0 R15 CTS Verifier - 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 Verifier - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r15-linux_x86-x86.zip">Android +8.0 R15 CTS Verifier - x86</a></li> </ul> <h2 id="android-71">Android 7.1</h2> <p>Android 7.1 is the release of the development milestone code-named Nougat-MR1. The source code for the following tests can be synced with the -'android-cts-7.1_r22' tag in the open-source tree.</p> +'android-cts-7.1_r23' tag in the open-source tree.</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 Compatibility Test Suite (CTS) - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-7.1_r23-linux_x86-arm.zip">Android +7.1 R23 Compatibility Test Suite (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 Compatibility Test Suite (CTS) - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-7.1_r23-linux_x86-x86.zip">Android +7.1 R23 Compatibility Test Suite (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 Verifier - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r23-linux_x86-arm.zip">Android +7.1 R23 CTS Verifier - 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 Verifier - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r23-linux_x86-x86.zip">Android +7.1 R23 CTS Verifier - x86</a></li> </ul> <h2 id="android-70">Android 7.0</h2> <p>Android 7.0 is the release of the development milestone code-named Nougat. The source code for the following tests can be synced with the -'android-cts-7.0_r26' tag in the open-source tree.</p> +'android-cts-7.0_r27' tag in the open-source tree.</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 Compatibility Test Suite (CTS) - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-7.0_r27-linux_x86-arm.zip">Android +7.0 R27 Compatibility Test Suite (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 Compatibility Test Suite (CTS) - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-7.0_r27-linux_x86-x86.zip">Android +7.0 R27 Compatibility Test Suite (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 Verifier - ARM</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r27-linux_x86-arm.zip">Android +7.0 R27 CTS Verifier - 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 Verifier - x86</a></li> +href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r27-linux_x86-x86.zip">Android +7.0 R27 CTS Verifier - x86</a></li> </ul> <h2 id="android-60">Android 6.0</h2> diff --git a/en/compatibility/cts/images/buttons_connected.png b/en/compatibility/cts/images/buttons_connected.png Binary files differindex 2309a69b..a01cb729 100644 --- a/en/compatibility/cts/images/buttons_connected.png +++ b/en/compatibility/cts/images/buttons_connected.png diff --git a/en/compatibility/cts/images/buttons_not_recognized.png b/en/compatibility/cts/images/buttons_not_recognized.png Binary files differindex 9bdee4f4..53c47e70 100644 --- a/en/compatibility/cts/images/buttons_not_recognized.png +++ b/en/compatibility/cts/images/buttons_not_recognized.png diff --git a/en/compatibility/cts/images/buttons_recognized.png b/en/compatibility/cts/images/buttons_recognized.png Binary files differindex 84000404..167e2d5d 100644 --- a/en/compatibility/cts/images/buttons_recognized.png +++ b/en/compatibility/cts/images/buttons_recognized.png diff --git a/en/compatibility/cts/images/buttons_summary.png b/en/compatibility/cts/images/buttons_summary.png Binary files differindex 53f17f22..ca052f12 100644 --- a/en/compatibility/cts/images/buttons_summary.png +++ b/en/compatibility/cts/images/buttons_summary.png diff --git a/en/compatibility/cts/images/play_postconnect.png b/en/compatibility/cts/images/play_postconnect.png Binary files differindex a61706e0..631ccc4e 100644 --- a/en/compatibility/cts/images/play_postconnect.png +++ b/en/compatibility/cts/images/play_postconnect.png diff --git a/en/compatibility/cts/images/play_preconnect.png b/en/compatibility/cts/images/play_preconnect.png Binary files differindex 43f7e10b..cb506a8f 100644 --- a/en/compatibility/cts/images/play_preconnect.png +++ b/en/compatibility/cts/images/play_preconnect.png diff --git a/en/compatibility/cts/images/play_summary.png b/en/compatibility/cts/images/play_summary.png Binary files differindex 586f0433..fa7f6aa9 100644 --- a/en/compatibility/cts/images/play_summary.png +++ b/en/compatibility/cts/images/play_summary.png diff --git a/en/compatibility/cts/images/record_postconnect.png b/en/compatibility/cts/images/record_postconnect.png Binary files differindex d465474e..3f07146d 100644 --- a/en/compatibility/cts/images/record_postconnect.png +++ b/en/compatibility/cts/images/record_postconnect.png diff --git a/en/compatibility/cts/images/record_postconnect_running.png b/en/compatibility/cts/images/record_postconnect_running.png Binary files differnew file mode 100644 index 00000000..393f2237 --- /dev/null +++ b/en/compatibility/cts/images/record_postconnect_running.png diff --git a/en/compatibility/cts/images/record_preconnect.png b/en/compatibility/cts/images/record_preconnect.png Binary files differindex f6bf073b..11aaf85b 100644 --- a/en/compatibility/cts/images/record_preconnect.png +++ b/en/compatibility/cts/images/record_preconnect.png diff --git a/en/compatibility/cts/images/record_summary.png b/en/compatibility/cts/images/record_summary.png Binary files differindex 8d184c28..5240ba63 100644 --- a/en/compatibility/cts/images/record_summary.png +++ b/en/compatibility/cts/images/record_summary.png diff --git a/en/compatibility/cts/images/wfov-cad-wfov-box.png b/en/compatibility/cts/images/wfov-cad-wfov-box.png Binary files differindex e5d75aab..52d5f545 100644 --- a/en/compatibility/cts/images/wfov-cad-wfov-box.png +++ b/en/compatibility/cts/images/wfov-cad-wfov-box.png diff --git a/en/compatibility/cts/usb-audio.html b/en/compatibility/cts/usb-audio.html index bf3c9f7c..51138213 100644 --- a/en/compatibility/cts/usb-audio.html +++ b/en/compatibility/cts/usb-audio.html @@ -1,10 +1,11 @@ <html devsite> - <head> - <title>USB Audio CTS Verifier Tests</title> - <meta name="project_path" value="/_project.yaml" /> - <meta name="book_path" value="/_book.yaml" /> - </head> - <body> +<head> + <title>USB Audio CTS Verifier Tests</title> + <meta name="project_path" value="/_project.yaml" /> + <meta name="book_path" value="/_book.yaml" /> +</head> + +<body> <!-- Copyright 2017 The Android Open Source Project @@ -21,425 +22,578 @@ limitations under the License. --> -<p> -Several <a href="/compatibility/cts/">Android Compatibility Test Suite (CTS)</a> -tests for <a href="/devices/audio/usb">Android USB audio</a> require human -intervention and the physical connection of USB audio peripherals. For these, -additional CTS Verifier tests have been implemented. -The requirements and protocols for these tests are explained in this document. -</p> - -<h2 id="nomenclature">Nomenclature</h2> - -<p> -Throughout this document, the term "device" and "peripheral" are used in a very -precise manner: -</p> -<ul> -<li><em>Device</em> refers to the Android device.</li> -<li><em>Peripheral</em> is used to denote an external USB audio peripheral -connected to the Android device.</li> -</ul> - -<h2 id="recommended-peripherals">Mandated peripherals</h2> - -<p> -In order for the USB audio CTS Verifier Tests to know the attributes and -capabilities they are verifying, it is necessary to specify a set of known -peripherals to test against. For this reason, specific brands and types are -mandated below. Successful completion of the tests requires one peripheral of -each category of peripherals specified below. Use of other types will cause the -tests to fail. -</p> - -<h3 id="usb-audio-interface">USB audio interface</h3> - -<p>Use one of the peripherals here to conduct the USB Audio Peripheral -Attributes test, Play test, and Record test:</p> - -<ul> - <li><a href="http://www.presonus.com/products/audiobox-22VSL">Presonus AudioBox -22VSL</a></li> - <li><a href="https://www.presonus.com/products/audiobox-usb">Presonus AudioBox -USB</a></li> -</ul> - -<table> - <tr> - <td width="50%">A USB audio interface (A PreSonus AudioBox 22VSL) - </td> - <td width="50%"><img src="/compatibility/cts/images/usb_audio_interface.png" alt="USB audio interface" width="300" - id="usb_audio_interface" /></td> - </tr> -</table> - -<h3 id="usb-headset">USB headset</h3> - -<p>You may use the digital <a -href="https://www.amazon.com/gp/product/B06VVGR2XM/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1">JBL -Reflect Aware C in-ear Sport Headphones</a> to conduct the USB Audio Peripheral Play test and Headset -buttons test without an adapter.</p> - -<p>Otherwise, use one of the USB-C digital to 3.5mm audio jack adapters here: - -<ul> - <li><a href="https://store.google.com/us/product/usb_c_headphone_adapter">Google USB-C - digital to 3.5 mm headphone adapter</a></li> - <li><a - href="https://www.htc.com/us/accessories-b/#!pid=htc-u11&acc=usb-c-digital-to-3-5mm-htc-u11">HTC - USB-C digital to 3.5mm audio jack adapter</a></li> -</ul> - -<p>Connect one of the adapters above with one of these Android-compatible -analog headsets to conduct the USB Audio Peripheral Play test and Headset -buttons test:</p> - -<ul> - <li><a - href="https://www.bose.com/en_us/products/headphones/earphones/soundsport-in-ear-headphones-samsung-devices.html">Bose - SoundSport® in-ear headphones – Samsung and Androidâ„¢ devices</a></li> - <li><a - href="https://www.urbanears.com/ue_us_en/reimers#reimers-black-belt">UrbanEars - Reimers Black Belt made for Android</a></li> -</ul> - -<table> - <tr> - <td width="50%">A USB headset - </td> - <td width="50%"><img src="/compatibility/cts/images/usb_headset.png" alt="USB headset" width="300" - id="usb_headset" /></td> - </tr> -</table> -<h3 id="peripheral-profiles">Peripheral profiles</h3> + <p>Several <a href="/compatibility/cts/">Android Compatibility Test Suite + (CTS)</a> tests for <a href="/devices/audio/usb">Android USB audio</a> + require the physical connection of USB audio + peripherals. For these, additional CTS Verifier tests have been implemented.</p> -<p> -The USB Audio CTS Verifier Tests "know about" these recommended peripherals -through built-in profiles provided by Android that describe the attributes and -capabilities of a peripheral. When the peripheral is connected to the Android -device under test, the correct profile is automatically selected. -</p> -<h2 id="required-additional-hardware">Required additional hardware</h2> + <h2 id="nomenclature">Nomenclature</h2> -<p>Patch cables (for loopback) -2 short ¼" male to ¼" male patch cables to -connect the outputs to the inputs of the USB</p> -<table> - <tr> - <td width="50%"> - ¼" male to ¼" male patch cables - </td> - <td width="50%"><img src="/compatibility/cts/images/patch_cables.png" alt="patch cables" width="300" - id="patch_cables" /></td> - </td> - </tr> -</table> - -<p>USB peripheral cable</p> - -<table> - <tr> - <td width="50%">This cable (which typically comes with the peripheral), connects the USB -audio peripheral to the host device - </td> - </td> - <td width="50%"><img src="/compatibility/cts/images/peripheral_cable.png" alt="peripheral cable" width="300" - id="peripheral_cable" /></td> - </td> - </tr> -</table> - -<p>USB "On The Go" (OTG) adapter</p> - -<table> - <tr> - <td width="50%">A USB "On The Go" (OTG) adapter is required to physically connect the -peripheral to the Android device and indicate to the Android device that it -should assume the role of "host" - </td> - </td> - <td width="50%"><img src="/compatibility/cts/images/otg_adapter.png" alt="OTG adapter" width="300" - id="otg_adapter" /></td> - </td> - </tr> -</table> - -<p>Analog headphones to monitor the output of the USB audio interface for the -Play test.</p> - -<table> - <tr> - <td width="50%">Set of analog headphones. - </td> - </td> - <td width="50%"><img src="/compatibility/cts/images/analog_headphones.png" alt="analog headphones" width="300" - id="analog_headphones" /></td> - </td> - </tr> -</table> - -<h2 id="tests">Tests</h2> - -<p> -In each test, indicate test success by clicking the <strong>test pass</strong> -(check mark) button. Otherwise, indicate test failure by clicking the -<strong>test fail</strong> (exclamation point) button. -</p> - -<h3 id="attributes-test">Attributes test</h3> - -<h4 id="abstract">Abstract</h4> - -<p> -This test verifies that the attributes (supported sample-rates, channel -configurations, sample formats…) match the set of a-priori known attributes of -the device. -</p> - -<h4 id="process">Process</h4> - -<p> -After invoking the test from the main menu, connect a USB audio peripheral. If -the attributes match, the <strong>test pass</strong> (check mark) button will be -enabled. Click the <strong>test pass</strong> button to indicate success. If the -attributes do not match, indicate test failure by clicking the <strong>test -fail</strong> (exclamation point) button. -</p> - -<table> - <tr> - <td width="50%">Select <em>USB Audio Peripheral Attributes Test</em>. - </td> - <td width="50%"><img src="/compatibility/cts/images/attributes_test.png" alt="attributes test" width="300" - id="attributes test" /></td> - </tr> - <tr> - <td width="50%">Summary of instructions is displayed - </td> - <td width="50%"><img src="/compatibility/cts/images/attributes_summary.png" alt="attributes summary" width="300" - id="attributes_summary" /></td> - </tr> - <tr> - <td width="50%">Pre-connect screen - </td> - <td width="50%"><img src="/compatibility/cts/images/attributes_preconnect.png" alt="attributes - preconnect" width="300" - id="attributes_preconnect" /></td> - </tr> - <tr> - <td width="50%">USB audio peripheral connected to Android Device with peripheral cable -and OTG adapter - </td> - <td width="50%"><img src="/compatibility/cts/images/attributes_connected.png" alt="attributes connected" width="300" - id="attributes_connected" /></td> - </tr> - <tr> - <td width="50%">Post-connect screen - </td> - <td width="50%"><img src="/compatibility/cts/images/attributes_postconnect.png" alt="attributes post connection" width="300" - id="attributes_postconnect" /></td> - </tr> -</table> - -<h3 id="play-test">Play test</h3> - -<h4 id="abstract">Abstract</h4> - -<p> -This test verifies that audio playback is functioning. It does this by -generating a 1KHz test tone and presenting it in stereo (two-channels) to the -USB audio peripheral. -</p> - -<h4 id="process">Process</h4> - -<p> -After invoking the test from the main menu, connect the USB audio interface, -including the analog headset to the headset output jack on the interface (for -monitoring). -</p> - -<p> -Press the <strong>PLAY</strong> button. If the test tone is heard in both -channels of the headset, indicate test pass by clicking the <strong>test -pass</strong> (check mark) button. If either or both of the channels do not play -the tone, indicate test failure by clicking the <strong>test fail</strong> -(exclamation point) button. -</p> - -<h4 id="notes">Notes</h4> - -<table> - <tr> - <td width="50%">Select <em>USB Audio Peripheral Play Test</em> - </td> - <td width="50%"><img src="/compatibility/cts/images/play_test.png" alt="play test" width="300" - id="play_test" /></td> - </tr> - <tr> - <td width="50%">Summary of instructions is displayed - </td> - <td width="50%"><img src="/compatibility/cts/images/play_summary.png" alt="play summary" width="300" - id="play_summary" /></td> - </tr> - <tr> - <td width="50%">Pre-connect screen - </td> - <td width="50%"><img src="/compatibility/cts/images/play_preconnect.png" alt="play preconnect" width="300" - id="play_preconnect" /></td> - </tr> - <tr> - <td width="50%">Connect the USB audio peripheral to the Android Device -<p> -The headphones are connected to the headphone output jack on the USB audio -interface for monitoring - </td> - <td width="50%"><img src="/compatibility/cts/images/play_connected.png" alt="play connected" width="300" - id="play_connected" /></td> - </tr> - <tr> - <td width="50%">Post-connect screen - </td> - <td width="50%"><img src="/compatibility/cts/images/play_postconnect.png" alt="play post connection" width="300" - id="play_postconnect" /></td> - </tr> -</table> + <p>Throughout this document, the term "device" and "peripheral" are used in a + very precise manner:</p> -<h3 id="record-loopback-test">Record (loopback) test</h3> + <ul> + <li><em>Device</em> refers to the Android device.</li> -<h4 id="abstract">Abstract</h4> -<p> -This test verifies that audio recording is functioning. It does this by -generating a tone at the outputs of the USB audio interface, which is then -routed via patch cords to the inputs of the USB audio peripheral. -</p> + <li><em>Peripheral</em> refers to an external USB audio peripheral + connected to the Android device.</li> + </ul> -<h4 id="process">Process</h4> -<p> -After invoking the test from the main menu, connect the USB audio interface. -Connect the analog outputs to the analog inputs with patch cables. Press the -<strong>RECORD LOOPBACK</strong> button. If both the channels of the recorded -test tone are shown in the view below, indicate test pass by clicking the -<strong>test pass</strong> (check mark) button. If either or both of the -channels does not display, indicate test failure by clicking the <strong>test -fail</strong> (exclamation point) button. -</p> + <h2 id="recommended-peripherals">Mandated peripherals</h2> -<h4 id="notes">Notes</h4> -<p> -Ensure positive connection of both input and output jacks on the peripheral. It -will be necessary to adjust the input levels to correctly display the recorded -signal. -</p> + <p>For the USB audio CTS Verifier Tests to know the attributes and + capabilities they are verifying, it is necessary to specify a set of known + peripherals to test against. For this reason, specific brands and types are + mandated below. Some tests require a specifically mandated peripheral. Other + tests simply require a USB audio peripheral that meets the requirements of + those specific test. Note that any of the peripherals mandated for the USB + Audio Peripherals Attributes Test will be compatible with the requirements + for the Play and Record tests.</p> -<table> - <tr> - <td width="50%">Select <em>USB Audio Peripheral Record Test</em> - </td> - <td width="50%"><img src="/compatibility/cts/images/record_test.png" alt="record test" width="300" - id="record_test" /></td> - </tr> - <tr> - <td width="50%">Summary of instructions is displayed - </td> - <td width="50%"><img src="/compatibility/cts/images/record_summary.png" alt="record summary" width="300" - id="record_summary" /></td> - </tr> - <tr> - <td width="50%">Pre-connect screen - </td> - <td width="50%"><img src="/compatibility/cts/images/record_preconnect.png" alt="record preconnect" width="300" - id="record_preconnect" /></td> - </tr> - <tr> - <td width="50%">USB audio Interface with loopback connected to Android device - </td> - <td width="50%"><img src="/compatibility/cts/images/record_connected.png" alt="record connected" width="300" - id="record_connected" /></td> - </tr> - <tr> - <td width="50%">Connections on the back of the USB audio interface - </td> - <td width="50%"><img src="/compatibility/cts/images/record_connected_back.png" alt="record connected in back" width="300" - id="record_connected_back" /></td> - </tr> - <tr> - <td width="50%">Connections on the front of the USB audio interface - </td> - <td width="50%"><img src="/compatibility/cts/images/record_connected_front.png" alt="record connected in front" width="300" - id="record_connected_front" /></td> - </tr> - <tr> - <td width="50%">Post-connect screen, with record test running - </td> - <td width="50%"><img src="/compatibility/cts/images/record_postconnect.png" alt="record post connection" width="300" - id="record_postconnect" /></td> - </tr> -</table> -<h3></h3> -<h3 id="headset-buttons-test">Headset buttons test</h3> -<h4 id="abstract">Abstract</h4> -<p> -This test verifies the <strong>media/transport </strong>buttons on the -recommended headset are correctly recognized. -</p> -<h4 id="process">Process</h4> -<p> -After invoking the test from the main menu, connect the USB headset peripheral. -Press each <strong>media/transport</strong> (play, pause, volume up & volume -down) button on the headset. As each is recognized, it will be recognized in the -test panel. When all buttons have been recognized, the <strong>test -pass</strong> (check mark) button will be enabled. Click the <strong>test -pass</strong> button to indicate success. If the full set of buttons is not -recognized, indicate test failure by clicking the <strong>test fail</strong> -(exclamation point) button. -</p> -<h4 id="notes">Notes</h4> -<table> - <tr> - <td width="50%">The USB headset peripheral connected to the Android device -<p> -Note the OTG adapter - </td> - <td width="50%"><img src="/compatibility/cts/images/buttons_connected.png" alt="buttons connected" width="300" - id="buttons_connected" /></td> - </tr> - <tr> - <td width="50%">Select <em>USB Audio Peripheral Buttons Test</em> - </td> - <td width="50%"><img src="/compatibility/cts/images/buttons_test.png" alt="buttons test" width="300" - id="buttons_test" /></td> - </tr> - <tr> - <td width="50%">Summary of instructions is displayed - </td> - <td width="50%"><img src="/compatibility/cts/images/buttons_summary.png" alt="buttons summary" width="300" - id="buttons_summary" /></td> - </tr> - <tr> - <td width="50%">Peripheral connected, but no buttons recognized (yet) -<p> -Note that the expected (buttons which are known to the device profile) are -indicated with with white text; those that are not part of the test peripheral -are displayed in grey text - </td> - <td width="50%"><img src="/compatibility/cts/images/buttons_not_recognized.png" alt="buttons not recognized" width="300" - id="buttons not recognized" /></td> - </tr> + + <h3 id="usb-audio-interface">USB audio interface</h3> + + + <p>Use one of the peripherals here to conduct the USB Audio Peripheral + Attributes test. They can also be used for the Play test and Record test.</p> + + + <ul> + <li><a href="http://www.presonus.com/products/audiobox-22VSL" class="external">Presonus + AudioBox 22VSL</a> + </li> + + + <li><a href="https://www.presonus.com/products/audiobox-usb" class="external">Presonus + AudioBox USB</a> + </li> + </ul> + + + <p>Note that these two peripherals have been discontinued by the manufacturer + and will be deprecated in a future CTS Verifier release.</p> + + + <ul> + <li><a href= + "https://focusrite.com/usb-audio-interface/scarlett/scarlett-2i4" class="external"> + Focusrite Scarlett 2i4</a> + </li> + + + <li><a href= + "http://www.musictribe.com/Categories/Behringer/Computer-Audio/Interfaces/UMC204HD/p/P0BK0" class="external"> + Behringer UMC204HD</a> + </li> + + + <li><a href= + "https://www.roland.com/us/products/rubix24/" class="external"> + Roland Rubix 24</a> + </li> + + + <li><a href= + "https://www.presonus.com/products/AudioBox-USB-96" class="external"> + PreSonus AudioBox 96</a> + </li> + </ul> + + + <table> + <tr> + <td width="50%">A USB audio interface (A PreSonus AudioBox 22VSL).</td> + + <td width="50%"><img src= + "/compatibility/cts/images/usb_audio_interface.png" alt= + "USB audio interface" width="300" id="usb_audio_interface"> + </td> + </tr> + </table> + + + <h3 id="usb-headset">USB headset</h3> + + + <p>The CTS Verifier USB Audio Buttons Test does not require a specific USB + headset peripheral. It can be an instance of either of the following:</p> + + + <ul> + <li><span style="color:#202124;">A USB Headset peripheral that supports the + <a href= + "/devices/accessories/headset/usb-headset-spec">Android + USB Headset Accessory Specification</a><span style="color:#202124;">. These + headset peripherals are often indicated by the manufacturer as "Made for + Android".</span></span> + </li> + + + <li>An analog headset which supports the + <a href= + "/devices/accessories/headset/usb-headset-spec">Android + USB Headset Accessory Specification </a>connected to a USB to analog audio converter (such as the + <a href= + "https://store.google.com/us/product/usb_c_headphone_adapter" class="external">Google USB-C + digital to 3.5 mm headphone adapter</a> or <a href= + "https://www.htc.com/us/accessories-b/#!pid=htc-u11&acc=usb-c-digital-to-3-5mm-htc-u11" + class="external">HTC USB-C digital to 3.5mm audio jack adapter</a>). + <p>Known examples of compatible analog headset peripherals include the + <a href="https://www.bose.com/en_us/products/headphones/earphones/soundsport-in-ear-headphones-samsung-devices.html" + class="external"> + Bose SoundSport® in-ear headphones – Samsung and Androidâ„¢ devices</a>, and + the <a href= + "https://www.urbanears.com/ue_us_en/reimers#reimers-black-belt" class="external" >UrbanEars + Reimers Black Belt made for Android</a> headsets. These analog headsets + must be connected to the device USB port via a USB to Audio + converter.</p> + </li> + </ul> + + + <p>Note that in either case, the button must produce virtual key codes for all three of the + required buttons (volume up, volume down, play/pause) for the test to succeed. + Refer to the Software mapping section in <a href="/devices/accessories/headset/usb-headset-spec"> + Android USB Headset Accessory Specification</a> for the virtual key codes.</p> + + + <table> + <tr> + <td width="50%">A USB headset.</td> + + <td width="50%"><img src="/compatibility/cts/images/usb_headset.png" alt= + "USB headset" width="300" id="usb_headset"> + </td> + </tr> + </table> + + + <h2 id="required-additional-hardware">Required additional hardware</h2> + + + <p>Patch cables (for loopback) 2 short ¼" male to ¼" male patch cables to + connect the outputs to the inputs of the USB</p> + + + <table> + <tr> + <td width="50%">¼" male to ¼" male patch cables.</td> + + <td width="50%"><img src="/compatibility/cts/images/patch_cables.png" + alt="patch cables" width="300" id="patch_cables"> + </td> + </tr> + </table> + + + <p>USB peripheral cable</p> + + + <table> + <tr> + <td width="50%">This cable (which typically comes with the peripheral), + connects the USB audio peripheral to the host device.</td> + + <td width="50%"><img src="/compatibility/cts/images/peripheral_cable.png" + alt="peripheral cable" width="300" id="peripheral_cable"> + </td> + </tr> + </table> + + + <p>USB "On The Go" (OTG) adapter</p> + + + <table> + <tr> + <td width="50%">A USB "On The Go" (OTG) adapter is required to physically + connect the peripheral to the Android device and indicate to the Android + device that it should assume the role of "host".</td> + + <td width="50%"><img src="/compatibility/cts/images/otg_adapter.png" alt= + "OTG adapter" width="300" id="otg_adapter"> + </td> + </tr> + </table> + + + <p>Analog headphones to monitor the output of the USB audio interface for the + Play test.</p> + + + <table> + <tr> + <td width="50%">Set of analog headphones.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/analog_headphones.png" alt="analog headphones" + width="300" id="analog_headphones"> + </td> + </tr> + </table> + + + <h2 id="tests">Tests</h2> + + + <p>In each test, indicate test success by clicking the <strong>test + pass</strong> (check mark) button. Otherwise, indicate test failure by + clicking the <strong>test fail</strong> (exclamation point) button.</p> + + + <h3 id="attributes-test">Attributes test</h3> + + + <h4 id="abstract">Abstract</h4> + + + <p>This test verifies that the attributes (supported sample-rates, channel + configurations, sample formats, etc.) match the set of a-priori known attributes + of the device.</p> + + + <h4 id="process">Process</h4> + + + <p>After invoking the test from the main menu, connect a USB audio + peripheral. If the attributes match, the <strong>test pass</strong> (check + mark) button will be enabled.</p> + + + <table> + <tr> + <td width="50%">Select <em>USB Audio Peripheral Attributes + Test.</em></td> + + <td width="50%"><img src="/compatibility/cts/images/attributes_test.png" + alt="attributes test" width="300" id="attributes test"> + </td> + </tr> + + + <tr> + <td width="50%">Summary of instructions is displayed.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/attributes_summary.png" alt= + "attributes summary" width="300" id="attributes_summary"> + </td> + </tr> + + + <tr> + <td width="50%">Pre-connect screen.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/attributes_preconnect.png" alt= + "attributes preconnect" width="300" id="attributes_preconnect"> + </td> + </tr> + + + <tr> + <td width="50%">USB audio peripheral connected to Android Device with + peripheral cable and OTG adapter.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/attributes_connected.png" alt= + "attributes connected" width="300" id="attributes_connected"> + </td> + </tr> + + + <tr> + <td width="50%">Post-connect screen.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/attributes_postconnect.png" alt= + "attributes post connection" width="300" id="attributes_postconnect"> + </td> + </tr> + </table> + + + <h3 id="play-test">Play test</h3> + + + <h4 id="abstract">Abstract</h4> + + + <p>This test verifies that audio playback is functioning. It does this by + generating a 1KHz test tone and presenting it in stereo (two-channels) to the + USB audio peripheral.</p> + + + <h4 id="process">Process</h4> + + + <p>After invoking the test from the main menu, connect the USB audio + interface, including the analog headset, to the headset output jack on the + interface for monitoring.</p> + + + <p>Press the <strong>PLAY</strong> button. If the test tone is heard in both + channels of the headset, indicate test pass by clicking the <strong>test + pass</strong> (check mark) button. If either or both of the channels do not + play the tone, indicate test failure by clicking the <strong>test + fail</strong> (exclamation point) button.</p> + + + <h4 id="notes">Notes</h4> + + + <table> + <tr> + <td width="50%">Select <em>USB Audio Peripheral Play Test.</em></td> + + <td width="50%"><img src="/compatibility/cts/images/play_test.png" alt= + "play test" width="300" id="play_test"> + </td> + </tr> + + + <tr> + <td width="50%">Summary of instructions is displayed.</td> + + <td width="50%"><img src="/compatibility/cts/images/play_summary.png" + alt="play summary" width="300" id="play_summary"> + </td> + </tr> + + + <tr> + <td width="50%">Pre-connect screen.</td> + + <td width="50%"><img src="/compatibility/cts/images/play_preconnect.png" + alt="play preconnect" width="300" id="play_preconnect"> + </td> + </tr> + + + <tr> + <td width="50%"> + Connect the USB audio peripheral to the Android Device. + + <p>The headphones are connected to the headphone output jack on the USB + audio interface for monitoring.</p> + </td> + + <td width="50%"><img src="/compatibility/cts/images/play_connected.png" + alt="play connected" width="300" id="play_connected"> + </td> + </tr> + + + <tr> + <td width="50%">Post-connect screen.</td> + + <td width="50%"><img src="/compatibility/cts/images/play_postconnect.png" + alt="play post connection" width="300" id="play_postconnect"> + </td> + </tr> + </table> + + + <h3 id="record-loopback-test">Record (loopback) test</h3> + + + <h4 id="abstract">Abstract</h4> + + + <p>This test verifies that audio recording is functioning. It does this by + generating a tone at the outputs of the USB audio interface, which is then + routed via patch cords to the inputs of the USB audio peripheral.</p> + + + <h4 id="process">Process</h4> + + + <p>After invoking the test from the main menu, connect the USB audio + interface. Connect the analog outputs to the analog inputs with patch cables. + Press the <strong>RECORD LOOPBACK</strong> button. If both the channels of + the recorded test tone are shown in the view below, indicate test pass by + clicking the <strong>test pass</strong> (check mark) button. If either or + both of the channels does not display, indicate test failure by clicking the + <strong>test fail</strong> (exclamation point) button.</p> + + + <h4 id="notes">Notes</h4> + + + <p>Ensure positive connection of both input and output jacks on the + peripheral. It will be necessary to adjust the input levels to correctly + display the recorded signal.</p> + + + <table> + <tr> + <td width="50%">Select <em>USB Audio Peripheral Record Test.</em></td> + + <td width="50%"><img src="/compatibility/cts/images/record_test.png" alt= + "record test" width="300" id="record_test"> + </td> + </tr> + + + <tr> + <td width="50%">Summary of instructions is displayed.</td> + + <td width="50%"><img src="/compatibility/cts/images/record_summary.png" + alt="record summary" width="300" id="record_summary"> + </td> + </tr> + + + <tr> + <td width="50%">Pre-connect screen.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/record_preconnect.png" alt="record preconnect" + width="300" id="record_preconnect"> + </td> + </tr> + + + <tr> + <td width="50%">USB audio Interface with loopback connected to Android + device.</td> + + <td width="50%"><img src="/compatibility/cts/images/record_connected.png" + alt="record connected" width="300" id="record_connected"> + </td> + </tr> + + + <tr> + <td width="50%">Connections on the back of the USB audio interface.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/record_connected_back.png" alt= + "record connected in back" width="300" id="record_connected_back"> + </td> + </tr> + + + <tr> + <td width="50%">Connections on the front of the USB audio interface.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/record_connected_front.png" alt= + "record connected in front" width="300" id="record_connected_front"> + </td> + </tr> + + + <tr> + <td width="50%">Post-connect screen.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/record_postconnect.png" alt= + "record post connection" width="300" id="record_postconnect"> + </td> + </tr> <tr> - <td width="50%">Peripheral connected, and expected buttons recognized - </td> - <td width="50%"><img src="/compatibility/cts/images/buttons_recognized.png" alt="buttons recognized" width="300" - id="buttons recognized" /></td> - </tr> -</table> + <td width="50%">Post-connect screen, with record test running.</td> + + <td width="50%"><img src= + "/compatibility/cts/images/record_postconnect_running.png" alt= + "record postconnect running" width="300" id="attributes_postconnect_running."> + </td> + </tr> + </table> + + + <h3 id="headset-buttons-test">Headset buttons test</h3> + + + <h4 id="abstract">Abstract</h4> + + + <p>This test verifies the <strong>media/transport</strong> buttons on the + recommended headset are correctly recognized.</p> + + + <h4 id="process">Process</h4> + + + <p>After invoking the test from the main menu, connect the USB headset + peripheral. Press each <strong>media/transport</strong> (play, pause, volume + up & volume down) button on the headset. As each is recognized, it will be + recognized in the test panel. When all buttons have been recognized, the + <strong>test pass</strong> (check mark) button will be enabled. Click the + <strong>test pass</strong> button to indicate success. If the full set of + buttons is not recognized, indicate test failure by clicking the <strong>test + fail</strong> (exclamation point) button.</p> + + + <h4 id="notes">Notes</h4> + + + <table> + <tr> + <td width="50%"> + The USB headset peripheral connected to the Android device. + + <p>Note the OTG adapter.</p> + </td> + + <td width="50%"><img src= + "/compatibility/cts/images/buttons_connected.png" alt="buttons connected" + width="300" id="buttons_connected"> + </td> + </tr> + + + <tr> + <td width="50%">Select <em>USB Audio Peripheral Buttons Test.</em></td> + + <td width="50%"><img src="/compatibility/cts/images/buttons_test.png" + alt="buttons test" width="300" id="buttons_test"> + </td> + </tr> + + + <tr> + <td width="50%">Summary of instructions is displayed.</td> + + <td width="50%"><img src="/compatibility/cts/images/buttons_summary.png" + alt="buttons summary" width="300" id="buttons_summary"> + </td> + </tr> + + + <tr> + <td width="50%"> + Peripheral connected, but no buttons recognized (yet). + + <p>Note that the expected (buttons which are known to the device + profile) are indicated with white text; those that are not part of + the test peripheral are displayed in grey text.</p> + </td> + + <td width="50%"><img src= + "/compatibility/cts/images/buttons_not_recognized.png" alt= + "buttons not recognized" width="300" id="buttons not recognized"> + </td> + </tr> + + + <tr> + <td width="50%">Peripheral connected, and expected buttons + recognized.</td> + <td width="50%"><img src= + "/compatibility/cts/images/buttons_recognized.png" alt= + "buttons recognized" width="300" id="buttons recognized"> + </td> + </tr> + </table> </body> </html> diff --git a/en/compatibility/tests/development/jar.md b/en/compatibility/tests/development/jar.md index 6ec60f47..2b66c18e 100644 --- a/en/compatibility/tests/development/jar.md +++ b/en/compatibility/tests/development/jar.md @@ -33,7 +33,7 @@ copy and adapt to your needs: [platform_testing/tests/example/jarhosttest/Android.bp](https://android.googlesource.com/platform/platform_testing/+/master/tests/example/jarhosttest/Android.bp) This corresponds to the actual test code found at: -[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](platform_testing/+/master/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java) +[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](https://android.googlesource.com/platform/platform_testing/+/master/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java) A snapshot of the Blueprint file is included here for convenience: diff --git a/en/devices/tech/admin/testing-provision.html b/en/devices/tech/admin/testing-provision.html index 0891ffa4..ddd83775 100644 --- a/en/devices/tech/admin/testing-provision.html +++ b/en/devices/tech/admin/testing-provision.html @@ -23,29 +23,32 @@ -<p>The Android for Work (AfW) Test Harness is a test suite for validating the -AfW compatibility of Android devices. It includes support apps, test cases, -configuration files, and a test runner (<code>afw-test-tradefed</code>) built on -<code>cts-tradefed</code>. You should setup and run the AfW Test Harness after -completing <a href="/devices/tech/admin/provision.html">Provisioning -for Device Administration</a>.</p> - -<p class=note><strong>Note:</strong> Building and running the AfW Test Harness +<p>The Android Enterprise (AE) Test Harness is a test suite for validating the +enterprise compatibility of Android devices. It includes support apps, test +cases, configuration files, and a test runner (<code>afw-test-tradefed</code>) +built on <code>cts-tradefed</code>. You should setup and run the AE Test Harness +after completing <a href="/devices/tech/admin/provision.html">Provisioning for +Device Administration</a>.</p> + +<p class=note><strong>Note:</strong> Building and running the AE Test Harness is similar to building and running the Android <a href="/compatibility/cts/index.html">Compatibility Test Suite (CTS)</a>.</p> +<p>Many of the tools, directories, and branch names include the <em>AfW</em> +label. Android for Work (AfW) is a previous name for Android's enterprise +features.</p> + <h2 id=setup_env>Setting up a development environment</h2> -<p>The development environment for the AfW Test Harness is similar to Android -OS. Follow the steps in -<a href="/setup/requirements.html">Requirements</a> to set up a -development machine.</p> +<p>The development environment for the AE Test Harness is similar to Android OS. +Follow the steps in <a href="/setup/requirements.html">Requirements</a> to set up +a development machine.</p> <h2 id=download_source>Downloading source code</h2> -<p>Download the AfW Test Harness source code using the steps in -<a href="/setup/downloading.html">Downloading the Source</a>. The AfW +<p>Download the AE Test Harness source code using the steps in +<a href="/setup/downloading.html">Downloading the Source</a>. The AE Test Harness source code is in the <code>./test/AfwTestHarness</code> project. -The branch name determines the version of AfW Test Harness to download (each -Android platform has a separate version of AfW Test Harness). For Android 7.0, +The branch name determines the version of AE Test Harness to download (each +Android platform has a separate version of AE Test Harness). For Android 7.0, the branch name is <code>afw-test-harness-nougat-dev</code>. To initialize the repo and download source code for this branch, use:</p> @@ -88,7 +91,7 @@ the corresponding tag. Available branches include:</p> with the source code.</p> <h3 id=view_studio>Viewing in Android Studio</h3> -<p>To view and edit AfW source code in Android Studio:</p> +<p>To view and edit the source code in Android Studio:</p> <ol> <li>Run the following commands <pre class="devsite-click-to-copy"> @@ -99,9 +102,9 @@ with the source code.</p> <li>In Android Studio, open <code>android.ipr</code>.</li> </ol> -<p>The AfW Test Harness source code is in <code>test/AfwTestHarness</code>.</p> +<p>The AE Test Harness source code is in <code>test/AfwTestHarness</code>.</p> -<h2 id=config_harness>Configuring the AfW Test Harness</h2> +<h2 id=config_harness>Configuring the AE Test Harness</h2> <p>You can customize the harness by configuring <code>test/AfwTestHarness/afw-test.props</code>. To run the harness successfully, complete the following steps:</p> @@ -121,12 +124,12 @@ with the following properties: work_account_username work_account_password </pre> -<p>The AfW Test Harness uses Test DPC to test provisioning flows, so accounts +<p>The AE Test Harness uses Test DPC to test provisioning flows, so accounts <strong>must</strong> bind to Test DPC to run the test harness.</p> </li> </ol> -<h2 id=build_harness>Building the AfW Test Harness</h2> +<h2 id=build_harness>Building the AE Test Harness</h2> <p>Initialize the build configuration using:</p> <pre class="devsite-click-to-copy"> <code class="devsite-terminal">source build/envsetup.sh</code> @@ -145,8 +148,8 @@ harness. This directory is also zipped into a file (<code>out/host/linux-x86/afw-th/android-afw-test-harness.zip</code>) for distribution.</p> -<h2 id=run_harness>Running the AfW Test Harness</h2> -<p>Use the following steps to run the AfW Test Harness:</p> +<h2 id=run_harness>Running the AE Test Harness</h2> +<p>Use the following steps to run the AE Test Harness:</p> <ol> <li>In your build environment, launch the test runner using: <pre class="devsite-terminal devsite-click-to-copy"> @@ -194,7 +197,7 @@ To view all packages, use the command <code>list packages</code>. For more options, use the command <code>run cts --help</code>.</li> </ol> -<h2 id=debug_harness>Debugging the AfW Test Harness</h2> +<h2 id=debug_harness>Debugging the AE Test Harness</h2> <p>Run all commands in the afw-test-tradefed console (<code>cts-tf</code>), which you can launch by running <code>afw-test-tradefed</code>.</p> <ul> @@ -247,8 +250,8 @@ out/host/linux-x86/afw-th/android-cts/repository/logs/<em>start-time</em>/host_l </li> </ul> </li> -<li>A test package automates an AfW provisioning flow by going through UI pages -and recording a navigation log in the device logcat file for each page. +<li>A test package automates an enterprise provisioning flow by going through UI +pages and recording a navigation log in the device logcat file for each page. Example: <code>afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage</code> <br>UI pages for test package diff --git a/en/devices/tech/config/perms-whitelist.html b/en/devices/tech/config/perms-whitelist.html index 918f89eb..8f91f9fa 100644 --- a/en/devices/tech/config/perms-whitelist.html +++ b/en/devices/tech/config/perms-whitelist.html @@ -31,6 +31,14 @@ permissions. </p> +<aside class="note"> + <strong>Note:</strong> + Whitelisting is required only for + <a href="https://developer.android.com/guide/topics/manifest/permission-element">permissions</a> + declared by applications with + <a href="https://developer.android.com/guide/topics/manifest/manifest-element#package">package</a>="android". +</aside> + <h2 id="adding-whitelists">Adding whitelists</h2> <p> Permission whitelists for applications can be listed in a single or multiple diff --git a/en/devices/tech/connect/esim-modem-requirements.md b/en/devices/tech/connect/esim-modem-requirements.md index a67fb83d..f1c16776 100644 --- a/en/devices/tech/connect/esim-modem-requirements.md +++ b/en/devices/tech/connect/esim-modem-requirements.md @@ -24,22 +24,40 @@ removable eSIM 4FF card. ## General requirements -These are the modem requirements for general eSIM support. The LPA needs the -modem to support all of these requirements to function properly. +These are the modem requirements for general eSIM support. The Local Profile +Assistant (LPA) needs the modem to support all of these requirements to function +properly. ### Handle the default boot profile correctly When there is no operational or test profile enabled on eSIM, the default boot profile is enabled. The modem shall recognize the eSIM with the default boot -profile enabled as a valid SIM. The modem shall report card as valid to upper -layers and shall not turn off the SIM power. +profile enabled as a valid SIM, shall report the card as valid to upper layers, +and shall not turn off the SIM power. ### Send terminal capabilities correctly -When opening a logical channel to ISD-R, the modem shall send correct terminal -capabilities to the eSIM. The terminal capability must encode support for eUICC -capabilities: "Local Profile Management" and "Profile Download" per ETSI TS 102 -221. +On power-up, the modem shall send correct terminal capabilities to the eSIM. The +terminal capability shall encode support for eUICC capabilities: "Local Profile +Management" and "Profile Download". + +See +[ETSI TS 102 221 Section 11.1.19.2.4](https://www.etsi.org/deliver/etsi_ts/102200_102299/102221/15.00.00_60/ts_102221v150000p.pdf): +“Additional Terminal capability indications related to eUICC". Bytes [1-3] shall +be: ‘83 (Tag) ‘01’ (Length) ‘07’ (eUICC capabilities). + +### (Optional) Support eSIM OS OTA updates + +Note: As eSIM OS over-the-air (OTA) updates are not standardized, this depends +on the vendor providing the eSIM OS. + +The modem shall support all requirements for eSIM OS OTA updates, for example +switching to passthrough mode and keeping the eSIM powered on during the OTA +update procedure. + +## HAL requirements + +These are API implementations that are required for general eSIM support. ### Implement setSimPower API in Radio HAL v1.1 @@ -55,37 +73,42 @@ API, which indicates whether a slot contains an eSIM. ### Implement getIccCardStatus API in IRadio HAL v1.2 -The modem shall provide the ATR and slot ID of the card status as specified in -the -[getIccCardStatus](/reference/hidl/android/hardware/radio/1.0/IRadio#getIccCardStatus) -API. This API was first introduced in v1.0 and, in v1.2, +The modem shall provide the Answer To Reset (ATR) and slot ID of the card status +in the +[getIccCardStatusResponse](https://source.android.com/reference/hidl/android/hardware/radio/1.0/IRadioResponse#geticccardstatusresponse) +API. This API was introduced in v1.0 and, in v1.2, [CardStatus](https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/1.2/types.hal#341){: .external} was changed to include [ATR](https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/1.2/types.hal#351){: .external}. -### (Optional) Support eSIM OS OTA +### Set CardState:RESTRICTED on SIM lock (subsidy lock) -As the eSIM OS OTA is not standardized, this depends on the vendor providing -eSIM OS. The modem shall support all requirements for eSIM OS OTA, for example -switching to passthrough mode and keeping the eSIM powered on during the OTA -procedure. +If the eSIM is SIM locked (subsidy locked), the modem shall set card state as +[`CardState:RESTRICTED`](https://source.android.com/reference/hidl/android/hardware/radio/1.0/types#cardstate) +in the +[getIccCardStatusResponse](https://source.android.com/reference/hidl/android/hardware/radio/1.0/IRadioResponse#geticccardstatusresponse) +API. -## Logging requirements +### (Optional) Implement setSimSlotsMapping API in IRadioConfig HAL v1.0 -These are general modem logging requirements to properly debug eSIM issues. +Note: Only required in device configurations that require slot switching, for +example, where the device has one eSIM slot and one physical/removable SIM +(pSIM) slot, and only one can be active at the same time. -### Provide PC based tools to capture detailed modem logs +The modem shall support the +[setSimSlotsMapping API](https://android.googlesource.com/platform/hardware/interfaces/+/master/radio/config/1.0/IRadioConfig.hal#81){: .external}, +which sets the mapping from physical slots to logical slots. The LPA uses this +API to select the active SIM slot. + +## Logging requirements -Logging shall capture all the OTA packets for Cellular RATs (4G, 3G, 2G) and IMS -(SIP, RTP, RTCP, XCAP). ESP protected SIP packets shall be logged without ESP. -OTA parser shall be compliant to 3GPP specs. +These are general modem logging requirements for debugging eSIM issues. -Logging shall support capture IP packets on all network interfaces. +### Log capture -Logging shall support capturing debug logs and protocol layer information -including protocol layer states, radio power measurements, network cell -information, packet TX/RX statistics, inter-layer messaging, inter-processor -communication, SIM functionality & APDU logging, and RIL logging. +Logging shall capture inter-processor communication, SIM functionality, Radio +Interface Layer (RIL) logging, and application protocol data unit (APDU) +logging. ### On-device logging diff --git a/en/devices/tech/debug/fuzz-sanitize.html b/en/devices/tech/debug/fuzz-sanitize.html index 55c517da..2c3308ca 100644 --- a/en/devices/tech/debug/fuzz-sanitize.html +++ b/en/devices/tech/debug/fuzz-sanitize.html @@ -1,6 +1,6 @@ <html devsite> <head> - <title>Dynamic Analysis</title> + <title>Security Testing</title> <meta name="project_path" value="/_project.yaml" /> <meta name="book_path" value="/_book.yaml" /> </head> @@ -21,8 +21,8 @@ limitations under the License. --> - <p>This section summarizes useful tools for dynamic analysis and debugging - from a security perspective. It covers some tools for fuzzing, sanitizing, + <p>This section summarizes tools for security testing and debugging. + It covers some tools for fuzzing, sanitizing, and preemptively mitigating exploits. For general debugging, see <a href="/devices/tech/debug/">the debugging section</a>.</p> @@ -31,4 +31,6 @@ While Android has supported fuzzing tools for many releases, Android 8.0 and later include more fuzzing support, tighter fuzzing tool integration in the Android build system, and greater dynamic analysis support on the Android kernels. </p> +<p>In addition to security-specific testing, Android includes general +<a href="/compatibility/tests">platform testing</a> for compatibility.</p> </body></html> diff --git a/en/security/bulletin/2018-09-01.html b/en/security/bulletin/2018-09-01.html index 5c5699ff..e9929d76 100644 --- a/en/security/bulletin/2018-09-01.html +++ b/en/security/bulletin/2018-09-01.html @@ -400,45 +400,6 @@ class="external">A-110107376</a></td> </table> -<h3 id="update-media-framework">Update: 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-9411</td> - <td><a -href="https://android.googlesource.com/platform/system/libhidl/+/93484b9b015d47c0f7e5f4449a214b2fed8bed4f" -class="external">A-79376389</a></td> - <td>RCE</td> - <td>Critical</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>Critical</td> - <td>8.0, 8.1, 9</td> - </tr> -</table> - - <h2 id="2018-09-05-details">2018-09-05 security patch level vulnerability details</h2> <p> In the sections below, we provide details for each of the security diff --git a/en/security/bulletin/2018-11-01.html b/en/security/bulletin/2018-11-01.html index 9bfd16ae..bd9f38ee 100644 --- a/en/security/bulletin/2018-11-01.html +++ b/en/security/bulletin/2018-11-01.html @@ -305,64 +305,6 @@ permissions.</p> </table> -<h3 id="update-media-framework">Update: Media framework</h3> - -<table> -<col width="21%"> -<col width="21%"> -<col width="14%"> -<col width="14%"> -<col width="30%"> - <tr> - <th>CVE</th> - <th>References</th> - <th>Type</th> - <th>Severity</th> - <th>Updated AOSP versions</th> - </tr> - <tr> - <td>CVE-2018-9347</td> - <td><a - href="https://android.googlesource.com/platform/external/sonivox/+/2992eec4359d66debd0aad8f745315f57de761ae" - class="external">A-68664359</a> - [<a href="https://android.googlesource.com/platform/external/sonivox/+/3cc5df82112cbb5b75349f0f2b733dcba3660a2f">2</a>] - [<a href="https://android.googlesource.com/platform/frameworks/av/+/9bc021a323873091ea98f77b3b3dc4732d1c92e6">3</a>] - </td> - <td>DoS</td> - <td>Moderate</td> - <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1, 9</td> - </tr> -</table> - - -<h3 id="update-system">Update: System</h3> - -<table> -<col width="21%"> -<col width="21%"> -<col width="14%"> -<col width="14%"> -<col width="30%"> - <tr> - <th>CVE</th> - <th>References</th> - <th>Type</th> - <th>Severity</th> - <th>Updated AOSP versions</th> - </tr> - <tr> - <td>CVE-2018-9457</td> - <td><a - href="https://android.googlesource.com/platform/packages/apps/Settings/+/0f52a07037e3795b9173af1397086afa3c2e1913" - class="external">A-72872376</a></td> - <td>EoP</td> - <td>Moderate</td> - <td>8.0, 8.1, 9</td> - </tr> -</table> - - - <h2 id="2018-11-05-details">2018-11-05 security patch level vulnerability details</h2> <p> In the sections below, we provide details for each of the security @@ -402,18 +344,6 @@ process.</p> <td>High</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 - 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>High</td> - <td>9</td> - </tr> </table> diff --git a/en/security/bulletin/2018.html b/en/security/bulletin/2018.html index 1cf0b6a7..8feee59b 100644 --- a/en/security/bulletin/2018.html +++ b/en/security/bulletin/2018.html @@ -38,15 +38,13 @@ of all bulletins, see the <a href="/security/bulletin/index.html">Android Securi </tr> <tr> <td><a href="/security/bulletin/2018-11-01.html">November 2018</a></td> - <td>Coming soon - <!-- + <td> <a href="/security/bulletin/2018-11-01.html">English</a> / <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-11-01.html?hl=ko">í•œêµì–´</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>November 5, 2018</td> <td>2018-11-01<br> diff --git a/en/security/bulletin/index.html b/en/security/bulletin/index.html index e11d1962..3b13b8df 100644 --- a/en/security/bulletin/index.html +++ b/en/security/bulletin/index.html @@ -70,15 +70,13 @@ Android Open Source Project (AOSP), the upstream Linux kernel, and system-on-chi </tr> <tr> <td><a href="/security/bulletin/2018-11-01.html">November 2018</a></td> - <td>Coming soon - <!-- + <td> <a href="/security/bulletin/2018-11-01.html">English</a> / <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-11-01.html?hl=ko">í•œêµì–´</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>November 5, 2018</td> <td>2018-11-01<br> diff --git a/en/security/bulletin/pixel/2018-11-01.html b/en/security/bulletin/pixel/2018-11-01.html index ecdadb18..5d6d8e6c 100644 --- a/en/security/bulletin/pixel/2018-11-01.html +++ b/en/security/bulletin/pixel/2018-11-01.html @@ -66,6 +66,34 @@ 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-05">Framework</h3> + +<table> +<col width="21%"> +<col width="21%"> +<col width="14%"> +<col width="14%"> +<col width="30%"> + <tr> + <th>CVE</th> + <th>References</th> + <th>Type</th> + <th>Severity</th> + <th>Updated AOSP versions</th> + </tr> + <tr> + <td>CVE-2018-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>High</td> + <td>9</td> + </tr> +</table> <h3 id="htc-components">HTC components</h3> diff --git a/en/security/bulletin/pixel/2018.html b/en/security/bulletin/pixel/2018.html index 93e0b219..a7854882 100644 --- a/en/security/bulletin/pixel/2018.html +++ b/en/security/bulletin/pixel/2018.html @@ -40,15 +40,13 @@ Bulletins</a> homepage.</p> </tr> <tr> <td><a href="/security/bulletin/pixel/2018-11-01.html">November 2018</a></td> - <td>Coming soon - <!-- + <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>November 5, 2018</td> <td>2018-11-05</td> diff --git a/en/security/bulletin/pixel/index.html b/en/security/bulletin/pixel/index.html index 9cebd9b7..f89274e6 100644 --- a/en/security/bulletin/pixel/index.html +++ b/en/security/bulletin/pixel/index.html @@ -60,15 +60,13 @@ AOSP 24–48 hours after the Pixel / Nexus bulletin is release </tr> <tr> <td><a href="/security/bulletin/pixel/2018-11-01.html">November 2018</a></td> - <td>Coming soon - <!-- + <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>November 5, 2018</td> <td>2018-11-05</td> diff --git a/en/setup/build/building-kernels.html b/en/setup/build/building-kernels.html index 28e0708a..cb795c79 100644 --- a/en/setup/build/building-kernels.html +++ b/en/setup/build/building-kernels.html @@ -44,6 +44,18 @@ <th>Build configuration</th> </tr> <tr> + <td>blueline</td> + <td>device/google/crosshatch-kernel</td> + <td><a href="#building-b1c1">instructions</a></td> + <td>b1c1_defconfig</td> + </tr> + <tr> + <td>crosshatch</td> + <td>device/google/crosshatch-kernel</td> + <td><a href="#building-b1c1">instructions</a></td> + <td>b1c1_defconfig</td> + </tr> + <tr> <td>taimen</td> <td>device/google/wahoo-kernel</td> <td>kernel/msm</td> @@ -271,7 +283,7 @@ be used as a starting point for work on NVIDIA Tegra chipsets.</p> can be used as a starting point for work on Intel x86_64 chipsets.</p> <pre class="devsite-terminal devsite-click-to-copy">git clone https://android.googlesource.com/kernel/x86_64</pre> -<h2 id="building">Building the kernel</h2> +<h2 id="building">Building the kernel manually</h2> <p>When you know the last commit message for a kernel and have successfully downloaded the kernel source and prebuilt gcc, you are ready to build the kernel. The following build commands use the hikey kernel:</p> @@ -307,5 +319,19 @@ export TARGET_PREBUILT_KERNEL=$your_kernel_path/arch/arm/boot/zImage-dtb the correct filename for your kernel, refer to <code>device/<var>VENDOR</var>/<var>NAME</var></code> in the kernel source.</p> + +<h2 id="building-b1c1">Building Pixel 3 (blueline) and Pixel 3 XL (crosshatch) kernels</h2> + +<p>For Pixel 3 and Pixel 3 XL, the kernel source is separated into multiple +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 sync</pre> + +<p>Then build the kernel with:</p> + +<pre class="devsite-terminal devsite-click-to-copy">sh build/build.sh</pre> </body> </html> diff --git a/en/setup/contribute/code-style.html b/en/setup/contribute/code-style.html index ddf945cd..bc9ad880 100644 --- a/en/setup/contribute/code-style.html +++ b/en/setup/contribute/code-style.html @@ -208,7 +208,7 @@ 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>/* - * Copyright 2017 The Android Open Source Project + * 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. diff --git a/en/setup/start/build-numbers.html b/en/setup/start/build-numbers.html index 545f93f9..31f53d26 100644 --- a/en/setup/start/build-numbers.html +++ b/en/setup/start/build-numbers.html @@ -241,6 +241,20 @@ following table. </thead> <tbody> <tr> + <td>PPR2.181005.003.A1</td> + <td>android-9.0.0_r18</td> + <td>Pie</td> + <td>Pixel XL, Pixel</td> + <td>2018-11-01</td> + </tr> + <tr> + <td>PPR1.181005.003.A1</td> + <td>android-9.0.0_r17</td> + <td>Pie</td> + <td>Pixel XL, Pixel</td> + <td>2018-11-01</td> + </tr> + <tr> <td>PQ1A.181105.017.A1</td> <td>android-9.0.0_r16</td> <td>Pie</td> diff --git a/en/setup/start/p-release-notes.md b/en/setup/start/p-release-notes.md index ad5a81ac..5e42ed73 100644 --- a/en/setup/start/p-release-notes.md +++ b/en/setup/start/p-release-notes.md @@ -77,7 +77,7 @@ passing the unified device tree blob to the kernel. #### DTO Image Header Versioning -This release inroduces a +This release introduces a [new version field](/devices/architecture/dto/partitions) in the DTBO image header. #### DTBO Verification diff --git a/ja/security/bulletin/2018-07-01.html b/ja/security/bulletin/2018-07-01.html index 148c2dab..b84adcd7 100644 --- a/ja/security/bulletin/2018-07-01.html +++ b/ja/security/bulletin/2018-07-01.html @@ -30,7 +30,7 @@ Android パートナーã«ã¯ã€æƒ…å ±å…¬é–‹ã® 1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã® 下記ã®å•é¡Œã®ã†ã¡æœ€ã‚‚é‡å¤§åº¦ã®é«˜ã„ã‚‚ã®ã¯ã€ãƒ¡ãƒ‡ã‚£ã‚¢ フレームワークã«é‡å¤§ãªã‚»ã‚ュリティã®è„†å¼±æ€§ãŒã‚ã‚‹ãŸã‚ã€ãƒªãƒ¢ãƒ¼ãƒˆã®æ”»æ’ƒè€…ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ãƒã‚»ã‚¹å†…ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ãŠãã‚ŒãŒã‚ã‚‹ã“ã¨ã§ã™ã€‚<a href="/security/overview/updates-resources.html#severity">é‡å¤§åº¦ã®è©•ä¾¡</a>ã¯ã€æ”»æ’ƒå¯¾è±¡ã®ç«¯æœ«ã§ãã®è„†å¼±æ€§ãŒæ‚ªç”¨ã•ã‚ŒãŸå ´åˆã®å½±éŸ¿ã«åŸºã¥ãã‚‚ã®ã§ã€ãƒ—ラットフォームやサービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–ãŒé–‹ç™ºç›®çš„ã¾ãŸã¯ä¸æ£ãªå›žé¿ã«ã‚ˆã‚Šç„¡åŠ¹ã¨ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã¾ã™ã€‚ </p> <p> -ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。Android プラットフォームã®ã‚»ã‚ュリティã®å‘上ã«å½¹ç«‹ã¤ <a href="/security/enhancements/index.html">Android ã‚»ã‚ュリティ プラットフォームã§ã®ä¿è·</a>ã‚„ Google Play プãƒãƒ†ã‚¯ãƒˆã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="#mitigations">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–</a>ã‚’ã”覧ãã ã•ã„。 +ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。Android プラットフォームã®ã‚»ã‚ュリティã®å‘上ã«å½¹ç«‹ã¤ <a href="#mitigations">Android ã‚»ã‚ュリティ プラットフォームã§ã®ä¿è·</a>ã‚„ Google Play プãƒãƒ†ã‚¯ãƒˆã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="/security/enhancements/index.html">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–</a>ã‚’ã”覧ãã ã•ã„。 </p> <p class="note"> <strong>注:</strong> 最新ã®ç„¡ç·šï¼ˆOTA)アップデート㨠Google 端末ã®ãƒ•ã‚¡ãƒ¼ãƒ ウェア イメージã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€<a href="/security/bulletin/pixel/2018-07-01.html">2018 å¹´ 7 月㮠Pixel / Nexus ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã§ã”覧ã„ãŸã ã‘ã¾ã™ã€‚ diff --git a/ja/security/bulletin/2018-08-01.html b/ja/security/bulletin/2018-08-01.html index 27867764..4368b155 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="/security/enhancements/index.html">Android ã‚»ã‚ュリティ プラットフォームã§ã®ä¿è·</a>ã‚„ Google Play プãƒãƒ†ã‚¯ãƒˆã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="#mitigations">Android 㨠Google サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–</a>ã‚’ã”覧ãã ã•ã„。 +ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。Android プラットフォームã®ã‚»ã‚ュリティã®å‘上ã«å½¹ç«‹ã¤ <a href="#mitigations">Android ã‚»ã‚ュリティ プラットフォームã§ã®ä¿è·</a>ã‚„ Google Play プãƒãƒ†ã‚¯ãƒˆã«ã¤ã„ã¦è©³ã—ãã¯ã€<a href="/security/enhancements/index.html">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-09-01.html b/ja/security/bulletin/2018-09-01.html index b42c5378..5ddd45e2 100644 --- a/ja/security/bulletin/2018-09-01.html +++ b/ja/security/bulletin/2018-09-01.html @@ -24,12 +24,12 @@ <p>Android ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€Android æ載端末ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚ュリティã®è„†å¼±æ€§ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-09-05 以é™ã§ã¯ã€ä¸‹è¨˜ã®ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚端末ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹æ–¹æ³•</a>ã‚’ã”覧ãã ã•ã„。 </p> <p> -Android パートナーã«ã¯ã€æƒ…å ±å…¬é–‹ã® 1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã®å•é¡ŒãŒé€šçŸ¥ã•ã‚Œã¾ã™ã€‚Android オープンソース プãƒã‚¸ã‚§ã‚¯ãƒˆï¼ˆAOSP)リãƒã‚¸ãƒˆãƒªã«ã€ä¸‹è¨˜ã®å•é¡Œã«å¯¾ã™ã‚‹ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒ‘ッãƒã‚’リリースã—ã¦ã„ã¾ã™ã€‚AOSP 以外ã®ãƒ‘ッãƒã¸ã®ãƒªãƒ³ã‚¯ã‚‚掲載ã—ã¦ã„ã¾ã™ã€‚</p> +Android パートナーã«ã¯ã€æƒ…å ±å…¬é–‹ã® 1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã®å•é¡ŒãŒé€šçŸ¥ã•ã‚Œã¾ã™ã€‚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 サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–</a>ã‚’ã”覧ãã ã•ã„。 +ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。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-09-01">2018 å¹´ 9 月㮠Pixel / Nexus ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã§ã”覧ã„ãŸã ã‘ã¾ã™ã€‚ @@ -755,7 +755,7 @@ QC-CR#2119840<a href="#asterisk">*</a></td> <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> ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã™ã‚‹ã“ã¨ãŒæŽ¨å¥¨ã•ã‚Œã¦ã„ã¾ã™ã€‚ +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> diff --git a/ja/security/bulletin/2018-10-01.html b/ja/security/bulletin/2018-10-01.html index 37f07a36..6b756409 100644 --- a/ja/security/bulletin/2018-10-01.html +++ b/ja/security/bulletin/2018-10-01.html @@ -29,7 +29,7 @@ Android パートナーã«ã¯ã€æƒ…å ±å…¬é–‹ã® 1 ã‹æœˆå‰ã¾ã§ã«ã™ã¹ã¦ã® 下記ã®å•é¡Œã®ã†ã¡æœ€ã‚‚é‡å¤§åº¦ãŒé«˜ã„ã‚‚ã®ã¯ã€ãƒ•ãƒ¬ãƒ¼ãƒ ワークã«é‡å¤§ãªã‚»ã‚ュリティã®è„†å¼±æ€§ãŒã‚ã‚‹ãŸã‚ã€ãƒªãƒ¢ãƒ¼ãƒˆã®æ”»æ’ƒè€…ãŒç‰¹åˆ¥ã«ç´°å·¥ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã—ã¦ã€ç‰¹æ¨©ãƒ—ãƒã‚»ã‚¹å†…ã§ä»»æ„ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã§ãるよã†ã«ãªã‚‹ãŠãã‚ŒãŒã‚ã‚‹ã“ã¨ã§ã™ã€‚<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 サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–</a>ã‚’ã”覧ãã ã•ã„。 +ã“ã®æ–°ãŸã«å ±å‘Šã•ã‚ŒãŸå•é¡Œã«ã‚ˆã£ã¦å®Ÿéš›ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç«¯æœ«ãŒä¸æ£ä½¿ç”¨ã•ã‚ŒãŸå ±å‘Šã¯ã‚ã‚Šã¾ã›ã‚“。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-10-01">2018 å¹´ 10 月㮠Pixel / Nexus ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã§ã”覧ã„ãŸã ã‘ã¾ã™ã€‚ diff --git a/ja/security/bulletin/2018-11-01.html b/ja/security/bulletin/2018-11-01.html new file mode 100644 index 00000000..30593279 --- /dev/null +++ b/ja/security/bulletin/2018-11-01.html @@ -0,0 +1,585 @@ +<html devsite><head> + <title>Android ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ± - 2018 å¹´ 11 月</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 å¹´ 11 月 5 日公開</em></p> + +<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> +<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 サービスã§ã®ãƒªã‚¹ã‚¯è»½æ¸›ç–</a>ã‚’ã”覧ãã ã•ã„。 +</p> +<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> +<p>ã“ã®ãƒ©ã‚¤ãƒ–ラリã¯è©¦é¨“é‹ç”¨ç‰ˆã¨ã—ã¦ãƒžãƒ¼ã‚¯ã•ã‚Œã¦ãŠã‚Šã€Android ã®æœ¬ç•ªãƒ“ルドã‹ã‚‰é™¤å¤–ã•ã‚Œã¾ã—ãŸã€‚</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-11-01-details">ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-01 ã®è„†å¼±æ€§ã®è©³ç´°</h2> +<p> +パッãƒãƒ¬ãƒ™ãƒ« 2018-11-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-9522</td> + <td>A-112550251</td> + <td>EoP</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9524</td> + <td>A-34170870</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>EoP</td> + <td>高</td> + <td>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-9527</td> + <td>A-112159345</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>RCE</td> + <td>é‡å¤§</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9536</td> + <td>A-112662184</td> + <td>EoP</td> + <td>é‡å¤§</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9537</td> + <td>A-112891564</td> + <td>EoP</td> + <td>é‡å¤§</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9521</td> + <td>A-111874331</td> + <td>RCE</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9539</td> + <td>A-113027383</td> + <td>EoP</td> + <td>高</td> + <td>8.0ã€8.1ã€9</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-9540</td> + <td>A-111450417</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>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>ID</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9544</td> + <td>A-113037220</td> + <td>ID</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9545</td> + <td>A-113111784</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>ID</td> + <td>ä¸</td> + <td>9</td> + </tr> + <tr> + <td>ID</td> + <td>高</td> + <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td> + </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> + +<h3 id="framework-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>更新対象㮠AOSP ãƒãƒ¼ã‚¸ãƒ§ãƒ³</th> + </tr> + <tr> + <td>CVE-2018-9523</td> + <td>A-112859604</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> +<p>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-15818</td> + <td>A-68992408<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/lk/commit/?id=abe4f7042cbdef928ffc152335a17150fb39b096"> +QC-CR#2078580</a></td> + <td>N/A</td> + <td>高</td> + <td>エコシステム</td> + </tr> + <tr> + <td>CVE-2018-11995</td> + <td>A-71501677<br /> + <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=e3688be47d2b72f130f90dafd24b5f5acc4684ca"> +QC-CR#2129639</a></td> + <td>N/A</td> + <td>高</td> + <td>ブートãƒãƒ¼ãƒ€ãƒ¼</td> + </tr> + <tr> + <td>CVE-2018-11905</td> + <td>A-112277889<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cdcf0409bdad7ed91c11d7715c89acc2e521e96"> +QC-CR#2090797</a></td> + <td>N/A</td> + <td>高</td> + <td>DSP_Services</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-closed-source-components">Qualcomm クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3> +<p>Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆã«å½±éŸ¿ã™ã‚‹è„†å¼±æ€§ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€è©²å½“ã™ã‚‹ Qualcomm AMSS ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã‚„ã‚»ã‚ュリティ アラートをã”覧ãã ã•ã„。ã“ã®ä¸€é€£ã®å•é¡Œã®é‡å¤§åº¦ã¯ Qualcomm ã‹ã‚‰ç›´æŽ¥æä¾›ã•ã‚ŒãŸã‚‚ã®ã§ã™ã€‚</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>å‚ç…§</th> + <th>タイプ</th> + <th>é‡å¤§åº¦</th> + <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th> + </tr> + <tr> + <td>CVE-2017-18317</td> + <td>A-78244877<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>é‡å¤§</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-5912</td> + <td>A-79420111<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>é‡å¤§</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-11264</td> + <td>A-109677962<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>é‡å¤§</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2016-10502</td> + <td>A-68326808<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2017-18316</td> + <td>A-78240714<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2017-18318</td> + <td>A-78240675<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2017-18315</td> + <td>A-78241957<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-11994</td> + <td>A-72950294<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-11996</td> + <td>A-74235967<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-5870</td> + <td>A-77484722<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-5877</td> + <td>A-77484786<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-5916</td> + <td>A-79420492<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-5917</td> + <td>A-79420096<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>クãƒãƒ¼ã‚ºãƒ‰ã‚½ãƒ¼ã‚¹ コンãƒãƒ¼ãƒãƒ³ãƒˆ</td> + </tr> + <tr> + <td>CVE-2018-11269</td> + <td>A-109678529<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-11-01 以é™ã§ã¯ã€ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-01 ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚</li> +<li>ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-05 以é™ã§ã¯ã€ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-05ã€ãŠã‚ˆã³ãれ以å‰ã®ã™ã¹ã¦ã®ãƒ‘ッãƒãƒ¬ãƒ™ãƒ«ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚</li> +</ul> +<p>ã“ã®ã‚¢ãƒƒãƒ—デートを組ã¿è¾¼ã‚“ã 端末メーカーã¯ã€ãƒ‘ッãƒãƒ¬ãƒ™ãƒ«æ–‡å—列を以下ã«è¨å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</p> +<ul> + <li>[ro.build.version.security_patch]:[2018-11-01]</li> + <li>[ro.build.version.security_patch]:[2018-11-05]</li> +</ul> +<p><strong>2. ã“ã®å…¬é–‹æƒ…å ±ã« 2 ã¤ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ãŒã‚ã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ</strong></p> +<p> +ã“ã®å…¬é–‹æƒ…å ±ã§ã¯ã€2 ã¤ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã‚’定義ã—ã¦ã„ã¾ã™ã€‚ã“ã‚Œã¯ã€ã™ã¹ã¦ã® Android æ載端末ã§åŒæ§˜ã®å•é¡ŒãŒç™ºç”Ÿã™ã‚‹ä¸€éƒ¨ã®è„†å¼±æ€§ã‚’サブセットã¨ã—ã€Android パートナーãŒè¿…速ã‹ã¤æŸ”軟ã«ä¿®æ£ã§ãるよã†ã«ã™ã‚‹ãŸã‚ã§ã™ã€‚Android パートナーã¯ã€ã“ã®å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹å•é¡Œã‚’ã™ã¹ã¦ä¿®æ£ã—ã€æœ€æ–°ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã‚’使用ã™ã‚‹ã“ã¨ãŒæŽ¨å¥¨ã•ã‚Œã¦ã„ã¾ã™ã€‚ +</p> +<ul> +<li>2018-11-01 ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã‚’使用ã™ã‚‹ç«¯æœ«ã§ã¯ã€ãã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã«é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®å•é¡Œã¨ã€ãれ以å‰ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã§å ±å‘Šã•ã‚ŒãŸã™ã¹ã¦ã®å•é¡Œã®ä¿®æ£ã‚’å«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</li> +<li>2018-11-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 å¹´ 11 月 5 æ—¥</td> + <td>æƒ…å ±å…¬é–‹</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/ja/security/bulletin/2018.html b/ja/security/bulletin/2018.html index f62705e0..32b3cd6a 100644 --- a/ja/security/bulletin/2018.html +++ b/ja/security/bulletin/2018.html @@ -35,15 +35,13 @@ </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">2018 å¹´ 10 月</a></td> - <td>æº–å‚™ä¸ - <!-- - <a href="/security/bulletin/2018-10-01.html">English</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> - --> + <td> + <a href="/security/bulletin/2018-10-01.html">English</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ï¼ˆä¸å›½ï¼‰</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ï¼ˆå°ç£ï¼‰</a> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-01<br /> diff --git a/ja/security/bulletin/index.html b/ja/security/bulletin/index.html index 2a76f511..9f64e87c 100644 --- a/ja/security/bulletin/index.html +++ b/ja/security/bulletin/index.html @@ -55,6 +55,22 @@ <th>公開日</th> <th>ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«</th> </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> / + <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-11-01.html?hl=ko">í•œêµì–´</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 /> + 2018-11-05</td> + </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">2018 å¹´ 10 月</a></td> <td> diff --git a/ja/security/bulletin/pixel/2018-05-01.html b/ja/security/bulletin/pixel/2018-05-01.html index cf53d362..cf4f4db6 100644 --- a/ja/security/bulletin/pixel/2018-05-01.html +++ b/ja/security/bulletin/pixel/2018-05-01.html @@ -551,7 +551,7 @@ QC-CR#2149720</a></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-08-01.html b/ja/security/bulletin/pixel/2018-08-01.html index fb8e7a54..77e9fb0f 100644 --- a/ja/security/bulletin/pixel/2018-08-01.html +++ b/ja/security/bulletin/pixel/2018-08-01.html @@ -26,7 +26,7 @@ Pixel / Nexus ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">サãƒãƒ¼ãƒˆå¯¾è±¡ã® Google Pixel 端末㨠Nexus 端末</a>(Google 端末)ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚»ã‚ュリティã®è„†å¼±æ€§ã‚„機能強化ã®è©³ç´°ã‚’掲載ã—ã¦ã„ã¾ã™ã€‚Google 端末ã§ã¯ã€ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-08-05 以é™ã«ãŠã„ã¦ã€ã“ã®å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã¨ã€2018 å¹´ 8 月㮠Android ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚端末ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>ã‚’ã”覧ãã ã•ã„。 </p> <p> -パッãƒãƒ¬ãƒ™ãƒ« 2018-08-05 ã¸ã®ã‚¢ãƒƒãƒ—デートã¯ã€ã‚µãƒãƒ¼ãƒˆå¯¾è±¡ã®ã™ã¹ã¦ã® Google 端末ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚ã”利用ã®ç«¯æœ«ã§ä¸Šè¨˜ã®æ›´æ–°ã‚’è¡Œã†ã“ã¨ã‚’ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ãŠã™ã™ã‚ã—ã¾ã™ã€‚ +パッãƒãƒ¬ãƒ™ãƒ« 2018-08-05 ã¸ã®ã‚¢ãƒƒãƒ—デートã¯ã€ã‚µãƒãƒ¼ãƒˆå¯¾è±¡ã®ã™ã¹ã¦ã® Google 端末ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚ã”利用ã®ç«¯æœ«ã«ã“ã®ã‚¢ãƒƒãƒ—デートをé©ç”¨ã™ã‚‹ã“ã¨ã‚’ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ãŠã™ã™ã‚ã—ã¾ã™ã€‚ </p> <p class="note"> <strong>注:</strong> Google 端末ã®ãƒ•ã‚¡ãƒ¼ãƒ ウェア イメージã¯ã€<a href="https://developers.google.com/android/images" class="external">Google デベãƒãƒƒãƒ‘ー サイト</a>ã§å…¥æ‰‹ã§ãã¾ã™ã€‚ diff --git a/ja/security/bulletin/pixel/2018-10-01.html b/ja/security/bulletin/pixel/2018-10-01.html index d5bae81c..1ff26d1f 100644 --- a/ja/security/bulletin/pixel/2018-10-01.html +++ b/ja/security/bulletin/pixel/2018-10-01.html @@ -165,7 +165,7 @@ Google 端末ã§ã¯ã€ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-10-05 以é™ã« <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 new file mode 100644 index 00000000..bf2e8420 --- /dev/null +++ b/ja/security/bulletin/pixel/2018-11-01.html @@ -0,0 +1,249 @@ +<html devsite><head> + <title>Pixel  / Nexus ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ± - 2018 å¹´ 11 月</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 å¹´ 11 月 5 日公開</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-11-05 以é™ã«ãŠã„ã¦ã€ã“ã®å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã¨ã€2018 å¹´ 11 月㮠Android ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®å•é¡Œã«å¯¾å‡¦ã—ã¦ã„ã¾ã™ã€‚端末ã®ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«ã‚’確èªã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’確èªã—ã¦æ›´æ–°ã™ã‚‹</a>ã‚’ã”覧ãã ã•ã„。 +</p> +<p> +パッãƒãƒ¬ãƒ™ãƒ« 2018-11-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-11-01">2018 å¹´ 11 月㮠Android ã®ã‚»ã‚ュリティã«é–¢ã™ã‚‹å…¬é–‹æƒ…å ±</a>ã«æŽ²è¼‰ã•ã‚Œã¦ã„ã‚‹ã‚»ã‚ュリティã®è„†å¼±æ€§ã«åŠ ãˆã¦ã€Pixel 端末㨠Nexus 端末ã«ã¯ã€ä¸‹è¨˜ã®ã‚»ã‚ュリティã®è„†å¼±æ€§ã«å¯¾ã™ã‚‹ãƒ‘ッãƒã‚‚å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚パートナーã«ã¯å°‘ãªãã¨ã‚‚ 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="htc-components">HTC コンãƒãƒ¼ãƒãƒ³ãƒˆ</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-9580</td> + <td>A-76222002<a href="#asterisk">*</a></td> + <td>EoP</td> + <td>ä¸</td> + <td>ブートãƒãƒ¼ãƒ€ãƒ¼</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-components">Qualcomm コンãƒãƒ¼ãƒãƒ³ãƒˆ</h3> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>å‚ç…§</th> + <th>タイプ</th> + <th>é‡å¤§åº¦</th> + <th>コンãƒãƒ¼ãƒãƒ³ãƒˆ</th> + </tr> + <tr> + <td>CVE-2017-14888</td> + <td>A-70237718<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d50dfd647b2396d2e2c05b7aee84d831e4a18d68">QC-CR#2119729</a></td> + <td>N/A</td> + <td>ä¸</td> + <td>WLAN ホスト</td> + </tr> + <tr> + <td>CVE-2017-15835</td> + <td>A-72957155<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=b6eeed234707244c799ae7009e67312b8bf33ccd">QC-CR#2125781</a></td> + <td>N/A</td> + <td>ä¸</td> + <td>WLAN ホスト</td> + </tr> +</tbody></table> + +<h2 id="functional-patches">機能パッãƒ</h2> + +<p>Android 9 ã®ã‚¢ãƒƒãƒ—デートã¯ã€11 月㮠OTA ã®ä¸€éƒ¨ã¨ã—ã¦ã€Android 9 ãŒæ載ã•ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã® Pixel 端末ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚ã“ã®å››åŠæœŸãƒªãƒªãƒ¼ã‚¹ã«ã¯ã€Android プラットフォームã¨ã‚µãƒãƒ¼ãƒˆå¯¾è±¡ã® Pixel 端末ã®å„種パーツã«å¯¾ã™ã‚‹å¤šãã®æ©Ÿèƒ½æ›´æ–°ã‚„機能強化ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚</p> + +<p>Android æ載端末メーカーã¯ã€ã“ã®ãƒªãƒªãƒ¼ã‚¹ã«å«ã¾ã‚Œã¦ã„る以下ã®ä¿®æ£ã‚‚é©ç”¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</p> + +<table> + <tbody><tr> + <th>å‚ç…§</th> + <th>カテゴリ</th> + <th>改善内容</th> + <th>端末</th> + </tr> + <tr> + <td>A-111401911</td> + <td>表示</td> + <td><a href="/devices/tech/display/pip">ピクãƒãƒ£ãƒ¼ イン ピクãƒãƒ£ãƒ¼</a>を使用ã™ã‚‹ç«¯æœ«ã®ãƒ‘フォーマンスを改善</td> + <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-109769728</td> + <td>フレームワーク</td> + <td>Strongbox 対称ã‚ーã®ç”Ÿæˆãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’改善</td> + <td>Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-112198479</td> + <td>表示</td> + <td><a href="/devices/tech/display/pip">ピクãƒãƒ£ãƒ¼ イン ピクãƒãƒ£ãƒ¼</a>を使用ã™ã‚‹ã‚¢ãƒ—リã®ãƒ‘フォーマンスを改善</td> + <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-112714177</td> + <td>通知</td> + <td>通知ã®å®‰å®šæ€§ã‚’改善</td> + <td>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-11-05 以é™ã§ã¯ã€ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ« 2018-11-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/nexus/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 å¹´ 11 月 5 æ—¥</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 8392cddf..6818a394 100644 --- a/ja/security/bulletin/pixel/2018.html +++ b/ja/security/bulletin/pixel/2018.html @@ -33,6 +33,21 @@ <th>公開日</th> <th>ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«</th> </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> / + <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> + </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018 å¹´ 10 月</a></td> <td> diff --git a/ja/security/bulletin/pixel/index.html b/ja/security/bulletin/pixel/index.html index cdff3a9d..6daae3f9 100644 --- a/ja/security/bulletin/pixel/index.html +++ b/ja/security/bulletin/pixel/index.html @@ -42,6 +42,21 @@ <th>公開日</th> <th>ã‚»ã‚ュリティ パッãƒãƒ¬ãƒ™ãƒ«</th> </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> / + <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> + </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018 å¹´ 10 月</a></td> <td> diff --git a/ko/security/bulletin/2018-07-01.html b/ko/security/bulletin/2018-07-01.html index a3653af4..93708308 100644 --- a/ko/security/bulletin/2018-07-01.html +++ b/ko/security/bulletin/2018-07-01.html @@ -375,147 +375,147 @@ Qualcomm AMSS 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´ <tr> <td>CVE-2017-18171</td> <td>A-78240792<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18277</td> <td>A-78240715<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18172</td> <td>A-78240449<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18170</td> <td>A-78240612<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-15841</td> <td>A-78240794<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18173</td> <td>A-78240199<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18278</td> <td>A-78240071<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2016-2108</td> <td>A-78240736<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18275</td> <td>A-78242049<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18279</td> <td>A-78241971<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18274</td> <td>A-78241834<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18276</td> <td>A-78241375<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2017-18131</td> <td>A-68989823<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-11259</td> <td>A-72951265<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-11257</td> <td>A-74235874<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-5837</td> <td>A-74236406<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-5876</td> <td>A-77485022<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-5875</td> <td>A-77485183<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-5874</td> <td>A-77485139<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>심ê°</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-5882</td> <td>A-77483830<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> <tr> <td>CVE-2018-5878</td> <td>A-77484449<a href="#asterisk">*</a></td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>높ìŒ</td> <td>비공개 소스 구성요소</td> </tr> @@ -588,7 +588,7 @@ Qualcomm AMSS 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´ <td>서비스 거부</td> </tr> <tr> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> <td>분류 ì—†ìŒ</td> </tr> </tbody></table> diff --git a/ko/security/bulletin/2018-10-01.html b/ko/security/bulletin/2018-10-01.html index 70133774..e5887556 100644 --- a/ko/security/bulletin/2018-10-01.html +++ b/ko/security/bulletin/2018-10-01.html @@ -44,8 +44,8 @@ Android 오픈소스 프로ì 트(AOSP) ì €ìž¥ì†Œì— ë°°í¬ë˜ì—ˆìœ¼ë©° ì´ ê²Œì <p> ì‹¤ì œ ê³ ê°ì´ 새로 ë³´ê³ ëœ ì´ëŸ¬í•œ ë¬¸ì œë¡œ ì¸í•´ 악용당했다는 ì‹ ê³ ëŠ” ì ‘ìˆ˜ë˜ì§€ 않았습니다. Android 플랫í¼ì˜ ë³´ì•ˆì„ ê°œì„ í•˜ëŠ” -<a href="/security/enhancements/">Android 보안 í”Œëž«í¼ ë³´í˜¸</a> ë° Google Play 프로í…íŠ¸ì— ê´€í•´ -ìžì„¸ížˆ ì•Œì•„ë³´ë ¤ë©´ <a href="#mitigations">Android ë° Google Play 프로í…트 완화</a> +<a href="#mitigations">Android 보안 í”Œëž«í¼ ë³´í˜¸</a> ë° Google Play 프로í…íŠ¸ì— ê´€í•´ +ìžì„¸ížˆ ì•Œì•„ë³´ë ¤ë©´ <a href="/security/enhancements/">Android ë° Google Play 프로í…트 완화</a> ì„¹ì…˜ì„ ì°¸ì¡°í•˜ì„¸ìš”. </p> <p class="note"> diff --git a/ko/security/bulletin/2018-11-01.html b/ko/security/bulletin/2018-11-01.html new file mode 100644 index 00000000..650d0def --- /dev/null +++ b/ko/security/bulletin/2018-11-01.html @@ -0,0 +1,685 @@ +<html devsite><head> + <title>Android 보안 게시íŒâ€”2018ë…„ 11ì›”</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ë…„ 11ì›” 5ì¼ ê²Œì‹œë¨</em></p> + +<p> +Android 보안 게시íŒì€ Android ê¸°ê¸°ì— ì˜í–¥ì„ 미치는 보안 취약성 +ì„¸ë¶€ì •ë³´ë¥¼ 다룹니다. ì´ëŸ¬í•œ ë¬¸ì œëŠ” 2018-11-05 보안 패치 수준 ì´ìƒì—ì„œ +ëª¨ë‘ í•´ê²°ë˜ì—ˆìŠµë‹ˆë‹¤. ê¸°ê¸°ì˜ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ í™•ì¸í•˜ëŠ” ë°©ë²•ì€ +<a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ë²„ì „ í™•ì¸ ë° ì—…ë°ì´íŠ¸</a>를 참조하세요. +</p> +<p> +Android 파트너ì—게는 게시ë˜ê¸° 최소 í•œ 달 ì „ì— ëª¨ë“ ë¬¸ì œ ê´€ë ¨ ì•Œë¦¼ì´ +ì „ë‹¬ë˜ì—ˆìŠµë‹ˆë‹¤. ì´ëŸ¬í•œ ë¬¸ì œì˜ í•´ê²°ì„ ìœ„í•œ 소스 코드 패치는 향후 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-11-01">2018ë…„ 11ì›”Pixel&hairsp;/&hairsp;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> +<p>ì´ ë¼ë¸ŒëŸ¬ë¦¬ëŠ” 실험ì ë¼ì´ë¸ŒëŸ¬ë¦¬ë¡œ 표시ë˜ì—ˆìœ¼ë©°, 프로ë•ì…˜ Android ë¹Œë“œì— ë” ì´ìƒ í¬í•¨ë˜ì§€ 않습니다.</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-11-01-details">2018-11-01 보안 패치 수준 취약성 ì„¸ë¶€ì •ë³´</h2> +<p> +ë‹¤ìŒ ì„¹ì…˜ì—서는 2018-11-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-9522</td> + <td>A-112550251</td> + <td>EoP</td> + <td>높ìŒ</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9524</td> + <td>A-34170870</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>EoP</td> + <td>높ìŒ</td> + <td>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-9527</td> + <td>A-112159345</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>RCE</td> + <td>심ê°</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9536</td> + <td>A-112662184</td> + <td>EoP</td> + <td>심ê°</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9537</td> + <td>A-112891564</td> + <td>EoP</td> + <td>심ê°</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9521</td> + <td>A-111874331</td> + <td>RCE</td> + <td>높ìŒ</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9539</td> + <td>A-113027383</td> + <td>EoP</td> + <td>높ìŒ</td> + <td>8.0, 8.1, 9</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-9540</td> + <td>A-111450417</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>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>ID</td> + <td>높ìŒ</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9544</td> + <td>A-113037220</td> + <td>ID</td> + <td>높ìŒ</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9545</td> + <td>A-113111784</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>ID</td> + <td>보통</td> + <td>9</td> + </tr> + <tr> + <td>ID</td> + <td>높ìŒ</td> + <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> + </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 패치 ìˆ˜ì¤€ì— ì ìš©ë˜ëŠ” +ê° ë³´ì•ˆ ì·¨ì•½ì„±ì— ê´€í•´ ìžì„¸ížˆ 알아볼 수 있습니다. ì·¨ì•½ì„±ì€ +ì˜í–¥ì„ 받는 구성요소 ì•„ëž˜ì— ë¶„ë¥˜ë˜ì–´ 있으며 +CVE, ê´€ë ¨ 참조, <a href="#type">취약성 ìœ í˜•</a>, +<a href="/security/overview/updates-resources.html#severity">심ê°ë„</a>, +구성요소(해당하는 경우), ì—…ë°ì´íŠ¸ëœ AOSP ë²„ì „(해당하는 경우)ê³¼ ê°™ì€ ì„¸ë¶€ì •ë³´ê°€ í¬í•¨ë˜ì–´ 있습니다. 가능한 경우 +AOSP ë³€ê²½ì‚¬í• ëª©ë¡ê³¼ ê°™ì´ ë¬¸ì œë¥¼ í•´ê²°í•œ 공개 변경사í•ì„ 버그 IDì— +연결합니다. í•˜ë‚˜ì˜ ë²„ê·¸ì™€ ê´€ë ¨ëœ ë³€ê²½ì‚¬í•ì´ 여러 ê°œì¸ ê²½ìš° +추가 참조가 버그 ID 다ìŒì— 오는 ë²ˆí˜¸ì— ì—°ê²°ë©ë‹ˆë‹¤. +</p> + +<h3 id="framework-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>ì—…ë°ì´íŠ¸ëœ AOSP ë²„ì „</th> + </tr> + <tr> + <td>CVE-2018-9523</td> + <td>A-112859604</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> +<p>ì´ ì„¹ì…˜ì˜ ê°€ìž¥ 심ê°í•œ 취약성으로 ì¸í•´ 로컬 악성 ì• í”Œë¦¬ì¼€ì´ì…˜ì´ +ê¶Œí•œì´ ì„¤ì •ëœ í”„ë¡œì„¸ìŠ¤ì˜ ì»¨í…스트 ë‚´ì—ì„œ ìž„ì˜ì˜ 코드를 ì‹¤í–‰í• ìˆ˜ +있습니다.</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>참조</th> + <th>ìœ í˜•</th> + <th>심ê°ë„</th> + <th>구성요소</th> + </tr> + <tr> + <td>CVE-2017-15818</td> + <td>A-68992408<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/lk/commit/?id=abe4f7042cbdef928ffc152335a17150fb39b096"> +QC-CR#2078580</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>EcoSystem</td> + </tr> + <tr> + <td>CVE-2018-11995</td> + <td>A-71501677<br /> + <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=e3688be47d2b72f130f90dafd24b5f5acc4684ca"> +QC-CR#2129639</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>부트로ë”</td> + </tr> + <tr> + <td>CVE-2018-11905</td> + <td>A-112277889<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cdcf0409bdad7ed91c11d7715c89acc2e521e96"> +QC-CR#2090797</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>DSP_Services</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-closed-source-components">Qualcomm 비공개 소스 +구성요소</h3> +<p>ë‹¤ìŒ ì·¨ì•½ì„±ì€ Qualcomm êµ¬ì„±ìš”ì†Œì— ì˜í–¥ì„ 주며 해당 +Qualcomm AMSS 보안 ê²Œì‹œíŒ ë˜ëŠ” 보안 ì•Œë¦¼ì— ìžì„¸ížˆ 설명ë˜ì–´ +있습니다. ì´ëŸ¬í•œ ë¬¸ì œì˜ ì‹¬ê°ë„ í‰ê°€ëŠ” Qualcommì—ì„œ ì§ì ‘ +ì œê³µí•©ë‹ˆë‹¤.</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>참조</th> + <th>ìœ í˜•</th> + <th>심ê°ë„</th> + <th>구성요소</th> + </tr> + <tr> + <td>CVE-2017-18317</td> + <td>A-78244877<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>심ê°</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-5912</td> + <td>A-79420111<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>심ê°</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-11264</td> + <td>A-109677962<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>심ê°</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2016-10502</td> + <td>A-68326808<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2017-18316</td> + <td>A-78240714<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2017-18318</td> + <td>A-78240675<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2017-18315</td> + <td>A-78241957<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-11994</td> + <td>A-72950294<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-11996</td> + <td>A-74235967<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-5870</td> + <td>A-77484722<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-5877</td> + <td>A-77484786<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-5916</td> + <td>A-79420492<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-5917</td> + <td>A-79420096<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>높ìŒ</td> + <td>비공개 소스 구성요소</td> + </tr> + <tr> + <td>CVE-2018-11269</td> + <td>A-109678529<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-10-01 보안 패치 수준과 ê´€ë ¨ëœ ëª¨ë“ ë¬¸ì œëŠ” 2018-10-01 +보안 패치 수준 ì´ìƒì—ì„œ í•´ê²°ë©ë‹ˆë‹¤.</li> +<li>2018-11-05 보안 패치 수준 ë° ê·¸ ì´ì „ì˜ ëª¨ë“ íŒ¨ì¹˜ 수준과 ê´€ë ¨ëœ +ë¬¸ì œëŠ” 2018-11-05 보안 패치 수준 ì´ìƒì—ì„œ ëª¨ë‘ í•´ê²°ë©ë‹ˆë‹¤.</li> +</ul> +<p>ì´ëŸ¬í•œ ì—…ë°ì´íŠ¸ë¥¼ í¬í•¨í•˜ëŠ” 기기 ì œì¡°ì—…ì²´ëŠ” 패치 문ìžì—´ ìˆ˜ì¤€ì„ +다ìŒê³¼ ê°™ì´ ì„¤ì •í•´ì•¼ 합니다.</p> +<ul> + <li>[ro.build.version.security_patch]:[2018-11-01]</li> + <li>[ro.build.version.security_patch]:[2018-11-05]</li> +</ul> +<p><strong>2. ì´ ê²Œì‹œíŒì— ë‘ ê°€ì§€ 보안 패치 ìˆ˜ì¤€ì´ ìžˆëŠ” ì´ìœ ê°€ 무엇ì¸ê°€ìš”?</strong></p> +<p> +ì´ ê²Œì‹œíŒì—는 Android 파트너가 ëª¨ë“ Android 기기ì—ì„œ ìœ ì‚¬í•˜ê²Œ ë°œìƒí•˜ëŠ” +취약성 ë¬¸ì œì˜ ì¼ë¶€ë¥¼ ë”ìš± ë¹ ë¥´ê³ ìœ ì—°í•˜ê²Œ í•´ê²°í• ìˆ˜ 있ë„ë¡ ë‘ ê°€ì§€ +보안 패치 ìˆ˜ì¤€ì´ í¬í•¨ë˜ì–´ 있습니다. Android 파트너는 ì´ ê²Œì‹œíŒì— ì–¸ê¸‰ëœ ë¬¸ì œë¥¼ ëª¨ë‘ ìˆ˜ì •í•˜ê³ +ìµœì‹ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ ì‚¬ìš©í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤. +</p> +<ul> +<li>2018-11-01 보안 패치 ìˆ˜ì¤€ì„ ì‚¬ìš©í•˜ëŠ” 기기는 ì´ ë³´ì•ˆ 패치 +수준과 ê´€ë ¨ëœ ëª¨ë“ ë¬¸ì œì™€ ì´ì „ 보안 게시íŒì— ë³´ê³ ëœ +ëª¨ë“ ë¬¸ì œì˜ ìˆ˜ì •ì‚¬í•ì„ í¬í•¨í•´ì•¼ 합니다.</li> +<li>2018-11-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&hairsp;/&hairsp;Nexus +기기용 +ìµœì‹ ë°”ì´ë„ˆë¦¬ ë“œë¼ì´ë²„ì— í¬í•¨ë˜ì–´ 있습니다. +</p> +<p> +<strong>6. 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Pixel / Nexus 게시íŒê³¼ ê°™ì€ +기기&hairsp;/&hairsp;파트너 보안 게시íŒì— ë‚˜ë‰˜ì–´ì ¸ 있는 +ì´ìœ ê°€ 무엇ì¸ê°€ìš”?</strong> +</p> +<p> +ì´ ë³´ì•ˆ 게시íŒì— 설명ë˜ì–´ 있는 보안 ì·¨ì•½ì„±ì€ +Android ê¸°ê¸°ì˜ ìµœì‹ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ ì„ ì–¸í•˜ëŠ” ë° í•„ìš”í•©ë‹ˆë‹¤. 기기&hairsp;/&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&hairsp;/&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ë…„ 11ì›” 5ì¼</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 a3c4ea5f..0260e642 100644 --- a/ko/security/bulletin/2018.html +++ b/ko/security/bulletin/2018.html @@ -34,6 +34,22 @@ <th>보안 패치 수준</th> </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> / + <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-11-01.html?hl=ko">í•œêµì–´</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 /> + 2018-11-05</td> + </tr> + <tr> <td><a href="/security/bulletin/2018-10-01.html">2018ë…„ 10ì›”</a></td> <td> <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / diff --git a/ko/security/bulletin/index.html b/ko/security/bulletin/index.html index 961dfe22..4a51984e 100644 --- a/ko/security/bulletin/index.html +++ b/ko/security/bulletin/index.html @@ -21,7 +21,7 @@ --> <p>월간 기기 ì—…ë°ì´íŠ¸ëŠ” Android 사용ìžì˜ ì•ˆì „ì„ ìœ ì§€í•˜ê³ ê¸°ê¸°ë¥¼ 보호하는 -중요한 수단입니다. ì´ íŽ˜ì´ì§€ì—는 Android를 실행하는 ê¸°ê¸°ì— ì˜í–¥ì„ 주는 ë°œìƒ ê°€ëŠ¥í•œ ë¬¸ì œì— ëŒ€í•œ í•´ê²° ë°©ë²•ì„ ì œê³µí•˜ëŠ” Android 보안 게시íŒì— 대해 ì•Œë ¤ë“œë¦½ë‹ˆë‹¤. 다ìŒê³¼ ê°™ì€ Android 기기 ë° +중요한 수단입니다. ì´ íŽ˜ì´ì§€ì—는 Android 실행 ê¸°ê¸°ì— ì˜í–¥ì„ 주는 ë°œìƒ ê°€ëŠ¥í•œ ë¬¸ì œì— ëŒ€í•´ í•´ê²° ë°©ë²•ì„ ì œê³µí•˜ëŠ” Android 보안 게시íŒì— 대해 ì•Œë ¤ë“œë¦½ë‹ˆë‹¤. 다ìŒê³¼ ê°™ì€ Android 기기 ë° ì¹©ì…‹ ì œì¡°ì—…ì²´ì—ì„œë„ ìžì‚¬ ì œí’ˆê³¼ ê´€ë ¨ëœ ë³´ì•ˆ 취약성 ì„¸ë¶€ì •ë³´ë¥¼ ê²Œì‹œí• ìˆ˜ 있습니다.</p> <ul> <li><a href="/security/bulletin/pixel/">Google</a></li> @@ -64,6 +64,22 @@ Security Updates 그룹</a>ì— ê°€ìž…í•˜ì—¬ ì´ë©”ì¼ ì „ë‹¬ í™˜ê²½ì„¤ì •ì„ ëª¨ <th>게시ì¼</th> <th>보안 패치 수준</th> </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> / + <a href="/security/bulletin/2018-11-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-11-01.html?hl=ko">í•œêµì–´</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 /> + 2018-11-05</td> + </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">2018ë…„ 10ì›”</a></td> <td> @@ -596,7 +612,7 @@ Security Updates 그룹</a>ì— ê°€ìž…í•˜ì—¬ ì´ë©”ì¼ ì „ë‹¬ í™˜ê²½ì„¤ì •ì„ ëª¨ <a href="/security/bulletin/2015-08-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2015ë…„ 8ì›” 13ì¼</td> - <td>N/A</td> + <td>해당 ì—†ìŒ</td> </tr> </tbody></table> diff --git a/ko/security/bulletin/pixel/2018-05-01.html b/ko/security/bulletin/pixel/2018-05-01.html index 917d54fe..6027da5e 100644 --- a/ko/security/bulletin/pixel/2018-05-01.html +++ b/ko/security/bulletin/pixel/2018-05-01.html @@ -38,7 +38,7 @@ Google ê¸°ê¸°ì˜ ê²½ìš° 2018-05-05 보안 패치 수준 ì´ìƒì—ì„œ ì´ ê²Œì‹œí ì—…ë°ì´íŠ¸ë©ë‹ˆë‹¤. ëª¨ë“ ê³ ê°ì€ 기기ì—ì„œ ì´ ì—…ë°ì´íŠ¸ë¥¼ 수ë½í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤. </p> <p class="note"> -<strong>ì°¸ê³ :</strong> Google 기기 펌웨어 ì´ë¯¸ì§€ëŠ”<a href="https://developers.google.com/android/nexus/images"> Google +<strong>ì°¸ê³ :</strong> Google 기기 펌웨어 ì´ë¯¸ì§€ëŠ” <a href="https://developers.google.com/android/nexus/images">Google ê°œë°œìž ì‚¬ì´íŠ¸</a> ì— ìžˆìŠµë‹ˆë‹¤. </p> diff --git a/ko/security/bulletin/pixel/2018-06-01.html b/ko/security/bulletin/pixel/2018-06-01.html index 1c9f578c..659d0efd 100644 --- a/ko/security/bulletin/pixel/2018-06-01.html +++ b/ko/security/bulletin/pixel/2018-06-01.html @@ -38,9 +38,9 @@ Google ê¸°ê¸°ì˜ ê²½ìš° 2018-06-05 보안 패치 수준 ì´ìƒì—ì„œ ì´ ê²Œì‹œí ì—…ë°ì´íŠ¸ë©ë‹ˆë‹¤. ëª¨ë“ ê³ ê°ì€ 기기ì—ì„œ ì´ ì—…ë°ì´íŠ¸ë¥¼ 수ë½í•˜ëŠ” ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤. </p> <p class="note"> -<strong>ì°¸ê³ :</strong> Google 기기 펌웨어 ì´ë¯¸ì§€ëŠ” -<a href="https://developers.google.com/android/images">Google ê°œë°œìž -사ì´íŠ¸</a>ì— ìžˆìŠµë‹ˆë‹¤. +<strong>ì°¸ê³ :</strong> Google 기기 펌웨어 ì´ë¯¸ì§€ëŠ” <a href="https://developers.google.com/android/images">Google +ê°œë°œìž ì‚¬ì´íŠ¸</a> +ì— ìžˆìŠµë‹ˆë‹¤. </p> <h2 id="announcements">공지사í•</h2> <p>2018ë…„ 6ì›” Android 보안 게시íŒì— ì„¤ëª…ëœ ë³´ì•ˆ 취약성 외ì—ë„ @@ -78,21 +78,21 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td>CVE-2018-9374</td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/62b500f99595e99e1db8f0c068f719e68c73551e">A-72710897</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> <tr> <td>CVE-2018-9375</td> <td><a href="https://android.googlesource.com/platform/packages/providers/UserDictionaryProvider/+/cccf7d5c98fc81ff4483f921fb4ebfa974add9c6">A-75298708</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> <tr> <td>CVE-2018-9377</td> <td>A-64752751<a href="#asterisk">*</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>6.0, 6.0.1</td> </tr> @@ -116,7 +116,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td>CVE-2018-9378</td> <td><a href="https://android.googlesource.com/platform/frameworks/av/+/e0c09e4dd62e033aa9688634844d19136c0d34bc">A-73126106</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> @@ -124,14 +124,14 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <td>CVE-2018-9379</td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/42e5aed1d106bef1f8913ffe87aa1f9df6aae90c">A-63766886</a> [<a href="https://android.googlesource.com/platform/packages/providers/MediaProvider/+/76ffd8258c483b7170af49a8a67702426df07f2f">2</a>]</td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> <tr> <td rowspan="2">CVE-2018-9349</td> <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libvpx/+/69ddad629d1db85d8531af694c910626a1e80a9f">A-72510002</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> @@ -143,7 +143,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td rowspan="2">CVE-2018-9350</td> <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libavc/+/fde8eda71e8f7bc9c973fe6fbdd3846951b340ed">A-73552574</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> @@ -155,7 +155,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td rowspan="2">CVE-2018-9351</td> <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libavc/+/27c639d897fb0f1f0acf6a58b5c013d65c63bd04">A-73625898</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> @@ -168,7 +168,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <td rowspan="2">CVE-2018-9352</td> <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libhevc/+/a7303e887a40ab164b19b310068e13ac4f123edc">A-73965867</a> [<a href="https://android.googlesource.com/platform/external/libhevc/+/9434d4d8846241f0575aaf48ee7d4342e926ae77">2</a>]</td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> @@ -180,7 +180,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td rowspan="2">CVE-2018-9353</td> <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libhevc/+/7ea8a36d5de35d71ace260a695199093fcc1f08f">A-73965890</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> @@ -221,21 +221,21 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td>CVE-2018-9380</td> <td><a href="https://android.googlesource.com/platform/system/bt/+/85677abe2cc90bcd8b9df127088a97657d17c986">A-75298652</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> - <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1 </td> + <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> </tr> <tr> <td>CVE-2018-9381</td> <td><a href="https://android.googlesource.com/platform/system/bt/+/0519f6aa5345be0917ad52188479230148adf8bd">A-73125709</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>8.1</td> </tr> <tr> <td>CVE-2018-9382</td> <td>A-35765136<a href="#asterisk">*</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2</td> </tr> @@ -259,14 +259,14 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td>CVE-2018-9383</td> <td>A-73827422<a href="#asterisk">*</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>asn1_decoder</td> </tr> <tr> <td>CVE-2018-9384</td> <td>A-74356909<br /> - <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c02433dd6de32f042cf3ffe476746b1115b8c096">Upstream kernel</a></td> + <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c02433dd6de32f042cf3ffe476746b1115b8c096">업스트림 커ë„</a></td> <td>ID</td> <td>보통</td> <td>커ë„</td> @@ -274,7 +274,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td>CVE-2018-9385</td> <td>A-74128061<br /> - <a href="https://patchwork.kernel.org/patch/10175611/">Upstream kernel</a></td> + <a href="https://patchwork.kernel.org/patch/10175611/">업스트림 커ë„</a></td> <td>EoP</td> <td>보통</td> <td>amba</td> @@ -282,28 +282,28 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <tr> <td>CVE-2018-9386</td> <td>A-71363680<a href="#asterisk">*</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>HTC reboot_block ë“œë¼ì´ë²„</td> </tr> <tr> <td>CVE-2018-9387</td> <td>A-69006385<a href="#asterisk">*</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>mnh_sm ë“œë¼ì´ë²„</td> </tr> <tr> <td>CVE-2018-9388</td> <td>A-68343441<a href="#asterisk">*</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>ftm4_touch</td> </tr> <tr> <td>CVE-2018-9389</td> <td>A-65023306<a href="#asterisk">*</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>ipv4/ipv6</td> </tr> @@ -311,7 +311,7 @@ Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ <td>CVE-2018-7480</td> <td>A-76106168<br /> <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9b54d816e00425c3a517514e0d677bb3cec49258"> -Upstream kernel</a></td> +업스트림 커ë„</a></td> <td>EoP</td> <td>보통</td> <td>ë¸”ë¡ ì²˜ë¦¬ 프로그램</td> @@ -320,7 +320,7 @@ Upstream kernel</a></td> <td>CVE-2017-18075</td> <td>A-73237057<br /> <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d76c68109f37cb85b243a1cf0f40313afd2bae68"> -Upstream kernel</a></td> +업스트림 커ë„</a></td> <td>EoP</td> <td>보통</td> <td>pcrypt</td> @@ -346,7 +346,7 @@ Upstream kernel</a></td> <td>CVE-2018-9390</td> <td>A-76100614<a href="#asterisk">*</a><br /> M-ALPS03849277</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>wlanThermo procfs í•ëª©</td> </tr> @@ -354,7 +354,7 @@ Upstream kernel</a></td> <td>CVE-2018-9391</td> <td>A-72313579<a href="#asterisk">*</a><br /> M-ALPS03762614</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>GPS HAL</td> </tr> @@ -362,7 +362,7 @@ Upstream kernel</a></td> <td>CVE-2018-9392</td> <td>A-72312594<a href="#asterisk">*</a><br /> M-ALPS03762614</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>GPS HAL</td> </tr> @@ -370,7 +370,7 @@ Upstream kernel</a></td> <td>CVE-2018-9393</td> <td>A-72312577<a href="#asterisk">*</a><br /> M-ALPS03753748</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>MTK wlan</td> </tr> @@ -378,7 +378,7 @@ Upstream kernel</a></td> <td>CVE-2018-9394</td> <td>A-72312468<a href="#asterisk">*</a><br /> M-ALPS03753652</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>MTK P2P ë“œë¼ì´ë²„</td> </tr> @@ -386,7 +386,7 @@ Upstream kernel</a></td> <td>CVE-2018-9395</td> <td>A-72312071<a href="#asterisk">*</a><br /> M-ALPS03753735</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>MTK cfg80211</td> </tr> @@ -394,7 +394,7 @@ Upstream kernel</a></td> <td>CVE-2018-9396</td> <td>A-71867113<a href="#asterisk">*</a><br /> M-ALPS03740353</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>Mediatek CCCI</td> </tr> @@ -403,7 +403,7 @@ Upstream kernel</a></td> <td>A-71866634<a href="#asterisk">*</a><br /> M-ALPS03532675<br /> M-ALPS03479586</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>Mediatek WMT 기기</td> </tr> @@ -411,7 +411,7 @@ Upstream kernel</a></td> <td>CVE-2018-9398</td> <td>A-71866289<a href="#asterisk">*</a><br /> M-ALPS03740468</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>FM ë¼ë””오 ë“œë¼ì´ë²„</td> </tr> @@ -419,7 +419,7 @@ Upstream kernel</a></td> <td>CVE-2018-9399</td> <td>A-71866200<a href="#asterisk">*</a><br /> M-ALPS03740489</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>/proc/driver/wmt_dbg ë“œë¼ì´ë²„</td> </tr> @@ -427,7 +427,7 @@ Upstream kernel</a></td> <td>CVE-2018-9400</td> <td>A-71865884<a href="#asterisk">*</a><br /> M-ALPS03753678</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>Goodix 터치스í¬ë¦° ë“œë¼ì´ë²„</td> </tr> @@ -435,7 +435,7 @@ Upstream kernel</a></td> <td>CVE-2017-13308</td> <td>A-70728757<a href="#asterisk">*</a><br /> M-ALPS03751855</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>thermal</td> </tr> @@ -443,7 +443,7 @@ Upstream kernel</a></td> <td>CVE-2018-9401</td> <td>A-70511226<a href="#asterisk">*</a><br /> M-ALPS03693409</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>cameraisp</td> </tr> @@ -451,7 +451,7 @@ Upstream kernel</a></td> <td>CVE-2018-9402</td> <td>A-70728072<a href="#asterisk">*</a><br /> M-ALPS03684171</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>WLAN ë“œë¼ì´ë²„</td> </tr> @@ -459,7 +459,7 @@ Upstream kernel</a></td> <td>CVE-2018-9403</td> <td>A-72313700<a href="#asterisk">*</a><br /> M-ALPS03762413</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>HAL</td> </tr> @@ -467,7 +467,7 @@ Upstream kernel</a></td> <td>CVE-2018-9404</td> <td>A-72314374<a href="#asterisk">*</a><br /> M-ALPS03773299</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>ë¬´ì„ ì¸í„°íŽ˜ì´ìŠ¤ ë ˆì´ì–´</td> </tr> @@ -475,7 +475,7 @@ Upstream kernel</a></td> <td>CVE-2018-9405</td> <td>A-72314804<a href="#asterisk">*</a><br /> M-ALPS03762818</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>DmAgent</td> </tr> @@ -483,7 +483,7 @@ Upstream kernel</a></td> <td>CVE-2018-9406</td> <td>A-70726950<a href="#asterisk">*</a><br /> M-ALPS03684231</td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>NlpService</td> </tr> @@ -491,7 +491,7 @@ Upstream kernel</a></td> <td>CVE-2018-9407</td> <td>A-70728406<a href="#asterisk">*</a><br /> M-ALPS03902529</td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>emmc</td> </tr> @@ -499,7 +499,7 @@ Upstream kernel</a></td> <td>CVE-2018-9408</td> <td>A-70729980<a href="#asterisk">*</a><br /> M-ALPS03693684</td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>GPS</td> </tr> @@ -540,7 +540,7 @@ Upstream kernel</a></td> <td>CVE-2018-5895</td> <td>A-70293535<a href="#asterisk">*</a><br /> QC-CR#2161027</td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>qcacld</td> </tr> @@ -548,7 +548,7 @@ Upstream kernel</a></td> <td>CVE-2018-5836</td> <td>A-74237168<br /> <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=12a789c2e0e9fd2df40ac13ac27fe99487263887">QC-CR#2160375</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>WLAN</td> </tr> @@ -557,7 +557,7 @@ Upstream kernel</a></td> <td>A-72957387<br /> <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=cf1c43ce8840021d2907afaa6c514e6971d7ebac"> QC-CR#2129566</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>WLAN</td> </tr> @@ -575,7 +575,7 @@ QC-CR#2107596</a></td> <td>A-68992461<br /> <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=c8dc3bf07ee909e6e57ad7887f9d3c0ffa5df795"> QC-CR#2104835</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>부트로ë”</td> </tr> @@ -584,7 +584,7 @@ QC-CR#2104835</a></td> <td>A-68992457<br /> <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=1daa83baa41d1e6291e89f69e6487695b6890c01"> QC-CR#2073366</a></td> - <td>ID </td> + <td>ID</td> <td>보통</td> <td>부트로ë”</td> </tr> @@ -593,7 +593,7 @@ QC-CR#2073366</a></td> <td>A-74237664<br /> <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=4cc54a30958d2a8d989364aa45a27fde3dd17352"> QC-CR#2146949</a></td> - <td>EoP =</td> + <td>EoP</td> <td>보통</td> <td>WLAN</td> </tr> @@ -669,7 +669,7 @@ QC-CR#2127305</a></td> <td>CVE-2018-5857</td> <td>A-62536960<a href="#asterisk">*</a><br /> QC-CR#2169403</td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>wcd_cpe_core</td> </tr> @@ -695,7 +695,7 @@ QC-CR#2062648</a></td> <td>CVE-2017-15856</td> <td>A-72957506<br /> <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=ed02c0ccd6f7461a69d64903738372eaf21babcd">QC-CR#2111922</a></td> - <td>EoP </td> + <td>EoP</td> <td>보통</td> <td>power_stats debugfs 노드</td> </tr> diff --git a/ko/security/bulletin/pixel/2018-10-01.html b/ko/security/bulletin/pixel/2018-10-01.html index aab555af..7c1c1057 100644 --- a/ko/security/bulletin/pixel/2018-10-01.html +++ b/ko/security/bulletin/pixel/2018-10-01.html @@ -183,7 +183,7 @@ Google ê¸°ê¸°ì˜ ê²½ìš° 2018-10-05 보안 패치 수준 ì´ìƒì—ì„œ ì´ ê²Œì‹œí ë“œë¼ì´ë²„ì— í¬í•¨ë˜ì–´ 있습니다. </p> <p> -<strong>5 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— ë‚˜ë‰˜ì–´ì ¸ 있는 ì´ìœ ê°€ +<strong>5 보안 ì·¨ì•½ì„±ì´ ì´ ê²Œì‹œíŒê³¼ Android 보안 게시íŒì— ë‚˜ëˆ„ì–´ì ¸ 있는 ì´ìœ ê°€ 무엇ì¸ê°€ìš”?</strong> </p> <p> diff --git a/ko/security/bulletin/pixel/2018-11-01.html b/ko/security/bulletin/pixel/2018-11-01.html new file mode 100644 index 00000000..f8ab56f1 --- /dev/null +++ b/ko/security/bulletin/pixel/2018-11-01.html @@ -0,0 +1,288 @@ +<html devsite><head> + <title>Pixel / Nexus 보안 게시íŒâ€”2018ë…„ 11ì›”</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ë…„ 11ì›” 5rlxì¼ ê²Œì‹œë¨</em></p> + +<p> +Pixel&hairsp;/&hairsp;Nexus 보안 게시íŒì—서는 <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">지ì›ë˜ëŠ” +Google Pixel ë° Nexus 기기</a>(Google 기기)ì— ì˜í–¥ì„ 미치는 보안 취약성 ë° ê¸°ëŠ¥ ê°œì„ ì„ ìžì„¸ížˆ 다룹니다. +Google ê¸°ê¸°ì˜ ê²½ìš° 2018-11-05 보안 패치 수준 ì´ìƒì—ì„œ ì´ ê²Œì‹œíŒì— ì–¸ê¸‰ëœ ëª¨ë“ ë¬¸ì œì™€ 2018ë…„ 11ì›” Android 보안 게시íŒì˜ +ëª¨ë“ ë¬¸ì œë¥¼ +해결했습니다. ê¸°ê¸°ì˜ ë³´ì•ˆ 패치 ìˆ˜ì¤€ì„ í™•ì¸í•˜ëŠ” ë°©ë²•ì€ <a href="https://support.google.com/pixelphone/answer/4457705" class="external">Android ë²„ì „ í™•ì¸ ë° ì—…ë°ì´íŠ¸</a>를 참조하세요. +</p> +<p> +지ì›ë˜ëŠ” ëª¨ë“ Google 기기는 2018-11-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-11-01">2018ë…„ 11ì›” Android 보안 게시íŒ</a>ì— +ì„¤ëª…ëœ ë³´ì•ˆ 취약성 외ì—ë„ +Pixel ë° Nexus 기기ì—는 아래 ì„¤ëª…ëœ ë³´ì•ˆ 취약성과 ê´€ë ¨ëœ íŒ¨ì¹˜ë„ +í¬í•¨ë˜ì–´ 있습니다. 파트너ì—게는 ì ì–´ë„ 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="htc-components">HTC 구성요소</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-9580</td> + <td>A-76222002<a href="#asterisk">*</a></td> + <td>EoP</td> + <td>보통</td> + <td>부트로ë”</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-components">Qualcomm 구성요소</h3> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>참조</th> + <th>ìœ í˜•</th> + <th>심ê°ë„</th> + <th>구성요소</th> + </tr> + <tr> + <td>CVE-2017-14888</td> + <td>A-70237718<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d50dfd647b2396d2e2c05b7aee84d831e4a18d68">QC-CR#2119729</a></td> + <td>해당 ì—†ìŒ</td> + <td>보통</td> + <td>WLAN Host</td> + </tr> + <tr> + <td>CVE-2017-15835</td> + <td>A-72957155<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=b6eeed234707244c799ae7009e67312b8bf33ccd">QC-CR#2125781</a></td> + <td>해당 ì—†ìŒ</td> + <td>보통</td> + <td>WLAN Host</td> + </tr> +</tbody></table> + +<h2 id="functional-patches">기능 패치</h2> + +<p>Android 9를 실행하는 ëª¨ë“ Pixel 기기는 11ì›” OTAì˜ ì¼í™˜ìœ¼ë¡œ + Android 9 ì—…ë°ì´íŠ¸ë¥¼ 받게 ë©ë‹ˆë‹¤. + ì´ ë¶„ê¸°ë³„ ë²„ì „ì—는 Android í”Œëž«í¼ ë° ì§€ì›ë˜ëŠ” Pixel ê¸°ê¸°ì˜ ì—¬ëŸ¬ ë¶€ë¶„ì— ê´€í•œ + 다양한 기능 ì—…ë°ì´íŠ¸ ë° ê°œì„ ì‚¬í•ì´ í¬í•¨ë˜ì–´ 있습니다.</p> + +<p>ì´ë²ˆ ë²„ì „ì—는 다ìŒì˜ ìˆ˜ì • 사í•ë„ í¬í•¨ë˜ì–´ 있습니다. Android + 기기 ì œì¡°ì—…ì²´ëŠ” ì´ëŸ¬í•œ ìˆ˜ì • 사í•ì„ 반드시 ë°˜ì˜í•´ì•¼ 합니다.</p> + +<table> + <tbody><tr> + <th>참조</th> + <th>ì¹´í…Œê³ ë¦¬</th> + <th>ê°œì„ ì‚¬í•</th> + <th>기기</th> + </tr> + <tr> + <td>A-111401911</td> + <td>ë””ìŠ¤í”Œë ˆì´</td> + <td><a href="/devices/tech/display/pip">PIP 모드</a>를 사용하여 ê¸°ê¸°ì˜ ì„±ëŠ¥ + ê°œì„ </td> + <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td> + </tr> + <tr> + <td>A-109769728</td> + <td>í”„ë ˆìž„ì›Œí¬</td> + <td>Strongbox ëŒ€ì¹ í‚¤ ìƒì„± ìš”ì² ê°œì„ </td> + <td>Pixel 3, Pixel 3 XL</td> + </tr> + <tr> + <td>A-112198479</td> + <td>ë””ìŠ¤í”Œë ˆì´</td> + <td><a href="/devices/tech/display/pip">PIP 모드</a>를 사용하여 + ì•±ì˜ ì„±ëŠ¥ ê°œì„ </td> + <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td> + </tr> + <tr> + <td>A-112714177</td> + <td>알림</td> + <td>ì•Œë¦¼ì˜ ì•ˆì •ì„± ê°œì„ </td> + <td>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-11-05 보안 패치 수준 ë° ê·¸ ì´ì „ì˜ ëª¨ë“ íŒ¨ì¹˜ 수준과 ê´€ë ¨ëœ +ë¬¸ì œëŠ” 2018-11-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/nexus/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ë…„ 11ì›” 5ì¼</td> + <td>게시íŒì´ 게시ë¨</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/ko/security/bulletin/pixel/2018.html b/ko/security/bulletin/pixel/2018.html index 91f0ebfc..e1533434 100644 --- a/ko/security/bulletin/pixel/2018.html +++ b/ko/security/bulletin/pixel/2018.html @@ -38,15 +38,13 @@ </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018ë…„ 10ì›”</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> - --> + <td> + <a href="/security/bulletin/pixel/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/pixel/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/pixel/2018-10-01.html">English</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>2018ë…„ 10ì›” 1ì¼</td> <td>2018-10-05</td> diff --git a/ko/security/bulletin/pixel/index.html b/ko/security/bulletin/pixel/index.html index a84bf384..b373c4ac 100644 --- a/ko/security/bulletin/pixel/index.html +++ b/ko/security/bulletin/pixel/index.html @@ -29,7 +29,7 @@ Pixel ë° Nexus ê¸°ê¸°ì˜ Nexus 기기</a>ì— ì ìš©ë©ë‹ˆë‹¤.</p> <h3 id="notification">알림</h3> -<p>Pixel ë° Nexus 기기는 월간 게시íŒì´ 출시ë˜ëŠ” ë‚ ë¶€í„° OTA ì—…ë°ì´íŠ¸ê°€ +<p>Pixel ë° Nexus 기기는 월간 게시íŒì´ 게시ë˜ëŠ” ë‚ ë¶€í„° OTA ì—…ë°ì´íŠ¸ê°€ 가능합니다. ì¼ë°˜ì 으로 OTAê°€ ê° Nexus ê¸°ê¸°ì— ë„달하는 ë° 1ì£¼ì¼ ë°˜ ì •ë„ê°€ 걸립니다. Nexus 펌웨어 ì´ë¯¸ì§€ì˜ 경우 매월 <a href="https://developers.google.com/android/nexus/images">Google ê°œë°œìž @@ -58,15 +58,13 @@ Pixel&hairsp;/&hairsp;Nexus 게시íŒì´ ê²Œì‹œëœ í›„ 24~48시간 ë‚´ì— </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018ë…„ 10ì›”</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> - --> + <td> + <a href="/security/bulletin/pixel/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/pixel/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/pixel/2018-10-01.html">English</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>2018ë…„ 10ì›” 1ì¼</td> <td>2018-10-05</td> diff --git a/ru/security/bulletin/2018-07-01.html b/ru/security/bulletin/2018-07-01.html index 0724da95..d0afc3e6 100644 --- a/ru/security/bulletin/2018-07-01.html +++ b/ru/security/bulletin/2018-07-01.html @@ -49,7 +49,7 @@ </ul> <h2 id="2018-07-01-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-07-01)</h2> <p> -Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-07-01. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), и дополнительные ÑÑылки в квадратных Ñкобках. +Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-07-01. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), и дополнительные ÑÑылки в квадратных Ñкобках. </p> <h3 id="framework">Framework</h3> @@ -185,7 +185,7 @@ <h2 id="2018-07-05-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-07-05)</h2> <p> -Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-07-05. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведена таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), и дополнительные ÑÑылки в квадратных Ñкобках. +Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-07-05. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведена таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, мы приводим оÑновную ÑÑылку на опубликованное изменение, ÑвÑзанное Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки (например, ÑпиÑок AOSP), и дополнительные ÑÑылки в квадратных Ñкобках. </p> <h3 id="kernel-components">Компоненты Ñдра</h3> @@ -284,7 +284,7 @@ QC-CR#2151011</td> <td>ПП</td> <td>Ð’Ñ‹Ñокий</td> - <td>Драйвер OpenGL ES</td> + <td>Драйвер OpenGL ES</td> </tr> <tr> <td>CVE-2018-3586</td> @@ -555,7 +555,7 @@ </tr> </tbody></table> <p id="asterisk"> -<strong>5. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>5. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/2018-08-01.html b/ru/security/bulletin/2018-08-01.html index 899b67f5..89a22005 100644 --- a/ru/security/bulletin/2018-08-01.html +++ b/ru/security/bulletin/2018-08-01.html @@ -274,8 +274,7 @@ Upstream kernel</a></td> <tr> <td>CVE-2018-9465</td> <td>A-69164715<br /> - <a href="https://patchwork.kernel.org/patch/10058587/">Upstream -kernel</a></td> + <a href="https://patchwork.kernel.org/patch/10058587/">Upstream kernel</a></td> <td>ПП</td> <td>Ð’Ñ‹Ñокий</td> <td>Binder</td> @@ -283,7 +282,7 @@ kernel</a></td> </tbody></table> <h3 id="qualcomm-components">Компоненты Qualcomm</h3> -<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ</p> +<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет злоумышленнику, не обладающему дополнительными правами на выполнение кода, удаленно раÑкрывать информацию.</p> <table> <colgroup><col width="21%" /> @@ -336,7 +335,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%" /> @@ -512,8 +511,8 @@ QC-CR#2204872</a></td> <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-08-01.</li> -<li>Ð’ иÑправлении от 5 авгуÑта 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-08-05.</li> +<li>Ð’ иÑправлении от 1 авгуÑта 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-08-01.</li> +<li>Ð’ иÑправлении от 5 авгуÑта 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-08-05.</li> </ul> <p>Производители уÑтройÑтв, позволÑющие уÑтановить Ñти обновлениÑ, должны приÑвоить им один из Ñтих уровней:</p> <ul> @@ -522,11 +521,11 @@ QC-CR#2204872</a></td> </ul> <p><strong>2. Почему в Ñтом бюллетене говоритÑÑ Ð¾ двух обновлениÑÑ… ÑиÑтемы безопаÑноÑти?</strong></p> <p> -Мы включили в Ñтот бюллетень ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ двух обновлениÑÑ…, чтобы помочь нашим партнерам как можно Ñкорее уÑтранить уÑзвимоÑти, затрагивающие вÑе уÑтройÑтва Android. Рекомендуем партнерам Android иÑправить вÑе вышеперечиÑленные проблемы и уÑтановить поÑледнее обновление ÑиÑтемы безопаÑноÑти. +Мы включили в Ñтот бюллетень ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ двух обновлениÑÑ…, чтобы помочь нашим партнерам как можно Ñкорее уÑтранить уÑзвимоÑти, затрагивающие вÑе уÑтройÑтва Android. Рекомендуем партнерам Android иÑправить вÑе перечиÑленные выше проблемы и уÑтановить поÑледнее обновление ÑиÑтемы безопаÑноÑти. </p> <ul> <li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-08-01 должны быть иÑправлены вÑе проблемы, упомÑнутые в ÑоответÑтвующем разделе Ñтого бюллетенÑ, а также в предыдущих выпуÑках.</li> -<li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-08-05 или более новым должны быть иÑправлены вÑе проблемы, упомÑнутые в Ñтом бюллетене и предыдущих выпуÑках.</li> +<li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-08-05 или более поздним должны быть иÑправлены вÑе проблемы, упомÑнутые в Ñтом бюллетене и предыдущих выпуÑках.</li> </ul> <p> Рекомендуем партнерам Ñобрать вÑе иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ в одно обновление. diff --git a/ru/security/bulletin/2018-09-01.html b/ru/security/bulletin/2018-09-01.html index 5ed7b18c..febf4537 100644 --- a/ru/security/bulletin/2018-09-01.html +++ b/ru/security/bulletin/2018-09-01.html @@ -47,7 +47,7 @@ </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). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. +Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-09-01. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. </p> <h3 id="android-runtime">Android Runtime</h3> @@ -749,10 +749,10 @@ QC-CR#2119840<a href="#asterisk">*</a></td> </tr> </tbody></table> <p id="asterisk"> -<strong>5. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<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>. +Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/drivers" class="external">Ñайте Google Developers</a>. </p> <p> <strong>6. Почему теперь одни уÑзвимоÑти опиÑываютÑÑ Ð² Ñтих бюллетенÑÑ…, а другие – в бюллетенÑÑ… по безопаÑноÑти Pixel  и Nexus, а также в оÑтальных бюллетенÑÑ… партнеров?</strong> diff --git a/ru/security/bulletin/2018-10-01.html b/ru/security/bulletin/2018-10-01.html index db2d464a..8b0ac6e5 100644 --- a/ru/security/bulletin/2018-10-01.html +++ b/ru/security/bulletin/2018-10-01.html @@ -43,11 +43,11 @@ </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> +<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-10-01-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-10-01)</h2> <p> -Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-10-01. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. +Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-10-01. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. </p> <h3 id="framework">Framework</h3> @@ -267,7 +267,7 @@ <h2 id="2018-10-05-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-10-05)</h2> <p> -Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-10-05. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведена таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="/security/overview/updates-resources.html#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. +Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-10-05. Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведена таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources.html#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Когда неÑколько изменений отноÑÑÑ‚ÑÑ Ðº одной ошибке, дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. </p> <h3 id="kernel-components">Компоненты Ñдра</h3> @@ -402,10 +402,10 @@ </tr> </tbody></table> <p id="asterisk"> -<strong>5. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<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>. +Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/drivers" class="external">Ñайте Google Developers</a>. </p> <p> <strong>6. Почему теперь одни уÑзвимоÑти опиÑываютÑÑ Ð² Ñтих бюллетенÑÑ…, а другие – в бюллетенÑÑ… по безопаÑноÑти Pixel  и Nexus, а также в оÑтальных бюллетенÑÑ… партнеров?</strong> diff --git a/ru/security/bulletin/2018-11-01.html b/ru/security/bulletin/2018-11-01.html new file mode 100644 index 00000000..cf7c5639 --- /dev/null +++ b/ru/security/bulletin/2018-11-01.html @@ -0,0 +1,589 @@ +<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>Опубликовано 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> +<p> +Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет находÑщемуÑÑ Ð¿Ð¾Ð±Ð»Ð¸Ð·Ð¾Ñти злоумышленнику выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñпециально Ñозданного файла. <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-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> +<p>Библиотека была отмечена как ÑкÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¸ больше не включаетÑÑ Ð² какие-либо рабочие Ñборки Android.</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-11-01-details">ОпиÑание уÑзвимоÑтей (обновление ÑиÑтемы безопаÑноÑти 2018-11-01)</h2> +<p> +Ð’ Ñтом разделе вы найдете подробную информацию обо вÑех уÑзвимоÑÑ‚ÑÑ…, уÑтраненных в обновлении ÑиÑтемы безопаÑноÑти 2018-11-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-9522</td> + <td>A-112550251</td> + <td>ПП</td> + <td>Ð’Ñ‹Ñокий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9524</td> + <td>A-34170870</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>ПП</td> + <td>Ð’Ñ‹Ñокий</td> + <td>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-9527</td> + <td>A-112159345</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>УВК</td> + <td>КритичеÑкий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9536</td> + <td>A-112662184</td> + <td>ПП</td> + <td>КритичеÑкий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9537</td> + <td>A-112891564</td> + <td>ПП</td> + <td>КритичеÑкий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9521</td> + <td>A-111874331</td> + <td>УВК</td> + <td>Ð’Ñ‹Ñокий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9539</td> + <td>A-113027383</td> + <td>ПП</td> + <td>Ð’Ñ‹Ñокий</td> + <td>8.0, 8.1, 9.0</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-9540</td> + <td>A-111450417</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>РИ</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>РИ</td> + <td>Ð’Ñ‹Ñокий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9544</td> + <td>A-113037220</td> + <td>РИ</td> + <td>Ð’Ñ‹Ñокий</td> + <td>9.0</td> + </tr> + <tr> + <td>CVE-2018-9545</td> + <td>A-113111784</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>РИ</td> + <td>Средний</td> + <td>9.0</td> + </tr> + <tr> + <td>РИ</td> + <td>Ð’Ñ‹Ñокий</td> + <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> + </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). Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. +</p> + +<h3 id="framework-05">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-9523</td> + <td>A-112859604</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> +<p>Ð¡Ð°Ð¼Ð°Ñ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ позволÑет локальному вредоноÑному ПО выполнÑÑ‚ÑŒ произвольный код в контекÑте привилегированного процеÑÑа.</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>СÑылки</th> + <th>Тип</th> + <th>Уровень ÑерьезноÑти</th> + <th>Компонент</th> + </tr> + <tr> + <td>CVE-2017-15818</td> + <td>A-68992408<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/lk/commit/?id=abe4f7042cbdef928ffc152335a17150fb39b096"> +QC-CR#2078580</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>ÐкоÑиÑтема</td> + </tr> + <tr> + <td>CVE-2018-11995</td> + <td>A-71501677<br /> + <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=e3688be47d2b72f130f90dafd24b5f5acc4684ca"> +QC-CR#2129639</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Загрузчик</td> + </tr> + <tr> + <td>CVE-2018-11905</td> + <td>A-112277889<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cdcf0409bdad7ed91c11d7715c89acc2e521e96"> +QC-CR#2090797</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>DSP_Services</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-closed-source-components">Компоненты Qualcomm Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</h3> +<p>Ðти уÑзвимоÑти затрагивают компоненты Qualcomm. Они опиÑаны в бюллетенÑÑ… по безопаÑноÑти Qualcomm AMSS или оповещениÑÑ… ÑиÑтемы безопаÑноÑти. Уровень ÑерьезноÑти Ñтих уÑзвимоÑтей определÑетÑÑ Ð½ÐµÐ¿Ð¾ÑредÑтвенно компанией Qualcomm.</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>СÑылки</th> + <th>Тип</th> + <th>Уровень ÑерьезноÑти</th> + <th>Компонент</th> + </tr> + <tr> + <td>CVE-2017-18317</td> + <td>A-78244877<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>КритичеÑкий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-5912</td> + <td>A-79420111<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>КритичеÑкий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-11264</td> + <td>A-109677962<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>КритичеÑкий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2016-10502</td> + <td>A-68326808<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2017-18316</td> + <td>A-78240714<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2017-18318</td> + <td>A-78240675<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2017-18315</td> + <td>A-78241957<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-11994</td> + <td>A-72950294<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-11996</td> + <td>A-74235967<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-5870</td> + <td>A-77484722<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-5877</td> + <td>A-77484786<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-5916</td> + <td>A-79420492<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-5917</td> + <td>A-79420096<a href="#asterisk">*</a></td> + <td>Ð/Д</td> + <td>Ð’Ñ‹Ñокий</td> + <td>Компонент Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом</td> + </tr> + <tr> + <td>CVE-2018-11269</td> + <td>A-109678529<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-11-01.</li> +<li>Ð’ иÑправлении от 5 ноÑÐ±Ñ€Ñ 2018 года или более новом уÑтранены вÑе проблемы, ÑвÑзанные Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 2018-11-05.</li> +</ul> +<p>Производители уÑтройÑтв, позволÑющие уÑтановить Ñти обновлениÑ, должны приÑвоить им один из Ñтих уровней:</p> +<ul> + <li>[ro.build.version.security_patch]:[2018-11-01]</li> + <li>[ro.build.version.security_patch]:[2018-11-05]</li> +</ul> +<p><strong>2. Почему в Ñтом бюллетене говоритÑÑ Ð¾ двух обновлениÑÑ… ÑиÑтемы безопаÑноÑти?</strong></p> +<p> +Мы включили в Ñтот бюллетень ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ двух обновлениÑÑ…, чтобы помочь нашим партнерам как можно Ñкорее уÑтранить уÑзвимоÑти, затрагивающие вÑе уÑтройÑтва Android. Рекомендуем партнерам Android иÑправить вÑе перечиÑленные выше проблемы и уÑтановить поÑледнее обновление ÑиÑтемы безопаÑноÑти. +</p> +<ul> +<li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-11-01 должны быть иÑправлены вÑе проблемы, упомÑнутые в ÑоответÑтвующем разделе Ñтого бюллетенÑ, а также в предыдущих выпуÑках.</li> +<li>Ðа уÑтройÑтвах Ñ ÑƒÑтановленным обновлением 2018-11-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>5 ноÑÐ±Ñ€Ñ 2018 г.</td> + <td>Бюллетень опубликован.</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/ru/security/bulletin/2018.html b/ru/security/bulletin/2018.html index 60b2c166..f8c3a771 100644 --- a/ru/security/bulletin/2018.html +++ b/ru/security/bulletin/2018.html @@ -35,14 +35,13 @@ </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">ОктÑбрь 2018 г.</a></td> - <td>ГотовитÑÑ Ðº публикации <!-- - <a href="/security/bulletin/2018-10-01.html">English</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> - --> + <td> + <a href="/security/bulletin/2018-10-01.html">English</a> / +<a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / +<a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / +<a href="/security/bulletin/2018-10-01.html?hl=ru">руÑÑкий</a> / +<a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / +<a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>1 октÑÐ±Ñ€Ñ 2018 г.</td> <td>2018-10-01<br /> diff --git a/ru/security/bulletin/index.html b/ru/security/bulletin/index.html index 0aac331f..07225d14 100644 --- a/ru/security/bulletin/index.html +++ b/ru/security/bulletin/index.html @@ -57,14 +57,13 @@ </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">ОктÑбрь 2018 г.</a></td> - <td>ГотовитÑÑ Ðº публикации <!-- - <a href="/security/bulletin/2018-10-01.html">English</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> - --> + <td> + <a href="/security/bulletin/2018-10-01.html">English</a> / +<a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / +<a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / +<a href="/security/bulletin/2018-10-01.html?hl=ru">руÑÑкий</a> / +<a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / +<a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>1 октÑÐ±Ñ€Ñ 2018 г.</td> <td>2018-10-01<br /> diff --git a/ru/security/bulletin/pixel/2018-01-01.html b/ru/security/bulletin/pixel/2018-01-01.html index c8874335..c658221d 100644 --- a/ru/security/bulletin/pixel/2018-01-01.html +++ b/ru/security/bulletin/pixel/2018-01-01.html @@ -725,7 +725,7 @@ QC-CR#2078342</a></td> </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/pixel/2018-02-01.html b/ru/security/bulletin/pixel/2018-02-01.html index af5888cf..21a575e2 100644 --- a/ru/security/bulletin/pixel/2018-02-01.html +++ b/ru/security/bulletin/pixel/2018-02-01.html @@ -536,7 +536,7 @@ QC-CR#2003798</a></td> </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/pixel/2018-03-01.html b/ru/security/bulletin/pixel/2018-03-01.html index 9b14b138..bba31988 100644 --- a/ru/security/bulletin/pixel/2018-03-01.html +++ b/ru/security/bulletin/pixel/2018-03-01.html @@ -621,7 +621,7 @@ QC-CR#2119401</a></td> </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/pixel/2018-04-01.html b/ru/security/bulletin/pixel/2018-04-01.html index 98ba5896..e3a5835f 100644 --- a/ru/security/bulletin/pixel/2018-04-01.html +++ b/ru/security/bulletin/pixel/2018-04-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> @@ -945,7 +945,7 @@ QC-CR#2098332</a></td> </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/pixel/2018-05-01.html b/ru/security/bulletin/pixel/2018-05-01.html index 9f2dc2e0..7d851afa 100644 --- a/ru/security/bulletin/pixel/2018-05-01.html +++ b/ru/security/bulletin/pixel/2018-05-01.html @@ -537,7 +537,7 @@ QC-CR#2149720</a></td> </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/pixel/2018-06-01.html b/ru/security/bulletin/pixel/2018-06-01.html index b7596172..67daedbe 100644 --- a/ru/security/bulletin/pixel/2018-06-01.html +++ b/ru/security/bulletin/pixel/2018-06-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> @@ -30,7 +30,8 @@ Обновление ÑиÑтемы безопаÑноÑти 2018-06-05 получат вÑе поддерживаемые уÑтройÑтва Google. Мы наÑтоÑтельно рекомендуем пользователÑм уÑтановить Ñто обновление. </p> <p class="note"> -<strong>Примечание.</strong> Образы вÑтроенного ПО Ð´Ð»Ñ ÑƒÑтройÑтв Google можно найти на <a href="https://developers.google.com/android/images">Ñайте Google Developers</a>. +<strong>Примечание.</strong> Образы вÑтроенного ПО Ð´Ð»Ñ ÑƒÑтройÑтв Google можно найти на +<a href="https://developers.google.com/android/images">Ñайте Google Developers</a>. </p> <h2 id="announcements">ОбъÑвлениÑ</h2> <p>Помимо иÑправлений уÑзвимоÑтей, опиÑанных в бюллетене по безопаÑноÑти Android за июнь 2018 года, Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus Ñодержат также иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, перечиÑленных ниже. Мы Ñообщили партнерам об Ñтих проблемах не менее меÑÑца назад. Они могут включить Ñти иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ñвои Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти.</p> @@ -101,7 +102,8 @@ </tr> <tr> <td>CVE-2018-9379</td> - <td><a href="https://android.googlesource.com/platform/frameworks/base/+/42e5aed1d106bef1f8913ffe87aa1f9df6aae90c">A-63766886</a> [<a href="https://android.googlesource.com/platform/packages/providers/MediaProvider/+/76ffd8258c483b7170af49a8a67702426df07f2f">2</a>]</td> + <td><a href="https://android.googlesource.com/platform/frameworks/base/+/42e5aed1d106bef1f8913ffe87aa1f9df6aae90c">A-63766886</a> + [<a href="https://android.googlesource.com/platform/packages/providers/MediaProvider/+/76ffd8258c483b7170af49a8a67702426df07f2f">2</a>]</td> <td>РИ</td> <td>Средний</td> <td>6.0, 6.0.1, 7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> @@ -144,7 +146,8 @@ </tr> <tr> <td rowspan="2">CVE-2018-9352</td> - <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libhevc/+/a7303e887a40ab164b19b310068e13ac4f123edc">A-73965867</a> [<a href="https://android.googlesource.com/platform/external/libhevc/+/9434d4d8846241f0575aaf48ee7d4342e926ae77">2</a>]</td> + <td rowspan="2"><a href="https://android.googlesource.com/platform/external/libhevc/+/a7303e887a40ab164b19b310068e13ac4f123edc">A-73965867</a> + [<a href="https://android.googlesource.com/platform/external/libhevc/+/9434d4d8846241f0575aaf48ee7d4342e926ae77">2</a>]</td> <td>РИ</td> <td>Средний</td> <td>7.0, 7.1.1, 7.1.2, 8.0, 8.1</td> diff --git a/ru/security/bulletin/pixel/2018-07-01.html b/ru/security/bulletin/pixel/2018-07-01.html index 60d88ef8..6dd0700f 100644 --- a/ru/security/bulletin/pixel/2018-07-01.html +++ b/ru/security/bulletin/pixel/2018-07-01.html @@ -38,7 +38,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> @@ -429,7 +429,7 @@ </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers">Ñайте Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²</a>. diff --git a/ru/security/bulletin/pixel/2018-08-01.html b/ru/security/bulletin/pixel/2018-08-01.html index dc23432f..149a5b00 100644 --- a/ru/security/bulletin/pixel/2018-08-01.html +++ b/ru/security/bulletin/pixel/2018-08-01.html @@ -267,7 +267,7 @@ QC-CR#2174716</a></td> QC-CR#2169715</a></td> <td>ПП</td> <td>Средний</td> - <td>Драйвер diag</td> + <td>Драйвер DIAG</td> </tr> <tr> <td>CVE-2018-5904</td> @@ -486,7 +486,7 @@ QC-CR#2185477</a></td> <strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> -Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers" class="external">Ñайте Google Developers</a>. +Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers" class="external">Ñайте Google Developers</a>. </p> <p> <strong>5. Почему теперь одни уÑзвимоÑти опиÑываютÑÑ Ð² Ñтом бюллетене, а другие – в бюллетенÑÑ… по безопаÑноÑти Android?</strong> @@ -506,7 +506,7 @@ QC-CR#2185477</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/pixel/2018-09-01.html b/ru/security/bulletin/pixel/2018-09-01.html index 055a48e1..4337ea68 100644 --- a/ru/security/bulletin/pixel/2018-09-01.html +++ b/ru/security/bulletin/pixel/2018-09-01.html @@ -38,7 +38,7 @@ <h2 id="security-patches">ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑиÑтемы безопаÑноÑти</h2> <p> -Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица Ñ CVE, ÑÑылками, <a href="#type">типом</a>, <a href="/security/overview/updates-resources#severity">уровнем ÑерьезноÑти</a>, а также верÑиÑми AOSP (при наличии). +Проблемы Ñгруппированы по компонентам, которые они затрагивают. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ приведены опиÑание и таблица, где указаны CVE, ÑÑылки, <a href="#type">тип уÑзвимоÑти</a>, <a href="/security/overview/updates-resources#severity">уровень ÑерьезноÑти</a>, а также верÑии AOSP (при наличии). Где возможно, идентификаторы ошибки Ñодержат ÑÑылку на опубликованное изменение (например, ÑпиÑок AOSP). Дополнительные ÑÑылки перечиÑлены в квадратных Ñкобках. </p> @@ -307,7 +307,7 @@ </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers" class="external">Ñайте Google Developers</a>. diff --git a/ru/security/bulletin/pixel/2018-10-01.html b/ru/security/bulletin/pixel/2018-10-01.html index bcbfa06d..51145d6c 100644 --- a/ru/security/bulletin/pixel/2018-10-01.html +++ b/ru/security/bulletin/pixel/2018-10-01.html @@ -156,7 +156,7 @@ </tr> </tbody></table> <p id="asterisk"> -<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> +<strong>4. Что означает Ñимвол * Ñ€Ñдом Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ошибки Android в Ñтолбце <em>СÑылки</em>?</strong> </p> <p> Символ * означает, что иÑправление Ð´Ð»Ñ ÑƒÑзвимоÑти не опубликовано.<em></em> Ðеобходимое обновление ÑодержитÑÑ Ð² поÑледних бинарных драйверах Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus, которые можно Ñкачать на <a href="https://developers.google.com/android/nexus/drivers" class="external">Ñайте Google Developers</a>. diff --git a/ru/security/bulletin/pixel/2018-11-01.html b/ru/security/bulletin/pixel/2018-11-01.html new file mode 100644 index 00000000..7cfd1922 --- /dev/null +++ b/ru/security/bulletin/pixel/2018-11-01.html @@ -0,0 +1,251 @@ +<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>Опубликовано 5 ноÑÐ±Ñ€Ñ 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-11-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-11-01">бюллетене по безопаÑноÑти Android</a> за ноÑбрь 2018 года, Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑƒÑтройÑтв Pixel и Nexus Ñодержат также иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, перечиÑленных ниже. Мы Ñообщили партнерам об Ñтих проблемах не менее меÑÑца назад. Они могут включить Ñти иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ñвои Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти. +</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="htc-components">Компоненты HTC</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-9580</td> + <td>A-76222002<a href="#asterisk">*</a></td> + <td>ПП</td> + <td>Средний</td> + <td>Загрузчик</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-components">Компоненты Qualcomm</h3> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>СÑылки</th> + <th>Тип</th> + <th>Уровень ÑерьезноÑти</th> + <th>Компонент</th> + </tr> + <tr> + <td>CVE-2017-14888</td> + <td>A-70237718<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d50dfd647b2396d2e2c05b7aee84d831e4a18d68">QC-CR#2119729</a></td> + <td>Ð/Д</td> + <td>Средний</td> + <td>ХоÑÑ‚ WLAN</td> + </tr> + <tr> + <td>CVE-2017-15835</td> + <td>A-72957155<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=b6eeed234707244c799ae7009e67312b8bf33ccd">QC-CR#2125781</a></td> + <td>Ð/Д</td> + <td>Средний</td> + <td>ХоÑÑ‚ WLAN</td> + </tr> +</tbody></table> + +<h2 id="functional-patches">Ð£Ð»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… возможноÑтей</h2> + +<p>Ð’Ñе уÑтройÑтва Pixel Ñ Android 9.0 получат обновление ÑиÑтемы вмеÑте Ñ Ð½Ð¾ÑбрьÑким автоматичеÑким обновлением (OTA). Ð’ ежеквартальный выпуÑк входÑÑ‚ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… возможноÑтей и иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… компонентов платформы Android и поддерживаемых уÑтройÑтв Pixel.</p> + +<p>Ð’ Ñтот выпуÑк также включены перечиÑленные ниже иÑправлениÑ, которые производители уÑтройÑтв Android обÑзаны внеÑти в обновление.</p> + +<table> + <tbody><tr> + <th>СÑылки</th> + <th>КатегориÑ</th> + <th>ОпиÑание</th> + <th>УÑтройÑтва</th> + </tr> + <tr> + <td>A-111401911</td> + <td>Ðкран</td> + <td>Повышена производительноÑÑ‚ÑŒ Ð´Ð»Ñ ÑƒÑтройÑтв Ñ <a href="/devices/tech/display/pip">функцией "картинка в картинке"</a>.</td> + <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td> + </tr> + <tr> + <td>A-109769728</td> + <td>Фреймворк</td> + <td>Улучшены запроÑÑ‹ на генерирование Ñимметричных ключей Strongbox.</td> + <td>Pixel 3, Pixel 3 XL</td> + </tr> + <tr> + <td>A-112198479</td> + <td>Ðкран</td> + <td>Повышена производительноÑÑ‚ÑŒ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ Ñ <a href="/devices/tech/display/pip">функцией "картинка в картинке"</a>.</td> + <td>Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL</td> + </tr> + <tr> + <td>A-112714177</td> + <td>УведомлениÑ</td> + <td>Повышена ÑтабильноÑÑ‚ÑŒ уведомлений.</td> + <td>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-11-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/nexus/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>5 ноÑÐ±Ñ€Ñ 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 c4bf1c43..67792eb5 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> @@ -33,15 +33,30 @@ <th>Дата публикации</th> <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> / + <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>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">ОктÑбрь 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> @@ -50,11 +65,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> @@ -63,11 +78,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> @@ -76,11 +91,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> @@ -89,11 +104,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> @@ -102,11 +117,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> @@ -115,11 +130,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> @@ -128,11 +143,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> @@ -141,11 +156,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> @@ -154,11 +169,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 cb4731b4..4cb2e1ad 100644 --- a/ru/security/bulletin/pixel/index.html +++ b/ru/security/bulletin/pixel/index.html @@ -42,15 +42,30 @@ <th>Дата публикации</th> <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> / + <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>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">ОктÑбрь 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> @@ -59,11 +74,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> @@ -72,11 +87,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> @@ -85,11 +100,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> @@ -98,11 +113,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> @@ -111,11 +126,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> @@ -124,11 +139,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> @@ -137,11 +152,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> @@ -150,11 +165,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> @@ -163,11 +178,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> @@ -176,11 +191,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> @@ -189,11 +204,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> @@ -202,11 +217,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/android-9.0-cdd.html b/zh-cn/compatibility/9.0/android-9.0-cdd.html new file mode 100644 index 00000000..bb4b20dd --- /dev/null +++ b/zh-cn/compatibility/9.0/android-9.0-cdd.html @@ -0,0 +1,10002 @@ +<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. + --> + <h2 id="1_introduction"> +1. 简介 + </h2> + <p> +本文档列举了设备必须满足哪些è¦æ±‚æ‰èƒ½ä¸Ž Android 9 兼容。 + </p> + <p> +本文档按照 <a href="http://www.ietf.org/rfc/rfc2119.txt">RFC2119</a> ä¸å®šä¹‰çš„ IETF æ ‡å‡†ä½¿ç”¨â€œå¿…é¡»â€ã€â€œä¸å¾—â€ã€â€œå¿…需â€ã€â€œä¼šâ€ã€â€œä¸ä¼šâ€ã€â€œåº”â€ã€â€œä¸åº”â€ã€â€œå»ºè®®â€ã€â€œå¯ä»¥â€å’Œâ€œå¯é€‰â€å—æ ·ã€‚ + </p> + <p> +在本文档ä¸ï¼Œâ€œè®¾å¤‡å®žçŽ°è€…â€æˆ–“实现者â€æŒ‡çš„是开å‘è¿è¡Œ Android 9 的硬件/软件解决方案的个人或å•ä½ã€‚“设备实现â€æˆ–“实现â€æŒ‡çš„是所开å‘的硬件/软件解决方案。 + </p> + <p> +设备实现必须满足本兼容性定义文档(包括以å‚考资料的形å¼çº³å…¥çš„任何文档)ä¸åˆ—出的è¦æ±‚,æ‰ä¼šè¢«è§†ä¸ºä¸Ž Android 9 兼容。 + </p> + <p> +如果本定义或<a href="#10_software_compatibility_testing">第 10 节</a>ä¸æ‰€è¿°çš„软件测试未æåŠã€å«ç³Šä¸æ¸…或ä¸å®Œæ•´ï¼Œè®¾å¤‡å®žçŽ°è€…需负责确ä¿ä¸ŽçŽ°æœ‰å®žçŽ°å…¼å®¹ã€‚ + </p> + <p> +å› æ¤ï¼Œ<a href="http://source.android.com/">Android å¼€æºé¡¹ç›®</a>既是å‚考 Android 实现,也是首选 Android 实现。强烈建议设备实现者尽å¯èƒ½ä½¿å…¶å®žçŽ°åŸºäºŽ Android å¼€æºé¡¹ç›®æ供的“上游â€æºä»£ç 。虽然æŸäº›ç»„件å¯ä»¥å‡è®¾æ›¿æ¢ä¸ºå¤‡ç”¨å®žçŽ°ï¼Œä½†å¼ºçƒˆå»ºè®®ä¸è¦è¿™æ ·åšï¼Œå¦åˆ™é€šè¿‡è½¯ä»¶æµ‹è¯•çš„éš¾åº¦ä¼šå¤§å¤§å¢žåŠ ã€‚å®žçŽ°è€…éœ€è´Ÿè´£ç¡®ä¿è¡Œä¸ºä¸Žæ ‡å‡† Android 实现(包括兼容性测试套件åŠå…¶ä»–内容)完全兼容。最åŽè¯·æ³¨æ„,本文档明确ç¦æ¢æ›¿æ¢å’Œä¿®æ”¹æŸäº›ç»„件。 + </p> + <p> +本文档ä¸é“¾æŽ¥åˆ°çš„许多资æºéƒ½ç›´æŽ¥æˆ–间接æ¥è‡ª Android SDK,并且与该 SDK 的文档ä¸åŒ…å«çš„ä¿¡æ¯å‘挥相åŒçš„作用。如果出现任何本兼容性定义或兼容性测试套件与 SDK 文档ä¸ä¸€è‡´çš„情况,都è¦ä»¥ SDK 文档为准。本文档ä¸é“¾æŽ¥åˆ°çš„资æºå†…æ供的任何技术详细信æ¯éƒ½è¢«è§†ä¸ºæ˜¯æœ¬å…¼å®¹æ€§å®šä¹‰çš„一部分。 + </p> + <h3 id="1_1_document_structure"> +1.1 文档结构 + </h3> + <h4 id="1_1_1_requirements_by_device_type"> +1.1.1. 针对å„ç§è®¾å¤‡ç±»åž‹çš„è¦æ±‚ + </h4> + <p> + <a href="#2_device_types">第 2 节</a>ä¸åŒ…å«é€‚用于特定设备类型的所有è¦æ±‚。<a href="#2_device_types">第 2 节</a>ä¸çš„æ¯ä¸ªå°èŠ‚å‡åˆ†åˆ«é’ˆå¯¹ä¸€ç§ç‰¹å®šè®¾å¤‡ç±»åž‹ã€‚ + </p> + <p> +<a href="#2_device_types">第 2 节</a>之åŽçš„å„节ä¸åˆ—出了普é适用于所有 Android 设备实现的所有其他è¦æ±‚。本文档ä¸å°†è¿™äº›è¦æ±‚ç§°ä¸ºâ€œæ ¸å¿ƒè¦æ±‚â€ã€‚ + </p> + <h4 id="1_1_2_requirement_id"> +1.1.2. è¦æ±‚ ID + </h4> + <p> +“必须â€æ»¡è¶³çš„è¦æ±‚都被分é…了è¦æ±‚ ID。 + </p> + <ul> + <li>åªæœ‰â€œå¿…é¡»â€æ»¡è¶³çš„è¦æ±‚被分é…了 ID。 + </li> + <li>“强烈建议â€æ»¡è¶³çš„è¦æ±‚带有 [SR] æ ‡è®°ï¼Œä½†æœªè¢«åˆ†é… ID。 + </li> + <li>ID 由以下部分构æˆï¼šè®¾å¤‡ç±»åž‹ ID - æ¡ä»¶ ID - è¦æ±‚ ID(例如 C-0-1)。 + </li> + </ul> + <p> +æ¯ä¸ª ID 的定义如下: + </p> + <ul> + <li>设备类型 ID(有关详情,请å‚阅 <a href="#2_device_types">2. 设备类型</a>) + <ul> + <li>Cï¼šæ ¸å¿ƒï¼ˆé€‚ç”¨äºŽæ‰€æœ‰ Android 设备实现的è¦æ±‚) + </li> + <li>H:Android 手æŒè®¾å¤‡ + </li> + <li>T:Android TV 设备 + </li> + <li>A:Android Automotive 实现 + </li> + <li>Tab:Android å¹³æ¿ç”µè„‘实现 + </li> + </ul> + </li> + <li>æ¡ä»¶ ID + <ul> + <li>如果è¦æ±‚æ˜¯æ— æ¡ä»¶çš„ï¼Œåˆ™æ¤ ID 会被设为 0。 + </li> + <li>如果è¦æ±‚是有æ¡ä»¶çš„,则在åŒä¸€èŠ‚çš„åŒä¸€è®¾å¤‡ç±»åž‹ä¸‹ï¼Œä¸ºç¬¬ 1 个æ¡ä»¶åˆ†é…çš„ ID 为 1,为åŽç»æ¡ä»¶åˆ†é…çš„ ID 按 1 递增。 + </li> + </ul> + </li> + <li>è¦æ±‚ ID + <ul> + <li>在åŒä¸€èŠ‚çš„åŒä¸€æ¡ä»¶ä¸‹ï¼Œç¬¬ 1 项è¦æ±‚çš„ ID 为 1,åŽç»è¦æ±‚çš„ ID 则按 1 递增。 + </li> + </ul> + </li> + </ul> + <h4 id="1_1_3_requirement_id_in_section_2"> +1.1.3. 第 2 节ä¸çš„è¦æ±‚ ID + </h4> + <p> +<a href="#2_device_types">第 2 节</a>ä¸çš„è¦æ±‚ ID 以相应的å°èŠ‚ ID 开头,接ç€æ˜¯ä¸Šè¿°è¦æ±‚ ID。 + </p> + <ul> + <li><a href="#2_device_types">第 2 节</a>ä¸çš„ ID 由以下部分构æˆï¼šå°èŠ‚ ID/设备类型 ID - æ¡ä»¶ ID - è¦æ±‚ ID(例如 7.4.3/A-0-1)。 + </li> + </ul> + <h2 id="2_device_types"> +2. 设备类型 + </h2> + <p> +虽然 Android å¼€æºé¡¹ç›®æ供了一个å¯ç”¨äºŽå„ç§è®¾å¤‡ç±»åž‹å’Œå¤–å½¢è§„æ ¼çš„è½¯ä»¶å †æ ˆï¼Œä½†è¿˜æœ‰äº›è®¾å¤‡ç±»åž‹å…·æœ‰ç›¸å¯¹æ¥è¯´æ›´ä¸ºå®Œå–„的应用分å‘生æ€ç³»ç»Ÿã€‚ + </p> + <p> +本节介ç»äº†è¿™äº›è®¾å¤‡ç±»åž‹ï¼Œä»¥åŠé€‚用于æ¯ç§è®¾å¤‡ç±»åž‹çš„é¢å¤–è¦æ±‚和建议。 + </p> + <p> +ä¸å±žäºŽä»»ä½•æ‰€è¿°è®¾å¤‡ç±»åž‹çš„所有 Android 设备实现ä»å¿…须满足本兼容性定义其他å„节ä¸çš„所有è¦æ±‚。 + </p> + <h3 id="2_1_device_configurations"> +2.1 设备é…ç½® + </h3> + <p> +è¦äº†è§£å„ç§è®¾å¤‡ç±»åž‹åœ¨ç¡¬ä»¶é…置方é¢çš„主è¦åŒºåˆ«ï¼Œè¯·å‚阅本节ä¸éšåŽä»‹ç»çš„设备专属è¦æ±‚。 + </p> + <h3 id="2_2_handheld_requirements"> +2.2. 针对手æŒè®¾å¤‡çš„è¦æ±‚ + </h3> + <p> +<strong>Android 手æŒè®¾å¤‡</strong>ï¼šä¸€ç§ Android 设备实现,通常是拿在手ä¸ä½¿ç”¨ï¼Œä¾‹å¦‚ mp3 æ’放器ã€æ‰‹æœºæˆ–å¹³æ¿ç”µè„‘。 + </p> + <p> +满足以下所有æ¡ä»¶çš„ Android 设备实现å¯å½’类为手æŒè®¾å¤‡ï¼š + </p> + <ul> + <li>具有能够使设备实现移动性的电æºï¼Œä¾‹å¦‚ç”µæ± ã€‚ + </li> + <li>å±å¹•çš„物ç†å¯¹è§’线尺寸介于 2.5 到 8 英寸之间。 + </li> + </ul> + <p> +本节其余部分ä¸çš„é™„åŠ è¦æ±‚针对的是 Android 手æŒè®¾å¤‡å®žçŽ°ã€‚ + </p> + <div class="note"> + <b>注æ„</b>:ä¸é€‚用于 Android å¹³æ¿ç”µè„‘设备的è¦æ±‚带有 * æ ‡è®°ã€‚ + </div> + <h4 id="2_2_1_hardware"> +2.2.1. 硬件 + </h4> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#7_1_display_and_graphics">7.1</a>.1.1/H-0-1] 必须具有物ç†å¯¹è§’线尺寸至少为 2.5 英寸的å±å¹•ã€‚ + </li> + <li>[<a href="#7_1_display_and_graphics">7.1</a>.1.3/H-SR] 强烈建议为用户æ供一ç§ç”¨äºŽæ›´æ”¹æ˜¾ç¤ºåŒºåŸŸå¤§å°çš„æ–¹å¼ã€‚(å±å¹•å¯†åº¦ï¼‰ + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°é€šè¿‡ <a href="https://developer.android.com/reference/android/content/res/Configuration.html#isScreenHdr%28%29"><code>Configuration.isScreenHdr()</code></a> 声明支æŒé«˜åŠ¨æ€èŒƒå›´æ˜¾ç¤ºå±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_1_display-and-graphics">7.1</a>.4.5/H-1-1] å¿…é¡»é€šå‘Šæ”¯æŒ <code>EGL_EXT_gl_colorspace_bt2020_pq</code>ã€<code>EGL_EXT_surface_SMPTE2086_metadata</code>ã€<code>EGL_EXT_surface_CTA861_3_metadata</code>ã€<code>VK_EXT_swapchain_colorspace</code> å’Œ <code>VK_EXT_hdr_metadata</code> 扩展。 + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#7_1_display_and_graphics">7.1</a>.5/H-0-1] 必须支æŒä¸Šæ¸¸ Android 开放æºä»£ç 所实现的旧版应用兼容模å¼ã€‚也就是说,设备实现ä¸å¾—更改å¯ç”¨å…¼å®¹æ¨¡å¼çš„触å‘æ¡ä»¶æˆ–阈值,也ä¸å¾—更改兼容模å¼æœ¬èº«çš„行为。 + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.1/H-0-1] 必须支æŒç¬¬ä¸‰æ–¹è¾“入法编辑器 (IME) 应用。 + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.3/H-0-1] å¿…é¡»æ供“主å±å¹•â€ã€â€œæœ€è¿‘用过â€å’Œâ€œè¿”回â€åŠŸèƒ½ã€‚ + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.3/H-0-2] 必须将“返回â€åŠŸèƒ½ (<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK"><code>KEYCODE_BACK</code></a>) 的常规按下事件和长按事件都å‘é€åˆ°å‰å°åº”用。上述事件ä¸å¾—被系统å 用,且å¯ä»Ž Android 设备外部触å‘(例如,连接到 Android 设备的外部硬件键盘)。 + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.4/H-0-1] 必须支æŒè§¦æ‘¸å±è¾“入。 + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.4/H-SR] 强烈建议å¯åŠ¨ç”¨æˆ·é€‰æ‹©çš„辅助应用(也就是实现 VoiceInteractionService 的应用)或在长按 <a href="https://developer.android.com/reference/android/view/KeyEvent#KEYCODE_MEDIA_PLAY_PAUSE"><code>KEYCODE_MEDIA_PLAY_PAUSE</code></a> 或 <a href="https://developer.android.com/reference/android/view/KeyEvent#KEYCODE_HEADSETHOOK"><code>KEYCODE_HEADSETHOOK</code></a> æ—¶è´Ÿè´£å¤„ç† <a href="https://developer.android.com/reference/android/content/Intent#ACTION_ASSIST"><code>ACTION_ASSIST</code></a> çš„ Activity(如果å‰å° Activity ä¸å¤„ç†ä¸Šè¿°é•¿æŒ‰äº‹ä»¶ï¼‰ã€‚ + </li> + <li>[<a href="#7_3_sensors">7.3</a>.1/H-SR] å¼ºçƒˆå»ºè®®åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ã€‚ + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.1/H-1-1] 必须能够以至少 100 Hz 的频率报告事件。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°åŒ…å«é™€èžºä»ªï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.4/H-1-1] 必须能够以至少 100 Hz 的频率报告事件。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°å¯ä»¥è¿›è¡Œè¯éŸ³é€šè¯ï¼Œå¹¶ä¸”在 <code>getPhoneType</code> ä¸æŒ‡å‡ºäº† <code>PHONE_TYPE_NONE</code> 以外的任何其他值,则: + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.8/H] 应包å«è¿‘ç¨‹ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.12/H-SR] 建议支æŒå…·æœ‰ 6 ä¸ªè‡ªç”±åº¦çš„å§¿åŠ¿ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[<a href="#7_4_data_connectivity">7.4</a>.3/H] 应支æŒè“牙和è“牙 LE。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°åŒ…å«æŒ‰æµé‡è®¡è´¹çš„网络连接,则: + </p> + <ul> + <li>[<a href="#7_4_data_connectivity">7.4</a>.7/H-1-1] å¿…é¡»æä¾›æµé‡èŠ‚çœç¨‹åºæ¨¡å¼ã€‚ + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#7_6_memory_and_storage">7.6</a>.1/H-0-1] 必须有至少 4GB çš„éžæ˜“失性å˜å‚¨ç©ºé—´å¯ç”¨äºŽå˜å‚¨åº”用专属数æ®ï¼ˆè¯¥ç©ºé—´ä¹Ÿç§°ä¸ºâ€œ/dataâ€åˆ†åŒºï¼‰ã€‚ + </li> + <li>[<a href="#7_6_memory_and_storage">7.6</a>.1/H-0-2] 当å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å°‘于 1GB 时,必须针对 <code>ActivityManager.isLowRamDevice()</code> 返回“trueâ€ã€‚ + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°æ˜¯ 32 ä½ï¼š + </p> + <ul> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-1-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 512MB: + </p> + <ul> + <li>280dpi 或更低(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>ldpi 或更低(超大å±å¹•ï¼‰ + </li> + <li>mdpi 或更低(大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-2-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 608MB: + </p> + <ul> + <li>xhdpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>hdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>mdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-3-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 896MB: + </p> + <ul> + <li>400dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>xhdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>tvdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-4-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1344MB: + </p> + <ul> + <li>560dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>400dpi 或更高(大å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°æ˜¯ 64 ä½ï¼š + </p> + <ul> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-5-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 816MB: + </p> + <ul> + <li>280dpi 或更低(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>ldpi 或更低(超大å±å¹•ï¼‰ + </li> + <li>mdpi 或更低(大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-6-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 944MB: + </p> + <ul> + <li>xhdpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>hdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>mdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-7-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1280MB: + </p> + <ul> + <li>400dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>xhdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>tvdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/H-8-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1824MB: + </p> + <ul> + <li>560dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰<sup>*</sup> + </li> + <li>400dpi 或更高(大å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + </ul> + <p> +请注æ„,上文æ到的“å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜â€æ˜¯æŒ‡é™¤äº†å·²ä¸“é—¨ç”¨äºŽç¡¬ä»¶ç»„ä»¶ï¼ˆä¾‹å¦‚è®¾å¤‡å®žçŽ°ä¸Šçš„æ— çº¿è£…ç½®ã€è§†é¢‘组件,以åŠå…¶ä»–ä¸å—å†…æ ¸æŽ§åˆ¶çš„ç»„ä»¶ï¼‰çš„æ‰€æœ‰å†…å˜ä¹‹å¤–å¦è¡Œæ供的内å˜ç©ºé—´ã€‚ + </p> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#7_6_memory_and_storage">7.6</a>.2/H-0-1] å¿…é¡»æä¾›ä¸å°äºŽ 1GiB 的应用共享å˜å‚¨ç©ºé—´ã€‚ + </li> + <li>[<a href="#7_7_usb">7.7</a>.1/H] 应包å«æ”¯æŒå¤–围设备模å¼çš„ USB 端å£ã€‚ + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°åŒ…å«æ”¯æŒå¤–围设备模å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_7_usb">7.7</a>.1/H-1-1] 必须实现 Android Open Accessory (AOA) API。 + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#7_8_audio">7.8</a>.1/H-0-1] 必须包å«éº¦å…‹é£Žã€‚ + </li> + <li>[<a href="#7_8_audio">7.8</a>.2/H-0-1] 必须具有音频输出机制,并声明 <code>android.hardware.audio.output</code>。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°èƒ½å¤Ÿæ»¡è¶³å…³äºŽæ”¯æŒ VR 模å¼çš„所有性能è¦æ±‚ä¸”æ”¯æŒ VR 模å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_9_virtual_reality">7.9</a>.1/H-1-1] 必须声明 <code>android.hardware.vr.high_performance</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[<a href="#7_9_virtual_reality">7.9</a>.1/H-1-2] 必须包å«ç”¨äºŽå®žçŽ° <code>android.service.vr.VrListenerService</code>(å¯ç”± VR 应用通过 <code>android.app.Activity#setVrModeEnabled</code> å¯ç”¨ï¼‰çš„应用。 + </li> + </ul> + <h4 id="2_2_2_multimedia"> +2.2.2. 多媒体 + </h4> + <p> +手æŒè®¾å¤‡å®žçŽ°å¿…须支æŒä»¥ä¸‹éŸ³é¢‘ç¼–ç : + </p> + <ul> + <li>[<a href="#5_1_media_codecs">5.1</a>.1/H-0-1] AMR-NB + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>.1/H-0-2] AMR-WB + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>.1/H-0-3] MPEG-4 AAC Profile (AAC LC) + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>.1/H-0-4] MPEG-4 HE AAC Profile (AAC+) + </li> + <li>[<a href="#5_1_media-codecs">5.1</a>.1/H-0-5] AAC ELD(增强型低延迟 AAC) + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°å¿…须支æŒä»¥ä¸‹éŸ³é¢‘解ç : + </p> + <ul> + <li>[<a href="#5_1_media_codecs">5.1</a>.2/H-0-1] AMR-NB + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>.2/H-0-2] AMR-WB + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°å¿…须支æŒä»¥ä¸‹è§†é¢‘ç¼–ç ,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用: + </p> + <ul> + <li>[<a href="#5_2_video_encoding">5.2</a>/H-0-1] H.264 AVC + </li> + <li>[<a href="#5_2_video_encoding">5.2</a>/H-0-2] VP8 + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°å¿…须支æŒä»¥ä¸‹è§†é¢‘解ç : + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3</a>/H-0-1] H.264 AVC + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/H-0-2] H.265 HEVC + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/H-0-3] MPEG-4 SP + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/H-0-4] VP8 + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/H-0-5] VP9 + </li> + </ul> + <h4 id="2_2_3_software"> +2.2.3. 软件 + </h4> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#3_2_3_1_core_application_intents">3.2.3.1</a>/H-0-1] 必须包å«å¯å¤„ç† <a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"><code>ACTION_GET_CONTENT</code></a>ã€<a href="https://developer.android.com/reference/android/content/Intent#ACTION_OPEN_DOCUMENT"><code>ACTION_OPEN_DOCUMENT</code></a>ã€<a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_OPEN_DOCUMENT_TREE"><code>ACTION_OPEN_DOCUMENT_TREE</code></a> å’Œ <a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_CREATE_DOCUMENT"><code>ACTION_CREATE_DOCUMENT</code></a> Intent 的应用(如 SDK 文档ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿä½¿ç”¨ <a href="https://developer.android.com/reference/android/provider/DocumentsProvider"><code>DocumentsProvider</code></a> API 访问文档æ供程åºæ•°æ®ã€‚ + </li> + <li>[<a href="#3_4_web_compatibility">3.4</a>.1/H-0-1] å¿…é¡»æä¾› <code>android.webkit.Webview</code> API 的完整实现。 + </li> + <li>[<a href="#3_4_web_compatibility">3.4</a>.2/H-0-1] 必须包å«ç‹¬ç«‹çš„æµè§ˆå™¨åº”用,以供用户进行一般的网页æµè§ˆã€‚ + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.1/H-SR] 强烈建议实现一个支æŒåº”用内固定快æ·æ–¹å¼ã€å¾®ä»¶å’Œ <a href="https://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo.html#widgetFeatures">widgetFeatures</a> 的默认å¯åŠ¨å™¨ã€‚ + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.1/H-SR] 强烈建议实现一个å¯è®©ç”¨æˆ·å¿«é€Ÿè®¿é—®ç¬¬ä¸‰æ–¹åº”用通过 <a href="https://developer.android.com/reference/android/content/pm/ShortcutManager.html">ShortcutManager</a> API æ供的其他快æ·æ–¹å¼çš„默认å¯åŠ¨å™¨ã€‚ + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.1/H-SR] 强烈建议包å«ä¸€ä¸ªä¼šä¸ºåº”ç”¨å›¾æ ‡æ˜¾ç¤ºæ ‡è®°çš„é»˜è®¤å¯åŠ¨å™¨åº”用。 + </li> + <li>[<a href="#3_8_user-interface_compatibility">3.8</a>.2/H-SR] 强烈建议支æŒç¬¬ä¸‰æ–¹åº”用微件。 + </li> + <li>[<a href="#3_8_user-interface_compatibility">3.8</a>.3/H-0-1] å¿…é¡»å…许第三方应用通过 <a href="https://developer.android.com/reference/android/app/Notification.html"><code>Notification</code></a> å’Œ <a href="https://developer.android.com/reference/android/app/NotificationManager.html"><code>NotificationManager</code></a> API ç±»å‘用户å‘出关于é‡è¦äº‹ä»¶çš„通知。 + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.3/H-0-2] 必须支æŒå†…容丰富的通知。 + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.3/H-0-3] 必须支æŒæ醒å¼é€šçŸ¥ã€‚ + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.3/H-0-4] 必须包å«é€šçŸ¥æ ,以便用户能够通过相应方å¼ï¼ˆä¾‹å¦‚ AOSP ä¸å®žçŽ°çš„æ“作按钮或控制é¢æ¿ï¼‰ç›´æŽ¥æŽ§åˆ¶é€šçŸ¥ï¼ˆä¾‹å¦‚回å¤ã€å»¶åŽã€å…³é—ã€å±è”½é€šçŸ¥ï¼‰ã€‚ + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.3/H-0-5] 必须在通知æ 显示通过 <a href="https://developer.android.com/reference/android/app/RemoteInput.Builder.html#setChoices%28java.lang.CharSequence[]%29"><code>RemoteInput.Builder setChoices()</code></a> æ供的选项。 + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.3/H-SR] å¼ºçƒˆå»ºè®®åœ¨æ— éœ€ç”¨æˆ·é¢å¤–互动的情况下在通知æ 显示通过 <a href="https://developer.android.com/reference/android/app/RemoteInput.Builder.html#setChoices%28java.lang.CharSequence[]%29"><code>RemoteInput.Builder setChoices()</code></a> æ供的第一个选项。 + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.3/H-SR] 强烈建议在用户展开通知æ ä¸çš„所有通知时显示通过 <a href="https://developer.android.com/reference/android/app/RemoteInput.Builder.html#setChoices%28java.lang.CharSequence[]%29"><code>RemoteInput.Builder setChoices()</code></a> æ供的所有选项。 + </li> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.4/H-SR] 强烈建议在设备上实现一个辅助程åºæ¥å¤„ç†<a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">辅助æ“作</a>。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°æ”¯æŒè¾…助æ“作,则: + </p> + <ul> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.4/H-SR] 强烈建议将长按 <code>HOME</code> 键用作å¯åŠ¨è¾…助应用的指定交互方å¼ï¼ˆå¦‚<a href="#7_2_3_navigation_keys">第 7.2.3 节</a>ä¸æ‰€è¿°ï¼‰ã€‚å¿…é¡»å¯åŠ¨ç”¨æˆ·é€‰æ‹©çš„辅助应用(也就是实现 <a href="https://developer.android.com/reference/android/service/voice/VoiceInteractionService"><code>VoiceInteractionService</code></a> çš„åº”ç”¨ï¼‰æˆ–è´Ÿè´£å¤„ç† <code>ACTION_ASSIST</code> Intent çš„ Activity。 + </li> + </ul> + <p> +如果 Android 手æŒè®¾å¤‡å®žçŽ°æ”¯æŒé”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.10/H-1-1] 必须显示包å«åª’体通知模æ¿çš„é”定å±å¹•é€šçŸ¥ã€‚ + </li> + </ul> + <p>如果手æŒè®¾å¤‡å®žçŽ°æ”¯æŒå®‰å…¨é”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#3_9_device_administration">3.9</a>/H-1-1] 必须实现 Android SDK 文档ä¸å®šä¹‰çš„所有<a href="http://developer.android.com/guide/topics/admin/device-admin.html">设备管ç†</a>政ç–。 + </li> + <li>[<a href="#3_9_device_administration">3.9</a>/H-1-2] 必须通过 <code>android.software.managed_users</code> åŠŸèƒ½æ ‡è®°å£°æ˜Žæ”¯æŒå—管ç†ä¸ªäººèµ„料,除éžè®¾å¤‡çš„é…置决定了设备会将其自身<a href="http://developer.android.com/reference/android/app/ActivityManager.html#isLowRamDevice%28%29">报告</a>为低 RAM 设备,或会将内部(ä¸å¯ç§»åŠ¨ï¼‰å˜å‚¨ç©ºé—´åˆ†é…为共享å˜å‚¨ç©ºé—´ã€‚ + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#3_10_accessibility">3.10</a>/H-0-1] 必须支æŒç¬¬ä¸‰æ–¹æ— éšœç¢æœåŠ¡ã€‚ + </li> + <li>[<a href="#3_10_accessibility">3.10</a>/H-SR] å¼ºçƒˆå»ºè®®åœ¨è®¾å¤‡ä¸Šé¢„åŠ è½½æ— éšœç¢æœåŠ¡ï¼Œå¹¶ä¸”这些æœåŠ¡çš„功能è¦ä¸Ž <a href="https://github.com/google/talkback">TalkBack å¼€æºé¡¹ç›®</a>ä¸æ供的开关控制和 TalkBackï¼ˆé€‚ç”¨äºŽé¢„åŠ è½½çš„æ–‡å—转è¯éŸ³å¼•æ“Žæ”¯æŒçš„è¯è¨€ï¼‰æ— éšœç¢æœåŠ¡çš„功能相当或更胜一ç¹ã€‚ + </li> + <li>[<a href="#3_11_text_to_speech">3.11</a>/H-0-1] 必须支æŒå®‰è£…第三方 TTS 引擎。 + </li> + <li>[<a href="#3_11_text_to_speech">3.11</a>/H-SR] 强烈建议包å«æ”¯æŒè®¾å¤‡ä¸Šå¯ç”¨è¯è¨€çš„ TTS 引擎。 + </li> + <li>[<a href="#3_13_quick_settings">3.13</a>/H-SR] 强烈建议包å«å¿«æ·è®¾ç½®ç•Œé¢ç»„件。 + </li> + </ul> + <p> +如果 Android 手æŒè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>FEATURE_BLUETOOTH</code> 或 <code>FEATURE_WIFI</code>,则: + </p> + <ul> + <li>[<a href="#3_15_instant_apps">3.15</a>/H-1-1] 必须支æŒé…套设备é…对功能。 + </li> + </ul> + <h4 id="2_2_4_performance_and_power"> +2.2.4. 性能和功耗 + </h4> + <ul> + <li>[<a href="#8_1_user_experience_consistency">8.1</a>/H-0-1] <strong>一致的帧延迟</strong>:帧延迟或渲染帧延迟ä¸ä¸€è‡´çš„å‘生频率ä¸å¾—超过æ¯ç§’ 5 帧,并且应低于æ¯ç§’ 1 帧。 + </li> + <li>[<a href="#8_1_user_experience_consistency">8.1</a>/H-0-2] <strong>ç•Œé¢å»¶è¿Ÿ</strong>:设备实现必须确ä¿ä½Žå»¶è¿Ÿçš„用户体验,具体方法是在ä¸åˆ° 36 秒的时间内,滚动由 Android 兼容性测试套件 (CTS) å®šä¹‰çš„åŒ…å« 10K 列表æ¡ç›®çš„列表。 + </li> + <li>[<a href="#8_1_user_experience_consistency">8.1</a>/H-0-3] <strong>任务切æ¢</strong>:在å¯åŠ¨äº†å¤šä¸ªåº”用的情况下,如果é‡æ–°å¯åŠ¨å·²å¯åŠ¨ä¸”已在è¿è¡Œçš„应用,所用时间ä¸å¾—超过 1 秒。 + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/H-0-1] 必须确ä¿é¡ºåºå†™å…¥æ€§èƒ½è‡³å°‘为 5MB/s。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/H-0-2] 必须确ä¿éšæœºå†™å…¥æ€§èƒ½è‡³å°‘为 0.5MB/s。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/H-0-3] 必须确ä¿é¡ºåºè¯»å–性能至少为 15MB/s。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/H-0-4] 必须确ä¿éšæœºè¯»å–性能至少为 3.5MB/s。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°ä¸çš„功能å¯æ”¹è¿› AOSP ä¸çš„设备电æºç®¡ç†æˆ–扩展 AOSP ä¸çš„功能,则: + </p> + <ul> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/H-1-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨å’Œåœç”¨çœç”µæ¨¡å¼ã€‚ + </li> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/H-1-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å…于进入应用待机模å¼å’Œä½Žç”µè€—模å¼çš„所有应用。 + </li> + </ul> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/H-0-1] å¿…é¡»æ供一个关于å„组件功耗的é…置文件,其ä¸è¦å®šä¹‰æ¯ç§ç¡¬ä»¶ç»„件的<a href="http://source.android.com/devices/tech/power/values.html">耗电值</a>,以åŠç»„件在一段时间内大概消耗的电é‡ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上所述)。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/H-0-2] 必须以毫安å°æ—¶ (mAh) 为å•ä½æŠ¥å‘Šæ‰€æœ‰åŠŸè€—值。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/H-0-3] 必须按æ¯ä¸ªè¿›ç¨‹çš„ UID 报告 CPU 功耗。Android å¼€æºé¡¹ç›®é€šè¿‡ <code>uid_cputime</code> å†…æ ¸æ¨¡å—实现æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/H-0-4] 必须能让应用开å‘者通过 <a href="http://source.android.com/devices/tech/power/batterystats.html"><code>adb shell dumpsys batterystats</code></a> shell 命令查看æ¤åŠŸè€—。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/H] å¦‚æžœæ— æ³•å°†ç¡¬ä»¶ç»„ä»¶çš„åŠŸè€—å½’äºŽæŸä¸ªåº”用,则应将其归于硬件组件本身。 + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°åŒ…å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/H-1-1] 必须能够éµä»Ž <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY"><code>android.intent.action.POWER_USAGE_SUMMARY</code></a> Intent æ供一个会显示æ¤åŠŸè€—的设置èœå•ã€‚ + </li> + </ul> + <h4 id="2_2_5_security_model"> +2.2.5. 安全模型 + </h4> + <p> +手æŒè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[<a href="#9_1_permissions">9.1</a>/H-0-1] å¿…é¡»å…许第三方应用通过 <code>android.permission.PACKAGE_USAGE_STATS</code> æƒé™è®¿é—®ä½¿ç”¨æƒ…况统计信æ¯ï¼Œå¹¶èƒ½å¤Ÿå› 应 <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION&lowbar;USAGE&lowbar;ACCESS&lowbar;SETTINGS"><code>android.settings.ACTION_USAGE_ACCESS_SETTINGS</code></a> Intent æ供一ç§å¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„机制,让用户能够为æ¤ç±»åº”用授予或撤消该访问æƒé™ã€‚ + </li> + </ul> + <p> +如果手æŒè®¾å¤‡å®žçŽ°æ”¯æŒå®‰å…¨é”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#9_11_permissions">9.11</a>/H-1-1] å¿…é¡»å…许用户选择最çŸçš„ä¼‘çœ è¶…æ—¶ï¼Œå³ä»Žè§£é”状æ€åˆ°é”定状æ€çš„过渡时间ä¸å¾—超过 15 秒。 + </li> + <li>[<a href="#9_11_permissions">9.11</a>/H-1-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿéšè—通知并åœç”¨æ‰€æœ‰èº«ä»½éªŒè¯æ–¹æ³•ï¼ˆ<a href="#9_11_1_secure-lock-screen">9.11.1 安全é”定å±å¹•</a>ä¸æ‰€è¿°çš„主è¦èº«ä»½éªŒè¯æ–¹æ³•é™¤å¤–)。AOSP 满足é”定模å¼çš„è¦æ±‚。 + </li> + </ul> + <p> +<strong>Android TV 设备</strong>ï¼šä¸€ç§ Android 设备实现,是适åˆç”¨æˆ·å在约 10 英尺远的è·ç¦»è§‚看的娱ä¹ç•Œé¢ï¼ˆâ€œæ供大å±å¹•å¨±ä¹ä½“验的界é¢â€æˆ–“è·ç¦» 10 英尺观看的界é¢â€ï¼‰ï¼Œç”¨äºŽè§‚看数å—媒体ã€å½±ç‰‡ã€ç”µè§†ç›´æ’,玩游æˆå’Œ/或使用应用。 + </p> + <p> +满足以下所有æ¡ä»¶çš„ Android 设备实现å¯å½’类为 TV 设备: + </p> + <ul> + <li>æ供了å¯è¿œç¨‹æŽ§åˆ¶æ˜¾ç¤ºå±ï¼ˆå¯èƒ½è·ç”¨æˆ· 10 英尺远)上呈现的界é¢çš„机制。 + </li> + <li>具有对角线长度超过 24 英寸的嵌入å¼æ˜¾ç¤ºå±ï¼Œæˆ–包å«è§†é¢‘输出端å£ï¼Œä¾‹å¦‚用于连接显示设备的 VGAã€HDMIã€DisplayPort æˆ–æ— çº¿ç«¯å£ã€‚ + </li> + </ul> + <p> +本节其余部分ä¸çš„é™„åŠ è¦æ±‚针对的是 Android TV 设备实现。 + </p> + <h4 id="2_3_1_hardware"> +2.3.1. 硬件 + </h4> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#7_2_input_devices">7.2</a>.2/T-0-1] 必须支æŒ<a href="https://developer.android.com/reference/android/content/res/Configuration.html#NAVIGATION_DPAD">æ–¹å‘é”®</a>。 + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.3/T-0-1] å¿…é¡»æ供“主å±å¹•â€å’Œâ€œè¿”回â€åŠŸèƒ½ã€‚ + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.3/T-0-2] 必须将“返回â€åŠŸèƒ½ (<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK"><code>KEYCODE_BACK</code></a>) 的常规按下事件和长按事件都å‘é€åˆ°å‰å°åº”用。 + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.6.1/T-0-1] 必须支æŒæ¸¸æˆæŽ§åˆ¶å™¨ï¼Œå¹¶å£°æ˜Ž <code>android.hardware.gamepad</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[<a href="#7_2_input_devices">7.2</a>.7/T] 应æä¾›å¯è®©ç”¨æˆ·ä½¿ç”¨<a href="#7_2_2_non-touch_navigation">éžè§¦æ‘¸å¯¼èˆª</a>å’Œ<a href="#7_2_3_navigation_keys">æ ¸å¿ƒå¯¼èˆªé”®</a>输入功能的é¥æŽ§å™¨ã€‚ + </li> + </ul> + <p> +如果 TV 设备实现包å«é™€èžºä»ªï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.4/T-1-1] 必须能够以至少 100 Hz 的频率报告事件。 + </li> + </ul> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#7_4_data_connectivity">7.4</a>.3/T-0-1] 必须支æŒè“牙和è“牙 LE。 + </li> + <li>[<a href="#7_6_memory_and_storage">7.6</a>.1/T-0-1] 必须有至少 4GB çš„éžæ˜“失性å˜å‚¨ç©ºé—´å¯ç”¨äºŽå˜å‚¨åº”用éšç§æ•°æ®ï¼ˆè¯¥ç©ºé—´ä¹Ÿç§°ä¸ºâ€œ/dataâ€åˆ†åŒºï¼‰ã€‚ + </li> + </ul> + <p> +如果 TV 设备实现包å«æ”¯æŒä¸»æœºæ¨¡å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_5_camera">7.5</a>.3/T-1-1] 必须支æŒé€šè¿‡æ¤ USB 端å£è¿žæŽ¥ä½†æ— 需ä¿æŒè¿žæŽ¥çš„外接摄åƒå¤´ã€‚ + </li> + </ul> + <p> +如果 TV 设备实现是 32 ä½ï¼š + </p> + <ul> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/T-1-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 896MB: + </p> + <ul> + <li>400dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>tvdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + </ul> + <p> +如果 TV 设备实现是 64 ä½ï¼š + </p> + <ul> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/T-2-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1280MB: + </p> + <ul> + <li>400dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>tvdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + </ul> + <p> +请注æ„,上文æ到的“å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜â€æ˜¯æŒ‡é™¤äº†å·²ä¸“é—¨ç”¨äºŽç¡¬ä»¶ç»„ä»¶ï¼ˆä¾‹å¦‚è®¾å¤‡å®žçŽ°ä¸Šçš„æ— çº¿è£…ç½®ã€è§†é¢‘组件,以åŠå…¶ä»–ä¸å—å†…æ ¸æŽ§åˆ¶çš„ç»„ä»¶ï¼‰çš„æ‰€æœ‰å†…å˜ä¹‹å¤–å¦è¡Œæ供的内å˜ç©ºé—´ã€‚ + </p> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#7_8_audio">7.8</a>.1/T] 应包å«éº¦å…‹é£Žã€‚ + </li> + <li>[<a href="#7_8_audio">7.8</a>.2/T-0-1] 必须具有音频输出机制,并声明 <code>android.hardware.audio.output</code>。 + </li> + </ul> + <h4 id="2_3_2_multimedia"> +2.3.2. 多媒体 + </h4> + <p> +TV 设备实现必须支æŒä»¥ä¸‹éŸ³é¢‘ç¼–ç æ ¼å¼ï¼š + </p> + <ul> + <li>[<a href="#5_1_media_codecs">5.1</a>/T-0-1] MPEG-4 AAC Profile (AAC LC) + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>/T-0-2] MPEG-4 HE AAC Profile (AAC+) + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>/T-0-3] AAC ELD(增强型低延迟 AAC) + </li> + </ul> + <p> +TV 设备实现必须支æŒä»¥ä¸‹è§†é¢‘ç¼–ç æ ¼å¼ï¼š + </p> + <ul> + <li>[<a href="#5_2_video_encoding">5.2</a>/T-0-1] H.264 + </li> + <li>[<a href="#5_2_video_encoding">5.2</a>/T-0-2] VP8 + </li> + </ul> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#5_2_video_encoding">5.2</a>.2/T-SR] 强烈建议支æŒä»¥ 30 帧/秒的帧速率对分辨率为 720p å’Œ 1080p 的视频进行 H.264 ç¼–ç 。 + </li> + </ul> + <p> +TV 设备实现必须支æŒä»¥ä¸‹è§†é¢‘解ç æ ¼å¼ï¼š + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.3</a>/T-0-1] MPEG-4 SP + </li> + <li>[<a href="#5_3_video_decoding">5.3.4</a>/T-0-2] H.264 AVC + </li> + <li>[<a href="#5_3_video_decoding">5.3.5</a>/T-0-3] H.265 HEVC + </li> + <li>[<a href="#5_3_video_decoding">5.3.6</a>/T-0-4] VP8 + </li> + <li>[<a href="#5_3_video_decoding">5.3.7</a>/T-0-5] VP9 + </li> + </ul> + <p> +强烈建议 TV 设备实现支æŒä»¥ä¸‹è§†é¢‘解ç æ ¼å¼ï¼š + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.1</a>/T-SR] MPEG-2 + </li> + </ul> + <p> +TV 设备实现必须支æŒä»¥æ ‡å‡†çš„视频帧速率进行 H.264 解ç (第 5.3.4 节ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ï¼Œè§†é¢‘的分辨率ä¸å¾—高于: + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.4</a>.4/T-1-1] 高清 1080p,60 帧/秒,Basline Profile + </li> + <li>[<a href="#5_3_video_decoding">5.3.4</a>.4/T-1-2] 高清 1080p,60 帧/秒,Main Profile + </li> + <li>[<a href="#5_3_video_decoding">5.3.4</a>.4/T-1-3] 高清 1080p,60 帧/秒,High Profile Level 4.2 + </li> + </ul> + <p> +é…备 H.265 硬件解ç 器的 TV 设备实现必须支æŒä»¥æ ‡å‡†çš„视频帧速率进行 H.265 解ç (第 5.3.5 节ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ï¼Œè§†é¢‘的分辨率ä¸å¾—高于: + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.5</a>.4/T-1-1] 高清 1080p,60 帧/秒,Main Profile Level 4.1 + </li> + </ul> + <p> +如果é…备 H.265 硬件解ç 器的 TV è®¾å¤‡å®žçŽ°æ”¯æŒ H.265 解ç 和超高清解ç é…置,则: + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.5</a>.5/T-2-1] 必须支æŒè¶…高清 3480p,60 帧/秒,Main10 Level 5 Main Tier é…置。 + </li> + </ul> + <p> +TV 设备实现必须支æŒä»¥æ ‡å‡†çš„视频帧速率进行 VP8 解ç (第 5.3.6 节ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ï¼Œè§†é¢‘的分辨率ä¸å¾—高于: + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.6</a>.4/T-1-1] 高清 1080p,60 帧/秒解ç é…ç½® + </li> + </ul> + <p> +é…备 VP9 硬件解ç 器的 TV 设备实现必须支æŒä»¥æ ‡å‡†çš„视频帧速率进行 VP9 解ç (第 5.3.7 节ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ï¼Œè§†é¢‘的分辨率ä¸å¾—高于: + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.7</a>.4/T-1-1] 高清 1080p,60 帧/秒,profile 0(8 ä½è‰²æ·±ï¼‰ + </li> + </ul> + <p> +如果é…备 VP9 硬件解ç 器的 TV è®¾å¤‡å®žçŽ°æ”¯æŒ VP9 解ç 和超高清解ç é…置,则: + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3.7</a>.5/T-2-1] 必须支æŒè¶…高清 3480p,60 帧/秒,profile 0(8 ä½è‰²æ·±ï¼‰ã€‚ + </li> + <li>[<a href="#5_3_video_decoding">5.3.7</a>.5/T-2-1] 强烈建议支æŒè¶…高清 3480p,60 帧/秒,profile 2(10 ä½è‰²æ·±ï¼‰ã€‚ + </li> + </ul> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#5_5_audio_playback">5.5</a>.3/T-0-1] 必须支æŒåœ¨æ”¯æŒçš„输出装置上进行系统主音é‡å’Œæ•°å—音频输出音é‡è¡°å‡ï¼Œä½¿ç”¨åŽ‹ç¼©éŸ³é¢‘直通输出装置时(在这ç§æƒ…况下,设备上ä¸ä¼šè¿›è¡Œä»»ä½•éŸ³é¢‘解ç )除外。 + </li> + <li>[<a href="#5_8_secure_media">5.8</a>/T-0-1] 必须将 HDMI 输出模å¼è®¾ä¸ºé€‰æ‹©æ‰€æœ‰ 50Hz 或 60Hz 刷新率有线显示å±å¯æ”¯æŒçš„最高分辨率。 + </li> + <li>[<a href="#5_8_secure_media">5.8</a>/T-SR] 强烈建议针对所有有线显示å±æ供用户å¯é…置的 HDMI 刷新率选择器。 + </li> + <li>[<a href="#5_8_secure_media">5.8</a>/T-SR] 强烈建议支æŒåŒæ—¶å¯¹å¤šä¸ªå®‰å…¨è§†é¢‘æµè¿›è¡Œè§£ç ,并强烈建议至少支æŒåŒæ—¶å¯¹ä¸¤ä¸ªè§†é¢‘æµè¿›è¡Œè§£ç 。 + </li> + <li>[<a href="#5_8_secure_media">5.8</a>] 应将 HDMI 输出模å¼åˆ·æ–°çŽ‡è®¾ç½®ä¸º 50Hz 或 60Hz,具体å–决于出售设备的地区所有有线显示å±çš„视频刷新率。 + </li> + </ul> + <p> +如果 TV 设备实现支æŒè¶…高清解ç 且支æŒå¤–接显示å±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#5_8_secure_media">5.8</a>/T-1-1] å¿…é¡»æ”¯æŒ HDCP 2.2。 + </li> + </ul> + <p> +如果 TV 设备实现ä¸æ”¯æŒè¶…高清解ç 但支æŒå¤–接显示å±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#5_8_secure_media">5.8</a>/T-2-1] å¿…é¡»æ”¯æŒ HDCP 1.4 + </li> + </ul> + <h4 id="2_3_3_software"> +2.3.3. 软件 + </h4> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#3_0_intro">3</a>/T-0-1] 必须声明 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK"><code>android.software.leanback</code></a> å’Œ <code>android.hardware.type.television</code> 功能。 + </li> + <li>[<a href="#3_4_web_compatibility">3.4</a>.1/T-0-1] å¿…é¡»æä¾› <code>android.webkit.Webview</code> API 的完整实现。 + </li> + </ul> + <p> +如果 Android TV 设备实现支æŒé”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.10/T-1-1] 必须显示包å«åª’体通知模æ¿çš„é”定å±å¹•é€šçŸ¥ã€‚ + </li> + </ul> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.14/T-SR] 强烈建议支æŒç”»ä¸ç”» (PIP) 多窗å£æ¨¡å¼ã€‚ + </li> + <li>[<a href="#3_10_accessibility">3.10</a>/T-0-1] 必须支æŒç¬¬ä¸‰æ–¹æ— éšœç¢æœåŠ¡ã€‚ + </li> + <li>[<a href="#3_10_accessibility">3.10</a>/T-SR] å¼ºçƒˆå»ºè®®åœ¨è®¾å¤‡ä¸Šé¢„åŠ è½½æ— éšœç¢æœåŠ¡ï¼Œå¹¶ä¸”这些æœåŠ¡çš„功能è¦ä¸Ž <a href="https://github.com/google/talkback">TalkBack å¼€æºé¡¹ç›®</a>ä¸æ供的开关控制和 TalkBackï¼ˆé€‚ç”¨äºŽé¢„åŠ è½½çš„æ–‡å—转è¯éŸ³å¼•æ“Žæ”¯æŒçš„è¯è¨€ï¼‰æ— éšœç¢æœåŠ¡çš„功能相当或更胜一ç¹ã€‚ + </li> + </ul> + <p> +如果 TV 设备实现报告 <code>android.hardware.audio.output</code> 功能,则: + </p> + <ul> + <li>[<a href="#3_11_text_to_speech">3.11</a>/T-SR] 强烈建议包å«æ”¯æŒè®¾å¤‡ä¸Šå¯ç”¨è¯è¨€çš„ TTS 引擎。 + </li> + <li>[<a href="#3_11_text_to_speech">3.11</a>/T-1-1] 必须支æŒå®‰è£…第三方 TTS 引擎。 + </li> + </ul> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#3_12_tv_input_framework">3.12</a>/T-0-1] å¿…é¡»æ”¯æŒ TV 输入框架。 + </li> + </ul> + <h4 id="2_3_4_performance_and_power"> +2.3.4. 性能和功耗 + </h4> + <ul> + <li>[<a href="#8_1_user_experience_consistency">8.1</a>/T-0-1] <strong>一致的帧延迟</strong>:帧延迟或渲染帧延迟ä¸ä¸€è‡´çš„å‘生频率ä¸å¾—超过æ¯ç§’ 5 帧,并且应低于æ¯ç§’ 1 帧。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/T-0-1] 必须确ä¿é¡ºåºå†™å…¥æ€§èƒ½è‡³å°‘为 5MB/s。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/T-0-2] 必须确ä¿éšæœºå†™å…¥æ€§èƒ½è‡³å°‘为 0.5MB/s。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/T-0-3] 必须确ä¿é¡ºåºè¯»å–性能至少为 15MB/s。 + </li> + <li>[<a href="#8_2_file_io_access_performance">8.2</a>/T-0-4] 必须确ä¿éšæœºè¯»å–性能至少为 3.5MB/s。 + </li> + </ul> + <p> +如果 TV 设备实现ä¸çš„功能å¯æ”¹è¿› AOSP ä¸çš„设备电æºç®¡ç†æˆ–扩展 AOSP ä¸çš„功能,则: + </p> + <ul> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/T-1-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨å’Œåœç”¨çœç”µæ¨¡å¼ã€‚ + </li> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/T-1-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å…于进入应用待机模å¼å’Œä½Žç”µè€—模å¼çš„所有应用。 + </li> + </ul> + <p> +TV 设备实现: + </p> + <ul> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/T-0-1] å¿…é¡»æ供一个关于å„组件功耗的é…置文件,其ä¸è¦å®šä¹‰æ¯ç§ç¡¬ä»¶ç»„件的<a href="http://source.android.com/devices/tech/power/values.html">耗电值</a>,以åŠç»„件在一段时间内大概消耗的电é‡ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上所述)。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/T-0-2] 必须以毫安å°æ—¶ (mAh) 为å•ä½æŠ¥å‘Šæ‰€æœ‰åŠŸè€—值。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/T-0-3] 必须按æ¯ä¸ªè¿›ç¨‹çš„ UID 报告 CPU 功耗。Android å¼€æºé¡¹ç›®é€šè¿‡ <code>uid_cputime</code> å†…æ ¸æ¨¡å—实现æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/T] å¦‚æžœæ— æ³•å°†ç¡¬ä»¶ç»„ä»¶çš„åŠŸè€—å½’äºŽæŸä¸ªåº”用,则应将其归于硬件组件本身。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/T-0-4] 必须能让应用开å‘者通过 <a href="http://source.android.com/devices/tech/power/batterystats.html"><code>adb shell dumpsys batterystats</code></a> shell 命令查看æ¤åŠŸè€—。 + </li> + </ul> + <h3 id="2_4_watch_requirements"> +2.4. 针对 Watch çš„è¦æ±‚ + </h3> + <p> +<strong>Android Watch 设备</strong>:一ç§åº”穿戴在身上(也许是戴在手腕上)的 Android 设备实现。 + </p> + <p> +满足以下所有æ¡ä»¶çš„ Android 设备实现å¯å½’类为 Watch 设备: + </p> + <ul> + <li>具有物ç†å¯¹è§’线长度介于 1.1 到 2.5 英寸之间的å±å¹•ã€‚ + </li> + <li>具有旨在方便穿戴在身上的机制。 + </li> + </ul> + <p> +本节其余部分ä¸çš„é™„åŠ è¦æ±‚针对的是 Android Watch 设备实现。 + </p> + <h4 id="2_4_1_hardware"> +2.4.1. 硬件 + </h4> + <p> +Watch 设备实现: + </p> + <ul> + <li> + <p> +[<a href="#7_1_display_and_graphics">7.1</a>.1.1/W-0-1] 必须具有物ç†å¯¹è§’线尺寸介于 1.1 到 2.5 英寸之间的å±å¹•ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_2_input_devices">7.2</a>.3/W-0-1] 必须为用户æ供“主å±å¹•â€åŠŸèƒ½ï¼Œè¿˜å¿…é¡»æ供“返回â€åŠŸèƒ½ï¼ˆå¤„于 <code>UI_MODE_TYPE_WATCH</code> 模å¼æ—¶é™¤å¤–)。 + </p> + </li> + <li> + <p> +[<a href="#7_2_input_devices">7.2</a>.4/W-0-1] 必须支æŒè§¦æ‘¸å±è¾“入。 + </p> + </li> + <li> + <p> +[<a href="#7_3_sensors">7.3</a>.1/W-SR] å¼ºçƒˆå»ºè®®åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_4_data_connectivity">7.4</a>.3/W-0-1] 必须支æŒè“牙。 + </p> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/W-0-1] 必须有至少 1GB çš„éžæ˜“失性å˜å‚¨ç©ºé—´å¯ç”¨äºŽå˜å‚¨åº”用éšç§æ•°æ®ï¼ˆè¯¥ç©ºé—´ä¹Ÿç§°ä¸ºâ€œ/dataâ€åˆ†åŒºï¼‰ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/W-0-2] 必须有至少 416MB 的内å˜å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_8_audio">7.8</a>.1/W-0-1] 必须包å«éº¦å…‹é£Žã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_8_audio">7.8</a>.2/W] å¯ä»¥ï¼ˆä½†ä¸åº”)包å«éŸ³é¢‘输出机制。 + </p> + </li> + </ul> + <h4 id="2_4_2_multimedia"> +2.4.2. 多媒体 + </h4> + <p> +没有é¢å¤–è¦æ±‚。 + </p> + <h4 id="2_4_3_software"> +2.4.3. 软件 + </h4> + <p> +Watch 设备实现: + </p> + <ul> + <li>[<a href="#3_0_intro">3</a>/W-0-1] 必须声明 <code>android.hardware.type.watch</code> 功能。 + </li> + <li>[<a href="#3_0_intro">3</a>/W-0-2] å¿…é¡»æ”¯æŒ uiMode = <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH">UI_MODE_TYPE_WATCH</a>。 + </li> + </ul> + <p> +Watch 设备实现: + </p> + <ul> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.4/W-SR] 强烈建议在设备上实现一个辅助程åºæ¥å¤„ç†<a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">辅助æ“作</a>。 + </li> + </ul> + <p> +声明 <code>android.hardware.audio.output</code> åŠŸèƒ½æ ‡è®°çš„ Watch 设备实现: + </p> + <ul> + <li>[<a href="#3_10_accessibility">3.10</a>/W-1-1] 必须支æŒç¬¬ä¸‰æ–¹æ— éšœç¢æœåŠ¡ã€‚ + </li> + <li>[<a href="#3_10_accessibility">3.10</a>/W-SR] å¼ºçƒˆå»ºè®®åœ¨è®¾å¤‡ä¸Šé¢„åŠ è½½æ— éšœç¢æœåŠ¡ï¼Œå¹¶ä¸”这些æœåŠ¡çš„功能è¦ä¸Ž <a href="https://github.com/google/talkback">TalkBack å¼€æºé¡¹ç›®</a>ä¸æ供的开关控制和 TalkBackï¼ˆé€‚ç”¨äºŽé¢„åŠ è½½çš„æ–‡å—转è¯éŸ³å¼•æ“Žæ”¯æŒçš„è¯è¨€ï¼‰æ— éšœç¢æœåŠ¡çš„功能相当或更胜一ç¹ã€‚ + </li> + </ul> + <p> +如果 Watch 设备实现报告 android.hardware.audio.output 功能,则: + </p> + <ul> + <li> + <p> +[<a href="#3_11_text_to_speech">3.11</a>/W-SR] 强烈建议包å«æ”¯æŒè®¾å¤‡ä¸Šå¯ç”¨è¯è¨€çš„ TTS 引擎。 + </p> + </li> + <li> + <p> +[<a href="#3_11_text_to_speech">3.11</a>/W-0-1] 必须支æŒå®‰è£…第三方 TTS 引擎。 + </p> + </li> + </ul> + <h4 id="2_4_4_performance_and_power"> +2.4.4. 性能和功耗 + </h4> + <p> +如果 Watch 设备实现ä¸çš„功能å¯æ”¹è¿› AOSP ä¸çš„设备电æºç®¡ç†æˆ–扩展 AOSP ä¸çš„功能,则: + </p> + <ul> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/W-SR] 强烈建议æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å…于进入应用待机模å¼å’Œä½Žç”µè€—模å¼çš„所有应用。 + </li> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/W-SR] 强烈建议æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨å’Œåœç”¨çœç”µæ¨¡å¼ã€‚ + </li> + </ul> + <p> +Watch 设备实现: + </p> + <ul> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/W-0-1] å¿…é¡»æ供一个关于å„组件功耗的é…置文件,其ä¸è¦å®šä¹‰æ¯ç§ç¡¬ä»¶ç»„件的<a href="http://source.android.com/devices/tech/power/values.html">耗电值</a>,以åŠç»„件在一段时间内大概消耗的电é‡ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上所述)。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/W-0-2] 必须以毫安å°æ—¶ (mAh) 为å•ä½æŠ¥å‘Šæ‰€æœ‰åŠŸè€—值。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/W-0-3] 必须按æ¯ä¸ªè¿›ç¨‹çš„ UID 报告 CPU 功耗。Android å¼€æºé¡¹ç›®é€šè¿‡ <code>uid_cputime</code> å†…æ ¸æ¨¡å—实现æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/W-0-4] 必须能让应用开å‘者通过 <a href="http://source.android.com/devices/tech/power/batterystats.html"><code>adb shell dumpsys batterystats</code></a> shell 命令查看æ¤åŠŸè€—。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/W] å¦‚æžœæ— æ³•å°†ç¡¬ä»¶ç»„ä»¶çš„åŠŸè€—å½’äºŽæŸä¸ªåº”用,则应将其归于硬件组件本身。 + </li> + </ul> + <h3 id="2_5_automotive_requirements"> +2.5. 针对 Automotive çš„è¦æ±‚ + </h3> + <p> + <strong>Android Automotive 实现</strong>:一ç§æ±½è½¦éŸ³å“主机,è¿è¡Œ Android 作为æ“作系统æ¥å®žçŽ°éƒ¨åˆ†æˆ–全部的系统功能和/或信æ¯å¨±ä¹åŠŸèƒ½ã€‚ + </p> + <p> +声明了 <code>android.hardware.type.automotive</code> 功能或满足以下所有æ¡ä»¶çš„ Android 设备实现å¯å½’类为 Automotive 设备。 + </p> + <ul> + <li>作为部件嵌入到车辆上或å¯æ’入到车辆上。 + </li> + <li>使用驾驶侧的å±å¹•ä½œä¸ºä¸»è¦æ˜¾ç¤ºå±ã€‚ + </li> + </ul> + <p> +本节其余部分ä¸çš„é™„åŠ è¦æ±‚针对的是 Android Automotive 设备实现。 + </p> + <h4 id="2_5_1_hardware"> +2.5.1. 硬件 + </h4> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_1_display_and-graphics">7.1</a>.1.1/A-0-1] 必须具有物ç†å¯¹è§’线尺寸至少为 6 英寸的å±å¹•ã€‚ + </li> + <li> + <p> +[<a href="#7_1_display_and_graphics">7.1</a>.1.1/A-0-2] å±å¹•å°ºå¯¸å¸ƒå±€å¿…须至少为 750 dp x 480 dp。 + </p> + </li> + <li> + <p> +[<a href="#7_2_input_devices">7.2</a>.3/A-0-1] å¿…é¡»æ供“主å±å¹•â€åŠŸèƒ½ï¼Œå¹¶ä¸”å¯ä»¥æ供“返回â€å’Œâ€œæœ€è¿‘用过â€åŠŸèƒ½ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_2_input_devices">7.2</a>.3/A-0-2] 必须将“返回â€åŠŸèƒ½ (<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK"><code>KEYCODE_BACK</code></a>) 的常规按下事件和长按事件都å‘é€åˆ°å‰å°åº”用。 + </p> + </li> + <li> + <p> +[<a href="#7_3_sensors">7.3</a>.1/A-SR] å¼ºçƒˆå»ºè®®åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ã€‚ + </p> + </li> + </ul> + <p> +如果 Automotive è®¾å¤‡å®žçŽ°åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.1/A-1-1] 必须能够以至少 100 Hz 的频率报告事件。 + </li> + <li>[<a href="#7_3_sensors">7.3</a>.1/A-1-2] å¿…é¡»éµä»Ž Android <a href="http://source.android.com/devices/sensors/sensor-types.html#auto_axes">æ±½è½¦ä¼ æ„Ÿå™¨åæ ‡ç³»</a>。 + </li> + </ul> + <p> +如果 Automotive è®¾å¤‡å®žçŽ°åŒ…å« GPS/GNSS 接收器,并且通过 <code>android.hardware.location.gps</code> åŠŸèƒ½æ ‡è®°å‘应用报告该功能,则: + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.3/A-1-1] GNSS 技术的出产年份必须为“2017 å¹´â€æˆ–更晚。 + </li> + </ul> + <p> +如果 Automotive 设备实现包å«é™€èžºä»ªï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.4/A-1-1] 必须能够以至少 100 Hz 的频率报告事件。 + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.11/A-0-1] å¿…é¡»æ供用电装置(作为 <code>SENSOR_TYPE_GEAR</code>)。 + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_3_sensors">7.3</a>.11.2/A-0-1] 必须支æŒå®šä¹‰ä¸º <code>SENSOR_TYPE_NIGHT</code> 的日间/夜间模å¼ã€‚ + </li> + <li>[<a href="#7_3_sensors">7.3</a>.11.2/A-0-2] <code>SENSOR_TYPE_NIGHT</code> æ ‡è®°çš„å€¼å¿…é¡»ä¸Žä¿¡æ¯ä¸å¿ƒçš„日间/夜间模å¼ä¸€è‡´ï¼Œå¹¶ä¸”åº”åŸºäºŽçŽ¯å¢ƒå…‰ä¼ æ„Ÿå™¨è¾“å…¥ã€‚ + </li> + <li> + <p> +åº•å±‚çŽ¯å¢ƒå…‰ä¼ æ„Ÿå™¨å¯ä»¥ä¸Ž<a href="#7_3_7_photometer">光度计</a>相åŒã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_3_sensors">7.3</a>.11.4/A-0-1] å¿…é¡»æ供定义为 <code>SENSOR_TYPE_CAR_SPEED</code> 的车速。 + </p> + </li> + <li> + <p> +[<a href="#7_3_sensors">7.3</a>.11.5/A-0-1] å¿…é¡»æ供定义为 <code>SENSOR_TYPE_PARKING_BRAKE</code> 的驻车制动状æ€ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_4_data_connectivity">7.4</a>.3/A-0-1] 必须支æŒè“牙,并且应支æŒè“牙 LE。 + </p> + </li> + <li>[<a href="#7_4_data_connectivity">7.4</a>.3/A-0-2] Android Automotive 实现必须支æŒä»¥ä¸‹è“牙é…置: + <ul> + <li>通过å…æ模å¼é…ç½® (HFP) 拨打电è¯ã€‚ + </li> + <li>通过音频分å‘é…ç½® (A2DP) æ’放媒体。 + </li> + <li>通过远程控制é…ç½® (AVRCP) 控制媒体æ’放。 + </li> + <li>使用电è¯ç°¿è®¿é—®é…ç½® (PBAP) 分享è”系人信æ¯ã€‚ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_4_data_connectivity">7.4</a>.3/A-SR] 强烈建议支æŒæ¶ˆæ¯è®¿é—®é…ç½® (MAP)。 + </p> + </li> + <li> + <p> +[<a href="#7_4_data_connectivity">7.4</a>.5/A] 应支æŒåŸºäºŽç§»åŠ¨ç½‘络的数æ®ç½‘络连接。 + </p> + </li> + <li> + <p> +[<a href="#7_4_data_connectivity">7.4</a>.5/A] å¯ä»¥é’ˆå¯¹åº”å¯ä¾›ç³»ç»Ÿåº”用使用的网络使用系统 API <code>NetworkCapabilities#NET_CAPABILITY_OEM_PAID</code> 常é‡ã€‚ + </p> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-0-1] 必须有至少 4GB çš„éžæ˜“失性å˜å‚¨ç©ºé—´å¯ç”¨äºŽå˜å‚¨åº”用éšç§æ•°æ®ï¼ˆè¯¥ç©ºé—´ä¹Ÿç§°ä¸ºâ€œ/dataâ€åˆ†åŒºï¼‰ã€‚ + </p> + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_6_memory_and_storage">7.6</a>.1/A] 应设置数æ®åˆ†åŒºçš„æ ¼å¼ä»¥æå‡é—ªå˜çš„性能和使用寿命(例如采用 <code>f2fs</code> 文件系统)。 + </li> + </ul> + <p> +如果 Automotive 设备实现通过一部分ä¸å¯ç§»åŠ¨çš„内部å˜å‚¨ç©ºé—´æ供共享的外部å˜å‚¨ç©ºé—´ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_6_memory_and_storage">7.6</a>.1/A-SR] 强烈建议å‡å°‘对外部å˜å‚¨ç©ºé—´æ‰§è¡Œæ“作所需的 I/O 开销(例如使用 <code>SDCardFS</code>)。 + </li> + </ul> + <p> +如果 Automotive 设备实现是 32 ä½ï¼š + </p> + <ul> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-1-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 512MB: + </p> + <ul> + <li>280dpi 或更低(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>ldpi 或更低(超大å±å¹•ï¼‰ + </li> + <li>mdpi 或更低(大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-1-2] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 608MB: + </p> + <ul> + <li>xhdpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>hdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>mdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-1-3] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 896MB: + </p> + <ul> + <li>400dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>tvdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-1-4] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1344MB: + </p> + <ul> + <li>560dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>400dpi 或更高(大å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + </ul> + <p> +如果 Automotive 设备实现是 64 ä½ï¼š + </p> + <ul> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-2-1] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 816MB: + </p> + <ul> + <li>280dpi 或更低(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>ldpi 或更低(超大å±å¹•ï¼‰ + </li> + <li>mdpi 或更低(大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-2-2] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 944MB: + </p> + <ul> + <li>xhdpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>hdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>mdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-2-3] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1280MB: + </p> + <ul> + <li>400dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(大å±å¹•ï¼‰ + </li> + <li>tvdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + <li> + <p> +[<a href="#7_6_memory_and_storage">7.6</a>.1/A-2-4] 如果使用了以下任何密度,则å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜å¿…须至少为 1824MB: + </p> + <ul> + <li>560dpi 或更高(å°å±å¹•/普通å±å¹•ï¼‰ + </li> + <li>400dpi 或更高(大å±å¹•ï¼‰ + </li> + <li>xhdpi 或更高(超大å±å¹•ï¼‰ + </li> + </ul> + </li> + </ul> + <p> +请注æ„,上文æ到的“å¯ä¾›å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ä½¿ç”¨çš„å†…å˜â€æ˜¯æŒ‡é™¤äº†å·²ä¸“é—¨ç”¨äºŽç¡¬ä»¶ç»„ä»¶ï¼ˆä¾‹å¦‚è®¾å¤‡å®žçŽ°ä¸Šçš„æ— çº¿è£…ç½®ã€è§†é¢‘组件,以åŠå…¶ä»–ä¸å—å†…æ ¸æŽ§åˆ¶çš„ç»„ä»¶ï¼‰çš„æ‰€æœ‰å†…å˜ä¹‹å¤–å¦è¡Œæ供的内å˜ç©ºé—´ã€‚ + </p> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_7_usb">7.7</a>.1/A] 应包å«æ”¯æŒå¤–设模å¼çš„ USB 端å£ã€‚ + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_8_audio">7.8</a>.1/A-0-1] 必须包å«éº¦å…‹é£Žã€‚ + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#7_8_audio">7.8</a>.2/A-0-1] 必须具有音频输出机制,并声明 <code>android.hardware.audio.output</code>。 + </li> + </ul> + <h4 id="2_5_2_multimedia"> +2.5.2. 多媒体 + </h4> + <p> +Automotive 设备实现必须支æŒä»¥ä¸‹éŸ³é¢‘ç¼–ç : + </p> + <ul> + <li>[<a href="#5_1_media_codecs">5.1</a>/A-0-1] MPEG-4 AAC Profile (AAC LC) + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>/A-0-2] MPEG-4 HE AAC Profile (AAC+) + </li> + <li>[<a href="#5_1_media_codecs">5.1</a>/A-0-3] AAC ELD(增强型低延迟 AAC) + </li> + </ul> + <p> +Automotive 设备实现必须支æŒä»¥ä¸‹è§†é¢‘ç¼–ç : + </p> + <ul> + <li>[<a href="#5_2_video_encoding">5.2</a>/A-0-1] H.264 AVC + </li> + <li>[<a href="#5_2_video_encoding">5.2</a>/A-0-2] VP8 + </li> + </ul> + <p> +Automotive 设备实现必须支æŒä»¥ä¸‹è§†é¢‘解ç : + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3</a>/A-0-1] H.264 AVC + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/A-0-2] MPEG-4 SP + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/A-0-3] VP8 + </li> + <li>[<a href="#5_3_video_decoding">5.3</a>/A-0-4] VP9 + </li> + </ul> + <p> +强烈建议 Automotive 设备实现支æŒä»¥ä¸‹è§†é¢‘解ç : + </p> + <ul> + <li>[<a href="#5_3_video_decoding">5.3</a>/A-SR] H.265 HEVC + </li> + </ul> + <h4 id="2_5_3_software"> +2.5.3. 软件 + </h4> + <p> +Automotive 设备实现: + </p> + <ul> + <li> + <p> +[<a href="#3_0_intro">3</a>/A-0-1] 必须声明 <code>android.hardware.type.automotive</code> 功能。 + </p> + </li> + <li> + <p> +[<a href="#3_0_intro">3</a>/A-0-2] å¿…é¡»æ”¯æŒ uiMode = <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR"><code>UI_MODE_TYPE_CAR</code></a>。 + </p> + </li> + <li> + <p> +[<a href="#3_0_intro">3</a>/A-0-3] å¿…é¡»æ”¯æŒ <a href="https://developer.android.com/reference/android/car/package-summary"><code>android.car.*</code></a> 命å空间ä¸çš„所有公共 API。 + </p> + </li> + <li> + <p> +[<a href="#3_4_web_compatibility">3.4</a>.1/A-0-1] å¿…é¡»æä¾› <code>android.webkit.Webview</code> API 的完整实现。 + </p> + </li> + <li> + <p> +[<a href="#3_8_user_interface_compatibility">3.8</a>.3/A-0-1] 必须能够应第三方应用的请求显示使用 <a href="https://developer.android.com/reference/android/app/Notification.CarExtender.html"><code>Notification.CarExtender</code></a> API 的通知。 + </p> + </li> + <li> + <p> +[<a href="#3_8_user_interface_compatibility">3.8</a>.4/A-0-1] 必须在设备上实现一个辅助程åºï¼Œç”¨äºŽæä¾› <a href="https://developer.android.com/reference/android/service/voice/VoiceInteractionSession"><code>VoiceInteractionSession</code></a> æœåŠ¡çš„默认实现。 + </p> + </li> + <li> + <p> +[<a href="#3_13_quick_settings">3.13</a>/A-SR] 强烈建议包å«å¿«æ·è®¾ç½®ç•Œé¢ç»„件。 + </p> + </li> + </ul> + <p> +如果 Automotive 设备实现包å«æŒ‰é”®é€šè¯æŒ‰é’®ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#3_8_user_interface_compatibility">3.8</a>.4/A-1-1] 必须将çŸæŒ‰æŒ‰é”®é€šè¯æŒ‰é’®ç”¨ä½œå¯åŠ¨ç”¨æˆ·é€‰æ‹©çš„辅助应用(也就是实现 <a href="https://developer.android.com/reference/android/service/voice/VoiceInteractionService"><code>VoiceInteractionService</code></a> 的应用)的指定交互。 + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#3_14_media_ui">3.14</a>/A-0-1] 必须包å«ä¸€ä¸ªç•Œé¢æ¡†æž¶ï¼Œä»¥æ”¯æŒä½¿ç”¨åª’体 API 的第三方应用(如第 <a href="#3_14_media_ui">3.14</a> 节ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <h4 id="2_5_4_performance_and_power"> +2.5.4. 性能和功耗 + </h4> + <p> +如果 Automotive 设备实现ä¸çš„功能å¯æ”¹è¿› AOSP ä¸çš„设备电æºç®¡ç†æˆ–扩展 AOSP ä¸çš„功能,则: + </p> + <ul> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/A-1-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨å’Œåœç”¨çœç”µæ¨¡å¼ã€‚ + </li> + <li>[<a href="#8_3_power_saving_modes">8.3</a>/A-1-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å…于进入应用待机模å¼å’Œä½Žç”µè€—模å¼çš„所有应用。 + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#8_2_file_i/o_access_performance">8.2</a>/A-0-1] 必须按æ¯ä¸ªè¿›ç¨‹çš„ UID 报告读å–和写入éžæ˜“失性å˜å‚¨ç©ºé—´çš„å—节数,以便开å‘者通过系统 API <code>android.car.storagemonitoring.CarStorageMonitoringManager</code> 获å–统计信æ¯ã€‚Android å¼€æºé¡¹ç›®é€šè¿‡ <code>uid_sys_stats</code> å†…æ ¸æ¨¡å—æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/A-0-1] å¿…é¡»æ供一个关于å„组件功耗的é…置文件,其ä¸è¦å®šä¹‰æ¯ç§ç¡¬ä»¶ç»„件的<a href="http://source.android.com/devices/tech/power/values.html">耗电值</a>,以åŠç»„件在一段时间内大概消耗的电é‡ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上所述)。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/A-0-2] 必须以毫安å°æ—¶ (mAh) 为å•ä½æŠ¥å‘Šæ‰€æœ‰åŠŸè€—值。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/A-0-3] 必须按æ¯ä¸ªè¿›ç¨‹çš„ UID 报告 CPU 功耗。Android å¼€æºé¡¹ç›®é€šè¿‡ <code>uid_cputime</code> å†…æ ¸æ¨¡å—实现æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/A] å¦‚æžœæ— æ³•å°†ç¡¬ä»¶ç»„ä»¶çš„åŠŸè€—å½’äºŽæŸä¸ªåº”用,则应将其归于硬件组件本身。 + </li> + <li>[<a href="#8_4_power_consumption_accounting">8.4</a>/A-0-4] 必须能让应用开å‘者通过 <a href="http://source.android.com/devices/tech/power/batterystats.html"><code>adb shell dumpsys batterystats</code></a> shell 命令查看æ¤åŠŸè€—。 + </li> + </ul> + <h4 id="2_5_5_security_model"> +2.5.5. 安全模型 + </h4> + <p> +如果 Automotive 设备实现支æŒå¤šä¸ªç”¨æˆ·ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#9_5_multi_user_support">9.5</a>/A-1-1] 必须包å«ä¸€ä¸ªè®©ç”¨æˆ·æ— 需登录å³å¯ä½¿ç”¨è½¦è½½ç³»ç»Ÿæ‰€æœ‰åŠŸèƒ½çš„访客å¸å·ã€‚ + </li> + </ul> + <p> +如果 Automotive 设备实现支æŒå®‰å…¨é”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#9_9_full_disk_encryption">9.9</a>.2/A-1-1] 必须支æŒæ ¹æ®ç‰¹å®šäºŽç”¨æˆ·çš„身份验è¯å¯†é’¥è¿›è¡ŒåŠ 密。<a href="https://source.android.com/security/encryption/file-based">æ–‡ä»¶çº§åŠ å¯† (FBE)</a> 便是一ç§æ–¹æ³•ã€‚ + </li> + </ul> + <p> +Automotive 设备实现: + </p> + <ul> + <li>[<a href="#9_14_automotive_system_isolation">9.14</a>/A-0-1] 必须对æ¥è‡ª Android 框架车载å系统的消æ¯è¿›è¡ŒæŠŠå…³ï¼Œä¾‹å¦‚å°†å…许的消æ¯ç±»åž‹å’Œæ¶ˆæ¯æ¥æºåˆ—入白åå•ã€‚ + </li> + <li>[<a href="#9_14_automotive_system_isolation">9.14</a>/A-0-2] 必须监控æ¥è‡ª Android 框架或第三方应用的拒ç»æœåŠ¡æ”»å‡»ã€‚æ¤ç›‘控程åºå¯é˜²æ¢æ¶æ„软件使用泛洪攻击车载网络æµé‡ï¼ˆè¿™å¯èƒ½ä¼šå¯¼è‡´è½¦è½½åç³»ç»Ÿæ— æ³•æ£å¸¸è¿è¡Œï¼‰ã€‚ + </li> + </ul> + <h3 id="2_6_tablet_requirements"> +2.6. 针对平æ¿ç”µè„‘çš„è¦æ±‚ + </h3> + <p> +<strong>Android å¹³æ¿ç”µè„‘设备</strong>ï¼šä¸€ç§ Android 设备实现,通常是拿在åŒæ‰‹ä¸ä½¿ç”¨ï¼Œå¹¶ä¸”外形ä¸æ˜¯ç¿»ç›–å¼ã€‚ + </p> + <p> +满足以下所有æ¡ä»¶çš„ Android 设备实现å¯å½’类为平æ¿ç”µè„‘: + </p> + <ul> + <li>具有能够使设备实现移动性的电æºï¼Œä¾‹å¦‚ç”µæ± ã€‚ + </li> + <li>å±å¹•çš„物ç†å¯¹è§’线尺寸介于 7 到 18 英寸之间。 + </li> + </ul> + <p> +å¹³æ¿ç”µè„‘设备实现需è¦æ»¡è¶³çš„è¦æ±‚与手æŒè®¾å¤‡å®žçŽ°éœ€è¦æ»¡è¶³çš„è¦æ±‚类似。对于两者的ä¸åŒä¹‹å¤„,手æŒè®¾å¤‡å®žçŽ°è¦æ±‚çš„ç›¸åº”ç« èŠ‚ä¸å·²ä½¿ç”¨ * 指明,本节ä¸ä¹Ÿæ供了相应备注以供å‚考。 + </p> + <h4 id="2_4_1_hardware"> +2.4.1. 硬件 + </h4> + <p> + <strong>å±å¹•å°ºå¯¸</strong> + </p> + <ul> + <li>[<a href="#7_1_display_and_graphics">7.1</a>.1.1/Tab-0-1] 必须具有尺寸介于 7 到 18 英寸之间的å±å¹•ã€‚ + </li> + </ul> + <p> + <strong>最å°å†…å˜å’Œå˜å‚¨ç©ºé—´ï¼ˆç¬¬ 7.6.1 节)</strong> + </p> + <p> +针对手æŒè®¾å¤‡çš„è¦æ±‚ä¸ä¸ºå°å±å¹•/普通å±å¹•åˆ—出的å±å¹•å¯†åº¦ä¸é€‚用于平æ¿ç”µè„‘。 + </p> + <p> + <strong>USB 外设模å¼ï¼ˆç¬¬ 7.7.1 节)</strong> + </p> + <p> +如果平æ¿ç”µè„‘设备实现包å«æ”¯æŒå¤–设模å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[<a href="#7_7_usb">7.7.1</a>/Tab] å¯ä»¥å®žçŽ° Android Open Accessory (AOA) API。 + </li> + </ul> + <p> + <strong>虚拟实境模å¼ï¼ˆç¬¬ 7.9.1 节)</strong> + </p> + <p> + <strong>虚拟实境高性能(第 7.9.2 节)</strong> + </p> + <p> +针对虚拟实境的è¦æ±‚ä¸é€‚用于平æ¿ç”µè„‘。 + </p> + <h2 id="3_software"> +3. 软件 + </h2> + <h3 id="3_1_managed_api_compatibility"> +3.1. å—ç®¡ç† API 兼容性 + </h3> + <p> +å—ç®¡ç† Dalvik å—节ç 执行环境是 Android 应用所需的主è¦å®¹å™¨ã€‚Android åº”ç”¨ç¼–ç¨‹æŽ¥å£ (API) 是一组 Android å¹³å°æŽ¥å£ï¼Œå¯ä¾›åœ¨å—管ç†è¿è¡Œæ—¶çŽ¯å¢ƒä¸è¿è¡Œçš„应用使用。 + </p> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] å¿…é¡»æ供以下 API 的完整实现(包括所有载述的行为):<a href="http://developer.android.com/reference/packages.html">Android SDK</a> ä¸è½½è¿°çš„所有 API,或上游 Android æºä»£ç ä¸æ‰€æœ‰å¸¦â€œ@SystemApiâ€æ ‡è®°çš„ API。 + </p> + </li> + <li> + <p> +[C-0-2] 必须支æŒ/ä¿ç•™æ‰€æœ‰æ ‡æœ‰ TestApi 注记 (@TestApi) çš„ç±»ã€æ–¹æ³•å’Œå…³è”çš„å…ƒç´ ã€‚ + </p> + </li> + <li> + <p> +[C-0-3] 除éžæœ¬å…¼å®¹æ€§å®šä¹‰ä¸æ˜Žç¡®è®¸å¯ï¼Œå¦åˆ™ä¸å¾—çœç•¥ä»»ä½•å—ç®¡ç† API,ä¸å¾—更改 API 接å£æˆ–ç¾å,ä¸å¾—è¿èƒŒè½½è¿°çš„行为,也ä¸å¾—包å«ç©ºæ“作。 + </p> + </li> + <li> + <p> +[C-0-4] å¿…é¡»ä»ä¿ç•™ API 并使其采å–åˆç†çš„行为方å¼ï¼Œå³ä½¿ Android 包å«çš„ API 所对应的æŸäº›ç¡¬ä»¶åŠŸèƒ½è¢«çœç•¥ä¹Ÿæ˜¯å¦‚æ¤ã€‚如需了解针对这ç§æƒ…况的具体è¦æ±‚,请å‚阅<a href="#7_hardware_compatibility">第 7 节</a>。 + </p> + </li> + <li> + <p> +[C-0-5] å¿…é¡»é™åˆ¶ç¬¬ä¸‰æ–¹åº”用使用éšè— API(在 Android 命å空间ä¸è¢«å®šä¹‰ä¸ºå¸¦ <code>@hidden</code> 注释但ä¸å¸¦ <code>@SystemAPI</code> 或 <code>@TestApi</code> çš„ API)(如 <a href="https://developer.android.com/preview/restrictions-non-sdk-interfaces">SDK 文档</a>ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶åœ¨é€šè¿‡ <code>prebuilts/runtime/appcompat/</code> 路径下的浅ç°åå•ã€æ·±ç°åå•å’Œé»‘åå•æ–‡ä»¶ä¸º AOSP ä¸ç›¸åº”çš„ API 级别分支æ供的相åŒå—é™åˆ—表ä¸éšé™„æ¯ä¸ªéšè— API,ä¸è¿‡ï¼š + </p> + <ul> + <li>如果éšè— API ä¸å˜åœ¨æˆ–在设备实现ä¸ä»¥å…¶ä»–æ–¹å¼å®žçŽ°ï¼Œåˆ™å¯ä»¥å°†éšè— API 移入黑åå•æˆ–从所有å—é™åˆ—表(å³æµ…ç°åå•ã€æ·±ç°åå•ã€é»‘åå•ï¼‰ä¸å°†å…¶çœç•¥ã€‚ + </li> + <li>如果 AOSP ä¸å°šæ²¡æœ‰æŸä¸ªéšè— API,则å¯ä»¥å°†è¯¥éšè— API æ·»åŠ åˆ°ä»»ä¸€å—é™åˆ—表(å³æµ…ç°åå•ã€æ·±ç°åå•ã€é»‘åå•ï¼‰ä¸ã€‚ + </li> + <li>å¯ä»¥å®žçŽ°æŸç§åŠ¨æ€æ›´æ–°æœºåˆ¶ï¼Œå°†éšè— API 从å—é™åˆ—表ä¸ç§»å…¥é™åˆ¶æ›´å®½æ¾çš„列表(白åå•é™¤å¤–)ä¸ã€‚ + </li> + </ul> + </li> + </ul> + <h3 id="3_1_1_android_extensions"> +3.1.1. Android 扩展 + </h3> + <p> +Android 支æŒåœ¨ä½¿ API 级别版本ä¿æŒä¸å˜çš„情况下扩展å—ç®¡ç† API。 + </p> + <ul> + <li>[C-0-1] Android è®¾å¤‡å®žçŽ°å¿…é¡»é¢„åŠ è½½ <code>ExtShared</code> 共享库和 <code>ExtServices</code> æœåŠ¡ï¼ˆç‰ˆæœ¬ä¸ä½ŽäºŽæ¯ä¸ª API 级别所å…许的最低版本)的 AOSP 实现。例如,è¿è¡Œ API 24 级的 Android 7.0 设备实现包å«çš„版本必须至少为 1。 + </li> + </ul> + <h3 id="3_1_2_android_library"> +3.1.2. Android 库 + </h3> + <p> +由于<a href="https://developer.android.com/preview/behavior-changes#apache-p">已弃用 Apache HTTP 客户端</a>,设备实现: + </p> + <ul> + <li>[C-0-1] ä¸å¾—å°† <code>org.apache.http.legacy</code> 库放入å¯åŠ¨ç±»è·¯å¾„。 + </li> + <li>[C-0-2] 必须仅在应用满足以下æ¡ä»¶ä¹‹ä¸€æ—¶å°† <code>org.apache.http.legacy</code> åº“æ·»åŠ åˆ°åº”ç”¨ç±»è·¯å¾„ï¼š + <ul> + <li>é¢å‘ API 28 级或更低级别。 + </li> + <li>通过将 <code><uses-library></code> çš„ <code>android:name</code> 属性设置为 <code>org.apache.http.legacy</code>,在其清å•æ–‡ä»¶ä¸å£°æ˜Žéœ€è¦è¯¥åº“。 + </li> + </ul> + </li> + </ul> + <p> +AOSP 实现满足上述è¦æ±‚。 + </p> + <h3 id="3_2_soft_api_compatibility"> +3.2. 软 API 兼容性 + </h3> + <p> +除了<a href="#3_1_managed_api_compatibility">第 3.1 节</a>ä¸çš„å—ç®¡ç† API 之外,Android 还包å«ä¸€ä¸ªéžå¸¸é‡è¦çš„è¿è¡Œæ—¶ä¸“用“软â€API,该 API 采用 Intentã€æƒé™ï¼Œä»¥åŠ Android 应用的类似方é¢ï¼ˆå®ƒä»¬åœ¨åº”ç”¨ç¼–è¯‘æœŸé—´æ— æ³•è¢«å¼ºåˆ¶æ‰§è¡Œï¼‰ç‰å½¢å¼ã€‚ + </p> + <h4 id="3_2_1_permissions"> +3.2.1. æƒé™ + </h4> + <ul> + <li>[C-0-1] 设备实现必须支æŒå¹¶å¼ºåˆ¶æ‰§è¡Œæ‰€æœ‰æƒé™å¸¸é‡ï¼ˆå¦‚<a href="http://developer.android.com/reference/android/Manifest.permission.html">“æƒé™â€å‚考页é¢</a>ä¸æ‰€è¿°ï¼‰ã€‚请注æ„,<a href="#9_security_model_compatibility">第 9 节</a>ä¸åˆ—出了与 Android å®‰å…¨æ¨¡åž‹ç›¸å…³çš„é™„åŠ è¦æ±‚。 + </li> + </ul> + <h4 id="3_2_2_build_parameters"> +3.2.2. 版本å·å‚æ•° + </h4> + <p> +Android API 在 <a href="http://developer.android.com/reference/android/os/Build.html">android.os.Build ç±»</a>ä¸åŒ…å«ä¸€äº›ç”¨äºŽæ述当å‰è®¾å¤‡çš„常é‡ã€‚ + </p> + <ul> + <li>[C-0-1] 为了在å„ç§è®¾å¤‡å®žçŽ°ä¹‹é—´æ供一致且有æ„义的值,下表ä¸åˆ—å‡ºäº†é’ˆå¯¹è¿™äº›å€¼çš„æ ¼å¼çš„一些其他é™åˆ¶ï¼Œè®¾å¤‡å®žçŽ°å¿…é¡»éµä»Žè¿™äº›é™åˆ¶ã€‚ + </li> + </ul> + <table> + <tbody><tr> + <th> +å‚æ•° + </th> + <th> +è¯¦ç»†ä¿¡æ¯ + </th> + </tr> + <tr> + <td> +VERSION.RELEASE + </td> + <td> +当å‰æ£åœ¨æ‰§è¡Œçš„ Android 系统的版本,采用人类å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该å—段的值必须是 <a href="http://source.android.com/compatibility/9/versions.html">9</a> ä¸å®šä¹‰çš„å—符串值之一。 + </td> + </tr> + <tr> + <td> +VERSION.SDK + </td> + <td> +当å‰æ£åœ¨æ‰§è¡Œçš„ Android 系统的版本,采用第三方应用代ç å¯è®¿é—®çš„æ ¼å¼ã€‚对于 Android 9,该å—段必须为整数值 9_INT。 + </td> + </tr> + <tr> + <td> +VERSION.SDK_INT + </td> + <td> +当å‰æ£åœ¨æ‰§è¡Œçš„ Android 系统的版本,采用第三方应用代ç å¯è®¿é—®çš„æ ¼å¼ã€‚对于 Android 9,该å—段必须为整数值 9_INT。 + </td> + </tr> + <tr> + <td> +VERSION.INCREMENTAL + </td> + <td> +由设备实现者选择的值,用于指定当å‰æ£åœ¨æ‰§è¡Œçš„ Android 系统的具体细分版本,采用人类å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该值ä¸å¾—é‡å¤ç”¨äºŽæ供给最终用户的ä¸åŒç»†åˆ†ç‰ˆæœ¬ã€‚该å—段的一个典型用途是,指示用于生æˆç‰ˆæœ¬çš„版本å·æˆ–æºä»£ç æŽ§åˆ¶æ›´æ”¹æ ‡è¯†ç¬¦ã€‚è¯¥å—段ä¸å¾—为 null,也ä¸å¾—为空å—符串 (""),除æ¤ä¹‹å¤–,对该å—æ®µçš„å…·ä½“æ ¼å¼æ²¡æœ‰ä»»ä½•å…¶ä»–è¦æ±‚。 + </td> + </tr> + <tr> + <td> +BOARD + </td> + <td> +ç”±è®¾å¤‡å®žçŽ°è€…é€‰æ‹©çš„å€¼ï¼Œç”¨äºŽæ ‡è¯†è®¾å¤‡æ‰€ä½¿ç”¨çš„å…·ä½“å†…éƒ¨ç¡¬ä»¶ï¼Œé‡‡ç”¨äººç±»å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该å—段的一个å¯èƒ½ç”¨é€”是指明设备主æ¿çš„具体修订版本。该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9_-]+$â€åŒ¹é…。 + </td> + </tr> + <tr> + <td> +BRAND + </td> + <td> +该值用于指明与设备关è”çš„å“牌å称,å³æœ€ç»ˆç”¨æˆ·æ‰€ç†ŸçŸ¥çš„设备å“牌å称。必须采用人类å¯è¯»æ‡‚çš„æ ¼å¼ï¼Œå¹¶ä¸”åº”è¡¨ç¤ºè®¾å¤‡çš„åˆ¶é€ å•†æˆ–è®¾å¤‡åœ¨è¥é”€æ—¶æ‰€å† çš„å…¬å¸å“牌。该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9_-]+$â€åŒ¹é…。 + </td> + </tr> + <tr> + <td> +SUPPORTED_ABIS + </td> + <td> +本机代ç 指令集的å称(CPU 类型 + ABI 惯例)。请å‚阅<a href="#3_3_native_api_compatibility">第 3.3. 节:本机 API 兼容性</a>。 + </td> + </tr> + <tr> + <td> +SUPPORTED_32_BIT_ABIS + </td> + <td> +本机代ç 指令集的å称(CPU 类型 + ABI 惯例)。请å‚阅<a href="#3_3_native_api_compatibility">第 3.3. 节:本机 API 兼容性</a>。 + </td> + </tr> + <tr> + <td> +SUPPORTED_64_BIT_ABIS + </td> + <td> +本机代ç 第二个指令集的å称(CPU 类型 + ABI 惯例)。请å‚阅<a href="#3_3_native_api_compatibility">第 3.3. 节:本机 API 兼容性</a>。 + </td> + </tr> + <tr> + <td> +CPU_ABI + </td> + <td> +本机代ç 指令集的å称(CPU 类型 + ABI 惯例)。请å‚阅<a href="#3_3_native_api_compatibility">第 3.3. 节:本机 API 兼容性</a>。 + </td> + </tr> + <tr> + <td> +CPU_ABI2 + </td> + <td> +本机代ç 第二个指令集的å称(CPU 类型 + ABI 惯例)。请å‚阅<a href="#3_3_native_api_compatibility">第 3.3. 节:本机 API 兼容性</a>。 + </td> + </tr> + <tr> + <td> +DEVICE + </td> + <td> +由设备实现者选择的值,其ä¸åŒ…å«å¼€å‘者å称或代ç åç§°ï¼Œç”¨äºŽæ ‡è¯†è®¾å¤‡çš„ç¡¬ä»¶åŠŸèƒ½å’Œå·¥ä¸šè®¾è®¡é…置。该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9_-]+$â€åŒ¹é…。该设备å称在产å“的生命周期内ä¸å¾—更改。 + </td> + </tr> + <tr> + <td> +FINGERPRINT + </td> + <td> +该å—ç¬¦ä¸²ç”¨äºŽå”¯ä¸€æ ‡è¯†ç›¸åº”ç»†åˆ†ç‰ˆæœ¬ï¼Œåº”é‡‡ç”¨äººç±»å¯è¯»æ‡‚çš„æ ¼å¼ï¼Œä¸”å¿…é¡»éµä»Žä»¥ä¸‹æ¨¡æ¿ï¼š + <p class="small"> + $(BRAND)/$(PRODUCT)/<br /> +     $(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS) + </p> + <p> +例如: + </p> + <p class="small"> + acme/myproduct/<br /> +     mydevice:9/LMYXX/3359:userdebug/test-keys + </p> + <p> +该指纹ä¸å¾—包å«ç©ºæ ¼ã€‚如果上述模æ¿ä¸åŒ…å«çš„其他å—æ®µå†…æœ‰ç©ºæ ¼ï¼Œåˆ™åœ¨ç»†åˆ†ç‰ˆæœ¬æŒ‡çº¹ä¸å¿…须将其替æ¢ä¸ºå…¶ä»–å—符(例如下划线 ("_") å—符)。该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值。 + </p> + </td> + </tr> + <tr> + <td> +HARDWARE + </td> + <td> +硬件的å称(æ¥è‡ªå†…æ ¸å‘½ä»¤è¡Œæˆ– /proc),应采用人类å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9_-]+$â€åŒ¹é…。 + </td> + </tr> + <tr> + <td> +HOST + </td> + <td> +该å—ç¬¦ä¸²ç”¨äºŽå”¯ä¸€æ ‡è¯†ç¼–è¯‘ç›¸åº”ç»†åˆ†ç‰ˆæœ¬æ—¶æ‰€ç”¨çš„ä¸»æœºï¼Œé‡‡ç”¨äººç±»å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该å—段ä¸å¾—为 null,也ä¸å¾—为空å—符串 (""),除æ¤ä¹‹å¤–,对该å—æ®µçš„å…·ä½“æ ¼å¼æ²¡æœ‰ä»»ä½•å…¶ä»–è¦æ±‚。 + </td> + </tr> + <tr> + <td> +ID + </td> + <td> +ç”±è®¾å¤‡å®žçŽ°è€…é€‰æ‹©çš„æ ‡è¯†ç¬¦ï¼Œç”¨äºŽæŒ‡ç‰¹å®šç‰ˆæœ¬ï¼Œé‡‡ç”¨äººç±»å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该å—段å¯ä¸Ž android.os.Build.VERSION.INCREMENTAL 相åŒï¼Œä½†åº”是对最终用户æ¥è¯´æœ‰å……分æ„义的值,以便他们区分å„软件细分版本。该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9._-]+$â€åŒ¹é…。 + </td> + </tr> + <tr> + <td> +MANUFACTURER + </td> + <td> +产å“çš„åŽŸå§‹è®¾å¤‡åˆ¶é€ å•† (OEM) 的商å·ã€‚该å—段ä¸å¾—为 null,也ä¸å¾—为空å—符串 (""),除æ¤ä¹‹å¤–,对该å—æ®µçš„å…·ä½“æ ¼å¼æ²¡æœ‰ä»»ä½•å…¶ä»–è¦æ±‚。该å—段在产å“的生命周期内ä¸å¾—更改。 + </td> + </tr> + <tr> + <td> +MODEL + </td> + <td> +由设备实现者选择的值,其ä¸åŒ…å«æœ€ç»ˆç”¨æˆ·æ‰€ç†ŸçŸ¥çš„设备å称。该值应与设备在è¥é”€æ—¶ä»¥åŠå‡ºå”®ç»™æœ€ç»ˆç”¨æˆ·æ—¶æ‰€ä½¿ç”¨çš„å称相åŒã€‚该å—段ä¸å¾—为 null,也ä¸å¾—为空å—符串 (""),除æ¤ä¹‹å¤–,对该å—æ®µçš„å…·ä½“æ ¼å¼æ²¡æœ‰ä»»ä½•å…¶ä»–è¦æ±‚。该å—段在产å“的生命周期内ä¸å¾—更改。 + </td> + </tr> + <tr> + <td> +PRODUCT + </td> + <td> +由设备实现者选择的值,其ä¸åŒ…å«å…·ä½“äº§å“ (SKU) çš„å¼€å‘å称或代ç å称,在åŒä¸€å“牌ä¸å¿…é¡»æ˜¯ç‹¬ä¸€æ— äºŒçš„ã€‚å¿…é¡»é‡‡ç”¨äººç±»å¯è¯»æ‡‚çš„æ ¼å¼ï¼Œä½†ä¸ä¸€å®šå¯ä¾›æœ€ç»ˆç”¨æˆ·æŸ¥çœ‹ã€‚该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9_-]+$â€åŒ¹é…。该产å“å称在产å“的生命周期内ä¸å¾—更改。 + </td> + </tr> + <tr> + <td> +SERIAL + </td> + <td> +必须返回“UNKNOWNâ€ã€‚ + </td> + </tr> + <tr> + <td> +TAGS + </td> + <td> +ç”±è®¾å¤‡å®žçŽ°è€…é€‰æ‹©çš„ä¸€ç³»åˆ—æ ‡è®°ï¼ˆç”¨äºŽè¿›ä¸€æ¥åŒºåˆ†ç»†åˆ†ç‰ˆæœ¬ï¼‰ï¼Œå„ä¸ªæ ‡è®°ä¹‹é—´ä»¥è‹±æ–‡é€—å·åˆ†éš”。该å—段的值必须是与以下三ç§å…¸åž‹ Android å¹³å°ç¾åé…置对应的值之一:release-keysã€dev-keysã€test-keys。 + </td> + </tr> + <tr> + <td> +TIME + </td> + <td> +该值用于表示进行编译时的时间戳。 + </td> + </tr> + <tr> + <td> +TYPE + </td> + <td> +由设备实现者选择的值,用于指定相应细分版本的è¿è¡Œæ—¶é…置。该å—段的值必须是与以下三ç§å…¸åž‹ Android è¿è¡Œæ—¶é…置对应的值之一:userã€userdebug 或 eng。 + </td> + </tr> + <tr> + <td> +USER + </td> + <td> +生æˆç›¸åº”细分版本的用户(或自动用户)的å称或 ID。该å—段ä¸å¾—为 null,也ä¸å¾—为空å—符串 (""),除æ¤ä¹‹å¤–,对该å—æ®µçš„å…·ä½“æ ¼å¼æ²¡æœ‰ä»»ä½•å…¶ä»–è¦æ±‚。 + </td> + </tr> + <tr> + <td> +SECURITY_PATCH + </td> + <td> +该值用于指明相应细分版本的安全补ä¸ç¨‹åºçº§åˆ«ã€‚它必须表明相应细分版本在任何方é¢éƒ½ä¸å®¹æ˜“å—到指定的 Android 公共安全公告ä¸æ‰€è¿°çš„任何问题的影å“。它必须采用 [YYYY-MM-DD] æ ¼å¼ï¼Œå¹¶ä¸”与 <a href="source.android.com/security/bulletin">Android 公共安全公告</a>或 <a href="http://source.android.com/security/advisory">Android 安全建议</a>ä¸è½½è¿°çš„已定义å—符串匹é…,例如“2015-11-01â€ã€‚ + </td> + </tr> + <tr> + <td> +BASE_OS + </td> + <td> +该值表示以下细分版本的 FINGERPRINT å‚数:除了 Android 公共安全公告ä¸æ供的补ä¸ç¨‹åºä»¥å¤–,与相应细分版本完全相åŒçš„细分版本。它必须报告æ£ç¡®çš„å€¼ï¼Œå¦‚æžœè¿™æ ·çš„ç»†åˆ†ç‰ˆæœ¬ä¸å˜åœ¨ï¼Œåˆ™æŠ¥å‘Šä¸€ä¸ªç©ºå—符串 ("")。 + </td> + </tr> + <tr> + <td> + <a href="https://developer.android.com/reference/android/os/Build.html#BOOTLOADER">BOOTLOADER</a> + </td> + <td> +ç”±è®¾å¤‡å®žçŽ°è€…é€‰æ‹©çš„å€¼ï¼Œç”¨äºŽæ ‡è¯†è®¾å¤‡æ‰€ä½¿ç”¨çš„å…·ä½“å†…éƒ¨å¼•å¯¼åŠ è½½ç¨‹åºï¼Œé‡‡ç”¨äººç±»å¯è¯»æ‡‚çš„æ ¼å¼ã€‚该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9._-]+$â€åŒ¹é…。 + </td> + </tr> + <tr> + <td> + <a href="https://developer.android.com/reference/android/os/Build.html#getRadioVersion()">getRadioVersion()</a> + </td> + <td> +å¿…é¡»æ˜¯æˆ–å¿…é¡»è¿”å›žç”±è®¾å¤‡å®žçŽ°è€…é€‰æ‹©çš„å€¼ï¼Œè¯¥å€¼ç”¨äºŽæ ‡è¯†è®¾å¤‡æ‰€ä½¿ç”¨çš„å…·ä½“å†…éƒ¨æ— çº¿è£…ç½®/调制解调器版本,采用人类å¯è¯»æ‡‚çš„æ ¼å¼ã€‚å¦‚æžœè®¾å¤‡æ²¡æœ‰ä»»ä½•å†…éƒ¨æ— çº¿è£…ç½®/调制解调器,则该方法必须返回 NULL。该å—段的值必须å¯ç¼–ç 为 7 ä½çš„ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9._-,]+$â€åŒ¹é…。 + </td> + </tr> + <tr> + <td> + <a href="https://developer.android.com/reference/android/os/Build.html#getSerial()">getSerial()</a> + </td> + <td> +必须(是或返回)硬件åºåˆ—å·ï¼›å¦‚果有多款 MODEL å’Œ MANUFACTURER 相åŒçš„设备,则必须为其æ供硬件åºåˆ—å·ï¼Œå¹¶ä¸”æ供的硬件åºåˆ—å·åœ¨è¿™äº›è®¾å¤‡ä¸å¿…é¡»æ˜¯ç‹¬ä¸€æ— äºŒçš„ã€‚è¯¥å—段的值必须å¯ç¼–ç 为 7 ä½ ASCII 值,并且与æ£åˆ™è¡¨è¾¾å¼â€œ^[a-zA-Z0-9._-,]+$â€åŒ¹é…。 + </td> + </tr> + </tbody></table> + <h4 id="3_2_3_intent_compatibility"> +3.2.3. Intent 兼容性 + </h4> + <h5 id="3_2_3_1_core_application_intents"> +3.2.3.1. æ ¸å¿ƒåº”ç”¨ Intent + </h5> + <p> +通过 Android Intent,应用组件å¯ä»¥è¯·æ±‚其他 Android 组件的功能。Android 上游项目包å«ä¸€ç³»åˆ—è¢«è§†ä¸ºæ ¸å¿ƒ Android 应用的应用,这些应用å¯å®žçŽ°å¤šç§ Intent 模å¼æ¥æ‰§è¡Œå¸¸è§æ“作。 + </p> + <ul> + <li> + <p>[C-0-1] 对于 AOSP ä¸çš„ä»¥ä¸‹æ ¸å¿ƒ Android 应用定义的所有公共 Intent 过滤器模å¼ï¼Œè®¾å¤‡å®žçŽ°éƒ½å¿…é¡»é¢„åŠ è½½å¸¦æœ‰ Intent 处ç†ç¨‹åºçš„一个或多个应用或æœåŠ¡ç»„件: + </p> + <ul> + <li>æ¡Œé¢æ—¶é’Ÿ + </li> + <li>æµè§ˆå™¨ + </li> + <li>日历 + </li> + <li>通讯录 + </li> + <li>图库 + </li> + <li>GlobalSearch + </li> + <li>å¯åŠ¨å™¨ + </li> + <li>éŸ³ä¹ + </li> + <li>设置 + </li> + </ul> + </li> + </ul> + <h5 id="3_2_3_2_intent_resolution"> +3.2.3.2. Intent 解决方案 + </h5> + <ul> + <li> + <p> +[C-0-1] 由于 Android 是一个å¯æ‰©å±•çš„å¹³å°ï¼Œå› æ¤è®¾å¤‡å®žçŽ°å¿…é¡»å…许第三方应用替æ¢<a href="#3_2_3_1_core_application_intents">第 3.2.3.1 节</a>ä¸æ到的æ¯ç§ Intent 模å¼ï¼ˆâ€œè®¾ç½®â€é™¤å¤–)。上游 Android 开放æºä»£ç 实现默认å…许这么åšã€‚ + </p> + </li> + <li> + <p> +[C-0-2] 设备实现者ä¸å¾—为系统应用使用这些 Intent 模å¼çš„æƒ…å†µé™„åŠ ç‰¹æ®Šæƒé™ï¼Œä¹Ÿä¸å¾—阻æ¢ç¬¬ä¸‰æ–¹åº”用绑定到这些模å¼ä»¥åŠå–得对这些模å¼çš„控制æƒã€‚具体æ¥è¯´ï¼Œæ¤é¡¹è§„定包括但ä¸é™äºŽåœç”¨â€œé€‰æ‹©å™¨â€ç•Œé¢ï¼ˆç”¨æˆ·å¯é€šè¿‡è¯¥ç•Œé¢åœ¨å¤šä¸ªå‡å¯å¤„ç†ç›¸åŒ Intent 模å¼çš„应用之间进行选择)。 + </p> + </li> + <li> + <p> +[C-0-3] 设备实现必须æ供一个界é¢æ¥ä¾›ç”¨æˆ·ä¿®æ”¹ Intent 的默认 Activity。 + </p> + </li> + <li> + <p> +ä¸è¿‡ï¼Œå½“默认 Activity ä¸ºæ•°æ® URI æ供更具体的属性时,设备实现å¯ä»¥ä¸ºç‰¹å®š URI 模å¼ï¼ˆä¾‹å¦‚ http://play.google.com)æ供默认 Activity。例如,与针对“http://â€çš„æµè§ˆå™¨æ ¸å¿ƒ Intent 模å¼ç›¸æ¯”ï¼ŒæŒ‡å®šæ•°æ® URI“http://www.android.comâ€çš„ Intent 过滤器模å¼æ›´ä¸ºå…·ä½“。 + </p> + </li> + </ul> + <p> +Android 还包å«å¯è®©ç¬¬ä¸‰æ–¹åº”用为æŸäº›ç±»åž‹çš„网页 URI Intent 声明æƒå¨æ€§é»˜è®¤<a href="https://developer.android.com/training/app-links">应用链接行为</a>的机制。如果æ¤ç±»æƒå¨å£°æ˜Žæ˜¯åœ¨æŸä¸ªåº”用的 Intent 过滤器模å¼ä¸å®šä¹‰çš„,则设备实现: + </p> + <ul> + <li>[C-0-4] å¿…é¡»å°è¯•æ‰§è¡Œ<a href="https://developers.google.com/digital-asset-links">æ•°å—资产链接规范</a>(由上游 Android å¼€æºé¡¹ç›®ä¸çš„软件包管ç†å™¨å®žçŽ°ï¼‰ä¸å®šä¹‰çš„验è¯æ¥éª¤ï¼Œæ¥éªŒè¯æ‰€æœ‰ Intent 过滤器。 + </li> + <li>[C-0-5] 必须在应用安装期间å°è¯•éªŒè¯ Intent 过滤器,并将所有æˆåŠŸé€šè¿‡éªŒè¯çš„ URI Intent 过滤器设为其 URI 的默认应用处ç†ç¨‹åºã€‚ + </li> + <li>å¯ä»¥å°†ç‰¹å®š URI Intent 过滤器设为其 URI 的默认应用处ç†ç¨‹åºï¼Œä½†å‰æ是这些过滤器æˆåŠŸé€šè¿‡éªŒè¯ï¼Œè€Œå…¶ä»–候选 URI 过滤器则未通过验è¯ã€‚如果设备实现进行了æ¤é¡¹è®¾ç½®ï¼Œåˆ™å¿…须在设置èœå•ä¸æŒ‰ URI å‘用户æ供适当的替代模å¼ã€‚ + </li> + <li>必须在“设置â€ä¸æŒ‰åº”用å‘用户æ供应用链接控制,如下所述: + <ul> + <li>[C-0-6] 用户必须能够整体替æ¢é»˜è®¤åº”用链接行为,以便应用始终开å¯ã€å§‹ç»ˆè¯¢é—®æˆ–æ°¸ä¸å¼€å¯ï¼Œè¿™å¿…é¡»åŒæ ·é€‚用于所有候选 URI Intent 过滤器。 + </li> + <li>[C-0-7] 用户必须能够查看候选 URI Intent 过滤器列表。 + </li> + <li>设备实现å¯ä»¥æŒ‰ Intent 过滤器æ供相应的功能,使用户能够替æ¢æˆåŠŸé€šè¿‡éªŒè¯çš„特定候选 URI Intent 过滤器。 + </li> + <li>[C-0-8] 如果设备实现å…许åªæœ‰éƒ¨åˆ†ï¼ˆè€Œéžå…¨éƒ¨ï¼‰å€™é€‰ URI Intent 过滤器æˆåŠŸé€šè¿‡éªŒè¯ï¼Œåˆ™è®¾å¤‡å®žçŽ°å¿…须使用户能够查看和替æ¢ç‰¹å®šå€™é€‰ URI Intent 过滤器。 + </li> + </ul> + </li> + </ul> + <h5 id="3_2_3_3_intent_namespaces"> +3.2.3.3. Intent 命å空间 + </h5> + <ul> + <li>[C-0-1] 设备实现ä¸å¾—包å«ä»»ä½•ç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„ Android 组件:éµä»Žä»»ä½•ä½¿ç”¨ ACTIONã€CATEGORY 或使用 android. 或 com.android. 命å空间ä¸å…¶ä»–é”®å—符串的新 Intent 模å¼æˆ–å¹¿æ’ Intent 模å¼ã€‚<em></em> + </li> + <li>[C-0-2] 设备实现者ä¸å¾—æ·»åŠ ä»»ä½•ç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„ Android 组件:éµä»Žä»»ä½•ä½¿ç”¨ ACTIONã€CATEGORY 或使用属于其他组织的软件包空间ä¸å…¶ä»–é”®å—符串的新 Intent 模å¼æˆ–å¹¿æ’ Intent 模å¼ã€‚ + </li> + <li>[C-0-3] 设备实现者ä¸å¾—更改或扩展<a href="#3_2_3_1_core_application_intents">第 3.2.3.1 节</a>ä¸åˆ—å‡ºçš„æ ¸å¿ƒåº”ç”¨ä½¿ç”¨çš„ä»»ä½• Intent 模å¼ã€‚ + </li> + <li>设备实现å¯ä»¥åŒ…å«æ‰€ç”¨å‘½å空间明显与其所属组织关è”çš„ Intent 模å¼ã€‚æ¤é¡¹è§„定类似于<a href="#3_6_api_namespaces">第 3.6 节</a>ä¸é’ˆå¯¹ Java è¯è¨€ç±»çš„规定。 + </li> + </ul> + <h5 id="3_2_3_4_broadcast_intents"> +3.2.3.4. å¹¿æ’ Intent + </h5> + <p> +第三方应用ä¾èµ–å¹³å°å¹¿æ’æŸäº› Intent æ¥èŽ·æ‚‰ç¡¬ä»¶æˆ–软件环境ä¸å‘生的å˜åŒ–。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»èƒ½å¤Ÿå› åº”é€‚å½“çš„ç³»ç»Ÿäº‹ä»¶å¹¿æ’å…¬å…±å¹¿æ’ Intent,如 SDK 文档ä¸æ‰€è¿°ã€‚请注æ„,该è¦æ±‚与第 3.5 节并ä¸å†²çªï¼Œå› 为针对åŽå°åº”用的é™åˆ¶åœ¨ SDK 文档ä¸ä¹Ÿæœ‰ç›¸åº”说明。 + </li> + </ul> + <h5 id="3_2_3_5_default_app_settings"> +3.2.3.5. 默认应用设置 + </h5> + <p> +Android 包å«å¯è®©ç”¨æˆ·è½»æ¾é€‰æ‹©é»˜è®¤åº”用(例如选择默认的主å±å¹•åº”用或çŸä¿¡åº”用)的设置。 + </p> + <p> +在适当的情况下,设备实现必须æ供类似的设置èœå•ï¼Œå¹¶ä¸Ž SDK 文档ä¸æ‰€è¿°çš„ Intent 过滤器模å¼å’Œ API 方法兼容(详è§ä¸‹æ–‡ï¼‰ã€‚ + </p> + <p> +如果设备实现报告 <code>android.software.home_screen</code>,则: + </p> + <ul> + <li>[C-1-1] 必须能够éµä»Ž <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_HOME_SETTINGS"><code>android.settings.HOME_SETTINGS</code></a> Intent 显示主å±å¹•çš„默认应用设置èœå•ã€‚ + </li> + </ul> + <p> +如果设备实现报告 <code>android.hardware.telephony</code>,则: + </p> + <ul> + <li> + <p> +[C-2-1] å¿…é¡»æ供一个设置èœå•ï¼Œå¹¶ä¸”该èœå•å°†è°ƒç”¨ <a href="http://developer.android.com/reference/android/provider/Telephony.Sms.Intents.html#ACTION_CHANGE_DEFAULT"><code>android.provider.Telephony.ACTION_CHANGE_DEFAULT</code></a> Intent,以显示用于更改默认çŸä¿¡åº”用的对è¯æ¡†ã€‚ + </p> + </li> + <li> + <p> +[C-2-2] 必须能够éµä»Ž <a href="https://developer.android.com/reference/android/telecom/TelecomManager.html#ACTION_CHANGE_DEFAULT_DIALER"><code>android.telecom.action.CHANGE_DEFAULT_DIALER</code></a> Intent 显示å¯è®©ç”¨æˆ·æ›´æ”¹é»˜è®¤ç”µè¯åº”用的对è¯æ¡†ã€‚ + </p> + <ul> + <li>必须通过用户选择的默认“电è¯â€åº”用的界é¢æ˜¾ç¤ºæ¥ç”µå’ŒåŽ»ç”µï¼Œä½†ç´§æ€¥å‘¼å«é™¤å¤–,它使用预装的“电è¯â€åº”用。 + </li> + </ul> + </li> + <li> + <p> +[C-2-3] 必须能够éµä»Ž <a href="https://developer.android.com/reference/android/telecom/TelecomManager.html#ACTION_CHANGE_PHONE_ACCOUNTS">android.telecom.action.CHANGE_PHONE_ACCOUNTS</a> Intent æ供相应方å¼æ¥é…置与 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html"><code>PhoneAccounts</code></a> å…³è”çš„ <a href="https://developer.android.com/reference/android/telecom/ConnectionService.html"><code>ConnectionServices</code></a>,以åŠç”µä¿¡æœåŠ¡æ供商将用于拨出电è¯çš„默认 PhoneAccount。AOSP 实现通过在“通è¯â€è®¾ç½®èœå•ä¸æ·»åŠ “通è¯å¸å·é€‰é¡¹â€èœå•æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </p> + </li> + </ul> + <p> +如果设备实现报告 <code>android.hardware.nfc.hce</code>,则: + </p> + <ul> + <li>[C-3-1] 必须能够éµä»Ž <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFC_PAYMENT_SETTINGS">android.settings.NFC_PAYMENT_SETTINGS</a> Intent 显示触碰付款的默认应用设置èœå•ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ <code>VoiceInteractionService</code> å¹¶ä¸”ä¸€æ¬¡å®‰è£…äº†å¤šä¸ªä½¿ç”¨æ¤ API 的应用,则: + </p> + <ul> + <li>[C-4-1] 必须能够éµä»Ž <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION_VOICE_INPUT_SETTINGS"><code>android.settings.ACTION_VOICE_INPUT_SETTINGS</code></a> Intent 显示è¯éŸ³è¾“入和è¯éŸ³åŠ©ç†çš„默认应用设置èœå•ã€‚ + </li> + </ul> + <h4 id="3_2_4_activities_on_secondary_displays"> +3.2.4. 辅助显示设备上的 Activity + </h4> + <p> +如果设备实现å…许在辅助显示设备上å¯åŠ¨å¸¸è§„ <a href="https://developer.android.com/reference/android/app/Activity.html">Android Activity</a>,则: + </p> + <ul> + <li>[C-1-1] 必须设置 <code>android.software.activities_on_secondary_displays</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-2] å¿…é¡»ä¿è¯ API 兼容性与在主è¦æ˜¾ç¤ºè®¾å¤‡ä¸Šè¿è¡Œçš„ Activity çš„ API 兼容性类似。 + </li> + <li>[C-1-3] 如果æŸä¸ª Activity 在å¯åŠ¨æ–°çš„ Activity 时没有通过 <a href="https://developer.android.com/reference/android/app/ActivityOptions.html#setLaunchDisplayId%28int%29"><code>ActivityOptions.setLaunchDisplayId()</code></a> API æŒ‡å®šç›®æ ‡æ˜¾ç¤ºè®¾å¤‡ï¼Œåˆ™å¿…é¡»åœ¨å‰è€…所在的显示设备上å¯åŠ¨åŽè€…。 + </li> + <li>[C-1-4] 当带有 <a href="http://developer.android.com/reference/android/view/Display.html#FLAG_PRIVATE"><code>Display.FLAG_PRIVATE</code></a> æ ‡è®°çš„æ˜¾ç¤ºè®¾å¤‡è¢«ç§»é™¤åŽï¼Œå¿…须销æ¯æ‰€æœ‰ Activity。 + </li> + <li>[C-1-5] 如果显示区域的大å°å‘生å˜åŒ–,则必须相应地调整 <a href="https://developer.android.com/reference/android/hardware/display/VirtualDisplay.html"><code>VirtualDisplay</code></a> 上所有 Activity 的大å°ã€‚ + </li> + <li>当文å—输入å—段æˆä¸ºè¾…助显示设备上的焦点时,å¯ä»¥åœ¨ä¸»è¦æ˜¾ç¤ºè®¾å¤‡ä¸Šæ˜¾ç¤º IME(输入法编辑器,å¯è®©ç”¨æˆ·è¾“入文å—的一ç§ç”¨æˆ·æŽ§ä»¶ï¼‰ã€‚ + </li> + <li>如果支æŒè§¦æ‘¸è¾“入或按键输入,则应在独立于主è¦æ˜¾ç¤ºè®¾å¤‡çš„辅助显示设备上实现输入焦点。 + </li> + <li>如果 Activity 是在辅助显示设备上å¯åŠ¨çš„,则应具有与该显示设备对应的 <a href="https://developer.android.com/reference/android/content/res/Configuration.html"><code>android.content.res.Configuration</code></a>,以便能够显示内容ã€æ£ç¡®æ“作以åŠä¿æŒå…¼å®¹æ€§ã€‚ + </li> + </ul> + <p> +如果设备实现å…许在辅助显示设备上å¯åŠ¨å¸¸è§„ <a href="https://developer.android.com/reference/android/app/Activity.html">Android Activity</a>,并且主è¦æ˜¾ç¤ºè®¾å¤‡å’Œè¾…助显示设备具有ä¸åŒçš„ <a href="https://developer.android.com/reference/android/util/DisplayMetrics.html">android.util.DisplayMetrics</a>,则: + </p> + <ul> + <li>[C-2-1] ä¸å¾—å…许在辅助显示设备上å¯åŠ¨å¤§å°ä¸å¯è°ƒæ•´çš„ Activity(<code>AndroidManifest.xml</code> ä¸æœ‰ <code>resizeableActivity=false</code>)以åŠé‡‡ç”¨ API 23 级或更低级别的应用。 + </li> + </ul> + <p> +如果设备实现å…许在辅助显示设备上å¯åŠ¨å¸¸è§„ <a href="https://developer.android.com/reference/android/app/Activity.html">Android Activity</a>,并且辅助显示设备具有 <a href="https://developer.android.com/reference/android/view/Display.html#FLAG_PRIVATE">android.view.Display.FLAG_PRIVATE</a> æ ‡è®°ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] åªæœ‰è¯¥æ˜¾ç¤ºè®¾å¤‡çš„所有者ã€ç³»ç»Ÿä»¥åŠå·²ç»å˜åœ¨äºŽè¯¥æ˜¾ç¤ºè®¾å¤‡ä¸Šçš„ Activity 能够在该显示设备上å¯åŠ¨ Activity。æ¯ä¸ªäººéƒ½å¯ä»¥åœ¨å…·æœ‰ <a href="https://developer.android.com/reference/android/view/Display.html#FLAG_PUBLIC">android.view.Display.FLAG_PUBLIC</a> æ ‡è®°çš„æ˜¾ç¤ºè®¾å¤‡ä¸Šå¯åŠ¨ Activity。 + </li> + </ul> + <h3 id="3_3_native_api_compatibility"> +3.3. 本机 API 兼容性 + </h3> + <p> +实现本机代ç å…¼å®¹æ€§æ˜¯ä¸€ä»¶é«˜éš¾åº¦çš„äº‹æƒ…ã€‚å› æ¤ï¼Œå¯¹äºŽè®¾å¤‡å®žçŽ°è€…: + </p> + <ul> + <li>[SR] 强烈建议使用上游 Android å¼€æºé¡¹ç›®ä¸çš„下列库的实现。 + </li> + </ul> + <h4 id="3_3_1_application_binary_interfaces"> +3.3.1. åº”ç”¨äºŒè¿›åˆ¶æŽ¥å£ + </h4> + <p> +å—ç®¡ç† Dalvik å—节ç å¯ä»¥è°ƒç”¨åº”用 <code>.apk</code> 文件ä¸æ供的本机代ç ,以便作为针对相应设备硬件架构编译的 ELF <code>.so</code> 文件。由于本机代ç 高度ä¾èµ–底层处ç†å™¨æŠ€æœ¯ï¼Œå› æ¤ Android 在 Android NDK ä¸å®šä¹‰äº†ä¸€äº›åº”ç”¨äºŒè¿›åˆ¶æŽ¥å£ (ABI)。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须与一个或多个已定义的 ABI 兼容,并与 Android NDK 兼容。 + </li> + <li>[C-0-2] 必须支æŒåœ¨å—管ç†çŽ¯å¢ƒä¸è¿è¡Œçš„代ç ä½¿ç”¨æ ‡å‡† Java æœ¬æœºæŽ¥å£ (JNI) è¯ä¹‰è°ƒç”¨æœ¬æœºä»£ç 。 + </li> + <li>[C-0-3] 必须与下方列表ä¸æ¯ä¸ªå¿…需的库ä¿æŒæºä»£ç 兼容(å³æ ‡å¤´å…¼å®¹ï¼‰å’ŒäºŒè¿›åˆ¶å…¼å®¹ï¼ˆé€‚用于 ABI)。 + </li> + <li>[C-0-5] 必须通过 <code>android.os.Build.SUPPORTED_ABIS</code>ã€<code>android.os.Build.SUPPORTED_32_BIT_ABIS</code> å’Œ <code>android.os.Build.SUPPORTED_64_BIT_ABIS</code> å‚数准确报告设备支æŒçš„æœ¬æœºåº”ç”¨äºŒè¿›åˆ¶æŽ¥å£ (ABI),其ä¸æ¯ä¸ªå‚数报告的都是一个以英文逗å·åˆ†éš”çš„ ABI 列表,列表ä¸çš„æ¡ç›®æŒ‰å好程度从高到低排åºã€‚ + </li> + <li> + <p> +[C-0-6] 必须(通过上述å‚数)报告以下 ABI 列表的å集,ä¸å¾—报告列表ä¸æ²¡æœ‰çš„ ABI。 + </p> + <ul> + <li> + <code>armeabi</code> + </li> + <li> + <code>armeabi-v7a</code> + </li> + <li> + <code>arm64-v8a</code> + </li> + <li> + <code>x86</code> + </li> + <li> + <code>x86-64</code> + </li> + <li> + <p> +[C-0-7] 必须使以下所有æ供本机 API 的库å¯ä¾›åŒ…å«æœ¬æœºä»£ç 的应用使用: + </p> + </li> + <li> + <p> +libaaudio.so(AAudio 本机音频支æŒï¼‰ + </p> + </li> + <li>libandroid.so(本机 Android Activity 支æŒï¼‰ + </li> + <li>libc(C 库) + </li> + <li>libcamera2ndk.so + </li> + <li>libdl(动æ€é“¾æŽ¥å™¨ï¼‰ + </li> + <li>libEGL.so(本机 OpenGL 表é¢ç®¡ç†ï¼‰ + </li> + <li>libGLESv1_CM.so (OpenGL ES 1.x) + </li> + <li>libGLESv2.so (OpenGL ES 2.0) + </li> + <li>libGLESv3.so (OpenGL ES 3.x) + </li> + <li>libicui18n.so + </li> + <li>libicuuc.so + </li> + <li>libjnigraphics.so + </li> + <li>liblog(Android 日志记录) + </li> + <li>libmediandk.so(本机媒体 API 支æŒï¼‰ + </li> + <li>libm(数å¦åº“) + </li> + <li>libneuralnetworks.so (Neural Networks API) + </li> + <li>libOpenMAXAL.s(OpenMAX AL 1.0.1 支æŒï¼‰ + </li> + <li>libOpenSLES.so(OpenSL ES 1.0.1 音频支æŒï¼‰ + </li> + <li>libRS.so + </li> + <li>libstdc++ï¼ˆè‡³å°‘å¿…é¡»æ”¯æŒ C++ ä¸çš„这个库) + </li> + <li>libvulkan.so (Vulkan) + </li> + <li>libz(Zlib 压缩) + </li> + <li>JNI æŽ¥å£ + </li> + </ul> + </li> + <li> + <p> +[C-0-8] ä¸å¾—æ·»åŠ æˆ–ç§»é™¤ä¸Šè¿°æœ¬æœºåº“çš„å…¬å…±å‡½æ•°ã€‚ + </p> + </li> + <li>[C-0-9] 必须在 <code>/vendor/etc/public.libraries.txt</code> ä¸åˆ—出直接æä¾›ç»™ç¬¬ä¸‰æ–¹åº”ç”¨ä½¿ç”¨çš„å…¶ä»–éž AOSP 库。 + </li> + <li>[C-0-10] 在 AOSP ä¸ä½œä¸ºç³»ç»Ÿåº“实现和æ供的任何其他本机库å‡ä¸ºä¿ç•™åº“,ä¸å¾—将其æ供给采用 API 24 级或更高级别的第三方应用使用。 + </li> + <li>[C-0-11] 必须通过 <code>libGLESv3.so</code> 库导出所有 OpenGL ES 3.1 å’Œ <a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">Android Extension Pack</a> 函数符å·ï¼ˆå¦‚ NDK ä¸æ‰€å®šä¹‰ï¼‰ã€‚请注æ„,所有这些符å·éƒ½å¿…é¡»å˜åœ¨ã€‚第 7.1.4.1 节ä¸æ›´è¯¦ç»†åœ°ä»‹ç»äº†å…³äºŽä½•æ—¶éœ€è¦å®Œæ•´å®žçŽ°æ¯ä¸ªå¯¹åº”函数方é¢çš„è¦æ±‚。 + </li> + <li>[C-0-12] 必须通过 <code>libvulkan.so</code> åº“å¯¼å‡ºæ ¸å¿ƒ Vulkan 1.0 函数的函数符å·ä»¥åŠ <code>VK_KHR_surface</code>ã€<code>VK_KHR_android_surface</code>ã€<code>VK_KHR_swapchain</code>ã€<code>VK_KHR_maintenance1</code> å’Œ <code>VK_KHR_get_physical_device_properties2</code> 扩展。请注æ„,所有这些符å·éƒ½å¿…é¡»å˜åœ¨ã€‚第 7.1.4.2 节ä¸æ›´è¯¦ç»†åœ°ä»‹ç»äº†å…³äºŽä½•æ—¶éœ€è¦å®Œæ•´å®žçŽ°æ¯ä¸ªå¯¹åº”函数方é¢çš„è¦æ±‚。 + </li> + <li>应使用上游 Android å¼€æºé¡¹ç›®ä¸çš„æºä»£ç å’Œæ ‡å¤´æ–‡ä»¶è¿›è¡Œç¼–è¯‘ã€‚ + </li> + </ul> + <p> +请注æ„,未æ¥ç‰ˆæœ¬çš„ Android å¯èƒ½ä¼šæ”¯æŒæ›´å¤š ABI。 + </p> + <h4 id="3_3_2_32-bit_arm_native_code_compatibility"> +3.3.2. 32 ä½ ARM 本机代ç 兼容性 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æŠ¥å‘Šæ”¯æŒ <code>armeabi</code> ABI,则: + </p> + <ul> + <li>[C-3-1] 必须还è¦æ”¯æŒ <code>armeabi-v7a</code> 并报告其支æŒæƒ…å†µï¼Œå› ä¸º <code>armeabi</code> 仅用于å‘åŽå…¼å®¹æ—§ç‰ˆåº”用。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æŠ¥å‘Šæ”¯æŒ <code>armeabi-v7a</code> ABIï¼Œå¯¹äºŽä½¿ç”¨æ¤ ABI 的应用: + </p> + <ul> + <li> + <p> +[C-2-1] 必须在 <code>/proc/cpuinfo</code> ä¸æ·»åŠ 以下行,且ä¸åº”更改åŒä¸€è®¾å¤‡ä¸Šçš„值,å³ä½¿ç”±å…¶ä»– ABI 读å–时也是如æ¤ã€‚ + </p> + <ul> + <li> + <code>Features:</code>,åŽè·Ÿè®¾å¤‡æ”¯æŒçš„所有å¯é€‰ ARMv7 CPU 功能的列表。 + </li> + <li> + <code>CPU architecture:</code>,åŽè·Ÿä¸€ä¸ªæ•´æ•°ï¼Œç”¨äºŽè¯´æ˜Žè®¾å¤‡æ”¯æŒçš„最高 ARM 架构(例如对于 ARMv8 设备,该整数为“8â€ï¼‰ã€‚ + </li> + </ul> + </li> + <li> + <p> +[C-2-2] 必须始终使以下æ“作å¯æ‰§è¡Œï¼Œå³ä½¿åœ¨ ARMv8 架构上实现 ABI(通过本机 CPU 支æŒæˆ–软件模拟)也是如æ¤ï¼š + </p> + <ul> + <li>SWP å’Œ SWPB 指令。 + </li> + <li>SETEND 指令。 + </li> + <li>CP15ISBã€CP15DSB å’Œ CP15DMB å±éšœæ“作。 + </li> + </ul> + </li> + <li> + <p> +[C-2-3] 必须支æŒ<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">高级 SIMD</a>(也称为 NEON)扩展。 + </p> + </li> + </ul> + <h3 id="3_4_web_compatibility"> +3.4. 网页兼容性 + </h3> + <h4 id="3_4_1_webview_compatibility"> +3.4.1. WebView 兼容性 + </h4> + <p> +如果设备实现æä¾› <code>android.webkit.Webview</code> API 的完整实现,则: + </p> + <ul> + <li>[C-1-1] 必须报告 <code>android.software.webview</code>。 + </li> + <li>[C-1-2] 必须使用 Android 9 分支上的上游 Android å¼€æºé¡¹ç›®ä¸çš„ <a href="http://www.chromium.org/">Chromium</a> 项目细分版本æ¥å®žçŽ° <a href="http://developer.android.com/reference/android/webkit/WebView.html"><code>android.webkit.WebView</code></a> API。 + </li> + <li> + <p> +[C-1-3] WebView 报告的用户代ç†å—ç¬¦ä¸²å¿…é¡»é‡‡ç”¨ä»¥ä¸‹æ ¼å¼ï¼š + </p> + <p> +Mozilla/5.0 (Linux; Android $(VERSION); $(MODEL) Build/$(BUILD); wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile Safari/537.36 + </p> + <ul> + <li>$(VERSION) å—符串的值必须与 android.os.Build.VERSION.RELEASE 的值相åŒã€‚ + </li> + <li>$(MODEL) å—符串的值必须与 android.os.Build.MODEL 的值相åŒã€‚ + </li> + <li>$(BUILD) å—符串的值必须与 android.os.Build.ID 的值相åŒã€‚ + </li> + <li>$(CHROMIUM_VER) å—符串的值必须是上游 Android å¼€æºé¡¹ç›®ä¸çš„ Chromium 的版本。 + </li> + <li>设备实现å¯ä»¥åœ¨ç”¨æˆ·ä»£ç†å—符串ä¸çœç•¥ Mobile。 + </li> + </ul> + </li> + <li> + <p> +WebView 组件应支æŒå°½å¯èƒ½å¤šçš„ HTML5 功能;如果它支æŒæ¤ç±»åŠŸèƒ½ï¼Œåˆ™åº”ç¬¦åˆ <a href="http://html.spec.whatwg.org/multipage/">HTML5 规范</a>。 + </p> + </li> + </ul> + <h4 id="3_4_2_browser_compatibility"> +3.4.2. æµè§ˆå™¨å…¼å®¹æ€§ + </h4> + <p> +如果设备实现包å«ç‹¬ç«‹çš„æµè§ˆå™¨åº”用,以供用户进行一般的网页æµè§ˆï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须支æŒä»¥ä¸‹ä¸Ž HTML5 相关è”çš„æ¯ä¸ª API: + <ul> + <li> + <a href="http://www.w3.org/html/wg/drafts/html/master/browsers.html#offline">应用缓å˜/离线æ“作</a> + </li> + <li> + <a href="http://www.w3.org/html/wg/drafts/html/master/semantics.html#video"><video> æ ‡è®°</a> + </li> + <li> + <a href="http://www.w3.org/TR/geolocation-API/">geolocation</a> + </li> + </ul> + </li> + <li>[C-1-2] å¿…é¡»æ”¯æŒ HTML5/W3C <a href="http://www.w3.org/TR/webstorage/">webstorage API</a>ï¼Œå¹¶ä¸”åº”æ”¯æŒ HTML5/W3C <a href="http://www.w3.org/TR/IndexedDB/">IndexedDB API</a>。请注æ„,éšç€ç½‘页开å‘æ ‡å‡†åˆ¶å®šæœºæž„é€æ¸è½¬å˜ä¸ºé’ç IndexedDB 胜过 webstorage,IndexedDB 预计在未æ¥ç‰ˆæœ¬çš„ Android ä¸ä¼šæˆä¸ºå¿…需的组件。 + </li> + <li>å¯ä»¥åœ¨ç‹¬ç«‹çš„æµè§ˆå™¨åº”用ä¸é™„带自定义用户代ç†å—符串。 + </li> + <li>应在独立的æµè§ˆå™¨åº”ç”¨ï¼ˆæ— è®ºæ˜¯åŸºäºŽä¸Šæ¸¸ WebKit æµè§ˆå™¨åº”用,还是基于第三方替代应用)ä¸æ”¯æŒå°½å¯èƒ½å¤šçš„ <a href="http://html.spec.whatwg.org/multipage/">HTML5</a> 功能。 + </li> + </ul> + <p> +ä¸è¿‡ï¼Œå¦‚果设备实现ä¸åŒ…å«ç‹¬ç«‹çš„æµè§ˆå™¨åº”用,则: + </p> + <ul> + <li>[C-2-1] å¿…é¡»ä»æ”¯æŒ<a href="#3_2_3_1_core_application_intents">第 3.2.3.1 节</a>ä¸æ‰€è¿°çš„公共 Intent 模å¼ã€‚ + </li> + </ul> + <h3 id="3_5_api_behavioral_compatibility"> +3.5. API 行为兼容性 + </h3> + <p> +设备实现: + </p> + <ul> + <li>[C-0-9] 必须确ä¿å°† API 行为兼容性应用于所有已安装的应用,除éžåº”用å—到é™åˆ¶ï¼ˆå¦‚<a href="#3_5_1-background-restriction">第 3.5.1 节</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-0-10] ä¸å¾—å®žçŽ°ç¡®ä¿ API 行为兼容性仅用于设备实现者所选应用的白åå•æ–¹æ³•ã€‚ + </li> + </ul> + <p> +æ¯ç§ API 类型(å—ç®¡ç† APIã€è½¯ APIã€æœ¬æœº API 和网页 API)的行为都必须与上游 <a href="http://source.android.com/">Android å¼€æºé¡¹ç›®</a>的首选实现一致。兼容性的一些具体方é¢å¦‚下: + </p> + <ul> + <li>[C-0-1] 设备ä¸å¾—æ›´æ”¹æ ‡å‡† Intent 的行为或è¯ä¹‰ã€‚ + </li> + <li>[C-0-2] 设备ä¸å¾—更改特定类型的系统组件(例如 Serviceã€Activityã€ContentProvider ç‰ï¼‰çš„生命周期或生命周期è¯ä¹‰ã€‚ + </li> + <li>[C-0-3] 设备ä¸å¾—æ›´æ”¹æ ‡å‡†æƒé™çš„è¯ä¹‰ã€‚ + </li> + <li>设备ä¸å¾—更改对åŽå°åº”用实施的é™åˆ¶ã€‚更具体地说,对于åŽå°åº”用: + <ul> + <li>[C-0-4] 设备必须åœæ¢æ‰§è¡Œåº”用为接收 <a href="https://developer.android.com/reference/android/location/GnssMeasurement.html"><code>GnssMeasurement</code></a> å’Œ <a href="https://developer.android.com/reference/android/location/GnssNavigationMessage.html"><code>GnssNavigationMessage</code></a> 的输出而注册的回调。 + </li> + <li>[C-0-5] 设备必须通过 <a href="https://developer.android.com/reference/android/location/LocationManager.html"><code>LocationManager</code></a> API 或 <a href="https://developer.android.com/reference/android/net/wifi/WifiManager.html#startScan%28%29"><code>WifiManager.startScan()</code></a> 方法é™åˆ¶ä¸ºåº”用æ供更新的频率。 + </li> + <li>[C-0-6] 如果应用采用 API 25 级或更高级别,则设备ä¸å¾—å…许在应用清å•ä¸æ³¨å†Œå¹¿æ’接收器æ¥æŽ¥æ”¶æ ‡å‡† Android Intent çš„éšå¼å¹¿æ’,除éžå¹¿æ’ Intent è¦æ±‚ <code>"signature"</code> 或 <code>"signatureOrSystem"</code> <a href="https://developer.android.com/guide/topics/manifest/permission-element.html#plevel"><code>protectionLevel</code></a> æƒé™ï¼Œæˆ–ä½äºŽ<a href="https://developer.android.com/preview/features/background-broadcasts.html">è±å…列表</a>ä¸ã€‚ + </li> + <li>[C-0-7] 如果应用采用 API 25 级或更高级别,则设备必须åœæ¢åº”用的åŽå°æœåŠ¡ï¼Œå°±åƒåº”用已调用这些æœåŠ¡çš„ <a href="https://developer.android.com/reference/android/app/Service.html#stopSelf%28%29"><code>stopSelf()</code></a> æ–¹æ³•ä¸€æ ·ï¼Œé™¤éžåº”用被列入临时白åå•ä¸ï¼Œä»¥ä¾¿å¤„ç†æŸé¡¹ç”¨æˆ·å¯è§çš„任务。 + </li> + <li>[C-0-8] 如果应用采用 API 25 级或更高级别,则设备必须解除应用的唤醒é”定。 + </li> + </ul> + </li> + <li>[C-0-9] 设备必须将以下安全æ供程åºè¿”回为 <a href="https://developer.android.com/reference/java/security/Security.html#getProviders%28%29"><code>Security.getProviders()</code></a> æ–¹æ³•çš„å‰ 7 个数组值,按指定顺åºæŽ’列且使用指定å称(由 <a href="https://developer.android.com/reference/java/security/Provider.html#getName%28%29"><code>Provider.getName()</code></a> 返回)和类,除éžåº”用已通过 <a href="https://developer.android.com/reference/java/security/Security.html#insertProviderAt%28java.security.Provider,%2520int%29"><code>insertProviderAt()</code></a> 或 <a href="https://developer.android.com/reference/java/security/Security.html#removeProvider%28java.lang.String%29"><code>removeProvider()</code></a> 修改了列表。设备å¯ä»¥åœ¨ä»¥ä¸‹æŒ‡å®šçš„æ供程åºåˆ—表之åŽè¿”回其他æ供程åºã€‚ + <ol> + <li> + <strong>AndroidNSSP</strong> - <code>android.security.net.config.NetworkSecurityConfigProvider</code> + </li> + <li> + <strong>AndroidOpenSSL</strong> - <code>com.android.org.conscrypt.OpenSSLProvider</code> + </li> + <li> + <strong>CertPathProvider</strong> - <code>sun.security.provider.CertPathProvider</code> + </li> + <li> + <strong>AndroidKeyStoreBCWorkaround</strong> - <code>android.security.keystore.AndroidKeyStoreBCWorkaroundProvider</code> + </li> + <li> + <strong>BC</strong> - <code>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</code> + </li> + <li> + <strong>HarmonyJSSE</strong> - <code>com.android.org.conscrypt.JSSEProvider</code> + </li> + <li> + <strong>AndroidKeyStore</strong> - <code>android.security.keystore.AndroidKeyStoreProvider</code> + </li> + </ol> + </li> + </ul> + <p> +上述列表并ä¸è¯¦å°½ã€‚兼容性测试套件 (CTS) 会对平å°çš„é‡è¦éƒ¨åˆ†è¿›è¡Œè¡Œä¸ºå…¼å®¹æ€§æµ‹è¯•ï¼Œä½†ä¸ä¼šå¯¹æ‰€æœ‰éƒ¨åˆ†è¿›è¡Œæµ‹è¯•ã€‚实现者需负责确ä¿ä¸Ž Android å¼€æºé¡¹ç›®ä¿æŒè¡Œä¸ºå…¼å®¹ã€‚为æ¤ï¼Œè®¾å¤‡å®žçŽ°è€…应尽å¯èƒ½ä½¿ç”¨é€šè¿‡ Android å¼€æºé¡¹ç›®èŽ·å¾—çš„æºä»£ç ,而ä¸æ˜¯é‡æ–°å®žçŽ°ç³»ç»Ÿçš„é‡è¦éƒ¨åˆ†ã€‚ + </p> + <h3 id="3_5_1_background_restriction"> +3.5.1. åŽå°é™åˆ¶ + </h3> + <p> +如果设备实现已实现 AOSP ä¸åŒ…å«çš„应用é™åˆ¶æˆ–扩展应用é™åˆ¶ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å—é™åº”用列表。 + </li> + <li>[C-1-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨/åœç”¨å¯¹æ¯ä¸ªåº”用的é™åˆ¶ã€‚ + </li> + <li>[C-1-3] 在没有系统è¿è¡ŒçŠ¶å†µä¸ä½³çš„è¯æ®çš„情况下,ä¸å¾—自动应用é™åˆ¶ï¼Œä½†å¯ä»¥åœ¨æ£€æµ‹åˆ°ç³»ç»Ÿè¿è¡ŒçŠ¶å†µä¸ä½³ï¼ˆä¾‹å¦‚唤醒é”å¡ä½ã€æœåŠ¡é•¿æ—¶é—´è¿è¡Œï¼‰æ—¶ä»¥åŠæ ¹æ®å…¶ä»–æ ‡å‡†åº”ç”¨é™åˆ¶ã€‚å¯ä»¥ç”±è®¾å¤‡å®žçŽ°è€…åˆ¶å®šæ ‡å‡†ï¼Œä½†æ ‡å‡†å¿…é¡»ä¸Žåº”ç”¨å¯¹ç³»ç»Ÿè¿è¡ŒçŠ¶å†µçš„å½±å“相关。ä¸å¾—将其他ä¸å®Œå…¨ä¸Žç³»ç»Ÿè¿è¡ŒçŠ¶å†µç›¸å…³çš„æ ‡å‡†ï¼ˆä¾‹å¦‚åº”ç”¨åœ¨å¸‚åœºä¸ä¸å—æ¬¢è¿Žï¼‰ç”¨ä½œæ ‡å‡†ã€‚ + </li> + <li>[C-1-4] ä¸å¾—在用户已手动åœç”¨åº”用é™åˆ¶æ—¶è‡ªåŠ¨åº”用é™åˆ¶ï¼Œä½†å¯ä»¥å»ºè®®ç”¨æˆ·åº”用é™åˆ¶ã€‚ + </li> + <li>[C-1-5] 如果已自动应用é™åˆ¶ï¼Œåˆ™å¿…须通知用户。 + </li> + <li>[C-1-6] 必须在å—é™åº”用调用 <a href="https://developer.android.com/reference/android/app/ActivityManager.html#isBackgroundRestricted%28%29"><code>ActivityManager.isBackgroundRestricted()</code></a> API 时对其返回 <code>true</code>。 + </li> + <li>[C-1-7] ä¸å¾—é™åˆ¶ç”¨æˆ·æ˜¾å¼ä½¿ç”¨çš„çƒé—¨å‰å°åº”用。 + </li> + <li>[C-1-8] 在用户开始显å¼ä½¿ç”¨è¿‡åŽ»å—é™çš„应用时,必须暂åœå¯¹æˆä¸ºçƒé—¨å‰å°åº”用的应用的é™åˆ¶ã€‚ + </li> + <li>[C-1-9] 必须通过 <a href="https://developer.android.com/reference/android/app/usage/UsageStats"><code>UsageStats</code></a> 报告所有应用é™åˆ¶äº‹ä»¶ã€‚如果设备实现扩展了 AOSP ä¸å®žçŽ°çš„应用é™åˆ¶ï¼Œåˆ™å¿…é¡»éµå¾ª<a href="https://source.android.com/devices/tech/power/app_mgmt.html">æ¤æ–‡æ¡£</a>ä¸æ‰€è¿°çš„实现方å¼ã€‚ + </li> + </ul> + <h3 id="3_6_api_namespaces"> +3.6. API 命å空间 + </h3> + <p> +Android éµå¾ª Java 编程è¯è¨€å®šä¹‰çš„软件包和类命å空间惯例。为了确ä¿ä¸Žç¬¬ä¸‰æ–¹åº”用兼容,设备实现者ä¸å¾—对以下软件包命å空间进行任何ç¦æ¢çš„修改(è§ä¸‹æ–‡ï¼‰ï¼š + </p> + <ul> + <li> + <code>java.*</code> + </li> + <li> + <code>javax.*</code> + </li> + <li> + <code>sun.*</code> + </li> + <li> + <code>android.*</code> + </li> + <li> + <code>androidx.*</code> + </li> + <li> + <code>com.android.*</code> + </li> + </ul> + <p> +也就是说,他们: + </p> + <ul> + <li>[C-0-1] ä¸å¾—通过更改任何方法或类ç¾å或者通过移除类或类å—段æ¥ä¿®æ”¹ Android å¹³å°ä¸Šçš„已公开 API。 + </li> + <li>[C-0-2] ä¸å¾—å‘上述命å空间ä¸çš„ API æ·»åŠ ä»»ä½•å·²å…¬å¼€å…ƒç´ ï¼ˆä¾‹å¦‚ç±»æˆ–æŽ¥å£ï¼Œæˆ–现有类或接å£çš„å—段或方法)ã€æµ‹è¯• API 或系统 APIã€‚â€œå·²å…¬å¼€å…ƒç´ â€æ˜¯æŒ‡åœ¨ä¸Šæ¸¸ Android æºä»£ç ä¸ä½¿ç”¨æ—¶ä¸å¸¦â€œ@hideâ€æ ‡è®°çš„ä»»ä½•æž„é€ ã€‚ + </li> + </ul> + <p> +设备实现者å¯ä»¥ä¿®æ”¹ API 的底层实现,但æ¤ç±»ä¿®æ”¹ï¼š + </p> + <ul> + <li>[C-0-3] ä¸å¾—å½±å“任何已公开 API 的既定行为和 Java è¯è¨€ç¾å。 + </li> + <li>[C-0-4] ä¸å¾—å‘å¼€å‘者通告或以其他方å¼å‘å¼€å‘者公开这些修改。 + </li> + </ul> + <p> +ä¸è¿‡ï¼Œè®¾å¤‡å®žçŽ°è€…å¯ä»¥åœ¨æ ‡å‡† Android 命åç©ºé—´ä»¥å¤–æ·»åŠ è‡ªå®šä¹‰ API,但这些自定义 API: + </p> + <ul> + <li>[C-0-5] ä¸å¾—ä½äºŽå½’其他组织所有或æåŠå…¶ä»–组织的命å空间内。例如,设备实现者ä¸å¾—å‘ <code>com.google.*</code> 或类似命åç©ºé—´å†…æ·»åŠ API:åªæœ‰ Google å¯ä»¥åœ¨æ¤ç±»å‘½åç©ºé—´å†…æ·»åŠ API。åŒæ ·ï¼ŒGoogle 也ä¸å¾—å‘其他公å¸çš„命åç©ºé—´å†…æ·»åŠ API。 + </li> + <li>[C-0-6] 必须打包到 Android 共享库ä¸ï¼Œä»¥ä¾¿åªæœ‰æ˜Žç¡®ä½¿ç”¨å®ƒä»¬çš„应用(通过 <uses-library> 机制)会å—到æ¤ç±» API 内å˜ä½¿ç”¨é‡å¢žåŠ çš„å½±å“。 + </li> + </ul> + <p> +如果设备实现者æ议改善上述æŸä¸ªè½¯ä»¶åŒ…命å空间(例如通过å‘现有 API æ·»åŠ å®žç”¨çš„æ–°åŠŸèƒ½ï¼Œæˆ–é€šè¿‡æ·»åŠ æ–°çš„ API),则实现者应访问 <a href="http://source.android.com/">source.android.com</a>,并按照该网站上的信æ¯å¼€å§‹æ‰§è¡Œè´¡çŒ®æ›´æ”¹å’Œä»£ç 需è¦éµå¾ªçš„æµç¨‹ã€‚ + </p> + <p> +请注æ„,上述é™åˆ¶å¯¹åº”于 Java 编程è¯è¨€ä¸å‘½å API çš„æ ‡å‡†æƒ¯ä¾‹ï¼›æœ¬èŠ‚åªæ˜¯ä¸ºäº†å¼ºè°ƒè¿™äº›æƒ¯ä¾‹ï¼Œå¹¶é€šè¿‡å°†å…¶çº³å…¥æœ¬å…¼å®¹æ€§å®šä¹‰æ¥ä½¿å…¶å…·æœ‰çº¦æŸåŠ›ã€‚ + </p> + <h3 id="3_7_runtime_compatibility"> +3.7. è¿è¡Œæ—¶å…¼å®¹æ€§ + </h3> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须支æŒå®Œæ•´çš„ Dalvik å¯æ‰§è¡Œæ–‡ä»¶ (DEX) æ ¼å¼ä»¥åŠ <a href="https://android.googlesource.com/platform/dalvik/">Dalvik å—节ç 规范和è¯ä¹‰</a>。 + </p> + </li> + <li> + <p> +[C-0-2] 必须将 Dalvik è¿è¡Œæ—¶é…ç½®ä¸ºæ ¹æ®ä¸Šæ¸¸ Android å¹³å°æ¥åˆ†é…内å˜ï¼Œå¦‚下表所示。(有关å±å¹•å°ºå¯¸å’Œå±å¹•å¯†åº¦å®šä¹‰ï¼Œè¯·å‚阅<a href="#7_1_1_screen_configuration">第 7.1.1 节</a>。) + </p> + </li> + <li> + <p> +应使用 Android è¿è¡Œæ—¶ (ART)ã€Dalvik å¯æ‰§è¡Œæ–‡ä»¶æ ¼å¼çš„å‚考上游实现,以åŠè¯¥å‚考实现的软件包管ç†ç³»ç»Ÿã€‚ + </p> + </li> + <li> + <p> +应在执行和定ä½æž¶æž„的多ç§æ¨¡å¼ä¸‹è¿è¡Œæ¨¡ç³Šæµ‹è¯•ï¼Œä»¥ç¡®ä¿è¿è¡Œæ—¶çš„稳定性。请å‚阅 Android å¼€æºé¡¹ç›®ç½‘站上的 <a href="https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/">JFuzz</a> å’Œ <a href="https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/">DexFuzz</a>。 + </p> + </li> + </ul> + <p> +请注æ„,下é¢æŒ‡å®šçš„内å˜å€¼è¢«è§†ä¸ºæœ€å°å€¼ï¼Œè®¾å¤‡å®žçŽ°å¯ä»¥ä¸ºæ¯ä¸ªåº”用分é…更多内å˜ã€‚ + </p> + <table> + <tbody><tr> + <th> +å±å¹•å¸ƒå±€ + </th> + <th> +å±å¹•å¯†åº¦ + </th> + <th> +最å°åº”ç”¨å†…å˜ + </th> + </tr> + <tr> + <td rowspan="12"> +Android Watch + </td> + <td> +120 dpi (ldpi) + </td> + <td rowspan="3"> +32MB + </td> + </tr> + <tr> + <td> +160 dpi (mdpi) + </td> + </tr> + <tr> + <td> +213 dpi (tvdpi) + </td> + </tr> + <tr> + <td> +240 dpi (hdpi) + </td> + <td rowspan="2"> +36MB + </td> + </tr> + <tr> + <td> +280 dpi (280dpi) + </td> + </tr> + <tr> + <td> +320 dpi (xhdpi) + </td> + <td rowspan="2"> +48MB + </td> + </tr> + <tr> + <td> +360 dpi (360dpi) + </td> + </tr> + <tr> + <td> +400 dpi (400dpi) + </td> + <td> +56MB + </td> + </tr> + <tr> + <td> +420 dpi (420dpi) + </td> + <td> +64MB + </td> + </tr> + <tr> + <td> +480 dpi (xxhdpi) + </td> + <td> +88MB + </td> + </tr> + <tr> + <td> +560 dpi (560dpi) + </td> + <td> +112MB + </td> + </tr> + <tr> + <td> +640 dpi (xxxhdpi) + </td> + <td> +154MB + </td> + </tr> + <tr> + <td rowspan="12"> +å°/普通 + </td> + <td> +120 dpi (ldpi) + </td> + <td rowspan="2"> +32MB + </td> + </tr> + <tr> + <td> +160 dpi (mdpi) + </td> + </tr> + <tr> + <td> +213 dpi (tvdpi) + </td> + <td rowspan="3"> +48MB + </td> + </tr> + <tr> + <td> +240 dpi (hdpi) + </td> + </tr> + <tr> + <td> +280 dpi (280dpi) + </td> + </tr> + <tr> + <td> +320 dpi (xhdpi) + </td> + <td rowspan="2"> +80MB + </td> + </tr> + <tr> + <td> +360 dpi (360dpi) + </td> + </tr> + <tr> + <td> +400 dpi (400dpi) + </td> + <td> +96MB + </td> + </tr> + <tr> + <td> +420 dpi (420dpi) + </td> + <td> +112MB + </td> + </tr> + <tr> + <td> +480 dpi (xxhdpi) + </td> + <td> +128MB + </td> + </tr> + <tr> + <td> +560 dpi (560dpi) + </td> + <td> +192MB + </td> + </tr> + <tr> + <td> +640 dpi (xxxhdpi) + </td> + <td> +256MB + </td> + </tr> + <tr> + <td rowspan="12"> +大 + </td> + <td> +120 dpi (ldpi) + </td> + <td> +32MB + </td> + </tr> + <tr> + <td> +160 dpi (mdpi) + </td> + <td> +48MB + </td> + </tr> + <tr> + <td> +213 dpi (tvdpi) + </td> + <td rowspan="2"> +80MB + </td> + </tr> + <tr> + <td> +240 dpi (hdpi) + </td> + </tr> + <tr> + <td> +280 dpi (280dpi) + </td> + <td> +96MB + </td> + </tr> + <tr> + <td> +320 dpi (xhdpi) + </td> + <td> +128MB + </td> + </tr> + <tr> + <td> +360 dpi (360dpi) + </td> + <td> +160MB + </td> + </tr> + <tr> + <td> +400 dpi (400dpi) + </td> + <td> +192MB + </td> + </tr> + <tr> + <td> +420 dpi (420dpi) + </td> + <td> +228MB + </td> + </tr> + <tr> + <td> +480 dpi (xxhdpi) + </td> + <td> +256MB + </td> + </tr> + <tr> + <td> +560 dpi (560dpi) + </td> + <td> +384MB + </td> + </tr> + <tr> + <td> +640 dpi (xxxhdpi) + </td> + <td> +512MB + </td> + </tr> + <tr> + <td rowspan="12"> +超大 + </td> + <td> +120 dpi (ldpi) + </td> + <td> +48MB + </td> + </tr> + <tr> + <td> +160 dpi (mdpi) + </td> + <td> +80MB + </td> + </tr> + <tr> + <td> +213 dpi (tvdpi) + </td> + <td rowspan="2"> +96MB + </td> + </tr> + <tr> + <td> +240 dpi (hdpi) + </td> + </tr> + <tr> + <td> +280 dpi (280dpi) + </td> + <td> +144MB + </td> + </tr> + <tr> + <td> +320 dpi (xhdpi) + </td> + <td> +192MB + </td> + </tr> + <tr> + <td> +360 dpi (360dpi) + </td> + <td> +240MB + </td> + </tr> + <tr> + <td> +400 dpi (400dpi) + </td> + <td> +288MB + </td> + </tr> + <tr> + <td> +420 dpi (420dpi) + </td> + <td> +336MB + </td> + </tr> + <tr> + <td> +480 dpi (xxhdpi) + </td> + <td> +384MB + </td> + </tr> + <tr> + <td> +560 dpi (560dpi) + </td> + <td> +576MB + </td> + </tr> + <tr> + <td> +640 dpi (xxxhdpi) + </td> + <td> +768MB + </td> + </tr> + </tbody></table> + <h3 id="3_8_user_interface_compatibility"> +3.8. ç•Œé¢å…¼å®¹æ€§ + </h3> + <h4 id="3_8_1_launcher_(home_screen)"> +3.8.1. å¯åŠ¨å™¨ï¼ˆä¸»å±å¹•ï¼‰ + </h4> + <p> +Android 包å«ä¸€ä¸ªå¯åŠ¨å™¨åº”用(主å±å¹•ï¼‰ï¼Œå¹¶ä¸”支æŒç¬¬ä¸‰æ–¹åº”用更æ¢è®¾å¤‡å¯åŠ¨å™¨ï¼ˆä¸»å±å¹•ï¼‰ã€‚ + </p> + <p> +如果设备实现å…许第三方应用更æ¢è®¾å¤‡ä¸»å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须声明平å°åŠŸèƒ½ <code>android.software.home_screen</code>。 + </li> + <li>[C-1-2] 如果第三方应用使用 <code><adaptive-icon></code> æ ‡è®°æä¾›å…¶å›¾æ ‡ï¼Œé‚£ä¹ˆå½“ç”¨äºŽæ£€ç´¢å›¾æ ‡çš„ <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html"><code>PackageManager</code></a> 方法被调用时,必须返回 <a href="https://developer.android.com/reference/android/graphics/drawable/AdaptiveIconDrawable.html"><code>AdaptiveIconDrawable</code></a> 对象。 + </li> + </ul> + <p> +如果设备实现包å«æ”¯æŒåº”用内固定快æ·æ–¹å¼çš„默认å¯åŠ¨å™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须针对 <a href="https://developer.android.com/reference/android/content/pm/ShortcutManager.html#isRequestPinShortcutSupported%28%29"><code>ShortcutManager.isRequestPinShortcutSupported()</code></a> 报告 <code>true</code>。 + </li> + <li>[C-2-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œåœ¨æ·»åŠ 应用通过 <a href="https://developer.android.com/reference/android/content/pm/ShortcutManager.html#requestPinShortcut%28android.content.pm.ShortcutInfo,%20android.content.IntentSender%29"><code>ShortcutManager.requestPinShortcut()</code></a> API 方法请求的快æ·æ–¹å¼ä¹‹å‰å…ˆè¯¢é—®ç”¨æˆ·ã€‚ + </li> + <li>[C-2-3] 必须支æŒå·²å›ºå®šçš„å¿«æ·æ–¹å¼ä»¥åŠåŠ¨æ€å’Œé™æ€å¿«æ·æ–¹å¼ï¼Œå¦‚<a href="https://developer.android.com/guide/topics/ui/shortcuts.html">“应用快æ·æ–¹å¼â€é¡µé¢</a>上所述。 + </li> + </ul> + <p> +å之,如果设备实现ä¸æ”¯æŒåº”用内固定快æ·æ–¹å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 必须针对 <a href="https://developer.android.com/reference/android/content/pm/ShortcutManager.html#isRequestPinShortcutSupported%28%29"><code>ShortcutManager.isRequestPinShortcutSupported()</code></a> 报告 <code>false</code>。 + </li> + </ul> + <p> +如果设备实现已实现一个å¯è®©ç”¨æˆ·å¿«é€Ÿè®¿é—®ç¬¬ä¸‰æ–¹åº”用通过 <a href="https://developer.android.com/reference/android/content/pm/ShortcutManager.html">ShortcutManager</a> API æ供的其他快æ·æ–¹å¼çš„默认å¯åŠ¨å™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-4-1] 必须支æŒè½½è¿°çš„所有快æ·æ–¹å¼åŠŸèƒ½ï¼ˆä¾‹å¦‚é™æ€å’ŒåŠ¨æ€å¿«æ·æ–¹å¼ã€å›ºå®šå¿«æ·æ–¹å¼ï¼‰ï¼Œå¹¶å®Œæ•´å®žçŽ° <a href="https://developer.android.com/reference/android/content/pm/ShortcutManager.html"><code>ShortcutManager</code></a> API 类的 API。 + </li> + </ul> + <p> +如果设备实现包å«ä¼šä¸ºåº”ç”¨å›¾æ ‡æ˜¾ç¤ºæ ‡è®°çš„é»˜è®¤å¯åŠ¨å™¨åº”用,则: + </p> + <ul> + <li>[C-5-1] å¿…é¡»éµä»Ž <a href="https://developer.android.com/reference/android/app/NotificationChannel.html#setShowBadge%28boolean%29"><code>NotificationChannel.setShowBadge()</code></a> API 方法。也就是说,如果相应值被设为 <code>true</code>ï¼Œåˆ™æ˜¾ç¤ºä¸Žåº”ç”¨å›¾æ ‡å…³è”çš„å¯è§æ ‡è®°ï¼›å¦‚æžœåº”ç”¨çš„æ‰€æœ‰é€šçŸ¥æ¸ é“å‡å°†ç›¸åº”值设为 <code>false</code>,则ä¸æ˜¾ç¤ºä»»ä½•åº”ç”¨å›¾æ ‡æ ‡è®°æ–¹æ¡ˆã€‚ + </li> + <li>如果第三方应用指明通过使用专有 API 支æŒä¸“æœ‰æ ‡è®°æ–¹æ¡ˆï¼Œåˆ™å¯ä»¥ä½¿ç”¨ä¸“æœ‰æ ‡è®°æ–¹æ¡ˆæ›¿æ¢åº”ç”¨å›¾æ ‡æ ‡è®°ï¼Œä½†åº”ä½¿ç”¨é€šè¿‡ <a href="https://developer.android.com/preview/features/notification-badges.html">SDK</a> ä¸æ‰€è¿°çš„é€šçŸ¥æ ‡è®° API(例如 <a href="http://developer.android.com/reference/android/app/Notification.Builder.html#setNumber%28int%29"><code>Notification.Builder.setNumber()</code></a> å’Œ <a href="http://developer.android.com/reference/android/app/Notification.Builder.html#setBadgeIconType%28int%29"><code>Notification.Builder.setBadgeIconType()</code></a> API)æ供的资æºå’Œå€¼ã€‚ + </li> + </ul> + <h4 id="3_8_2_widgets"> +3.8.2. 微件 + </h4> + <p> +Android 定义了一ç§ç»„件类型以åŠå¯¹åº”çš„ API 和生命周期æ¥ä¾›åº”用å‘最终用户æä¾›<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">应用微件</a>ï¼Œå› æ¤ Android 支æŒç¬¬ä¸‰æ–¹åº”用微件。 + </p> + <p> +如果设备实现支æŒç¬¬ä¸‰æ–¹åº”用微件,则: + </p> + <ul> + <li>[C-1-1] 必须声明支æŒå¹³å°åŠŸèƒ½ <code>android.software.app_widgets</code>。 + </li> + <li>[C-1-2] 必须包å«å¯¹åº”用微件的内置支æŒï¼Œå¹¶æ供用于直接在å¯åŠ¨å™¨ä¸æ·»åŠ ã€é…ç½®ã€æŸ¥çœ‹å’Œç§»é™¤åº”用微件的界é¢æ–¹å¼ã€‚ + </li> + <li>[C-1-3] 必须能够呈现大å°ä¸º 4 x 4ï¼ˆæ ‡å‡†ç½‘æ ¼å¤§å°ï¼‰çš„微件。有关详细信æ¯ï¼Œè¯·å‚阅 Android SDK 文档ä¸çš„<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">应用微件设计指å—</a>。 + </li> + <li>å¯ä»¥æ”¯æŒä½äºŽé”定å±å¹•ä¸Šçš„应用微件。 + </li> + </ul> + <p> +如果设备实现支æŒç¬¬ä¸‰æ–¹åº”用微件和应用内固定快æ·æ–¹å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须针对 <a href="https://developer.android.com/reference/android/appwidget/AppWidgetManager.html#isRequestPinAppWidgetSupported%28%29"><code>AppWidgetManager.html.isRequestPinAppWidgetSupported()</code></a> 报告 <code>true</code>。 + </li> + <li>[C-2-2] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œåœ¨æ·»åŠ 应用通过 <a href="https://developer.android.com/reference/android/appwidget/AppWidgetManager.html#requestPinAppWidget%28android.content.ComponentName,android.os.Bundle,%20android.app.PendingIntent%29"><code>AppWidgetManager.requestPinAppWidget()</code></a> API 方法请求的快æ·æ–¹å¼ä¹‹å‰å…ˆè¯¢é—®ç”¨æˆ·ã€‚ + </li> + </ul> + <h4 id="3_8_3_notifications"> +3.8.3. 通知 + </h4> + <p> +Android åŒ…å« <a href="https://developer.android.com/reference/android/app/Notification.html"><code>Notification</code></a> å’Œ <a href="https://developer.android.com/reference/android/app/NotificationManager.html"><code>NotificationManager</code></a> API,以便第三方应用开å‘者使用设备的硬件组件(例如声音ã€æŒ¯åŠ¨å’ŒæŒ‡ç¤ºç¯ç»„件)和软件功能(例如通知æ ã€ç³»ç»Ÿæ )å‘用户通知é‡è¦äº‹ä»¶ä»¥åŠå¸å¼•ç”¨æˆ·çš„注æ„力。 + </p> + <h5 id="3_8_3_1_presentation_of_notifications"> +3.8.3.1. é€šçŸ¥çš„å‘ˆçŽ°æ–¹å¼ + </h5> + <p> +如果设备实现å…许第三方应用<a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">å‘用户通知é‡è¦äº‹ä»¶</a>,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒä½¿ç”¨ç¡¬ä»¶åŠŸèƒ½çš„通知(如 SDK 文档ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶å°½å¯èƒ½æ供相关的设备硬件。例如,如果设备实现包å«æŒ¯åŠ¨å™¨ï¼Œåˆ™å¿…é¡»æ£ç¡®å®žçŽ°æŒ¯åŠ¨ API。如果设备实现缺少硬件,则必须将对应 API 实现为空æ“作。<a href="#7_hardware_compatibility">第 7 节</a>ä¸å¯¹æ¤è¡Œä¸ºè¿›è¡Œäº†è¿›ä¸€æ¥çš„详细说明。 + </li> + <li>[C-1-2] å¿…é¡»æ£ç¡®å‘ˆçŽ° API 或状æ€æ /系统æ <a href="http://developer.android.com/design/style/iconography.html">å›¾æ ‡æ ·å¼æŒ‡å—</a>ä¸æ供的所有<a href="https://developer.android.com/guide/topics/resources/available-resources.html">资æº</a>ï¼ˆå›¾æ ‡ã€åŠ¨ç”»æ–‡ä»¶ç‰ï¼‰ï¼Œä¸è¿‡ï¼Œå®ƒä»¬å¯ä»¥é’ˆå¯¹é€šçŸ¥æ供替代用户体验,而ä¸ä½¿ç”¨å‚考 Android 开放æºä»£ç 实现所æ供的体验。 + </li> + <li>[C-1-3] å¿…é¡»éµä»Žå¹¶æ£ç¡®å®žçŽ°ä¸º <a href="https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Managing">API</a> æ述的行为,以便更新ã€ç§»é™¤é€šçŸ¥ä»¥åŠå¯¹é€šçŸ¥è¿›è¡Œåˆ†ç»„。 + </li> + <li>[C-1-4] å¿…é¡»æä¾› SDK ä¸è½½è¿°çš„ <a href="https://developer.android.com/reference/android/app/NotificationChannel.html">NotificationChannel</a> API 的完整行为。 + </li> + <li>[C-1-5] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŒ‰æ¯ä¸ªæ¸ é“和应用包级别å±è”½å’Œä¿®æ”¹ç‰¹å®šç¬¬ä¸‰æ–¹åº”用的通知。 + </li> + <li>[C-1-6] 还必须æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å·²åˆ é™¤çš„é€šçŸ¥æ¸ é“。 + </li> + <li>[C-1-7] å¿…é¡»åœ¨æ— éœ€ç”¨æˆ·é¢å¤–互动的情况下æ£ç¡®å‘ˆçŽ°é€šè¿‡ <a href="https://developer.android.com/reference/android/app/Notification.MessagingStyle">Notification.MessagingStyle</a> æ供的所有资æºï¼ˆå›¾ç‰‡ã€è´´çº¸ã€å›¾æ ‡ç‰ï¼‰ä»¥åŠé€šçŸ¥æ–‡æœ¬ã€‚例如,必须显示所有资æºï¼ŒåŒ…括在通过 <a href="https://developer.android.com/reference/android/app/Notification.MessagingStyle.html?hl=es-AR#setGroupConversation%28boolean%29">setGroupConversation</a> 设置的群组对è¯ä¸é€šè¿‡ <a href="https://developer.android.com/reference/android/app/Person">android.app.Person</a> æä¾›çš„å›¾æ ‡ã€‚ + </li> + <li>[C-SR] 强烈建议自动æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿåœ¨å¤šæ¬¡å¿½ç•¥ç‰¹å®šç¬¬ä¸‰æ–¹åº”用的通知åŽæŒ‰æ¯ä¸ªæ¸ é“和应用包级别å±è”½è¯¥é€šçŸ¥ã€‚ + </li> + <li>应支æŒå†…容丰富的通知。 + </li> + <li>应以æ醒å¼é€šçŸ¥çš„å½¢å¼æ˜¾ç¤ºæŸäº›ä¼˜å…ˆçº§è¾ƒé«˜çš„通知。 + </li> + <li>应具有å¯è®©ç”¨æˆ·æš‚åœé€šçŸ¥çš„æ–¹å¼ã€‚ + </li> + <li>åªèƒ½ç®¡ç†æ˜¯å¦ä»¥åŠä½•æ—¶æ˜¾ç¤ºç¬¬ä¸‰æ–¹åº”用针对é‡è¦äº‹ä»¶å‘用户å‘出的通知,以é¿å…安全问题(例如分散驾驶员的注æ„力)。 + </li> + </ul> + <p> +如果设备实现支æŒå†…容丰富的通知,则: + </p> + <ul> + <li>[C-2-1] 对于呈现的资æºå…ƒç´ ,必须使用通过 <a href="https://developer.android.com/reference/android/app/Notification.Style.html"><code>Notification.Style</code></a> API ç±»åŠå…¶åç±»æ供的确切资æºã€‚ + </li> + <li>应呈现 <a href="https://developer.android.com/reference/android/app/Notification.Style.html"><code>Notification.Style</code></a> API ç±»åŠå…¶åç±»ä¸å®šä¹‰çš„æ¯ä¸ªèµ„æºå…ƒç´ ï¼ˆä¾‹å¦‚å›¾æ ‡ã€æ ‡é¢˜å’Œæ‘˜è¦æ–‡æœ¬ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒæ醒å¼é€šçŸ¥ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 在呈现æ醒å¼é€šçŸ¥æ—¶ï¼Œå¿…须使用æ醒å¼é€šçŸ¥è§†å›¾å’Œèµ„æºï¼ˆå¦‚ <a href="https://developer.android.com/reference/android/app/Notification.Builder.html"><code>Notification.Builder</code></a> API ç±»ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-3-2] å¿…é¡»åœ¨æ— éœ€ç”¨æˆ·é¢å¤–互动的情况下显示通过 <a href="https://developer.android.com/reference/android/app/Notification.Builder#addAction%28android.app.Notification.Action%29"><code>Notification.Builder.addAction()</code></a> æ供的æ“作以åŠé€šçŸ¥å†…容(如 <a href="https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Heads-up">SDK</a> ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <h5 id="3_8_3_2_notification_listener_service"> +3.8.3.2. 通知监å¬å™¨æœåŠ¡ + </h5> + <p> +Android åŒ…å« <a href="https://developer.android.com/reference/android/service/notification/NotificationListenerService.html"><code>NotificationListenerService</code></a> API,任何通知一ç»å‘布或更新,æ¤ç±» API 便å¯è®©åº”用(用户明确å¯ç”¨åŽï¼‰æ”¶åˆ°å…¶å‰¯æœ¬ã€‚ + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æŠ¥å‘ŠåŠŸèƒ½æ ‡è®° <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_RAM_NORMAL"><code>android.hardware.ram.normal</code></a>,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ£ç¡®ã€åŠæ—¶åœ°å°†é€šçŸ¥å®Œæ•´åœ°æ›´æ–°åˆ°æ‰€æœ‰å·²å®‰è£…且用户已å¯ç”¨çš„æ¤ç±»ç›‘å¬å™¨æœåŠ¡ï¼ŒåŒ…æ‹¬é™„åŠ åˆ°é€šçŸ¥å¯¹è±¡çš„æ‰€æœ‰å…ƒæ•°æ®ã€‚ + </li> + <li>[C-1-2] å¿…é¡»éµä»Ž <a href="https://developer.android.com/reference/android/service/notification/NotificationListenerService.html#snoozeNotification%28java.lang.String,%20long%29"><code>snoozeNotification()</code></a> API 调用,并在ç»è¿‡ API 调用ä¸è®¾ç½®çš„æš‚åœæ—¶é•¿ä¹‹åŽå…³é—通知并执行回调。 + </li> + </ul> + <p> +如果设备实现具有å¯è®©ç”¨æˆ·æš‚åœé€šçŸ¥çš„æ–¹å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] å¿…é¡»é€šè¿‡æ ‡å‡† API(例如 <a href="https://developer.android.com/reference/android/service/notification/NotificationListenerService.html#getSnoozedNotifications%28%29"><code>NotificationListenerService.getSnoozedNotifications()</code></a>)æ£ç¡®åæ˜ å·²æš‚åœé€šçŸ¥çŠ¶æ€ã€‚ + </li> + <li>[C-2-2] 必须使该方å¼å¯ç”¨äºŽæš‚åœæ¯ä¸ªå·²å®‰è£…的第三方应用å‘出的通知,除éžé€šçŸ¥æ¥è‡ªå¸¸é©»/å‰å°æœåŠ¡ã€‚ + </li> + </ul> + <h5 id="3_8_3_3_dnd_(do_not_disturb)"> +3.8.3.3. DND(请勿打扰) + </h5> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ DND 功能,则: + </p> + <ul> + <li>[C-1-1] 必须实现会å“应 <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS">ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS</a> Intent çš„ Activity;对于设为 UI_MODE_TYPE_NORMAL 的实现,它必须是用户å¯ç”¨äºŽæŽˆæƒæˆ–æ‹’ç»åº”用访问 DND 政ç–é…置的 Activity。 + </li> + <li>[C-1-2] 当设备实现为用户æ供了用于授æƒæˆ–æ‹’ç»ç¬¬ä¸‰æ–¹åº”用访问 DND 政ç–é…置的方å¼æ—¶ï¼Œå¿…é¡»éšåŒç”¨æˆ·åˆ›å»ºçš„规则和预定义的规则一起显示应用创建的<a href="https://developer.android.com/reference/android/app/NotificationManager.html#addAutomaticZenRule%28android.app.AutomaticZenRule%29">自动 DND 规则</a>。 + </li> + <li>[C-1-3] 必须能够éµä»Ž <a href="https://developer.android.com/reference/android/app/NotificationManager.Policy.html#suppressedVisualEffects"><code>suppressedVisualEffects</code></a> 值(éšåŒ <a href="https://developer.android.com/reference/android/app/NotificationManager.Policy.html#NotificationManager.Policy%28int,%20int,%20int,%20int%29"><code>NotificationManager.Policy</code></a> ä¼ é€’ï¼‰ï¼›å¦‚æžœåº”ç”¨å·²è®¾ç½® SUPPRESSED_EFFECT_SCREEN_OFF 或 SUPPRESSED_EFFECT_SCREEN_ON æ ‡è®°ï¼Œåˆ™åº”å‘用户表明 DND 设置èœå•ä¸ä¸ä¼šæ˜¾çŽ°è§†è§‰æ•ˆæžœã€‚ + </li> + </ul> + <h4 id="3_8_4_search"> +3.8.4. æœç´¢ + </h4> + <p> +Android 包å«ä¸€äº›å¯è®©å¼€å‘者在其应用ä¸<a href="http://developer.android.com/reference/android/app/SearchManager.html">纳入æœç´¢åŠŸèƒ½</a>以åŠå°†å…¶åº”用ä¸çš„æ•°æ®æ供给全局系统æœç´¢ä½¿ç”¨çš„ API。一般æ¥è¯´ï¼Œè¯¥åŠŸèƒ½ä¼šåŒ…括一个系统级界é¢ï¼Œä»¥ä¾¿ç”¨æˆ·è¾“入查询ã€åœ¨ç”¨æˆ·è¾“入时显示建议,以åŠæ˜¾ç¤ºæœç´¢ç»“果。这些 Android API å¯è®©å¼€å‘者é‡å¤ä½¿ç”¨æ¤ç•Œé¢ï¼Œä»¥åœ¨å…¶åº”用内æä¾›æœç´¢åŠŸèƒ½ï¼Œè¿˜å¯è®©å¼€å‘者å‘通用的全局æœç´¢ç•Œé¢æä¾›æœç´¢ç»“果。 + </p> + <ul> + <li>Android 设备实现应包å«å…¨å±€æœç´¢ç•Œé¢ - å•ä¸ªå…±äº«çš„系统级æœç´¢ç•Œé¢ï¼Œèƒ½å¤Ÿåœ¨ç”¨æˆ·è¾“入内容时实时æ供建议。 + </li> + </ul> + <p> +如果设备实现已实现全局æœç´¢ç•Œé¢ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须实现å¯è®©ç¬¬ä¸‰æ–¹åº”用å‘æœç´¢æ¡†ï¼ˆå½“它以全局æœç´¢æ¨¡å¼è¿è¡Œæ—¶ï¼‰ä¸æ·»åŠ 建议的 API。 + </li> + </ul> + <p> +如果未安装任何使用全局æœç´¢ç•Œé¢çš„第三方应用,则: + </p> + <ul> + <li>默认行为应为显示网页æœç´¢å¼•æ“Žæ供的æœç´¢ç»“果和建议。 + </li> + </ul> + <p> +Android 还包å«ä¸€äº›<a href="https://developer.android.com/reference/android/app/assist/package-summary.html">辅助 API</a>,以便应用选择与设备上的辅助程åºåˆ†äº«å¤šå°‘关于当å‰ä¸Šä¸‹æ–‡çš„ä¿¡æ¯ã€‚ + </p> + <p> +如果设备实现支æŒè¾…助æ“作,则: + </p> + <ul> + <li>[C-2-1] 当分享上下文时,必须通过以下方å¼ä¹‹ä¸€å‘最终用户清楚地指明这一点: + <ul> + <li>æ¯å½“辅助应用访问上下文时,都在å±å¹•è¾¹ç¼˜æ˜¾ç¤ºç™½å…‰ï¼Œå¹¶ä¸”å…¶æŒç»æ—¶é—´å’Œäº®åº¦è¾¾åˆ°æˆ–超过 Android å¼€æºé¡¹ç›®å®žçŽ°çš„æŒç»æ—¶é—´å’Œäº®åº¦ã€‚ + </li> + <li>对于预安装的辅助应用,æä¾›è·<a href="#3_2_3_5_default_app_settings">默认è¯éŸ³è¾“入和辅助应用设置èœå•</a>ä¸è¶…过两个导航æ¥éª¤çš„用户å¯è§å†…容,并且仅在用户通过å¯åŠ¨æŒ‡ä»¤æˆ–辅助导航键输入明确调用辅助应用的情况下æ‰åˆ†äº«ä¸Šä¸‹æ–‡ã€‚ + </li> + </ul> + </li> + <li>[C-2-2] 用于å¯åŠ¨è¾…助应用的指定交互(如<a href="#7_2_3_navigation_keys">第 7.2.3 节</a>ä¸æ‰€è¿°ï¼‰å¿…é¡»å¯åŠ¨ç”¨æˆ·é€‰æ‹©çš„辅助应用(也就是实现 <code>VoiceInteractionService</code> çš„åº”ç”¨ï¼‰æˆ–è´Ÿè´£å¤„ç† <code>ACTION_ASSIST</code> Intent çš„ Activity。 + </li> + </ul> + <h4 id="3_8_5_alerts_and_toasts"> +3.8.5. æ醒和消æ¯æ¡† + </h4> + <p> +应用å¯ä»¥ä½¿ç”¨ <a href="http://developer.android.com/reference/android/widget/Toast.html"><code>Toast</code></a> API å‘最终用户显示简çŸçš„éžæ¨¡æ€å—符串(这些å—符串会在çŸæš‚显示åŽæ¶ˆå¤±ï¼‰ï¼Œå¹¶ä½¿ç”¨ <a href="http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_APPLICATION_OVERLAY"><code>TYPE_APPLICATION_OVERLAY</code></a> 窗å£ç±»åž‹ API 使æ醒窗å£æ˜¾ç¤ºåœ¨å…¶ä»–应用的å‰æ–¹ã€‚ + </p> + <p> +如果设备实现包å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li> + <p> +[C-1-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿé˜»æ¢åº”用显示使用 <a href="http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_APPLICATION_OVERLAY"><code>TYPE_APPLICATION_OVERLAY</code></a> çš„æ醒窗å£ã€‚AOSP 实现通过在通知æ ä¸æ供相应控件æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </p> + </li> + <li> + <p> +[C-1-2] å¿…é¡»éµä»Ž Toast API,并以æŸç§éžå¸¸æ˜¾çœ¼çš„æ–¹å¼å‘最终用户显示æ¥è‡ªåº”用的消æ¯æ¡†ã€‚ + </p> + </li> + </ul> + <h4 id="3_8_6_themes"> +3.8.6. 主题背景 + </h4> + <p> +Android æ供“主题背景â€è¿™ä¸€æœºåˆ¶ï¼Œä»¥ä¾›åº”用在整个 Activity 或应用ä¸åº”ç”¨æ ·å¼ã€‚ + </p> + <p> +Android 包å«â€œHoloâ€å’Œâ€œMaterialâ€ä¸»é¢˜èƒŒæ™¯ç³»åˆ—ï¼ˆä¸€ç»„é¢„å®šä¹‰çš„æ ·å¼ï¼‰ï¼Œå¦‚果应用开å‘者想è¦ä¸Ž Android SDK 定义的 <a href="http://developer.android.com/guide/topics/ui/themes.html">Holo ä¸»é¢˜èƒŒæ™¯å¤–è§‚å’Œé£Žæ ¼</a>ä¿æŒä¸€è‡´ï¼Œåˆ™å¯ä»¥ä½¿ç”¨å®ƒä»¬ã€‚ + </p> + <p> +如果设备实现包å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>[C-1-1] ä¸å¾—更改任何å¯ä¾›åº”用使用的 <a href="http://developer.android.com/reference/android/R.style.html">Holo 主题背景属性</a>。 + </li> + <li>[C-1-2] 必须支æŒâ€œMaterialâ€ä¸»é¢˜èƒŒæ™¯ç³»åˆ—,并且ä¸å¾—更改任何å¯ä¾›åº”用使用的 <a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">Material 主题背景属性</a>æˆ–å…¶ç´ æ资æºã€‚ + </li> + </ul> + <p> +Android 还包å«ä¸€ä¸ªâ€œDevice Defaultâ€ä¸»é¢˜èƒŒæ™¯ç³»åˆ—ï¼ˆä¸€ç»„é¢„å®šä¹‰çš„æ ·å¼ï¼‰ï¼Œå¦‚果应用开å‘者想è¦ä¸Žè®¾å¤‡å®žçŽ°è€…å®šä¹‰çš„è®¾å¤‡ä¸»é¢˜èƒŒæ™¯å¤–è§‚å’Œé£Žæ ¼ä¿æŒä¸€è‡´ï¼Œåˆ™å¯ä»¥ä½¿ç”¨å®ƒä»¬ã€‚ + </p> + <ul> + <li>设备实现å¯ä»¥ä¿®æ”¹å¯ä¾›åº”用使用的 <a href="http://developer.android.com/reference/android/R.style.html">Device Default 主题背景属性</a>。 + </li> + </ul> + <p> +Android 支æŒå¸¦æœ‰åŠé€æ˜Žç³»ç»Ÿæ çš„å˜ä½“主题背景,以便应用开å‘者将其应用内容填充到状æ€æ 和导航æ åŽé¢çš„区域。为了在采用æ¤é…置时实现一致的开å‘者体验,请务必在ä¸åŒçš„设备实现之间ä¿æŒä¸€è‡´çš„状æ€æ å›¾æ ‡æ ·å¼ã€‚ + </p> + <p> +如果设备实现包å«ç³»ç»ŸçŠ¶æ€æ ,则: + </p> + <ul> + <li>[C-2-1] 必须使用白色æ¥æ˜¾ç¤ºç³»ç»ŸçŠ¶æ€å›¾æ ‡ï¼ˆä¾‹å¦‚ä¿¡å·å¼ºåº¦å’Œç”µæ± 电é‡ï¼‰ä»¥åŠç³»ç»Ÿå‘出的通知,除éžç›¸åº”å›¾æ ‡ç”¨äºŽæŒ‡æ˜Žæœ‰é—®é¢˜çŠ¶æ€ï¼Œæˆ–者应用使用 SYSTEM_UI_FLAG_LIGHT_STATUS_BAR æ ‡è®°è¯·æ±‚ä½¿ç”¨æµ…è‰²çŠ¶æ€æ 。 + </li> + <li>[C-2-2] 当应用请求使用浅色状æ€æ 时,Android 设备实现必须将系统状æ€å›¾æ ‡çš„颜色更改为黑色(有关详细信æ¯ï¼Œè¯·å‚阅 <a href="http://developer.android.com/reference/android/R.style.html">R.style</a>)。 + </li> + </ul> + <h4 id="3_8_7_live_wallpapers"> +3.8.7. 动æ€å£çº¸ + </h4> + <p> +Android 定义了一ç§ç»„件类型以åŠå¯¹åº”çš„ API 和生命周期æ¥ä¾›åº”用å‘最终用户æ供一个或多个<a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">“动æ€å£çº¸â€</a>。动æ€å£çº¸æ˜¯å…·å¤‡æœ‰é™è¾“入功能且作为å£çº¸æ˜¾ç¤ºåœ¨å…¶ä»–应用之åŽçš„动画ã€å›¾æ¡ˆæˆ–类似图片。 + </p> + <p> +如果硬件能够在ä¸é™åˆ¶åŠŸèƒ½ä¸”ä¸ä¼šå¯¹å…¶ä»–åº”ç”¨é€ æˆè´Ÿé¢å½±å“的情况下,以åˆç†çš„帧速率è¿è¡Œæ‰€æœ‰åŠ¨æ€å£çº¸ï¼Œåˆ™ä¼šè¢«è§†ä¸ºèƒ½å¤Ÿå¯é 地è¿è¡ŒåŠ¨æ€å£çº¸ã€‚如果硬件ä¸çš„é™åˆ¶å¯¼è‡´å£çº¸å’Œ/或应用崩溃ã€æ— 法æ£å¸¸è¿è¡Œã€å 用过多 CPU/æ¶ˆè€—è¿‡å¤šç”µæ± ç”µé‡ï¼Œæˆ–者è¿è¡Œæ—¶çš„å¸§é€ŸçŽ‡ä½Žå¾—ä»¤äººæ— æ³•æŽ¥å—ï¼Œåˆ™ç›¸åº”ç¡¬ä»¶ä¼šè¢«è§†ä¸ºæ— æ³•è¿è¡ŒåŠ¨æ€å£çº¸ã€‚例如,有些动æ€å£çº¸å¯èƒ½ä¼šåˆ©ç”¨ OpenGL 2.0 或 3.x 上下文æ¥å‘ˆçŽ°å…¶å†…容。动æ€å£çº¸å°†æ— 法在ä¸æ”¯æŒå¤šä¸ª OpenGL 上下文的硬件上å¯é 地è¿è¡Œï¼Œå› 为使用 OpenGL 上下文的动æ€å£çº¸å¯èƒ½ä¼šä¸Žå…¶ä»–åŒæ ·ä½¿ç”¨ OpenGL 上下文的应用å‘生冲çªã€‚ + </p> + <ul> + <li>如果设备实现能够å¯é 地è¿è¡ŒåŠ¨æ€å£çº¸ï¼ˆå¦‚上所述),则应实现动æ€å£çº¸ã€‚ + </li> + </ul> + <p> +如果设备实现已实现动æ€å£çº¸ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须报告 android.software.live_wallpaper å¹³å°åŠŸèƒ½æ ‡è®°ã€‚ + </li> + </ul> + <h4 id="3_8_8_activity_switching"> +3.8.8. Activity åˆ‡æ¢ + </h4> + <p> +上游 Android æºä»£ç 包å«<a href="https://developer.android.com/guide/components/activities/recents.html">概览å±å¹•</a>,该å±å¹•æ˜¯ä¸€ä¸ªç³»ç»Ÿçº§ç•Œé¢ï¼Œå¯ç”¨äºŽåˆ‡æ¢ä»»åŠ¡ï¼Œä»¥åŠä½¿ç”¨ç¼©ç•¥å›¾ï¼ˆå¯¹åº”于用户上次离开应用时应用的图形状æ€ï¼‰æ˜¾ç¤ºç”¨æˆ·æœ€è¿‘访问的 Activity 和任务。 + </p> + <p> +如果设备实现包å«â€œæœ€è¿‘用过â€åŠŸèƒ½å¯¼èˆªé”®ï¼ˆ<a href="#7_2_3_navigation_keys">第 7.2.3 节</a>ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ï¼Œåˆ™å¯ä»¥æ›´æ”¹è¯¥ç•Œé¢ã€‚ + </p> + <p> +如果设备实现包å«â€œæœ€è¿‘用过â€åŠŸèƒ½å¯¼èˆªé”®ï¼ˆ<a href="#7_2_3_navigation_keys">第 7.2.3 节</a>ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ï¼Œå¹¶ä¸”è¦æ›´æ”¹è¯¥ç•Œé¢ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须支æŒæ˜¾ç¤ºè‡³å°‘ 7 个 Activity。 + </li> + <li>一次应至少显示 4 个 Activity çš„å称。 + </li> + <li>[C-1-2] 必须实现<a href="http://developer.android.com/about/versions/android-5.0.html#ScreenPinning">å±å¹•å›ºå®šè¡Œä¸º</a>,并å‘用户æ供用于开å¯/å…³é—该功能的设置èœå•ã€‚ + </li> + <li>应在“最近用过â€ä¸æ˜¾ç¤ºäº®æ˜¾é¢œè‰²ã€å›¾æ ‡ã€å±å¹•æ ‡é¢˜ã€‚ + </li> + <li>应显示关é—选项 (x),但å¯ä»¥å»¶è¿Ÿåˆ°ç”¨æˆ·ä¸Žå±å¹•äº’动之åŽæ˜¾ç¤ºã€‚ + </li> + <li>应实现一个å¯è®©ç”¨æˆ·è½»æ¾åˆ‡æ¢åˆ°å‰ä¸€ä¸ª Activity çš„å¿«æ·æ–¹å¼ã€‚ + </li> + <li>当用户点按两次“最近用过â€åŠŸèƒ½é”®æ—¶ï¼Œåº”触å‘在最近用过的两个应用之间进行快速切æ¢ã€‚ + </li> + <li>当用户长按“最近用过â€åŠŸèƒ½é”®æ—¶ï¼Œåº”触å‘分å±å¤šçª—å£æ¨¡å¼ï¼ˆå¦‚果支æŒçš„è¯ï¼‰ã€‚ + </li> + <li>å¯ä»¥å°†æœ€è¿‘用过的关è”项显示为一组(它们会一起移动)。 + </li> + <li>[SR] 强烈建议为概览å±å¹•ä½¿ç”¨ä¸Šæ¸¸ Android ç•Œé¢ï¼ˆæˆ–类似的基于缩略图的界é¢ï¼‰ã€‚ + </li> + </ul> + <h4 id="3_8_9_input_management"> +3.8.9. è¾“å…¥ç®¡ç† + </h4> + <p> +Android 支æŒ<a href="http://developer.android.com/guide/topics/text/creating-input-method.html">输入管ç†</a>,并且支æŒç¬¬ä¸‰æ–¹è¾“入法编辑器。 + </p> + <p>如果设备实现å…许用户在设备上使用第三方输入法,则: + </p> + <ul> + <li>[C-1-1] 必须声明平å°åŠŸèƒ½ android.software.input_methodsï¼Œå¹¶æ”¯æŒ IME API(如 Android SDK 文档ä¸å®šä¹‰ï¼‰ã€‚ + </li> + <li>[C-1-2] å¿…é¡»èƒ½å¤Ÿå› åº” INPUT_METHOD_SETTINGS Intent æ供一ç§å¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„æœºåˆ¶ï¼Œä»¥ä¾¿ä»–ä»¬æ·»åŠ å’Œé…置第三方输入法。 + </li> + </ul> + <p> +如果设备实现声明了 <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_AUTOFILL"><code>android.software.autofill</code></a> åŠŸèƒ½æ ‡è®°ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须完整实现 <a href="https://developer.android.com/reference/android/service/autofill/AutofillService.html"><code>AutofillService</code></a> å’Œ <a href="https://developer.android.com/reference/android/view/autofill/AutofillManager.html"><code>AutofillManager</code></a> API,并能够éµä»Ž <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION_REQUEST_SET_AUTOFILL_SERVICE"><code>android.settings.REQUEST_SET_AUTOFILL_SERVICE</code></a> Intent 显示一个默认应用设置èœå•ï¼Œä»¥ä¾¿ç”¨æˆ·å¯ç”¨å’Œåœç”¨è‡ªåŠ¨å¡«å……æœåŠ¡ä»¥åŠæ›´æ”¹é»˜è®¤è‡ªåŠ¨å¡«å……æœåŠ¡ã€‚ + </li> + </ul> + <h4 id="3_8_10_lock_screen_media_control"> +3.8.10. é”定å±å¹•åª’体控件 + </h4> + <p> +Remote Control Client API 从 Android 5.0 开始便被弃用了,å–而代之的是å¯è®©åª’体应用与é”定å±å¹•ä¸Šæ˜¾ç¤ºçš„æ’放控件相集æˆçš„<a href="http://developer.android.com/reference/android/app/Notification.MediaStyle.html">媒体通知模æ¿</a>。 + </p> + <h4 id="3_8_11_screen_savers_(previously_dreams)"> +3.8.11. å±ä¿ï¼ˆä¹‹å‰ç§°ä¸º Dream) + </h4> + <p> +Android æ”¯æŒ <a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">interactivescreensaver</a>(之å‰ç§°ä¸º Dream)。当接通电æºçš„设备处于闲置状æ€æˆ–放在桌é¢åŸºåº§ä¸æ—¶ï¼Œå±ä¿è®©ç”¨æˆ·èƒ½å¤Ÿä¸Žåº”用互动。Android Watch 设备å¯ä»¥å®žçŽ°å±ä¿ï¼Œä½†å…¶ä»–类型的设备实现应支æŒå±ä¿ï¼Œå¹¶ä¸”åº”èƒ½å¤Ÿå› åº” <code>android.settings.DREAM_SETTINGS</code> Intent 为用户æ供用于é…ç½®å±ä¿çš„设置选项。 + </p> + <h4 id="3_8_12_location"> +3.8.12. ä½ç½® + </h4> + <p> +如果设备实现包å«èƒ½å¤Ÿæä¾›ä½ç½®åæ ‡çš„ç¡¬ä»¶ä¼ æ„Ÿå™¨ï¼ˆä¾‹å¦‚ GPS),则: + </p> + <ul> + <li>[C-1-2] 必须在“设置â€çš„“ä½ç½®ä¿¡æ¯â€èœå•ä¸æ˜¾ç¤º<a href="https://developer.android.com/reference/android/location/LocationManager.html#isLocationEnabled%28%29">ä½ç½®ä¿¡æ¯çš„当å‰çŠ¶æ€</a>。 + </li> + <li>[C-1-3] ä¸å¾—在“设置â€çš„“ä½ç½®ä¿¡æ¯â€èœå•ä¸æ˜¾ç¤º<a href="https://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">ä½ç½®ä¿¡æ¯æ¨¡å¼</a>。 + </li> + </ul> + <h4 id="3_8_13_unicode_and_font"> +3.8.13. Unicode å’Œå—体 + </h4> + <p> +Android æ”¯æŒ <a href="http://www.unicode.org/versions/Unicode10.0.0/">Unicode 10.0</a> ä¸å®šä¹‰çš„表情符å·ã€‚ + </p> + <p> +如果设备实现包å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>[C-1-1] 必须能够以彩色符å·å½¢å¼å‘ˆçŽ°è¿™äº›è¡¨æƒ…符å·ã€‚ + </li> + <li>[C-1-2] 必须支æŒï¼š + <ul> + <li>对于设备上的å¯ç”¨è¯è¨€ï¼Œæ”¯æŒå…·æœ‰ä»¥ä¸‹å„ç§ç²—细的 Roboto 2 å—体:sans-serif-thinã€sans-serif-lightã€sans-serif-mediumã€sans-serif-blackã€sans-serif-condensedã€sans-serif-condensed-light。 + </li> + <li>Unicode 7.0 ä¸æ¶µç›–的所有拉ä¸è¯ã€å¸Œè…Šè¯å’Œè¥¿é‡Œå°”è¯å—æ¯ï¼ˆåŒ…括拉ä¸è¯æ‰©å±• Aã€Bã€C å’Œ D ç³»åˆ—ï¼‰ï¼Œä»¥åŠ Unicode 7.0 çš„è´§å¸ç¬¦å·å—ä¸çš„所有符å·ã€‚ + </li> + </ul> + </li> + <li>åº”æ”¯æŒ <a href="http://unicode.org/reports/tr51">Unicode 技术报告 #51</a> ä¸æŒ‡å®šçš„肤色和å„ç§å®¶åºè¡¨æƒ…符å·ã€‚ + </li> + </ul> + <p>å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« IME,则: + </p> + <ul> + <li>应为用户æ供一ç§å¯è¾“入这些表情符å·çš„输入法。 + </li> + </ul> + <h4 id="3_8_14_multi-windows"> +3.8.14. 多窗å£æ¨¡å¼ + </h4> + <p> +如果设备实现能够åŒæ—¶æ˜¾ç¤ºå¤šä¸ª Activity,则: + </p> + <ul> + <li>[C-1-1] 必须按照 Android SDK <a href="https://developer.android.com/guide/topics/ui/multi-window.html">多窗å£æ¨¡å¼æ”¯æŒæ–‡æ¡£</a>ä¸æ‰€è¿°çš„应用行为和 API 实现æ¤ç±»å¤šçª—å£æ¨¡å¼ï¼Œå¹¶æ»¡è¶³ä»¥ä¸‹è¦æ±‚: + </li> + <li>[C-1-2] 应用å¯ä»¥åœ¨ <code>AndroidManifest.xml</code> 文件ä¸æŒ‡æ˜Žå®ƒä»¬æ˜¯å¦èƒ½å¤Ÿä»¥å¤šçª—å£æ¨¡å¼è¿è¡Œï¼šé€šè¿‡å°† <a href="https://developer.android.com/reference/android/R.attr.html#resizeableActivity"><code>android:resizeableActivity</code></a> 属性设为 <code>true</code> æ¥æ˜¾å¼æŒ‡æ˜Žï¼Œæˆ–通过使 targetSdkVersion 高于 24 æ¥éšå¼æŒ‡æ˜Žã€‚在清å•ä¸æ˜Žç¡®å°†è¯¥å±žæ€§è®¾ä¸º <code>false</code> 的应用ä¸å¾—以多窗å£æ¨¡å¼å¯åŠ¨ã€‚targetSdkVersion 低于 24 的旧版应用(没有设置该 <code>android:resizeableActivity</code> 属性)å¯ä»¥é‡‡ç”¨å¤šçª—å£æ¨¡å¼å¯åŠ¨ï¼Œä½†ç³»ç»Ÿå¿…é¡»å‘出è¦å‘Šï¼Œè®©ç”¨æˆ·çŸ¥é“相应应用在多窗å£æ¨¡å¼ä¸‹å¯èƒ½æ— 法æ£å¸¸è¿è¡Œã€‚ + </li> + <li>[C-1-3] 如果å±å¹•é«˜åº¦å’Œå®½åº¦å‡å°äºŽ 440 dp,则ä¸å¾—æ供分å±æˆ–自由窗å£æ¨¡å¼ã€‚ + </li> + <li>å±å¹•å°ºå¯¸ä¸º <code>xlarge</code> 的设备实现应支æŒè‡ªç”±çª—å£æ¨¡å¼ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒå¤šçª—å£æ¨¡å¼å’Œåˆ†å±æ¨¡å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] å¿…é¡»é¢„åŠ è½½ä¸€ä¸ª<a href="https://developer.android.com/guide/topics/ui/multi-window.html#configuring">大å°å¯è°ƒæ•´</a>çš„å¯åŠ¨å™¨ä½œä¸ºé»˜è®¤å¯åŠ¨å™¨ã€‚ + </li> + <li>[C-2-2] 如果å¯åŠ¨å™¨åº”用是获得焦点的窗å£ï¼Œåˆ™å¿…须剪è£å¤„于分å±å¤šçª—å£æ¨¡å¼çš„åœé Activity,但应显示它的部分内容。 + </li> + <li>[C-2-3] 必须能够éµä»Žç¬¬ä¸‰æ–¹å¯åŠ¨å™¨åº”用声明的 <a href="https://developer.android.com/reference/android/R.styleable.html#AndroidManifestLayout_minWidth"><code>AndroidManifestLayout_minWidth</code></a> å’Œ <a href="https://developer.android.com/reference/android/R.styleable.html#AndroidManifestLayout_minHeight"><code>AndroidManifestLayout_minHeight</code></a> 值,并且在显示åœé Activity 的部分内容时ä¸å¾—替æ¢è¿™äº›å€¼ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒå¤šçª—å£æ¨¡å¼å’Œç”»ä¸ç”»å¤šçª—å£æ¨¡å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 如果应用符åˆä»¥ä¸‹ä»»ä¸€æ¡ä»¶ï¼Œåˆ™å¿…须以画ä¸ç”»å¤šçª—å£æ¨¡å¼å¯åŠ¨ Activity:* 采用 API 26 级或更高级别,并且声明了 <a href="https://developer.android.com/reference/android/R.attr.html#supportsPictureInPicture"><code>android:supportsPictureInPicture</code></a>ï¼›* 采用 API 25 级或更低级别,并且声明了 <a href="https://developer.android.com/reference/android/R.attr.html#resizeableActivity"><code>android:resizeableActivity</code></a> å’Œ <a href="https://developer.android.com/reference/android/R.attr.html#supportsPictureInPicture"><code>android:supportsPictureInPicture</code></a>。 + </li> + <li>[C-3-2] 必须在 SystemUI ä¸å…¬å¼€å½“å‰ PIP Activity 通过 <a href="https://developer.android.com/reference/android/app/PictureInPictureParams.Builder.html#setActions%28java.util.List%3Candroid.app.RemoteAction%3E%29"><code>setActions()</code></a> API 指定的æ“作。 + </li> + <li>[C-3-3] å¿…é¡»æ”¯æŒ PIP Activity 通过 <a href="https://developer.android.com/reference/android/app/PictureInPictureParams.Builder.html#setAspectRatio%28android.util.Rational%29"><code>setAspectRatio()</code></a> API 指定的大于ç‰äºŽ 1:2.39 且å°äºŽç‰äºŽ 2.39:1 的宽高比。 + </li> + <li>[C-3-4] 必须使用 <a href="https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_WINDOW"><code>KeyEvent.KEYCODE_WINDOW</code></a> 控制 PIP 窗å£ï¼›å¦‚果未实现 PIP 模å¼ï¼Œåˆ™è¯¥é”®å¿…é¡»å¯ä¾›å‰å° Activity 使用。 + </li> + <li>[C-3-5] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿé˜»æ¢åº”用以 PIP 模å¼æ˜¾ç¤ºï¼›AOSP 实现通过在通知æ ä¸æ供相应控件æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[C-3-6] 必须为 PIP 窗å£åˆ†é… 108 dp 的最å°å®½åº¦å’Œé«˜åº¦ï¼›å½“ <code>Configuration.uiMode</code> é…置为 <a href="https://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_TELEVISION"><code>UI_MODE_TYPE_TELEVISION</code></a> 时,必须为 PIP 窗å£åˆ†é… 240 dp 的最å°å®½åº¦å’Œ 135 dp 的最å°é«˜åº¦ã€‚ + </li> + </ul> + <h4 id="3_8_15_display_cutout"> +3.8.15. åˆ˜æµ·å± + </h4> + <p> +Android 支æŒåˆ˜æµ·å±ï¼ˆå¦‚ SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚<a href="https://developer.android.com/reference/android/view/DisplayCutout"><code>DisplayCutout</code></a> API 在显示å±çš„边缘指定了ä¸ç”¨äºŽæ˜¾ç¤ºå†…容的区域。 + </p> + <p>如果设备实现包å«åˆ˜æµ·å±ï¼Œåˆ™ï¼š</p> + <ul> + <li>[C-1-1] 必须仅在设备的çŸè¾¹è®¾ç½®åˆ˜æµ·å±ã€‚å之,如果设备的宽高比为 1.0 (1:1),则ä¸å¾—包å«åˆ˜æµ·å±ã€‚ + </li> + <li>[C-1-2] æ¯è¾¹çš„凹å£åªèƒ½æœ‰ä¸€ä¸ªã€‚ + </li> + <li>[C-1-3] 必须能够éµä»Žåº”用通过 <a href="https://developer.android.com/reference/android/view/WindowManager.LayoutParams"><code>WindowManager.LayoutParams</code></a> API 设置的刘海å±æ ‡è®°ï¼ˆå¦‚ SDK ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-4] 必须为 <a href="https://developer.android.com/reference/android/view/DisplayCutout"><code>DisplayCutout</code></a> API ä¸æŒ‡å®šçš„所有凹å£æŒ‡æ ‡æŠ¥å‘Šæ£ç¡®çš„值。 + </li> + </ul> + <h3 id="3_9_device_administration"> +3.9. è®¾å¤‡ç®¡ç† + </h3> + <p> +Android 包å«ä¸€äº›å¯è®©æ³¨é‡å®‰å…¨æ€§çš„应用在系统级执行设备管ç†å·¥ä½œçš„功能,例如通过 <a href="http://developer.android.com/guide/topics/admin/device-admin.html">Android Device Administration API</a> 强制执行密ç 政ç–或执行远程清除。 + </p> + <p> +如果设备实现已实现 Android SDK 文档ä¸å®šä¹‰çš„所有<a href="http://developer.android.com/guide/topics/admin/device-admin.html">设备管ç†</a>政ç–,则: + </p> + <ul> + <li>[C-1-1] 必须声明 <code>android.software.device_admin</code>。 + </li> + <li>[C-1-2] 必须支æŒè®¾å¤‡æ‰€æœ‰è€…é…置(如 <a href="#3_9_1_device_provisioning">第 3.9.1 节</a>å’Œ<a href="#3_9_1_1_device_owner_provisioning">第 3.9.1.1 节</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <h4 id="3_9_1_device_provisioning"> +3.9.1 设备é…ç½® + </h4> + <h5 id="3_9_1_1_device_owner_provisioning"> +3.9.1.1 设备所有者é…ç½® + </h5> + <p> +如果设备实现声明了 <code>android.software.device_admin</code>,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒå°† Device Policy Client (DPC) 注册为<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp%28java.lang.String%29">设备所有者应用</a>,如下所述: + <ul> + <li>如果设备实现尚未é…置任何用户数æ®ï¼Œåˆ™ï¼š + <ul> + <li>[C-1-3] 必须针对 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProvisioningAllowed(java.lang.String)"><code>DevicePolicyManager.isProvisioningAllowed(ACTION_PROVISION_MANAGED_DEVICE)</code></a> 报告 <code>true</code>。 + </li> + <li>[C-1-4] å¿…é¡»èƒ½å¤Ÿå› åº” Intent æ“作 <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE"><code>android.app.action.PROVISION_MANAGED_DEVICE</code></a> å°† DPC 应用注册为设备所有者应用。 + </li> + <li>[C-1-5] 如果设备通过 <code>android.hardware.nfc</code> åŠŸèƒ½æ ‡è®°å£°æ˜Žæ”¯æŒè¿‘è·ç¦»æ— 线通信 (NFC),那么如果它收到的 NFC 消æ¯ä¸åŒ…å« MIME 类型为 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#MIME_TYPE_PROVISIONING_NFC"><code>MIME_TYPE_PROVISIONING_NFC</code></a> 的记录,则必须将 DPC 应用注册为设备所有者应用。 + </li> + </ul> + </li> + <li>如果设备实现有用户数æ®ï¼Œåˆ™ï¼š + <ul> + <li>[C-1-6] 必须针对 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProvisioningAllowed(java.lang.String)"><code>DevicePolicyManager.isProvisioningAllowed(ACTION_PROVISION_MANAGED_DEVICE)</code></a> 报告 <code>false</code>。 + </li> + <li>[C-1-7] ä¸å¾—å†å°†ä»»ä½• DPC 应用注册为设备所有者应用。 + </li> + </ul> + </li> + </ul> + </li> + <li>[C-1-2] 必须在é…置过程ä¸è¦æ±‚用户执行肯定性æ“作,åŒæ„将应用设置为设备所有者应用。å¯åœ¨é…置过程ä¸é€šè¿‡ç”¨æˆ·æ“作或程åºåŒ–æ–¹å¼å¾å¾—用户åŒæ„,但ä¸å¾—采用硬编ç ,也ä¸å¾—ç¦æ¢ä½¿ç”¨å…¶ä»–设备所有者应用。 + </li> + </ul> + <p> +如果设备实现声明了 <code>android.software.device_admin</code>,但还包å«ä¸“有的设备所有者管ç†è§£å†³æ–¹æ¡ˆï¼Œå¹¶æ供了相应机制æ¥å‘æ ‡å‡† Android <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">DevicePolicyManager</a> API è¯†åˆ«å‡ºçš„æ ‡å‡†â€œè®¾å¤‡æ‰€æœ‰è€…â€é€šå‘Šåœ¨å…¶è§£å†³æ–¹æ¡ˆä¸é…置为“与设备所有者åŒç‰â€çš„应用,则: + </p> + <ul> + <li>[C-2-1] 必须部署相应的æµç¨‹æ¥éªŒè¯æ‰€é€šå‘Šçš„应用属于åˆæ³•çš„ä¼ä¸šè®¾å¤‡ç®¡ç†è§£å†³æ–¹æ¡ˆï¼Œå¹¶ä¸”已在专有的解决方案ä¸é…置为具备与“设备所有者â€åŒç‰çš„æƒåˆ©ã€‚ + </li> + <li>[C-2-2] 在将 DPC 应用注册为“设备所有者â€ä¹‹å‰ï¼Œå¿…须先按照 <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE"><code>android.app.action.PROVISION_MANAGED_DEVICE</code></a> å¯åŠ¨çš„æµç¨‹æ˜¾ç¤ºç›¸åŒçš„ AOSP 设备所有者åŒæ„披露。 + </li> + <li>在将 DPC 应用注册为“设备所有者â€ä¹‹å‰ï¼Œè®¾å¤‡ä¸Šå¯ä»¥æœ‰ç”¨æˆ·æ•°æ®ã€‚ + </li> + </ul> + <h5 id="3_9_1_2_managed_profile_provisioning"> +3.9.1.2 å—管ç†ä¸ªäººèµ„æ–™é…ç½® + </h5> + <p> +如果设备实现声明了 <code>android.software.managed_users</code>,则: + </p> + <ul> + <li> + <p> +[C-1-1] 必须实现相应的 <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">API</a>,以便将设备政ç–控制器 (DPC) 应用注册为<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp%28java.lang.String%29">新增å—管ç†ä¸ªäººèµ„料的所有者</a>。 + </p> + </li> + <li> + <p> +[C-1-2] å—管ç†ä¸ªäººèµ„æ–™é…ç½®æµç¨‹ï¼ˆè¯¥æµç¨‹ç”± <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">android.app.action.PROVISION_MANAGED_PROFILE</a> å¯åŠ¨ï¼‰ç”¨æˆ·ä½“验必须与 AOSP 实现ä¿æŒä¸€è‡´ã€‚ + </p> + </li> + <li> + <p> +[C-1-3] 当设备政ç–控制器 (DPC) åœç”¨äº†æŸé¡¹ç³»ç»ŸåŠŸèƒ½æ—¶ï¼Œå¿…须在“设置â€éƒ¨åˆ†æ供以下用户å¯è§å†…容,以便å‘用户指明这一点: + </p> + <ul> + <li>当设备管ç†å‘˜é™åˆ¶äº†æŸé¡¹è®¾ç½®æ—¶ï¼Œæ˜¾ç¤ºä¸€è‡´çš„å›¾æ ‡æˆ–å…¶ä»–ç”¨æˆ·å¯è§å†…容(例如上游 AOSP ä¿¡æ¯å›¾æ ‡ï¼‰æ¥å‘用户指明这一点。 + </li> + <li>简çŸçš„说明消æ¯ï¼Œç”±è®¾å¤‡ç®¡ç†å‘˜é€šè¿‡ <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setShortSupportMessage%28android.content.ComponentName,%20java.lang.CharSequence%29"><code>setShortSupportMessage</code></a> æ供。 + </li> + <li>DPC åº”ç”¨å›¾æ ‡ã€‚ + </li> + </ul> + </li> + </ul> + <h4 id="3_9_2_managed_profile_support"> +3.9.2 å—管ç†ä¸ªäººèµ„æ–™æ”¯æŒ + </h4> + <p> +如果设备实现声明了 <code>android.software.managed_users</code>,则: + </p> + <ul> + <li>[C-1-1] 必须通过 <code>android.app.admin.DevicePolicyManager</code> API 支æŒå—管ç†ä¸ªäººèµ„料。 + </li> + <li>[C-1-2] å¿…é¡»å…许且åªå…许<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">创建一个å—管ç†ä¸ªäººèµ„æ–™</a>。 + </li> + <li>[C-1-3] å¿…é¡»ä½¿ç”¨å›¾æ ‡æ ‡è®°ï¼ˆç±»ä¼¼äºŽ AOSP ä¸Šæ¸¸å·¥ä½œæ ‡è®°ï¼‰æ¥è¡¨ç¤ºå—管ç†åº”用和微件以åŠå…¶ä»–å¸¦æœ‰æ ‡è®°çš„ç•Œé¢å…ƒç´ (例如“最近用过â€å’Œâ€œé€šçŸ¥â€ï¼‰ã€‚ + </li> + <li>[C-1-4] 当用户ä½äºŽå—管ç†ä¸ªäººèµ„料应用ä¸æ—¶ï¼Œå¿…é¡»æ˜¾ç¤ºé€šçŸ¥å›¾æ ‡ï¼ˆç±»ä¼¼äºŽ AOSP ä¸Šæ¸¸å·¥ä½œæ ‡è®°ï¼‰æ¥æŒ‡æ˜Žè¿™ä¸€ç‚¹ã€‚ + </li> + <li>[C-1-5] 当设备唤醒 (ACTION_USER_PRESENT) 且å‰å°åº”用在å—管ç†ä¸ªäººèµ„æ–™ä¸æ—¶ï¼Œå¿…须显示消æ¯æ¡†æ¥æŒ‡æ˜Žç”¨æˆ·åœ¨å—管ç†ä¸ªäººèµ„æ–™ä¸ã€‚ + </li> + <li>[C-1-6] 如果å˜åœ¨å—管ç†ä¸ªäººèµ„料,并且该个人资料已由设备政ç–控制器å¯ç”¨ï¼Œåˆ™å¿…须在 Intent“选择器â€ä¸æ˜¾ç¤ºå¯è§æ–¹å¼ï¼Œä»¥ä¾¿ç”¨æˆ·å°† Intent 从å—管ç†ä¸ªäººèµ„料转å‘给主è¦ç”¨æˆ·ï¼Œå之亦然。 + </li> + <li>[C-1-7] 如果å˜åœ¨å—管ç†ä¸ªäººèµ„料,则必须针对主è¦ç”¨æˆ·å’Œå—管ç†ä¸ªäººèµ„æ–™æ供以下用户æƒé™ï¼š + <ul> + <li>分别计算主è¦ç”¨æˆ·å’Œå—管ç†ä¸ªäººèµ„料的耗电é‡ã€ä½ç½®ä¿¡æ¯ã€ç§»åŠ¨æ•°æ®æµé‡å’Œå˜å‚¨ç©ºé—´ä½¿ç”¨æƒ…况。 + </li> + <li>å•ç‹¬ç®¡ç†å®‰è£…在主è¦ç”¨æˆ·æˆ–å—管ç†ä¸ªäººèµ„æ–™ä¸çš„ VPN 应用。 + </li> + <li>å•ç‹¬ç®¡ç†å®‰è£…在主è¦ç”¨æˆ·æˆ–å—管ç†ä¸ªäººèµ„æ–™ä¸çš„应用。 + </li> + <li>å•ç‹¬ç®¡ç†ä¸»è¦ç”¨æˆ·æˆ–å—管ç†ä¸ªäººèµ„æ–™ä¸çš„å¸å·ã€‚ + </li> + </ul> + </li> + <li>[C-1-8] 如果设备政ç–控制器å…许,必须确ä¿é¢„安装的拨å·å™¨ã€é€šè®¯å½•å’Œæ¶ˆæ¯åº”用å¯ä»¥æœç´¢å’ŒæŸ¥è¯¢å—管ç†ä¸ªäººèµ„料(如果å˜åœ¨ï¼‰ä»¥åŠä¸»è¦ä¸ªäººèµ„æ–™ä¸çš„æ¥ç”µè€…ä¿¡æ¯ã€‚ + </li> + <li>[C-1-9] 必须确ä¿æ»¡è¶³é€‚用于å¯ç”¨äº†å¤šä½ç”¨æˆ·çš„设备的所有安全性è¦æ±‚(请å‚阅<a href="#9_5_multi-user_support">第 9.5 节</a>),虽然除了主è¦ç”¨æˆ·ä¹‹å¤–,å—管ç†ä¸ªäººèµ„æ–™ä¸ç®—作其他用户。 + </li> + <li>[C-1-10] 必须支æŒæŒ‡å®šæ»¡è¶³ä»¥ä¸‹è¦æ±‚çš„å•ç‹¬é”定å±å¹•ï¼Œä»¥ä¾¿å‘在å—管ç†ä¸ªäººèµ„æ–™ä¸è¿è¡Œçš„应用授予访问æƒé™ã€‚ + <ul> + <li>设备实现必须能够éµä»Ž <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_SET_NEW_PASSWORD"><code>DevicePolicyManager.ACTION_SET_NEW_PASSWORD</code></a> Intent 显示一个界é¢ï¼Œä»¥ä¾¿ç”¨æˆ·ä¸ºå—管ç†ä¸ªäººèµ„æ–™é…ç½®å•ç‹¬çš„é”定å±å¹•å‡æ®ã€‚ + </li> + <li>å—管ç†ä¸ªäººèµ„料的é”定å±å¹•å‡æ®å¿…须使用与父级个人资料相åŒçš„å‡æ®å˜å‚¨å’Œç®¡ç†æœºåˆ¶ï¼Œå¦‚ <a href="http://source.android.com/security/authentication/index.html">Android å¼€æºé¡¹ç›®ç½‘ç«™</a>上所述。 + </li> + <li>除éžåœ¨é€šè¿‡ <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#getParentProfileInstance%28android.content.ComponentName%29">getParentProfileInstance</a> 返回的 <code>DevicePolicyManager</code> 实例上被调用,å¦åˆ™ DPC <a href="https://developer.android.com/guide/topics/admin/device-admin.html#pwd">密ç 政ç–</a>必须仅适用于å—管ç†ä¸ªäººèµ„料的é”定å±å¹•å‡æ®ã€‚ + </li> + </ul> + </li> + <li>当å—管ç†ä¸ªäººèµ„æ–™ä¸çš„通讯录显示在预安装的通è¯è®°å½•ã€é€šè¯ç•Œé¢ã€è¿›è¡Œä¸å’ŒæœªæŽ¥æ¥ç”µé€šçŸ¥ã€é€šè®¯å½•å’Œæ¶ˆæ¯åº”用ä¸æ—¶ï¼Œå®ƒä»¬åº”带有用于表示å—管ç†ä¸ªäººèµ„料应用的相åŒæ ‡è®°ã€‚ + </li> + </ul> + <h3 id="3_9_3_managed_user_support"> +3.9.3 å—管ç†ç”¨æˆ·æ”¯æŒ + </h3> + <p> +如果设备实现声明了 <code>android.software.managed_users</code>,则: + </p> + <ul> + <li>[C-1-1] 如果 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isLogoutEnabled%28%29"><code>isLogoutEnabled</code></a> 返回 <code>true</code>,则必须æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿåœ¨å¤šç”¨æˆ·ä¼šè¯ä¸é€€å‡ºå½“å‰ç”¨æˆ·å¹¶åˆ‡æ¢å›žä¸»ç”¨æˆ·ã€‚è¿™ç§æ–¹å¼å¿…须让用户能够在é”å±çš„æƒ…å†µä¸‹ï¼ˆæ— éœ€è§£é”设备)访问。 + </li> + </ul> + <h3 id="3_10_accessibility"> +3.10. æ— éšœç¢æœåŠ¡ + </h3> + <p> +Android æä¾›äº†ä¸€ä¸ªæ— éšœç¢æœåŠ¡å±‚,以便残障用户更轻æ¾åœ°åœ¨å…¶è®¾å¤‡ä¸Šè¿›è¡Œå¯¼èˆªã€‚æ¤å¤–,Android 还æä¾›äº†ä¸€äº›ç›¸åº”çš„å¹³å° APIï¼Œä»¥ä¾¿æ— éšœç¢æœåŠ¡å®žçŽ°æŽ¥æ”¶é’ˆå¯¹ç”¨æˆ·å’Œç³»ç»Ÿäº‹ä»¶çš„回调并生æˆå¤‡ç”¨å馈机制,例如文å—转è¯éŸ³ã€è§¦æ„Ÿï¼Œä»¥åŠè½¨è¿¹çƒ/æ–¹å‘键导航。 + </p> + <p> +如果设备实现支æŒç¬¬ä¸‰æ–¹æ— éšœç¢æœåŠ¡ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æä¾› Android æ— éšœç¢æœåŠ¡æ¡†æž¶ï¼ˆå¦‚<a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">æ— éšœç¢æœåŠ¡ API</a> SDK 文档ä¸æ‰€è¿°ï¼‰çš„实现。 + </li> + <li>[C-1-2] 必须生æˆæ— éšœç¢æœåŠ¡äº‹ä»¶ï¼Œå¹¶å°†ç›¸åº”çš„ <code>AccessibilityEvent</code> æ交到所有已注册的 <a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html"><code>AccessibilityService</code></a> 实现(如 SDK ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-3] 必须能够éµä»Ž <code>android.settings.ACCESSIBILITY_SETTINGS</code> Intent æ供一ç§å¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„机制,以便他们å¯ç”¨å’Œåœç”¨ç¬¬ä¸‰æ–¹æ— éšœç¢æœåŠ¡ä»¥åŠé¢„åŠ è½½çš„æ— éšœç¢æœåŠ¡ã€‚ + </li> + <li>[C-1-4] 如果已å¯ç”¨çš„æ— éšœç¢æœåŠ¡å£°æ˜Žäº† <a href="https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html#FLAG%5FREQUEST%5FACCESSIBILITY%5FBUTTON"><code>AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON</code></a>,则必须在系统的导航æ ä¸æ·»åŠ 一个å¯è®©ç”¨æˆ·æŽ§åˆ¶æ— éšœç¢æœåŠ¡çš„按钮。请注æ„,该è¦æ±‚ä¸é€‚用于没有系统导航æ 的设备实现,但设备实现应为用户æ供一ç§ç”¨äºŽæŽ§åˆ¶è¿™äº›æ— éšœç¢æœåŠ¡çš„æ–¹å¼ã€‚ + </li> + </ul> + <p> +如果设备实现包å«é¢„åŠ è½½çš„æ— éšœç¢æœåŠ¡ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 如果数æ®å˜å‚¨é‡‡ç”¨æ–‡ä»¶çº§åŠ 密 (FBE) æ–¹å¼è¿›è¡ŒåŠ å¯†ï¼Œåˆ™å¿…é¡»å°†è¿™äº›é¢„åŠ è½½çš„æ— éšœç¢æœåŠ¡å®žçŽ°ä¸º<a href="https://developer.android.com/reference/android/content/pm/ComponentInfo.html#directBootAware">直接å¯åŠ¨æ„ŸçŸ¥åž‹</a>æœåŠ¡ã€‚ + </li> + <li>应在开箱设置æµç¨‹ä¸æ供一ç§å¯è®©ç”¨æˆ·å¯ç”¨ç›¸å…³æ— éšœç¢æœåŠ¡çš„机制,以åŠç”¨äºŽè°ƒæ•´å—体大å°ã€æ˜¾ç¤ºåŒºåŸŸå¤§å°å’Œæ”¾å¤§æ‰‹åŠ¿çš„选项。 + </li> + </ul> + <h3 id="3_11_text-to-speech"> +3.11. æ–‡å—转è¯éŸ³ + </h3> + <p> +Android 包å«ä¸€äº›å¯è®©åº”用使用文å—转è¯éŸ³ (TTS) æœåŠ¡çš„ API,并å…许æœåŠ¡æ供商æä¾› TTS æœåŠ¡å®žçŽ°ã€‚ + </p> + <p> +如果设备实现报告 android.hardware.audio.output 功能,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ <a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">Android TTS 框架</a> API。 + </li> + </ul> + <p> +如果设备实现支æŒå®‰è£…第三方 TTS 引擎,则: + </p> + <ul> + <li>[C-2-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿé€‰æ‹©åœ¨ç³»ç»Ÿçº§ä½¿ç”¨çš„ TTS 引擎。 + </li> + </ul> + <h3 id="3_12_tv_input_framework"> +3.12. TV 输入框架 + </h3> + <p> +<a href="http://source.android.com/devices/tv/index.html">Android TV 输入框架 (TIF)</a> èƒ½å¤Ÿç®€åŒ–å‘ Android TV è®¾å¤‡ä¼ è¾“å®žæ—¶å†…å®¹çš„è¿‡ç¨‹ã€‚TIF æä¾›äº†ä¸€ä¸ªç›¸åº”çš„æ ‡å‡† API,以便创建å¯æŽ§åˆ¶ Android TV 设备的输入模å—。 + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ TIF,则: + </p> + <ul> + <li>[C-1-1] 必须声明平å°åŠŸèƒ½ <code>android.software.live_tv</code>。 + </li> + <li>[C-1-2] 必须支æŒæ‰€æœ‰ TIF API,以便用户在设备上安装和使用利用æ¤ç±» API å’Œ<a href="https://source.android.com/devices/tv/index.html#third-party_input_example">基于 TIF 的第三方输入</a>æœåŠ¡çš„应用。 + </li> + </ul> + <h3 id="3_13_quick_settings"> +3.13. å¿«æ·è®¾ç½® + </h3> + <p> +Android æ供了一个“快æ·è®¾ç½®â€ç•Œé¢ç»„件供用户快速进行频ç¹æ‰§è¡Œæˆ–急需执行的æ“作。 + </p> + <p> +如果设备实现包å«â€œå¿«æ·è®¾ç½®â€ç•Œé¢ç»„件,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»å…è®¸ç”¨æˆ·æ·»åŠ æˆ–ç§»é™¤ç¬¬ä¸‰æ–¹åº”ç”¨é€šè¿‡ <a href="https://developer.android.com/reference/android/service/quicksettings/package-summary.html"><code>quicksettings</code></a> API æ供的设置项。 + </li> + <li>[C-1-2] ä¸å¾—自动将æ¥è‡ªç¬¬ä¸‰æ–¹åº”ç”¨çš„è®¾ç½®é¡¹ç›´æŽ¥æ·»åŠ åˆ°å¿«æ·è®¾ç½®ä¸ã€‚ + </li> + <li>[C-1-3] å¿…é¡»éšåŒç³»ç»Ÿæ供的快æ·è®¾ç½®é¡¹ä¸€èµ·æ˜¾ç¤ºç”±ç”¨æˆ·æ·»åŠ çš„æ¥è‡ªç¬¬ä¸‰æ–¹åº”用的所有设置项。 + </li> + </ul> + <h3 id="3_14_media_ui"> +3.14. åª’ä½“ç•Œé¢ + </h3> + <p> +如果设备实现包å«ç•Œé¢æ¡†æž¶ï¼Œå¹¶ä¸”该框架支æŒä¾èµ–于 <a href="http://developer.android.com/reference/android/media/browse/MediaBrowser.html"><code>MediaBrowser</code></a> å’Œ <a href="http://developer.android.com/reference/android/media/session/MediaSession.html"><code>MediaSession</code></a> 的第三方应用,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»ç…§åŽŸæ ·æ˜¾ç¤º <a href="http://developer.android.com/reference/android/media/browse/MediaBrowser.MediaItem.html">MediaItem</a> å›¾æ ‡å’Œé€šçŸ¥å›¾æ ‡ã€‚ + </li> + <li>[C-1-2] 必须按照 MediaSession 所述显示这些内容,例如元数æ®ã€å›¾æ ‡ã€å›¾åƒã€‚ + </li> + <li>[C-1-3] å¿…é¡»æ˜¾ç¤ºåº”ç”¨æ ‡é¢˜ã€‚ + </li> + <li>[C-1-4] 必须有用于呈现 <a href="http://developer.android.com/reference/android/media/browse/MediaBrowser.html">MediaBrowser</a> 层次结构的抽屉å¼å¯¼èˆªæ 或其他机制,并让用户能够访问 <a href="http://developer.android.com/reference/android/media/browse/MediaBrowser.html">MediaBrowser</a> 层次结构。 + </li> + <li>[C-1-5] 对于 <a href="https://developer.android.com/reference/android/media/session/MediaSession.Callback.html#onMediaButtonEvent%28android.content.Intent%29"><code>MediaSession.Callback#onMediaButtonEvent</code></a>,必须将点按两次 <a href="https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HEADSETHOOK"><code>KEYCODE_HEADSETHOOK</code></a> 或 <a href="https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_MEDIA_PLAY_PAUSE"><code>KEYCODE_MEDIA_PLAY_PAUSE</code></a> 视为 <a href="https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_MEDIA_NEXT"><code>KEYCODE_MEDIA_NEXT</code></a>。 + </li> + </ul> + <h3 id="3_15_instant_apps"> +3.15. å…安装应用 + </h3> + <p> +设备实现必须满足以下è¦æ±‚: + </p> + <ul> + <li>[C-0-1] 对于å…安装应用,åªèƒ½å‘其授予将 <a href="https://developer.android.com/reference/android/R.attr#protectionLevel"><code>android:protectionLevel</code></a> 设为 <code>"instant"</code> çš„æƒé™ã€‚ + </li> + <li>[C-0-2] å…安装应用ä¸å¾—通过<a href="https://developer.android.com/reference/android/content/Intent.html">éšå¼ Intent</a> 与已安装的应用交互,除éžä»¥ä¸‹æŸé¡¹ä¸º true: + <ul> + <li>组件的 Intent 模å¼è¿‡æ»¤å™¨å·²å…¬å¼€ï¼Œå¹¶ä¸”具有 CATEGORY_BROWSABLE + </li> + <li>æ“作是 ACTION_SENDã€ACTION_SENDTO 或 ACTION_SEND_MULTIPLE + </li> + <li>ç›®æ ‡å·²é€šè¿‡ <a href="https://developer.android.com/reference/android/R.attr.html#visibleToInstantApps">android:visibleToInstantApps</a> 明确公开 + </li> + </ul> + </li> + <li>[C-0-3] å…安装应用ä¸å¾—与已安装的应用明确交互,除éžç›¸åº”组件已通过 android:visibleToInstantApps 公开。 + </li> + <li>[C-0-4] 已安装的应用ä¸å¾—查看关于设备上å…安装应用的详细信æ¯ï¼Œé™¤éžå…安装应用明确关è”到已安装的应用。 + </li> + </ul> + <h3 id="3_16_companion_device_pairing"> +3.16. é…套设备é…对 + </h3> + <p> +Android 支æŒé…套设备é…对,以便更有效地管ç†ä¸Žé…套设备的关è”,并且æ供了å¯è®©åº”用使用该功能的 <a href="https://developer.android.com/reference/android/companion/CompanionDeviceManager.html"><code>CompanionDeviceManager</code></a> API。 + </p> + <p> +如果设备实现支æŒé…套设备é…对功能,则: + </p> + <ul> + <li>[C-1-1] 必须声明 <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html?#FEATURE_COMPANION_DEVICE_SETUP"><code>FEATURE_COMPANION_DEVICE_SETUP</code></a> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-2] 必须确ä¿å®Œæ•´å®žçŽ° <a href="https://developer.android.com/reference/android/companion/package-summary.html"><code>android.companion</code></a> 软件包内的 API。 + </li> + <li>[C-1-3] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿé€‰æ‹©/确认é…套设备是å¦å˜åœ¨ä»¥åŠæ˜¯å¦èƒ½å¤Ÿæ£å¸¸è¿ä½œã€‚ + </li> + </ul> + <h3 id="3_17_heavyweight_apps"> +3.17. é‡é‡çº§åº”用 + </h3> + <p> +如果设备实现声明了 <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_CANT_SAVE_STATE"><code>FEATURE_CANT_SAVE_STATE</code></a> 功能,则: + </p> + <ul> + <li>[C-1-1] æ¯æ¬¡ç³»ç»Ÿä¸å¿…é¡»åªèƒ½è¿è¡Œä¸€ä¸ªæŒ‡å®š <a href="https://developer.android.com/reference/android/R.attr#cantSaveState"><code>cantSaveState</code></a> 的已安装应用。如果用户在未明确退出的情况下离开æ¤ç±»åº”用(例如通过按“主å±å¹•â€æŒ‰é’®å¯¼è‡´ Activity 在系统ä¸ä»ç„¶å¤„于活动状æ€ï¼Œè€ŒéžæŒ‰â€œè¿”回â€é”®ä½¿ç³»ç»Ÿä¸ä¸å†æœ‰å¤„于活动状æ€çš„ Activity),则设备实现必须在 RAM ä¸ä¼˜å…ˆè¿è¡Œè¯¥åº”用,就åƒå¯¹å¾…其他需è¦ç»§ç»è¿è¡Œçš„åº”ç”¨ä¸€æ ·ï¼ˆä¾‹å¦‚å‰å°æœåŠ¡ï¼‰ã€‚虽然æ¤ç±»åº”用在åŽå°è¿è¡Œï¼Œä½†æ˜¯ç³»ç»Ÿä»ç„¶å¯ä»¥å¯¹å…¶åº”用电æºç®¡ç†åŠŸèƒ½ï¼ˆä¾‹å¦‚é™åˆ¶ CPU 和网络访问æƒé™ï¼‰ã€‚ + </li> + <li>[C-1-2] å¿…é¡»æ供一个界é¢ï¼Œä»¥ä¾¿ç”¨æˆ·åœ¨å¯åŠ¨å£°æ˜Žäº† <a href="https://developer.android.com/reference/android/R.attr#cantSaveState"><code>cantSaveState</code></a> 属性的第二个应用时选择ä¸åŠ 入常规状æ€ä¿å˜/æ¢å¤æœºåˆ¶çš„应用。 + </li> + <li>[C-1-3] ä¸å¾—将政ç–ä¸çš„其他更改(例如更改 CPU 性能或更改调度优先级)应用于指定 <a href="https://developer.android.com/reference/android/R.attr#cantSaveState"><code>cantSaveState</code></a> 的应用。 + </li> + </ul> + <p> +如果设备实现没有声明 <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_CANT_SAVE_STATE"><code>FEATURE_CANT_SAVE_STATE</code></a> 功能,则: + </p> + <ul> + <li>[C-1-1] 必须忽略应用设置的 <a href="https://developer.android.com/reference/android/R.attr#cantSaveState"><code>cantSaveState</code></a> 属性,且ä¸å¾—基于该属性更改应用行为。 + </li> + </ul> + <h2 id="4_application_packaging_compatibility"> +4. 应用打包兼容性 + </h2> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须能够安装和è¿è¡Œç”±<a href="http://developer.android.com/tools/help/index.html">官方 Android SDK</a> ä¸åŒ…å«çš„“aaptâ€å·¥å…·ç”Ÿæˆçš„ Android“.apkâ€æ–‡ä»¶ã€‚ + </li> + <li>由于上述è¦æ±‚å¯èƒ½ä¸å¤ªå®¹æ˜“æ»¡è¶³ï¼Œå› æ¤å»ºè®®è®¾å¤‡å®žçŽ°ä½¿ç”¨ AOSP å‚考实现ä¸çš„软件包管ç†ç³»ç»Ÿã€‚ + </li> + </ul> + <p> +设备实现: + </p> + <ul> + <li>[C-0-2] 必须支æŒä½¿ç”¨ <a href="https://source.android.com/security/apksigning/v3.html">APK ç¾å方案 v3</a>ã€<a href="https://source.android.com/security/apksigning/v2.html">APK ç¾å方案 v2</a> å’Œ <a href="https://source.android.com/security/apksigning/v2.html#v1-verification">JAR ç¾å</a>验è¯â€œ.apkâ€æ–‡ä»¶ã€‚ + </li> + <li>[C-0-3] 扩展 <a href="http://developer.android.com/guide/components/fundamentals.html">.apk</a>ã€<a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">Android 清å•</a>ã€<a href="https://android.googlesource.com/platform/dalvik/">Dalvik å—节ç </a>或 RenderScript å—节ç æ ¼å¼æ—¶ï¼Œé‡‡ç”¨çš„æ–¹å¼ä¸å¾—å¯¼è‡´ç›¸åº”æ–‡ä»¶æ— æ³•åœ¨å…¶ä»–ä¸Ž Android 兼容的设备上æ£ç¡®å®‰è£…å’Œè¿è¡Œã€‚ + </li> + <li> + <p> +[C-0-4] ä¸å¾—å…许应用(软件包的当å‰â€œå½•åˆ¶å®‰è£…程åºâ€é™¤å¤–)在没有用户确认的情况下é™é»˜å¸è½½åº”用,如 SDK ä¸å…³äºŽ <a href="https://developer.android.com/reference/android/Manifest.permission.html#DELETE_PACKAGES"><code>DELETE_PACKAGE</code></a> æƒé™çš„éƒ¨åˆ†æ‰€è¿°ã€‚ä»…æœ‰çš„ä¸¤ä¸ªä¾‹å¤–åº”ç”¨æ˜¯ï¼šè´Ÿè´£å¤„ç† <a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_NEEDS_VERIFICATION">PACKAGE_NEEDS_VERIFICATION</a> Intent 的系统软件包验è¯ç¨‹åºåº”ç”¨ï¼Œå’Œè´Ÿè´£å¤„ç† <a href="https://developer.android.com/reference/android/os/storage/StorageManager.html#ACTION_MANAGE_STORAGE">ACTION_MANAGE_STORAGE</a> Intent çš„å˜å‚¨ç®¡ç†å™¨åº”用。 + </p> + </li> + <li> + <p> +[C-0-5] å¿…é¡»æœ‰è´Ÿè´£å¤„ç† <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_MANAGE_UNKNOWN_APP_SOURCES"><code>android.settings.MANAGE_UNKNOWN_APP_SOURCES</code></a> Intent çš„ Activity。 + </p> + </li> + <li> + <p> +[C-0-6] 除éž<a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_INSTALL_PACKAGE">æ出安装请求</a>的应用满足以下所有è¦æ±‚,å¦åˆ™ä¸å¾—安装æ¥è‡ªæœªçŸ¥æ¥æºçš„应用包: + </p> + <ul> + <li>必须声明 <a href="http://developer.android.com/reference/android/Manifest.permission.html#REQUEST_INSTALL_PACKAGES"><code>REQUEST_INSTALL_PACKAGES</code></a> æƒé™æˆ–å°† <code>android:targetSdkVersion</code> 设为 24 或更低。 + </li> + <li>必须已获得用户授æƒï¼Œèƒ½å¤Ÿå®‰è£…æ¥è‡ªæœªçŸ¥æ¥æºçš„应用。 + </li> + </ul> + </li> + <li> + <p> +æ¤å¤–,设备实现应æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŒ‰åº”用授予/撤消安装未知æ¥æºçš„应用的æƒé™ï¼›ä½†å¦‚果设备实现ä¸å¸Œæœ›ä¸ºç”¨æˆ·æ供这ç§é€‰æ‹©ï¼Œåˆ™å¯ä»¥é€‰æ‹©å°†è¯¥åŠŸèƒ½å®žçŽ°ä¸ºç©ºæ“作,并针对 <a href="http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,int%29"><code>startActivityForResult()</code></a> 返回 <code>RESULT_CANCELED</code>。ä¸è¿‡ï¼Œå³ä½¿åœ¨è¿™ç§æƒ…况下,设备实现也应å‘用户表明为什么没有æ供这ç§é€‰æ‹©ã€‚ + </p> + </li> + <li> + <p> +[C-0-7] 在已被系统 API <code>PackageManager.setHarmfulAppWarning</code> æ ‡è®°ä¸ºâ€œå¯èƒ½æœ‰å®³â€çš„应用ä¸å¯åŠ¨æŸé¡¹ Activity 之å‰ï¼Œå¿…é¡»å‘用户显示è¦å‘Šå¯¹è¯æ¡†ï¼Œå…¶ä¸çš„è¦å‘Šå—符串是通过åŒä¸€ç³»ç»Ÿ API <code>PackageManager.setHarmfulAppWarning</code> æ供的。 + </p> + </li> + <li>应æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿåœ¨è¦å‘Šå¯¹è¯æ¡†ä¸é€‰æ‹©å¸è½½æˆ–å¯åŠ¨åº”用。 + </li> + </ul> + <h2 id="5_multimedia_compatibility"> +5. 多媒体兼容性 + </h2> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须支æŒ<a href="#5_1_media-codecs.md">第 5.1 节</a>ä¸é’ˆå¯¹é€šè¿‡ <code>MediaCodecList</code> 声明的æ¯ç§ç¼–解ç å™¨å®šä¹‰çš„åª’ä½“æ ¼å¼ã€ç¼–ç 器ã€è§£ç 器ã€æ–‡ä»¶ç±»åž‹å’Œå®¹å™¨æ ¼å¼ã€‚ + </li> + <li>[C-0-2] 必须通过 <a href="http://developer.android.com/reference/android/media/MediaCodecList.html"><code>MediaCodecList</code></a> 声明并报告支æŒå¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用的编ç 器和解ç 器。 + </li> + <li>[C-0-3] 必须能够解ç ,并å‘第三方应用通告它å¯ä»¥è§£ç çš„æ‰€æœ‰æ ¼å¼ã€‚å…¶ä¸åŒ…括其编ç 器生æˆçš„所有比特æµï¼Œä»¥åŠå…¶ <a href="http://developer.android.com/reference/android/media/CamcorderProfile.html"><code>CamcorderProfile</code></a> ä¸æŠ¥å‘Šçš„é…置。 + </li> + </ul> + <p> +设备实现: + </p> + <ul> + <li>应力争最大é™åº¦åœ°ç¼©çŸç¼–解ç 器延迟,也就是说,它们 + <ul> + <li>ä¸åº”使用和å˜å‚¨è¾“入缓å˜ï¼Œè€Œåº”在处ç†ä¹‹åŽå°†å…¶è¿”回。 + </li> + <li>æŒæœ‰å·²è§£ç 缓å˜çš„时间ä¸åº”è¶…è¿‡ç›¸åº”æ ‡å‡†ï¼ˆä¾‹å¦‚ SPS)指定的时间。 + </li> + <li>æŒæœ‰å·²ç¼–ç 缓å˜çš„时间ä¸åº”超过 GOP 结构所è¦æ±‚的时间。 + </li> + </ul> + </li> + </ul> + <p> +在 Android å¼€æºé¡¹ç›®æ供的首选 Android 实现ä¸ï¼Œä»¥ä¸‹éƒ¨åˆ†ä¸åˆ—出的所有编解ç 器å‡ä½œä¸ºè½¯ä»¶å®žçŽ°æ供。 + </p> + <p> +请注æ„,Google 和开放手机è”盟 (Open Handset Alliance) å‡æœªåšè¿‡ä»»ä½•å…³äºŽè¿™äº›ç¼–解ç 器ä¸æ²¡æœ‰ç¬¬ä¸‰æ–¹ä¸“利的声明。打算在硬件或软件产å“ä¸ä½¿ç”¨è¯¥æºä»£ç 的用户请注æ„,实现该代ç (包括在开放æºä»£ç 软件或共享软件ä¸å®žçŽ°ï¼‰å¯èƒ½éœ€è¦èŽ·å¾—相关专利æŒæœ‰è€…的专利许å¯ã€‚ + </p> + <h3 id="5_1_media_codecs"> +5.1. 媒体编解ç 器 + </h3> + <h4 id="5_1_1_audio_encoding"> +5.1.1. 音频编ç + </h4> + <p> +有关详情,请å‚阅 <a href="#5_1_3_audio_codecs_details">5.1.3. 音频编解ç 器详细信æ¯</a>。 + </p> + <p> +如果设备实现声明了 <code>android.hardware.microphone</code>,则必须支æŒä»¥ä¸‹éŸ³é¢‘ç¼–ç : + </p> + <ul> + <li>[C-1-1] PCM/WAVE + </li> + </ul> + <h4 id="5_1_2_audio_decoding"> +5.1.2. 音频解ç + </h4> + <p> +有关详情,请å‚阅 <a href="#5_1_3_audio_codecs_details">5.1.3. 音频编解ç 器详细信æ¯</a>。 + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>android.hardware.audio.output</code> 功能,则必须支æŒè§£ç ä»¥ä¸‹éŸ³é¢‘æ ¼å¼ï¼š + </p> + <ul> + <li>[C-1-1] MPEG-4 AAC Profile (AAC LC) + </li> + <li>[C-1-2] MPEG-4 HE AAC Profile (AAC+) + </li> + <li>[C-1-3] MPEG-4 HE AACv2 Profile(增强型 AAC+) + </li> + <li>[C-1-4] AAC ELD(增强型低延迟 AAC) + </li> + <li>[C-1-11] xHE-AAC(ISO/IEC 23003-3 Extended HE AAC Profileï¼ŒåŒ…å« USAC Baseline Profile å’Œ ISO/IEC 23003-4 Dynamic Range Control Profile) + </li> + <li>[C-1-5] FLAC + </li> + <li>[C-1-6] MP3 + </li> + <li>[C-1-7] MIDI + </li> + <li>[C-1-8] Vorbis + </li> + <li>[C-1-9] PCM/WAVE + </li> + <li>[C-1-10] Opus + </li> + </ul> + <p> +如果设备实现支æŒé€šè¿‡ <code>android.media.MediaCodec</code> API ä¸çš„默认 AAC 音频解ç 器将多声é“音频æµï¼ˆå³è¶…过两个声é“)的 AAC 输入缓冲区解ç 为 PCM,则必须支æŒä»¥ä¸‹å„项: + </p> + <ul> + <li>[C-2-1] 必须在ä¸ç¼©æ··çš„情况下进行解ç (例如,必须将 5.0 AAC 音频æµè§£ç ä¸ºäº”å£°é“ PCM,必须将 5.1 AAC 音频æµè§£ç 为å…å£°é“ PCM)。 + </li> + <li>[C-2-2] 动æ€èŒƒå›´å…ƒæ•°æ®å¿…é¡»ç¬¦åˆ ISO/IEC 14496-3 ä¸â€œåŠ¨æ€èŒƒå›´æŽ§åˆ¶ (DRC)â€éƒ¨åˆ†çš„定义;用于为音频解ç 器é…置动æ€èŒƒå›´ç›¸å…³è¡Œä¸ºçš„ <code>android.media.MediaFormat</code> DRC 键也必须符åˆè¯¥å®šä¹‰ã€‚这些 AAC DRC 键是在 API 21 级ä¸å¼•å…¥çš„,分别为:<code>KEY_AAC_DRC_ATTENUATION_FACTOR</code>ã€<code>KEY_AAC_DRC_BOOST_FACTOR</code>ã€<code>KEY_AAC_DRC_HEAVY_COMPRESSION</code>ã€<code>KEY_AAC_DRC_TARGET_REFERENCE_LEVEL</code> å’Œ <code>KEY_AAC_ENCODED_TARGET_LEVEL</code>。 + </li> + </ul> + <p> +解ç USAC 音频 MPEG-D (ISO/IEC 23003-4) 时: + </p> + <ul> + <li>[C-3-1] å¿…é¡»æ ¹æ® MPEG-D DRC Dynamic Range Control Profile Level 1 解读和应用音é‡åŠ DRC 元数æ®ã€‚ + </li> + <li>[C-3-2] 解ç 器必须按照通过以下 <code>android.media.MediaFormat</code> 键设置的é…置执行æ“作:<code>KEY_AAC_DRC_TARGET_REFERENCE_LEVEL</code> å’Œ <code>KEY_AAC_DRC_EFFECT_TYPE</code>。 + </li> + </ul> + <p> +MPEG-4 AACã€HE AAC å’Œ HE AACv2 é…置文件解ç 器: + </p> + <ul> + <li>å¯ä»¥é€šè¿‡ ISO/IEC 23003-4 Dynamic Range Control Profile 支æŒéŸ³é‡å’ŒåŠ¨æ€èŒƒå›´æŽ§åˆ¶ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ ISO/IEC 23003-4 且解ç 的比特æµä¸å˜åœ¨ ISO/IEC 23003-4 å’Œ ISO/IEC 14496-3 元数æ®ï¼Œåˆ™ï¼š + </p> + <ul> + <li>ISO/IEC 23003-4 元数æ®çš„优先级应更高。 + </li> + </ul> + <h4 id="5_1_3_audio_codecs_details"> +5.1.3. 音频编解ç å™¨è¯¦ç»†ä¿¡æ¯ + </h4> + <table> + <tbody><tr> + <th> +æ ¼å¼/编解ç 器 + </th> + <th> +è¯¦ç»†ä¿¡æ¯ + </th> + <th> +支æŒçš„文件类型/å®¹å™¨æ ¼å¼ + </th> + </tr> + <tr> + <td> +MPEG-4 AAC Profile<br /> +(AAC LC) + </td> + <td> +支æŒå•å£°é“/立体声/5.0/5.1 å†…å®¹ï¼Œæ ‡å‡†é‡‡æ ·çŽ‡ä¸º 8-48 kHz。 + </td> + <td> + <ul> + <li class="table_list">3GPP (.3gp) + </li> + <li class="table_list">MPEG-4(.mp4ã€.m4a) + </li> + <li class="table_list">ADTS 原始 AAC(ä¸æ”¯æŒ .aacã€ADIF) + </li> + <li class="table_list">MPEG-TS(.ts,ä¸å¯æŸ¥æ‰¾ï¼‰ + </li> + </ul> + </td> + </tr> + <tr> + <td> +MPEG-4 HE AAC Profile (AAC+) + </td> + <td> +支æŒå•å£°é“/立体声/5.0/5.1 å†…å®¹ï¼Œæ ‡å‡†é‡‡æ ·çŽ‡ä¸º 16-48 kHz。 + </td> + <td></td> + </tr> + <tr> + <td> +MPEG-4 HE AACv2<br /> +Profile(增强型 AAC+) + </td> + <td> +支æŒå•å£°é“/立体声/5.0/5.1 å†…å®¹ï¼Œæ ‡å‡†é‡‡æ ·çŽ‡ä¸º 16-48 kHz。 + </td> + <td></td> + </tr> + <tr> + <td> +AAC ELD(增强型低延迟 AAC) + </td> + <td>支æŒå•å£°é“/ç«‹ä½“å£°å†…å®¹ï¼Œæ ‡å‡†é‡‡æ ·çŽ‡ä¸º 16-48 kHz。 + </td> + <td></td> + </tr> + <tr> + <td> +USAC + </td> + <td> +支æŒå•å£°é“/ç«‹ä½“å£°å†…å®¹ï¼Œæ ‡å‡†é‡‡æ ·çŽ‡ä¸º 7.35-48 kHz。 + </td> + <td> + <ul> + <li>MPEG-4(.mp4ã€.m4a) + </li> + <li>LATM/LOAS(.loasã€.xhe) + </li> + </ul> + </td> + </tr> + <tr> + <td> +AMR-NB + </td> + <td> +4.75-12.2 kbpsï¼Œé‡‡æ ·çŽ‡ä¸º 8 kHz + </td> + <td> +3GPP (.3gp) + </td> + </tr> + <tr> + <td> +AMR-WB + </td> + <td> +有 9 个比特率(介于 6.60-23.85 kbit/s 之间)å¯ä¾›é€‰æ‹©ï¼Œé‡‡æ ·çŽ‡ä¸º 16 kHz + </td> + <td></td> + </tr> + <tr> + <td> +FLAC + </td> + <td> +å•å£°é“/立体声(éžå¤šå£°é“ï¼‰ã€‚é‡‡æ ·çŽ‡æœ€é«˜å¯è¾¾ 48 kHz(但对于输出为 44.1 kHz 的设备,则建议最高ä¸è¶…过 44.1 kHzï¼Œå› ä¸º 48-44.1 kHz çš„é™é‡‡æ ·å™¨ä¸åŒ…å«ä½Žé€šæ»¤æ³¢å™¨ï¼‰ã€‚建议使用 16 ä½ï¼›å¯¹äºŽ 24 ä½ï¼Œä¸ä¼šåº”用任何抖动。 + </td> + <td> +ä»…æ”¯æŒ FLAC (.flac) + </td> + </tr> + <tr> + <td> +MP3 + </td> + <td> +å•å£°é“/立体声 8-320 Kbps æ’定 (CBR) 或å¯å˜æ¯”特率 (VBR) + </td> + <td> +MP3 (.mp3) + </td> + </tr> + <tr> + <td> +MIDI + </td> + <td> +MIDI 类型为 0 å’Œ 1。DLS 版本为 1 å’Œ 2。XMF å’Œ Mobile XMF。支æŒé“ƒå£°æ ¼å¼ RTTTL/RTXã€OTA å’Œ iMelody + </td> + <td> + <ul> + <li class="table_list">类型 0 å’Œ 1(.midã€.xmfã€.mxmf) + </li> + <li class="table_list">RTTTL/RTX(.rtttlã€.rtx) + </li> + <li class="table_list">OTA (.ota) + </li> + <li class="table_list">iMelody (.imy) + </li> + </ul> + </td> + </tr> + <tr> + <td> +Vorbis + </td> + <td></td> + <td> + <ul> + <li class="table_list">Ogg (.ogg) + </li> + <li class="table_list">Matroska(.mkvã€Android 4.0+) + </li> + </ul> + </td> + </tr> + <tr> + <td> +PCM/WAVE + </td> + <td> +16 ä½çº¿æ€§ PCM(比特率最高å¯è¾¾åˆ°ç¡¬ä»¶ä¸Šé™ï¼‰ã€‚设备必须支æŒä»¥ 8000ã€11025ã€16000 å’Œ 44100 Hz 频率录制原始 PCM æ‰€éœ€çš„é‡‡æ ·çŽ‡ã€‚ + </td> + <td> +WAVE (.wav) + </td> + </tr> + <tr> + <td> +Opus + </td> + <td></td> + <td> +Matroska (.mkv)ã€Ogg (.ogg) + </td> + </tr> + </tbody></table> + <h4 id="5_1_4_image_encoding"> +5.1.4. 图åƒç¼–ç + </h4> + <p> +有关详情,请å‚阅 <a href="#5_1_6_image_codecs_details">5.1.6. 图åƒç¼–解ç 器详细信æ¯</a>。 + </p> + <p> +设备实现必须支æŒä»¥ä¸‹å›¾åƒç¼–ç : + </p> + <ul> + <li>[C-0-1] JPEG + </li> + <li>[C-0-2] PNG + </li> + <li>[C-0-3] WebP + </li> + </ul> + <h4 id="5_1_5_image_decoding"> +5.1.5. 图åƒè§£ç + </h4> + <p> +有关详情,请å‚阅 <a href="#5_1_6_image_codecs_details">5.1.6. 图åƒç¼–解ç 器详细信æ¯</a>。 + </p> + <p> +设备实现必须支æŒä»¥ä¸‹å›¾åƒè§£ç : + </p> + <ul> + <li>[C-0-1] JPEG + </li> + <li>[C-0-2] GIF + </li> + <li>[C-0-3] PNG + </li> + <li>[C-0-4] BMP + </li> + <li>[C-0-5] WebP + </li> + <li>[C-0-6] Raw + </li> + <li>[C-0-7] HEIF (HEIC) + </li> + </ul> + <h4 id="5_1_6_image_codecs_details"> +5.1.6. 图åƒç¼–解ç å™¨è¯¦ç»†ä¿¡æ¯ + </h4> + <table> + <tbody><tr> + <th> +æ ¼å¼/编解ç 器 + </th> + <th> +è¯¦ç»†ä¿¡æ¯ + </th> + <th> +支æŒçš„文件类型/å®¹å™¨æ ¼å¼ + </th> + </tr> + <tr> + <td> +JPEG + </td> + <td> +åŸºæœ¬å¼ + æ¸è¿›å¼ + </td> + <td> +JPEG (.jpg) + </td> + </tr> + <tr> + <td> +GIF + </td> + <td></td> + <td> +GIF (.gif) + </td> + </tr> + <tr> + <td> +PNG + </td> + <td></td> + <td> +PNG (.png) + </td> + </tr> + <tr> + <td> +BMP + </td> + <td></td> + <td> +BMP (.bmp) + </td> + </tr> + <tr> + <td> +WebP + </td> + <td></td> + <td> +WebP (.webp) + </td> + </tr> + <tr> + <td> +Raw + </td> + <td></td> + <td> +ARW (.arw)ã€CR2 (.cr2)ã€DNG (.dng)ã€NEF (.nef)ã€NRW (.nrw)ã€ORF (.orf)ã€PEF (.pef)ã€RAF (.raf)ã€RW2 (.rw2)ã€SRW (.srw) + </td> + </tr> + <tr> + <td> +HEIF + </td> + <td> +图åƒã€å›¾åƒé›†ã€å›¾åƒåºåˆ— + </td> + <td> +HEIF (.heif)ã€HEIC (.heic) + </td> + </tr> + </tbody></table> + <h4 id="5_1_7_video_codecs"> +5.1.7. 视频编解ç 器 + </h4> + <ul> + <li>为了使网络视频æµå’Œè§†é¢‘会议æœåŠ¡çš„è´¨é‡è¾¾åˆ°å¯æŽ¥å—的水平,设备实现应使用满足<a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">è¦æ±‚</a>的硬件 VP8 编解ç 器。 + </li> + </ul> + <p> +如果设备实现包å«è§†é¢‘解ç 器或编ç 器,则: + </p> + <ul> + <li> + <p> +[C-1-1] 视频编解ç 器必须支æŒç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„输出和输入å—节缓冲区大å°ï¼šèƒ½å¤Ÿå®¹çº³ç›¸åº”æ ‡å‡†å’Œé…置规定的最大å¯è¡ŒåŽ‹ç¼©å¸§å’ŒæœªåŽ‹ç¼©å¸§ï¼Œå¹¶ä¸”ä¸ä¼šè¿‡åº¦åˆ†é…。 + </p> + </li> + <li> + <p> +[C-1-2] 视频编ç 器和解ç å™¨å¿…é¡»æ”¯æŒ YUV420 çµæ´»é¢œè‰²æ ¼å¼ (COLOR_FormatYUV420Flexible)。 + </p> + </li> + </ul> + <p> +如果设备实现通过 <a href="https://developer.android.com/reference/android/view/Display.HdrCapabilities.html"><code>Display.HdrCapabilities</code></a> é€šå‘Šæ”¯æŒ HDR é…置,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒè§£æžå’Œå¤„ç† HDR é™æ€å…ƒæ•°æ®ã€‚ + </li> + </ul> + <p> +如果设备实现通过 <a href="https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#FEATURE_IntraRefresh"><code>MediaCodecInfo.CodecCapabilities</code></a> ç±»ä¸çš„ <code>FEATURE_IntraRefresh</code> 通告支æŒå¸§å†…刷新,则: + </p> + <ul> + <li>[C-3-1] 必须支æŒä»‹äºŽ 10-60 帧的刷新周期,并且必须在é…置的刷新周期的 20% 内准确è¿è¡Œã€‚ + </li> + </ul> + <h4 id="5_1_8_video_codecs_list"> +5.1.8. 视频编解ç 器列表 + </h4> + <table> + <tbody><tr> + <th> +æ ¼å¼/编解ç 器 + </th> + <th> +è¯¦ç»†ä¿¡æ¯ + </th> + <th> +支æŒçš„文件类型/<br /> +å®¹å™¨æ ¼å¼ + </th> + </tr> + <tr> + <td> +H.263 + </td> + <td></td> + <td> + <ul> + <li class="table_list">3GPP (.3gp) + </li> + <li class="table_list">MPEG-4 (.mp4) + </li> + </ul> + </td> + </tr> + <tr> + <td> +H.264 AVC + </td> + <td> +有关详情,请å‚阅<a href="#5_2_video_encoding">第 5.2 节</a>å’Œ<a href="#5_3_video_decoding">第 5.3 节</a> + </td> + <td> + <ul> + <li class="table_list">3GPP (.3gp) + </li> + <li class="table_list">MPEG-4 (.mp4) + </li> + <li class="table_list">MPEG-2 TS(.tsï¼Œä»…é™ AAC 音频,ä¸å¯æŸ¥æ‰¾ï¼ŒAndroid 3.0+) + </li> + </ul> + </td> + </tr> + <tr> + <td> +H.265 HEVC + </td> + <td> +有关详情,请å‚阅<a href="#5_3_video_decoding">第 5.3 节</a> + </td> + <td> +MPEG-4 (.mp4) + </td> + </tr> + <tr> + <td> +MPEG-2 + </td> + <td> +Main Profile + </td> + <td> +MPEG2-TS + </td> + </tr> + <tr> + <td> +MPEG-4 SP + </td> + <td></td> + <td> +3GPP (.3gp) + </td> + </tr> + <tr> + <td> +VP8 + </td> + <td> +有关详情,请å‚阅<a href="#5_2_video_encoding">第 5.2 节</a>å’Œ<a href="#5_3_video_decoding">第 5.3 节</a> + </td> + <td> + <ul> + <li class="table_list"> + <a href="http://www.webmproject.org/">WebM (.webm)</a> + </li> + <li class="table_list">Matroska (.mkv) + </li> + </ul> + </td> + </tr> + <tr> + <td> +VP9 + </td> + <td> +有关详情,请å‚阅<a href="#5_3_video_decoding">第 5.3 节</a> + </td> + <td> + <ul> + <li class="table_list"> + <a href="http://www.webmproject.org/">WebM (.webm)</a> + </li> + <li class="table_list">Matroska (.mkv) + </li> + </ul> + </td> + </tr> + </tbody></table> + <h3 id="5_2_video_encoding"> +5.2. 视频编ç + </h3> + <p> +如果设备实现支æŒä»»ä½•è§†é¢‘ç¼–ç 器,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>采用两个滑窗时,比帧内 (I-frame) 间隔之间的比特率高出的幅度ä¸åº”超过 15% å·¦å³ã€‚ + </li> + <li>比采用一个 1 秒的滑窗时的比特率高出的幅度ä¸åº”超过 100% å·¦å³ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¯¹è§’线长度至少为 2.5 英寸的嵌入å¼æ˜¾ç¤ºå±ï¼Œæˆ–包å«è§†é¢‘输出端å£ï¼Œæˆ–通过 <code>android.hardware.camera.any</code> åŠŸèƒ½æ ‡è®°å£°æ˜Žæ”¯æŒæ‘„åƒå¤´ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须支æŒè‡³å°‘一个 VP8 或 H.264 视频编ç 器,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用。 + </li> + <li>应åŒæ—¶æ”¯æŒ VP8 å’Œ H.264 视频编ç 器,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ H.264ã€VP8ã€VP9 或 HEVC 视频编ç 器ä¸çš„任何一个,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒå¯åŠ¨æ€é…置的比特率。 + </li> + <li>应支æŒå¯å˜å¸§é€ŸçŽ‡ï¼Œåœ¨è¿™ç§æƒ…况下,视频编ç å™¨åº”æ ¹æ®è¾“入缓å˜çš„时间戳æ¥ç¡®å®šçž¬æ—¶å¸§æ—¶é•¿ï¼Œå¹¶æ ¹æ®è¯¥æ—¶é•¿æ¥åˆ†é…å…¶ä½å˜å‚¨åˆ†åŒºã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ MPEG-4 SP 视频编ç 器,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>应针对支æŒçš„ç¼–ç 器支æŒå¯åŠ¨æ€é…置的比特率。 + </li> + </ul> + <h4 id="5_2_1_h_263"> +5.2.1. H.263 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ H.263 ç¼–ç 器,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Baseline Profile Level 45。 + </li> + <li>应针对支æŒçš„ç¼–ç 器支æŒå¯åŠ¨æ€é…置的比特率。 + </li> + </ul> + <h4 id="5_2_2_h-264"> +5.2.2. H-264 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ H.264 编解ç 器,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Baseline Profile Level 3。ä¸è¿‡ï¼Œå¯ä»¥é€‰æ‹©æ˜¯å¦æ”¯æŒ ASO(任æ„切片顺åºï¼‰ã€FMO(çµæ´»å®å—顺åºï¼‰å’Œ RS(冗切片)。æ¤å¤–,为了ä¿æŒä¸Žå…¶ä»– Android 设备兼容,对于 Baseline Profile,建议编ç 器ä¸è¦ä½¿ç”¨ ASOã€FMO å’Œ RS。 + </li> + <li>[C-1-2] 必须支æŒä¸‹è¡¨ä¸çš„æ ‡æ¸…è§†é¢‘ç¼–ç é…置。 + </li> + <li>åº”æ”¯æŒ Main Profile Level 4。 + </li> + <li>应支æŒä¸‹è¡¨ä¸æ‰€åˆ—的高清视频编ç é…置。 + </li> + </ul> + <p> +如果设备实现通过媒体 API 报告支æŒå¯¹åˆ†è¾¨çŽ‡ä¸º 720p 或 1080p 的视频进行 H.264 ç¼–ç ,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒä¸‹è¡¨ä¸çš„ç¼–ç é…置。 + </li> + </ul> + <table> + <tbody><tr> + <th></th> + <th> +æ ‡æ¸…ï¼ˆä½Žç”»è´¨ï¼‰ + </th> + <th> +æ ‡æ¸…ï¼ˆé«˜ç”»è´¨ï¼‰ + </th> + <th> +高清 720p + </th> + <th> +高清 1080p + </th> + </tr> + <tr> + <th> +视频分辨率 + </th> + <td> +320 x 240 åƒç´ + </td> + <td> +720 x 480 åƒç´ + </td> + <td> +1280 x 720 åƒç´ + </td> + <td> +1920 x 1080 åƒç´ + </td> + </tr> + <tr> + <th> +视频帧速率 + </th> + <td> +20 fps + </td> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps + </td> + </tr> + <tr> + <th> +视频比特率 + </th> + <td> +384 Kbps + </td> + <td> +2 Mbps + </td> + <td> +4 Mbps + </td> + <td> +10 Mbps + </td> + </tr> + </tbody></table> + <h4 id="5_2_3_vp8"> +5.2.3. VP8 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VP8 编解ç 器,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒæ ‡æ¸…视频编ç é…置。 + </li> + <li>应支æŒä»¥ä¸‹é«˜æ¸…视频编ç é…置。 + </li> + <li>应支æŒå†™å…¥ Matroska WebM 文件。 + </li> + <li>应使用满足 <a href="http://www.webmproject.org/hardware/rtc-coding-requirements">WebM 项目 RTC 硬件编ç è¦æ±‚</a>的硬件 VP8 编解ç 器,以确ä¿ç½‘络视频æµå’Œè§†é¢‘会议æœåŠ¡çš„è´¨é‡è¾¾åˆ°å¯æŽ¥å—的水平。 + </li> + </ul> + <p> +如果设备实现通过媒体 API 报告支æŒå¯¹åˆ†è¾¨çŽ‡ä¸º 720p 或 1080p 的视频进行 VP8 ç¼–ç ,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒä¸‹è¡¨ä¸çš„ç¼–ç é…置。 + </li> + </ul> + <table> + <tbody><tr> + <th></th> + <th> +æ ‡æ¸…ï¼ˆä½Žç”»è´¨ï¼‰ + </th> + <th> +æ ‡æ¸…ï¼ˆé«˜ç”»è´¨ï¼‰ + </th> + <th> +高清 720p + </th> + <th> +高清 1080p + </th> + </tr> + <tr> + <th> +视频分辨率 + </th> + <td> +320 x 180 åƒç´ + </td> + <td> +640 x 360 åƒç´ + </td> + <td> +1280 x 720 åƒç´ + </td> + <td> +1920 x 1080 åƒç´ + </td> + </tr> + <tr> + <th> +视频帧速率 + </th> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps + </td> + </tr> + <tr> + <th> +视频比特率 + </th> + <td> +800 Kbps + </td> + <td> +2 Mbps + </td> + <td> +4 Mbps + </td> + <td> +10 Mbps + </td> + </tr> + </tbody></table> + <h4 id="5_2_4_vp9"> +5.2.4. VP9 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VP9 编解ç 器,则: + </p> + <ul> + <li>应支æŒå†™å…¥ Matroska WebM 文件。 + </li> + </ul> + <h3 id="5_3_video_decoding"> +5.3. 视频解ç + </h3> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VP8ã€VP9ã€H.264 或 H.265 编解ç 器,则: + </p> + <ul> + <li>[C-1-1] 对于所有 VP8ã€VP9ã€H.264 å’Œ H.265 编解ç 器,都必须支æŒé€šè¿‡æ ‡å‡† Android API 在åŒä¸€è§†é¢‘æµå†…实时进行动æ€è§†é¢‘分辨率和帧速率切æ¢ï¼Œå¹¶ä¸”能够支æŒè®¾å¤‡ä¸Šæ¯ä¸ªç¼–解ç 器所支æŒçš„最大分辨率。 + </li> + </ul> + <p> +如果设备实现通过 <a href="https://developer.android.com/reference/android/view/Display.HdrCapabilities.html#HDR_TYPE_DOLBY_VISION"><code>HDR_TYPE_DOLBY_VISION</code></a> 声明支æŒæœæ¯”视界解ç 器,则: + </p> + <ul> + <li>[C-2-1] å¿…é¡»æ供具有æœæ¯”视界功能的æå–器。 + </li> + <li>[C-2-2] 必须在设备å±å¹•æˆ–æ ‡å‡†è§†é¢‘è¾“å‡ºç«¯å£ï¼ˆä¾‹å¦‚ HDMI)上æ£ç¡®æ˜¾ç¤ºæœæ¯”视界内容。 + </li> + <li>[C-2-3] 必须将å‘åŽå…¼å®¹çš„基本层(如果å˜åœ¨ï¼‰çš„轨é“索引设为与组åˆå¼æœæ¯”视界层的轨é“索引相åŒã€‚ + </li> + </ul> + <h4 id="5_3_1_mpeg-2"> +5.3.1. MPEG-2 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ MPEG-2 解ç 器,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Main Profile High Level。 + </li> + </ul> + <h4 id="5_3_2_h_263"> +5.3.2. H.263 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ H.263 解ç 器,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Baseline Profile Level 30 å’Œ Level 45。 + </li> + </ul> + <h4 id="5_3_3_mpeg-4"> +5.3.3. MPEG-4 + </h4> + <p> +如果设备实现具有 MPEG-4 解ç 器,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Simple Profile Level 3。 + </li> + </ul> + <h4 id="5_3_4_h_264"> +5.3.4. H.264 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ H.264 解ç 器,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Main Profile Level 3.1 å’Œ Baseline Profile。å¯ä»¥é€‰æ‹©æ˜¯å¦æ”¯æŒ ASO(任æ„切片顺åºï¼‰ã€FMO(çµæ´»å®å—顺åºï¼‰å’Œ RS(冗切片)。 + </li> + <li>[C-1-2] 必须能够对以下视频进行解ç :采用下表ä¸æ‰€åˆ—çš„æ ‡æ¸…é…置,且使用 Baseline Profile å’Œ Main Profile Level 3.1(包括 720p30)编ç 的视频。 + </li> + <li>应能够对采用下表ä¸æ‰€åˆ—高清é…置的视频进行解ç 。 + </li> + </ul> + <p> +如果 <code>Display.getSupportedModes()</code> 方法报告的高度ç‰äºŽæˆ–大于视频分辨率,则设备实现: + </p> + <ul> + <li>[C-2-1] 必须支æŒä¸‹è¡¨ä¸çš„高清 720p 视频解ç é…置。 + </li> + <li>[C-2-2] 必须支æŒä¸‹è¡¨ä¸çš„高清 1080p 视频解ç é…置。 + </li> + </ul> + <table> + <tbody><tr> + <th></th> + <th> +æ ‡æ¸…ï¼ˆä½Žç”»è´¨ï¼‰ + </th> + <th> +æ ‡æ¸…ï¼ˆé«˜ç”»è´¨ï¼‰ + </th> + <th> +高清 720p + </th> + <th> +高清 1080p + </th> + </tr> + <tr> + <th> +视频分辨率 + </th> + <td> +320 x 240 åƒç´ + </td> + <td> +720 x 480 åƒç´ + </td> + <td> +1280 x 720 åƒç´ + </td> + <td> +1920 x 1080 åƒç´ + </td> + </tr> + <tr> + <th> +视频帧速率 + </th> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +60 fps + </td> + <td> +30 fps (60 fps<sup>TV</sup>) + </td> + </tr> + <tr> + <th> +视频比特率 + </th> + <td> +800 Kbps + </td> + <td> +2 Mbps + </td> + <td> +8 Mbps + </td> + <td> +20 Mbps + </td> + </tr> + </tbody></table> + <h4 id="5_3_5_h_265_(hevc)"> +5.3.5. H.265 (HEVC) + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ H.265 编解ç 器,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ Main Profile Level 3 Main Tier 和下表ä¸æ‰€åˆ—çš„æ ‡æ¸…è§†é¢‘è§£ç é…置。 + </li> + <li>应支æŒä¸‹è¡¨ä¸æ‰€åˆ—的高清解ç é…置。 + </li> + <li>[C-1-2] 必须支æŒä¸‹è¡¨ä¸æ‰€åˆ—的高清解ç é…置(如果有硬件解ç 器的è¯ï¼‰ã€‚ + </li> + </ul> + <p> +如果 <code>Display.getSupportedModes()</code> 方法报告的高度ç‰äºŽæˆ–大于视频分辨率,则: + </p> + <ul> + <li>[C-2-1] è®¾å¤‡å®žçŽ°å¿…é¡»è‡³å°‘æ”¯æŒ 720ã€1080 和超高清é…置的 H.265 或 VP9 解ç 之一。 + </li> + </ul> + <table> + <tbody><tr> + <th></th> + <th> +æ ‡æ¸…ï¼ˆä½Žç”»è´¨ï¼‰ + </th> + <th> +æ ‡æ¸…ï¼ˆé«˜ç”»è´¨ï¼‰ + </th> + <th> +高清 720p + </th> + <th> +高清 1080p + </th> + <th> +超高清 + </th> + </tr> + <tr> + <th> +视频分辨率 + </th> + <td> +352 x 288 åƒç´ + </td> + <td> +720 x 480 åƒç´ + </td> + <td> +1280 x 720 åƒç´ + </td> + <td> +1920 x 1080 åƒç´ + </td> + <td> +3840 x 2160 åƒç´ + </td> + </tr> + <tr> + <th> +视频帧速率 + </th> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30/60 fps(60 fps<sup>采用 H.265 硬件解ç çš„ TV</sup>) + </td> + <td> +60 fps + </td> + </tr> + <tr> + <th> +视频比特率 + </th> + <td> +600 Kbps + </td> + <td> +1.6 Mbps + </td> + <td> +4 Mbps + </td> + <td> +5 Mbps + </td> + <td> +20 Mbps + </td> + </tr> + </tbody></table> + <h4 id="5_3_6_vp8"> +5.3.6. VP8 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VP8 编解ç 器,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒä¸‹è¡¨ä¸çš„æ ‡æ¸…è§£ç é…置。 + </li> + <li>应使用满足<a href title="http://www.webmproject.org/hardware/rtc-coding-requirements/">è¦æ±‚</a>的硬件 VP8 编解ç 器。 + </li> + <li>应支æŒä¸‹è¡¨ä¸çš„高清解ç é…置。 + </li> + </ul> + <p> +如果 <code>Display.getSupportedModes()</code> 方法报告的高度ç‰äºŽæˆ–大于视频分辨率,则: + </p> + <ul> + <li>[C-2-1] 设备实现必须支æŒä¸‹è¡¨ä¸çš„ 720p é…置。 + </li> + <li>[C-2-2] 设备实现必须支æŒä¸‹è¡¨ä¸çš„ 1080p é…置。 + </li> + </ul> + <table> + <tbody><tr> + <th></th> + <th> +æ ‡æ¸…ï¼ˆä½Žç”»è´¨ï¼‰ + </th> + <th> +æ ‡æ¸…ï¼ˆé«˜ç”»è´¨ï¼‰ + </th> + <th> +高清 720p + </th> + <th> +高清 1080p + </th> + </tr> + <tr> + <th> +视频分辨率 + </th> + <td> +320 x 180 åƒç´ + </td> + <td> +640 x 360 åƒç´ + </td> + <td> +1280 x 720 åƒç´ + </td> + <td> +1920 x 1080 åƒç´ + </td> + </tr> + <tr> + <th> +视频帧速率 + </th> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps (60 fps<sup>TV</sup>) + </td> + <td> +30 (60 fps<sup>TV</sup>) + </td> + </tr> + <tr> + <th> +视频比特率 + </th> + <td> +800 Kbps + </td> + <td> +2 Mbps + </td> + <td> +8 Mbps + </td> + <td> +20 Mbps + </td> + </tr> + </tbody></table> + <h4 id="5_3_7_vp9"> +5.3.7. VP9 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VP9 编解ç 器,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒä¸‹è¡¨ä¸æ‰€åˆ—çš„æ ‡æ¸…è§†é¢‘è§£ç é…置。 + </li> + <li>应支æŒä¸‹è¡¨ä¸æ‰€åˆ—的高清解ç é…置。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VP9 编解ç 器和硬件解ç 器,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒä¸‹è¡¨ä¸æ‰€åˆ—的高清解ç é…置。 + </li> + </ul> + <p> +如果 <code>Display.getSupportedModes()</code> 方法报告的高度ç‰äºŽæˆ–大于视频分辨率,则: + </p> + <ul> + <li>[C-3-1] è®¾å¤‡å®žçŽ°å¿…é¡»è‡³å°‘æ”¯æŒ 720ã€1080 和超高清é…置的 VP9 或 H.265 解ç 之一。 + </li> + </ul> + <table> + <tbody><tr> + <th></th> + <th> +æ ‡æ¸…ï¼ˆä½Žç”»è´¨ï¼‰ + </th> + <th> +æ ‡æ¸…ï¼ˆé«˜ç”»è´¨ï¼‰ + </th> + <th> +高清 720p + </th> + <th> +高清 1080p + </th> + <th> +超高清 + </th> + </tr> + <tr> + <th> +视频分辨率 + </th> + <td> +320 x 180 åƒç´ + </td> + <td> +640 x 360 åƒç´ + </td> + <td> +1280 x 720 åƒç´ + </td> + <td> +1920 x 1080 åƒç´ + </td> + <td> +3840 x 2160 åƒç´ + </td> + </tr> + <tr> + <th> +视频帧速率 + </th> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps + </td> + <td> +30 fps(60 fps<sup>采用 VP9 硬件解ç çš„ TV</sup>) + </td> + <td> +60 fps + </td> + </tr> + <tr> + <th> +视频比特率 + </th> + <td> +600 Kbps + </td> + <td> +1.6 Mbps + </td> + <td> +4 Mbps + </td> + <td> +5 Mbps + </td> + <td> +20 Mbps + </td> + </tr> + </tbody></table> + <h3 id="5_4_audio_recording"> +5.4. 录音 + </h3> + <p> +虽然从 Android 4.3 开始,本节ä¸æ‰€è¿°çš„一些è¦æ±‚列为了“应â€æ»¡è¶³çš„è¦æ±‚,但我们计划在未æ¥ç‰ˆæœ¬çš„兼容性定义ä¸å°†å…¶æ›´æ”¹ä¸ºâ€œå¿…é¡»â€æ»¡è¶³çš„è¦æ±‚。<strong>强烈建议</strong>现有的åŠæ–°çš„ Android 设备满足这些列为“应â€æ»¡è¶³çš„è¦æ±‚,å¦åˆ™åœ¨å‡çº§åˆ°æœªæ¥ç‰ˆæœ¬åŽå°†æ— 法与 Android 兼容。 + </p> + <h4 id="5_4_1_raw_audio_capture"> +5.4.1. 原始音频采集 + </h4> + <p> +如果设备实现声明了 <code>android.hardware.microphone</code>,则: + </p> + <ul> + <li> + <p> +[C-1-1] å¿…é¡»å…许采集具有以下特å¾çš„原始音频内容: + </p> + <ul> + <li> + <strong>æ ¼å¼</strong>:16 ä½çº¿æ€§ PCM + </li> + <li> + <strong>é‡‡æ ·çŽ‡</strong>:8000ã€11025ã€16000ã€44100 Hz + </li> + <li> + <strong>声é“</strong>:å•å£°é“ + </li> + </ul> + </li> + <li> + <p> +[C-1-2] 必须在ä¸è¿›è¡Œå‡é‡‡æ ·çš„æƒ…å†µä¸‹ä»¥ä¸Šè¿°é‡‡æ ·çŽ‡é‡‡é›†éŸ³é¢‘å†…å®¹ã€‚ + </p> + </li> + <li>[C-1-3] 在进行é™é‡‡æ ·çš„æƒ…å†µä¸‹ä»¥ä¸Šè¿°é‡‡æ ·çŽ‡é‡‡é›†éŸ³é¢‘å†…å®¹æ—¶ï¼Œå¿…é¡»åŒ…å«é€‚当的抗混å 滤波器。 + </li> + <li> + <p> +应å…许以 AM 收音机和 DVD å“质采集原始音频内容,å³å…·æœ‰ä»¥ä¸‹ç‰¹å¾çš„音频内容: + </p> + <ul> + <li> + <strong>æ ¼å¼</strong>:16 ä½çº¿æ€§ PCM + </li> + <li> + <strong>é‡‡æ ·çŽ‡</strong>:22050ã€48000 Hz + </li> + <li> + <strong>声é“</strong>:立体声 + </li> + </ul> + </li> + </ul> + <p> +如果设备实现å…许以 AM 收音机和 DVD å“质采集原始音频内容,则: + </p> + <ul> + <li>[C-2-1] 必须在ä¸è¿›è¡Œå‡é‡‡æ ·çš„情况下以高于 16000:22050 或 44100:48000 çš„ä»»æ„é‡‡æ ·çŽ‡é‡‡é›†éŸ³é¢‘å†…å®¹ã€‚ + </li> + <li>[C-2-2] 对于任何å‡é‡‡æ ·æˆ–é™é‡‡æ ·ï¼Œå¿…须包å«é€‚当的抗混å 滤波器。 + </li> + </ul> + <h4 id="5_4_2_capture_for_voice_recognition"> +5.4.2. 采集音频æµä»¥è¿›è¡Œè¯éŸ³è¯†åˆ« + </h4> + <p> +如果设备实现声明了 <code>android.hardware.microphone</code>,则: + </p> + <ul> + <li>[C-1-1] 必须以 44100 或 48000 çš„é‡‡æ ·çŽ‡é‡‡é›†æ¥è‡ª <code>android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION</code> 音频æºçš„音频æµã€‚ + </li> + <li>[C-1-2] 在录制æ¥è‡ª <code>AudioSource.VOICE_RECOGNITION</code> 音频æºçš„音频æµæ—¶ï¼Œå¿…须默认åœç”¨æ‰€æœ‰é™å™ªéŸ³é¢‘处ç†ã€‚ + </li> + <li>[C-1-3] 在录制æ¥è‡ª <code>AudioSource.VOICE_RECOGNITION</code> 音频æºçš„音频æµæ—¶ï¼Œå¿…须默认åœç”¨æ‰€æœ‰è‡ªåŠ¨å¢žç›ŠæŽ§åˆ¶ã€‚ + </li> + <li>在录制è¯éŸ³è¯†åˆ«éŸ³é¢‘æµæ—¶ï¼Œåº”ä¿æŒå¤§è‡´å¹³å¦çš„幅频特性,具体æ¥è¯´å°±æ˜¯ï¼šÂ±3 dB (100 Hz - 4000 Hz)。 + </li> + <li>在录制è¯éŸ³è¯†åˆ«éŸ³é¢‘æµæ—¶ï¼Œåº”设置适当的输入æ•æ„Ÿåº¦ï¼Œä»¥ç¡®ä¿å¯¹äºŽ 16 ä½çš„æ ·æœ¬ï¼Œ1000 Hz çš„ 90 dB 声压级 (SPL) 音频æºäº§ç”Ÿçš„ RMS 为 2500。 + </li> + <li>在录制è¯éŸ³è¯†åˆ«éŸ³é¢‘æµæ—¶ï¼Œå¦‚果麦克风上的 SPL 为 90 dB,则 PCM 振幅级应能够线性跟踪输入 SPL 在至少 30 dB(-18 dB 到 +12 dB)范围内的å˜åŒ–。 + </li> + <li>在录制è¯éŸ³è¯†åˆ«éŸ³é¢‘æµæ—¶ï¼Œå¦‚果麦克风上输入 1 kHz çš„ 90 dB SPL 声音,则总è°æ³¢ç•¸å˜çŽ‡åº”å°äºŽ 1%。 + </li> + </ul> + <p> +如果设备实现声明了 <code>android.hardware.microphone</code>,并声明了已针对è¯éŸ³è¯†åˆ«è¿›è¡Œå¾®è°ƒçš„噪声抑制(é™å™ªï¼‰æŠ€æœ¯ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] å¿…é¡»å…许通过 <code>android.media.audiofx.NoiseSuppressor</code> API 控制æ¤éŸ³é¢‘å½±å“。 + </li> + <li>[C-2-2] 必须通过 <code>AudioEffect.Descriptor.uuid</code> å—æ®µå”¯ä¸€æ ‡è¯†æ¯é¡¹å™ªå£°æŠ‘制技术实现。 + </li> + </ul> + <h4 id="5_4_3_capture_for_rerouting_of_playback"> +5.4.3. 采集音频æµä»¥è¿›è¡Œé‡å®šå‘æ’放 + </h4> + <p> +<code>android.media.MediaRecorder.AudioSource</code> ç±»åŒ…å« <code>REMOTE_SUBMIX</code> 音频æºã€‚ + </p> + <p> +如果设备实现声明了 <code>android.hardware.audio.output</code> å’Œ <code>android.hardware.microphone</code>,则: + </p> + <ul> + <li> + <p> +[C-1-1] å¿…é¡»æ£ç¡®å®žçŽ° <code>REMOTE_SUBMIX</code> 音频æºï¼Œä»¥ä¾¿åº”用使用 <code>android.media.AudioRecord</code> API 录制æ¥è‡ªè¯¥éŸ³é¢‘æºçš„音频æµæ—¶ï¼Œå¯ä»¥é‡‡é›†é™¤ä»¥ä¸‹å†…容之外的所有音频æµçš„混音: + </p> + <ul> + <li> + <code>AudioManager.STREAM_RING</code> + </li> + <li> + <code>AudioManager.STREAM_ALARM</code> + </li> + <li> + <code>AudioManager.STREAM_NOTIFICATION</code> + </li> + </ul> + </li> + </ul> + <h3 id="5_5_audio_playback"> +5.5. 音频æ’放 + </h3> + <p> +Android 包å«ç›¸åº”的支æŒï¼Œä»¥ä¾¿åº”用通过音频输出外围设备(如第 7.8.2 节ä¸å®šä¹‰ï¼‰æ’放音频。 + </p> + <h4 id="5_5_1_raw_audio_playback"> +5.5.1. 原始音频æ’放 + </h4> + <p> +如果设备实现声明了 <code>android.hardware.audio.output</code>,则: + </p> + <ul> + <li> + <p> +[C-1-1] å¿…é¡»å…许æ’放具有以下特å¾çš„原始音频内容: + </p> + <ul> + <li> + <strong>æ ¼å¼</strong>:线性 PCM,16 ä½ã€8 ä½ã€æµ®ç‚¹åž‹ + </li> + <li> + <strong>声é“</strong>:å•å£°é“ã€ç«‹ä½“声,有效的多声é“é…置支æŒå¤šè¾¾ 8 å£°é“ + </li> + <li> + <strong>é‡‡æ ·çŽ‡ï¼ˆä»¥ Hz 为å•ä½ï¼‰</strong>: + <ul> + <li>8000ã€11025ã€16000ã€22050ã€32000ã€44100ã€48000(声é“é…置如上所列) + </li> + <li>96000(å•å£°é“和立体声) + </li> + </ul> + </li> + </ul> + </li> + <li> + <p> +应å…许æ’放具有以下特å¾çš„原始音频内容: + </p> + <ul> + <li> + <strong>é‡‡æ ·çŽ‡</strong>:24000ã€48000 + </li> + </ul> + </li> + </ul> + <h4 id="5_5_2_audio_effects"> +5.5.2. 音效 + </h4> + <p> +Android 为设备实现æ供了<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">音效 API</a>。 + </p> + <p> +如果设备实现声明了 <code>android.hardware.audio.output</code> 功能,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ <code>EFFECT_TYPE_EQUALIZER</code> å’Œ <code>EFFECT_TYPE_LOUDNESS_ENHANCER</code> 实现(å¯é€šè¿‡ AudioEffect åç±» <code>Equalizer</code> å’Œ <code>LoudnessEnhancer</code> 进行控制)。 + </li> + <li>[C-1-2] 必须支æŒå¯è§†åŒ–工具 API 实现(å¯é€šè¿‡ <code>Visualizer</code> 类进行控制)。 + </li> + <li>[C-1-3] å¿…é¡»æ”¯æŒ <code>EFFECT_TYPE_DYNAMICS_PROCESSING</code> 实现(å¯é€šè¿‡ AudioEffect åç±» <a href="https://developer.android.com/reference/android/media/audiofx/DynamicsProcessing"><code>DynamicsProcessing</code></a> 进行控制)。 + </li> + <li>åº”æ”¯æŒ <code>EFFECT_TYPE_BASS_BOOST</code>ã€<code>EFFECT_TYPE_ENV_REVERB</code>ã€<code>EFFECT_TYPE_PRESET_REVERB</code> å’Œ <code>EFFECT_TYPE_VIRTUALIZER</code> 实现(å¯é€šè¿‡ <code>AudioEffect</code> åç±» <code>BassBoost</code>ã€<code>EnvironmentalReverb</code>ã€<code>PresetReverb</code> å’Œ <code>Virtualizer</code> 进行控制)。 + </li> + </ul> + <h4 id="5_5_3_audio_output_volume"> +5.5.3. éŸ³é¢‘è¾“å‡ºéŸ³é‡ + </h4> + <p> +Automotive 设备实现: + </p> + <ul> + <li>应å…许按æ¯ä¸ªéŸ³é¢‘æµå•ç‹¬è°ƒæ•´éŸ³é¢‘音é‡ï¼ˆä½¿ç”¨é€šè¿‡ <a href title="http://developer.android.com/reference/android/media/AudioAttributes.html">AudioAttributes</a> å®šä¹‰çš„å†…å®¹ç±»åž‹æˆ–ç”¨æ³•ï¼Œä»¥åŠ <code>android.car.CarAudioManager</code> ä¸å…¬å¼€å®šä¹‰çš„车载音频系统用法)。 + </li> + </ul> + <h3 id="5_6_audio_latency"> +5.6. 音频延迟 + </h3> + <p> +音频延迟是指音频信å·é€šè¿‡ç³»ç»Ÿæ—¶çš„时间延迟。许多类别的应用都ä¾èµ–éžå¸¸çŸçš„延迟æ¥å®žçŽ°å®žæ—¶éŸ³æ•ˆã€‚ + </p> + <p> +在本节ä¸ï¼Œä½¿ç”¨ä»¥ä¸‹å®šä¹‰ï¼š + </p> + <ul> + <li> + <strong>输出延迟</strong>:从应用写入ç»è¿‡ PCM ç¼–ç çš„æ•°æ®å¸§åˆ°ç›¸åº”声音在设备内置转æ¢å™¨å¤„的环境ä¸æ’放出æ¥ä¹‹é—´çš„时间间隔,或者从信å·é€šè¿‡ç«¯å£ç¦»å¼€è®¾å¤‡åˆ°å¯åœ¨å¤–部å¬åˆ°ç›¸åº”声音之间的时间间隔。 + </li> + <li> + <strong>冷输出延迟</strong>:在收到相应请求之å‰éŸ³é¢‘输出系统处于闲置状æ€ä¸”已关é—时,第一帧的输出延迟。 + </li> + <li> + <strong>è¿žç»è¾“出延迟</strong>:在设备开始æ’放音频åŽï¼ŒåŽç»å¸§çš„输出延迟。 + </li> + <li> + <strong>输入延迟</strong>:从环境ä¸å‘出声音到设备内置转æ¢å™¨å¤„的设备æ•èŽ·åˆ°è¯¥å£°éŸ³ä¹‹é—´çš„时间间隔,或者从信å·é€šè¿‡ç«¯å£è¿›å…¥è®¾å¤‡åˆ°åº”用读å–ç»è¿‡ PCM ç¼–ç 的相应数æ®å¸§ä¹‹é—´çš„时间间隔。 + </li> + <li> + <strong>丢失输入</strong>:输入信å·ä¸ä¸å¯ç”¨æˆ–æ— æ³•æ•èŽ·åˆ°çš„åˆå§‹éƒ¨åˆ†ã€‚ + </li> + <li> + <strong>冷输入延迟</strong>:在收到相应请求之å‰éŸ³é¢‘输入系统处于闲置状æ€ä¸”已关é—时,丢失输入的时长与第一帧的输入延迟之和。 + </li> + <li> + <strong>è¿žç»è¾“入延迟</strong>:当设备采集音频时,åŽç»å¸§çš„输入延迟。 + </li> + <li> + <strong>冷输出抖动</strong>:冷输出延迟值的å•ç‹¬æµ‹é‡ç»“果之间的å˜åŒ–。 + </li> + <li> + <strong>冷输入抖动</strong>:冷输入延迟值的å•ç‹¬æµ‹é‡ç»“果之间的å˜åŒ–。 + </li> + <li> + <strong>è¿žç»å¾€è¿”延迟</strong>:连ç»è¾“入延迟ã€è¿žç»è¾“出延迟,å†åŠ 一个缓冲期的总和。缓冲期å¯è®©åº”用有时间æ¥å¤„ç†ä¿¡å·ï¼Œå¹¶æœ‰æ—¶é—´æ¥é™ä½Žè¾“入和输出æµä¹‹é—´çš„相ä½å·®ã€‚ + </li> + <li> + <strong>OpenSL ES PCM 缓冲队列 API</strong>:<a href="https://developer.android.com/ndk/index.html">Android NDK</a> ä¸çš„一组与 PCM 相关的 <a href="https://developer.android.com/ndk/guides/audio/opensl/index.html">OpenSL ES</a> API。 + </li> + <li> + <strong>AAudio 本机音频 API</strong>:<a href="https://developer.android.com/ndk/index.html">Android NDK</a> ä¸çš„一组 <a href="https://developer.android.com/ndk/guides/audio/aaudio/aaudio.html">AAudio</a> API。 + </li> + <li> + <strong>时间戳</strong>:信æ¯æµä¸çš„相对帧ä½ç½®ä¸Žè¯¥å¸§åœ¨å…³è”端点上进入或离开音频处ç†ç®¡é“的大约时间的组åˆã€‚å¦è¯·å‚阅 <a href="https://developer.android.com/reference/android/media/AudioTimestamp">AudioTimestamp</a>。 + </li> + </ul> + <p> +如果设备实现声明了 <code>android.hardware.audio.output</code>,则强烈建议它们满足或超出以下è¦æ±‚: + </p> + <ul> + <li>[C-SR] 冷输出延迟ä¸è¶…过 100 毫秒 + </li> + <li>[C-SR] è¿žç»è¾“出延迟ä¸è¶…过 45 毫秒 + </li> + <li>[C-SR] 最大é™åº¦åœ°é™ä½Žå†·è¾“出抖动 + </li> + <li>[C-SR] <a href="https://developer.android.com/reference/android/media/AudioTrack.html#getTimestamp(android.media.AudioTimestamp)">AudioTrack.getTimestamp</a> å’Œ <code>AAudioStream_getTimestamp</code> 返回的输出时间戳精确到 +/- 1 毫秒。 + </li> + </ul> + <p> +åŒæ—¶ä½¿ç”¨ OpenSL ES PCM 缓冲队列 API å’Œ AAudio 本机音频 API 时,如果设备实现在ç»è¿‡ä»»ä½•åˆå§‹æ ¡å‡†åŽæ»¡è¶³äº†ä¸Šè¿°è¦æ±‚,则对于在至少一个å—支æŒéŸ³é¢‘输出设备上的连ç»è¾“出延迟和冷输出延迟: + </p> + <ul> + <li>[C-SR] 强烈建议通过声明 <code>android.hardware.audio.low_latency</code> åŠŸèƒ½æ ‡è®°æŠ¥å‘Šä½Žå»¶è¿ŸéŸ³é¢‘ã€‚ + </li> + <li>[C-SR] 强烈建议通过 AAudio API 满足针对低延迟音频的è¦æ±‚。 + </li> + <li>[C-SR] 对于从 <a href="https://developer.android.com/ndk/reference/group/audio#aaudiostream_getperformancemode"><code>AAudioStream_getPerformanceMode()</code></a> 返回 <a href="https://developer.android.com/ndk/guides/audio/aaudio/aaudio#performance-mode"><code>AAUDIO_PERFORMANCE_MODE_LOW_LATENCY</code></a> çš„ä¿¡æ¯æµï¼Œå¼ºçƒˆå»ºè®®ç¡®ä¿ <a href="https://developer.android.com/ndk/reference/group/audio#aaudiostream_getframesperburst"><code>AAudioStream_getFramesPerBurst()</code></a> 返回的值å°äºŽæˆ–ç‰äºŽ <a href="https://developer.android.com/reference/android/media/AudioManager.html#getProperty%28java.lang.String%29"><code>android.media.AudioManager.getProperty(String)</code></a> 针对属性键 <a href="https://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_OUTPUT_FRAMES_PER_BUFFER"><code>AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER</code></a> 返回的值。 + </li> + </ul> + <p> +如果设备实现未通过 OpenSL ES PCM 缓冲队列 API å’Œ AAudio 本机音频 API 满足针对低延迟音频的è¦æ±‚,则: + </p> + <ul> + <li>[C-1-1] ä¸å¾—报告支æŒä½Žå»¶è¿ŸéŸ³é¢‘。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« <code>android.hardware.microphone</code>,则强烈建议它们满足以下针对输入音频的è¦æ±‚: + </p> + <ul> + <li>[C-SR] 冷输入延迟ä¸è¶…过 100 毫秒。 + </li> + <li>[C-SR] è¿žç»è¾“入延迟ä¸è¶…过 30 毫秒。 + </li> + <li>[C-SR] è¿žç»å¾€è¿”延迟ä¸è¶…过 50 毫秒。 + </li> + <li>[C-SR] 最大é™åº¦åœ°é™ä½Žå†·è¾“入抖动。 + </li> + <li>[C-SR] å°† <a href="https://developer.android.com/reference/android/media/AudioRecord.html#getTimestamp(android.media.AudioTimestamp,%20int)">AudioRecord.getTimestamp</a> 或 <code>AAudioStream_getTimestamp</code> 返回的输入时间戳ä¸çš„误差é™åˆ¶åœ¨ +/- 1 毫秒内。 + </li> + </ul> + <h3 id="5_7_network_protocols"> +5.7. 网络åè®® + </h3> + <p> +è®¾å¤‡å®žçŽ°å¿…é¡»æ”¯æŒ Android SDK 文档ä¸æŒ‡å®šçš„适用于音频和视频æ’放的<a href="http://developer.android.com/guide/appendix/media-formats.html">媒体网络åè®®</a>。 + </p> + <p> +如果设备实现包å«éŸ³é¢‘或视频解ç 器,则: + </p> + <ul> + <li> + <p> +[C-1-1] 必须通过 HTTP(S) 支æŒ<a href="#5_1_media_codecs">第 5.1 节</a>ä¸åˆ—出的所有必须支æŒçš„编解ç å™¨å’Œå®¹å™¨æ ¼å¼ã€‚ + </p> + </li> + <li> + <p> +[C-1-2] 必须通过 <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-07">HTTP Live Streaming è‰æ¡ˆå议(第 7 版)</a>支æŒä¸‹æ–¹â€œåª’ä½“æ®µæ ¼å¼â€è¡¨ä¸åˆ—å‡ºçš„åª’ä½“æ®µæ ¼å¼ã€‚ + </p> + </li> + <li> + <p> +[C-1-3] 必须支æŒä»¥ä¸‹ RTP 音频视频é…置以åŠä¸‹æ–¹ RTSP 表ä¸çš„相关编解ç 器。有关例外情况,请å‚阅<a href="#5_1_media_codecs">第 5.1 节</a>ä¸çš„è¡¨æ ¼è„šæ³¨ã€‚ + </p> + </li> + </ul> + <p> + <strong>åª’ä½“æ®µæ ¼å¼</strong> + </p> + <table> + <tbody><tr> + <th> +æ®µæ ¼å¼ + </th> + <th> +å‚考 + </th> + <th> +必须支æŒçš„编解ç 器 + </th> + </tr> + <tr id="mp2t"> + <td> +MPEG-2 ä¼ è¾“æµ + </td> + <td> + <a href="http://www.iso.org/iso/catalogue_detail?csnumber=44169">ISO 13818</a> + </td> + <td> +视频编解ç 器: + <ul> + <li class="table_list">H264 AVC + </li> + <li class="table_list">MPEG-4 SP + </li> + <li class="table_list">MPEG-2 + </li> + </ul>请å‚阅<a href="#5_1_3_video_codecs">第 5.1.3 节</a>,了解有关 H264 AVCã€MPEG2-4 SP <br />å’Œ MPEG-2 的详细信æ¯ã€‚ + <p> +音频编解ç 器: + </p> + <ul> + <li class="table_list">AAC + </li> + </ul>请å‚阅<a href="#5_1_1_audio_codecs">第 5.1.1 节</a>,了解有关 AAC åŠå…¶å˜ä½“的详细信æ¯ã€‚ + </td> + </tr> + <tr> + <td> +采用 ADTS 框架和 ID3 æ ‡è®°çš„ AAC + </td> + <td> + <a href="http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=43345">ISO 13818-7</a> + </td> + <td> +请å‚阅<a href="#5_1_1_audio_codecs">第 5.1.1 节</a>,了解有关 AAC åŠå…¶å˜ä½“çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +WebVTT + </td> + <td> + <a href="http://dev.w3.org/html5/webvtt/">WebVTT</a> + </td> + <td></td> + </tr> + </tbody></table> + <p> + <strong>RTSP(RTPã€SDP)</strong> + </p> + <table> + <tbody><tr> + <th> +é…ç½®å称 + </th> + <th> +å‚考 + </th> + <th> +必须支æŒçš„编解ç 器 + </th> + </tr> + <tr> + <td> +H264 AVC + </td> + <td> + <a href="https://tools.ietf.org/html/rfc6184">RFC 6184</a> + </td> + <td> +请å‚阅<a href="#5_1_3_video_codecs">第 5.1.3 节</a>,了解有关 H264 AVC çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +MP4A-LATM + </td> + <td> + <a href="https://tools.ietf.org/html/rfc6416">RFC 6416</a> + </td> + <td> +请å‚阅<a href="#5_1_1_audio_codecs">第 5.1.1 节</a>,了解有关 AAC åŠå…¶å˜ä½“çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +H263-1998 + </td> + <td> + <a href="https://tools.ietf.org/html/rfc3551">RFC 3551</a><br /> + <a href="https://tools.ietf.org/html/rfc4629">RFC 4629</a><br /> + <a href="https://tools.ietf.org/html/rfc2190">RFC 2190</a> + </td> + <td> +请å‚阅<a href="#5_1_3_video_codecs">第 5.1.3 节</a>,了解有关 H263 çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +H263-2000 + </td> + <td> + <a href="https://tools.ietf.org/html/rfc4629">RFC 4629</a> + </td> + <td> +请å‚阅<a href="#5_1_3_video_codecs">第 5.1.3 节</a>,了解有关 H263 çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +AMR + </td> + <td> + <a href="https://tools.ietf.org/html/rfc4867">RFC 4867</a> + </td> + <td> +请å‚阅<a href="#5_1_1_audio_codecs">第 5.1.1 节</a>,了解有关 AMR-NB çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +AMR-WB + </td> + <td> + <a href="https://tools.ietf.org/html/rfc4867">RFC 4867</a> + </td> + <td> +请å‚阅<a href="#5_1_1_audio_codecs">第 5.1.1 节</a>,了解有关 AMR-WB çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +MP4V-ES + </td> + <td> + <a href="https://tools.ietf.org/html/rfc6416">RFC 6416</a> + </td> + <td> +请å‚阅<a href="#5_1_3_video_codecs">第 5.1.3 节</a>,了解有关 MPEG-4 SP çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +mpeg4-generic + </td> + <td> + <a href="https://tools.ietf.org/html/rfc3640">RFC 3640</a> + </td> + <td> +请å‚阅<a href="#5_1_1_audio_codecs">第 5.1.1 节</a>,了解有关 AAC åŠå…¶å˜ä½“çš„è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + <tr> + <td> +MP2T + </td> + <td> + <a href="https://tools.ietf.org/html/rfc2250">RFC 2250</a> + </td> + <td> +请å‚阅 HTTP Live Streaming 下的 <a href="#mp2t">MPEG-2 ä¼ è¾“æµ</a>ï¼Œäº†è§£ç›¸å…³è¯¦ç»†ä¿¡æ¯ + </td> + </tr> + </tbody></table> + <h3 id="5_8_secure_media"> +5.8. 安全媒体 + </h3> + <p>如果设备实现支æŒå®‰å…¨è§†é¢‘输出,并且能够支æŒå®‰å…¨ Surface,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»å£°æ˜Žæ”¯æŒ <code>Display.FLAG_SECURE</code>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>Display.FLAG_SECURE</code>,并且支æŒæ— 线显示å议,则: + </p> + <ul> + <li>[C-2-1] 必须采用ç»è¿‡åŠ 密的强大机制(例如 HDCP 2.x 或更高版本,适用于通过 Miracast ç‰æ— 线å议连接的显示设备)æ¥ä¿æŠ¤é“¾æŽ¥ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>Display.FLAG_SECURE</code>,并且支æŒæœ‰çº¿è¿žæŽ¥çš„外部显示设备,则: + </p> + <ul> + <li>[C-3-1] 对于所有用户å¯é€šè¿‡æœ‰çº¿ç«¯å£è¿žæŽ¥çš„æ‰€æœ‰å¤–éƒ¨æ˜¾ç¤ºè®¾å¤‡ï¼Œéƒ½å¿…é¡»æ”¯æŒ HDCP 1.2 或更高版本。 + </li> + </ul> + <h3 id="5_9_musical_instrument_digital_interface_(midi)"> +5.9. ä¹å™¨æ•°å—æŽ¥å£ (MIDI) + </h3> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æŠ¥å‘Šæ”¯æŒ <code>android.software.midi</code> 功能(通过 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html"><code>android.content.pm.PackageManager</code></a> 类),则: + </p> + <ul> + <li> + <p> +[C-1-1] 必须在为之æä¾›å¸¸è§„éž MIDI è¿žæŽ¥çš„æ‰€æœ‰æ”¯æŒ MIDI çš„ç¡¬ä»¶ä¼ è¾“æ–¹å¼ä¸Šæ”¯æŒ MIDI,æ¤ç±»ä¼ 输方å¼æœ‰ï¼š<em></em> + </p> + <ul> + <li>USB 主机模å¼ï¼ˆ<a href="#7_7_USB">第 7.7 节</a>) + </li> + <li>USB 外围设备模å¼ï¼ˆ<a href="#7_7_USB">第 7.7 节</a>) + </li> + <li>通过è“牙 LE å‘æŒ¥æ ¸å¿ƒä½œç”¨çš„ MIDI 设备(<a href="#7_4_3_bluetooth">第 7.4.3 节</a>) + </li> + </ul> + </li> + <li> + <p> +[C-1-2] 必须支æŒåº”用间 MIDI è½¯ä»¶ä¼ è¾“ï¼ˆè™šæ‹Ÿ MIDI 设备) + </p> + </li> + </ul> + <h3 id="5_10_professional_audio"> +5.10. 专业音频 + </h3> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æŠ¥å‘Šæ”¯æŒ <code>android.hardware.audio.pro</code> 功能(通过 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a> 类),则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æŠ¥å‘Šæ”¯æŒ <code>android.hardware.audio.low_latency</code> 功能。 + </li> + <li>[C-1-2] è¿žç»å¾€è¿”音频延迟(如<a href="#5_6_audio_latency">第 5.6 节:音频延迟</a>ä¸å®šä¹‰ï¼‰ä¸å¾—超过 20 毫秒,并且应在至少一æ¡æ”¯æŒçš„路径上ä¸è¶…过 10 毫秒。 + </li> + <li>[C-1-3] 必须包å«æ”¯æŒ USB 主机模å¼å’Œ USB 外围设备模å¼çš„ USB 端å£ã€‚ + </li> + <li>[C-1-4] å¿…é¡»æŠ¥å‘Šæ”¯æŒ <code>android.software.midi</code> 功能。 + </li> + <li>[C-1-5] 必须结åˆä½¿ç”¨ <a href="https://developer.android.com/ndk/guides/audio/opensl-for-android.html">OpenSL ES</a> PCM 缓冲队列 API å’Œ <a href="https://developer.android.com/ndk/guides/audio/aaudio/aaudio.html">AAudio 本机音频</a> API æ¥æ»¡è¶³å»¶è¿Ÿå’Œ USB 音频方é¢çš„è¦æ±‚。 + </li> + <li>[SR] 强烈建议当音频在æ’放并且 CPU 负载有å˜åŒ–时,æ供一致水平的 CPU 性能。应使用 <a href="https://github.com/googlesamples/android-audio-high-performance/tree/master/SimpleSynth">SimpleSynth</a> æ交项 <a href="https://github.com/googlesamples/android-audio-high-performance/commit/1bd6391f8ba9512f9f8798e979bc55b899f856d1">1bd6391</a> 对æ¤è¿›è¡Œæµ‹è¯•ã€‚SimpleSynth 应用需è¦åœ¨è¿è¡Œæ—¶è¾¾åˆ°ä»¥ä¸‹å‚数,并在 10 分钟åŽå®žçŽ°é›¶æ¬ 载: + <ul> + <li>工作周期:200000 + </li> + <li>å¯å˜è´Ÿè½½ï¼šå¼€å¯ï¼ˆæ¤è®¾ç½®ä¼šæ¯éš” 2 秒在 100% å’Œ 10% 的工作周期值之间切æ¢ä¸€æ¬¡ï¼Œæ—¨åœ¨æµ‹è¯• CPU 调节器行为) + </li> + <li>ç¨³å®šè´Ÿè½½ï¼šå…³é— + </li> + </ul> + </li> + <li>应最大é™åº¦åœ°é™ä½ŽéŸ³é¢‘æ—¶é’Ÿç›¸å¯¹äºŽæ ‡å‡†æ—¶é—´çš„ä¸å‡†ç¡®æ€§å’Œå差。 + </li> + <li>应最大é™åº¦åœ°é™ä½ŽéŸ³é¢‘时钟相对于 CPU <code>CLOCK_MONOTONIC</code> çš„å差(当两者皆处于活动状æ€æ—¶ï¼‰ã€‚ + </li> + <li>应最大é™åº¦åœ°ç¼©çŸåœ¨è®¾å¤‡å†…置转æ¢å™¨ä¸Šçš„音频延迟。 + </li> + <li>应最大é™åº¦åœ°ç¼©çŸåœ¨ USB æ•°å—音频路径上的音频延迟。 + </li> + <li>应记录在所有路径上的音频延迟时间测é‡ç»“果。 + </li> + <li>应最大é™åº¦åœ°é™ä½ŽéŸ³é¢‘缓冲完æˆå›žè°ƒè¾“å…¥æ—¶é—´å†…çš„æŠ–åŠ¨ï¼Œå› ä¸ºæ¤ç±»æŠ–动会影å“å…¨ CPU 带宽ä¸å¯ä¾›å›žè°ƒä½¿ç”¨çš„百分比。 + </li> + <li>在æ£å¸¸ä½¿ç”¨æƒ…况下(符åˆæŠ¥å‘Šçš„延迟),ä¸åº”å‡ºçŽ°éŸ³é¢‘æ¬ è½½ï¼ˆè¾“å‡ºç«¯ï¼‰æˆ–è¿‡è½½ï¼ˆè¾“å…¥ç«¯ï¼‰ã€‚ + </li> + <li>声é“间延迟时间差应为零。 + </li> + <li>采用å„ç§ä¼ 输方å¼æ—¶ï¼Œéƒ½åº”最大é™åº¦åœ°ç¼©çŸ MIDI å¹³å‡å»¶è¿Ÿã€‚ + </li> + <li>采用å„ç§ä¼ 输方å¼æ—¶ï¼Œéƒ½åº”最大é™åº¦åœ°é™ä½Žåœ¨æœ‰è´Ÿè½½çŠ¶æ€ä¸‹çš„ MIDI 延迟时间å˜åŒ–(抖动)。 + </li> + <li>采用å„ç§ä¼ 输方å¼æ—¶ï¼Œéƒ½åº”æ供准确的 MIDI 时间戳。 + </li> + <li>应最大é™åº¦åœ°é™ä½Žåœ¨è®¾å¤‡å†…置转æ¢å™¨ä¸Šçš„音频信å·å™ªå£°ï¼ŒåŒ…括刚完æˆå†·å¯åŠ¨åŽä¸€æ®µæ—¶é—´å†…的噪声。 + </li> + <li>相应端点输入侧和输出侧(当两者皆处于活动状æ€æ—¶ï¼‰ä¹‹é—´çš„音频时钟差应为零。相应端点的示例包括设备上的麦克风和音å“系统,或音频æ’å”输入端和输出端。 + </li> + <li>应在åŒä¸€çº¿ç¨‹ä¸Šå¤„ç†ç›¸åº”端点输入侧和输出侧(当两者皆处于活动状æ€æ—¶ï¼‰çš„音频缓冲完æˆå›žè°ƒï¼Œå¹¶åœ¨ä»Žè¾“入回调返回åŽç«‹å³è¿›å…¥è¾“出回调。或者,如果在åŒä¸€çº¿ç¨‹ä¸Šå¤„ç†å›žè°ƒä¸å¯è¡Œï¼Œåˆ™åº”在进入输入回调åŽå¾ˆå¿«è¿›å…¥è¾“出回调,以便应用在输入侧和输出侧拥有一致的时间。 + </li> + <li>应最大é™åº¦åœ°å‡å°ç›¸åº”端点输入侧和输出侧 HAL 音频缓冲之间的相ä½å·®ã€‚ + </li> + <li>应最大é™åº¦åœ°ç¼©çŸè§¦æ‘¸å»¶è¿Ÿã€‚ + </li> + <li>应最大é™åº¦åœ°é™ä½Žåœ¨æœ‰è´Ÿè½½çŠ¶æ€ä¸‹çš„轻触延迟时间å˜åŒ–(抖动)。 + </li> + <li>从轻触输入到音频输出的延迟时间应å°äºŽæˆ–ç‰äºŽ 40 毫秒。 + </li> + </ul> + <p> +如果设备实现满足上述所有è¦æ±‚,则: + </p> + <ul> + <li>[SR] 强烈建议通过 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html"><code>android.content.pm.PackageManager</code></a> ç±»æŠ¥å‘Šæ”¯æŒ <code>android.hardware.audio.pro</code> 功能。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 4 导体 3.5 毫米音频耳机æ’å”,则: + </p> + <ul> + <li>[C-2-1] 必须确ä¿åœ¨éŸ³é¢‘耳机æ’å”路径上的连ç»å¾€è¿”音频延迟ä¸è¶…过 20 毫秒。 + </li> + <li>[SR] 强烈建议éµå¾ª<a href="https://source.android.com/devices/accessories/headset/plug-headset-spec">有线音频耳机规范 (v1.1)</a> çš„<a href="https://source.android.com/devices/accessories/headset/jack-headset-spec">移动设备(耳机æ’å”)规范</a>一节ä¸çš„规定。 + </li> + <li>在音频耳机æ’å”路径上的连ç»å¾€è¿”音频延迟ä¸åº”超过 10 毫秒。 + </li> + </ul> + <p> +如果设备实现çœç•¥äº† 4 导体 3.5 毫米音频耳机æ’å”,并且包å«æ”¯æŒ USB 主机模å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 必须实现 USB 音频类。 + </li> + <li>[C-3-2] 在 USB 主机模å¼ç«¯å£ï¼ˆä½¿ç”¨ USB 音频类)上的连ç»å¾€è¿”音频延迟ä¸å¾—超过 20 毫秒。 + </li> + <li>在 USB 主机模å¼ç«¯å£ï¼ˆä½¿ç”¨ USB 音频类)上的连ç»å¾€è¿”音频延迟ä¸åº”超过 10 毫秒。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« HDMI 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-4-1] 必须在至少一ç§é…ç½®ä¸æ”¯æŒé¢‘率为 192 kHzã€ä½æ·±ä¸º 20 或 24 的八声é“立体声输出,而ä¸ä¸¢å¤±ä½æ·±æˆ–é‡æ–°é‡‡æ ·ã€‚ + </li> + </ul> + <h3 id="5_11_capture_for_unprocessed"> +5.11. 采集未处ç†éŸ³é¢‘ + </h3> + <p> +Android 支æŒé€šè¿‡ <code>android.media.MediaRecorder.AudioSource.UNPROCESSED</code> 音频æºå½•åˆ¶æœªå¤„ç†éŸ³é¢‘。在 OpenSL ES ä¸ï¼Œå¯ä»¥ä½¿ç”¨å½•åˆ¶é¢„设 <code>SL_ANDROID_RECORDING_PRESET_UNPROCESSED</code> æ¥è®¿é—®è¿™äº›éŸ³é¢‘。 + </p> + <p> +如果设备实现打算支æŒæœªå¤„ç†éŸ³é¢‘æºï¼Œå¹¶ä½¿å…¶å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li> + <p> +[C-1-1] 必须通过 <code>android.media.AudioManager</code> 属性 <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED">PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED</a> 报告æ¤é¡¹æ”¯æŒã€‚ + </p> + </li> + <li> + <p> +[C-1-2] 对于æ¯ä¸ªç”¨äºŽå¯¹æœªå¤„ç†éŸ³é¢‘æºè¿›è¡Œå½•éŸ³çš„麦克风,在ä¸é¢‘范围内必须表现出大致平å¦çš„幅频特性,具体æ¥è¯´å°±æ˜¯ï¼šÂ±10 dB (100 Hz - 7000 Hz)。 + </p> + </li> + <li> + <p> +[C-1-3] 对于æ¯ä¸ªç”¨äºŽå¯¹æœªå¤„ç†éŸ³é¢‘æºè¿›è¡Œå½•éŸ³çš„麦克风,在低频范围内必须表现出适当的振幅ç‰çº§ï¼Œå…·ä½“æ¥è¯´å°±æ˜¯ï¼šÂ±20 dB (5 Hz - 100 Hz)(与ä¸é¢‘范围相比)。 + </p> + </li> + <li> + <p> +[C-1-4] 对于æ¯ä¸ªç”¨äºŽå¯¹æœªå¤„ç†éŸ³é¢‘æºè¿›è¡Œå½•éŸ³çš„麦克风,在高频范围内必须表现出适当的振幅ç‰çº§ï¼Œå…·ä½“æ¥è¯´å°±æ˜¯ï¼šÂ±30 dB (7000 Hz - 22 KHz)(与ä¸é¢‘范围相比)。 + </p> + </li> + <li> + <p> +[C-1-5] 对于æ¯ä¸ªç”¨äºŽå¯¹æœªå¤„ç†éŸ³é¢‘æºè¿›è¡Œå½•éŸ³çš„麦克风,都必须设置适当的音频输入æ•æ„Ÿåº¦ï¼Œä»¥ç¡®ä¿å¯¹äºŽ 16 ä½çš„æ ·æœ¬ï¼Œä»¥ 94 dB 声压级 (SPL) æ’放的 1000 Hz æ£å¼¦éŸ³è°ƒæºä¼šäº§ç”Ÿ RMS 为 520 çš„å“应(或对于浮点/åŒç²¾åº¦æ ·æœ¬ï¼Œåˆ™ä¸º -36 dB å…¨æ ‡åº¦ï¼‰ã€‚ + </p> + </li> + <li> + <p> +[C-1-6] 对于æ¯ä¸ªç”¨äºŽå¯¹æœªå¤„ç†éŸ³é¢‘æºè¿›è¡Œå½•éŸ³çš„麦克风,信噪比 (SNR) 都ä¸å¾—低于 60 dB(SNR 是按照 94 dB SPL å’Œç‰æ•ˆ SPL 自噪声之间的差异进行衡é‡ï¼ŒA åŠ æƒï¼‰ã€‚ + </p> + </li> + <li> + <p> +[C-1-7] 对于æ¯ä¸ªç”¨äºŽå¯¹æœªå¤„ç†éŸ³é¢‘æºè¿›è¡Œå½•éŸ³çš„麦克风,在频率为 1 kHZã€è¾“入声压级为 90 dB SPL 时,总è°æ³¢ç•¸å˜çŽ‡éƒ½å¿…é¡»å°äºŽ 1%。 + </p> + </li> + <li> + <p> +除了用于将声压级æå‡åˆ°æ‰€éœ€èŒƒå›´çš„声压级å€å¢žå™¨ä¹‹å¤–,路径ä¸ä¸å¾—有任何其他信å·å¤„ç†æœºåˆ¶ï¼ˆä¾‹å¦‚自动增益控制ã€é«˜é€šæ»¤æ³¢å™¨ï¼Œæˆ–回声消除)。也就是说: + </p> + </li> + <li>[C-1-8] æ— è®ºæž¶æž„ä¸å‡ºäºŽä»»ä½•åŽŸå› 而å˜åœ¨ä¿¡å·å¤„ç†æœºåˆ¶ï¼Œæ¤ç±»æœºåˆ¶éƒ½å¿…须处于åœç”¨çŠ¶æ€ï¼Œå¹¶èƒ½å¤Ÿæœ‰æ•ˆé¿å…在信å·è·¯å¾„ä¸å¼•å…¥ä»»ä½•å»¶è¿Ÿã€‚ + </li> + <li>[C-1-9] 虽然路径ä¸å…许å˜åœ¨å£°åŽ‹çº§å€å¢žå™¨ï¼Œä½†è¯¥å€å¢žå™¨ä¸å¾—在信å·è·¯å¾„ä¸å¼•å…¥å»¶è¿Ÿã€‚ + </li> + </ul> + <p> +所有 SPL 测é‡éƒ½æ˜¯ç›´æŽ¥åœ¨æŽ¥å—测试的麦克风æ—进行。对于多麦克风é…置,这些è¦æ±‚适用于æ¯ä¸ªéº¦å…‹é£Žã€‚ + </p> + <p> +如果设备实现声明了 <code>android.hardware.microphone</code>,但ä¸æ”¯æŒæœªå¤„ç†éŸ³é¢‘æºï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须针对 <code>AudioManager.getProperty(PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED)</code> API 方法返回 <code>null</code>,以适当指明ä¸æ”¯æŒæœªå¤„ç†éŸ³é¢‘æºã€‚ + </li> + <li>[SR] ä»å¼ºçƒˆå»ºè®®å°½å¯èƒ½å¤šåœ°æ»¡è¶³æœªå¤„ç†å½•éŸ³æ¥æºä¿¡å·è·¯å¾„æ–¹é¢çš„è¦æ±‚。 + </li> + </ul> + <h2 id="6_developer_tools_and_options_compatibility"> +6. å¼€å‘者工具和选项兼容性 + </h2> + <h3 id="6_1_developer_tools"> +6.1. å¼€å‘者工具 + </h3> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»æ”¯æŒ Android SDK ä¸æ供的 Android å¼€å‘者工具。 + </li> + <li> + <p> + <a href="http://developer.android.com/tools/help/adb.html"><strong>Android 调试桥 (adb)</strong></a> + </p> + <ul> + <li>[C-0-2] å¿…é¡»æ”¯æŒ adb(如 Android SDK ä¸æ‰€è¿°ï¼‰å’Œ AOSP ä¸æ供的 shell 命令(å¯ä¾›åº”用开å‘者使用,包括 <a href="https://source.android.com/devices/input/diagnostics.html"><code>dumpsys</code></a> å’Œ <code>cmd stats</code>)。 + </li> + <li>[C-0-3] ä¸å¾—更改通过 dumpsys 命令记录的设备系统事件(batterystatsã€diskstatsã€fingerprintã€graphicsstatsã€netstatsã€notificationã€procstatsï¼‰çš„æ ¼å¼æˆ–内容。 + </li> + <li>[C-0-10] 记录时ä¸å¾—有任何é—æ¼ï¼Œå¹¶ä½¿ä»¥ä¸‹äº‹ä»¶å¯ä¾› <code>cmd stats</code> shell 命令和 <code>StatsManager</code> 系统 API 类访问和使用。 + <ul> + <li>ActivityForegroundStateChanged + </li> + <li>AnomalyDetected + </li> + <li>AppBreadcrumbReported + </li> + <li>AppCrashOccurred + </li> + <li>AppStartOccurred + </li> + <li>BatteryLevelChanged + </li> + <li>BatterySaverModeStateChanged + </li> + <li>BleScanResultReceived + </li> + <li>BleScanStateChanged + </li> + <li>ChargingStateChanged + </li> + <li>DeviceIdleModeStateChanged + </li> + <li>ForegroundServiceStateChanged + </li> + <li>GpsScanStateChanged + </li> + <li>JobStateChanged + </li> + <li>PluggedStateChanged + </li> + <li>ScheduledJobStateChanged + </li> + <li>ScreenStateChanged + </li> + <li>SyncStateChanged + </li> + <li>SystemElapsedRealtime + </li> + <li>UidProcessStateChanged + </li> + <li>WakelockStateChanged + </li> + <li>WakeupAlarmOccurred + </li> + <li>WifiLockStateChanged + </li> + <li>WifiMulticastLockStateChanged + </li> + <li>WifiScanStateChanged + </li> + </ul> + </li> + <li>[C-0-4] 必须使设备侧 adb 守护进程默认处于åœç”¨çŠ¶æ€ï¼Œå¹¶æœ‰ä¸€ä¸ªå¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„ Android 调试桥开å¯æœºåˆ¶ã€‚ + </li> + <li>[C-0-5] 必须支æŒå®‰å…¨ adb。Android 支æŒå®‰å…¨ adb。安全 adb 能够在ç»è¿‡èº«ä»½éªŒè¯çš„已知主机上å¯ç”¨ adb。 + </li> + <li> + <p> +[C-0-6] å¿…é¡»æä¾›å¯ä»Žä¸»æœºè¿žæŽ¥ adb 的机制。例如: + </p> + <ul> + <li>如果设备实现没有支æŒå¤–围设备模å¼çš„ USB 端å£ï¼Œåˆ™å¿…须通过局域网(例如以太网或 WLAN)实现 adb。 + </li> + <li>å¿…é¡»æ供适用于 Windows 7ã€9 å’Œ 10 的驱动程åºï¼Œä»¥ä¾¿å¼€å‘者使用 adb å议连接到设备。 + </li> + </ul> + </li> + </ul> + </li> + <li> + <p> + <a href="http://developer.android.com/tools/debugging/ddms.html"><strong>Dalvik 调试监控æœåŠ¡ (ddms)</strong></a> + </p> + <ul> + <li>[C-0-7] å¿…é¡»æ”¯æŒ Android SDK ä¸è½½è¿°çš„所有 ddms 功能。由于 ddms 会使用 adbï¼Œå› æ¤è™½ç„¶å¯¹ ddms 的支æŒåº”默认处于åœç”¨çŠ¶æ€ï¼Œä½†å¦‚果用户å¯ç”¨äº† Android è°ƒè¯•æ¡¥ï¼Œåˆ™å¿…é¡»æ”¯æŒ ddms,如上所述。 + </li> + </ul> + </li> + <li> + <a href="http://developer.android.com/tools/help/monkey.html"><strong>Monkey</strong></a> + <ul> + <li>[C-0-8] å¿…é¡»åŒ…å« Monkey 框架,并使其å¯ä¾›åº”用使用。 + </li> + </ul> + </li> + <li> + <a href="http://developer.android.com/tools/help/systrace.html"><strong>Systrace</strong></a> + <ul> + <li>[C-0-9] å¿…é¡»æ”¯æŒ Android SDK ä¸è½½è¿°çš„ Systrace 工具。Systrace 必须默认处于åœç”¨çŠ¶æ€ï¼Œå¹¶æœ‰ä¸€ä¸ªå¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„ Systrace å¼€å¯æœºåˆ¶ã€‚ + </li> + </ul> + </li> + </ul> + <p> +如果设备实现通过 <code>android.hardware.vulkan.version</code> åŠŸèƒ½æ ‡è®°æŠ¥å‘Šæ”¯æŒ Vulkan 1.0 或更高版本,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©åº”用开å‘者能够å¯ç”¨/åœç”¨ GPU 调试层。 + </li> + <li>[C-1-2] 必须在å¯ç”¨ GPU 调试层时,在å¯è°ƒè¯•åº”用的基本目录下的外部工具(并éžå¹³å°æˆ–应用包的组æˆéƒ¨åˆ†ï¼‰æ供的库ä¸åˆ—ä¸¾å±‚ï¼Œä»¥æ”¯æŒ <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceLayerProperties.html">vkEnumerateInstanceLayerProperties()</a> å’Œ <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateInstance.html">vkCreateInstance()</a> API 方法。 + </li> + </ul> + <h3 id="6_2_developer_options"> +6.2. å¼€å‘者选项 + </h3> + <p> +Android 支æŒå¼€å‘者é…置与应用开å‘相关的设置。 + </p> + <p> +设备实现必须æ供一致的开å‘者选项体验,它们: + </p> + <ul> + <li>[C-0-1] 必须能够éµä»Ž <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">android.settings.APPLICATION_DEVELOPMENT_SETTINGS</a> Intent 显示与应用开å‘相关的设置。上游 Android 实现会默认éšè—“开å‘者选项â€èœå•ï¼Œå¹¶å…许用户å¯åŠ¨è¯¥èœå•ï¼ˆæ–¹æ³•æ˜¯åœ¨<strong>设置</strong> > <strong>关于设备</strong> > <strong>版本å·</strong>èœå•é¡¹ä¸Šè¿žæŒ‰ä¸ƒ (7) 次)。 + </li> + <li>[C-0-2] 必须默认éšè—“开å‘者选项â€ã€‚ + </li> + <li>[C-0-3] å¿…é¡»æ供一ç§æ˜Žç¡®çš„机制,在å¯ç”¨â€œå¼€å‘者选项â€æ–¹é¢æŸä¸ªç¬¬ä¸‰æ–¹åº”用的优先级ä¸ä¼šé«˜äºŽå¦ä¸€ä¸ªç¬¬ä¸‰æ–¹åº”用。必须æä¾›æ述如何å¯ç”¨â€œå¼€å‘者选项â€çš„公开文档或网站。必须å¯ä»Ž Android SDK 文档链接到该文档或网站。 + </li> + <li>应在å¯ç”¨â€œå¼€å‘者选项â€ä¸”需è¦è€ƒè™‘用户安全的情况下,å‘用户显示一直å¯è§çš„通知。 + </li> + <li>对于需è¦è€ƒè™‘用户安全的情况,å¯ä»¥æš‚æ—¶é™åˆ¶è®¿é—®â€œå¼€å‘者选项â€èœå•ï¼ˆæ–¹æ³•æ˜¯åœ¨è§†è§‰ä¸Šéšè—或åœç”¨è¯¥èœå•ï¼‰ï¼Œä»¥é¿å…分散注æ„力。 + </li> + </ul> + <h2 id="7_hardware_compatibility"> +7. 硬件兼容性 + </h2> + <p> +如果设备包å«çš„æŸä¸ªç¡¬ä»¶ç»„件具有针对第三方开å‘者的对应 API,则: + </p> + <ul> + <li>[C-0-1] 设备实现必须按照 Android SDK 文档ä¸æ‰€è¿°å®žçŽ°è¯¥ API。 + </li> + </ul> + <p> +如果 SDK ä¸çš„æŸä¸ª API 需è¦ä¸ŽæŸä¸ªè¢«è§„定为å¯é€‰ç»„件的硬件组件交互,但设备实现ä¸å…·å¤‡è¯¥ç»„件,则: + </p> + <ul> + <li>[C-0-2] ä»å¿…é¡»æ供该组件 API 的完整类定义(如 SDK ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-0-3] 必须以æŸç§åˆç†çš„æ–¹å¼å°†è¯¥ API 的行为实现为空æ“作。 + </li> + <li>[C-0-4] 在 SDK 文档å…许的情况下,该 API 的方法必须返回 null 值。 + </li> + <li>[C-0-5] 在 SDK 文档ä¸å…许 null 值的情况下,该 API 的方法必须返回相应类的空æ“作实现。 + </li> + <li>[C-0-6] 该 API 的方法ä¸å¾—抛出 SDK 文档ä¸æœªè½½è¿°çš„异常。 + </li> + <li>[C-0-7] 对于相åŒçš„细分版本指纹,设备实现必须能够始终如一地通过 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a> ç±»ä¸çš„ <code>getSystemAvailableFeatures()</code> å’Œ <code>hasSystemFeature(String)</code> 方法报告准确的硬件é…置信æ¯ã€‚ + </li> + </ul> + <p> +这些è¦æ±‚çš„ä¸€ä¸ªå…¸åž‹é€‚ç”¨æƒ…å†µç¤ºä¾‹å°±æ˜¯ç”µè¯ API:å³ä½¿åœ¨éžæ‰‹æœºè®¾å¤‡ä¸Šï¼Œè¿™äº› API 也必须实现为åˆç†çš„空æ“作。 + </p> + <h3 id="7_1_display_and_graphics"> +7.1. 显示和图形 + </h3> + <p> +Android 包å«ä¸€äº›èƒ½å¤Ÿé€‚当地为设备自动调整应用资产和界é¢å¸ƒå±€çš„æ–¹å¼ï¼Œä»¥ç¡®ä¿ç¬¬ä¸‰æ–¹åº”用能够在<a href="http://developer.android.com/guide/practices/screens_support.html">å„ç§ç¡¬ä»¶é…ç½®</a>上良好地è¿è¡Œã€‚设备必须æ£ç¡®å®žçŽ°æœ¬èŠ‚ä¸è¯¦ç»†è¯´æ˜Žçš„这些 API 和行为。 + </p> + <p> +本节的è¦æ±‚ä¸æ到的å•ä½å®šä¹‰å¦‚下: + </p> + <ul> + <li> + <strong>物ç†å¯¹è§’线尺寸</strong>:显示å±äº®æ˜¾éƒ¨åˆ†çš„两个对角之间的è·ç¦»ï¼ˆä»¥è‹±å¯¸ä¸ºå•ä½ï¼‰ã€‚ + </li> + <li> + <strong>æ¯è‹±å¯¸çš„点数 (dpi)</strong>:1 英寸的线性水平或垂直跨度内包å«çš„åƒç´ 数。如果列出了 dpi 值,则水平 dpi 和垂直 dpi 都必须在该范围内。 + </li> + <li> + <strong>宽高比</strong>:å±å¹•çš„长度åƒç´ 与宽度åƒç´ 之比。例如,480x854 åƒç´ 的显示å±çš„宽高比是 854/480 = 1.779,或约为“16:9â€ã€‚ + </li> + <li> + <strong>å¯†åº¦æ— å…³åƒç´ (dp)</strong>:按 160 dpi å±å¹•æ ‡å‡†åŒ–的虚拟åƒç´ å•ä½ï¼Œè®¡ç®—å…¬å¼å¦‚下:åƒç´ = dps *(密度/160)。 + </li> + </ul> + <h4 id="7_1_1_screen_configuration"> +7.1.1. å±å¹•é…ç½® + </h4> + <h5 id="7_1_1_1_screen_size_and_shape"> +7.1.1.1. å±å¹•å°ºå¯¸å’Œå½¢çŠ¶ + </h5> + <p> +Android ç•Œé¢æ¡†æž¶æ”¯æŒå¤šç§ä¸åŒçš„逻辑å±å¹•å¸ƒå±€å°ºå¯¸ï¼Œå¹¶ä¸”å…许应用通过 <code>Configuration.screenLayout</code>(使用 <code>SCREENLAYOUT_SIZE_MASK</code> å’Œ <code>Configuration.smallestScreenWidthDp</code> å‚数)查询当å‰é…置的å±å¹•å¸ƒå±€å°ºå¯¸ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须针对 <code>Configuration.screenLayout</code> 报告æ£ç¡®çš„布局尺寸(如 Android SDK 文档ä¸æ‰€å®šä¹‰ï¼‰ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œè®¾å¤‡å®žçŽ°å¿…须报告æ£ç¡®çš„å¯†åº¦æ— å…³åƒç´ (dp) 逻辑å±å¹•å°ºå¯¸ï¼Œå¦‚下所述: + </p> + <ul> + <li>如果设备的 <code>Configuration.uiMode</code> 设为除 UI_MODE_TYPE_WATCH 以外的任何值,并且针对 <code>Configuration.screenLayout</code> 报告的是 <code>small</code> 尺寸,则该å±å¹•å°ºå¯¸å¿…须至少为 426 dp x 320 dp。 + </li> + <li>如果设备针对 <code>Configuration.screenLayout</code> 报告的是 <code>normal</code> 尺寸,则该å±å¹•å°ºå¯¸å¿…须至少为 480 dp x 320 dp。 + </li> + <li>如果设备针对 <code>Configuration.screenLayout</code> 报告的是 <code>large</code> 尺寸,则该å±å¹•å°ºå¯¸å¿…须至少为 640 dp x 480 dp。 + </li> + <li>如果设备针对 <code>Configuration.screenLayout</code> 报告的是 <code>xlarge</code> 尺寸,则该å±å¹•å°ºå¯¸å¿…须至少为 960 dp x 720 dp。 + </li> + </ul> + </li> + <li> + <p> +[C-0-2] å¿…é¡»æ£ç¡®éµä»Žåº”用通过 AndroidManifest.xml ä¸çš„ <a href="https://developer.android.com/guide/topics/manifest/supports-screens-element.html"><<code>supports-screens</code>></a> 属性声明的对å±å¹•å°ºå¯¸çš„支æŒæƒ…况(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </p> + </li> + <li> + <p> +å¯ä»¥å…·æœ‰åœ†è§’显示å±ã€‚ + </p> + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ <code>UI_MODE_TYPE_NORMAL</code> 且包å«åœ†è§’显示å±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须确ä¿åœ†è§’çš„åŠå¾„å°äºŽæˆ–ç‰äºŽ 32 dp。 + </li> + <li>应æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿåˆ‡æ¢ä¸ºçŸ©å½¢è§’显示模å¼ã€‚ + </li> + </ul> + <h5 id="7_1_1_2_screen_aspect_ratio"> +7.1.1.2. å±å¹•å®½é«˜æ¯” + </h5> + <p> +虽然对实体显示å±çš„å±å¹•å®½é«˜æ¯”没有任何é™åˆ¶ï¼Œä½†ç”¨äºŽå‘ˆçŽ°ç¬¬ä¸‰æ–¹åº”用的逻辑显示å±çš„å±å¹•å®½é«˜æ¯”(å¯ä»¥æ ¹æ®é€šè¿‡ <a href="https://developer.android.com/reference/android/view/Display.html"><code>view.Display</code></a> API å’Œ <a href="https://developer.android.com/reference/android/content/res/Configuration.html">Configuration</a> API 报告的高度值和宽度值推导出æ¥ï¼‰å¿…须满足以下è¦æ±‚: + </p> + <ul> + <li> + <p> +[C-0-1] 如果设备实现的 <code>Configuration.uiMode</code> 设为 <code>UI_MODE_TYPE_NORMAL</code>,则宽高比必须介于 1.3333 (4:3) 到 1.86(约为 16:9)之间,除éžåº”用满足下列æŸä¸ªæ¡ä»¶ï¼Œå¯è¢«è§†ä¸ºèƒ½å¤Ÿæ‹‰ä¼¸ï¼š + </p> + <ul> + <li>应用已通过 <a href="https://developer.android.com/guide/practices/screens&lowbar;support.html#MaxAspectRatio"><code>android.max_aspect</code></a> 元数æ®å€¼å£°æ˜Žæ”¯æŒæ›´å¤§çš„å±å¹•å®½é«˜æ¯”。 + </li> + <li>应用通过 <a href="https://developer.android.com/guide/topics/ui/multi-window.html#configuring">android:resizeableActivity</a> 属性声明其大å°å¯ä»¥è°ƒæ•´ã€‚ + </li> + <li>应用采用 API 24 级或更高级别,并且未声明会对å…è®¸çš„å®½é«˜æ¯”é€ æˆé™åˆ¶çš„ <a href="https://developer.android.com/reference/android/R.attr.html#maxAspectRatio"><code>android:MaxAspectRatio</code></a>。 + </li> + </ul> + </li> + <li> + <p> +[C-0-2] 如果设备实现的 <code>Configuration.uiMode</code> 设为 <code>UI_MODE_TYPE_WATCH</code>,则宽高比必须设为 1.0 (1:1)。 + </p> + </li> + </ul> + <h5 id="7_1_1_3_screen_density"> +7.1.1.3. å±å¹•å¯†åº¦ + </h5> + <p> +Android ç•Œé¢æ¡†æž¶å®šä¹‰äº†ä¸€ç»„æ ‡å‡†é€»è¾‘å¯†åº¦ï¼Œä»¥ä¾¿åº”ç”¨å¼€å‘者确定è¦é‡‡ç”¨çš„应用资æºã€‚ + </p> + <ul> + <li> + <p> +[C-0-1] 默认情况下,设备实现必须通过 <a href="https://developer.android.com/reference/android/util/DisplayMetrics.html#DENSITY_DEVICE_STABLE">DENSITY_DEVICE_STABLE</a> API 仅报告以下逻辑 Android 框架密度之一,并且在任何时间该值都必须ä¿æŒä¸å˜ï¼›ä¸è¿‡ï¼Œè®¾å¤‡å¯ä»¥æ ¹æ®åˆå§‹å¯åŠ¨åŽç”¨æˆ·å¯¹æ˜¾ç¤ºé…置(例如显示区域大å°ï¼‰æ‰€åšçš„更改报告ä¸åŒçš„ä»»æ„密度。 + </p> + <ul> + <li>120 dpi (ldpi) + </li> + <li>160 dpi (mdpi) + </li> + <li>213 dpi (tvdpi) + </li> + <li>240 dpi (hdpi) + </li> + <li>260 dpi (260dpi) + </li> + <li>280 dpi (280dpi) + </li> + <li>300 dpi (300dpi) + </li> + <li>320 dpi (xhdpi) + </li> + <li>340 dpi (340dpi) + </li> + <li>360 dpi (360dpi) + </li> + <li>400 dpi (400dpi) + </li> + <li>420 dpi (420dpi) + </li> + <li>480 dpi (xxhdpi) + </li> + <li>560 dpi (560dpi) + </li> + <li>640 dpi (xxxhdpi) + </li> + </ul> + </li> + <li> + <p> +设备实现应定义数值最接近å±å¹•ç‰©ç†å¯†åº¦çš„æ ‡å‡† Android 框架密度,除éžè¯¥é€»è¾‘密度会导致报告的å±å¹•å°ºå¯¸ä½ŽäºŽæ”¯æŒçš„最å°å€¼ã€‚如果数值最接近物ç†å¯†åº¦çš„æ ‡å‡† Android 框架密度会导致å±å¹•å°ºå¯¸å°äºŽæ”¯æŒçš„最å°å…¼å®¹å±å¹•å°ºå¯¸ï¼ˆå®½åº¦ä¸º 320 dpï¼‰ï¼Œåˆ™è®¾å¤‡å®žçŽ°åº”æŠ¥å‘Šä¸‹ä¸€ä¸ªæœ€ä½Žçš„æ ‡å‡† Android 框架密度。 + </p> + </li> + </ul> + <p> +如果有用于更改设备显示区域大å°çš„æ–¹å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] ä¸å¾—将显示区域大å°è°ƒæ•´ä¸ºä»»ä½•è¶…过本机密度 1.5 å€çš„尺寸,也ä¸å¾—产生å°äºŽ 320 dp(相当于资æºé™å®šå°ºå¯¸ä¸º sw320dp)的有效最å°å±å¹•å°ºå¯¸ï¼Œä»¥å…ˆè¾¾åˆ°è€…为准。 + </li> + <li>[C-1-2] ä¸å¾—将显示区域大å°è°ƒæ•´ä¸ºå°äºŽæœ¬æœºå¯†åº¦ 0.85 å€çš„尺寸。 + </li> + <li>为了确ä¿è‰¯å¥½çš„å¯ç”¨æ€§å’Œä¸€è‡´çš„å—体大å°ï¼Œå»ºè®®æ供以下本机显示缩放比例选项(åŒæ—¶éµå®ˆä¸Šè¿°é™åˆ¶ï¼‰ + </li> + <li>å°ï¼š0.85 å€ + </li> + <li>默认值:1 å€ï¼ˆæœ¬æœºæ˜¾ç¤ºæ¯”例) + </li> + <li>大:1.15 å€ + </li> + <li>较大:1.3 å€ + </li> + <li>最大:1.45 å€ + </li> + </ul> + <h4 id="7_1_2_display_metrics"> +7.1.2. æ˜¾ç¤ºæŒ‡æ ‡ + </h4> + <p> +如果设备实现包å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>[C-1-1] 必须为 <a href="https://developer.android.com/reference/android/util/DisplayMetrics.html"><code>android.util.DisplayMetrics</code></a> API ä¸å®šä¹‰çš„æ‰€æœ‰æ˜¾ç¤ºæŒ‡æ ‡æŠ¥å‘Šæ£ç¡®çš„值。 + </li> + </ul> + <p> +如果设备实现ä¸åŒ…å«åµŒå…¥å¼å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>[C-2-1] 必须为 <a href="https://developer.android.com/reference/android/util/DisplayMetrics.html"><code>android.util.DisplayMetrics</code></a> API ä¸é’ˆå¯¹æ¨¡æ‹Ÿçš„默认 <code>view.Display</code> å®šä¹‰çš„æ‰€æœ‰æ˜¾ç¤ºæŒ‡æ ‡æŠ¥å‘Šåˆç†çš„值。 + </li> + </ul> + <h4 id="7_1_3_screen_orientation"> +7.1.3. å±å¹•æ–¹å‘ + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须报告支æŒçš„å±å¹•æ–¹å‘(<code>android.hardware.screen.portrait</code> å’Œ/或 <code>android.hardware.screen.landscape</code>),并且必须报告至少一个支æŒçš„æ–¹å‘。例如,å±å¹•å›ºå®šä¸ºæ¨ªå‘的设备(例如电视或笔记本电脑)应仅报告 <code>android.hardware.screen.landscape</code>。 + </li> + <li>[C-0-2] æ¯å½“收到通过 <code>android.content.res.Configuration.orientation</code>ã€<code>android.view.Display.getOrientation()</code> 或其他 API æ交的查询时,设备实现都必须报告设备当å‰æ–¹å‘çš„æ£ç¡®å€¼ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒä¸¤ç§å±å¹•æ–¹å‘,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒæŒ‰åº”用动æ€è®¾ç½®å±å¹•æ–¹å‘(纵å‘或横å‘)。也就是说,设备必须éµä»Žåº”用对特定å±å¹•æ–¹å‘çš„è¦æ±‚。 + </li> + <li>[C-1-2] 更改方å‘时,ä¸å¾—更改报告的å±å¹•å°ºå¯¸æˆ–密度。 + </li> + <li>å¯ä»¥é€‰æ‹©çºµå‘或横å‘作为默认方å‘。 + </li> + </ul> + <h4 id="7_1_4_2d_and_3d_graphics_acceleration"> +7.1.4. 2D å’Œ 3D å›¾å½¢åŠ é€Ÿ + </h4> + <h5 id="7_1_4_1_opengl_es"> +7.1.4.1 OpenGL ES + </h5> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须通过å—ç®¡ç† API(例如通过 <code>GLES10.getString()</code> 方法)和本机 API æ£ç¡®æ ‡è¯†æ”¯æŒçš„ OpenGL ES 版本(1.1ã€2.0ã€3.0ã€3.1ã€3.2)。 + </li> + <li>[C-0-2] å¯¹äºŽæ ‡è¯†ä¸ºæ”¯æŒçš„æ¯ä¸ª OpenGL ES 版本,必须支æŒæ‰€æœ‰å¯¹åº”çš„å—ç®¡ç† API 和本机 API。 + </li> + </ul> + <p> +如果设备实现包å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»åŒæ—¶æ”¯æŒ OpenGL ES 1.1 å’Œ 2.0,<a href="https://developer.android.com/guide/topics/graphics/opengl.html">Android SDK 文档</a>对æ¤è¿›è¡Œäº†è¯¦ç»†é˜è¿°ã€‚ + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ OpenGL ES 3.1。 + </li> + <li>åº”æ”¯æŒ OpenGL ES 3.2。 + </li> + </ul> + <p> +如果设备实现支æŒä»»ä½• OpenGL ES 版本,则: + </p> + <ul> + <li>[C-2-1] 必须通过 OpenGL ES å—ç®¡ç† API 和本机 API 报告已实现的所有其他 OpenGL ES 扩展;å过æ¥è¯´å°±æ˜¯ï¼Œä¸å¾—报告ä¸æ”¯æŒçš„扩展å—符串。 + </li> + <li>[C-2-2] å¿…é¡»æ”¯æŒ <code>EGL_KHR_image</code>ã€<code>EGL_KHR_image_base</code>ã€<code>EGL_ANDROID_image_native_buffer</code>ã€<code>EGL_ANDROID_get_native_client_buffer</code>ã€<code>EGL_KHR_wait_sync</code>ã€<code>EGL_KHR_get_all_proc_addresses</code>ã€<code>EGL_ANDROID_presentation_time</code>ã€<code>EGL_KHR_swap_buffers_with_damage</code> ä»¥åŠ <code>EGL_ANDROID_recordable</code> 扩展。 + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ EGL_KHR_partial_update。 + </li> + <li>应通过 <code>getString()</code> 方法准确报告支æŒçš„所有纹ç†åŽ‹ç¼©æ ¼å¼ï¼Œè¿™äº›æ ¼å¼é€šå¸¸æ˜¯é’ˆå¯¹ç‰¹å®šä¾›åº”商的。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ OpenGL ES 3.0ã€3.1 或 3.2,则: + </p> + <ul> + <li>[C-3-1] 除了导出 libGLESv2.so 库ä¸çš„ OpenGL ES 2.0 函数符å·ä¹‹å¤–,还必须导出这些版本的对应函数符å·ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ OpenGL ES 3.2,则: + </p> + <ul> + <li>[C-4-1] 必须支æŒæ•´ä¸ª OpenGL ES Android Extension Pack。 + </li> + </ul> + <p> +如果设备实现支æŒæ•´ä¸ª OpenGL ES <a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">Android Extension Pack</a>,则: + </p> + <ul> + <li>[C-5-1] 必须通过 <code>android.hardware.opengles.aep</code> åŠŸèƒ½æ ‡è®°æ ‡è¯†æ¤é¡¹æ”¯æŒã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°é€šå‘Šäº†æ”¯æŒ <code>EGL_KHR_mutable_render_buffer</code> 扩展,则: + </p> + <ul> + <li>[C-6-1] 必须还è¦æ”¯æŒ <code>EGL_ANDROID_front_buffer_auto_refresh</code> 扩展。 + </li> + </ul> + <h5 id="7_1_4_2_vulkan"> +7.1.4.2 Vulkan + </h5> + <p> +Android æ”¯æŒ <a href="https://www.khronos.org/registry/vulkan/specs/1.0-wsi&lowbarextensions/xhtml/vkspec.html">Vulkan</a>。Vulkan 是一个适用于高性能 3D 图形的低开销ã€è·¨å¹³å° API。 + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ OpenGL ES 3.1,则: + </p> + <ul> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ Vulkan 1.1。 + </li> + </ul> + <p> +如果设备实现包å«å±å¹•æˆ–视频输出机制,则: + </p> + <ul> + <li>åº”æ”¯æŒ Vulkan 1.1。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ Vulkan 1.0,则: + </p> + <ul> + <li>[C-1-1] 必须通过 <code>android.hardware.vulkan.level</code> å’Œ <code>android.hardware.vulkan.version</code> åŠŸèƒ½æ ‡è®°æŠ¥å‘Šæ£ç¡®çš„整数值。 + </li> + <li>[C-1-2] 必须针对 Vulkan 本机 API <a href="https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumeratePhysicalDevices.html"><code>vkEnumeratePhysicalDevices()</code></a> 列举至少一个 <code>VkPhysicalDevice</code>。 + </li> + <li>[C-1-3] 必须针对列举的æ¯ä¸ª <code>VkPhysicalDevice</code> 完整实现 Vulkan 1.0 API。 + </li> + <li>[C-1-4] 必须通过 Vulkan 本机 API <a href="https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateInstanceLayerProperties.html"><code>vkEnumerateInstanceLayerProperties()</code></a> å’Œ <a href="https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateDeviceLayerProperties.html"><code>vkEnumerateDeviceLayerProperties()</code></a> 列举å为 <code>libVkLayer*.so</code> 的本机库(ä½äºŽåº”用包的本机库目录下)ä¸åŒ…å«çš„层。 + </li> + <li>[C-1-5] ä¸å¾—列举应用包外的库æ供的层,也ä¸å¾—æ供其他方å¼æ¥è·Ÿè¸ªæˆ–拦截 Vulkan API,除éžåº”用的 <code>android:debuggable</code> 属性设为了 <code>true</code>。 + </li> + <li>[C-1-6] 必须通过 Vulkan 本机 API 报告支æŒçš„所有扩展å—符串;å过æ¥è¯´å°±æ˜¯ï¼Œä¸å¾—æŠ¥å‘Šæ— æ³•æ£ç¡®æ”¯æŒçš„扩展å—符串。 + </li> + <li>[C-1-7] å¿…é¡»æ”¯æŒ VK_KHR_surfaceã€VK_KHR_android_surfaceã€VK_KHR_swapchain å’Œ VK_KHR_incremental_present 扩展。 + </li> + </ul> + <p> +如果设备实现ä¸æ”¯æŒ Vulkan 1.0,则: + </p> + <ul> + <li>[C-2-1] ä¸å¾—声明任何 Vulkan åŠŸèƒ½æ ‡è®°ï¼ˆä¾‹å¦‚ <code>android.hardware.vulkan.level</code>ã€<code>android.hardware.vulkan.version</code>)。 + </li> + <li>[C-2-2] ä¸å¾—针对 Vulkan 本机 API <code>vkEnumeratePhysicalDevices()</code> 列举任何 <code>VkPhysicalDevice</code>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ Vulkan 1.1,则: + </p> + <ul> + <li>[C-3-1] 必须公开对 <code>SYNC_FD</code> 外部信å·é‡å’Œå¥æŸ„类型的支æŒã€‚ + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ <code>VK_ANDROID_external_memory_android_hardware_buffer</code> 扩展。 + </li> + </ul> + <h5 id="7_1_4_3_renderscript"> +7.1.4.3 RenderScript + </h5> + <ul> + <li>[C-0-1] è®¾å¤‡å®žçŽ°å¿…é¡»æ”¯æŒ <a href="http://developer.android.com/guide/topics/renderscript/">Android RenderScript</a>(Android SDK 文档ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ã€‚ + </li> + </ul> + <h5 id="7_1_4_4_2d_graphics_acceleration"> +7.1.4.4 2D å›¾å½¢åŠ é€Ÿ + </h5> + <p> +Android 包å«ä¸€ç§æœºåˆ¶ï¼Œå¯è®©åº”用使用清å•æ ‡è®° <a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">android:hardwareAccelerated</a> 或直接 API 调用声明希望在应用ã€Activityã€çª—å£æˆ–视图级别å¯ç”¨ 2D å›¾å½¢ç¡¬ä»¶åŠ é€Ÿã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须默认å¯ç”¨ç¡¬ä»¶åŠ 速;如果开å‘者通过以下方å¼è¯·æ±‚åœç”¨ç¡¬ä»¶åŠ 速,设备实现必须将其åœç”¨ï¼šè®¾ç½® android:hardwareAccelerated="falseâ€ï¼Œæˆ–直接通过 Android View API åœç”¨ç¡¬ä»¶åŠ 速。 + </li> + <li>[C-0-2] 表现出的行为必须与 Android SDK 文档ä¸å…³äºŽ<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">ç¡¬ä»¶åŠ é€Ÿ</a>的说明一致。 + </li> + </ul> + <p> +Android 包å«ä¸€ä¸ª TextureView 对象,å¯è®©å¼€å‘者直接将ç»è¿‡ç¡¬ä»¶åŠ 速的 OpenGL ES 纹ç†ä½œä¸ºå‘ˆçŽ°ç›®æ ‡é›†æˆåˆ°ç•Œé¢å±‚次结构ä¸ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-3] å¿…é¡»æ”¯æŒ TextureView API,并且表现出的行为必须与上游 Android 实现一致。 + </li> + </ul> + <h5 id="7_1_4_5_wide-gamut_displays"> +7.1.4.5 宽色域显示 + </h5> + <p> +如果设备实现通过 <a href="https://developer.android.com/reference/android/content/res/Configuration.html#isScreenWideColorGamut%28%29"><code>Configuration.isScreenWideColorGamut()</code></a> 声明支æŒå®½è‰²åŸŸæ˜¾ç¤ºå±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须有颜色ç»è¿‡æ ¡å‡†çš„显示å±ã€‚ + </li> + <li>[C-1-2] 必须有色域完整涵盖 CIE 1931 xyY 空间内 sRGB 色域的显示å±ã€‚ + </li> + <li>[C-1-3] 必须有色域至少涵盖 CIE 1931 xyY 空间内 90% DCI-P3 色域的显示å±ã€‚ + </li> + <li>[C-1-4] å¿…é¡»æ”¯æŒ OpenGL ES 3.1 或 3.2,并æ£ç¡®æŠ¥å‘Šæ¤é¡¹æ”¯æŒã€‚ + </li> + <li>[C-1-5] å¿…é¡»é€šå‘Šæ”¯æŒ <code>EGL_KHR_no_config_context</code>ã€<code>EGL_EXT_pixel_format_float</code>ã€<code>EGL_KHR_gl_colorspace</code>ã€<code>EGL_EXT_gl_colorspace_scrgb</code>ã€<code>EGL_EXT_gl_colorspace_scrgb_linear</code>ã€<code>EGL_EXT_gl_colorspace_display_p3</code> å’Œ <code>EGL_KHR_gl_colorspace_display_p3</code> 扩展。 + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ <code>GL_EXT_sRGB</code>。 + </li> + </ul> + <p> +å之,如果设备实现ä¸æ”¯æŒå®½è‰²åŸŸæ˜¾ç¤ºå±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 尽管并未定义å±å¹•è‰²åŸŸï¼Œä½†åº”涵盖 CIE 1931 xyY 空间内 100% 或更多的 sRGB。 + </li> + </ul> + <h4 id="7_1_5_legacy_application_compatibility_mode"> +7.1.5. æ—§ç‰ˆåº”ç”¨å…¼å®¹æ¨¡å¼ + </h4> + <p> +Android 指定了一ç§â€œå…¼å®¹æ¨¡å¼â€ï¼Œåœ¨è¯¥æ¨¡å¼ä¸‹ï¼Œæ¡†æž¶èƒ½å¤Ÿä»¥â€œæ£å¸¸â€å±å¹•å°ºå¯¸ç‰æ•ˆï¼ˆå®½åº¦ä¸º 320dp)模å¼è¿è¡Œï¼Œè¿™æ˜¯ä¸ºäº†æœåŠ¡äºŽé’ˆå¯¹æ—§ç‰ˆ Android(在实现å±å¹•å°ºå¯¸ç‹¬ç«‹æ€§ä¹‹å‰å‘布的旧版 Android)开å‘的旧版应用。 + </p> + <h4 id="7_1_6_screen_technology"> +7.1.6. å±å¹•æŠ€æœ¯ + </h4> + <p> +Android å¹³å°åŒ…å«ä¸€äº›å¯è®©åº”用在显示å±ä¸Šå‘ˆçŽ°ä¸°å¯Œå›¾å½¢çš„ API。除éžæœ¬æ–‡æ¡£ä¸æ˜Žç¡®è®¸å¯ï¼Œå¦åˆ™è®¾å¤‡å¿…须支æŒæ‰€æœ‰è¿™äº› API(如 Android SDK ä¸å®šä¹‰ï¼‰ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须支æŒèƒ½å¤Ÿå‘ˆçŽ° 16 ä½å½©è‰²å›¾å½¢çš„显示å±ã€‚ + </li> + <li>应支æŒèƒ½å¤Ÿå‘ˆçŽ° 24 ä½å½©è‰²å›¾å½¢çš„显示å±ã€‚ + </li> + <li>[C-0-2] 必须支æŒèƒ½å¤Ÿå‘ˆçŽ°åŠ¨ç”»çš„显示å±ã€‚ + </li> + <li>[C-0-3] 必须使用åƒç´ 宽高比 (PAR) 介于 0.9 到 1.15 之间的显示技术。也就是说,åƒç´ 宽高比必须接近方形 (1.0),并且公差在 10-15% 的范围内。 + </li> + </ul> + <h4 id="7_1_7_secondary_displays"> +7.1.7. 辅助显示设备 + </h4> + <p> +Android 支æŒç”¨äºŽå®žçŽ°åª’体共享功能的辅助显示设备以åŠç”¨äºŽè®¿é—®å¤–部显示设备的开å‘者 API。 + </p> + <p> +如果设备实现支æŒé‡‡ç”¨æœ‰çº¿ã€æ— 线或嵌入å¼é™„åŠ æ˜¾ç¤ºè®¾å¤‡è¿žæŽ¥æ–¹å¼çš„外部显示设备,则: + </p> + <ul> + <li>[C-1-1] 必须实现 <a href="https://developer.android.com/reference/android/hardware/display/DisplayManager.html"><code>DisplayManager</code></a> 系统æœåŠ¡å’Œ API(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <h3 id="7_2_input_devices"> +7.2. 输入设备 + </h3> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须包å«è¾“入机制,例如<a href="#7_2_4_touchScreen_input">触摸å±</a>或<a href="#7_2_2_non-touch_navigation">éžè§¦æ‘¸å¯¼èˆª</a>,以便在界é¢å…ƒç´ 之间导航。 + </li> + </ul> + <h4 id="7_2_1_keyboard"> +7.2.1. 键盘 + </h4> + <p> +如果设备实现支æŒç¬¬ä¸‰æ–¹è¾“入法编辑器 (IME) 应用,则: + </p> + <ul> + <li>[C-1-1] 必须声明 <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_INPUT_METHODS"><code>android.software.input_methods</code></a> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-2] 必须完整实现 <a href="https://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html"><code>Input Management Framework</code></a>。 + </li> + <li>[C-1-3] å¿…é¡»æœ‰é¢„åŠ è½½çš„è½¯ä»¶é”®ç›˜ã€‚ + </li> + </ul> + <p> +设备实现:<em>[C-0-1] ä¸å¾—包å«ä¸Ž <a href="http://developer.android.com/reference/android/content/res/Configuration.html">android.content.res.Configuration.keyboard</a> ä¸æŒ‡å®šçš„ä»»ä½•æ ¼å¼ï¼ˆQWERTY 或 12 键)都ä¸åŒ¹é…的硬件键盘。</em> 应包å«é¢å¤–的软键盘实现。*å¯ä»¥åŒ…å«ç¡¬ä»¶é”®ç›˜ã€‚ + </p> + <h4 id="7_2_2_non-touch_navigation"> +7.2.2. éžè§¦æ‘¸å¯¼èˆª + </h4> + <p> +Android 支æŒä½¿ç”¨æ–¹å‘é”®ã€è½¨è¿¹çƒå’Œæ»šè½®è¿›è¡Œéžè§¦æ‘¸å¯¼èˆªã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须针对 <a href="https://developer.android.com/reference/android/content/res/Configuration.html#navigation">android.content.res.Configuration.navigation</a> 报告æ£ç¡®çš„值。 + </li> + </ul> + <p> +如果设备实现缺少éžè§¦æ‘¸å¯¼èˆªï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ供一个与输入管ç†å¼•æ“Žå…¼å®¹ä¸”åˆç†çš„替代界é¢æœºåˆ¶ï¼Œä»¥ä¾¿ç”¨æˆ·é€‰æ‹©å’Œç¼–辑文å—。上游 Android 开放æºä»£ç 实现包å«ä¸€ç§é€‚åˆåœ¨ç¼ºå°‘éžè§¦æ‘¸å¯¼èˆªè¾“入法的设备上使用的选择机制。 + </li> + </ul> + <h4 id="7_2_3_navigation_keys"> +7.2.3. 导航键 + </h4> + <p> +<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME">主å±å¹•</a>ã€<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_APP_SWITCH">最近用过</a>å’Œ<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK">返回</a>功能(通常是在用户与专用的实体按钮或触摸å±ä¸Šçš„å•ç‹¬éƒ¨åˆ†äº’动åŽæ供)是 Android 导航范å¼çš„基本组æˆéƒ¨åˆ†ï¼Œå› æ¤ï¼Œè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[C-0-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯åŠ¨å…·æœ‰æ»¡è¶³ä»¥ä¸‹æ¡ä»¶çš„ Activity 的已安装应用:对于 TV 设备实现,<code><intent-filter></code> 设为 <code>ACTION=MAIN</code> å’Œ <code>CATEGORY=LAUNCHER</code> 或 <code>CATEGORY=LEANBACK_LAUNCHER</code>。“主å±å¹•â€åŠŸèƒ½åº”是æä¾›æ¤æ–¹å¼çš„机制。 + </li> + <li>应为“最近用过â€å’Œâ€œè¿”回â€åŠŸèƒ½æ供相应的按钮。 + </li> + </ul> + <p> +如果æ供了“主å±å¹•â€ã€â€œæœ€è¿‘用过â€æˆ–“返回â€åŠŸèƒ½ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 当其ä¸ä»»ä½•åŠŸèƒ½å¤„于å¯ä¾›è®¿é—®çŠ¶æ€æ—¶ï¼Œéƒ½å¿…é¡»å¯é€šè¿‡å•æ¬¡æ“作(点按ã€åŒå‡»æˆ–手势ç‰ï¼‰è®¿é—®ã€‚ + </li> + <li>[C-1-2] 必须明确指明å„个å•æ¬¡æ“作会触å‘哪项功能。常è§çš„指明方å¼ç¤ºä¾‹åŒ…括:在按钮上å°åˆ¶å¯è§å›¾æ ‡ã€åœ¨å±å¹•çš„导航æ éƒ¨åˆ†æ˜¾ç¤ºè½¯ä»¶å›¾æ ‡ï¼Œæˆ–åœ¨å¼€ç®±è®¾ç½®æœŸé—´å¼•å¯¼ç”¨æˆ·å®Œæˆåˆ†æ¥æ¼”示æµç¨‹ã€‚ + </li> + </ul> + <p> +设备实现: + </p> + <ul> + <li>[SR] 强烈建议ä¸è¦ä¸º<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK">“èœå•â€åŠŸèƒ½</a>æä¾›è¾“å…¥æœºåˆ¶ã€‚å› ä¸ºä»Ž Android 4.0 开始,由于æ“作æ 的出现,“èœå•â€åŠŸèƒ½è¢«å¼ƒç”¨äº†ã€‚ + </li> + </ul> + <p> +如果设备实现æ供“èœå•â€åŠŸèƒ½ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 当æ“作溢出èœå•å¼¹å‡ºçª—å£ä¸ä¸ºç©ºä¸”æ“作æ 处于å¯è§çŠ¶æ€æ—¶ï¼Œå¿…须显示æ“作溢出按钮。 + </li> + <li>[C-2-2] 对于在æ“作æ ä¸é€‰æ‹©æº¢å‡ºæŒ‰é’®åŽæ˜¾ç¤ºçš„æ“作溢出弹出窗å£ï¼Œä¸å¾—修改其ä½ç½®ã€‚但对于在选择“èœå•â€åŠŸèƒ½åŽæ˜¾ç¤ºçš„æ“作溢出弹出窗å£ï¼Œåˆ™å¯ä»¥åœ¨å±å¹•ä¸Šå°†å…¶å‘ˆçŽ°åˆ°ä¿®æ”¹åŽçš„ä½ç½®ã€‚ + </li> + </ul> + <p> +如果设备实现未æ供用于实现å‘åŽå…¼å®¹çš„“èœå•â€åŠŸèƒ½ï¼Œåˆ™ï¼š* [C-3-1] 当 <code>targetSdkVersion</code> å°äºŽ 10 时,必须使该“èœå•â€åŠŸèƒ½å¯ä¾›åº”用使用(通过实体按钮ã€è½¯ä»¶æŒ‰é”®æˆ–手势)。该“èœå•â€åŠŸèƒ½åº”å¯ä¾›è®¿é—®ï¼Œé™¤éžä¸Žå…¶ä»–导航功能一起éšè—èµ·æ¥ã€‚ + </p> + <p> +如果设备实现æä¾›<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_ASSIST">“辅助â€åŠŸèƒ½</a>,则:[C-4-1] 当其他导航键å¯ä¾›è®¿é—®æ—¶ï¼Œå¿…须使该“辅助â€åŠŸèƒ½å¯é€šè¿‡å•æ¬¡æ“作(例如点按ã€åŒå‡»æˆ–手势)访问。<em></em> [SR] 强烈建议将长按“主å±å¹•â€é”®ç”¨ä½œè¿™ä¸€æŒ‡å®šäº¤äº’。 + </p> + <p> +如果设备实现使用å±å¹•ä¸Šçš„å•ç‹¬éƒ¨åˆ†æ¥æ˜¾ç¤ºå¯¼èˆªé”®ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-5-1] 导航键必须ä½äºŽå±å¹•ä¸Šçš„å•ç‹¬éƒ¨åˆ†ï¼Œä¸èƒ½ä¾›åº”用使用,并且ä¸å¾—é®ä½æˆ–以其他方å¼å½±å“å±å¹•ä¸Šå¯ä¾›åº”用使用的部分。 + </li> + <li>[C-5-2] 如果应用满足<a href="#7_1_1_screen_configuration">第 7.1.1 节</a>ä¸å®šä¹‰çš„è¦æ±‚,则必须将显示å±çš„一部分æ供给它们使用。 + </li> + <li>[C-5-3] å¿…é¡»éµä»Žåº”用通过 <a href="https://developer.android.com/reference/android/view/View.html#setSystemUiVisibility%28int%29"><code>View.setSystemUiVisibility()</code></a> API æ–¹æ³•è®¾ç½®çš„æ ‡è®°ï¼Œä»¥ä¾¿å±å¹•ä¸Šè¿™ä¸ªå•ç‹¬çš„部分(也称为导航æ )能够æ£ç¡®éšè—èµ·æ¥ï¼ˆå¦‚ SDK ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <h4 id="7_2_4_touchscreen_input"> +7.2.4. 触摸å±è¾“å…¥ + </h4> + <p> +Android 支æŒå¤šç§æŒ‡æŽ§è¾“入系统,例如触摸å±ã€è§¦æ‘¸æ¿å’Œæ¨¡æ‹Ÿè§¦æ‘¸è¾“入设备。<a href="https://source.android.com/devices/input/touch-devices">基于触摸å±çš„设备实现</a>会与显示å±ç›¸å…³è”,从而让用户感觉åƒæ˜¯åœ¨ç›´æŽ¥æ“控å±å¹•ä¸Šçš„内容。由于用户会直接触摸å±å¹•ï¼Œå› æ¤ç³»ç»Ÿä¸éœ€è¦ä½¿ç”¨ä»»ä½•é¢å¤–çš„æ–¹å¼æ¥æŒ‡æ˜Žæ‰€æ“控的对象。 + </p> + <p> +设备实现: + </p> + <ul> + <li>应具有æŸç§æŒ‡æŽ§è¾“å…¥ç³»ç»Ÿï¼ˆç±»ä¼¼äºŽé¼ æ ‡çš„è¾“å…¥ç³»ç»Ÿæˆ–è§¦æ‘¸å¼è¾“入系统)。 + </li> + <li>应支æŒå®Œå…¨ç‹¬ç«‹è·Ÿè¸ªçš„指针。 + </li> + </ul> + <p> +如果设备实现包å«è§¦æ‘¸å±ï¼ˆå•ç‚¹è§¦æŽ§æˆ–更好的触摸å±ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须针对 <a href="https://developer.android.com/reference/android/content/res/Configuration.html#touchscreen"><code>Configuration.touchscreen</code></a> API å—段报告 <code>TOUCHSCREEN_FINGER</code>。 + </li> + <li>[C-1-2] 必须报告 <code>android.hardware.touchscreen</code> å’Œ <code>android.hardware.faketouch</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¯ä»¥è·Ÿè¸ªå¤šä¸ªå•ç‚¹è§¦æŽ§çš„触摸å±ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须报告与设备上的具体触摸å±ç±»åž‹å¯¹åº”çš„é€‚å½“åŠŸèƒ½æ ‡è®° <code>android.hardware.touchscreen.multitouch</code>ã€<code>android.hardware.touchscreen.multitouch.distinct</code>ã€<code>android.hardware.touchscreen.multitouch.jazzhand</code>。 + </li> + </ul> + <p> +如果设备实现ä¸åŒ…å«è§¦æ‘¸å±ï¼ˆä»…ä¾é 指控设备),并且满足<a href="#7_2_5_fake_touch_input">第 7.2.5 节</a>ä¸çš„模拟触摸è¦æ±‚,则: + </p> + <ul> + <li>[C-3-1] ä¸å¾—报告任何以 <code>android.hardware.touchscreen</code> å¼€å¤´çš„åŠŸèƒ½æ ‡è®°ï¼Œåªèƒ½æŠ¥å‘Š <code>android.hardware.faketouch</code>。 + </li> + </ul> + <h4 id="7_2_5_fake_touch_input"> +7.2.5. 模拟触摸输入 + </h4> + <p> +模拟触摸界é¢ä¼šæ供一个能够模拟部分触摸å±åŠŸèƒ½çš„用户输入系统。例如,驱动å±å¹•å…‰æ ‡çš„é¼ æ ‡æˆ–é¥æŽ§å™¨èƒ½å¤Ÿæ¨¡æ‹Ÿè§¦æ‘¸æ“作,但需è¦ç”¨æˆ·å…ˆæŒ‡å‘或èšç„¦åˆ°ç›®æ ‡ï¼Œç„¶åŽå†ç‚¹å‡»ã€‚é¼ æ ‡ã€è§¦æŽ§æ¿ã€åŸºäºŽé™€èžºä»ªçš„空ä¸é¼ æ ‡ã€é™€èžºä»ªæŒ‡é’ˆã€æ“纵æ†å’Œå¤šç‚¹è§¦æŽ§æ¿ç‰å¤šç§è¾“入设备都å¯ä»¥æ”¯æŒæ¨¡æ‹Ÿè§¦æ‘¸äº¤äº’。Android 包å«åŠŸèƒ½å¸¸é‡ android.hardware.faketouch,该常é‡å¯¹åº”于高ä¿çœŸéžè§¦æ‘¸ï¼ˆæŒ‡æŽ§å¼ï¼‰è¾“入设备,例如å¯ä»¥å……分模拟触摸å¼è¾“å…¥çš„é¼ æ ‡æˆ–è§¦æŽ§æ¿ï¼ˆåŒ…括基本手势支æŒï¼‰ï¼Œå¹¶ä¸”该常é‡å¯æŒ‡æ˜Žè®¾å¤‡æ”¯æŒæ‰€æ¨¡æ‹Ÿçš„触摸å±åŠŸèƒ½å集。 + </p> + <p> +如果设备实现ä¸åŒ…å«è§¦æ‘¸å±ï¼Œä½†åŒ…å«å¦ä¸€ç§å®ƒä»¬æƒ³è¦æ供的指控输入系统,则: + </p> + <ul> + <li>åº”å£°æ˜Žæ”¯æŒ <code>android.hardware.faketouch</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>android.hardware.faketouch</code>,则: + </p> + <ul> + <li>[C-1-1] 必须报告指针在å±å¹•ä¸çš„<a href="http://developer.android.com/reference/android/view/MotionEvent.html">ç»å¯¹ X å’Œ Y ä½ç½®</a>,并在å±å¹•ä¸æ˜¾ç¤ºå¯è§æŒ‡é’ˆã€‚ + </li> + <li>[C-1-2] 必须通过æ“作代ç (指定<a href="http://developer.android.com/reference/android/view/MotionEvent.html">在å±å¹•ä¸æŒ‰ä¸‹æˆ–æ¾å¼€æŒ‡é’ˆ</a>æ—¶å‘生的状æ€å˜åŒ–)报告触摸事件。 + </li> + <li>[C-1-3] 必须支æŒåœ¨å±å¹•ä¸çš„对象上按下åŽå†æ¾å¼€æŒ‡é’ˆï¼Œä»¥ä¾¿ç”¨æˆ·æ¨¡æ‹Ÿç‚¹æŒ‰å±å¹•ä¸çš„对象。 + </li> + <li>[C-1-4] 必须支æŒäºŽæ—¶é—´é˜ˆå€¼å†…在å±å¹•ä¸å¯¹è±¡ä¸Šçš„åŒä¸€ä½ç½®æŒ‰ä¸‹ã€æ¾å¼€ã€æŒ‰ä¸‹åŽå†æ¾å¼€æŒ‡é’ˆï¼Œä»¥ä¾¿ç”¨æˆ·<a href="http://developer.android.com/reference/android/view/MotionEvent.html">模拟点按两次</a>å±å¹•ä¸çš„对象。 + </li> + <li>[C-1-5] 必须支æŒåœ¨å±å¹•ä¸çš„ä»»æ„一点按下指针ã€å°†æŒ‡é’ˆç§»è‡³å±å¹•ä¸çš„其他任æ„一点,然åŽå†æ¾å¼€æŒ‡é’ˆï¼Œä»¥ä¾¿ç”¨æˆ·æ¨¡æ‹Ÿè§¦æ‘¸æ‹–动æ“作。 + </li> + <li>[C-1-6] 必须支æŒæŒ‰ä¸‹æŒ‡é’ˆåŽå…许用户快速将对象移至å±å¹•ä¸çš„其他ä½ç½®ï¼Œç„¶åŽåœ¨å±å¹•ä¸æ¾å¼€æŒ‡é’ˆï¼Œä»¥ä¾¿ç”¨æˆ·ç”©åŠ¨å±å¹•ä¸çš„对象。 + </li> + <li>[C-1-7] 必须针对 <a href="https://developer.android.com/reference/android/content/res/Configuration.html#touchscreen"><code>Configuration.touchscreen</code></a> API å—段报告 <code>TOUCHSCREEN_NOTOUCH</code>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>android.hardware.faketouch.multitouch.distinct</code>,则: + </p> + <ul> + <li>[C-2-1] å¿…é¡»å£°æ˜Žæ”¯æŒ <code>android.hardware.faketouch</code>。 + </li> + <li>[C-2-2] 必须支æŒå¯¹ä¸¤ä¸ªæˆ–更多个独立的指控输入分别进行跟踪。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>android.hardware.faketouch.multitouch.jazzhand</code>,则: + </p> + <ul> + <li>[C-3-1] å¿…é¡»å£°æ˜Žæ”¯æŒ <code>android.hardware.faketouch</code>。 + </li> + <li>[C-3-2] 必须支æŒå®Œå…¨ç‹¬ç«‹åœ°åˆ†åˆ«è·Ÿè¸ª 5 个(对一åªæ‰‹ä¸Šäº”æ ¹æ‰‹æŒ‡çš„æ“作进行跟踪)或更多个指控输入。 + </li> + </ul> + <h4 id="7_2_6_game_controller_support"> +7.2.6. 游æˆæŽ§åˆ¶å™¨æ”¯æŒ + </h4> + <h5 id="7_2_6_1_button_mappings"> +7.2.6.1. æŒ‰é’®æ˜ å°„ + </h5> + <p> +如果设备实现声明了 <code>android.hardware.gamepad</code> åŠŸèƒ½æ ‡è®°ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须嵌入控制器,或在包装盒内éšé™„å•ç‹¬çš„控制器,以便输入下表ä¸åˆ—出的所有事件。 + </li> + <li>[C-1-2] 必须能够将 HID äº‹ä»¶æ˜ å°„åˆ°å…³è”çš„ Android <code>view.InputEvent</code> 常é‡ï¼ˆå¦‚下表ä¸æ‰€åˆ—)。上游 Android 实现包å«æ»¡è¶³è¯¥è¦æ±‚的游æˆæŽ§åˆ¶å™¨å®žçŽ°ã€‚ + </li> + </ul> + <table> + <tbody><tr> + <th> +按钮 + </th> + <th> +HID 用法<sup>2</sup> + </th> + <th> +Android 按钮 + </th> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_A">A</a><sup>1</sup> + </td> + <td>0x09 0x0001 + </td> + <td>KEYCODE_BUTTON_A (96) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_B">B</a><sup>1</sup> + </td> + <td> +0x09 0x0002 + </td> + <td>KEYCODE_BUTTON_B (97) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_X">X</a><sup>1</sup> + </td> + <td> +0x09 0x0004 + </td> + <td> +KEYCODE_BUTTON_X (99) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_Y">Y</a><sup>1</sup> + </td> + <td> +0x09 0x0005 + </td> + <td> +KEYCODE_BUTTON_Y (100) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_UP">D-pad up</a><sup>1</sup><br /> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_DOWN">D-pad down</a><sup>1</sup> + </td> + <td> +0x01 0x0039<sup>3</sup> + </td> + <td> + <a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_Y">AXIS_HAT_Y</a><sup>4</sup> + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_LEFT">D-pad left</a>1<br /> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_RIGHT">D-pad right</a><sup>1</sup> + </td> + <td> +0x01 0x0039<sup>3</sup> + </td> + <td> + <a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_X">AXIS_HAT_X</a><sup>4</sup> + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_L1">Left shoulder button</a><sup>1</sup> + </td> + <td> +0x09 0x0007 + </td> + <td> +KEYCODE_BUTTON_L1 (102) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_R1">Right shoulder button</a><sup>1</sup> + </td> + <td> +0x09 0x0008 + </td> + <td> +KEYCODE_BUTTON_R1 (103) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_THUMBL">Left stick click</a><sup>1</sup> + </td> + <td> +0x09 0x000E + </td> + <td> +KEYCODE_BUTTON_THUMBL (106) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_THUMBR">Right stick click</a><sup>1</sup> + </td> + <td> +0x09 0x000F + </td> + <td> +KEYCODE_BUTTON_THUMBR (107) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME">Home</a><sup>1</sup> + </td> + <td> +0x0c 0x0223 + </td> + <td> +KEYCODE_HOME (3) + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK">Back</a><sup>1</sup> + </td> + <td> +0x0c 0x0224 + </td> + <td> +KEYCODE_BACK (4) + </td> + </tr> + </tbody></table> + <p class="table_footnote"> +1 <a href="http://developer.android.com/reference/android/view/KeyEvent.html">KeyEvent</a> + </p> + <p class="table_footnote"> +2 必须在 Game pad CA (0x01 0x0005) ä¸å£°æ˜Žä¸Šè¿° HID 用法。 + </p> + <p class="table_footnote"> +3 è¿™ç§ç”¨æ³•çš„ Logical Minimum 必须为 0,Logical Maximum 必须为 7,Physical Minimum 必须为 0,Physical Maximum 必须为 315,Units 必须为 Degrees,并且 Report Size 必须为 4。逻辑值指从纵轴顺时针旋转的角度;例如,逻辑值为 0 表示ä¸æ—‹è½¬ï¼Œå¹¶ä¸”按下了å‘上按钮,逻辑值为 1 则表示旋转 45 度,并且åŒæ—¶æŒ‰ä¸‹äº†å‘上和å‘左键。 + </p> + <p class="table_footnote"> +4 <a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a> + </p> + <table> + <tbody><tr> + <th>模拟控制<sup>1</sup> + </th> + <th> +HID 用法 + </th> + <th> +Android 按钮 + </th> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_LTRIGGER">Left Trigger</a> + </td> + <td> +0x02 0x00C5 + </td> + <td> +AXIS_LTRIGGER + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_THROTTLE">Right Trigger</a> + </td> + <td> +0x02 0x00C4 + </td> + <td> +AXIS_RTRIGGER + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Y">Left Joystick</a> + </td> + <td> +0x01 0x0030<br /> +0x01 0x0031 + </td> + <td> +AXIS_X<br /> +AXIS_Y + </td> + </tr> + <tr> + <td> + <a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Z">Right Joystick</a> + </td> + <td> +0x01 0x0032<br /> +0x01 0x0035 + </td> + <td> +AXIS_Z<br /> +AXIS_RZ + </td> + </tr> + </tbody></table> + <p class="table_footnote"> +1 <a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a> + </p> + <h4 id="7_2_7_remote_control"> +7.2.7. é¥æŽ§å™¨ + </h4> + <p> +请å‚阅<a href="#2_3_1_hardware">第 2.3.1 节</a>,了解设备专属è¦æ±‚。 + </p> + <h3 id="7_3_sensors"> +7.3. ä¼ æ„Ÿå™¨ + </h3> + <p> +如果设备实现包å«æŸç§ä¼ 感器,而这ç§ä¼ 感器具有针对第三方开å‘者的对应 API,则设备实现必须实现该 API,如 Android SDK 文档和 Android 开放æºä»£ç 文档ä¸å…³äºŽ<a href="http://source.android.com/devices/sensors/">ä¼ æ„Ÿå™¨</a>的部分所述。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»æ ¹æ® <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html"><code>android.content.pm.PackageManager</code></a> 类准确报告是å¦å˜åœ¨ä¼ 感器。 + </li> + <li>[C-0-2] 必须通过 <code>SensorManager.getSensorList()</code> 和类似方法返回准确的å—支æŒä¼ 感器列表。 + </li> + <li>[C-0-3] å¯¹äºŽæ‰€æœ‰å…¶ä»–ä¼ æ„Ÿå™¨ API,必须采å–åˆç†çš„行为(例如,在应用å°è¯•æ³¨å†Œç›‘å¬å™¨æ—¶è§†æƒ…况返回 <code>true</code> 或 <code>false</code>,在ä¸å˜åœ¨å¯¹åº”çš„ä¼ æ„Ÿå™¨æ—¶ä¸è°ƒç”¨ä¼ 感器监å¬å™¨ï¼Œç‰ç‰ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现包å«æŸç§ä¼ 感器,而这ç§ä¼ 感器具有针对第三方开å‘者的对应 API,则: + </p> + <ul> + <li>[C-1-1] 对于æ¯ç§ä¼ 感器,都必须采用相关国际å•ä½åˆ¶ï¼ˆå…¬åˆ¶ï¼‰å€¼<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">æŠ¥å‘Šæ‰€æœ‰ä¼ æ„Ÿå™¨æµ‹é‡ç»“æžœ</a>(如 Android SDK 文档ä¸æ‰€å®šä¹‰ï¼‰ã€‚ + </li> + <li>[C-1-2] å¿…é¡»æŠ¥å‘Šä¼ æ„Ÿå™¨æ•°æ®ï¼Œå¹¶ä¸”最大延迟为 100 毫秒 + 2 * sample_timeï¼ˆå¦‚æžœä¼ æ„Ÿå™¨è¿›è¡Œæµå¼ä¼ 输所需的最å°å»¶è¿Ÿä¸º 5 毫秒)+ 2 * sample_time(如果应用处ç†å™¨å¤„于活动状æ€ï¼‰ã€‚该延迟ä¸åŒ…å«ä»»ä½•è¿‡æ»¤å»¶è¿Ÿã€‚ + </li> + <li>[C-1-3] 必须在å¯ç”¨ä¼ 感器åŽçš„ 400 毫秒 + 2 * sample_time å†…æŠ¥å‘Šç¬¬ä¸€ä¸ªä¼ æ„Ÿå™¨æ ·æœ¬ã€‚è¯¥æ ·æœ¬çš„ç²¾åº¦å¯ä»¥ä¸º 0。 + </li> + <li> + <p> +[SR] 应以纳秒为å•ä½<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">报告事件时间</a>(如 Android SDK 文档ä¸å®šä¹‰ï¼‰ï¼Œè¯¥æ—¶é—´è¡¨ç¤ºäº‹ä»¶å‘生时的时间,与 SystemClock.elapsedRealtimeNano() 时钟åŒæ¥ã€‚<strong>强烈建议</strong>现有的åŠæ–°çš„ Android 设备满足这些è¦æ±‚,以便å‡çº§åˆ°æœªæ¥å¹³å°ç‰ˆæœ¬ï¼ˆåœ¨æœªæ¥å¹³å°ç‰ˆæœ¬ä¸ï¼Œæ¤ç»„件å¯èƒ½ä¼šæˆä¸ºå¿…需组件)。åŒæ¥è¯¯å·®åº”在 100 毫秒以内。 + </p> + </li> + <li> + <p> +[C-1-4] 对于 Android SDK 文档ä¸æŒ‡æ˜Žä¸º<a href="https://source.android.com/devices/sensors/report-modes.html#continuous">è¿žç»ä¼ 感器</a>的任何 API,设备实现都必须连ç»æ供周期性数æ®æ ·æœ¬ï¼Œå¹¶ä¸”è¿™äº›æ ·æœ¬çš„æŠ–åŠ¨åº”ä½ŽäºŽ 3%,抖动是指连ç»äº‹ä»¶æŠ¥å‘Šçš„æ—¶é—´æˆ³å€¼ä¹‹å·®çš„æ ‡å‡†å差。 + </p> + </li> + <li> + <p> +[C-1-5] 必须确ä¿ä¼ 感器事件æµä¸å¾—阻æ¢è®¾å¤‡ CPU 进入挂起状æ€æˆ–从挂起状æ€å”¤é†’。 + </p> + </li> + <li>å½“å¤šä¸ªä¼ æ„Ÿå™¨å¤„äºŽå¯ç”¨çŠ¶æ€æ—¶ï¼ŒåŠŸè€—ä¸åº”超过å„ä¸ªä¼ æ„Ÿå™¨æ‰€æŠ¥å‘Šçš„åŠŸè€—çš„æ€»å’Œã€‚ + </li> + </ul> + <p> +上述列表并ä¸æ˜¯è¯¦å°½æ— é—的;请以 Android SDK å’Œ Android 开放æºä»£ç 文档ä¸å…³äºŽ<a href="http://source.android.com/devices/sensors/">ä¼ æ„Ÿå™¨</a>的部分载述的行为为准。 + </p> + <p> +æœ‰äº›ä¼ æ„Ÿå™¨ä¸ºå¤åˆåž‹ï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œå®ƒä»¬å¯ä»¥ä»Žä¸€ä¸ªæˆ–å¤šä¸ªå…¶ä»–ä¼ æ„Ÿå™¨æ供的数æ®æŽ¨å¯¼å‡ºæ¥ã€‚(例如方å‘ä¼ æ„Ÿå™¨å’Œçº¿æ€§åŠ é€Ÿåº¦ä¼ æ„Ÿå™¨ã€‚ï¼‰ + </p> + <p> +设备实现: + </p> + <ul> + <li>åº”å®žçŽ°è¿™äº›ä¼ æ„Ÿå™¨ç±»åž‹ï¼Œä½†å‰æ是设备实现包å«å¿…è¦çš„å®žä½“ä¼ æ„Ÿå™¨ï¼ˆå¦‚<a href="https://source.android.com/devices/sensors/sensor-types.html">ä¼ æ„Ÿå™¨ç±»åž‹</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¤åˆä¼ 感器,则: + </p> + <ul> + <li>[C-2-1] å¿…é¡»å®žçŽ°è¯¥ä¼ æ„Ÿå™¨ï¼Œå¦‚ Android 开放æºä»£ç 文档ä¸å…³äºŽ<a href="https://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary">å¤åˆä¼ 感器</a>的部分所述。 + </li> + </ul> + <h4 id="7_3_1_accelerometer"> +7.3.1. åŠ é€Ÿåº¦è®¡ + </h4> + <ul> + <li>è®¾å¤‡å®žçŽ°åº”åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须能够以至少 50 Hz 的频率报告事件。 + </li> + <li>[C-1-2] 必须实现并报告 <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER"><code>TYPE_ACCELEROMETER</code></a> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[C-1-3] å¿…é¡»éµä»Ž <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Android ä¼ æ„Ÿå™¨åæ ‡ç³»</a>(Android API ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ã€‚ + </li> + <li>[C-1-4] 在任æ„轴上都必须能够测é‡ä»Žè‡ªç”±ä¸‹è½åˆ°é«˜è¾¾å››å€é‡åŠ›åŠ 速度 (4g) çš„è¿åŠ¨è¿‡ç¨‹ã€‚ + </li> + <li>[C-1-5] 分辨率必须至少为 12 ä½ã€‚ + </li> + <li>[C-1-6] æ ‡å‡†åå·®ä¸å¾—高于 0.05 m/s^,其ä¸æ ‡å‡†å差应按æ¯ä¸ªè½´è¿›è¡Œè®¡ç®—ï¼Œå¹¶ä¸”åº”ä½¿ç”¨ä»¥æœ€å¤§é‡‡æ ·çŽ‡åœ¨è‡³å°‘ 3 ç§’å†…é‡‡é›†çš„æ ·æœ¬è¿›è¡Œè®¡ç®—ã€‚ + </li> + <li>[SR] <strong>强烈建议</strong>实现 <code>TYPE_SIGNIFICANT_MOTION</code> å¤åˆä¼ 感器。 + </li> + <li>[SR] 如果æä¾›äº†åœ¨çº¿åŠ é€Ÿåº¦è®¡æ ¡å‡†åŠŸèƒ½ï¼Œåˆ™å¼ºçƒˆå»ºè®®å®žçŽ° <code>TYPE_ACCELEROMETER_UNCALIBRATED</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>应实现 <code>TYPE_SIGNIFICANT_MOTION</code>ã€<code>TYPE_TILT_DETECTOR</code>ã€<code>TYPE_STEP_DETECTOR</code>ã€<code>TYPE_STEP_COUNTER</code> å¤åˆä¼ 感器(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>应以至少 200 Hz 的频率报告事件。 + </li> + <li>分辨率应至少为 16 ä½ã€‚ + </li> + <li>åº”åœ¨ä½¿ç”¨æ—¶è¿›è¡Œæ ¡å‡†ï¼ˆå¦‚æžœç‰¹æ€§éšç”Ÿå‘½å‘¨æœŸå‘生å˜åŒ–)和补å¿ï¼Œå¹¶ä¸”在设备é‡æ–°å¯åŠ¨åŽç›´åˆ°å†æ¬¡é‡æ–°å¯åŠ¨ä¹‹å‰åº”ä¿ç•™è¡¥å¿å‚数。 + </li> + <li>应进行温度补å¿ã€‚ + </li> + <li>还应实现 <a href="https://developer.android.com/reference/android/hardware/Sensor.html#STRING_TYPE_ACCELEROMETER_UNCALIBRATED"><code>TYPE_ACCELEROMETER_UNCALIBRATED</code></a> ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ï¼Œå¹¶ä¸”å®žçŽ°äº† <code>TYPE_SIGNIFICANT_MOTION</code>ã€<code>TYPE_TILT_DETECTOR</code>ã€<code>TYPE_STEP_DETECTOR</code>ã€<code>TYPE_STEP_COUNTER</code> å¤åˆä¼ 感器ä¸çš„任何一ç§ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 其功耗总和必须始终低于 4 mW。 + </li> + <li>æ¯ä¸ªä¼ 感器的功耗应在设备处于动æ€æ—¶ä½ŽäºŽ 2 mW,在设备处于é™æ€æ—¶ä½ŽäºŽ 0.5 mW。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡å’Œé™€èžºä»ªä¼ æ„Ÿå™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 必须实现 <code>TYPE_GRAVITY</code> å’Œ <code>TYPE_LINEAR_ACCELERATION</code> å¤åˆä¼ 感器。 + </li> + <li>应实现 <code>TYPE_GAME_ROTATION_VECTOR</code> å¤åˆä¼ 感器。 + </li> + <li>[SR] 强烈建议现有的åŠæ–°çš„ Android 设备实现 <code>TYPE_GAME_ROTATION_VECTOR</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ã€é™€èžºä»ªä¼ 感器和ç£åŠ›è®¡ä¼ 感器,则: + </p> + <ul> + <li>[C-4-1] 必须实现 <code>TYPE_ROTATION_VECTOR</code> å¤åˆä¼ 感器。 + </li> + </ul> + <h4 id="7_3_2_magnetometer"> +7.3.2. ç£åŠ›è®¡ + </h4> + <ul> + <li>è®¾å¤‡å®žçŽ°åº”åŒ…å« 3 è½´ç£åŠ›è®¡ï¼ˆç½—盘)。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´ç£åŠ›è®¡ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须实现 <code>TYPE_MAGNETIC_FIELD</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[C-1-2] 必须能够以至少 10 Hz 的频率报告事件,并且应以至少 50 Hz 的频率报告事件。 + </li> + <li>[C-1-3] å¿…é¡»éµä»Ž <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Android ä¼ æ„Ÿå™¨åæ ‡ç³»</a>(Android API ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ã€‚ + </li> + <li>[C-1-4] 饱和之å‰ï¼Œåœ¨æ¯ä¸ªè½´ä¸Šçš„测é‡èŒƒå›´éƒ½å¿…须能够达到 -900 μT 至 +900 μT。 + </li> + <li>[C-1-5] 必须通过以下方å¼ä½¿ç¡¬é“å移值低于 700 μT,并且应低于 200 μT:将ç£åŠ›è®¡æ”¾åœ¨è¿œç¦»åŠ¨æ€ï¼ˆç”µæµæ„Ÿåº”)和é™æ€ï¼ˆç£æ„Ÿåº”)ç£åœºçš„ä½ç½®ã€‚ + </li> + <li>[C-1-6] 分辨率必须ç‰äºŽæˆ–高于 0.6 µT。 + </li> + <li>[C-1-7] 必须支æŒåœ¨çº¿æ ¡å‡†å’Œè¡¥å¿ç¡¬é“å差,并且在设备é‡æ–°å¯åŠ¨åŽç›´åˆ°å†æ¬¡é‡æ–°å¯åŠ¨ä¹‹å‰ä¿ç•™è¡¥å¿å‚数。 + </li> + <li>[C-1-8] 必须应用软é“è¡¥å¿ - å¯ä»¥åœ¨ä½¿ç”¨æœŸé—´æˆ–è®¾å¤‡ç”Ÿäº§æœŸé—´è¿›è¡Œæ ¡å‡†ã€‚ + </li> + <li>[C-1-9] æ ‡å‡†åå·®ä¸å¾—高于 1.5 µT,并且ä¸åº”高于 0.5 µT,其ä¸æ ‡å‡†å差是按æ¯ä¸ªè½´è¿›è¡Œè®¡ç®—ï¼Œå¹¶ä¸”æ˜¯ä½¿ç”¨ä»¥æœ€å¤§é‡‡æ ·çŽ‡åœ¨è‡³å°‘ 3 ç§’å†…é‡‡é›†çš„æ ·æœ¬è¿›è¡Œè®¡ç®—ã€‚ + </li> + <li>应实现 <code>TYPE_MAGNETIC_FIELD_UNCALIBRATED</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[SR] 强烈建议现有的åŠæ–°çš„ Android 设备实现 <code>TYPE_MAGNETIC_FIELD_UNCALIBRATED</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´ç£åŠ›è®¡ã€åŠ é€Ÿåº¦è®¡ä¼ æ„Ÿå™¨å’Œé™€èžºä»ªä¼ æ„Ÿå™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须实现 <code>TYPE_ROTATION_VECTOR</code> å¤åˆä¼ 感器。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´ç£åŠ›è®¡å’ŒåŠ 速度计,则: + </p> + <ul> + <li>å¯ä»¥å®žçŽ° <code>TYPE_GEOMAGNETIC_ROTATION_VECTOR</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« 3 è½´ç£åŠ›è®¡ã€åŠ 速度计和 <code>TYPE_GEOMAGNETIC_ROTATION_VECTOR</code> ä¼ æ„Ÿå™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 功耗必须低于 10 mW。 + </li> + <li>å¦‚æžœä¼ æ„Ÿå™¨æ³¨å†Œäº† 10 Hz 的批处ç†æ¨¡å¼ï¼Œåˆ™åŠŸè€—应低于 3 mW。 + </li> + </ul> + <h4 id="7_3_3_gps"> +7.3.3. GPS + </h4> + <p> +设备实现: + </p> + <ul> + <li>åº”åŒ…å« GPS/GNSS 接收器。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« GPS/GNSS 接收器,并且通过 <code>android.hardware.location.gps</code> åŠŸèƒ½æ ‡è®°å‘应用报告该功能,则: + </p> + <ul> + <li>[C-1-1] 当收到通过 <code>LocationManager#requestLocationUpdate</code> æ交的ä½ç½®ä¿¡æ¯è¯·æ±‚时,必须支æŒä»¥è‡³å°‘ 1 Hz 的频率输出ä½ç½®ä¿¡æ¯ã€‚ + </li> + <li>[C-1-2] 当互è”网连接的数æ®ä¼ 输速度为 0.5 Mbps 或更快时,在露天æ¡ä»¶ï¼ˆä¿¡å·å¼ºï¼Œå¯å¿½ç•¥å¤šè·¯å¾„,HDOP å°äºŽ 2)下必须能于 10 秒内确定ä½ç½®ï¼ˆå¿«é€Ÿå®Œæˆé¦–次定ä½ï¼‰ã€‚为了满足该è¦æ±‚,通常å¯ä»¥é‡‡ç”¨æŸç§å½¢å¼çš„辅助或预测 GPS/GNSS 技术æ¥æœ€å¤§é™åº¦åœ°ç¼©çŸ GPS/GNSS é”定时间(辅助数æ®åŒ…括å‚考时间ã€å‚考ä½ç½®å’Œå«æ˜Ÿæ˜ŸåŽ†/时钟)。 + <ul> + <li>[C-1-6] 完æˆæ¤ç±»ä½ç½®è®¡ç®—åŽï¼Œå¦‚果设备在一个å°æ—¶å†…å†æ¬¡æ”¶åˆ°ä½ç½®ä¿¡æ¯è¯·æ±‚,设备实现必须在露天æ¡ä»¶ä¸‹äºŽ 5 秒内确定其ä½ç½®ï¼Œå³ä½¿åŽç»è¯·æ±‚æ˜¯åœ¨æ— æ•°æ®è¿žæŽ¥çš„情况下和/或设备é‡å¯ä¹‹åŽå‘出的也是如æ¤ã€‚ + </li> + </ul> + </li> + <li> + <p> +确定ä½ç½®ä¹‹åŽï¼Œåœ¨éœ²å¤©æ¡ä»¶ä¸‹ï¼Œå½“设备处于é™æ¢çŠ¶æ€æˆ–以å°äºŽ 1 m/s² çš„åŠ é€Ÿåº¦ç§»åŠ¨æ—¶ï¼š + </p> + <ul> + <li>[C-1-3] 必须至少在 95% 的时间内能够确定 20 米以内的ä½ç½®ä»¥åŠ 0.5 m/s 以内的速度。 + </li> + <li>[C-1-4] 必须通过 <a href="https://developer.android.com/reference/android/location/GnssStatus.Callback.html#GnssStatus.Callback()'"><code>GnssStatus.Callback</code></a> åŒæ—¶è·Ÿè¸ªå’ŒæŠ¥å‘Šä¸€ä¸ªæ˜Ÿç¾¤ä¸çš„至少 8 颗å«æ˜Ÿã€‚ + </li> + <li>应能够åŒæ—¶è·Ÿè¸ªå¤šä¸ªæ˜Ÿç¾¤ï¼ˆä¾‹å¦‚ GPS ä»¥åŠ Glonassã€Beidouã€Galileo ä¸çš„至少一个)ä¸çš„至少 24 颗å«æ˜Ÿã€‚ + </li> + <li>[C-1-5] 必须通过测试 API“getGnssYearOfHardwareâ€æŠ¥å‘Š GNSS 技术出产年份。 + </li> + <li>[SR] 在紧急通è¯æœŸé—´ç»§ç»æä¾›æ£å¸¸çš„ GPS/GNSS ä½ç½®ä¿¡æ¯è¾“出。 + </li> + <li>[SR] 报告跟踪的所有星群的 GNSS 测é‡ç»“果(在 GnssStatus 消æ¯ä¸æŠ¥å‘Šï¼‰ï¼ŒSBAS 除外。 + </li> + <li>[SR] 报告 AGC ä»¥åŠ GNSS 测é‡é¢‘率。 + </li> + <li>[SR] 在æ¯æ¬¡æŠ¥å‘Š GPS/GNSS ä½ç½®æ—¶å‡æŠ¥å‘Šæ‰€æœ‰ä¼°ç®—的测é‡ç»“果(包括方ä½ã€é€Ÿåº¦å’Œé«˜åº¦ï¼‰ã€‚ + </li> + <li>[SR] 强烈建议尽å¯èƒ½å¤šåœ°æ»¡è¶³é’ˆå¯¹ä»¥ä¸‹è®¾å¤‡çš„é™„åŠ å¼ºåˆ¶æ€§è¦æ±‚:通过 Test API <code>LocationManager.getGnssYearOfHardware()</code> 报告的年份为“2016â€æˆ–“2017â€çš„设备。 + </li> + </ul> + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« GPS/GNSS 接收器,并且通过 <code>android.hardware.location.gps</code> åŠŸèƒ½æ ‡è®°å‘应用报告该功能,而 <code>LocationManager.getGnssYearOfHardware()</code> Test API 报告的年份为“2016â€æˆ–更晚,则: + </p> + <ul> + <li>[C-2-1] 必须在å‘现 GNSS 测é‡ç»“æžœåŽç«‹å³æŠ¥å‘Šï¼Œå³ä½¿å°šæœªæŠ¥å‘Šé€šè¿‡ GPS/GNSS 计算出的ä½ç½®ä¹Ÿæ˜¯å¦‚æ¤ã€‚ + </li> + <li>[C-2-2] 必须报告 GNSS 伪è·å’Œä¼ªè·çŽ‡ï¼Œä»¥ä¾¿åœ¨ç¡®å®šä½ç½®ä¹‹åŽï¼Œåœ¨éœ²å¤©æ¡ä»¶ä¸‹ï¼Œå½“设备处于é™æ¢çŠ¶æ€æˆ–以å°äºŽ 0.2 m/s² çš„åŠ é€Ÿåº¦ç§»åŠ¨æ—¶ï¼Œè‡³å°‘åœ¨ 95% 的情况下能够计算出 20 米以内的ä½ç½®ä»¥åŠ 0.2 m/s 以内的速度。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« GPS/GNSS 接收器,并且通过 <code>android.hardware.location.gps</code> åŠŸèƒ½æ ‡è®°å‘应用报告该功能,而 <code>LocationManager.getGnssYearOfHardware()</code> Test API 报告的年份为“2017â€æˆ–更晚,则: + </p> + <ul> + <li>[C-3-1] 必须在紧急通è¯æœŸé—´ç»§ç»æä¾›æ£å¸¸çš„ GPS/GNSS ä½ç½®ä¿¡æ¯è¾“出。 + </li> + <li>[C-3-2] 必须报告跟踪的所有星群的 GNSS 测é‡ç»“果(在 GnssStatus 消æ¯ä¸æŠ¥å‘Šï¼‰ï¼ŒSBAS 除外。 + </li> + <li>[C-3-3] 必须报告 AGC ä»¥åŠ GNSS 测é‡é¢‘率。 + </li> + <li>[C-3-4] 必须在æ¯æ¬¡æŠ¥å‘Š GPS/GNSS ä½ç½®æ—¶å‡æŠ¥å‘Šæ‰€æœ‰ä¼°ç®—的测é‡ç»“果(包括方ä½ã€é€Ÿåº¦å’Œé«˜åº¦ï¼‰ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« GPS/GNSS 接收器,并且通过 <code>android.hardware.location.gps</code> åŠŸèƒ½æ ‡è®°å‘应用报告该功能,而 <code>LocationManager.getGnssYearOfHardware()</code> Test API 报告的年份为“2018â€æˆ–更晚,则: + </p> + <ul> + <li>[C-4-1] 必须在基于移动基站(基于 MS)的网络å‘起的紧急通è¯æœŸé—´ç»§ç»å‘应用æä¾›æ£å¸¸çš„ GPS/GNSS 输出。 + </li> + <li>[C-4-2] å¿…é¡»å‘ <a href="https://developer.android.com/reference/android/location/LocationProvider">GNSS Location Provider</a> API 报告ä½ç½®ä¿¡æ¯å’Œæµ‹é‡ç»“果。 + </li> + </ul> + <h4 id="7_3_4_gyroscope"> +7.3.4. 陀螺仪 + </h4> + <p> +设备实现: + </p> + <ul> + <li>应包å«é™€èžºä»ªï¼ˆè§’度å˜åŒ–ä¼ æ„Ÿå™¨ï¼‰ã€‚ + </li> + <li>除éžè¿˜åŒ…å« 3 è½´åŠ é€Ÿåº¦è®¡ï¼Œå¦åˆ™ä¸åº”包å«é™€èžºä»ªä¼ 感器。 + </li> + </ul> + <p> +如果设备实现包å«é™€èžºä»ªï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须能够以至少 50 Hz 的频率报告事件。 + </li> + <li>[C-1-2] 必须实现 <code>TYPE_GYROSCOPE</code> ä¼ æ„Ÿå™¨ï¼Œå¹¶ä¸”è¿˜åº”å®žçŽ° <code>TYPE_GYROSCOPE_UNCALIBRATED</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[C-1-3] 必须能够测é‡é«˜è¾¾ 1000 度/秒的方å‘å˜åŒ–。 + </li> + <li>[C-1-4] 分辨率必须为 12 ä½æˆ–更高,并且应为 16 ä½æˆ–更高。 + </li> + <li>[C-1-5] 必须进行温度补å¿ã€‚ + </li> + <li>[C-1-6] å¿…é¡»åœ¨ä½¿ç”¨æ—¶è¿›è¡Œæ ¡å‡†å’Œè¡¥å¿ï¼Œå¹¶åœ¨è®¾å¤‡é‡æ–°å¯åŠ¨åŽç›´åˆ°å†æ¬¡é‡æ–°å¯åŠ¨ä¹‹å‰ä¿ç•™è¡¥å¿å‚数。 + </li> + <li>[C-1-7] æ¯ Hz 方差ä¸å¾—超过 1e-7 rad^2/s^2ï¼ˆæ¯ Hz 方差,或 rad^2/s)。方差å¯éšé‡‡æ ·çŽ‡è€Œå˜åŒ–,但ä¸å¾—超过该值。也就是说,如果以 1 Hz çš„é‡‡æ ·çŽ‡æµ‹é‡é™€èžºä»ªçš„方差,则方差ä¸åº”超过 1e-7 rad^2/s^2。 + </li> + <li>[SR] 强烈建议现有的åŠæ–°çš„ Android 设备实现 <code>SENSOR_TYPE_GYROSCOPE_UNCALIBRATED</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[SR] 强烈建议设备在室温下处于é™æ¢çŠ¶æ€æ—¶çš„æ ¡å‡†è¯¯å·®å°äºŽ 0.01 rad/s。 + </li> + <li>应以至少 200 Hz 的频率报告事件。 + </li> + </ul> + <p> +如果设备实现包å«é™€èžºä»ªã€åŠ é€Ÿåº¦è®¡ä¼ æ„Ÿå™¨å’Œç£åŠ›è®¡ä¼ 感器,则: + </p> + <ul> + <li>[C-2-1] 必须实现 <code>TYPE_ROTATION_VECTOR</code> å¤åˆä¼ 感器。 + </li> + </ul> + <p> +如果设备实现包å«é™€èžºä»ªå’ŒåŠ é€Ÿåº¦è®¡ä¼ æ„Ÿå™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 必须实现 <code>TYPE_GRAVITY</code> å’Œ <code>TYPE_LINEAR_ACCELERATION</code> å¤åˆä¼ 感器。 + </li> + <li>[SR] 强烈建议现有的åŠæ–°çš„ Android 设备实现 <code>TYPE_GAME_ROTATION_VECTOR</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>应实现 <code>TYPE_GAME_ROTATION_VECTOR</code> å¤åˆä¼ 感器。 + </li> + </ul> + <h4 id="7_3_5_barometer"> +7.3.5. 气压计 + </h4> + <ul> + <li>设备实现应包å«æ°”åŽ‹è®¡ï¼ˆçŽ¯å¢ƒæ°”åŽ‹ä¼ æ„Ÿå™¨ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现包å«æ°”压计,则: + </p> + <ul> + <li>[C-1-1] 必须实现并报告 <code>TYPE_PRESSURE</code> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[C-1-2] 必须能够以至少 5 Hz 的频率报告事件。 + </li> + <li>[C-1-3] 必须进行温度补å¿ã€‚ + </li> + <li>[SR] 强烈建议能够报告 300hPa 到 1100hPa 之间的压力测é‡ç»“果。 + </li> + <li>ç»å¯¹ç²¾åº¦åº”为 1hPa。 + </li> + <li>相对精度应为 20hPa 范围内误差ä¸è¶…过 0.12hPa(相当于在海平é¢ä¸Š 200m å·¦å³çš„å˜åŒ–误差ä¸è¶…过 1m å·¦å³ï¼‰ã€‚ + </li> + </ul> + <h4 id="7_3_6_thermometer"> +7.3.6. 温度计 + </h4> + <p> +设备实现:å¯ä»¥åŒ…å«çŽ¯å¢ƒæ¸©åº¦è®¡ï¼ˆæ¸©åº¦ä¼ 感器)。<em></em> å¯ä»¥ï¼ˆä½†ä¸åº”ï¼‰åŒ…å« CPU æ¸©åº¦ä¼ æ„Ÿå™¨ã€‚ + </p> + <p> +如果设备实现包å«çŽ¯å¢ƒæ¸©åº¦è®¡ï¼ˆæ¸©åº¦ä¼ 感器),则: + </p> + <ul> + <li>[C-1-1] 必须将其定义为 <code>SENSOR_TYPE_AMBIENT_TEMPERATURE</code>,并且必须从用户与设备互动的ä½ç½®ï¼ˆå®¤å†…/车厢内)测é‡çŽ¯å¢ƒæ¸©åº¦ï¼ˆä»¥æ‘„æ°åº¦ä¸ºå•ä½ï¼‰ã€‚ + </li> + <li>[C-1-2] 必须将其定义为 <code>SENSOR_TYPE_TEMPERATURE</code>。 + </li> + <li>[C-1-3] 必须测é‡è®¾å¤‡ CPU 的温度。 + </li> + <li>[C-1-4] ä¸å¾—测é‡ä»»ä½•å…¶ä»–温度。 + </li> + </ul> + <p> +请注æ„,<code>SENSOR_TYPE_TEMPERATURE</code> ä¼ æ„Ÿå™¨ç±»åž‹åœ¨ Android 4.0 ä¸å·²è¢«å¼ƒç”¨ã€‚ + </p> + <h4 id="7_3_7_photometer"> +7.3.7. 光度计 + </h4> + <ul> + <li>设备实现å¯ä»¥åŒ…å«å…‰åº¦è®¡ï¼ˆçŽ¯å¢ƒå…‰ä¼ 感器)。 + </li> + </ul> + <h4 id="7_3_8_proximity_sensor"> +7.3.8. è¿‘ç¨‹ä¼ æ„Ÿå™¨ + </h4> + <ul> + <li>设备实现å¯ä»¥åŒ…å«è¿‘ç¨‹ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +如果设备实现包å«è¿‘ç¨‹ä¼ æ„Ÿå™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须在与å±å¹•ç›¸åŒçš„æ–¹å‘上测é‡ç‰©ä½“çš„æŽ¥è¿‘åº¦ã€‚ä¹Ÿå°±æ˜¯è¯´ï¼Œè¿‘ç¨‹ä¼ æ„Ÿå™¨å¿…é¡»æœå‘适当方å‘,以便检测é è¿‘å±å¹•çš„ç‰©ä½“ï¼Œå› ä¸ºæ¤ç±»ä¼ 感器的主è¦ç”¨é€”是检测用户æ£åœ¨ä½¿ç”¨çš„手机。如果设备实现包å«æœå‘任何其他方å‘çš„è¿‘ç¨‹ä¼ æ„Ÿå™¨ï¼Œåˆ™ä¸å¾—通过该 API 访问æ¤ç±»ä¼ 感器。 + </li> + <li>[C-1-2] 精度必须至少为 1 ä½ã€‚ + </li> + </ul> + <h4 id="7_3_9_high_fidelity_sensors"> +7.3.9. 高ä¿çœŸä¼ 感器 + </h4> + <p> +如果设备实现包å«ä¸€å¥—è´¨é‡æ›´é«˜çš„ä¼ æ„Ÿå™¨ï¼ˆå¦‚æœ¬èŠ‚ä¸å®šä¹‰ï¼‰ï¼Œå¹¶ä½¿å…¶å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] 必须通过 <code>android.hardware.sensor.hifi_sensors</code> åŠŸèƒ½æ ‡è®°æ ‡è¯†è¯¥åŠŸèƒ½ã€‚ + </li> + </ul> + <p> +如果设备实现声明了 <code>android.hardware.sensor.hifi_sensors</code>,则: + </p> + <ul> + <li> + <p> +[C-2-1] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_ACCELEROMETER</code> ä¼ æ„Ÿå™¨ï¼š + </p> + <ul> + <li>测é‡èŒƒå›´å¿…须至少在 -8g 到 +8g 之间,应在 -16g 到 +16g 之间。 + </li> + <li>测é‡åˆ†è¾¨çŽ‡å¿…须至少为 2048 LSB/g。 + </li> + <li>最å°æµ‹é‡é¢‘率必须ç‰äºŽæˆ–低于 12.5 Hz。 + </li> + <li>最大测é‡é¢‘率必须ç‰äºŽæˆ–高于 400 Hzï¼Œä¸”åº”æ”¯æŒ SensorDirectChannel <a href="https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#RATE_VERY_FAST"><code>RATE_VERY_FAST</code></a>。 + </li> + <li>测é‡å™ªå£°ä¸å¾—高于 400 μg/√Hz。 + </li> + <li>必须实现这ç§ä¼ 感器的éžå”¤é†’å½¢å¼ï¼Œå¹¶ä¸”至少能够缓冲 3000 ä¸ªä¼ æ„Ÿå™¨äº‹ä»¶ã€‚ + </li> + <li>批处ç†åŠŸè€—ä¸å¾—高于 3 mW。 + </li> + <li>[C-SR] 强烈建议采用 3dB 的测é‡å¸¦å®½ä»¥åŠè‡³å°‘ 80% 的奈奎斯特频率,且æ¤å¸¦å®½ä¸å…·æœ‰ç™½å™ªéŸ³å£°è°±ã€‚ + </li> + <li>åœ¨å®¤æ¸©ä¸‹æµ‹è¯•çš„åŠ é€Ÿåº¦éšæœºæ¸¸èµ°åº”å°äºŽ 30 μg/√Hz。 + </li> + <li>åå·®éšæ¸©åº¦çš„å˜åŒ–应å°äºŽç‰äºŽ +/- 1mg/°C。 + </li> + <li>最佳拟åˆçº¿éžçº¿æ€§åº¦åº”å°äºŽç‰äºŽ 0.5%,并且çµæ•åº¦éšæ¸©åº¦çš„å˜åŒ–应å°äºŽç‰äºŽ 0.03%/C°。 + </li> + <li>在设备工作温度范围内,交å‰è½´çµæ•åº¦åº”低于 2.5%,其å˜ä½“应低于 0.2%。 + </li> + </ul> + </li> + <li> + <p> +[C-2-2] 必须具有 <code>TYPE_ACCELEROMETER_UNCALIBRATED</code>,并且其符åˆä¸Ž <code>TYPE_ACCELEROMETER</code> 相åŒçš„è´¨é‡è¦æ±‚。 + </p> + </li> + <li> + <p> +[C-2-3] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_GYROSCOPE</code> ä¼ æ„Ÿå™¨ï¼š + </p> + <ul> + <li>测é‡èŒƒå›´å¿…须至少在 -1000 dps 到 +1000 dps 之间。 + </li> + <li>测é‡åˆ†è¾¨çŽ‡å¿…须至少为 16 LSB/dps。 + </li> + <li>最å°æµ‹é‡é¢‘率必须ç‰äºŽæˆ–低于 12.5 Hz。 + </li> + <li>最大测é‡é¢‘率必须ç‰äºŽæˆ–高于 400 Hzï¼Œä¸”åº”æ”¯æŒ SensorDirectChannel <a href="https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#RATE_VERY_FAST"><code>RATE_VERY_FAST</code></a>。 + </li> + <li>测é‡å™ªå£°ä¸å¾—高于 0.014°/s/√Hz。 + </li> + <li>[C-SR] 强烈建议采用 3dB 的测é‡å¸¦å®½ä»¥åŠè‡³å°‘ 80% 的奈奎斯特频率,且æ¤å¸¦å®½ä¸å…·æœ‰ç™½å™ªéŸ³å£°è°±ã€‚ + </li> + <li>在室温下测试的速率éšæœºæ¸¸èµ°åº”å°äºŽ 0.001 °/s √Hz。 + </li> + <li>åå·®éšæ¸©åº¦çš„å˜åŒ–应å°äºŽç‰äºŽ +/- 0.05 °/s/°C。 + </li> + <li>çµæ•åº¦éšæ¸©åº¦çš„å˜åŒ–应å°äºŽç‰äºŽ 0.02%/°C。 + </li> + <li>最佳拟åˆçº¿éžçº¿æ€§åº¦åº”å°äºŽç‰äºŽ 0.2%。 + </li> + <li>噪声密度应å°äºŽç‰äºŽ 0.007 °/s/√Hz。 + </li> + <li>当设备处于é™æ€æ—¶ï¼Œ10-40 ℃ æ¸©åº¦èŒƒå›´å†…çš„æ ¡å‡†è¯¯å·®åº”å°äºŽ 0.002 rad/s。 + </li> + <li>G çµæ•åº¦åº”低于 0.1°/s/g。 + </li> + <li>在设备工作温度范围内,交å‰è½´çµæ•åº¦åº”低于 4.0%,其å˜ä½“应低于 0.3%。 + </li> + </ul> + </li> + <li> + <p> +[C-2-4] 必须具有 <code>TYPE_GYROSCOPE_UNCALIBRATED</code>,并且其符åˆä¸Ž <code>TYPE_GYROSCOPE</code> 相åŒçš„è´¨é‡è¦æ±‚。 + </p> + </li> + <li> + <p> +[C-2-5] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_GEOMAGNETIC_FIELD</code> ä¼ æ„Ÿå™¨ï¼š + </p> + <ul> + <li>测é‡èŒƒå›´å¿…须至少在 -900 uT 到 +900 uT 之间。 + </li> + <li>测é‡åˆ†è¾¨çŽ‡å¿…须至少为 5 LSB/uT。 + </li> + <li>最å°æµ‹é‡é¢‘率必须ç‰äºŽæˆ–低于 5 Hz。 + </li> + <li>最大测é‡é¢‘率必须ç‰äºŽæˆ–高于 50 Hz。 + </li> + <li>测é‡å™ªå£°ä¸å¾—高于 0.5 uT。 + </li> + </ul> + </li> + <li> + <p> +[C-2-6] 必须具有 <code>TYPE_MAGNETIC_FIELD_UNCALIBRATED</code>,并且其除了符åˆä¸Ž <code>TYPE_GEOMAGNETIC_FIELD</code> 相åŒçš„è´¨é‡è¦æ±‚外,还è¦ç¬¦åˆä»¥ä¸‹è¦æ±‚: + </p> + <ul> + <li>必须实现这ç§ä¼ 感器的éžå”¤é†’å½¢å¼ï¼Œå¹¶ä¸”至少能够缓冲 600 ä¸ªä¼ æ„Ÿå™¨äº‹ä»¶ã€‚ + </li> + <li>[C-SR] 如果报告的速率为 50 Hz 或更高,强烈建议白噪声谱在 1 Hz 到至少 10 Hz 之间。 + </li> + </ul> + </li> + <li> + <p> +[C-2-7] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_PRESSURE</code> ä¼ æ„Ÿå™¨ï¼š + </p> + <ul> + <li>测é‡èŒƒå›´å¿…须至少在 300 hPa 到 1100 hPa 之间。 + </li> + <li>测é‡åˆ†è¾¨çŽ‡å¿…须至少为 80 LSB/hPa。 + </li> + <li>最å°æµ‹é‡é¢‘率必须ç‰äºŽæˆ–低于 1 Hz。 + </li> + <li>最大测é‡é¢‘率必须ç‰äºŽæˆ–高于 10 Hz。 + </li> + <li>测é‡å™ªå£°ä¸å¾—高于 2 Pa/√Hz。 + </li> + <li>必须实现这ç§ä¼ 感器的éžå”¤é†’å½¢å¼ï¼Œå¹¶ä¸”至少能够缓冲 300 ä¸ªä¼ æ„Ÿå™¨äº‹ä»¶ã€‚ + </li> + <li>批处ç†åŠŸè€—ä¸å¾—高于 2 mW。 + </li> + </ul> + </li> + <li>[C-2-8] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_GAME_ROTATION_VECTOR</code> ä¼ æ„Ÿå™¨ï¼š + <ul> + <li>必须实现这ç§ä¼ 感器的éžå”¤é†’å½¢å¼ï¼Œå¹¶ä¸”至少能够缓冲 300 ä¸ªä¼ æ„Ÿå™¨äº‹ä»¶ã€‚ + </li> + <li>批处ç†åŠŸè€—ä¸å¾—高于 4 mW。 + </li> + </ul> + </li> + <li>[C-2-9] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_SIGNIFICANT_MOTION</code> ä¼ æ„Ÿå™¨ï¼š + <ul> + <li>当设备处于é™æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 0.5 mW;当设备处于动æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 1.5 mW。 + </li> + </ul> + </li> + <li>[C-2-10] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_STEP_DETECTOR</code> ä¼ æ„Ÿå™¨ï¼š + <ul> + <li>必须实现这ç§ä¼ 感器的éžå”¤é†’å½¢å¼ï¼Œå¹¶ä¸”至少能够缓冲 100 ä¸ªä¼ æ„Ÿå™¨äº‹ä»¶ã€‚ + </li> + <li>当设备处于é™æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 0.5 mW;当设备处于动æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 1.5 mW。 + </li> + <li>批处ç†åŠŸè€—ä¸å¾—高于 4 mW。 + </li> + </ul> + </li> + <li>[C-2-11] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TYPE_STEP_COUNTER</code> ä¼ æ„Ÿå™¨ï¼š + <ul> + <li>当设备处于é™æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 0.5 mW;当设备处于动æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 1.5 mW。 + </li> + </ul> + </li> + <li>[C-2-12] 必须具有符åˆä»¥ä¸‹è¦æ±‚çš„ <code>TILT_DETECTOR</code> ä¼ æ„Ÿå™¨ï¼š + <ul> + <li>当设备处于é™æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 0.5 mW;当设备处于动æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 1.5 mW。 + </li> + </ul> + </li> + <li>[C-2-13] åŠ é€Ÿåº¦è®¡ã€é™€èžºä»ªå’Œç£åŠ›è®¡æŠ¥å‘Šçš„åŒä¸€ç‰©ç†äº‹ä»¶çš„事件时间戳之差必须在 2.5 æ¯«ç§’ä»¥å†…ã€‚åŠ é€Ÿåº¦è®¡å’Œé™€èžºä»ªæŠ¥å‘Šçš„åŒä¸€ç‰©ç†äº‹ä»¶çš„事件时间戳之差应在 0.25 毫秒以内。 + </li> + <li>[C-2-14] é™€èžºä»ªä¼ æ„Ÿå™¨äº‹ä»¶æ—¶é—´æˆ³å¿…é¡»ä¸Žæ‘„åƒå¤´å系统采用相åŒçš„时间基准,并且误差在 1 毫秒以内。 + </li> + <li>[C-2-15] 当上述任一物ç†ä¼ 感器上的数æ®å¯ä¾›åº”用使用时,必须在 5 æ¯«ç§’å†…å°†æ ·æœ¬æ供给应用。 + </li> + <li>[C-2-16] 如果å¯ç”¨äº†ä»¥ä¸‹ä¼ 感器的任æ„组åˆï¼Œå½“设备处于é™æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 0.5 mW;当设备处于动æ€æ—¶ï¼ŒåŠŸè€—ä¸å¾—高于 2.0 mW: + <ul> + <li> + <code>SENSOR_TYPE_SIGNIFICANT_MOTION</code> + </li> + <li> + <code>SENSOR_TYPE_STEP_DETECTOR</code> + </li> + <li> + <code>SENSOR_TYPE_STEP_COUNTER</code> + </li> + <li> + <code>SENSOR_TILT_DETECTORS</code> + </li> + </ul> + </li> + <li>[C-2-17] å¯ä»¥æœ‰ <code>TYPE_PROXIMITY</code> ä¼ æ„Ÿå™¨ï¼Œä½†å¦‚æžœå˜åœ¨ï¼Œåˆ™å¿…须至少能够缓冲 100 ä¸ªä¼ æ„Ÿå™¨äº‹ä»¶ã€‚ + </li> + </ul> + <p> +请注æ„,本节ä¸çš„所有功耗è¦æ±‚都ä¸åŒ…括应用处ç†å™¨çš„功耗。它包å«çš„æ˜¯æ•´ä¸ªä¼ æ„Ÿå™¨é“¾ï¼ˆä¼ æ„Ÿå™¨ã€æ‰€æœ‰è¾…助电路ã€æ‰€æœ‰ä¸“ç”¨çš„ä¼ æ„Ÿå™¨å¤„ç†ç³»ç»Ÿï¼Œç‰ç‰ï¼‰çš„功耗。 + </p> + <p> +如果设备实现支æŒç›´æŽ¥ä¼ 感器,则: + </p> + <ul> + <li>[C-3-1] 必须通过 <a href="https://developer.android.com/reference/android/hardware/Sensor.html#isDirectChannelTypeSupported%28int%29"><code>isDirectChannelTypeSupported</code></a> å’Œ <a href="https://developer.android.com/reference/android/hardware/Sensor.html#getHighestDirectReportRateLevel%28%29"><code>getHighestDirectReportRateLevel</code></a> API æ£ç¡®å£°æ˜Žæ”¯æŒç›´æŽ¥é€šé“类型和直接报告频率级别。 + </li> + <li>[C-3-2] 对于声明支æŒä¼ 感器直接通é“çš„æ‰€æœ‰ä¼ æ„Ÿå™¨ï¼Œéƒ½å¿…é¡»è‡³å°‘æ”¯æŒä»¥ä¸‹ä¸¤ç§ä¼ 感器直接通é“类型之一。 + <ul> + <li> + <a href="https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_HARDWARE_BUFFER"><code>TYPE_HARDWARE_BUFFER</code></a> + </li> + <li> + <a href="https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_MEMORY_FILE"><code>TYPE_MEMORY_FILE</code></a> + </li> + </ul> + </li> + <li>对于以下类型的主è¦ä¼ 感器(éžå”¤é†’å˜ä½“),应支æŒé€šè¿‡ä¼ 感器直接通é“报告事件: + <ul> + <li> + <code>TYPE_ACCELEROMETER</code> + </li> + <li> + <code>TYPE_ACCELEROMETER_UNCALIBRATED</code> + </li> + <li> + <code>TYPE_GYROSCOPE</code> + </li> + <li> + <code>TYPE_GYROSCOPE_UNCALIBRATED</code> + </li> + <li> + <code>TYPE_MAGNETIC_FIELD</code> + </li> + <li> + <code>TYPE_MAGNETIC_FIELD_UNCALIBRATED</code> + </li> + </ul> + </li> + </ul> + <h4 id="7_3_10_biometric_sensors"> +7.3.10. ç”Ÿç‰©è¯†åˆ«ä¼ æ„Ÿå™¨ + </h4> + <h5 id="7_3_10_1_fingerprint_sensors"> +7.3.10.1. æŒ‡çº¹ä¼ æ„Ÿå™¨</h5> + <p> +如果设备实现包å«å®‰å…¨é”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>应包å«æŒ‡çº¹ä¼ 感器。 + </li> + </ul> + <p> +如果设备实现包å«æŒ‡çº¹ä¼ 感器,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»å£°æ˜Žæ”¯æŒ <code>android.hardware.fingerprint</code> 功能。 + </li> + <li>[C-1-2] 必须完整实现<a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">对应的 API</a>(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-3] 错误接å—率ä¸å¾—高于 0.002%。 + </li> + <li>[SR] 强烈建议将欺骗和冒å攻击的接å—率设为ä¸é«˜äºŽ 7%。 + </li> + <li>[C-1-4] 必须披露æ¤æ¨¡å¼çš„安全性å¯èƒ½ä¸åŠå®‰å…¨ç³»æ•°é«˜çš„ PIN ç ã€å›¾æ¡ˆæˆ–密ç ,并在欺骗和冒å攻击的接å—率高于 7% 时明确列举å¯ç”¨æ¤æ¨¡å¼çš„风险。 + </li> + <li>[C-1-5] å°è¯•æŒ‡çº¹éªŒè¯çš„失败次数达到 5 次åŽï¼Œå¿…é¡»é™åˆ¶åœ¨è‡³å°‘ 30 秒内ä¸èƒ½å†æ¬¡è¿›è¡ŒæŒ‡çº¹éªŒè¯ã€‚ + </li> + <li>[C-1-6] 必须实现有硬件支æŒçš„ Keystore,并在å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒ (TEE) ä¸æˆ–åœ¨å…·æœ‰é€šå‘ TEE 的安全通é“的芯片上执行指纹匹é…。 + </li> + <li>[C-1-7] 必须对所有å¯è¯†åˆ«çš„指纹数æ®è¿›è¡ŒåŠ 密,并对其采用密ç å½¢å¼çš„身份验è¯æœºåˆ¶ï¼Œä»¥ç¡®ä¿åœ¨å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒ (TEE) æˆ–å…·æœ‰é€šå‘ TEE 的安全通é“çš„èŠ¯ç‰‡ä¹‹å¤–æ— æ³•èŽ·å–ã€è¯»å–或更改这些数æ®ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上的<a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">实现指å—</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-8] 必须通过以下方å¼é˜²æ¢åœ¨æ²¡æœ‰å…ˆå»ºç«‹ä¿¡ä»»é“¾çš„æƒ…å†µä¸‹æ·»åŠ æŒ‡çº¹ï¼šè®©ç”¨æˆ·ç¡®è®¤çŽ°æœ‰è®¾å¤‡å‡æ®ï¼ˆPIN ç /图案/密ç ï¼Œå— TEE ä¿æŠ¤ï¼‰æˆ–æ·»åŠ æ–°è®¾å¤‡å‡æ®ï¼›Android å¼€æºé¡¹ç›®å®žçŽ°åœ¨æ¡†æž¶ä¸æ供了实现这一点的机制。 + </li> + <li>[C-1-9] ä¸å¾—å…许第三方应用区分å„个指纹。 + </li> + <li>[C-1-10] å¿…é¡»éµä»Ž DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT æ ‡è®°ã€‚ + </li> + <li>[C-1-11] 如果从 Android 6.0 之å‰çš„版本进行了å‡çº§ï¼Œåˆ™å¿…须安全è¿ç§»æŒ‡çº¹æ•°æ®ä»¥æ»¡è¶³ä¸Šè¿°è¦æ±‚,或者将这些指纹数æ®ç§»é™¤ã€‚ + </li> + <li>[C-1-12] 必须在移除用户的å¸å·ï¼ˆåŒ…括æ¢å¤å‡ºåŽ‚è®¾ç½®ï¼‰æ—¶å®Œå…¨åˆ é™¤æ‰€æœ‰å¯è¯†åˆ«çš„指纹数æ®ã€‚ + </li> + <li>[C-1-13] ä¸å¾—å…许应用处ç†å™¨å¯¹å¯è¯†åˆ«çš„指纹数æ®åŠå…¶è¡ç”Ÿçš„任何数æ®ï¼ˆä¾‹å¦‚åµŒå…¥ï¼‰è¿›è¡ŒæœªåŠ å¯†çš„è®¿é—®ã€‚ + </li> + <li>[SR] 强烈建议确ä¿åœ¨è®¾å¤‡ä¸Šæµ‹å¾—的错误拒ç»çŽ‡ä½ŽäºŽ 10%。 + </li> + <li>[SR] 对于 1 个已注册的指纹,强烈建议确ä¿å»¶è¿Ÿæ—¶é—´ï¼ˆå³æµ‹å¾—çš„ä»Žè§¦æ‘¸æŒ‡çº¹ä¼ æ„Ÿå™¨åˆ°å±å¹•è§£é”的时间)低于 1 秒。 + </li> + <li>应使用 Android å¼€æºé¡¹ç›®ä¸æ供的 Android Fingerprint å›¾æ ‡ã€‚ + </li> + </ul> + <h5 id="7_3_10_2_other_biometric_sensors"> +7.3.10.2. å…¶ä»–ç”Ÿç‰©è¯†åˆ«ä¼ æ„Ÿå™¨</h5> + <p> +如果设备实现包å«ä¸€ä¸ªæˆ–多个éžæŒ‡çº¹åž‹ç”Ÿç‰©è¯†åˆ«ä¼ æ„Ÿå™¨ï¼Œå¹¶ä½¿è¿™äº›ä¼ æ„Ÿå™¨å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] 错误接å—率ä¸å¾—高于 0.002%。 + </li> + <li>[C-SR] 强烈建议将欺骗和冒å攻击的接å—率设为ä¸é«˜äºŽ 7%。 + </li> + <li>[C-1-2] 必须披露æ¤æ¨¡å¼çš„安全性å¯èƒ½ä¸åŠå®‰å…¨ç³»æ•°é«˜çš„ PIN ç ã€å›¾æ¡ˆæˆ–密ç ,并在欺骗和冒å攻击的接å—率高于 7% 时明确列举å¯ç”¨æ¤æ¨¡å¼çš„风险。 + </li> + <li>[C-1-3] å°è¯•ç”Ÿç‰©è¯†åˆ«éªŒè¯çš„失败次数达到 5 次åŽï¼Œå¿…é¡»é™åˆ¶åœ¨è‡³å°‘ 30 秒内ä¸èƒ½å†æ¬¡è¿›è¡Œç”Ÿç‰©è¯†åˆ«éªŒè¯ï¼ŒéªŒè¯å¤±è´¥æ˜¯æŒ‡é‡‡é›†çš„è¶³å¤Ÿæœ‰æ•ˆä¿¡æ¯ (ACQUIRED_GOOD) 与已注册的生物识别信æ¯ä¸åŒ¹é… + </li> + <li>[C-1-4] 必须实现有硬件支æŒçš„密钥å˜å‚¨åŒºï¼Œå¹¶åœ¨å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒ (TEE) ä¸æˆ–åœ¨å…·æœ‰é€šå‘ TEE 的安全通é“的芯片上执行生物识别匹é…。 + </li> + <li>[C-1-5] 必须对所有å¯è¯†åˆ«çš„æ•°æ®è¿›è¡ŒåŠ 密,并对其采用密ç å½¢å¼çš„身份验è¯æœºåˆ¶ï¼Œä»¥ç¡®ä¿åœ¨å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒ (TEE) æˆ–å…·æœ‰é€šå‘ TEE 的安全通é“çš„èŠ¯ç‰‡ä¹‹å¤–æ— æ³•èŽ·å–ã€è¯»å–或更改这些数æ®ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上的<a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">实现指å—</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-6] 必须通过以下方å¼é˜²æ¢åœ¨æ²¡æœ‰å…ˆå»ºç«‹ä¿¡ä»»é“¾çš„æƒ…å†µä¸‹æ·»åŠ æ–°çš„ç”Ÿç‰©è¯†åˆ«ä¿¡æ¯ï¼šè®©ç”¨æˆ·ç¡®è®¤çŽ°æœ‰è®¾å¤‡å‡æ®ï¼ˆPIN ç /图案/密ç ï¼Œå— TEE ä¿æŠ¤ï¼‰æˆ–æ·»åŠ æ–°è®¾å¤‡å‡æ®ï¼›Android å¼€æºé¡¹ç›®å®žçŽ°åœ¨æ¡†æž¶ä¸æ供了实现这一点的机制。 + </li> + <li>[C-1-7] ä¸å¾—å…许第三方应用区分已注册的生物识别信æ¯ã€‚ + </li> + <li>[C-1-8] å¿…é¡»éµä»Žç›¸åº”生物识别的å„ä¸ªæ ‡è®°ï¼ˆå³ <code>DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT</code>ã€<code>DevicePolicymanager.KEYGUARD_DISABLE_FACE</code> 或 <code>DevicePolicymanager.KEYGUARD_DISABLE_IRIS</code>)。 + </li> + <li>[C-1-9] 必须在移除用户的å¸å·ï¼ˆåŒ…括æ¢å¤å‡ºåŽ‚è®¾ç½®ï¼‰æ—¶å®Œå…¨åˆ é™¤æ‰€æœ‰å¯è¯†åˆ«çš„生物识别数æ®ã€‚ + </li> + <li>[C-1-10] ä¸å¾—在 TEE 范围之外å…许应用处ç†å™¨å¯¹å¯è¯†åˆ«çš„生物识别数æ®åŠå…¶è¡ç”Ÿçš„任何数æ®ï¼ˆä¾‹å¦‚åµŒå…¥ï¼‰è¿›è¡ŒæœªåŠ å¯†çš„è®¿é—®ã€‚ + </li> + <li>[C-SR] 强烈建议确ä¿åœ¨è®¾å¤‡ä¸Šæµ‹å¾—的错误拒ç»çŽ‡ä½ŽäºŽ 10%。 + </li> + <li>[C-SR] 对于æ¯ä¸ªå·²æ³¨å†Œçš„生物识别信æ¯ï¼Œå¼ºçƒˆå»ºè®®ç¡®ä¿å»¶è¿Ÿæ—¶é—´ï¼ˆå³ä»Žæ£€æµ‹åˆ°ç”Ÿç‰©è¯†åˆ«ä¿¡æ¯åˆ°å±å¹•è§£é”的时间)低于 1 秒。 + </li> + </ul> + <h4 id="7_3_11_android_automotive-only_sensors"> +7.3.11. Android Automotive ä¸“ç”¨ä¼ æ„Ÿå™¨ + </h4> + <p> +<code>android.car.CarSensorManager API</code> ä¸å¯¹ Automotive ä¸“ç”¨ä¼ æ„Ÿå™¨è¿›è¡Œäº†å®šä¹‰ã€‚ + </p> + <h5 id="7_3_11_1_current_gear"> +7.3.11.1. 用电装置 + </h5> + <p> +请å‚阅<a href="#2_5_1_hardware">第 2.5.1 节</a>,了解设备专属è¦æ±‚。 + </p> + <h5 id="7_3_11_2_day_night_mode"> +7.3.11.2. 日间/å¤œé—´æ¨¡å¼ + </h5> + <p> +请å‚阅<a href="#2_5_1_hardware">第 2.5.1 节</a>,了解设备专属è¦æ±‚。 + </p> + <h5 id="7_3_11_3_driving_status"> +7.3.11.3. é©¾é©¶çŠ¶æ€ + </h5> + <p> +æ¤è¦æ±‚已被弃用。 + </p> + <h5 id="7_3_11_4_wheel_speed"> +7.3.11.4. 车轮转速 + </h5> + <p> +请å‚阅<a href="#2_5_1_hardware">第 2.5.1 节</a>,了解设备专属è¦æ±‚。 + </p> + <h5 id="7_3_11_5_parking_brake"> +7.3.11.5. 驻车制动 + </h5> + <p> +请å‚阅<a href="#2_5_1_hardware">第 2.5.1 节</a>,了解设备专属è¦æ±‚。 + </p> + <h3 id="7_3_12_pose_sensor"> +7.3.12. å§¿åŠ¿ä¼ æ„Ÿå™¨ + </h3> + <p> +设备实现: + </p> + <ul> + <li>å¯ä»¥æ”¯æŒå…·æœ‰ 6 ä¸ªè‡ªç”±åº¦çš„å§¿åŠ¿ä¼ æ„Ÿå™¨ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒå…·æœ‰ 6 ä¸ªè‡ªç”±åº¦çš„å§¿åŠ¿ä¼ æ„Ÿå™¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须实现并报告 <a href="https://developer.android.com/reference/android/hardware/Sensor.html#TYPE_POSE_6DOF"><code>TYPE_POSE_6DOF</code></a> ä¼ æ„Ÿå™¨ã€‚ + </li> + <li>[C-1-2] 必须比åªä½¿ç”¨æ—‹è½¬çŸ¢é‡æ›´å‡†ç¡®ã€‚ + </li> + </ul> + <h3 id="7_4_data_connectivity"> +7.4. æ•°æ®è¿žæŽ¥ + </h3> + <h4 id="7_4_1_telephony"> +7.4.1. ç”µè¯ + </h4> + <p> +在 Android API 和本文档ä¸ï¼Œâ€œç”µè¯â€ä¸“指与通过 GSM 或 CDMA 网络进行è¯éŸ³é€šè¯å’Œå‘é€çŸä¿¡ç›¸å…³çš„硬件。虽然这些è¯éŸ³é€šè¯å¯èƒ½é‡‡ç”¨ä¹Ÿå¯èƒ½ä¸é‡‡ç”¨åˆ†å°äº¤æ¢æŠ€æœ¯ï¼Œä½†éƒ½æ˜¯ä¸ºäº†ä½¿ Android 被视为独立于å¯é€šè¿‡åŒä¸€ç½‘络实现的所有数æ®è¿žæŽ¥ã€‚也就是说,Android“电è¯â€åŠŸèƒ½å’Œ API 专指è¯éŸ³é€šè¯å’ŒçŸä¿¡ã€‚ä¾‹å¦‚ï¼Œå¦‚æžœè®¾å¤‡æ— æ³•æ‰“ç”µè¯æˆ–收å‘çŸä¿¡ï¼Œåˆ™æ— 论它们是å¦ä½¿ç”¨ç§»åŠ¨ç½‘络进行数æ®è¿žæŽ¥ï¼Œéƒ½ä¸ä¼šè¢«è§†ä¸ºç”µè¯è®¾å¤‡ã€‚ + </p> + <ul> + <li>Android å¯ä»¥ç”¨åœ¨ä¸åŒ…å«ç”µè¯ç¡¬ä»¶çš„设备上。也就是说,Android å¯ä¸Žéžç”µè¯è®¾å¤‡å…¼å®¹ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« GSM 或 CDMA 电è¯ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ ¹æ®è¯¥æŠ€æœ¯å£°æ˜Ž <code>android.hardware.telephony</code> åŠŸèƒ½æ ‡è®°å’Œå…¶ä»–ååŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-2] 必须完全支æŒé’ˆå¯¹è¯¥æŠ€æœ¯çš„ API。 + </li> + </ul> + <p> +如果设备实现ä¸åŒ…å«ç”µè¯ç¡¬ä»¶ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须将所有相关 API 实现为空æ“作。 + </li> + </ul> + <h5 id="7_4_1_1_number_blocking_compatibility"> +7.4.1.1. å·ç å±è”½å…¼å®¹æ€§ + </h5> + <p> +如果设备实现报告 <code>android.hardware.telephony feature</code>,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒå·ç å±è”½ã€‚ + </li> + <li>[C-1-2] 必须完整实现 <a href="http://developer.android.com/reference/android/provider/BlockedNumberContract.html"><code>BlockedNumberContract</code></a> 和对应的 API(如 SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-3] å¿…é¡»å±è”½ä»Žåˆ—入“BlockedNumberProviderâ€çš„电è¯å·ç 打æ¥çš„所有电è¯å’Œå‘æ¥çš„所有çŸä¿¡ï¼Œè€Œä¸ä¸Žåº”用进行任何交互。唯一例外是当å·ç å±è”½è¢«ä¸´æ—¶è§£é™¤æ—¶ï¼ˆå¦‚ SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-4] ä¸å¾—将被å±è”½çš„呼å«å†™å…¥<a href="http://developer.android.com/reference/android/provider/CallLog.html">å¹³å°é€šè¯è®°å½•æ供程åº</a>。 + </li> + <li>[C-1-5] ä¸å¾—将被å±è”½çš„çŸä¿¡å†™å…¥<a href="http://developer.android.com/reference/android/provider/Telephony.html">电è¯æ供程åº</a>。 + </li> + <li>[C-1-6] 必须实现被å±è”½å·ç 管ç†ç•Œé¢ï¼Œç³»ç»Ÿå¯å› 应 <code>TelecomManager.createManageBlockedNumbersIntent()</code> 方法返回的 Intent 打开该界é¢ã€‚ + </li> + <li>[C-1-7] ä¸å¾—å…许次è¦ç”¨æˆ·æŸ¥çœ‹æˆ–修改设备上被å±è”½çš„å·ç ï¼Œå› ä¸º Android å¹³å°ä¼šå‡è®¾ä¸»ç”¨æˆ·å¯¹è®¾å¤‡ä¸Šçš„电è¯æœåŠ¡ï¼ˆå•ä¸ªå®žä¾‹ï¼‰æ‹¥æœ‰å®Œå…¨æŽ§åˆ¶æƒã€‚对于次è¦ç”¨æˆ·ï¼Œå¿…é¡»éšè—所有与å±è”½ç›¸å…³çš„ç•Œé¢ï¼Œå¹¶ä¸”ä»å¿…é¡»éµä»Žå±è”½åˆ—表。 + </li> + <li>当设备更新到 Android 7.0 时,应将被å±è”½çš„å·ç è¿ç§»åˆ°æ供程åºã€‚ + </li> + </ul> + <h5 id="7_4_1_2_telecom_api"> +7.4.1.2. Telecom API + </h5> + <p> +如果设备实现报告 <code>android.hardware.telephony</code>,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ <code>ConnectionService</code> API(如 <a href="https://developer.android.com/guide/topics/connectivity/telecom/selfManaged.html">SDK</a> ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-2] 必须显示新的æ¥ç”µï¼Œå¹¶ä¸”当用户在进行æ¥è‡ªä¸æ”¯æŒå‘¼å«ä¿æŒåŠŸèƒ½ï¼ˆé€šè¿‡ <a href="https://developer.android.com/reference/android/telecom/Connection.html#CAPABILITY_SUPPORT_HOLD"><code>CAPABILITY_SUPPORT_HOLD</code></a> 指定)的第三方应用的通è¯æ—¶ï¼Œèƒ½å¤ŸæŽ¥å¬æˆ–æ‹’ç»æ¥ç”µã€‚ + </li> + <li> + <p> +[C-SR] 强烈建议告知用户接å¬æ¥ç”µä¼šå¯¼è‡´æ£åœ¨è¿›è¡Œçš„通è¯ä¸æ–。 + </p> + <p> +AOSP 实现通过æ醒å¼é€šçŸ¥æ»¡è¶³ä¸Šè¿°è¦æ±‚,æ¤ç±»é€šçŸ¥å¯æ示用户接å¬æ¥ç”µä¼šå¯¼è‡´å…¶ä»–通è¯ä¸æ–。 + </p> + </li> + <li> + <p> +[C-SR] 强烈建议预装默认的拨å·å™¨åº”用,当第三方应用将其 <code>PhoneAccount</code> 上的 <a href="https://developer.android.com/reference/android/telecom/PhoneAccount.html#EXTRA_LOG_SELF_MANAGED_CALLS"><code>EXTRA_LOG_SELF_MANAGED_CALLS</code></a> extra 键设为 <code>true</code> 时,该拨å·å™¨åº”用会显示通è¯è®°å½•æ¡ç›®ï¼Œå¹¶åœ¨é€šè¯è®°å½•ä¸æ˜¾ç¤ºç¬¬ä¸‰æ–¹åº”用的å称。 + </p> + </li> + <li>[C-SR] 强烈建议按如下所述为 <a href="https://developer.android.com/reference/android/telecom/package-summary.html"><code>android.telecom</code></a> API 处ç†éŸ³é¢‘耳机的 <code>KEYCODE_MEDIA_PLAY_PAUSE</code> å’Œ <code>KEYCODE_HEADSETHOOK</code> 事件: + <ul> + <li>在通è¯æœŸé—´æ£€æµ‹åˆ°çŸæŒ‰æŒ‰é”®äº‹ä»¶æ—¶è°ƒç”¨ <a href="https://developer.android.com/reference/android/telecom/Connection.html#onDisconnect%28%29"><code>Connection.onDisconnect()</code></a>。 + </li> + <li>在æ¥ç”µæœŸé—´æ£€æµ‹åˆ°çŸæŒ‰æŒ‰é”®äº‹ä»¶æ—¶è°ƒç”¨ <a href="https://developer.android.com/reference/android/telecom/Connection.html#onAnswer%28%29"><code>Connection.onAnswer()</code></a>。 + </li> + <li>在æ¥ç”µæœŸé—´æ£€æµ‹åˆ°é•¿æŒ‰æŒ‰é”®äº‹ä»¶æ—¶è°ƒç”¨ <a href="https://developer.android.com/reference/android/telecom/Connection.html#onReject%28%29"><code>Connection.onReject()</code></a>。 + </li> + <li>åˆ‡æ¢ <a href="https://developer.android.com/reference/android/telecom/CallAudioState.html"><code>CallAudioState</code></a> çš„é™éŸ³çŠ¶æ€ã€‚ + </li> + </ul> + </li> + </ul> + <h4 id="7_4_2_ieee_802_11_(wi-fi)"> +7.4.2. IEEE 802.11 (WLAN) + </h4> + <p> +设备实现: + </p> + <ul> + <li>应支æŒä¸€ç§æˆ–多ç§å½¢å¼çš„ 802.11。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ 802.11,并将该功能æ供给第三方应用使用,则: + </p> + <ul> + <li>[C-1-1] 必须实现对应的 Android API。 + </li> + <li>[C-1-2] å¿…é¡»æŠ¥å‘Šç¡¬ä»¶åŠŸèƒ½æ ‡è®° <code>android.hardware.wifi</code>。 + </li> + <li>[C-1-3] 必须实现<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">å¤šæ’ API</a>(如 SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-4] 必须支æŒå¤šæ’ DNS (mDNS),并且ä¸å¾—在æ“作过程ä¸çš„任何时间过滤 mDNS æ•°æ®åŒ… (224.0.0.251),其ä¸åŒ…括: + <ul> + <li>å³ä½¿å±å¹•æœªå¤„于活动状æ€æ—¶ã€‚ + </li> + <li>å³ä½¿å¤„于待机状æ€æ—¶ï¼ˆé€‚用于 Android TV 设备实现)。 + </li> + </ul> + </li> + <li>[C-1-5] ä¸å¾—å°† <a href="https://developer.android.com/reference/android/net/wifi/WifiManager.html#enableNetwork%28int%2C%20boolean%29"><code>WifiManager.enableNetwork()</code></a> API 方法调用视为充分的è¯æ®æ¥åˆ‡æ¢å½“å‰å¤„于活动状æ€çš„ <code>Network</code>(默认用于æ供应用æµé‡ï¼Œç”± <a href="https://developer.android.com/reference/android/net/ConnectivityManager#getActiveNetwork%28%29"><code>getActiveNetwork</code></a> å’Œ <a href="https://developer.android.com/reference/android/net/ConnectivityManager#registerDefaultNetworkCallback%28android.net.ConnectivityManager.NetworkCallback,%20android.os.Handler%29"><code>registerDefaultNetworkCallback</code></a> ç‰ <a href="https://developer.android.com/reference/android/net/ConnectivityManager"><code>ConnectivityManager</code></a> API 方法返回)。也就是说,åªæœ‰æˆåŠŸç¡®è®¤ WLAN 网络在æ供互è”网连接åŽï¼Œè®¾å¤‡å®žçŽ°æ‰èƒ½åœç”¨ä»»ä½•å…¶ä»–网络æœåŠ¡æ供商(例如移动数æ®ç½‘络)æ供的互è”网连接。 + </li> + <li>[C-1-6] 调用 <a href="https://developer.android.com/reference/android/net/ConnectivityManager.html#reportNetworkConnectivity%28android.net.Network%2C%20boolean%29"><code>ConnectivityManager.reportNetworkConnectivity()</code></a> API 方法åŽï¼Œå¿…é¡»é‡æ–°è¯„ä¼° <code>Network</code> 的互è”网连接,一旦评估åŽç¡®å®šå½“å‰ <code>Network</code> ä¸å†æ供互è”网连接,则切æ¢è‡³æ供互è”网连接的任何其他å¯ç”¨ç½‘络(例如移动数æ®ç½‘络)。 + </li> + <li>[C-SR] 强烈建议在 STA æ–开连接时,在æ¯æ¬¡æ‰«æ开始时对探测请求帧的æ¥æº MAC 地å€å’Œåºåˆ—å·è¿›è¡Œä¸€æ¬¡éšæœºåŒ–处ç†ã€‚ + <ul> + <li>一次扫æä¸åŒ…å«çš„æ¯ç»„探测请求帧都应使用一个一致的 MAC 地å€ï¼ˆä¸åº”在扫æ期间对 MAC 地å€è¿›è¡ŒéšæœºåŒ–处ç†ï¼‰ã€‚ + </li> + <li>探测请求åºåˆ—å·åº”在扫æä¸åŒ…å«çš„探测请求之间按æ£å¸¸æ–¹å¼ï¼ˆä¾åºï¼‰è¿ä»£ã€‚ + </li> + <li>应在以下时间对探测请求åºåˆ—å·è¿›è¡ŒéšæœºåŒ–处ç†ï¼šä¸€æ¬¡æ‰«æ包å«çš„最åŽä¸€ä¸ªæŽ¢æµ‹è¯·æ±‚和下次扫æ包å«çš„第一个探测请求之间。 + </li> + </ul> + </li> + <li>[C-SR] 强烈建议在 STA æ–开连接时,仅å…许在探测请求帧ä¸ä½¿ç”¨ä»¥ä¸‹å…ƒç´ : + <ul> + <li>SSID Parameter Set (0) + </li> + <li>DS Parameter Set (3) + </li> + </ul> + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN 并将 WLAN 用于ä½ç½®ä¿¡æ¯æ‰«æ,则: + </p> + <ul> + <li>[C-2-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨/åœç”¨é€šè¿‡ <a href="https://developer.android.com/reference/android/net/wifi/WifiManager.html#isScanAlwaysAvailable%28%29"><code>WifiManager.isScanAlwaysAvailable</code></a> API 方法读å–的值。 + </li> + </ul> + <h5 id="7_4_2_1_wi-fi_direct"> +7.4.2.1. WLAN ç›´è¿ž + </h5> + <p> +设备实现: + </p> + <ul> + <li>åº”æ”¯æŒ WLAN 直连(WLAN 对ç‰è¿žæŽ¥ï¼‰ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN 直连,则: + </p> + <ul> + <li>[C-1-1] 必须实现<a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">对应的 Android API</a>(如 SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-2] 必须报告硬件功能 <code>android.hardware.wifi.direct</code>。 + </li> + <li>[C-1-3] 必须支æŒå¸¸è§„çš„ WLAN æ“作。 + </li> + <li>[C-1-4] 必须支æŒå¹¶å‘执行 WLAN å’Œ WLAN ç›´è¿žæ“作。 + </li> + </ul> + <h5 id="7_4_2_2_wi-fi_tunneled_direct_link_setup"> +7.4.2.2. WLAN 通é“直接链路设置 + </h5> + <p> +设备实现: + </p> + <ul> + <li>åº”æ”¯æŒ <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">WLAN 通é“直接链路设置 (TDLS)</a>(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ TDLS,并且 TDLS 已由 WiFiManager API å¯ç”¨ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须通过 [<code>WifiManager.isTdlsSupported</code>] (https://developer.android.com/reference/android/net/wifi/WifiManager.html#isTdlsSupported%28%29) å£°æ˜Žæ”¯æŒ TDLS。 + </li> + <li>åªåœ¨èƒ½å¤Ÿä½¿ç”¨ä¸”有好处时æ‰åº”使用 TDLS。 + </li> + <li>应进行一些试探,如果使用 TDLS 时的性能å¯èƒ½ä½ŽäºŽé€šè¿‡ WLAN 接入点连接时的性能,则ä¸åº”使用 TDLS。 + </li> + </ul> + <h5 id="7_4_2_3_wi-fi_aware"> +7.4.2.3. WLAN Aware + </h5> + <p> +设备实现: + </p> + <ul> + <li>åº”æ”¯æŒ <a href="http://www.wi-fi.org/discover-wi-fi/wi-fi-aware">WLAN Aware</a>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN Aware,并使该功能å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] 必须实现 <code>WifiAwareManager</code> API(如 <a href="http://developer.android.com/reference/android/net/wifi/aware/WifiAwareManager.html">SDK 文档</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-2] 必须声明 <code>android.hardware.wifi.aware</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-3] 必须支æŒå¹¶å‘执行 WLAN å’Œ WLAN Aware æ“作。 + </li> + <li>[C-1-4] æ¯å½“ WLAN Aware 处于å¯ç”¨çŠ¶æ€æ—¶ï¼Œéƒ½å¿…须以ä¸è¶…过 30 分钟的间隔对 WLAN Aware 管ç†æŽ¥å£åœ°å€è¿›è¡ŒéšæœºåŒ–处ç†ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN Aware å’Œ WLAN ä½ç½®ä¿¡æ¯æœåŠ¡ï¼ˆå¦‚<a href="#7_4_2_5_Wi-Fi_Location">第 7.4.2.5 节</a>ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶ä½¿è¿™äº›åŠŸèƒ½å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-2-1] 必须实现ä½ç½®æ„ŸçŸ¥å‘现 API:<a href="https://developer.android.com/reference/android/net/wifi/aware/PublishConfig.Builder.html#setRangingEnabled%28boolean%29">setRangingEnabled</a>ã€<a href="https://developer.android.com/reference/android/net/wifi/aware/SubscribeConfig.Builder#setMinDistanceMm%28int%29">setMinDistanceMm</a>ã€<a href="https://developer.android.com/reference/android/net/wifi/aware/SubscribeConfig.Builder#setMaxDistanceMm%28int%29">setMaxDistanceMm</a> å’Œ <a href="https://developer.android.com/reference/android/net/wifi/aware/DiscoverySessionCallback#onServiceDiscoveredWithinRange%28android.net.wifi.aware.PeerHandle,%20byte[],%20java.util.List%3Cbyte[]%3E,%20int%29">onServiceDiscoveredWithinRange</a>。 + </li> + </ul> + <h5 id="7_4_2_4_wi-fi_passpoint"> +7.4.2.4. WLAN Passpoint + </h5> + <p> +设备实现: + </p> + <ul> + <li>åº”æ”¯æŒ <a href="http://www.wi-fi.org/discover-wi-fi/wi-fi-certified-passpoint">WLAN Passpoint</a>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN Passpoint,则: + </p> + <ul> + <li>[C-1-1] 必须实现与 Passpoint 相关的 <code>WifiManager</code> API(如 <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">SDK 文档</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-2] å¿…é¡»æ”¯æŒ IEEE 802.11u æ ‡å‡†ï¼Œç‰¹åˆ«æ˜¯ä¸Žç½‘ç»œå‘çŽ°å’Œé€‰æ‹©ç›¸å…³çš„æ ‡å‡†ï¼Œä¾‹å¦‚é€šç”¨é€šå‘ŠæœåŠ¡åè®® (GAS) 和接入网络查询åè®® (ANQP)。 + </li> + </ul> + <p> +å之,如果设备实现ä¸æ”¯æŒ WLAN Passpoint,则: + </p> + <ul> + <li>[C-2-1] 与 Passpoint 相关的 <code>WifiManager</code> API 的实现必须抛出 <code>UnsupportedOperationException</code>。 + </li> + </ul> + <h5 id="7_4_2_5_wi-fi_location_(wi-fi_round_trip_time_-_rtt)"> +7.4.2.5. WLAN ä½ç½®ä¿¡æ¯ï¼ˆWLAN 往返时间 - RTT) + </h5> + <p> +设备实现: + </p> + <ul> + <li>åº”æ”¯æŒ <a href="https://www.wi-fi.org/discover-wi-fi/wi-fi-location">WLAN ä½ç½®ä¿¡æ¯</a>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN ä½ç½®ä¿¡æ¯ï¼Œå¹¶ä½¿è¯¥åŠŸèƒ½å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] 必须实现 <code>WifiRttManager</code> API(如 <a href="http://developer.android.com/reference/android/net/wifi/rtt/WifiRttManager.html">SDK 文档</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-2] 必须声明 <code>android.hardware.wifi.rtt</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-3] 当执行 RTT 所在的 WLAN 接å£ä¸ŽæŽ¥å…¥ç‚¹ä¸ç›¸å…³æ—¶ï¼Œå¿…须为所执行的æ¯ä¸ª RTT é«˜å³°å¯¹æº MAC 地å€è¿›è¡ŒéšæœºåŒ–处ç†ã€‚ + </li> + </ul> + <h4 id="7_4_3_bluetooth"> +7.4.3. è“牙 + </h4> + <p> +如果设备实现支æŒè“牙音频é…置,则: + </p> + <ul> + <li>应支æŒé«˜çº§éŸ³é¢‘编解ç 器和è“牙音频编解ç 器(例如 LDAC)。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ HFPã€A2DP å’Œ AVRCP,则: + </p> + <ul> + <li>åº”è‡³å°‘å…±æ”¯æŒ 5 个连接设备。 + </li> + </ul> + <p> +如果设备实现声明了 <code>android.hardware.vr.high_performance</code> 功能,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒè“牙 4.2 å’Œè“牙 LE æ•°æ®é•¿åº¦æ‰©å±•ã€‚ + </li> + </ul> + <p> +Android 支æŒ<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">è“牙和è“牙低功耗</a>。 + </p> + <p> +如果设备实现支æŒè“牙和è“牙低功耗,则: + </p> + <ul> + <li>[C-2-1] 必须声明相关平å°åŠŸèƒ½ï¼ˆåˆ†åˆ«ä¸º <code>android.hardware.bluetooth</code> å’Œ <code>android.hardware.bluetooth_le</code>ï¼‰ï¼Œå¹¶å®žçŽ°å¹³å° API。 + </li> + <li>应实现适åˆè®¾å¤‡çš„相关è“牙é…置,例如 A2DPã€AVRCPã€OBEXã€HFP ç‰ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒè“牙低功耗,则: + </p> + <ul> + <li>[C-3-1] 必须声明硬件功能 <code>android.hardware.bluetooth_le</code>。 + </li> + <li>[C-3-2] å¿…é¡»å¯ç”¨åŸºäºŽ GATT(通用属性é…置)的è“牙 API(如 SDK 文档ä¸æ‰€è¿°ï¼‰ä»¥åŠ <a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">android.bluetooth</a>。 + </li> + <li>[C-3-3] 必须针对 <code>BluetoothAdapter.isOffloadedFilteringSupported()</code> 报告æ£ç¡®çš„值,以指明是å¦å®žçŽ°äº†é’ˆå¯¹ <a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">ScanFilter</a> API 类的过滤逻辑。 + </li> + <li>[C-3-4] 必须针对 <code>BluetoothAdapter.isMultipleAdvertisementSupported()</code> 报告æ£ç¡®çš„值,以指明是å¦æ”¯æŒä½ŽåŠŸè€—通告。 + </li> + <li>应支æŒåœ¨å®žçŽ° <a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">ScanFilter API</a> 时将过滤逻辑分载到è“牙芯片组。 + </li> + <li>应支æŒå°†æ‰¹é‡æ‰«æ分载到è“牙芯片组。 + </li> + <li> + <p> +应支æŒè‡³å°‘为 4 个槽ä½çš„多通告。 + </p> + </li> + <li> + <p> +[SR] 强烈建议实现ä¸è¶…过 15 分钟的å¯è§£æžç§æœ‰åœ°å€ (RPA) 超时,并在超时åŽè½®è½¬åœ°å€ä»¥ä¿æŠ¤ç”¨æˆ·éšç§ã€‚ + </p> + </li> + </ul> + <p> +如果设备实现支æŒè“牙 LE 并将è“牙 LE 用于ä½ç½®ä¿¡æ¯æ‰«æ,则: + </p> + <ul> + <li>[C-4-1] å¿…é¡»æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨/åœç”¨é€šè¿‡ç³»ç»Ÿ API <code>BluetoothAdapter.isBleScanAlwaysAvailable()</code> 读å–的值。 + </li> + </ul> + <h4 id="7_4_4_near-field_communications"> +7.4.4. è¿‘è·ç¦»æ— 线通信 + </h4> + <p> +设备实现: + </p> + <ul> + <li>应包å«è¿‘è·ç¦»æ— 线通信 (NFC) 所需的收å‘器和相关硬件。 + </li> + <li>[C-0-1] 必须实现 <code>android.nfc.NdefMessage</code> å’Œ <code>android.nfc.NdefRecord</code> API,å³ä½¿å®ƒä»¬ä¸æ”¯æŒ NFC 或未声明 <code>android.hardware.nfc</code> 功能也是如æ¤ï¼Œå› 为这些类表示独立于å议的数æ®è¡¨ç¤ºæ ¼å¼ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« NFC 硬件,并计划使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] 必须报告 <code>android.hardware.nfc</code> 功能(通过 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html"><code>android.content.pm.PackageManager.hasSystemFeature()</code> 方法</a>)。 + </li> + <li>必须能够通过以下 NFC æ ‡å‡†è¯»å–和写入 NDEF 消æ¯ï¼š + </li> + <li>[C-1-2] 必须能够通过以下 NFC æ ‡å‡†å……å½“ NFC Forum 读å–器/写入器(如 NFC Forum 技术规范 NFCForum-TS-DigitalProtocol-1.0 ä¸æ‰€å®šä¹‰ï¼‰ï¼š + <ul> + <li>NfcA (ISO14443-3A) + </li> + <li>NfcB (ISO14443-3B) + </li> + <li>NfcF (JIS X 6319-4) + </li> + <li>IsoDep (ISO 14443-4) + </li> + <li>NFC Forum æ ‡ç¾ç±»åž‹ 1ã€2ã€3ã€4ã€5(由 NFC Forum 定义) + </li> + </ul> + </li> + <li> + <p> +[SR] 强烈建议能够通过以下 NFC æ ‡å‡†è¯»å–和写入 NDEF 消æ¯ä»¥åŠåŽŸå§‹æ•°æ®ã€‚请注æ„,虽然æ¤å¤„说这些 NFC æ ‡å‡†æ˜¯â€œå¼ºçƒˆå»ºè®®â€éµå¾ªçš„æ ‡å‡†ï¼Œä½†æˆ‘ä»¬è®¡åˆ’åœ¨æœªæ¥ç‰ˆæœ¬çš„兼容性定义ä¸å°†å…¶æ›´æ”¹ä¸ºâ€œå¿…é¡»â€éµå¾ªçš„æ ‡å‡†ã€‚è¿™äº›æ ‡å‡†åœ¨æ¤ç‰ˆæœ¬ä¸æ˜¯å¯é€‰çš„,但在未æ¥çš„版本ä¸å°†æ˜¯å¿…é¡»è¦éµå¾ªçš„。强烈建议è¿è¡Œæ¤ç‰ˆ Android 的现有设备åŠæ–°è®¾å¤‡çŽ°åœ¨å°±æ»¡è¶³è¿™äº›è¦æ±‚,以便能够å‡çº§åˆ°æœªæ¥çš„å¹³å°ç‰ˆæœ¬ã€‚ + </p> + </li> + <li> + <p> +[C-1-3] 必须能够通过以下对ç‰è¿žæŽ¥æ ‡å‡†å’Œåè®®ä¼ é€å’ŒæŽ¥æ”¶æ•°æ®ï¼š + </p> + <ul> + <li>ISO 18092 + </li> + <li>LLCP 1.2(由 NFC Forum 定义) + </li> + <li>SDP 1.0(由 NFC Forum 定义) + </li> + <li> + <a href="http://static.googleusercontent.com/media/source.android.com/en/us/compatibility/ndef-push-protocol.pdf">NDEF 推é€åè®®</a> + </li> + <li>SNEP 1.0(由 NFC Forum 定义) + </li> + </ul> + </li> + <li>[C-1-4] å¿…é¡»æ”¯æŒ <a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">Android Beam</a>,并且应默认å¯ç”¨ Android Beam。 + </li> + <li>[C-1-5] 当 Android Beam 处于å¯ç”¨çŠ¶æ€æˆ–有其他专有 NFC 点对点模å¼å¤„于开å¯çŠ¶æ€æ—¶ï¼Œå¿…须能够使用 Android Beam 收å‘消æ¯ã€‚ + </li> + <li>[C-1-6] 必须实现默认 SNEP æœåŠ¡å™¨ã€‚必须使用 <code>android.nfc.ACTION_NDEF_DISCOVERED</code> Intent 将默认 SNEP æœåŠ¡å™¨æ”¶åˆ°çš„有效 NDEF 消æ¯å‘é€ç»™åº”用。在设置ä¸åœç”¨ Android Beam ä¸å¾—导致åœç”¨ä¼ 入的 NDEF 消æ¯çš„å‘é€ã€‚ + </li> + <li>[C-1-7] 必须能够éµä»Ž <code>android.settings.NFCSHARING_SETTINGS</code> Intent 显示 <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">NFC 共享设置</a>。 + </li> + <li>[C-1-8] 必须实现 NPP æœåŠ¡å™¨ã€‚必须按照处ç†é»˜è®¤ SNEP æœåŠ¡å™¨æ”¶åˆ°çš„消æ¯æ—¶é‡‡ç”¨çš„åŒä¸€ç§æ–¹å¼å¤„ç† NPP æœåŠ¡å™¨æ”¶åˆ°çš„消æ¯ã€‚ + </li> + <li>[C-1-9] 必须实现 SNEP 客户端,并且在 Android Beam 处于å¯ç”¨çŠ¶æ€æ—¶ï¼Œå¿…é¡»å°è¯•å°†å‡ºç«™ç‚¹å¯¹ç‚¹ NDEF 消æ¯å‘é€åˆ°é»˜è®¤ SNEP æœåŠ¡å™¨ã€‚如果未找到默认 SNEP æœåŠ¡å™¨ï¼Œåˆ™è¯¥å®¢æˆ·ç«¯å¿…é¡»å°è¯•å°†æ¶ˆæ¯å‘é€åˆ° NPP æœåŠ¡å™¨ã€‚ + </li> + <li>[C-1-10] å¿…é¡»å…许å‰å° Activity 通过 <code>android.nfc.NfcAdapter.setNdefPushMessage</code>ã€<code>android.nfc.NfcAdapter.setNdefPushMessageCallback</code> å’Œ <code>android.nfc.NfcAdapter.enableForegroundNdefPush</code> 设置出站点对点 NDEF 消æ¯ã€‚ + </li> + <li>在å‘é€å‡ºç«™ç‚¹å¯¹ç‚¹ NDEF 消æ¯ä¹‹å‰ï¼Œåº”使用手势或å±å¹•ç¡®è®¤ï¼ˆä¾‹å¦‚“触摸å³å¯å‘é€â€ï¼‰ã€‚ + </li> + <li>[C-1-11] 如果设备支æŒè“牙对象推é€é…置,则必须支æŒä»Ž NFC 连接切æ¢åˆ°è“牙。 + </li> + <li>[C-1-12] 使用 <code>android.nfc.NfcAdapter.setBeamPushUris</code> 时,必须支æŒå°†è¿žæŽ¥åˆ‡æ¢åˆ°è“牙,方法是实现 NFC Forum æ供的“<a href="http://members.nfc-forum.org/specs/spec_list/#conn_handover">Connection Handover version 1.2</a>â€å’Œâ€œ<a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">Bluetooth Secure Simple Pairing Using NFC version 1.0</a>â€è§„范。æ¤ç±»å®žçŽ°å¿…须实现æœåŠ¡å为“urn:nfc:sn:handoverâ€çš„åˆ‡æ¢ LLCP æœåŠ¡ï¼Œä»¥é€šè¿‡ NFC 交æ¢åˆ‡æ¢è¯·æ±‚/部分记录,并且必须使用è“牙对象推é€é…置进行实际的è“牙数æ®ä¼ 输。为了与旧版兼容(与 Android 4.1 设备ä¿æŒå…¼å®¹ï¼‰ï¼Œæ¤ç±»å®žçŽ°åº”ä»æŽ¥å— SNEP GET 请求,以便通过 NFC 交æ¢åˆ‡æ¢è¯·æ±‚/部分记录。ä¸è¿‡ï¼Œå®žçŽ°æœ¬èº«ä¸åº”å‘é€å…³äºŽæ‰§è¡Œè¿žæŽ¥åˆ‡æ¢çš„ SNEP GET 请求。 + </li> + <li>[C-1-13] 在 NFC å‘现模å¼ä¸‹ï¼Œå¿…须轮询所有支æŒçš„技术。 + </li> + <li>当设备处于唤醒状æ€ã€å±å¹•å¤„于活动状æ€ï¼Œå¹¶ä¸”é”定å±å¹•å·²è§£é”时,应采用 NFC å‘现模å¼ã€‚ + </li> + <li>åº”èƒ½å¤Ÿè¯»å– <a href="http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html">Thinfilm NFC Barcode</a> 产å“çš„æ¡å½¢ç 和网å€ï¼ˆå¦‚果已编ç )。 + </li> + </ul> + <p> +请注æ„,上é¢æ到的 JISã€ISO å’Œ NFC Forum 规范没有公开æ供的链接。 + </p> + <p> +Android æ”¯æŒ NFC 主机å¡æ¨¡æ‹Ÿ (HCE) 模å¼ã€‚ + </p> + <p> +如果设备实现包å«æ”¯æŒ HCE(适用于 NfcA å’Œ/或 NfcB)的 NFC 控制器芯片组,并且支æŒåº”用 ID (AID) 路由,则: + </p> + <ul> + <li>[C-2-1] 必须报告 <code>android.hardware.nfc.hce</code> 功能常é‡ã€‚ + </li> + <li>[C-2-2] å¿…é¡»æ”¯æŒ <a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">NFC HCE API</a>(如 Android SDK ä¸å®šä¹‰ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现包å«æ”¯æŒ HCE(适用于 NfcF)的 NFC 控制器芯片组,并且针对第三方应用实现了该功能,则: + </p> + <ul> + <li>[C-3-1] 必须报告 <code>android.hardware.nfc.hcef</code> 功能常é‡ã€‚ + </li> + <li>[C-3-2] 必须实现 <a href="https://developer.android.com/reference/android/nfc/cardemulation/NfcFCardEmulation.html">NfcF å¡æ¨¡æ‹Ÿ API</a>(如 Android SDK ä¸æ‰€å®šä¹‰ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒå¸¸è§„ NFC(如本节ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶ä¸”支æŒè¯»å–器/写入器角色ä¸çš„ MIFARE 技术(MIFARE Classicã€MIFARE Ultralightã€NDEF on MIFARE Classic),则: + </p> + <ul> + <li>[C-4-1] 必须实现对应的 Android API(如 Android SDK ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-4-2] 必须报告 <code>com.nxp.mifare</code> 功能(通过 <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html"><code>android.content.pm.PackageManager.hasSystemFeature</code>()</a> 方法)。请注æ„,这ä¸æ˜¯æ ‡å‡†çš„ Android åŠŸèƒ½ï¼Œå› æ¤ä¸ä¼šåœ¨ <code>android.content.pm.PackageManager</code> ç±»ä¸æ˜¾ç¤ºä¸ºå¸¸é‡ã€‚ + </li> + </ul> + <h4 id="7_4_5_minimum_network_capability"> +7.4.5. 最低网络功能 + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须支æŒä¸€ç§æˆ–多ç§å½¢å¼çš„æ•°æ®ç½‘络。具体而言,设备实现必须支æŒè‡³å°‘一ç§èƒ½å¤Ÿè¾¾åˆ° 200 Kbit/sec 或更高的数æ®æ ‡å‡†ã€‚满足该è¦æ±‚的技术包括 EDGEã€HSPAã€EV-DOã€802.11gã€ä»¥å¤ªç½‘å’Œè“牙 PAN。 + </li> + <li>当物ç†ç½‘ç»œæ ‡å‡†ï¼ˆä¾‹å¦‚ä»¥å¤ªç½‘ï¼‰æ˜¯ä¸»è¦æ•°æ®è¿žæŽ¥æ ‡å‡†æ—¶ï¼Œè¿˜åº”支æŒè‡³å°‘一ç§å¸¸ç”¨çš„æ— çº¿æ•°æ®è¿žæŽ¥æ ‡å‡†ï¼Œä¾‹å¦‚ 802.11 (WLAN)。 + </li> + <li>å¯ä»¥å®žçŽ°å¤šç§å½¢å¼çš„æ•°æ®è¿žæŽ¥ã€‚ + </li> + <li>[C-0-2] å¿…é¡»åŒ…å« IPv6 ç½‘ç»œå †æ ˆï¼Œå¹¶æ”¯æŒä½¿ç”¨å—ç®¡ç† API(例如 <code>java.net.Socket</code> å’Œ <code>java.net.URLConnection</code>)以åŠæœ¬æœº API(例如 <code>AF_INET6</code> 套接å—)进行 IPv6 通信。 + </li> + <li>[C-0-3] 必须默认å¯ç”¨ IPv6。 + </li> + <li>å¿…é¡»ç¡®ä¿ IPv6 通信和其他通信(例如 IPv4ï¼‰ä¸€æ ·å¯é : + <ul> + <li>[C-0-4] 在低电耗模å¼ä¸‹å¿…é¡»ä¿æŒ IPv6 连接。 + </li> + <li>[C-0-5] é™åˆ¶å‘é€æ¬¡æ•°ä¸å¾—导致设备æ–å¼€ä¸Žä»»ä½•ç¬¦åˆ IPv6 æ ‡å‡†çš„ç½‘ç»œï¼ˆä½¿ç”¨çš„ RA 生命周期至少为 180 秒)的 IPv6 连接。 + </li> + </ul> + </li> + <li>[C-0-6] 连接到 IPv6 网络时,必须为第三方应用æ供与网络的直接 IPv6 è¿žæŽ¥ï¼Œæ— éœ€è®¾å¤‡åœ¨æœ¬åœ°è¿›è¡Œä»»ä½•å½¢å¼çš„地å€æˆ–端å£è½¬æ¢ã€‚å—ç®¡ç† API(例如 <a href="https://developer.android.com/reference/java/net/Socket.html#getLocalAddress%28%29"><code>Socket#getLocalAddress</code></a> 或 <a href="https://developer.android.com/reference/java/net/Socket.html#getLocalPort%28%29"><code>Socket#getLocalPort</code></a>)和 NDK API(例如 <code>getsockname()</code> 或 <code>IPV6_PKTINFO</code>)都必须返回实际上用于å‘é€å’ŒæŽ¥æ”¶ç½‘络上的数æ®åŒ…çš„ IP 地å€å’Œç«¯å£ã€‚ + </li> + </ul> + <p> +所需的 IPv6 支æŒçº§åˆ«å–决于网络类型,如以下è¦æ±‚ä¸æ‰€ç¤ºã€‚ + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ WLAN,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒé€šè¿‡ WLAN 执行åŒæ ˆå’Œ IPv6-only æ“作。 + </li> + </ul> + <p> +如果设备实现支æŒä»¥å¤ªç½‘,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒé€šè¿‡ä»¥å¤ªç½‘执行åŒæ ˆæ“作。 + </li> + </ul> + <p> +如果设备实现支æŒç§»åŠ¨æ•°æ®ç½‘络,则: + </p> + <ul> + <li>应支æŒé€šè¿‡ç§»åŠ¨æ•°æ®ç½‘络执行 IPv6 æ“作(IPv6-only æ“作,也å¯èƒ½æ˜¯åŒæ ˆæ“作)。 + </li> + </ul> + <p> +如果设备实现支æŒå¤šç§ç±»åž‹çš„网络(例如 WLAN 和移动数æ®ç½‘络),则: + </p> + <ul> + <li>[C-3-1] 当设备åŒæ—¶è¿žæŽ¥åˆ°å¤šç§ç±»åž‹çš„网络时,必须åŒæ—¶æ»¡è¶³ä¸Šè¿°é’ˆå¯¹è¿žæŽ¥åˆ°æ¯ç§ç½‘络的è¦æ±‚。 + </li> + </ul> + <h4 id="7_4_6_sync_settings"> +7.4.6. åŒæ¥è®¾ç½® + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须默认å¯ç”¨ä¸»è‡ªåŠ¨åŒæ¥è®¾ç½®ï¼Œä»¥ä¾¿æ–¹æ³• <a href="http://developer.android.com/reference/android/content/ContentResolver.html"><code>getMasterSyncAutomatically()</code></a> 返回“trueâ€ã€‚ + </li> + </ul> + <h4 id="7_4_7_data_saver"> +7.4.7. æµé‡èŠ‚çœç¨‹åº + </h4> + <p> +如果设备实现包å«æŒ‰æµé‡è®¡è´¹çš„网络连接,则: + </p> + <ul> + <li>[SR] 强烈建议æä¾›æµé‡èŠ‚çœç¨‹åºæ¨¡å¼ã€‚ + </li> + </ul> + <p> +如果设备实现æä¾›æµé‡èŠ‚çœç¨‹åºæ¨¡å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ <code>ConnectivityManager</code> ç±»ä¸çš„所有 API(如 <a href="https://developer.android.com/training/basics/network-ops/data-saver.html">SDK 文档</a>ä¸æ‰€è¿°ï¼‰ + </li> + <li>[C-1-2] 必须在设置ä¸æ供一个界é¢æ¥å¤„ç† <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS"><code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code></a> Intent,以便用户å‘白åå•ä¸æ·»åŠ 应用或从ä¸ç§»é™¤åº”用。 + </li> + </ul> + <p> +如果设备实现未æä¾›æµé‡èŠ‚çœç¨‹åºæ¨¡å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须针对 <a href="https://developer.android.com/reference/android/net/ConnectivityManager.html#getRestrictBackgroundStatus%28%29"><code>ConnectivityManager.getRestrictBackgroundStatus()</code></a> 返回值 <code>RESTRICT_BACKGROUND_STATUS_DISABLED</code>。 + </li> + <li>[C-2-2] ä¸å¾—å¹¿æ’ <code>ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED</code>。 + </li> + <li>[C-2-3] å¿…é¡»æœ‰è´Ÿè´£å¤„ç† <code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code> Intent çš„ Activity,但å¯ä»¥å°†å…¶å®žçŽ°ä¸ºç©ºæ“作。 + </li> + </ul> + <h4 id="7_4_8_secure_elements"> +7.4.8. 安全元件 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ <a href="https://developer.android.com/reference/android/se/omapi/package-summary">Open Mobile API</a> 安全元件,并使其å¯ä¾›ç¬¬ä¸‰æ–¹åº”用使用,则: + </p> + <ul> + <li>[C-1-1] 调用 <a href="https://developer.android.com/reference/android/se/omapi/SEService#getReaders%28%29"><code>android.se.omapi.SEService.getReaders()</code></a> 方法时必须列举å¯ç”¨çš„安全元件阅读器。 + </li> + </ul> + <h3 id="7_5_cameras"> +7.5. æ‘„åƒå¤´ + </h3> + <p> +如果设备实现包å«è‡³å°‘一个摄åƒå¤´ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须声明 <code>android.hardware.camera.any</code> åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-1-2] 当摄åƒå¤´æ‰“å¼€ç€ä»¥è¿›è¡ŒåŸºæœ¬é¢„览和é™æ€æ‹æ‘„时,必须确ä¿åº”用å¯ä»¥åŒæ—¶åˆ†é… 3 个 RGBA_8888 ä½å›¾ï¼Œå¹¶ä¸”其大å°ä¸Žè®¾å¤‡ä¸Šåˆ†è¾¨çŽ‡æœ€é«˜çš„æ‘„åƒå¤´ä¼ 感器所生æˆçš„图片相åŒã€‚ + </li> + </ul> + <h4 id="7_5_1_rear-facing_camera"> +7.5.1. åŽç½®æ‘„åƒå¤´ + </h4> + <p> +åŽç½®æ‘„åƒå¤´æŒ‡ä½äºŽè®¾å¤‡ä¸ŠèƒŒå‘显示å±ä¸€ä¾§çš„æ‘„åƒå¤´ï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œä¸Žä¼ 统摄åƒå¤´ä¸€æ ·ï¼Œå®ƒæ‹æ‘„的是背å‘设备显示å±ä¸€ä¾§çš„景物。 + </p> + <p> +设备实现: + </p> + <ul> + <li>应包å«åŽç½®æ‘„åƒå¤´ã€‚ + </li> + </ul> + <p> +如果设备实现包å«è‡³å°‘一个åŽç½®æ‘„åƒå¤´ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æŠ¥å‘ŠåŠŸèƒ½æ ‡è®° <code>android.hardware.camera</code> å’Œ <code>android.hardware.camera.any</code>。 + </li> + <li>[C-1-2] 分辨率必须至少为 200 万åƒç´ 。 + </li> + <li>应在摄åƒå¤´é©±åŠ¨ç¨‹åºä¸å®žçŽ°ç¡¬ä»¶è‡ªåŠ¨å¯¹ç„¦æˆ–软件自动对焦(对应用软件é€æ˜Žï¼‰ã€‚ + </li> + <li>å¯ä»¥å…·æœ‰å›ºå®šç„¦è·ç¡¬ä»¶æˆ– EDOF(扩展景深)硬件。 + </li> + <li>å¯ä»¥åŒ…å«é—ªå…‰ç¯ã€‚ + </li> + </ul> + <p> +如果摄åƒå¤´åŒ…å«é—ªå…‰ç¯ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 当已在摄åƒå¤´é¢„览 Surface 上注册 <code>android.hardware.Camera.PreviewCallback</code> 实例时,闪光ç¯ä¸å¾—亮起,除éžåº”用已通过å¯ç”¨ <code>FLASH_MODE_AUTO</code> 或 <code>FLASH_MODE_ON</code> 属性(属于 <code>Camera.Parameters</code> 对象)明确å¯ç”¨é—ªå…‰ç¯ã€‚请注æ„,æ¤é¡¹é™åˆ¶ä¸é€‚用于设备的内置系统摄åƒå¤´åº”用,而是仅适用于使用 <code>Camera.PreviewCallback</code> 的第三方应用。 + </li> + </ul> + <h4 id="7_5_2_front-facing_camera"> +7.5.2. å‰ç½®æ‘„åƒå¤´ + </h4> + <p> +å‰ç½®æ‘„åƒå¤´æŒ‡ä¸Žè®¾å¤‡ä¸Šçš„显示å±ä½äºŽåŒä¸€ä¾§çš„æ‘„åƒå¤´ï¼Œä¹Ÿå°±æ˜¯é€šå¸¸ç”¨äºŽæ‹æ‘„用户自己的摄åƒå¤´ï¼Œä¾‹å¦‚用于视频会议åŠç±»ä¼¼åº”用的摄åƒå¤´ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>å¯ä»¥åŒ…å«å‰ç½®æ‘„åƒå¤´ã€‚ + </li> + </ul> + <p> +如果设备实现包å«è‡³å°‘一个å‰ç½®æ‘„åƒå¤´ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æŠ¥å‘ŠåŠŸèƒ½æ ‡è®° <code>android.hardware.camera.any</code> å’Œ <code>android.hardware.camera.front</code>。 + </li> + <li>[C-1-2] 分辨率必须至少为 VGA(640x480 åƒç´ )。 + </li> + <li>[C-1-3] ä¸å¾—å°†å‰ç½®æ‘„åƒå¤´ç”¨ä½œ Camera API 的默认摄åƒå¤´ï¼Œå¹¶ä¸”ä¸å¾—将该 API é…置为将å‰ç½®æ‘„åƒå¤´è§†ä¸ºé»˜è®¤åŽç½®æ‘„åƒå¤´ï¼Œå³ä½¿å®ƒæ˜¯è®¾å¤‡ä¸Šçš„唯一摄åƒå¤´ä¹Ÿæ˜¯å¦‚æ¤ã€‚ + </li> + <li>[C-1-4] 如果当å‰åº”用已通过调用 <a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)"><code>android.hardware.Camera.setDisplayOrientation()</code></a> 方法明确请求旋转摄åƒå¤´æ˜¾ç¤ºæ–¹å‘,则必须相对于应用指定的方å‘水平镜åƒæ‘„åƒå¤´é¢„览。å之,如果当å‰åº”用未通过调用 <a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)"><code>android.hardware.Camera.setDisplayOrientation()</code></a> 方法明确请求旋转摄åƒå¤´æ˜¾ç¤ºæ–¹å‘,则必须沿ç€è®¾å¤‡çš„默认水平轴镜åƒé¢„览。 + </li> + <li>[C-1-5] 对于最终æ‹å¥½åŽè¿”回给应用回调或æ交到媒体å˜å‚¨ç©ºé—´çš„é™æ€å›¾åƒæˆ–视频æµï¼Œä¸å¾—对其进行镜åƒã€‚ + </li> + <li>[C-1-6] 必须按照镜åƒæ‘„åƒå¤´é¢„览图åƒæµæ—¶çš„æ–¹å¼é•œåƒç”± postview 显示的图åƒã€‚ + </li> + <li>å¯ä»¥åŒ…å«å¯ä¾›åŽç½®æ‘„åƒå¤´ï¼ˆå¦‚<a href="#7_5_1_rear-facing_camera">第 7.5.1 节</a>ä¸æ‰€è¿°ï¼‰ä½¿ç”¨çš„功能,例如自动对焦ã€é—ªå…‰ç¯ç‰ã€‚ + </li> + </ul> + <p> +å¦‚æžœç”¨æˆ·èƒ½å¤Ÿæ—‹è½¬è®¾å¤‡å®žçŽ°ï¼ˆä¾‹å¦‚é€šè¿‡åŠ é€Ÿåº¦è®¡è‡ªåŠ¨æ—‹è½¬æˆ–é€šè¿‡ç”¨æˆ·è¾“å…¥æ‰‹åŠ¨æ—‹è½¬ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须相对于设备的当å‰æ–¹å‘水平镜åƒæ‘„åƒå¤´é¢„览。 + </li> + </ul> + <h4 id="7_5_3_external_camera"> +7.5.3. 外接摄åƒå¤´ + </h4> + <p> +设备实现: + </p> + <ul> + <li>å¯ä»¥æ”¯æŒæ— 需一直连接到设备的外接摄åƒå¤´ã€‚ + </li> + </ul> + <p> +如果设备实现支æŒå¤–接摄åƒå¤´ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须声明平å°åŠŸèƒ½æ ‡è®° <code>android.hardware.camera.external</code> å’Œ <code>android.hardware camera.any</code>。 + </li> + <li>[C-1-2] 如果通过 USB 主机端å£è¿žæŽ¥å¤–接摄åƒå¤´ï¼Œåˆ™å¿…é¡»æ”¯æŒ USB Video Class(UVC 1.0 或更高版本)。 + </li> + <li>[C-1-3] 必须在连接实体外接摄åƒå¤´è®¾å¤‡çš„情况下通过摄åƒå¤´ CTS 测试。有关摄åƒå¤´ CTS 测试的详细信æ¯ï¼Œè¯·å‚阅 <a href="https://source.android.com/compatibility/cts/camera-hal">source.android.com</a>。 + </li> + <li>åº”æ”¯æŒ MJPEG ç‰è§†é¢‘åŽ‹ç¼©ï¼Œä»¥ä¾¿ä¼ è¾“é«˜å“质的未编ç æµï¼ˆå³åŽŸå§‹ç…§ç‰‡æµæˆ–独立压缩的照片æµï¼‰ã€‚ + </li> + <li>å¯ä»¥æ”¯æŒå¤šä¸ªæ‘„åƒå¤´ã€‚ + </li> + <li>å¯ä»¥æ”¯æŒåŸºäºŽæ‘„åƒå¤´çš„视频编ç 。 + </li> + </ul> + <p> +如果支æŒåŸºäºŽæ‘„åƒå¤´çš„视频编ç ,则 + </p> + <ul> + <li>[C-2-1] 并å‘的未编ç /MJPEG æµï¼ˆQVGA 或更高分辨率)必须å¯ä¾›è®¾å¤‡å®žçŽ°è®¿é—®ã€‚ + </li> + </ul> + <h4 id="7_5_4_camera_api_behavior"> +7.5.4. Camera API 行为 + </h4> + <p> +Android 包å«ä¸¤ä¸ªç”¨äºŽè®¿é—®æ‘„åƒå¤´çš„ API 包,较新的 android.hardware.camera2 API 使应用å¯ä»¥å¯¹æ‘„åƒå¤´è¿›è¡Œè¾ƒä½Žçº§åˆ«çš„控制,包括高效的零å¤åˆ¶è¿žæ‹/视频æµï¼Œä»¥åŠæŒ‰å¸§å¯¹æ›å…‰ã€å¢žç›Šã€ç™½å¹³è¡¡å¢žç›Šã€é¢œè‰²è½¬æ¢ã€åŽ»å™ªã€é”化ç‰è¿›è¡ŒæŽ§åˆ¶ã€‚ + </p> + <p> +较旧的 API 软件包 <code>android.hardware.Camera</code> 在 Android 5.0 ä¸è¢«æ ‡ä¸ºå·²å¼ƒç”¨ï¼Œä½†ç”±äºŽè¯¥è½¯ä»¶åŒ…应ä»å¯ä¾›åº”ç”¨ä½¿ç”¨ï¼Œå› æ¤ Android 设备实现必须确ä¿æŒç»æ”¯æŒè¯¥ API(如本节和 Android SDK ä¸æ‰€è¿°ï¼‰ã€‚ + </p> + <p> +已弃用的 android.hardware.Camera 类和较新的 android.hardware.camera2 è½¯ä»¶åŒ…éƒ½å…·å¤‡çš„åŠŸèƒ½åœ¨è¿™ä¸¤ç§ API ä¸çš„性能和质é‡å¿…须相当。例如,具有ç‰æ•ˆè®¾ç½®ï¼Œè‡ªåŠ¨å¯¹ç„¦é€Ÿåº¦å’Œç²¾ç¡®åº¦å¿…须完全相åŒï¼Œä¸”所æ‹å›¾ç‰‡çš„è´¨é‡å¿…须相åŒã€‚ä¾èµ–è¿™ä¸¤ç§ API çš„ä¸åŒè¯ä¹‰çš„åŠŸèƒ½æ— éœ€åœ¨é€Ÿåº¦å’Œè´¨é‡æ–¹é¢ä¿æŒä¸€è‡´ï¼Œä½†åº”å°½å¯èƒ½ä¿æŒä¸€è‡´ã€‚ + </p> + <p> +设备实现必须为所有å¯ç”¨çš„æ‘„åƒå¤´å®žçŽ°æ‘„åƒå¤´ç›¸å…³ API 的以下行为。设备实现: + </p> + <ul> + <li>[C-0-1] 对于æ供给应用回调的预览数æ®ï¼Œå¿…须使用 <code>android.hardware.PixelFormat.YCbCr_420_SP</code>(如果应用从未调用过 <code>android.hardware.Camera.Parameters.setPreviewFormat(int)</code>)。 + </li> + <li>[C-0-2] 如果应用注册了 <code>android.hardware.Camera.PreviewCallback</code> 实例,系统调用了 <code>onPreviewFrame()</code> æ–¹æ³•ï¼Œå¹¶ä¸”é¢„è§ˆæ ¼å¼ä¸º YCbCr_420_SPï¼Œåˆ™ä¼ é€’åˆ° <code>onPreviewFrame()</code> ä¸çš„ byte[] æ ¼å¼çš„æ•°æ®å¿…须进一æ¥é‡‡ç”¨ NV21 ç¼–ç æ ¼å¼ã€‚也就是说,NV21 必须是默认设置。 + </li> + <li>[C-0-3] 必须支æŒä½¿ç”¨ YV12 æ ¼å¼ï¼ˆç”¨ <code>android.graphics.ImageFormat.YV12</code> 常é‡è¡¨ç¤ºï¼‰è¿›è¡Œå‰ç½®æ‘„åƒå¤´å’ŒåŽç½®æ‘„åƒå¤´çš„æ‘„åƒå¤´é¢„览(对于 <code>android.hardware.Camera</code>)。(硬件视频编ç 器和摄åƒå¤´å¯ä»¥ä½¿ç”¨ä»»ä½•æœ¬æœºåƒç´ æ ¼å¼ï¼Œä½†è®¾å¤‡å®žçŽ°å¿…须支æŒå°†å…¶è½¬æ¢ä¸º YV12。) + </li> + <li>[C-0-4] 必须支æŒä½¿ç”¨ <code>android.hardware.ImageFormat.YUV_420_888</code> å’Œ <code>android.hardware.ImageFormat.JPEG</code> ä½œä¸ºè¾“å‡ºæ ¼å¼ï¼ˆé€šè¿‡ <code>android.media.ImageReader</code> API)(对于在 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES"><code>android.request.availableCapabilities</code></a> ä¸é€šå‘Š <a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE"><code>REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE</code></a> 功能的 <code>android.hardware.camera2</code> 设备)。 + </li> + <li>[C-0-5] ä»å¿…须实现 Android SDK 文档ä¸åŒ…å«çš„完整 <a href="http://developer.android.com/reference/android/hardware/Camera.html">Camera API</a>ï¼Œæ— è®ºè®¾å¤‡æ˜¯å¦åŒ…å«ç¡¬ä»¶è‡ªåŠ¨å¯¹ç„¦æˆ–其他功能都是如æ¤ã€‚例如,没有自动对焦功能的摄åƒå¤´ä»å¿…须调用所有已注册的 <code>android.hardware.Camera.AutoFocusCallback</code> 实例(å³ä½¿è¿™ä¸Žéžè‡ªåŠ¨å¯¹ç„¦æ‘„åƒå¤´æ— 关)。请注æ„,这适用于å‰ç½®æ‘„åƒå¤´ã€‚例如,虽然大多数å‰ç½®æ‘„åƒå¤´éƒ½ä¸æ”¯æŒè‡ªåŠ¨å¯¹ç„¦ï¼Œä½†ä»å¿…é¡»å¦‚æ‰€è¿°é‚£æ ·â€œä¼ªé€ â€API 回调。 + </li> + <li>[C-0-6] 必须识别并éµä»Ž <a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html"><code>android.hardware.Camera.Parameters</code></a> ç±»ä¸å®šä¹‰ä¸ºå¸¸é‡çš„æ¯ä¸ªå‚æ•°å称。å之,设备实现ä¸å¾—éµä»Žæˆ–è¯†åˆ«ä¼ é€’ç»™ <code>android.hardware.Camera.setParameters()</code> 方法的å—符串常é‡ï¼Œåœ¨ <code>android.hardware.Camera.Parameters</code> ä¸è½½è¿°ä¸ºå¸¸é‡çš„å—符串常é‡é™¤å¤–。也就是说,设备实现必须支æŒæ‰€æœ‰æ ‡å‡†æ‘„åƒå¤´å‚数(如果硬件å…许),ä¸å¾—支æŒè‡ªå®šä¹‰æ‘„åƒå¤´å‚数类型。例如,如果设备实现支æŒä½¿ç”¨é«˜åŠ¨æ€èŒƒå›´ (HDR) æˆåƒæŠ€æœ¯æ‹ç…§ï¼Œåˆ™å¿…须支æŒæ‘„åƒå¤´å‚æ•° <code>Camera.SCENE_MODE_HDR</code>。 + </li> + <li>[C-0-7] 必须通过 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL"><code>android.info.supportedHardwareLevel</code></a> 属性报告æ£ç¡®çš„支æŒçº§åˆ«ï¼ˆå¦‚ Android SDK ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶æŠ¥å‘Šç›¸åº”çš„<a href="http://source.android.com/devices/camera/versioning.html">æ¡†æž¶åŠŸèƒ½æ ‡è®°</a>。 + </li> + <li>[C-0-8] 还必须通过 <code>android.request.availableCapabilities</code> 属性声明 <code>android.hardware.camera2</code> çš„å„项摄åƒå¤´åŠŸèƒ½ï¼Œå¹¶å£°æ˜Žç›¸åº”çš„<a href="http://source.android.com/devices/camera/versioning.html">åŠŸèƒ½æ ‡è®°</a>;如果连接的任何摄åƒå¤´è®¾å¤‡æ”¯æŒæŸé¡¹åŠŸèƒ½ï¼Œåˆ™å¿…é¡»å®šä¹‰ç›¸åº”çš„åŠŸèƒ½æ ‡è®°ã€‚ + </li> + <li>[C-0-9] æ¯å½“æ‘„åƒå¤´æ‹æ‘„了新照片且相应的照片æ¡ç›®å·²æ·»åŠ 到媒体å˜å‚¨åŒºæ—¶ï¼Œéƒ½å¿…é¡»å¹¿æ’ <code>Camera.ACTION_NEW_PICTURE</code> Intent。 + </li> + <li>[C-0-10] æ¯å½“æ‘„åƒå¤´å½•åˆ¶äº†æ–°è§†é¢‘且相应的视频æ¡ç›®å·²æ·»åŠ 到媒体å˜å‚¨åŒºæ—¶ï¼Œéƒ½å¿…é¡»å¹¿æ’ <code>Camera.ACTION_NEW_VIDEO</code> Intent。 + </li> + <li>[C-SR] 强烈建议支æŒåˆ—出 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA"><code>CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA</code></a> 功能的逻辑摄åƒå¤´è®¾å¤‡ - 针对多个摄åƒå¤´æœå‘åŒä¸€æ–¹å‘(æ¯ä¸ªç‰©ç†æ‘„åƒå¤´å‡æœå‘该方å‘)的设备,åªè¦æ¡†æž¶æ”¯æŒè¯¥ç‰©ç†æ‘„åƒå¤´ç±»åž‹ä¸”物ç†æ‘„åƒå¤´çš„ <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL"><code>CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL</code></a> 为 <code>LIMITED</code>ã€<code>FULL</code> 或 <code>LEVEL_3</code>。 + </li> + </ul> + <h4 id="7_5_5_camera_orientation"> +7.5.5. æ‘„åƒå¤´æ–¹å‘ + </h4> + <p> +如果设备实现具有å‰ç½®æˆ–åŽç½®æ‘„åƒå¤´ï¼Œåˆ™æ¤ç±»æ‘„åƒå¤´ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»æœå‘æ£ç¡®æ–¹å‘,以便摄åƒå¤´çš„长度方å‘与å±å¹•çš„长度方å‘对é½ã€‚也就是说,当设备处于横å‘时,摄åƒå¤´å¿…须横å‘æ‹æ‘„ã€‚æ— è®ºè®¾å¤‡çš„è‡ªç„¶æ–¹å‘为何,æ¤è§„则都适用;也就是说,它适用于以横å‘为主的设备以åŠä»¥çºµå‘为主的设备。 + </li> + </ul> + <h3 id="7_6_memory_and_storage"> +7.6. 内å˜å’Œå˜å‚¨ç©ºé—´ + </h3> + <h4 id="7_6_1_minimum_memory_and_storage"> +7.6.1. 最å°å†…å˜å’Œå˜å‚¨ç©ºé—´ + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须包å«å¯ä¾›åº”用下载数æ®æ–‡ä»¶çš„<a href="http://developer.android.com/reference/android/app/DownloadManager.html">内容下载管ç†å™¨</a>,并且应用必须能够将ä¸å°äºŽ 100MB çš„å„个文件下载到默认的“缓å˜â€ä½ç½®ã€‚ + </li> + </ul> + <h4 id="7_6_2_application_shared_storage"> +7.6.2. 应用共享å˜å‚¨ç©ºé—´ + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»æä¾›å¯ä¾›åº”用共享的å˜å‚¨ç©ºé—´ï¼Œè¯¥å˜å‚¨ç©ºé—´é€šå¸¸ä¹Ÿç§°ä¸ºâ€œå…±äº«çš„外部å˜å‚¨ç©ºé—´â€ã€â€œåº”用共享å˜å‚¨ç©ºé—´â€ï¼Œæˆ–者也å¯ä»¥é€šè¿‡è¯¥å˜å‚¨ç©ºé—´è£…载到的 Linux 路径“/sdcardâ€æ¥æŒ‡ä»£å®ƒã€‚ + </li> + <li>[C-0-2] å¿…é¡»é…有默认装载的(也就是说å¯ä»¥ç›´æŽ¥ä½¿ç”¨çš„)共享å˜å‚¨ç©ºé—´ï¼šå¯ä»¥åœ¨å†…部å˜å‚¨ç»„件上或å¯ç§»åŠ¨å˜å‚¨åª’介(例如安全数å—å¡æ’槽)上实现该å˜å‚¨ç©ºé—´ã€‚ + </li> + <li>[C-0-3] 必须直接在 Linux 路径 <code>sdcard</code> ä¸è£…载应用共享å˜å‚¨ç©ºé—´ï¼Œæˆ–包å«ä¸€ä¸ªä»Ž <code>sdcard</code> 到实际装载点的 Linux 符å·é“¾æŽ¥ã€‚ + </li> + <li>[C-0-4] 必须对该共享å˜å‚¨ç©ºé—´å¼ºåˆ¶æ‰§è¡Œ <code>android.permission.WRITE_EXTERNAL_STORAGE</code> æƒé™ï¼ˆå¦‚ SDK ä¸æ‰€è¿°ï¼‰ã€‚å¿…é¡»å…许任何获得该æƒé™çš„应用对共享å˜å‚¨ç©ºé—´æ‰§è¡Œå†™å…¥æ“作。 + </li> + </ul> + <p> +设备实现å¯ä»¥ä½¿ç”¨ä»¥ä¸‹ä¸¤è€…之一æ¥æ»¡è¶³ä¸Šè¿°è¦æ±‚: + </p> + <ul> + <li>å¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„å¯ç§»åŠ¨å˜å‚¨è®¾å¤‡ï¼Œä¾‹å¦‚å®‰å…¨æ•°å— (SD) å¡æ’槽。 + </li> + <li>Android å¼€æºé¡¹ç›® (AOSP) ä¸å®žçŽ°çš„内部(ä¸å¯ç§»åŠ¨ï¼‰å˜å‚¨ç©ºé—´çš„一部分。 + </li> + </ul> + <p> +如果设备实现使用å¯ç§»åŠ¨å˜å‚¨è®¾å¤‡æ¥æ»¡è¶³ä¸Šè¿°è¦æ±‚,则: + </p> + <ul> + <li>[C-1-1] 必须实现在æ’槽ä¸æœªæ’å…¥å˜å‚¨åª’介时è¦å‘Šç”¨æˆ·çš„消æ¯æ¡†æˆ–弹出界é¢ã€‚ + </li> + <li>[C-1-2] 必须包å«ç»è¿‡ FAT æ ¼å¼åŒ–çš„å˜å‚¨åª’介(例如 SD å¡ï¼‰ï¼Œæˆ–者在包装箱上以åŠè´ä¹°æ—¶éšé™„的其他æ料上注明需å•ç‹¬è´ä¹°å˜å‚¨åª’介。 + </li> + </ul> + <p> +如果设备实现使用ä¸å¯ç§»åŠ¨å˜å‚¨ç©ºé—´çš„一部分æ¥æ»¡è¶³ä¸Šè¿°è¦æ±‚,则: + </p> + <ul> + <li>应使用内部应用共享å˜å‚¨ç©ºé—´çš„ AOSP 实现。 + </li> + <li>å¯ä»¥ä¸Žåº”用éšç§æ•°æ®å…±äº«å˜å‚¨ç©ºé—´ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¤šä¸ªå…±äº«å˜å‚¨ç©ºé—´è·¯å¾„(例如 SD å¡æ’槽和共享内部å˜å‚¨ç©ºé—´ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] åªèƒ½å…许具有 <code>WRITE_EXTERNAL_STORAGE</code> æƒé™çš„预安装 Android 特æƒåº”用对辅助外部å˜å‚¨è®¾å¤‡æ‰§è¡Œå†™å…¥æ“ä½œï¼Œå†™å…¥åˆ°å…¶è½¯ä»¶åŒ…ä¸“ç”¨ç›®å½•æˆ–å†™å…¥åˆ°é€šè¿‡è§¦å‘ <code>ACTION_OPEN_DOCUMENT_TREE</code> Intent 返回的 <code>URI</code> ä¸æ—¶é™¤å¤–。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å…·æœ‰æ”¯æŒ USB 外围设备模å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] å¿…é¡»æ供一ç§ç”¨äºŽä»Žä¸»æœºè®¿é—®åº”用共享å˜å‚¨ç©ºé—´å†…çš„æ•°æ®çš„机制。 + </li> + <li>应通过 Android 的媒体扫æ程åºæœåŠ¡å’Œ <code>android.provider.MediaStore</code> é€æ˜Žåœ°å…¬å¼€ä¸Šè¿°ä¸¤ä¸ªå˜å‚¨ç©ºé—´è·¯å¾„ä¸çš„内容。 + </li> + <li>å¯ä»¥ä½¿ç”¨ USB 大容é‡å˜å‚¨è®¾å¤‡ï¼Œä½†åº”ä½¿ç”¨åª’ä½“ä¼ è¾“åè®®æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å…·æœ‰æ”¯æŒ USB 外围设备模å¼çš„ USB 端å£ï¼Œå¹¶ä¸”支æŒåª’ä½“ä¼ è¾“å议,则: + </p> + <ul> + <li>应与 Android MTP å‚考主机(<a href="http://www.android.com/filetransfer">Android æ–‡ä»¶ä¼ è¾“</a>)兼容。 + </li> + <li>应报告 USB 设备类 0x00。 + </li> + <li>应报告 USB 接å£å称“MTPâ€ã€‚ + </li> + </ul> + <h4 id="7_6_3_adoptable_storage"> +7.6.3. å¯åˆå¹¶çš„å˜å‚¨è®¾å¤‡ + </h4> + <p> +如果设备应具有移动性(ä¸åŒäºŽ TV),则对于设备实现: + </p> + <ul> + <li>[SR] 强烈建议在长期ä¸å˜çš„固定ä½ç½®å®žçŽ°å¯åˆå¹¶çš„å˜å‚¨è®¾å¤‡ï¼Œå› 为æ„外æ–开它们å¯èƒ½ä¼šå¯¼è‡´æ•°æ®ä¸¢å¤±/æŸå。 + </li> + </ul> + <p> +如果å¯ç§»åŠ¨å˜å‚¨è®¾å¤‡ç«¯å£ä½äºŽé•¿æœŸä¸å˜çš„固定ä½ç½®ï¼ˆä¾‹å¦‚ç”µæ± ç›’æˆ–å…¶ä»–é˜²æŠ¤ç›–å†…ï¼‰ï¼Œåˆ™å¯¹äºŽè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[SR] 强烈建议实现<a href="http://source.android.com/devices/storage/adoptable.html">å¯åˆå¹¶çš„å˜å‚¨è®¾å¤‡</a>。 + </li> + </ul> + <h3 id="7_7_usb"> +7.7. USB + </h3> + <p> +如果设备实现具有 USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>åº”æ”¯æŒ USB 外围设备模å¼ï¼Œå¹¶ä¸”åº”æ”¯æŒ USB 主机模å¼ã€‚ + </li> + </ul> + <h4 id="7_7_1_usb_peripheral_mode"> +7.7.1. USB å¤–å›´è®¾å¤‡æ¨¡å¼ + </h4> + <p> +如果设备实现包å«æ”¯æŒå¤–围设备模å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 该端å£å¿…é¡»å¯è¿žæŽ¥åˆ°å…·æœ‰æ ‡å‡† A 型或 C åž‹ USB 端å£çš„ USB 主机。 + </li> + <li>[C-1-2] 必须在 USB æ ‡å‡†è®¾å¤‡æ述符ä¸ä¸º <code>iSerialNumber</code> 报告æ£ç¡®çš„值(通过 <code>android.os.Build.SERIAL</code>)。 + </li> + <li>[C-1-3] å¦‚æžœå®ƒä»¬æ”¯æŒ C åž‹ USBï¼Œåˆ™å¿…é¡»æ ¹æ® C åž‹ç”µé˜»æ ‡å‡†æ£€æµ‹ 1.5A å’Œ 3.0A 充电器,并检测通告ä¸çš„å˜åŒ–。 + </li> + <li>[SR] 该端å£åº”使用 micro-B åž‹ã€micro-AB 型或 C åž‹ USB å¤–å½¢è§„æ ¼ã€‚<strong>强烈建议</strong>现有的åŠæ–°çš„ Android 设备满足这些è¦æ±‚,以便能够å‡çº§åˆ°æœªæ¥çš„å¹³å°ç‰ˆæœ¬ã€‚ + </li> + <li>[SR] 该端å£åº”ä½äºŽè®¾å¤‡åº•éƒ¨ï¼ˆæ ¹æ®è‡ªç„¶æ–¹å‘),或为所有应用(包括主å±å¹•ï¼‰å¯ç”¨è½¯ä»¶å±å¹•æ—‹è½¬åŠŸèƒ½ï¼Œä»¥ä¾¿è®¾å¤‡åœ¨æŒ‰ç…§è¯¥ç«¯å£ä½äºŽåº•éƒ¨çš„æ–¹ä½æ”¾ç½®æ—¶ï¼Œæ˜¾ç¤ºå±èƒ½å¤Ÿæ£ç¡®å‘ˆçŽ°å†…容。<strong>强烈建议</strong>现有的åŠæ–°çš„ Android 设备满足这些è¦æ±‚,以便能够å‡çº§åˆ°æœªæ¥çš„å¹³å°ç‰ˆæœ¬ã€‚ + </li> + <li>[SR] 应支æŒåœ¨ HS 线性调频和æµé‡ä¼ 输期间采用 1.5 A 电æµï¼ˆå¦‚ <a href="http://www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip">USB ç”µæ± å……ç”µè§„èŒƒ - 修订版 1.2</a> ä¸æ‰€è§„定)。<strong>强烈建议</strong>现有的åŠæ–°çš„ Android 设备满足这些è¦æ±‚,以便能够å‡çº§åˆ°æœªæ¥çš„å¹³å°ç‰ˆæœ¬ã€‚ + </li> + <li>[SR] 强烈建议ä¸è¦æ”¯æŒä¼šä¿®æ”¹é«˜äºŽé»˜è®¤ç”µåŽ‹çš„ Vbus 电压或更改接收端/æºç«¯è§’è‰²çš„ä¸“æœ‰å……ç”µæ–¹æ³•ï¼Œå› ä¸ºè¿™æ ·å¯èƒ½ä¼šå¯¼è‡´æ”¯æŒæ ‡å‡† USB Power Delivery 方法的充电器或设备出现互æ“作性问题。虽然æ¤å¤„说的是“强烈建议â€ï¼Œä½†åœ¨æœªæ¥çš„ Android 版本ä¸ï¼Œæˆ‘们å¯èƒ½ä¼šè¦æ±‚所有 C 型设备支æŒä¸Žæ ‡å‡† C 型充电器的完整互æ“作性。 + </li> + <li>[SR] å¦‚æžœå®ƒä»¬æ”¯æŒ C åž‹ USB å’Œ USB 主机模å¼ï¼Œåˆ™å¼ºçƒˆå»ºè®®æ”¯æŒ Power Delivery 以进行数æ®è§’色和电æºè§’色交æ¢ã€‚ + </li> + <li>åº”æ”¯æŒ Power Delivery 以进行高压充电,并且应支æŒæ˜¾ç¤ºè¾“出ç‰æ›¿ä»£æ¨¡å¼ã€‚ + </li> + <li>应实现 Android Open Accessory (AOA) API 和规范(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°åŒ…å« USB 端å£ï¼Œå¹¶ä¸”实现了 AOA 规范,则: + </p> + <ul> + <li>[C-2-1] 必须声明支æŒç¡¬ä»¶åŠŸèƒ½ <a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html"><code>android.hardware.usb.accessory</code></a>。 + </li> + <li>[C-2-2] USB 大容é‡å˜å‚¨è®¾å¤‡ç±»å¿…须在 USB 大容é‡å˜å‚¨è®¾å¤‡çš„接å£æè¿° <code>iInterface</code> å—ç¬¦ä¸²æœ«å°¾æ·»åŠ å—符串“androidâ€ã€‚ + </li> + <li>ä¸åº”实现 Android Open Accessory Protocol 2.0 文档ä¸è½½è¿°çš„ <a href="https://source.android.com/devices/accessories/aoa2#audio-support">AOAv2 音频</a>。从 Android 8.0(API 26 级)开始,AOAv2 音频便被弃用了。 + </li> + </ul> + <h4 id="7_7_2_usb_host_mode"> +7.7.2. USB ä¸»æœºæ¨¡å¼ + </h4> + <p> +如果设备实现包å«æ”¯æŒä¸»æœºæ¨¡å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须实现 Android USB 主机 API(如 Android SDK ä¸æ‰€è¿°ï¼‰ï¼Œå¹¶å£°æ˜Žæ”¯æŒç¡¬ä»¶åŠŸèƒ½ <a href="http://developer.android.com/guide/topics/connectivity/usb/host.html"><code>android.hardware.usb.host</code></a>。 + </li> + <li>[C-1-2] 必须支æŒè¿žæŽ¥æ ‡å‡† USB 外围设备,也就是说,它们必须满足以下æ¡ä»¶ä¹‹ä¸€ï¼š + <ul> + <li>具有设备自带的 C 型端å£ï¼Œæˆ–附带用于将设备自带的专有端å£é€‚é…åˆ°æ ‡å‡† USB C 型端å£ï¼ˆUSB C 型设备)的数æ®çº¿ã€‚ + </li> + <li>具有设备自带的 A 型端å£ï¼Œæˆ–附带用于将设备自带的专有端å£é€‚é…åˆ°æ ‡å‡† USB A 型端å£çš„æ•°æ®çº¿ã€‚ + </li> + <li>具有设备自带的 micro-AB 型端å£ï¼Œè¯¥ç«¯å£åº”附带用于适é…åˆ°æ ‡å‡† A 型端å£çš„æ•°æ®çº¿ã€‚ + </li> + </ul> + </li> + <li>[C-1-3] ä¸å¾—附带将 USB A 型端å£æˆ– micro-AB 端å£è½¬æŽ¥åˆ° C 型端å£ï¼ˆæ’å£ï¼‰çš„适é…器。 + </li> + <li>[SR] 强烈建议实现 <a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">USB 音频类</a>(如 Android SDK 文档ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>应支æŒåœ¨ä¸»æœºæ¨¡å¼ä¸‹ä¸ºè¿žæŽ¥çš„ USB 外围设备充电;为 USB C 型连接器使用至少 1.5A çš„æºç”µæµï¼ˆå¦‚ <a href="http://www.usb.org/developers/docs/usb_31_021517.zip">USB C åž‹æ•°æ®çº¿å’Œè¿žæŽ¥å™¨è§„范 - 修订版 1.2</a> ä¸çš„“端接å‚æ•°â€éƒ¨åˆ†æ‰€è§„定),或为 Micro-AB åž‹è¿žæŽ¥å™¨ä½¿ç”¨å……ç”µä¸‹è¡Œç«¯å£ (CDP) 输出电æµèŒƒå›´ï¼ˆå¦‚ <a href="http://www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip">USB ç”µæ± å……ç”µè§„èŒƒ - 修订版 1.2</a> ä¸æ‰€è§„定)。 + </li> + <li>应实现并支æŒä¸Ž USB C åž‹ç›¸å…³çš„æ ‡å‡†ã€‚ + </li> + </ul> + <p> +如果设备实现包å«æ”¯æŒä¸»æœºæ¨¡å¼å’Œ USB 音频类的 USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] å¿…é¡»æ”¯æŒ <a href="https://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_HID">USB HID ç±»</a>。 + </li> + <li>[C-2-2] 必须支æŒæ£€æµ‹ <a href="http://www.usb.org/developers/hidpage/Hut1_12v2.pdf">USB HID 用法表</a>å’Œ<a href="http://www.usb.org/developers/hidpage/Voice_Command_Usage.pdf">è¯éŸ³æŒ‡ä»¤ç”¨æ³•è¯·æ±‚</a>ä¸æŒ‡å®šçš„以下 HID æ•°æ®å—段,并支æŒå°†å…¶æ˜ 射到 <a href="https://developer.android.com/reference/android/view/KeyEvent.html"><code>KeyEvent</code></a> 常é‡ï¼Œå¦‚下所示: + <ul> + <li>用法页 (0xC) 用法 ID (0x0CD):<code>KEYCODE_MEDIA_PLAY_PAUSE</code> + </li> + <li>用法页 (0xC) 用法 ID (0x0E9):<code>KEYCODE_VOLUME_UP</code> + </li> + <li>用法页 (0xC) 用法 ID (0x0EA):<code>KEYCODE_VOLUME_DOWN</code> + </li> + <li>用法页 (0xC) 用法 ID (0x0CF):<code>KEYCODE_VOICE_ASSIST</code> + </li> + </ul> + </li> + </ul> + <p> +如果设备实现包å«æ”¯æŒä¸»æœºæ¨¡å¼å’Œå˜å‚¨è®¿é—®æ¡†æž¶ (SAF) çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 必须能够识别任何远程连接的 MTPï¼ˆåª’ä½“ä¼ è¾“å议)设备,并通过 <code>ACTION_GET_CONTENT</code>ã€<code>ACTION_OPEN_DOCUMENT</code> å’Œ <code>ACTION_CREATE_DOCUMENT</code> Intent 使其内容å¯ä¾›è®¿é—®ã€‚ + </li> + </ul> + <p> +如果设备实现包å«æ”¯æŒä¸»æœºæ¨¡å¼å’Œ USB C åž‹çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-4-1] 必须实现åŒé‡è§’色端å£åŠŸèƒ½ï¼ˆå¦‚ USB C 型规范(第 4.5.1.3.3 节)ä¸å®šä¹‰ï¼‰ã€‚ + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ DisplayPortï¼Œåº”æ”¯æŒ USB SuperSpeed æ•°æ®ä¼ è¾“é€ŸçŽ‡ï¼Œå¹¶ä¸”å¼ºçƒˆå»ºè®®æ”¯æŒ Power Delivery 以进行数æ®è§’色和电æºè§’色交æ¢ã€‚ + </li> + <li>[SR] 强烈建议ä¸è¦æ”¯æŒéŸ³é¢‘适é…器é…件模å¼ï¼ˆå¦‚ <a href="http://www.usb.org/developers/docs/">USB C åž‹æ•°æ®çº¿å’Œè¿žæŽ¥å™¨è§„范 - 修订版 1.2</a> 的附录 A ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>应实现最适åˆè®¾å¤‡å¤–å½¢è§„æ ¼çš„ Try.* 模型。例如,手æŒè®¾å¤‡åº”实现 Try.SNK 模型。 + </li> + </ul> + <h3 id="7_8_audio"> +7.8. 音频 + </h3> + <h4 id="7_8_1_microphone"> +7.8.1. 麦克风 + </h4> + <p> +如果设备实现包å«éº¦å…‹é£Žï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须报告 <code>android.hardware.microphone</code> 功能常é‡ã€‚ + </li> + <li>[C-1-2] 必须满足<a href="#5_4_audio_recording">第 5.4 节</a>ä¸çš„录音è¦æ±‚。 + </li> + <li>[C-1-3] 必须满足<a href="#5_6_audio_latency">第 5.6 节</a>ä¸çš„音频延迟è¦æ±‚。 + </li> + <li>[SR] 强烈建议支æŒè¿‘超声录音(如<a href="#7_8_3_near_ultrasound">第 7.8.3 节</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现çœç•¥äº†éº¦å…‹é£Žï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] ä¸å¾—报告 <code>android.hardware.microphone</code> 功能常é‡ã€‚ + </li> + <li>[C-2-2] 必须至少按照<a href="#7_hardware_compatibility">第 7 节</a>ä¸çš„规定将录音 API 实现为空æ“作。 + </li> + </ul> + <h4 id="7_8_2_audio_output"> +7.8.2. 音频输出 + </h4> + <p> +如果设备实现包å«æ‰¬å£°å™¨ï¼Œæˆ–包å«ç”¨äºŽè¿žæŽ¥éŸ³é¢‘输出外围设备的音频/多媒体输出端å£ï¼ˆä¾‹å¦‚ 4 导体 3.5 毫米音频耳机æ’å”或使用 <a href="https://source.android.com/devices/audio/usb#audioClass">USB 音频类</a>çš„ USB 主机模å¼ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须报告 <code>android.hardware.audio.output</code> 功能常é‡ã€‚ + </li> + <li>[C-1-2] 必须满足<a href="#5_5_audio_playback">第 5.5 节</a>ä¸çš„音频æ’放è¦æ±‚。 + </li> + <li>[C-1-3] 必须满足<a href="#5_6_audio_latency">第 5.6 节</a>ä¸çš„音频延迟è¦æ±‚。 + </li> + <li>[SR] 强烈建议支æŒè¿‘超声æ’放(如<a href="#7_8_3_near_ultrasound">第 7.8.3 节</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <p> +如果设备实现ä¸åŒ…å«æ‰¬å£°å™¨æˆ–音频输出端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] ä¸å¾—报告 <code>android.hardware.audio.output</code> 功能。 + </li> + <li>[C-2-2] 必须至少将与音频输出机制相关的 API 实现为空æ“作。 + </li> + </ul> + <p> +在本节ä¸ï¼Œâ€œè¾“出端å£â€æ˜¯æŒ‡<a href="https://en.wikipedia.org/wiki/Computer_port_%28hardware%29">实体接å£</a>,例如 3.5 毫米音频耳机æ’å”ã€HDMI 端å£ï¼Œæˆ–使用 USB 音频类的 USB 主机模å¼ç«¯å£ã€‚支æŒé€šè¿‡æ— 线å议(例如è“牙ã€WLAN 或移动网络)输出音频ä¸ç®—作包å«â€œè¾“出端å£â€ã€‚ + </p> + <h5 id="7_8_2_1_analog_audio_ports"> +7.8.2.1. æ¨¡æ‹ŸéŸ³é¢‘ç«¯å£ + </h5> + <p> +为了兼容 Android 生æ€ç³»ç»Ÿä¸ä½¿ç”¨ 3.5 毫米音频æ’头的<a href="https://source.android.com/devices/accessories/headset/plug-headset-spec">耳机和其他音频é…件</a>,如果设备实现包å«ä¸€ä¸ªæˆ–多个模拟音频端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-SR] 强烈建议至少有一个音频端å£ä¸º 4 导体 3.5 毫米音频耳机æ’å”。 + </li> + </ul> + <p> +如果设备实现具有 4 导体 3.5 毫米音频耳机æ’å”,则: + </p> + <ul> + <li>[C-1-1] 必须支æŒå°†éŸ³é¢‘æ’放到带麦克风的立体声头戴å¼è€³æœºå’Œç«‹ä½“声耳机。 + </li> + <li>[C-1-2] 必须支æŒé‡‡ç”¨ CTIA 引脚顺åºçš„ TRRS 音频æ’头。 + </li> + <li>[C-1-3] 必须支æŒæ£€æµ‹éŸ³é¢‘æ’头上的麦克风导体和接地导体之间以下 3 个范围的ç‰æ•ˆé˜»æŠ—,并支æŒå°†å…¶æ˜ 射到相应的键ç : + <ul> + <li> + <strong>70 欧姆或更低</strong>:<code>KEYCODE_HEADSETHOOK</code> + </li> + <li> + <strong>210-290 欧姆</strong>:<code>KEYCODE_VOLUME_UP</code> + </li> + <li> + <strong>360-680 欧姆</strong>:<code>KEYCODE_VOLUME_DOWN</code> + </li> + </ul> + </li> + <li>[C-1-4] 必须在æ’å…¥æ’å¤´æ—¶è§¦å‘ <code>ACTION_HEADSET_PLUG</code>,但åªèƒ½åœ¨æ’头上的所有触点都已接触到耳机æ’å”上å„自的相关部分åŽæ‰èƒ½è§¦å‘。 + </li> + <li>[C-1-5] 必须能够在 32 欧姆扬声器阻抗上驱动至少 150mV ± 10% 的输出电压。 + </li> + <li>[C-1-6] 麦克风å置电压必须介于 1.8V 到 2.9V 之间。 + </li> + <li>[C-1-7] 必须检测音频æ’头上的麦克风导体和接地导体之间以下范围的ç‰æ•ˆé˜»æŠ—ï¼Œå¹¶ä¸”å¿…é¡»å°†å…¶æ˜ å°„åˆ°ç›¸åº”çš„é”®ç : + <ul> + <li> + <strong>110-180 欧姆</strong>:<code>KEYCODE_VOICE_ASSIST</code> + </li> + </ul> + </li> + <li>[C-SR] 强烈建议支æŒå…·æœ‰ OMTP 引脚顺åºçš„音频æ’头。 + </li> + <li>[C-SR] 强烈建议支æŒä½¿ç”¨å¸¦éº¦å…‹é£Žçš„立体声耳机进行录音。 + </li> + </ul> + <p> +如果设备实现具有 4 导体 3.5 毫米音频耳机æ’å”,支æŒéº¦å…‹é£Žï¼Œå¹¶ä¸”å¹¿æ’ <code>android.intent.action.HEADSET_PLUG</code>(其ä¸åŒ…å«ä¸€ä¸ªè®¾ä¸º 1 çš„é¢å¤–å‚数“microphoneâ€ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须支æŒæ£€æµ‹æ’入的音频é…件上是å¦æœ‰éº¦å…‹é£Žã€‚ + </li> + </ul> + <h4 id="7_8_3_near-ultrasound"> +7.8.3. 近超声 + </h4> + <p> +近超声音频的频带为 18.5 kHz 到 20 kHz。 + </p> + <p> +设备实现: + </p> + <ul> + <li>必须通过 <a href="http://developer.android.com/reference/android/media/AudioManager.html#getProperty%28java.lang.String%29">AudioManager.getProperty</a> API æ£ç¡®æŠ¥å‘Šå¯¹è¿‘超声音频功能的支æŒæƒ…况,如下所述: + </li> + </ul> + <p> +如果 <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND"><code>PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND</code></a> 为“trueâ€ï¼Œåˆ™ <code>VOICE_RECOGNITION</code> å’Œ <code>UNPROCESSED</code> 音频æºå¿…须满足以下è¦æ±‚: + </p> + <ul> + <li>[C-1-1] 麦克风在 18.5 kHz 到 20 kHz 频带之间的平å‡åŠŸçŽ‡å“应ä¸å¾—比 2 kHz 下的å“应低 15 dB 以上。 + </li> + <li>[C-1-2] 对于 -26 dBFS çš„ 19 kHz 音调,麦克风在 18.5 kHz 到 20 kHz 频带内的ä¸åŠ æƒä¿¡å™ªæ¯”ä¸å¾—低于 50 dB。 + </li> + </ul> + <p> +如果 <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND"><code>PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND</code></a> 为“trueâ€ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 扬声器在 18.5 kHz 到 20 kHz 之间的平å‡å“应与在 2 kHz 下的å“应相比,低ä¸èƒ½è¶…过 40 dB。 + </li> + </ul> + <h3 id="7_9_virtual_reality"> +7.9. 虚拟实境 + </h3> + <p>Android 包å«ç”¨äºŽæž„建“虚拟实境â€(VR) 应用(æ供高å“质的移动 VR 体验)的 API 和工具。设备实现必须æ£ç¡®å®žçŽ°è¿™äº› API 和行为(本节ä¸å¯¹æ¤è¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žï¼‰ã€‚ + </p> + <h4 id="7_9_1_virtual_reality_mode"> +7.9.1. è™šæ‹Ÿå®žå¢ƒæ¨¡å¼ + </h4> + <p> +Android æ”¯æŒ <a href="https://developer.android.com/reference/android/app/Activity.html#setVrModeEnabled%28boolean,%20android.content.ComponentName%29">VR 模å¼</a>,该模å¼ç”¨äºŽå¤„ç†é€šçŸ¥çš„立体呈现,并会在 VR 应用获得用户èšç„¦æ—¶åœç”¨å•ç›®ç³»ç»Ÿç•Œé¢ç»„件。 + </p> + <h4 id="7_9_2_virtual_reality_mode_-_high_performance"> +7.9.2. è™šæ‹Ÿå®žå¢ƒæ¨¡å¼ - 高性能 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ VR 模å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须有至少 2 ä¸ªå®žä½“æ ¸å¿ƒã€‚ + </li> + <li>[C-1-2] 必须声明 <code>android.hardware.vr.high_performance</code> 功能。 + </li> + <li>[C-1-3] 必须支æŒæŒç»æ€§èƒ½æ¨¡å¼ã€‚ + </li> + <li>[C-1-4] å¿…é¡»æ”¯æŒ OpenGL ES 3.2。 + </li> + <li>[C-1-5] å¿…é¡»æ”¯æŒ <code>android.hardware.vulkan.level</code> 0。 + </li> + <li>åº”æ”¯æŒ <code>android.hardware.vulkan.level</code> 1 或更高版本。 + </li> + <li>[C-1-6] 必须实现 <a href="https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_mutable_render_buffer.txt"><code>EGL_KHR_mutable_render_buffer</code></a>ã€<a href="https://www.khronos.org/registry/EGL/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt"><code>EGL_ANDROID_front_buffer_auto_refresh</code></a>ã€<a href="https://www.khronos.org/registry/EGL/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt"><code>EGL_ANDROID_get_native_client_buffer</code></a>ã€<a href="https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_fence_sync.txt"><code>EGL_KHR_fence_sync</code></a>ã€<a href="https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_wait_sync.txt"><code>EGL_KHR_wait_sync</code></a>ã€<a href="https://www.khronos.org/registry/EGL/extensions/IMG/EGL_IMG_context_priority.txt"><code>EGL_IMG_context_priority</code></a>ã€<a href="https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_protected_content.txt"><code>EGL_EXT_protected_content</code></a> å’Œ <a href="https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_gl_colorspace.txt"><code>EGL_EXT_image_gl_colorspace</code></a>,并在å¯ç”¨ EGL 扩展列表ä¸å…¬å¼€è¿™äº›æ‰©å±•ã€‚ + </li> + <li>[C-1-8] 必须实现 <a href="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture2.txt"><code>GL_EXT_multisampled_render_to_texture2</code></a>ã€<a href="https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview.txt"><code>GL_OVR_multiview</code></a>ã€<a href="https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview2.txt"><code>GL_OVR_multiview2</code></a>ã€<a href="https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview_multisampled_render_to_texture.txt"><code>GL_OVR_multiview_multisampled_render_to_texture</code></a>ã€<a href="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_protected_textures.txt"><code>GL_EXT_protected_textures</code></a>ã€<a href="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_array.txt"><code>GL_EXT_EGL_image_array</code></a> å’Œ <a href="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_external_buffer.txt"><code>GL_EXT_external_buffer</code></a>,并在å¯ç”¨ GL 扩展列表ä¸å…¬å¼€è¿™äº›æ‰©å±•ã€‚ + </li> + <li>[C-1-24] 必须实现 <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_KHR_shared_presentable_image"><code>VK_KHR_shared_presentable_image</code></a> å’Œ <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_GOOGLE_display_timing"><code>VK_GOOGLE_display_timing</code></a>,并在å¯ç”¨ Vulkan 扩展列表ä¸å…¬å¼€è¿™äº›æ‰©å±•ã€‚ + </li> + <li>[C-1-25] 必须至少公开一个 Vulkan é˜Ÿåˆ—ç³»åˆ—ï¼Œå…¶ä¸ <code>flags</code> åŒæ—¶åŒ…å« <code>VK_QUEUE_GRAPHICS_BIT</code> å’Œ <code>VK_QUEUE_COMPUTE_BIT</code>,且 <code>queueCount</code> 至少为 2。 + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ Vulkan 1.1。 + </li> + <li>[SR] 强烈建议实现 <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer"><code>VK_ANDROID_external_memory_android_hardware_buffer</code></a>,并在å¯ç”¨ Vulkan 扩展列表ä¸å…¬å¼€è¯¥æ‰©å±•ã€‚ + </li> + <li>[C-1-7] GPU 和显示å±å¿…须能够åŒæ¥è®¿é—®å…±äº«çš„å‰ç«¯ç¼“冲区,以便在两个呈现环境ä¸ä»¥ 60fps 的速率交替呈现 VR 内容,而没有å¯è§çš„撕裂现象。 + </li> + <li>[C-1-9] å¿…é¡»æ”¯æŒ <a href="https://developer.android.com/ndk/reference/hardware__buffer_8h.html"><code>AHardwareBuffer</code></a> æ ‡è®° <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>ã€<code>AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA</code> å’Œ <code>AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT</code>(如 NDK ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-10] 必须支æŒå…·æœ‰å¤šä¸ªå±‚çš„ <code>AHardwareBuffers</code> 以åŠç”¨æ³•æ ‡è®° <code>AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT</code>ã€<code>AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE</code> å’Œ <code>AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT</code> è‡³å°‘ä»¥ä¸‹åˆ—æ ¼å¼ä¹‹ä¸€è¿›è¡Œä»»æ„组åˆï¼š<code>AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM</code>ã€<code>AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM</code>ã€<code>AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM</code> å’Œ <code>AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT</code>。 + </li> + <li>[C-1-11] 必须支æŒä»¥è‡³å°‘ 3840 x 2160 @ 30fps çš„åˆ†è¾¨çŽ‡ä¸”åŽ‹ç¼©åˆ°å¹³å‡ 40Mbps 的速度(相当于 4 个 1920 x1080 @ 30 fps-10 Mbps 实例或 2 个 1920 x 1080 @ 60 fps-20 Mbps 实例)进行 H.264 解ç 。 + </li> + <li>[C-1-12] å¿…é¡»æ”¯æŒ HEVC å’Œ VP9,必须能够以至少 1920 x 1080 @ 30 fps çš„åˆ†è¾¨çŽ‡ä¸”åŽ‹ç¼©åˆ°å¹³å‡ 10 Mbps 的速度进行解ç ,并且应能够以 3840 x 2160 @ 30 fps-20 Mbps 的分辨率和速度进行解ç (相当于 4 个 1920 x 1080 @ 30 fps-5 Mbps 实例)。 + </li> + <li>[C-1-13] å¿…é¡»æ”¯æŒ <code>HardwarePropertiesManager.getDeviceTemperatures</code> API,并返回表层温度的准确值。 + </li> + <li>[C-1-14] 必须包å«åµŒå…¥å¼å±å¹•ï¼Œä¸”其分辨率必须至少为 1920 x 1080。 + </li> + <li>[C-SR] 强烈建议显示å±åˆ†è¾¨çŽ‡è‡³å°‘为 2560 x 1440。 + </li> + <li>[C-1-15] 显示å±åœ¨ VR 模å¼ä¸‹çš„更新频率必须至少为 60 Hz。 + </li> + <li>[C-1-17] 显示å±å¿…须支æŒä½ŽæŒä¹…性模å¼ï¼ˆæŒä¹…性å°äºŽç‰äºŽ 5 毫秒),æŒä¹…性指åƒç´ å‘光的时长。 + </li> + <li>[C-1-18] 必须支æŒè“牙 4.2 å’Œè“牙 LE æ•°æ®é•¿åº¦æ‰©å±•ï¼ˆ<a href="#7_4_3_bluetooth">第 7.4.3 节</a>)。 + </li> + <li>[C-1-19] å¯¹äºŽä»¥ä¸‹æ‰€æœ‰é»˜è®¤ä¼ æ„Ÿå™¨ç±»åž‹ï¼Œå¿…é¡»æ”¯æŒå¹¶æ£ç¡®æŠ¥å‘Š<a href="https://developer.android.com/reference/android/hardware/Sensor#isDirectChannelTypeSupported%28int%29">直接通é“类型</a>: + <ul> + <li> + <code>TYPE_ACCELEROMETER</code> + </li> + <li> + <code>TYPE_ACCELEROMETER_UNCALIBRATED</code> + </li> + <li> + <code>TYPE_GYROSCOPE</code> + </li> + <li> + <code>TYPE_GYROSCOPE_UNCALIBRATED</code> + </li> + <li> + <code>TYPE_MAGNETIC_FIELD</code> + </li> + <li> + <code>TYPE_MAGNETIC_FIELD_UNCALIBRATED</code> + </li> + </ul> + </li> + <li>[C-1-20] 对于上é¢åˆ—出的所有直接通é“ç±»åž‹ï¼Œå¿…é¡»æ”¯æŒ <a href="https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_HARDWARE_BUFFER"><code>TYPE_HARDWARE_BUFFER</code></a> 直接通é“类型。 + </li> + <li>[C-1-21] 对于 <code>android.hardware.hifi_sensors</code>,必须满足与陀螺仪ã€åŠ 速度计和ç£åŠ›è®¡ç›¸å…³çš„è¦æ±‚(如<a href="#7_3_9_high_fidelity_sensors">第 7.3.9 节</a>ä¸æ‰€è§„定)。 + </li> + <li>[SR] å¼ºçƒˆå»ºè®®æ”¯æŒ <code>android.hardware.sensor.hifi_sensors</code> 功能。 + </li> + <li>[C-1-22] 从è¿åŠ¨åˆ°æˆåƒçš„端到端延时ä¸å¾—超过 28 毫秒。 + </li> + <li>[SR] 强烈建议从è¿åŠ¨åˆ°æˆåƒçš„端到端延时ä¸è¶…过 20 毫秒。 + </li> + <li>[C-1-23] 第一帧率(å³ç¬¬ä¸€å¸§ä¸Šä»Žé»‘过渡到白之åŽçš„åƒç´ 亮度与白色åƒç´ 处于稳定状æ€çš„亮度之间的比率)必须至少为 85%。 + </li> + <li>[SR] 强烈建议第一帧率至少为 90%。 + </li> + <li>å¯ä»¥ä¸ºå‰å°åº”用æä¾›ä¸“å±žæ ¸å¿ƒï¼Œå¹¶ä¸”å¯ä»¥æ”¯æŒ <code>Process.getExclusiveCores</code> API,以便返回专供最é å‰çš„å‰å°åº”用使用的 CPU æ ¸å¿ƒæ•°ã€‚ + </li> + </ul> + <p> +如果支æŒä¸“å±žæ ¸å¿ƒï¼Œåˆ™è¯¥æ ¸å¿ƒï¼š + </p> + <ul> + <li>[C-2-1] ä¸å¾—å…许任何其他用户空间进程(应用使用的设备驱动程åºé™¤å¤–)在其上è¿è¡Œï¼Œä½†åœ¨å¿…è¦æ—¶å¯ä»¥å…è®¸ä¸€äº›å†…æ ¸è¿›ç¨‹åœ¨å…¶ä¸Šè¿è¡Œã€‚ + </li> + </ul> + <h2 id="8_performance_and_power"> +8. 性能和功耗 + </h2> + <p> +æœ‰äº›æœ€ä½Žæ€§èƒ½å’ŒåŠŸè€—æ ‡å‡†å¯¹ç”¨æˆ·ä½“éªŒè‡³å…³é‡è¦ï¼Œå¹¶ä¸”会影å“å¼€å‘者在开å‘应用时所åšçš„基准å‡è®¾ã€‚ + </p> + <h3 id="8_1_user_experience_consistency"> +8.1. 用户体验一致性 + </h3> + <p> +如果有特定的最低è¦æ±‚æ¥ç¡®ä¿åº”用和游æˆä¿æŒä¸€è‡´çš„帧速率和å“应时间,则å¯ä»¥ä¸ºæœ€ç»ˆç”¨æˆ·æä¾›æµç•…çš„ç•Œé¢ã€‚æ ¹æ®è®¾å¤‡ç±»åž‹ï¼Œè®¾å¤‡å®žçŽ°å¯ä»¥æœ‰é’ˆå¯¹ç•Œé¢å»¶è¿Ÿå’Œä»»åŠ¡åˆ‡æ¢çš„å¯è¡¡é‡è¦æ±‚(如<a href="#2_device-types">第 2 节</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </p> + <h3 id="8_2_file_i/o_access_performance"> +8.2. 文件 I/O 访问性能 + </h3> + <p> +通过æ供在应用éšç§æ•°æ®å˜å‚¨ç©ºé—´ï¼ˆ<code>/data</code> 分区)上实现一致的文件访问性能所需的常用基准,应用开å‘者å¯ä»¥è®¾å®šæœ‰åŠ©äºŽè¿›è¡Œè½¯ä»¶è®¾è®¡çš„é€‚å½“é¢„æœŸã€‚æ ¹æ®è®¾å¤‡ç±»åž‹ï¼Œè®¾å¤‡å®žçŽ°å¯ä»¥åŒ…å«é’ˆå¯¹ä»¥ä¸‹è¯»å–和写入æ“作的特定è¦æ±‚(如<a href="#2_device-type">第 2 节</a>ä¸æ‰€è¿°ï¼‰ï¼š + </p> + <ul> + <li> + <strong>顺åºå†™å…¥æ€§èƒ½</strong>:通过使用 10MB 写入缓冲区写入一个 256MB 的文件æ¥è¡¡é‡ã€‚ + </li> + <li> + <strong>éšæœºå†™å…¥æ€§èƒ½</strong>:通过使用 4KB 写入缓冲区写入一个 256MB 的文件æ¥è¡¡é‡ã€‚ + </li> + <li> + <strong>顺åºè¯»å–性能</strong>:通过使用 10MB 写入缓冲区读å–一个 256MB 的文件æ¥è¡¡é‡ã€‚ + </li> + <li> + <strong>éšæœºè¯»å–性能</strong>:通过使用 4KB 写入缓冲区读å–一个 256MB 的文件æ¥è¡¡é‡ã€‚ + </li> + </ul> + <h3 id="8_3_power-saving_modes"> +8.3. èŠ‚ç”µæ¨¡å¼ + </h3> + <p> +如果设备实现ä¸çš„功能å¯æ”¹è¿› AOSP ä¸çš„设备电æºç®¡ç†æˆ–扩展 AOSP ä¸çš„功能,则: + </p> + <ul> + <li>[C-1-1] 应用待机和低电耗节电模å¼çš„触å‘ã€ç»´æŠ¤ã€å”¤é†’算法以åŠå¯¹å…¨å±€ç³»ç»Ÿè®¾ç½®çš„使用都ä¸å¾—è¿èƒŒ AOSP 实现。 + </li> + <li>[C-1-2] 使用全局设置管ç†åº”用待机模å¼ä¸‹æ¯ä¸ªå˜å‚¨åˆ†åŒºä¸åº”用的作业ã€æ醒和网络调节都ä¸å¾—å离 AOSP 实现。 + </li> + <li>[C-1-3] 应用待机模å¼æ‰€ç”¨<a href="https://developer.android.com/topic/performance/appstandby">应用待机å˜å‚¨åˆ†åŒº</a>çš„æ•°é‡ä¸å¾—å离 AOSP 实现。 + </li> + <li>[C-1-4] 必须实现<a href="https://developer.android.com/topic/performance/appstandby">应用待机å˜å‚¨åˆ†åŒº</a>和低电耗模å¼ï¼ˆå¦‚<a href="https://source.android.com/devices/tech/power/mgmt">电æºç®¡ç†</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-1-5] 必须在设备处于节电模å¼æ—¶é’ˆå¯¹ <a href="https://developer.android.com/reference/android/os/PowerManager#isPowerSaveMode%28%29"><code>PowerManager.isPowerSaveMode()</code></a> 返回 <code>true</code>。 + </li> + <li>[C-SR] 强烈建议æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤Ÿå¯ç”¨å’Œåœç”¨çœç”µæ¨¡å¼ã€‚ + </li> + <li>[C-SR] 强烈建议æ供一ç§æ–¹å¼ï¼Œè®©ç”¨æˆ·èƒ½å¤ŸæŸ¥çœ‹å…于进入应用待机模å¼å’Œä½Žç”µè€—模å¼çš„所有应用。 + </li> + </ul> + <p> +除了节电模å¼ä¹‹å¤–,Android 设备实现还å¯ä»¥å®žçŽ°ä»»æ„或全部 4 ç§ä¼‘çœ ç”µæºçŠ¶æ€ï¼ˆå¦‚高级é…置与电æºæŽ¥å£ (ACPI) ä¸æ‰€å®šä¹‰ï¼‰ã€‚ + </p> + <p> +如果设备实现已实现 S3 å’Œ S4 电æºçŠ¶æ€ï¼ˆå¦‚ ACPI ä¸æ‰€å®šä¹‰ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须仅在用户明确执行使设备处于ä¸æ´»åŠ¨çŠ¶æ€çš„æ“作(例如åˆä¸Šå±žäºŽè®¾å¤‡æœ¬èº«ä¸€éƒ¨åˆ†çš„ç›–å或关é—车辆或电视)之åŽåŠç”¨æˆ·é‡æ–°æ¿€æ´»è®¾å¤‡ï¼ˆä¾‹å¦‚打开盖å或开å¯è½¦è¾†æˆ–电视)之å‰è¿›å…¥ä¸Šè¿°çŠ¶æ€ã€‚ + </li> + </ul> + <h3 id="8_4_power_consumption_accounting"> +8.4. 功耗计算 + </h3> + <p> +更准确地计算和报告功耗有助于应用开å‘者找出能够优化应用功耗模å¼çš„措施和工具。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[SR] 强烈建议æ供一个关于å„组件功耗的é…置文件,其ä¸è¦å®šä¹‰æ¯ç§ç¡¬ä»¶ç»„件的<a href="http://source.android.com/devices/tech/power/values.html">耗电值</a>,以åŠç»„件在一段时间内大概消耗的电é‡ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上所述)。 + </li> + <li>[SR] 强烈建议以毫安å°æ—¶ (mAh) 为å•ä½æŠ¥å‘Šæ‰€æœ‰åŠŸè€—值。 + </li> + <li>[SR] 强烈建议按æ¯ä¸ªè¿›ç¨‹çš„ UID 报告 CPU 功耗。Android å¼€æºé¡¹ç›®é€šè¿‡ <code>uid_cputime</code> å†…æ ¸æ¨¡å—实现æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + <li>[SR] 强烈建议能让应用开å‘者通过 <a href="http://source.android.com/devices/tech/power/batterystats.html"><code>adb shell dumpsys batterystats</code></a> shell 命令查看æ¤åŠŸè€—。 + </li> + <li>å¦‚æžœæ— æ³•å°†ç¡¬ä»¶ç»„ä»¶çš„åŠŸè€—å½’äºŽæŸä¸ªåº”用,则应将其归于硬件组件本身。 + </li> + </ul> + <h3 id="8_5_consistent_performance"> +8.5. 性能一致 + </h3> + <p> +高性能应用在长时间è¿è¡Œæ—¶ï¼Œæ€§èƒ½å¯èƒ½ä¼šå› åŽå°è¿è¡Œçš„其他应用或由于温度é™åˆ¶å¯¼è‡´çš„ CPU 节æµè€Œå‡ºçŽ°å¤§å¹…波动。Android 包å«å¯ç¼–程接å£ï¼Œä»¥ä¾¿åœ¨è®¾å¤‡èƒœä»»çš„情况下,最é å‰çš„å‰å°åº”用能够请求系统优化资æºçš„分é…,æ¥åº”对这ç§æ³¢åŠ¨ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须通过 <a href="https://developer.android.com/reference/android/os/PowerManager.html#isSustainedPerformanceModeSupported%28%29"><code>PowerManager.isSustainedPerformanceModeSupported()</code></a> API 方法准确报告对æŒç»æ€§èƒ½æ¨¡å¼çš„支æŒæƒ…况。 + </p> + </li> + <li> + <p> +应支æŒæŒç»æ€§èƒ½æ¨¡å¼ã€‚ + </p> + </li> + </ul> + <p> +如果设备报告支æŒæŒç»æ€§èƒ½æ¨¡å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须能够让最é å‰çš„å‰å°åº”用至少在 30 分钟内ä¿æŒç¨³å®šçš„性能水平(当该应用请求时)。 + </li> + <li>[C-1-2] å¿…é¡»éµä»Ž <a href="https://developer.android.com/reference/android/view/Window.html#setSustainedPerformanceMode%28boolean%29"><code>Window.setSustainedPerformanceMode()</code></a> API 和其他相关 API。 + </li> + </ul> + <p> +如果设备实现包å«ä¸¤ä¸ªæˆ–更多个 CPU æ ¸å¿ƒï¼Œåˆ™ï¼š + </p> + <ul> + <li>应至少æ供一个å¯é¢„留给最é å‰çš„å‰å°åº”ç”¨ä½¿ç”¨çš„ä¸“ç”¨æ ¸å¿ƒã€‚ + </li> + </ul> + <p> +如果设备实现支æŒä¸ºæœ€é å‰çš„å‰å°åº”ç”¨é¢„ç•™ä¸€ä¸ªä¸“ç”¨æ ¸å¿ƒï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须通过 <a href="https://developer.android.com/reference/android/os/Process.html#getExclusiveCores%28%29"><code>Process.getExclusiveCores()</code></a> API 方法报告å¯é¢„留给最é å‰çš„å‰å°åº”ç”¨ä½¿ç”¨çš„ä¸“å±žæ ¸å¿ƒçš„ ID å·ã€‚ + </li> + <li>[C-2-2] ä¸å¾—å…许任何用户空间进程(应用使用的设备驱动程åºé™¤å¤–ï¼‰åœ¨ä¸“ç”¨æ ¸å¿ƒä¸Šè¿è¡Œï¼Œä½†åœ¨å¿…è¦æ—¶å¯ä»¥å…è®¸ä¸€äº›å†…æ ¸è¿›ç¨‹åœ¨å…¶ä¸Šè¿è¡Œã€‚ + </li> + </ul> + <p> +如果设备实现ä¸æ”¯æŒä¸“ç”¨æ ¸å¿ƒï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 必须通过 <a href="https://developer.android.com/reference/android/os/Process.html#getExclusiveCores%28%29"><code>Process.getExclusiveCores()</code></a> API 方法返回一个空列表。 + </li> + </ul> + <h2 id="9_security_model_compatibility"> +9. 安全模型兼容性 + </h2> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须实现与 Android å¹³å°å®‰å…¨æ¨¡åž‹ï¼ˆå¦‚ Android å¼€å‘者文档 > API æŒ‡å— > <a href="http://developer.android.com/guide/topics/security/permissions.html">安全和æƒé™å‚考文档</a>ä¸å®šä¹‰ï¼‰ä¸€è‡´çš„安全模型。 + </p> + </li> + <li> + <p> +[C-0-2] 必须支æŒå®‰è£…自ç¾ååº”ç”¨ï¼ˆæ— éœ€ä»Žä»»ä½•ç¬¬ä¸‰æ–¹/æƒå¨æœºæž„获得任何é¢å¤–çš„æƒé™/è¯ä¹¦ï¼‰ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œä¸Ž Android 兼容的设备必须支æŒä»¥ä¸‹å°èŠ‚ä¸æ‰€è¿°çš„安全机制。 + </p> + </li> + </ul> + <h3 id="9_1_permissions"> +9.1. æƒé™ + </h3> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] å¿…é¡»æ”¯æŒ <a href="http://developer.android.com/guide/topics/security/permissions.html">Android æƒé™æ¨¡åž‹</a>(如 Android å¼€å‘者文档ä¸å®šä¹‰ï¼‰ã€‚具体æ¥è¯´å°±æ˜¯ï¼Œå¿…须强制执行定义的æ¯é¡¹æƒé™ï¼ˆå¦‚ SDK 文档ä¸æ‰€è¿°ï¼‰ï¼›ä¸å¾—çœç•¥ã€æ›´æ”¹æˆ–忽略任何æƒé™ã€‚ + </p> + </li> + <li> + <p> +å¯ä»¥æ·»åŠ é¢å¤–çš„æƒé™ï¼Œä½†å‰æ是新æƒé™çš„ ID å—符串ä¸åœ¨ <code>android.\*</code> 命å空间内。 + </p> + </li> + <li> + <p> +[C-0-2] <code>protectionLevel</code> 为 <a href="https://developer.android.com/reference/android/content/pm/PermissionInfo.html#PROTECTION&lowbar;FLAG&lowbar;PRIVILEGED"><code>PROTECTION_FLAG_PRIVILEGED</code></a> çš„æƒé™åªèƒ½æŽˆäºˆåœ¨ç³»ç»Ÿæ˜ åƒçš„特æƒè·¯å¾„ä¸é¢„åŠ è½½çš„åº”ç”¨ï¼Œå¹¶ä¸”æ¤ç±»æƒé™åªèƒ½ä½äºŽæ˜Žç¡®ä¸ºå„个应用列入白åå•çš„æƒé™çš„å集ä¸ã€‚AOSP 实现通过以下方å¼æ¥æ»¡è¶³è¯¥è¦æ±‚:从 <code>etc/permissions/</code> 路径下的文件ä¸è¯»å–为å„个应用列入白åå•çš„æƒé™ã€éµä»Žæ¤ç±»æƒé™ï¼Œå¹¶å°† <code>system/priv-app</code> 路径用作特æƒè·¯å¾„。 + </p> + </li> + </ul> + <p> +ä¿æŠ¤çº§åˆ«ä¸ºâ€œå±é™©â€çš„æƒé™å±žäºŽè¿è¡Œæ—¶æƒé™ã€‚<code>targetSdkVersion</code> 高于 22 的应用会在è¿è¡Œæ—¶è¯·æ±‚这些æƒé™ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-3] 必须显示一个专用界é¢ï¼Œä»¥ä¾¿ç”¨æˆ·å†³å®šæ˜¯å¦æŽˆäºˆè¯·æ±‚çš„è¿è¡Œæ—¶æƒé™ï¼›æ¤å¤–还必须æ供一个供用户管ç†è¿è¡Œæ—¶æƒé™çš„ç•Œé¢ã€‚ + </li> + <li>[C-0-4] 对于这两个界é¢ï¼Œå¿…须有且åªèƒ½æœ‰ä¸€ä¸ªå®žçŽ°ã€‚ + </li> + <li>[C-0-5] ä¸å¾—å‘预安装的应用授予任何è¿è¡Œæ—¶æƒé™ï¼Œé™¤éžï¼š + <ul> + <li>å¯ä»¥åœ¨åº”用使用è¿è¡Œæ—¶æƒé™ä¹‹å‰èŽ·å¾—用户åŒæ„。 + </li> + <li>è¿è¡Œæ—¶æƒé™ä¸Žç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„æŸä¸ª Intent 模å¼ç›¸å…³è”:已将预安装的应用设为其默认处ç†ç¨‹åºã€‚ + </li> + </ul> + </li> + <li>[C-0-6] 必须仅将 <code>android.permission.RECOVER_KEYSTORE</code> æƒé™æŽˆäºˆå·²æ³¨å†Œé‡‡å–适当安全措施的æ¢å¤ä»£ç†çš„系统应用。采å–适当安全措施的æ¢å¤ä»£ç†æ˜¯æŒ‡ç¬¦åˆä»¥ä¸‹æ¡ä»¶çš„设备内置软件代ç†ï¼šå¯ä¸Žè®¾å¤‡å¤–远程å˜å‚¨ç©ºé—´åŒæ¥ï¼Œä¸”é…有安全硬件,æ供的ä¿æŠ¤åŠŸèƒ½ç›¸å½“于或优于 <a href="https://developer.android.com/preview/features/security/ckv-whitepaper.html">Google Cloud Key Vault Service</a> ä¸æ‰€è¿°çš„ä¿æŠ¤åŠŸèƒ½ï¼Œå¯é˜²æ¢æš´åŠ›ç ´è§£æ”»å‡» Lock Screen Knowledge Factor (LSKF)。 + </li> + </ul> + <p> +如果设备实现包å«é¢„安装的应用,或者希望å…许第三方应用访问使用情况统计信æ¯ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[SR] å¼ºçƒˆå»ºè®®èƒ½å¤Ÿå› åº” <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION&lowbar;USAGE&lowbar;ACCESS&lowbar;SETTINGS"><code>android.settings.ACTION_USAGE_ACCESS_SETTINGS</code></a> Intent æ供一ç§å¯ä¾›ç”¨æˆ·ä½¿ç”¨çš„机制,以便他们为声明了 <code>android.permission.PACKAGE_USAGE_STATS</code> æƒé™çš„应用授予或撤消对使用情况统计信æ¯çš„访问æƒé™ã€‚ + </li> + </ul> + <p> +如果设备实现打算ç¦æ¢æ‰€æœ‰åº”用(包括预安装的应用)访问使用情况统计信æ¯ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] å¿…é¡»ä»æœ‰è´Ÿè´£å¤„ç† <a href="https://developer.android.com/reference/android/provider/Settings.html#ACTION&lowbar;USAGE&lowbar;ACCESS&lowbar;SETTINGS"><code>android.settings.ACTION_USAGE_ACCESS_SETTINGS</code></a> Intent 模å¼çš„ Activity,但必须将其实现为空æ“作,也就是具有和用户访问被拒时åŒç‰çš„行为。 + </li> + </ul> + <h3 id="9_2_uid_and_process_isolation"> +9.2. UID 和进程隔离 + </h3> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»æ”¯æŒ Android 应用沙盒模型。在该模型ä¸ï¼Œæ¯ä¸ªåº”用都是在å•ç‹¬çš„进程ä¸ä½œä¸ºç‹¬ä¸€æ— 二的 Unixstyle UID è¿è¡Œã€‚ + </li> + <li>[C-0-2] 必须支æŒä»¥åŒä¸€ Linux 用户 ID è¿è¡Œå¤šä¸ªåº”用,但å‰æ是这些应用已ç»è¿‡é€‚当ç¾å,并采用了适当的构建方å¼ï¼ˆå¦‚<a href="http://developer.android.com/guide/topics/security/permissions.html">安全和æƒé™å‚考</a>ä¸å®šä¹‰ï¼‰ã€‚ + </li> + </ul> + <h3 id="9_3_filesystem_permissions"> +9.3. 文件系统æƒé™ + </h3> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»æ”¯æŒ Android 文件访问æƒé™æ¨¡åž‹ï¼ˆå¦‚<a href="http://developer.android.com/guide/topics/security/permissions.html">安全和æƒé™å‚考</a>ä¸å®šä¹‰ï¼‰ã€‚ + </li> + </ul> + <h3 id="9_4_alternate_execution_environments"> +9.4. 替代执行环境 + </h3> + <p> +设备实现必须能够使 Android 安全性和æƒé™æ¨¡åž‹ä¿æŒä¸€è‡´æ€§ï¼Œå³ä½¿å®ƒä»¬åŒ…å«å˜åœ¨ä»¥ä¸‹æƒ…况的è¿è¡Œæ—¶çŽ¯å¢ƒä¹Ÿæ˜¯å¦‚æ¤ï¼šä½¿ç”¨é™¤äº† Dalvik å¯æ‰§è¡Œæ–‡ä»¶æ ¼å¼æˆ–本机代ç 以外的一些其他软件或技术æ¥æ‰§è¡Œåº”用。也就是说: + </p> + <ul> + <li> + <p> +[C-0-1] 替代è¿è¡Œæ—¶æœ¬èº«å¿…须是 Android 应用,并且éµå¾ªæ ‡å‡†çš„ Android 安全模型(如<a href="#9_security_model_compatibility">第 9 节</a>ä¸çš„其他部分所述)。 + </p> + </li> + <li> + <p> +[C-0-2] ä¸å¾—授æƒæ›¿ä»£è¿è¡Œæ—¶è®¿é—®å—以下æƒé™ä¿æŠ¤çš„资æºï¼šæœªåœ¨æ›¿ä»£è¿è¡Œæ—¶çš„ <code>AndroidManifest.xml</code> 文件ä¸é€šè¿‡ <<code>uses-permission</code>> 机制请求的æƒé™ã€‚ + </p> + </li> + <li> + <p> +[C-0-3] 替代è¿è¡Œæ—¶ä¸å¾—å…许应用使用å—ä»…é™ç³»ç»Ÿåº”用享有的 Android æƒé™ä¿æŠ¤çš„功能。 + </p> + </li> + <li> + <p> +[C-0-4] 替代è¿è¡Œæ—¶å¿…é¡»éµå¾ª Android 沙盒模型,并且使用替代è¿è¡Œæ—¶çš„已安装应用ä¸å¾—é‡å¤ä½¿ç”¨è®¾å¤‡ä¸Šå·²å®‰è£…的任何其他应用的沙盒,除éžé€šè¿‡å…±äº«ç”¨æˆ· ID å’Œç¾åè¯ä¹¦è¿™ä¸¤ç§æ ‡å‡† Android 机制。 + </p> + </li> + <li> + <p> +[C-0-5] ä¸å¾—使用对应于其他 Android 应用的沙盒å¯åŠ¨æ›¿ä»£è¿è¡Œæ—¶ï¼Œä¸å¾—å‘替代è¿è¡Œæ—¶æŽˆäºˆå¯¹è¿™äº›æ²™ç›’的访问æƒé™ï¼Œæ›¿ä»£è¿è¡Œæ—¶ä¹Ÿä¸å¾—å‘其他应用授予æ¤ç±»è®¿é—®æƒé™ã€‚ + </p> + </li> + <li> + <p> +[C-0-6] ä¸å¾—使替代è¿è¡Œæ—¶åœ¨å¯åŠ¨æ—¶èŽ·å¾—超级用户 (root) 或任何其他用户 ID 的任何æƒé™ï¼Œä¸å¾—å‘替代è¿è¡Œæ—¶æŽˆäºˆä»»ä½•æ¤ç±»æƒé™ï¼Œæ›¿ä»£è¿è¡Œæ—¶ä¹Ÿä¸å¾—å‘其他应用授予任何æ¤ç±»æƒé™ã€‚ + </p> + </li> + <li> + <p> +[C-0-7] å¦‚æžœè®¾å¤‡å®žçŽ°çš„ç³»ç»Ÿæ˜ åƒä¸åŒ…å«æ›¿ä»£è¿è¡Œæ—¶çš„ <code>.apk</code> 文件,则这些文件必须已ç¾å,并且ç¾å时所用的密钥必须ä¸åŒäºŽå¯¹è®¾å¤‡å®žçŽ°åŒ…å«çš„其他应用ç¾å时使用的密钥。 + </p> + </li> + <li> + <p> +[C-0-8] 在安装应用时,替代è¿è¡Œæ—¶å¿…须就应用使用的 Android æƒé™èŽ·å¾—用户åŒæ„。 + </p> + </li> + <li> + <p> +[C-0-9] 如果æŸä¸ªåº”用需è¦ä½¿ç”¨å…·æœ‰ç›¸åº” Android æƒé™çš„设备资æºï¼ˆä¾‹å¦‚æ‘„åƒå¤´ã€GPS,ç‰ç‰ï¼‰ï¼Œåˆ™æ›¿ä»£è¿è¡Œæ—¶å¿…须通知用户,让他们知é“该应用将能够访问相应资æºã€‚ + </p> + </li> + <li> + <p> +[C-0-10] 如果è¿è¡Œæ—¶çŽ¯å¢ƒä¸ä¼šä»¥è¿™ç§æ–¹å¼è®°å½•åº”用功能,则在安装任何使用该è¿è¡Œæ—¶çš„应用时,è¿è¡Œæ—¶çŽ¯å¢ƒéƒ½å¿…须列出è¿è¡Œæ—¶è‡ªèº«æ‹¥æœ‰çš„所有æƒé™ã€‚ + </p> + </li> + <li> + <p> +替代è¿è¡Œæ—¶åº”通过 <code>PackageManager</code> 将应用安装到å•ç‹¬çš„ Android 沙盒(Linux 用户 ID ç‰ï¼‰ä¸ã€‚ + </p> + </li> + <li> + <p> +替代è¿è¡Œæ—¶å¯ä»¥æ供一个供所有使用替代è¿è¡Œæ—¶çš„应用共享的 Android 沙盒。 + </p> + </li> + </ul> + <h3 id="9_5_multi-user_support"> +9.5. å¤šç”¨æˆ·æ”¯æŒ + </h3> + <p> +Android <a href="http://developer.android.com/reference/android/os/UserManager.html">支æŒå¤šç”¨æˆ·åŠŸèƒ½</a>,并支æŒå®Œå…¨ç”¨æˆ·éš”离。 + </p> + <ul> + <li>如果设备实现使用<a href="http://developer.android.com/reference/android/os/Environment.html">å¯ç§»åŠ¨åª’体</a>作为主è¦çš„外部å˜å‚¨è®¾å¤‡ï¼Œåˆ™å¯ä»¥ä½†ä¸åº”å¯ç”¨å¤šç”¨æˆ·åŠŸèƒ½ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¤šä½ç”¨æˆ·ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须满足与<a href="http://source.android.com/devices/storage/traditional.html">多用户支æŒ</a>相关的以下è¦æ±‚。 + </li> + <li>[C-1-2] 必须为æ¯ä½ç”¨æˆ·å®žçŽ°ä¸Ž Android å¹³å°å®‰å…¨æ¨¡åž‹ï¼ˆå¦‚ API 指å—内的<a href="http://developer.android.com/guide/topics/security/permissions.html">安全和æƒé™å‚考文档</a>ä¸å®šä¹‰ï¼‰ä¸€è‡´çš„安全模型。 + </li> + <li>[C-1-3] 对于æ¯ä¸ªç”¨æˆ·å®žä¾‹ï¼Œéƒ½å¿…须在共享应用å˜å‚¨ç©ºé—´ï¼ˆä¹Ÿç§°ä¸º <code>/sdcard</code>)ä¸æœ‰å•ç‹¬çš„隔离目录。 + </li> + <li>[C-1-4] 必须确ä¿å½’指定用户所有且以其å义è¿è¡Œçš„åº”ç”¨æ— æ³•åˆ—å‡ºã€è¯»å–或写入到归任何其他用户所有的文件ä¸ï¼Œå³ä½¿åŒæ–¹çš„æ•°æ®éƒ½å˜å‚¨åœ¨ç›¸åŒçš„å·æˆ–文件系统ä¸ä¹Ÿæ˜¯å¦‚æ¤ã€‚ + </li> + <li>[C-1-5] 如果设备实现针对外部å˜å‚¨ API 使用å¯ç§»åŠ¨åª’介,则必须使用仅å˜å‚¨åœ¨åªæœ‰ç³»ç»Ÿå¯è®¿é—®çš„ä¸å¯ç§»åŠ¨åª’介上的密钥对 SD å¡ä¸çš„å†…å®¹åŠ å¯†ï¼ˆå¦‚æžœå¯ç”¨äº†å¤šç”¨æˆ·åŠŸèƒ½ï¼‰ã€‚è¿™æ ·ä¼šä½¿ä¸»æœº PC æ— æ³•è¯»å–相应媒介,所以设备实现将需è¦åˆ‡æ¢åˆ° MTP 或类似系统,æ‰èƒ½ä¸ºä¸»æœº PC æ供访问当å‰ç”¨æˆ·çš„æ•°æ®çš„æƒé™ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¤šä½ç”¨æˆ·ï¼Œå¹¶ä¸”未声明 <code>android.hardware.telephony</code> åŠŸèƒ½æ ‡è®°ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须支æŒå—é™é…置文件,该é…置文件å¯è®©è®¾å¤‡æ‰€æœ‰è€…管ç†è®¾å¤‡ä¸Šçš„其他用户以åŠä»–们å¯ä»¥ä½¿ç”¨çš„功能。借助å—é™é…置文件,设备所有者å¯ä»¥å¿«é€Ÿè®¾ç½®ä¾›å…¶ä»–用户使用的å•ç‹¬çŽ¯å¢ƒï¼ŒåŒæ—¶è¿˜èƒ½åœ¨å¯äºŽè¿™äº›çŽ¯å¢ƒä¸è¿è¡Œçš„应用内管ç†æ›´ç²¾ç»†çš„é™åˆ¶ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å¤šä½ç”¨æˆ·ï¼Œå¹¶ä¸”声明了 <code>android.hardware.telephony</code> åŠŸèƒ½æ ‡è®°ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] ä¸å¾—支æŒå—é™é…置文件,但必须与用于å…许/ç¦æ¢å…¶ä»–用户访问è¯éŸ³é€šè¯å’ŒçŸä¿¡çš„控件的 AOSP 实现ä¿æŒä¸€è‡´ã€‚ + </li> + </ul> + <h3 id="9_6_premium_sms_warning"> +9.6. 付费çŸä¿¡è¦å‘Š + </h3> + <p> +Android 支æŒé’ˆå¯¹ä»»ä½•å¤–å‘<a href="http://en.wikipedia.org/wiki/Short_code">付费çŸä¿¡</a>å‘用户å‘出è¦å‘Šã€‚付费çŸä¿¡æ˜¯æŒ‡å‘已在è¿è¥å•†å¤„注册且å¯èƒ½éœ€è¦ç”¨æˆ·ä»˜è´¹çš„æœåŠ¡å‘é€çš„çŸä¿¡ã€‚ + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å£°æ˜Žæ”¯æŒ <code>android.hardware.telephony</code>,则: + </p> + <ul> + <li>[C-1-1] 在å‘通过设备的 <code>/data/misc/sms/codes.xml</code> 文件ä¸å®šä¹‰çš„æ£åˆ™è¡¨è¾¾å¼è¯†åˆ«å‡ºçš„å·ç å‘é€çŸä¿¡ä¹‹å‰ï¼Œå¿…é¡»è¦å‘Šç”¨æˆ·ã€‚上游 Android å¼€æºé¡¹ç›®æ供满足该è¦æ±‚的实现。 + </li> + </ul> + <h3 id="9_7_security_features"> +9.7. 安全功能 + </h3> + <p> +设备实现必须确ä¿ç¬¦åˆå†…æ ¸åŠå¹³å°ä¸çš„安全功能è¦æ±‚(如下所述)。 + </p> + <p> +Android 沙盒包å«ä½¿ç”¨å®‰å…¨å¢žå¼ºåž‹ Linux (SELinux) 强制访问控制 (MAC) 系统ã€seccomp æ²™ç›’åŠŸèƒ½ä»¥åŠ Linux å†…æ ¸ä¸å…¶ä»–å®‰å…¨åŠŸèƒ½çš„åŠŸèƒ½ã€‚å› æ¤ï¼Œè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[C-0-1] 必须与现有应用ä¿æŒå…¼å®¹ï¼Œå³ä½¿ SELinux 或任何其他安全功能是在 Android 框架以下实现的。 + </li> + <li>[C-0-2] 当在 Android 框架以下实现的安全功能检测到并æˆåŠŸé˜»æ¢å®‰å…¨è¿è§„行为时,ä¸å¾—显示å¯è§ç•Œé¢ï¼›ä½†å½“å‘生未被阻æ¢çš„安全è¿è§„行为且该行为导致æ¼æ´žè¢«æˆåŠŸåˆ©ç”¨æ—¶ï¼Œåˆ™å¯ä»¥æ˜¾ç¤ºå¯è§ç•Œé¢ã€‚ + </li> + <li>[C-0-3] 必须确ä¿ç”¨æˆ·æˆ–应用开å‘è€…æ— æ³•å¯¹ SELinux 或任何其他在 Android 框架以下实现的安全功能进行é…置。 + </li> + <li>[C-0-4] ä¸å¾—å…许å¯é€šè¿‡ API(例如 Device Administration API)影å“其他应用的应用é…ç½®ä¼šç ´å兼容性的政ç–。 + </li> + <li>[C-0-5] 必须将媒体框架拆分为多个进程,以便能够更精细地为æ¯ä¸ªè¿›ç¨‹æŽˆäºˆè®¿é—®æƒé™ï¼ˆå¦‚ Android å¼€æºé¡¹ç›®ç½‘站上<a href="https://source.android.com/devices/media/framework-hardening.html#arch_changes">所述</a>)。 + </li> + <li>[C-0-6] 必须实现一ç§å…许使用多线程程åºä¸çš„å¯é…置政ç–å¯¹ç³»ç»Ÿè°ƒç”¨è¿›è¡Œè¿‡æ»¤çš„å†…æ ¸åº”ç”¨æ²™ç›’æœºåˆ¶ã€‚ä¸Šæ¸¸ Android å¼€æºé¡¹ç›®é€šè¿‡å¯ç”¨é‡‡ç”¨ threadgroup åŒæ¥ (TSYNC) çš„ seccomp-BPF(如 <a href="http://source.android.com/devices/tech/config/kernel.html#Seccomp-BPF-TSYNC">source.android.com ä¸Šçš„â€œå†…æ ¸é…ç½®â€éƒ¨åˆ†</a>所述)æ¥æ»¡è¶³è¯¥è¦æ±‚。 + </li> + </ul> + <p> +å†…æ ¸å®Œæ•´æ€§å’Œè‡ªä¿æŠ¤åŠŸèƒ½å¯¹äºŽç¡®ä¿ Android 安全性至关é‡è¦ã€‚å› æ¤ï¼Œè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[C-0-7] å¿…é¡»å®žçŽ°å†…æ ¸å †æ ˆç¼“å†²åŒºæº¢å‡ºä¿æŠ¤æœºåˆ¶ï¼ˆä¾‹å¦‚ <code>CONFIG_CC_STACKPROTECTOR_STRONG</code>)。 + </li> + <li>[C-0-8] 当å¯æ‰§è¡Œä»£ç 为åªè¯»ã€åªè¯»æ•°æ®ä¸å¯æ‰§è¡Œä¸”ä¸å¯å†™å…¥ï¼Œä»¥åŠå¯å†™å…¥æ•°æ®ä¸å¯æ‰§è¡Œæ—¶ï¼Œå¿…é¡»å®žçŽ°ä¸¥æ ¼çš„å†…æ ¸å†…å˜ä¿æŠ¤æœºåˆ¶ï¼ˆä¾‹å¦‚ <code>CONFIG_DEBUG_RODATA</code> 或 <code>CONFIG_STRICT_KERNEL_RWX</code>)。 + </li> + <li>[C-0-9] 必须在æè½½ API 28 çº§æˆ–æ›´é«˜çº§åˆ«çš„è®¾å¤‡ä¸Šå®žçŽ°å¯¹ç”¨æˆ·ç©ºé—´å’Œå†…æ ¸ç©ºé—´ä¹‹é—´çš„å‰¯æœ¬è¿›è¡Œé™æ€å’ŒåŠ¨æ€å¯¹è±¡å°ºå¯¸è¾¹ç•Œæ£€æŸ¥ï¼ˆä¾‹å¦‚ <code>CONFIG_HARDENED_USERCOPY</code>)。 + </li> + <li>[C-0-10] ä¸å¾—在最åˆæè½½ API 28 çº§æˆ–æ›´é«˜çº§åˆ«çš„è®¾å¤‡ä¸Šæ‰§è¡Œåœ¨å†…æ ¸æ¨¡å¼ä¸‹è¿è¡Œçš„用户空间内å˜ï¼ˆä¾‹å¦‚硬件 PXN,或通过 <code>CONFIG_CPU_SW_DOMAIN_PAN</code> 或 <code>CONFIG_ARM64_SW_TTBR0_PAN</code> 模拟)。 + </li> + <li>[C-0-11] ä¸å¾—在最åˆæè½½ API 28 级或更高级别的设备上在æ£å¸¸ç”¨æˆ·å‰¯æœ¬è®¿é—® API ä¹‹å¤–å¯¹å†…æ ¸ä¸çš„用户空间内å˜æ‰§è¡Œè¯»å–或写入æ“作(例如硬件 PAN,或通过 <code>CONFIG_CPU_SW_DOMAIN_PAN</code> 或 <code>CONFIG_ARM64_SW_TTBR0_PAN</code> 模拟)。 + </li> + <li>[C-0-12] 必须在最åˆæè½½ API 28 çº§æˆ–æ›´é«˜çº§åˆ«çš„æ‰€æœ‰è®¾å¤‡ä¸Šå®žçŽ°å†…æ ¸é¡µè¡¨éš”ç¦»ï¼ˆä¾‹å¦‚ <code>CONFIG_PAGE_TABLE_ISOLATION</code> 或 `CONFIG_UNMAP_KERNEL_AT_EL0)。 + </li> + <li>[SR] 强烈建议使仅在åˆå§‹åŒ–æœŸé—´ä¼šè¢«å†™å…¥çš„å†…æ ¸æ•°æ®åœ¨åˆå§‹åŒ–之åŽè¢«æ ‡è®°ä¸ºåªè¯»ï¼ˆä¾‹å¦‚ <code>__ro_after_init</code>)。 + </li> + <li>[SR] å¼ºçƒˆå»ºè®®å¯¹å†…æ ¸ä»£ç 和内å˜çš„布局进行éšæœºåŒ–处ç†ï¼Œå¹¶é¿å…会影å“æ¤é¡¹éšæœºåŒ–处ç†çš„æ›å…‰ï¼ˆä¾‹å¦‚通过 <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/chosen.txt"><code>/chosen/kaslr-seed Device Tree node</code></a> 或 <a href="https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/efi-rng-protocol"><code>EFI_RNG_PROTOCOL</code></a> å¹¶é‡‡ç”¨å¼•å¯¼åŠ è½½ç¨‹åºç†µæ‰§è¡Œ <code>CONFIG_RANDOMIZE_BASE</code>)。 + </li> + </ul> + <p> +如果设备实现使用 Linux å†…æ ¸ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须实现 SELinux。 + </li> + <li>[C-1-2] 必须将 SELinux 设置为全局强制模å¼ã€‚ + </li> + <li>[C-1-3] 必须将所有域é…置为强制模å¼ã€‚ä¸å…许使用宽容模å¼åŸŸï¼ŒåŒ…括特定于设备/供应商的域。 + </li> + <li>[C-1-4] 对于 AOSP SELinux 域以åŠç‰¹å®šäºŽè®¾å¤‡/供应商的域,ä¸å¾—修改ã€çœç•¥æˆ–替æ¢ä¸Šæ¸¸ Android å¼€æºé¡¹ç›® (AOSP) ä¸æ供的 system/sepolicy 文件夹ä¸å˜åœ¨çš„ neverallow 规则,并且政ç–必须在所有 neverallow 规则都å˜åœ¨çš„情况下编译。 + </li> + <li>[C-1-5] 必须在æ¯ä¸ªåº”用的 SELinux 沙盒ä¸è¿è¡Œé¢å‘ API 28 级或更高级别的第三方应用,并对æ¯ä¸ªåº”用的ç§æœ‰æ•°æ®ç›®å½•è®¾å®šåº”用级 SELinux é™åˆ¶ã€‚ + </li> + <li>应ä¿ç•™ä¸Šæ¸¸ Android å¼€æºé¡¹ç›®çš„ system/sepolicy 文件夹ä¸æ供的默认 SELinux 政ç–,并且应仅针对自己的设备特定é…ç½®å‘该政ç–进一æ¥æ·»åŠ 内容。 + </li> + </ul> + <p> +如果设备实现使用 Linux ä»¥å¤–çš„å†…æ ¸ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须使用与 SELinux 相当的强制访问控制系统。 + </li> + </ul> + <p> +Android 包å«å¤šé¡¹å¯¹è®¾å¤‡å®‰å…¨æ€§è‡³å…³é‡è¦çš„深度防御功能。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-SR] 强烈建议ä¸è¦åœ¨å·²å¯ç”¨æŽ§åˆ¶æµå®Œæ•´æ€§ (CFI) 或整数溢出排错功能 (IntSan) 的组件上åœç”¨è¿™äº›åŠŸèƒ½ã€‚ + </li> + <li>[C-SR] 强烈建议为任何其他对安全性è¦æ±‚较高的用户空间组件åŒæ—¶å¯ç”¨ CFI å’Œ IntSan(如 <a href="https://source.android.com/devices/tech/debug/cfi">CFI</a> å’Œ <a href="https://source.android.com/devices/tech/debug/intsan">IntSan</a> ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + </ul> + <h3 id="9_8_privacy"> +9.8. éšç§æƒ + </h3> + <h4 id="9_8_1_usage_history"> +9.8.1. 使用情况历å²è®°å½• + </h4> + <p> +Android 会å˜å‚¨ç”¨æˆ·æ‰€åšé€‰æ‹©çš„历å²è®°å½•ï¼Œå¹¶ä¼šé€šè¿‡ <a href="https://developer.android.com/reference/android/app/usage/UsageStatsManager.html">UsageStatsManager</a> 管ç†æ¤ç±»è®°å½•ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»ä¿è¯æ¤ç±»ç”¨æˆ·åŽ†å²è®°å½•å…·æœ‰åˆç†çš„ä¿ç•™æœŸé™ã€‚ + </li> + <li>[SR] 强烈建议在 AOSP 实现ä¸ä¿ç•™é»˜è®¤é…置的 14 天ä¿ç•™æœŸé™ã€‚ + </li> + </ul> + <p> +Android 通过 <a href="https://developer.android.com/reference/android/util/StatsLog.html"><code>StatsLog</code></a> æ ‡è¯†ç¬¦å˜å‚¨ç³»ç»Ÿäº‹ä»¶ï¼Œå¹¶é€šè¿‡ <code>StatsManager</code> å’Œ <code>IncidentManager</code> 系统 API 管ç†æ¤ç±»åŽ†å²è®°å½•ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-2] å¿…é¡»åªåŒ…å«ç³»ç»Ÿ API ç±» <code>IncidentManager</code> 创建的事件报告ä¸æ ‡æœ‰ <code>DEST_AUTOMATIC</code> çš„å—段。 + </li> + <li>[C-0-3] ä¸å¾—ä½¿ç”¨ç³»ç»Ÿäº‹ä»¶æ ‡è¯†ç¬¦è®°å½• <a href="https://developer.android.com/reference/android/util/StatsLog.html"><code>StatsLog</code></a> SDK 文档ä¸æ‰€è¿°äº‹ä»¶å¤–的任何其他事件。如果记录了其他系统事件,则å¯ä»¥ä½¿ç”¨ 100000 到 200000 之间的其他原åæ ‡è¯†ç¬¦ã€‚ + </li> + </ul> + <h4 id="9_8_2_recording"> +9.8.2. 录制 + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] ä¸å¾—预安装或分å‘开箱å³ç”¨çš„软件组件,以å…这些组件未ç»ç”¨æˆ·çš„åŒæ„或未å‘出æŒç»æ˜¾ç¤ºçš„明确通知便从设备上å‘出用户的ç§å¯†ä¿¡æ¯ï¼ˆä¾‹å¦‚按键ã€å±å¹•ä¸Šæ˜¾ç¤ºçš„文本)。 + </li> + </ul> + <p> +如果设备实现在系统ä¸åŒ…å«ç”¨äºŽæ•èŽ·å±å¹•ä¸Šæ˜¾ç¤ºçš„内容和/或录制设备上æ’放的音频æµçš„功能,则: + </p> + <ul> + <li>[C-1-1] æ¯å½“该功能处于å¯ç”¨çŠ¶æ€å¹¶ä¸»åŠ¨æ•èŽ·å†…容/录音时,必须æŒç»å‘用户显示通知。 + </li> + </ul> + <p> +如果设备实现包å«ä¸€ä¸ªèƒ½å¤Ÿå½•åˆ¶çŽ¯å¢ƒéŸ³é¢‘(以便推æ–关于用户所在环境的实用信æ¯ï¼‰ä¸”开箱å³å¯ç”¨çš„组件,则: + </p> + <ul> + <li>[C-2-1] 除éžç”¨æˆ·æ˜Žç¡®åŒæ„,å¦åˆ™ä¸å¾—å°†å½•åˆ¶çš„åŽŸå§‹éŸ³é¢‘æˆ–ä»¥ä¸‹ä»»ä½•æ ¼å¼çš„音频å˜å‚¨åœ¨è®¾å¤‡ä¸Šçš„永久性å˜å‚¨ç©ºé—´å†…,也ä¸å¾—将其å‘é€åˆ°è®¾å¤‡ä»¥å¤–çš„ä½ç½®ï¼šå¯ä»¥è½¬æ¢å›žåŽŸå§‹éŸ³é¢‘或转æ¢ä¸ºä¸ŽåŽŸå§‹éŸ³é¢‘è¿‘ä¼¼çš„å‰¯æœ¬çš„æ ¼å¼ã€‚ + </li> + </ul> + <h4 id="9_8_3_connectivity"> +9.8.3. 连接 + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°å…·æœ‰æ”¯æŒ USB 外围设备模å¼çš„ USB 端å£ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 在å…许通过 USB 端å£è®¿é—®å…±äº«å˜å‚¨ç©ºé—´çš„内容之å‰ï¼Œå¿…须先显示一个å¾æ±‚用户åŒæ„çš„ç•Œé¢ã€‚ + </li> + </ul> + <h4 id="9_8_4_network_traffic"> +9.8.4. 网络æµé‡ + </h4> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] 必须为系统信任的è¯ä¹¦æŽˆæƒæœºæž„ (CA) å˜å‚¨åŒºé¢„å®‰è£…æ ¹è¯ä¹¦ï¼ˆä¸Žä¸Šæ¸¸ Android å¼€æºé¡¹ç›®ä¸<a href="https://source.android.com/security/overview/app-security.html#certificate-authorities">æä¾›</a>çš„æ ¹è¯ä¹¦ç›¸åŒï¼‰ã€‚ + </li> + <li>[C-0-2] å¿…é¡»æè½½ç©ºçš„ç”¨æˆ·æ ¹ CA å˜å‚¨åŒºã€‚ + </li> + <li>[C-0-3] å½“æ·»åŠ äº†ç”¨æˆ·æ ¹ CA 时,必须å‘用户显示è¦å‘Šï¼Œä»¥æŒ‡æ˜Žç½‘络æµé‡å¯èƒ½ä¼šå—到监控。 + </li> + </ul> + <p> +如果设备æµé‡é€šè¿‡ VPN 路由,则设备实现: + </p> + <ul> + <li>[C-1-1] å¿…é¡»å‘用户显示è¦å‘Šï¼Œä»¥æŒ‡æ˜Žä»¥ä¸‹ä¸¤è€…之一: + <ul> + <li>该网络æµé‡å¯èƒ½ä¼šå—到监控。 + </li> + <li>该网络æµé‡é€šè¿‡æä¾› VPN 的特定 VPN 应用路由。 + </li> + </ul> + </li> + </ul> + <p> +如果设备实现具有一ç§é€šè¿‡ä»£ç†æœåŠ¡å™¨æˆ– VPN 网关路由网络数æ®æµé‡ä¸”开箱å³é»˜è®¤å¯ç”¨çš„æœºåˆ¶ï¼ˆä¾‹å¦‚é¢„åŠ è½½å·²è¢«æŽˆäºˆ <code>android.permission.CONTROL_VPN</code> æƒé™çš„ VPN æœåŠ¡ï¼‰ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-2-1] 必须在å¯ç”¨è¯¥æœºåˆ¶ä¹‹å‰å¾æ±‚用户åŒæ„,除éžç›¸åº” VPN 由设备政ç–控制器通过 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setAlwaysOnVpnPackage%28android.content.ComponentName,%20java.lang.String,%20boolean%29"><code>DevicePolicyManager.setAlwaysOnVpnPackage()</code></a> å¯ç”¨ï¼Œåœ¨è¿™ç§æƒ…况下,用户ä¸éœ€è¦å•ç‹¬è¡¨ç¤ºåŒæ„,åªéœ€æ”¶åˆ°é€šçŸ¥å³å¯ã€‚ + </li> + </ul> + <p> +如果设备实现具有一ç§æ–¹å¼ï¼Œå¯è®©ç”¨æˆ·å¼€å¯ç¬¬ä¸‰æ–¹ VPN åº”ç”¨çš„â€œå§‹ç»ˆå¼€å¯ VPNâ€åŠŸèƒ½ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] 对于ä¸æ”¯æŒâ€œå§‹ç»ˆå¼€å¯ VPNâ€æœåŠ¡ï¼ˆåœ¨ <code>AndroidManifest.xml</code> 文件ä¸å°† <a href="https://developer.android.com/reference/android/net/VpnService.html#SERVICE_META_DATA_SUPPORTS_ALWAYS_ON"><code>SERVICE_META_DATA_SUPPORTS_ALWAYS_ON</code></a> 属性设置为 <code>false</code>)的应用,必须åœç”¨æ¤æ–¹å¼ã€‚ + </li> + </ul> + <h3 id="9_9_data_storage_encryption"> +9.9. æ•°æ®å˜å‚¨åŠ 密 + </h3> + <p> +如果使用设备上å¯ç”¨çš„æœ€é«˜æ€§èƒ½é«˜çº§åŠ å¯†æ ‡å‡† (AES) 技术(例如 ARM åŠ å¯†æ‰©å±•ï¼‰è¡¡é‡çš„ AES åŠ å¯†æ€§èƒ½è¶…è¿‡ 50 MiB/s,则设备实现: + </p> + <ul> + <li>[C-1-1] 必须支æŒå¯¹åº”用éšç§æ•°æ®ï¼ˆ<code>/data</code> 分区)以åŠåº”用共享å˜å‚¨åˆ†åŒºï¼ˆ<code>/sdcard</code> 分区,如果它是设备上ä¸å¯ç§»åŠ¨çš„永久部分)进行数æ®å˜å‚¨åŠ 密,但通常需è¦å…±äº«çš„设备实现(例如电视)除外。 + </li> + <li>[C-1-2] 必须在用户完æˆå¼€ç®±è®¾ç½®æ—¶é»˜è®¤å¯ç”¨æ•°æ®å˜å‚¨åŠ 密,但通常需è¦å…±äº«çš„设备实现(例如电视)除外。 + </li> + </ul> + <p> +如果设备实现已使用早期 Android 版本å¯åŠ¨ï¼Œä¸”æ— æ³•é€šè¿‡ç³»ç»Ÿè½¯ä»¶æ›´æ–°æ¥æ»¡è¶³è¯¥è¦æ±‚,则å¯ä»¥ä¸éµå®ˆä¸Šè¿°è¦æ±‚。 + </p> + <p> +设备实现: + </p> + <ul> + <li>应通过实现<a href="https://source.android.com/security/encryption/file-based.html">æ–‡ä»¶çº§åŠ å¯†</a> (FBE) æ¥æ»¡è¶³ä¸Šè¿°æ•°æ®å˜å‚¨åŠ 密è¦æ±‚。 + </li> + </ul> + <h4 id="9_9_1_direct_boot"> +9.9.1. 直接å¯åŠ¨ + </h4> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须实现<a href="http://developer.android.com/preview/features/direct-boot.html">直接å¯åŠ¨æ¨¡å¼</a> API,å³ä½¿å®ƒä»¬ä¸æ”¯æŒå˜å‚¨åŠ 密也是如æ¤ã€‚ + </p> + </li> + <li> + <p> +[C-0-2] å¿…é¡»ä»å¹¿æ’ <a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_LOCKED_BOOT_COMPLETED"><code>ACTION_LOCKED_BOOT_COMPLETED</code></a> å’Œ <a href="https://developer.android.com/reference/android/content/Intent.html#ACTION_USER_UNLOCKED"><code>ACTION_USER_UNLOCKED</code></a> Intent,以便让直接å¯åŠ¨æ„ŸçŸ¥åž‹åº”用知é“è®¾å¤‡åŠ å¯† (DE) å’Œå‡æ®åŠ 密 (CE) å˜å‚¨ä½ç½®å¯ä¾›ç”¨æˆ·ä½¿ç”¨ã€‚ + </p> + </li> + </ul> + <h4 id="9_9_2_file_based_encryption"> +9.9.2. æ–‡ä»¶çº§åŠ å¯† + </h4> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ FBE,则: + </p> + <ul> + <li>[C-1-1] å¯åŠ¨æ—¶ä¸å¾—è¦æ±‚用户æä¾›å‡æ®ï¼Œå¹¶ä¸”åœ¨å¹¿æ’ <code>ACTION_LOCKED_BOOT_COMPLETED</code> 消æ¯åŽå…许直接å¯åŠ¨æ„ŸçŸ¥åž‹åº”ç”¨è®¿é—®è®¾å¤‡åŠ å¯† (DE) å˜å‚¨ç©ºé—´ã€‚ + </li> + <li>[C-1-2] åªæœ‰åœ¨ç”¨æˆ·å·²é€šè¿‡æä¾›å‡æ®ï¼ˆä¾‹å¦‚密ç ã€PIN ç ã€å›¾æ¡ˆæˆ–指纹)解é”è®¾å¤‡å¹¶ä¸”ç³»ç»Ÿå·²å¹¿æ’ <code>ACTION_USER_UNLOCKED</code> 消æ¯åŽï¼Œæ‰èƒ½å…许访问å‡æ®åŠ 密 (CE) å˜å‚¨ç©ºé—´ã€‚ + </li> + <li>[C-1-3] 如果用户未æä¾›å‡æ®æˆ–已注册的托管密钥,则ä¸å¾—æ供解é”å— CE ä¿æŠ¤çš„å˜å‚¨ç©ºé—´çš„任何方法。 + </li> + <li>[C-1-4] 必须支æŒéªŒè¯å¯åŠ¨ï¼Œå¹¶ç¡®ä¿ DE å¯†é’¥ä»¥åŠ å¯†å½¢å¼ç»‘å®šåˆ°è®¾å¤‡çš„ç¡¬ä»¶ä¿¡ä»»æ ¹ã€‚ + </li> + <li>[C-1-5] 必须支æŒä½¿ç”¨ AES-256-XTS å¯¹æ–‡ä»¶å†…å®¹è¿›è¡ŒåŠ å¯†ã€‚AES-256-XTS 是一ç§é«˜çº§åŠ å¯†æ ‡å‡†ï¼Œå¯†é’¥é•¿åº¦ä¸º 256 ä½ï¼Œä¸”采用 XTS 模å¼ã€‚XTS 密钥的全长为 512 ä½ã€‚ + </li> + <li> + <p> +[C-1-6] 必须支æŒåœ¨ CBC-CTS 模å¼ä¸‹ä½¿ç”¨ AES-256 åŠ å¯†æ–‡ä»¶å。 + </p> + </li> + <li> + <p> +用于ä¿æŠ¤ CE å’Œ DE å˜å‚¨åŒºåŸŸçš„密钥: + </p> + </li> + <li> + <p> +[C-1-7] å¿…é¡»ä»¥åŠ å¯†å½¢å¼ç»‘定到有硬件支æŒçš„密钥å˜å‚¨åŒºã€‚ + </p> + </li> + <li>[C-1-8] CE 密钥必须绑定到用户的é”定å±å¹•å‡æ®ã€‚ + </li> + <li>[C-1-9] 如果用户未指定é”定å±å¹•å‡æ®ï¼Œåˆ™ CE 密钥必须绑定到默认密ç 。 + </li> + <li> + <p> +[C-1-10] å¿…é¡»æ˜¯ç‹¬ä¸€æ— äºŒçš„ï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œä»»ä½•ç”¨æˆ·çš„ CE 或 DE 密钥都ä¸èƒ½ä¸Žå…¶ä»–用户的 CE 或 DE 密钥一致。 + </p> + </li> + <li> + <p> +[C-1-11] 默认情况下必须使用强制支æŒçš„åŠ å¯†æ–¹å¼ã€å¯†é’¥é•¿åº¦å’Œæ¨¡å¼ã€‚ + </p> + </li> + <li> + <p> +[C-SR] 强烈建议对文件系统元数æ®ï¼ˆä¾‹å¦‚文件大å°ã€æ‰€æœ‰æƒã€æ¨¡å¼å’Œæ‰©å±•å±žæ€§ (xattrs)ï¼‰è¿›è¡ŒåŠ å¯†ï¼Œå¹¶ä¸”å¯†é’¥ä»¥åŠ å¯†å½¢å¼ç»‘å®šåˆ°è®¾å¤‡çš„ç¡¬ä»¶ä¿¡ä»»æ ¹ã€‚ + </p> + </li> + <li> + <p> +åº”å°†é¢„åŠ è½½çš„å¿…è¦åº”用(例如闹钟ã€ç”µè¯å’Œ Messenger)设为直接å¯åŠ¨æ„ŸçŸ¥åž‹åº”用。 + </p> + </li> + <li>å¯ä»¥æ”¯æŒä½¿ç”¨æ›¿ä»£åŠ 密方å¼ã€å¯†é’¥é•¿åº¦å’Œæ¨¡å¼å¯¹æ–‡ä»¶å†…容和文件åè¿›è¡ŒåŠ å¯†ã€‚ + </li> + </ul> + <p> +上游 Android å¼€æºé¡¹ç›®æ供了该功能的首选实现(基于 Linux å†…æ ¸ EXT4 åŠ å¯†åŠŸèƒ½ï¼‰ã€‚ + </p> + <h4 id="9_9_3_full_disk_encryption"> +9.9.3. å…¨ç›˜åŠ å¯† + </h4> + <p> +如果设备实现支æŒ<a href="http://source.android.com/devices/tech/security/encryption/index.html">å…¨ç›˜åŠ å¯†</a> (FDE),则: + </p> + <ul> + <li>[C-1-1] 必须在专用于å˜å‚¨çš„模å¼ä¸‹ï¼ˆä¾‹å¦‚ XTS 或 CBC-ESSIV)使用 AES,åŒæ—¶åŠ 密密钥长度ä¸å°‘于 128 ä½ã€‚ + </li> + <li>[C-1-2] 必须使用默认密ç å°è£…åŠ å¯†å¯†é’¥ï¼›åœ¨ä»»ä½•æƒ…å†µä¸‹ï¼Œéƒ½ä¸å¾—将未ç»åŠ å¯†çš„åŠ å¯†å¯†é’¥å†™å…¥åˆ°å˜å‚¨ç©ºé—´ã€‚ + </li> + <li>[C-1-3] 除éžç”¨æˆ·æ˜Žç¡®é€‰æ‹©åœç”¨ï¼Œå¦åˆ™å¿…须通过已采用慢扩展算法(例如 PBKDF2 或 scrypt)进行扩展的é”定å±å¹•å‡æ®å¯¹åŠ 密密钥进行 AES åŠ å¯†ï¼ˆé™¤éžåŠ 密密钥æ£åœ¨ä½¿ç”¨ä¸ï¼‰ã€‚ + </li> + <li>[C-1-4] 如果用户未指定é”定å±å¹•å‡æ®ï¼Œæˆ–å·²åœç”¨ä½¿ç”¨å¯†ç è¿›è¡ŒåŠ å¯†ï¼Œå¹¶ä¸”è®¾å¤‡æ供了有硬件支æŒçš„密钥å˜å‚¨åŒºï¼Œåˆ™ä¸Šè¿°é»˜è®¤å¯†ç æ‰©å±•ç®—æ³•å¿…é¡»ä»¥åŠ å¯†å½¢å¼ç»‘定到该密钥å˜å‚¨åŒºã€‚ + </li> + <li>[C-1-5] ä¸å¾—å°†åŠ å¯†å¯†é’¥å‘é€åˆ°è®¾å¤‡ä»¥å¤–çš„ä½ç½®ï¼Œå³ä½¿å·²ä½¿ç”¨ç”¨æˆ·å¯†ç å’Œ/或硬件绑定密钥进行å°è£…也是如æ¤ã€‚ + </li> + </ul> + <p> +上游 Android å¼€æºé¡¹ç›®æ供了该功能的首选实现(基于 Linux å†…æ ¸åŠŸèƒ½ dm-crypt)。 + </p> + <h3 id="9_10_device_integrity"> +9.10. 设备完整性 + </h3> + <p> +以下è¦æ±‚旨在确ä¿è®¾å¤‡å®Œæ•´æ€§çŠ¶æ€çš„é€æ˜Žæ€§ã€‚设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须通过系统 API 方法 <code>PersistentDataBlockManager.getFlashLockState()</code> æ£ç¡®æŠ¥å‘Šå…¶å¼•å¯¼åŠ 载程åºæ‰€å¤„的状æ€æ˜¯å¦å…è®¸åˆ·å†™ç³»ç»Ÿæ˜ åƒã€‚<code>FLASH_LOCK_UNKNOWN</code> 状æ€ä¸“用于从ä¸å˜åœ¨è¿™ç§æ–°ç³»ç»Ÿ API 方法的较低 Android 版本进行å‡çº§çš„设备实现。 + </p> + </li> + <li> + <p> +[C-0-2] 必须支æŒéªŒè¯å¯åŠ¨ä»¥ç¡®ä¿è®¾å¤‡å®Œæ•´æ€§ã€‚ + </p> + </li> + </ul> + <p> +如果设备实现已在ä¸æ”¯æŒéªŒè¯å¯åŠ¨çš„情况下使用早期 Android 版本å¯åŠ¨ï¼Œä¸”æ— æ³•é€šè¿‡ç³»ç»Ÿè½¯ä»¶æ›´æ–°æ¥æ·»åŠ 对该功能的支æŒï¼Œåˆ™å¯ä»¥ä¸éµå®ˆè¯¥è¦æ±‚。 + </p> + <p> +验è¯å¯åŠ¨æ˜¯ä¸€é¡¹æ—¨åœ¨ä¿è¯è®¾å¤‡è½¯ä»¶å®Œæ•´æ€§çš„功能。如果设备实现支æŒè¯¥åŠŸèƒ½ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须声明平å°åŠŸèƒ½æ ‡è®° <code>android.software.verified_boot</code>。 + </li> + <li>[C-1-2] 必须对æ¯ä¸ªå¯åŠ¨åºåˆ—执行验è¯ã€‚ + </li> + <li>[C-1-3] å¿…é¡»ä»Žä½œä¸ºä¿¡ä»»æ ¹çš„ä¸å¯å˜ç¡¬ä»¶å¯†é’¥å¼€å§‹éªŒè¯ï¼Œä¸€ç›´éªŒè¯åˆ°ç³»ç»Ÿåˆ†åŒºã€‚ + </li> + <li>[C-1-4] 必须实现æ¯ä¸ªéªŒè¯é˜¶æ®µï¼Œä»¥ä¾¿åœ¨æ‰§è¡Œä¸‹ä¸€é˜¶æ®µä¸çš„代ç 之å‰ï¼Œå…ˆæ£€æŸ¥ä¸‹ä¸€é˜¶æ®µä¸æ‰€æœ‰å—节的完整性和真实性。 + </li> + <li>[C-1-5] 必须使用与 NIST 针对哈希算法 (SHA-256) å’Œå…¬é’¥å¤§å° (RSA-2048) ç»™å‡ºçš„æœ€æ–°å»ºè®®ä¸€æ ·å¼ºå¤§çš„éªŒè¯ç®—法。 + </li> + <li>[C-1-6] 当系统验è¯å¤±è´¥æ—¶ï¼Œä¸å¾—å…许完æˆå¯åŠ¨ï¼Œé™¤éžç”¨æˆ·åŒæ„ä»ç„¶å°è¯•å¯åŠ¨ï¼Œåœ¨è¿™ç§æƒ…况下,ä¸å¾—使用任何未ç»éªŒè¯çš„å˜å‚¨å—ä¸çš„æ•°æ®ã€‚ + </li> + <li>[C-1-7] ä¸å¾—å…许修改设备上ç»è¿‡éªŒè¯çš„分区,除éžç”¨æˆ·å·²æ˜Žç¡®è§£é”å¼•å¯¼åŠ è½½ç¨‹åºã€‚ + </li> + <li>[C-SR] 如果设备ä¸æœ‰å¤šä¸ªç¦»æ•£èŠ¯ç‰‡ï¼ˆä¾‹å¦‚æ— çº¿è£…ç½®ã€ä¸“门的图片处ç†å™¨ï¼‰ï¼Œå¼ºçƒˆå»ºè®®å…¶ä¸æ¯ä¸ªèŠ¯ç‰‡çš„å¯åŠ¨è¿›ç¨‹åœ¨å¯åŠ¨æ—¶éªŒè¯æ¯ä¸ªé˜¶æ®µã€‚ + </li> + <li>[C-1-8] 必须使用防篡改的å˜å‚¨ç©ºé—´ï¼šç”¨äºŽåœ¨å¼•å¯¼åŠ 载程åºå¤„于解é”状æ€æ—¶å˜å‚¨ã€‚防篡改的å˜å‚¨ç©ºé—´æ„味ç€ï¼šå¦‚æžœå˜å‚¨ç©ºé—´åœ¨ Android å†…è¢«ç¯¡æ”¹ï¼Œå¼•å¯¼åŠ è½½ç¨‹åºå¯ä»¥æ£€æµ‹åˆ°ã€‚ + </li> + <li>[C-1-9] 必须在å…è®¸ä»Žå¼•å¯¼åŠ è½½ç¨‹åºé”定模å¼è½¬æ¢ä¸ºå¼•å¯¼åŠ 载程åºè§£é”模å¼ä¹‹å‰æ示用户(如果他们在使用设备),并è¦æ±‚用户进行物ç†ç¡®è®¤ã€‚ + </li> + <li>[C-1-10] 必须针对 Android 使用的分区(例如å¯åŠ¨ã€ç³»ç»Ÿåˆ†åŒºï¼‰å®žçŽ°å›žæ»šä¿æŠ¤ï¼Œå¹¶ä½¿ç”¨é˜²ç¯¡æ”¹å˜å‚¨ç©ºé—´å˜å‚¨ç”¨äºŽç¡®å®šå…许使用的最低æ“作系统版本的元数æ®ã€‚ + </li> + <li>[C-SR] å¼ºçƒˆå»ºè®®é€šè¿‡æ ¹ç›®å½•åœ¨ <code>/system</code> 下的信任链(å—验è¯å¯åŠ¨ä¿æŠ¤ï¼‰éªŒè¯æ‰€æœ‰ç‰¹æƒåº”用 APK 文件。 + </li> + <li>[C-SR] 强烈建议先对特æƒåº”用从其 APK æ–‡ä»¶ä¹‹å¤–åŠ è½½çš„æ‰€æœ‰å¯æ‰§è¡Œè½¯ä»¶å·¥ä»¶ï¼ˆä¾‹å¦‚动æ€åŠ 载的代ç 或编译的代ç )进行验è¯ï¼Œç„¶åŽå†æ‰§è¡Œè¿™äº›è½¯ä»¶å·¥ä»¶æˆ–æ ¹æœ¬ä¸æ‰§è¡Œï¼ˆå¼ºçƒˆå»ºè®®é‡‡å–åŽä¸€ç§åšæ³•ï¼‰ã€‚ + </li> + <li>应针对具有æŒä¹…性固件(例如调制解调器ã€æ‘„åƒå¤´ï¼‰çš„任何组件实现回滚ä¿æŠ¤ï¼Œå¹¶ä¸”应使用防篡改å˜å‚¨ç©ºé—´å˜å‚¨ç”¨äºŽç¡®å®šå…许使用的最低版本的元数æ®ã€‚ + </li> + </ul> + <p> +如果设备实现已在ä¸æ”¯æŒ C-1-8 至 C-1-10 的情况下使用早期 Android 版本å¯åŠ¨ï¼Œä¸”æ— æ³•é€šè¿‡ç³»ç»Ÿè½¯ä»¶æ›´æ–°æ»¡è¶³ä¸Šè¿°è¦æ±‚,则å¯ä»¥ä¸éµå®ˆè¿™äº›è¦æ±‚。 + </p> + <p> +上游 Android å¼€æºé¡¹ç›®åœ¨ä»£ç 库 <a href="http://android.googlesource.com/platform/external/avb/"><code>external/avb/</code></a> ä¸æ供了该功能的首选实现,该实现å¯ä»¥é›†æˆåˆ°ç”¨äºŽåŠ è½½ Android çš„å¼•å¯¼åŠ è½½ç¨‹åºä¸ã€‚ + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æŠ¥å‘ŠåŠŸèƒ½æ ‡è®° <a href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_RAM_NORMAL"><code>android.hardware.ram.normal</code></a>,则: + </p> + <ul> + <li>[C-2-1] 必须支æŒéªŒè¯å¯åŠ¨ä»¥ç¡®ä¿è®¾å¤‡å®Œæ•´æ€§ã€‚ + </li> + </ul> + <p> +如果设备实现已在ä¸æ”¯æŒéªŒè¯å¯åŠ¨çš„情况下使用早期 Android 版本å¯åŠ¨ï¼Œç”±äºŽæ¤ç±»è®¾å¤‡æ— 法通过系统软件更新æ¥æ”¯æŒè¯¥åŠŸèƒ½ï¼Œå› æ¤å¯ä»¥ä¸éµå®ˆè¯¥è¦æ±‚。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-R] å»ºè®®æ”¯æŒ <a href="https://developer.android.com/preview/features/security.html#user-confirmation">Android Protected Confirmation API</a>。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ Android Protected Confirmation API,则: + </p> + <ul> + <li>[C-3-1] 必须针对 <a href="https://developer.android.com/reference/android/security/ConfirmationPrompt.html#isSupported%28android.content.Context%29"><code>ConfirmationPrompt.isSupported()</code></a> API 报告 <code>true</code>。 + </li> + <li>[C-3-2] 必须确ä¿å®‰å…¨ç¡¬ä»¶å®Œå…¨æŽ§åˆ¶æ˜¾ç¤ºå±ï¼Œä½¿ Android æ“ä½œç³»ç»Ÿæ— æ³•åœ¨æœªç»è¿‡å®‰å…¨ç¡¬ä»¶æ£€æµ‹çš„情况下å±è”½è¯¥ç¡¬ä»¶ã€‚ + </li> + <li>[C-3-3] 必须确ä¿å®‰å…¨ç¡¬ä»¶å®Œå…¨æŽ§åˆ¶è§¦æ‘¸å±ã€‚ + </li> + </ul> + <h3 id="9_11_keys_and_credentials"> +9.11. 密钥和å‡æ® + </h3> + <p> +通过 <a href="https://developer.android.com/training/articles/keystore.html">Android Keystore 系统</a>,应用开å‘者å¯ä»¥å°†åŠ 密密钥å˜å‚¨åœ¨å®¹å™¨ä¸ï¼Œå¹¶å¯ä»¥é€šè¿‡ <a href="https://developer.android.com/reference/android/security/KeyChain.html">KeyChain API</a> 或 <a href="https://developer.android.com/reference/java/security/KeyStore.html">Keystore API</a> åœ¨åŠ å¯†æ“作ä¸ä½¿ç”¨å®ƒä»¬ã€‚设备实现: + </p> + <ul> + <li>[C-0-1] 必须至少å…è®¸å¯¼å…¥æˆ–ç”Ÿæˆ 8192 个密钥。 + </li> + <li>[C-0-2] é”定å±å¹•èº«ä»½éªŒè¯æœºåˆ¶å¿…须对å°è¯•æ¬¡æ•°åŠ 以é™åˆ¶ï¼Œå¹¶é‡‡ç”¨æŒ‡æ•°é€€é¿ç®—法。å°è¯•èº«ä»½éªŒè¯çš„失败次数超过 150 次åŽï¼Œæ¯æ¬¡å°è¯•çš„时间间隔必须至少为 24 å°æ—¶ã€‚ + </li> + <li>ä¸åº”é™åˆ¶å¯ä»¥ç”Ÿæˆçš„密钥数。 + </li> + </ul> + <p> +如果设备实现支æŒå®‰å…¨é”定å±å¹•ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-1-1] 必须通过隔离的执行环境备份密钥å˜å‚¨åŒºå®žçŽ°ã€‚ + </li> + <li>[C-1-2] 必须具有 RSAã€AESã€ECDSA å’Œ HMAC åŠ å¯†ç®—æ³•ä»¥åŠ MD5ã€SHA1 å’Œ SHA-2 ç³»åˆ—å“ˆå¸Œå‡½æ•°çš„å®žçŽ°ï¼Œä»¥ä¾¿åœ¨ä¸Žå†…æ ¸ä¸ŠåŠæ›´ä¸Šé¢è¿è¡Œçš„代ç 安全隔离的区域ä¸æ£ç¡®æ”¯æŒ Android Keystore 系统支æŒçš„算法。安全隔离必须能够阻æ¢å†…æ ¸æˆ–ç”¨æˆ·ç©ºé—´ä»£ç å¯èƒ½ä¼šå€Ÿä»¥èŽ·å–隔离环境内部状æ€çš„所有潜在机制,包括 DMA。上游 Android å¼€æºé¡¹ç›® (AOSP) 通过使用 <a href="https://source.android.com/security/trusty/">Trusty</a> 实现æ¥æ»¡è¶³è¯¥è¦æ±‚,但也å¯ä»¥ä½¿ç”¨å…¶ä»–基于 ARM TrustZone 的解决方案,或使用基于管ç†ç¨‹åºçš„适当隔离方法的安全实现(如果已ç»è¿‡ç¬¬ä¸‰æ–¹å®¡æ ¸ï¼‰ã€‚ + </li> + <li>[C-1-3] 必须在隔离的执行环境ä¸æ‰§è¡Œé”定å±å¹•èº«ä»½éªŒè¯ï¼Œå¹¶ä¸”åªæœ‰åœ¨æˆåŠŸé€šè¿‡éªŒè¯æ—¶ï¼Œæ‰å…许使用与身份验è¯ç»‘定的密钥。é”定å±å¹•å‡æ®çš„å˜å‚¨æ–¹å¼å¿…é¡»åªå…许隔离的执行环境执行é”å±èº«ä»½éªŒè¯ã€‚上游 Android å¼€æºé¡¹ç›®æ供了å¯ç”¨äºŽæ»¡è¶³è¯¥è¦æ±‚çš„ <a href="http://source.android.com/devices/tech/security/authentication/gatekeeper.html">Gatekeeper 硬件抽象层 (HAL)</a> å’Œ Trusty。 + </li> + <li>[C-1-4] 如果认è¯ç¾å密钥有安全硬件ä¿æŠ¤ï¼Œå¹¶ä¸”ç¾å是在安全硬件ä¸è¿›è¡Œï¼Œåˆ™å¿…须支æŒå¯†é’¥è®¤è¯ã€‚认è¯ç¾å密钥必须在足够多的设备之间共享,以防æ¢æ¤ç±»å¯†é’¥è¢«ç”¨ä½œè®¾å¤‡æ ‡è¯†ç¬¦ã€‚满足该è¦æ±‚的一ç§æ–¹æ³•æ˜¯å…±äº«ç›¸åŒçš„认è¯å¯†é’¥ï¼Œé™¤éžç”Ÿæˆäº†è‡³å°‘ 10 万个å•å…ƒçš„给定 SKU。如果生æˆäº†è¶…过 100 万个å•å…ƒçš„ SKU,则å¯ä»¥é’ˆå¯¹æ¯ 100 万个å•å…ƒä½¿ç”¨ä¸€ä¸ªä¸åŒçš„密钥。 + </li> + <li>[C-1-5] å¿…é¡»å…许用户为从解é”状æ€åˆ°é”定状æ€çš„è¿‡æ¸¡æ—¶é—´é€‰æ‹©ä¼‘çœ è¶…æ—¶ï¼Œå…许的最çŸè¶…时时间为 15 秒。 + </li> + </ul> + <p> +请注æ„,如果设备实现已使用较低 Android 版本å¯åŠ¨ï¼Œåˆ™æ¤ç±»è®¾å¤‡æ— 需满足具有由隔离的执行环境支æŒçš„密钥å˜å‚¨åŒºå¹¶æ”¯æŒå¯†é’¥è®¤è¯è¿™ä¸€è¦æ±‚,除éžå®ƒå£°æ˜Žäº† <code>android.hardware.fingerprint</code> 功能(该功能需è¦ç”±éš”离的执行环境支æŒçš„密钥å˜å‚¨åŒºï¼‰ã€‚ + </p> + <h4 id="9_11_1_secure_lock_screen"> +9.11.1. 安全é”定å±å¹• + </h4> + <p>AOSP 实现éµå¾ªåˆ†å±‚的身份验è¯æ¨¡å¼ï¼Œå…¶ä¸åŸºäºŽçŸ¥è¯†çš„主è¦èº«ä»½éªŒè¯å¯ç”±å®‰å…¨ç³»æ•°è¾ƒé«˜çš„辅助生物识别技术或安全系数较低的第三模æ€æ供支æŒã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-SR] 强烈建议仅将以下身份验è¯æ–¹æ³•ä¹‹ä¸€è®¾ä¸ºä¸»è¦èº«ä»½éªŒè¯æ–¹æ³•ï¼š + <ul> + <li>æ•°å— PIN ç + </li> + <li>å—æ¯æ•°å—密ç + </li> + <li>3x3 ç‚¹ç½‘æ ¼ä¸Šçš„æ»‘åŠ¨å›¾æ¡ˆ + </li> + </ul> + </li> + </ul> + <p> +请注æ„,上述身份验è¯æ–¹æ³•åœ¨æœ¬æ–‡æ¡£ä¸ç§°ä¸ºå»ºè®®çš„主è¦èº«ä»½éªŒè¯æ–¹æ³•ã€‚ + </p> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°ä¼šæ·»åŠ æˆ–ä¿®æ”¹å»ºè®®çš„ä¸»è¦èº«ä»½éªŒè¯æ–¹æ³•ï¼Œå¹¶å°†æ–°çš„身份验è¯æ–¹æ³•ç”¨ä½œå®‰å…¨çš„å±å¹•é”定方å¼ï¼Œåˆ™æ–°çš„身份验è¯æ–¹æ³•ï¼š + </p> + <ul> + <li>[C-2-1] 必须是<a href="https://developer.android.com/training/articles/keystore.html#UserAuthentication">è¦æ±‚进行用户身份验è¯æ‰èƒ½ä½¿ç”¨å¯†é’¥</a>ä¸æ‰€è¿°çš„用户身份验è¯æ–¹æ³•ã€‚ + </li> + <li>[C-2-2] 必须解é”所有密钥,以便在用户解é”安全é”定å±å¹•æ—¶ä¾›ç¬¬ä¸‰æ–¹å¼€å‘者应用使用。例如,必须通过相关 API(例如 <a href="https://developer.android.com/reference/android/app/KeyguardManager.html#createConfirmDeviceCredentialIntent%28java.lang.CharSequence,%20java.lang.CharSequence%29"><code>createConfirmDeviceCredentialIntent</code></a> å’Œ <a href="https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder.html#setUserAuthenticationRequired%28boolean%29"><code>setUserAuthenticationRequired</code></a>)使所有密钥都å¯ä¾›ç¬¬ä¸‰æ–¹å¼€å‘者应用使用。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°ä¼šæ·»åŠ æˆ–ä¿®æ”¹ç”¨äºŽè§£é”é”定å±å¹•ä¸”基于已知密钥的身份验è¯æ–¹æ³•ï¼Œå¹¶å°†æ–°çš„身份验è¯æ–¹æ³•è§†ä¸ºå®‰å…¨çš„å±å¹•é”定方å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-3-1] å…许的最çŸè¾“入内容长度的熵必须大于 10 ä½ã€‚ + </li> + <li>[C-3-2] 所有å¯èƒ½çš„输入内容的最大熵必须大于 18 ä½ã€‚ + </li> + <li>[C-3-3] 新的身份验è¯æ–¹æ³•ä¸å¾—æ›¿æ¢ AOSP ä¸å®žçŽ°å’Œæ供的任何建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ï¼ˆå³ PIN ç ã€å›¾æ¡ˆæˆ–密ç )。 + </li> + <li>[C-3-4] 当设备政ç–控制器 (DPC) 应用已通过 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setPasswordQuality%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setPasswordQuality()</code></a> 方法(具有比 <code>PASSWORD_QUALITY_SOMETHING</code> é™åˆ¶æ€§æ›´å¼ºçš„è´¨é‡å¸¸é‡ï¼‰è®¾ç½®å¯†ç è´¨é‡æ”¿ç–时,新的身份验è¯æ–¹æ³•å¿…须处于åœç”¨çŠ¶æ€ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°ä¼šæ·»åŠ æˆ–ä¿®æ”¹å»ºè®®çš„ä¸»è¦èº«ä»½éªŒè¯æ–¹æ³•ä»¥è§£é”é”定å±å¹•ï¼Œå¹¶å°†åŸºäºŽç”Ÿç‰©è¯†åˆ«çš„新身份验è¯æ–¹æ³•è§†ä¸ºå®‰å…¨çš„å±å¹•é”定方å¼ï¼Œåˆ™æ–°çš„身份验è¯æ–¹æ³•ï¼š + </p> + <ul> + <li>[C-4-1] 必须满足<a href="#7_3_10_2_other_biometric_sensors">第 7.3.10.2 节</a>ä¸æ‰€è¿°çš„所有è¦æ±‚。 + </li> + <li>[C-4-2] 必须具有回退机制,以使用建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€ï¼ˆåŸºäºŽå·²çŸ¥å¯†é’¥ï¼‰ã€‚ + </li> + <li>[C-4-3] 当设备政ç–控制器 (DPC) åº”ç”¨å·²é€šè¿‡è°ƒç”¨å…·æœ‰ç›¸å…³çš„ä»»ä½•ç”Ÿç‰©è¯†åˆ«æ ‡è®°ï¼ˆå³ <code>KEYGUARD_DISABLE_BIOMETRICS</code>ã€<code>KEYGUARD_DISABLE_FINGERPRINT</code>ã€<code>KEYGUARD_DISABLE_FACE</code> 或 <code>KEYGUARD_DISABLE_IRIS</code>)的 <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setKeyguardDisabledFeatures%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setKeyguardDisabledFeatures()</code></a> 方法设置é”å±åŠŸèƒ½æ”¿ç–时,它们必须处于åœç”¨çŠ¶æ€ï¼Œå¹¶ä¸”ä»…å…许使用建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•è§£é”å±å¹•ã€‚ + </li> + <li>[C-4-4] 必须至少æ¯éš” 72 å°æ—¶å¯¹ç”¨æˆ·è¿›è¡Œä¸€æ¬¡å»ºè®®çš„主è¦èº«ä»½éªŒè¯ï¼ˆä¾‹å¦‚ PIN ç ã€å›¾æ¡ˆã€å¯†ç )。 + </li> + <li>[C-4-5] å¿…é¡»å…·æœ‰ä¸ŽæŒ‡çº¹ä¼ æ„Ÿå™¨æ‰€éœ€çš„é”™è¯¯æŽ¥å—率相ç‰æˆ–比åŽè€…æ›´ä¸¥æ ¼çš„é”™è¯¯æŽ¥å—率(如<a href="#7_3_10_biometric_sensors">第 7.3.10 节</a>ä¸æ‰€è¿°ï¼‰ï¼›å¦åˆ™å½“设备政ç–控制器 (DPC) 应用已通过 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setPasswordQuality%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setPasswordQuality()</code></a> 方法(具有比 <code>PASSWORD_QUALITY_BIOMETRIC_WEAK</code> é™åˆ¶æ€§æ›´å¼ºçš„è´¨é‡å¸¸é‡ï¼‰è®¾ç½®å¯†ç è´¨é‡æ”¿ç–时,它们必须处于åœç”¨çŠ¶æ€ï¼Œå¹¶ä¸”ä»…å…许使用建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•è§£é”å±å¹•ã€‚ + </li> + <li>[C-SR] 强烈建议将欺骗和冒å攻击的接å—çŽ‡è®¾ä¸ºä¸ŽæŒ‡çº¹ä¼ æ„Ÿå™¨æ‰€éœ€çš„æŽ¥å—率相ç‰æˆ–比åŽè€…æ›´ä¸¥æ ¼ï¼ˆå¦‚<a href="#7_3_10_biometric_sensors">第 7.3.10 节</a>ä¸æ‰€è¿°ï¼‰ã€‚ + </li> + <li>[C-4-6] 必须具有安全的处ç†ç®¡é“,使æ“ä½œç³»ç»Ÿæˆ–å†…æ ¸æ”»å‡»ä¸èƒ½ç›´æŽ¥æ³¨å…¥æ•°æ®å¹¶å°†æ”»å‡»è€…错误验è¯ä¸ºç”¨æˆ·ã€‚ + </li> + <li>[C-4-7] 必须与明确的确认æ“作(例如按按钮)é…åˆä½¿ç”¨ï¼Œä»¥åœ¨åº”用将 <a href="https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder.html#setUserAuthenticationRequired%28boolean%29"><code>KeyGenParameterSpec.Built.setUserAuthenticationRequired()</code></a> 设置为 <code>true</code> 且生物识别处于被动状æ€æ—¶ï¼ˆä¾‹å¦‚é¢éƒ¨æˆ–虹膜没有明显的 Intent ä¿¡å·ï¼‰å…许其访问密钥å˜å‚¨åŒºå¯†é’¥ã€‚ + </li> + <li>[C-SR] 强烈建议妥善ä¿æŠ¤å¤„于被动状æ€çš„生物识别的确认æ“作,使æ“ä½œç³»ç»Ÿæˆ–å†…æ ¸æ”»å‡»æ— æ³•æ¬ºéª—ç¡®è®¤æ“作。例如,这æ„味ç€åŸºäºŽç‰©ç†æŒ‰é’®çš„确认æ“ä½œä¼šé€šè¿‡å®‰å…¨å…ƒä»¶ï¼ˆæ— æ³•ç”±æŒ‰ç‰©ç†æŒ‰é’®ä¹‹å¤–的任何其他方å¼è§¦å‘)的仅é™è¾“入通用输入/输出 (GPIO) 引脚进行路由。 + </li> + </ul> + <p> +如果生物识别身份验è¯æ–¹æ³•ä¸ç¬¦åˆ<a href="#7_3_10_biometric_sensors">第 7.3.10 节</a>ä¸æ‰€è¿°çš„欺骗和冒å攻击接å—率,则: + </p> + <ul> + <li>[C-5-1] 当设备政ç–控制器 (DPC) 应用已通过 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setPasswordQuality%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setPasswordQuality()</code></a> 方法(具有比 <code>PASSWORD_QUALITY_BIOMETRIC_WEAK</code> é™åˆ¶æ€§æ›´å¼ºçš„è´¨é‡å¸¸é‡ï¼‰è®¾ç½®å¯†ç è´¨é‡æ”¿ç–时,这些方法必须处于åœç”¨çŠ¶æ€ã€‚ + </li> + <li>[C-5-2] 必须在 4 å°æ—¶çš„待机超时期é™ä¹‹åŽè¿›è¡Œä¸€æ¬¡å»ºè®®çš„主è¦èº«ä»½éªŒè¯ï¼ˆä¾‹å¦‚ PIN ç ã€å›¾æ¡ˆã€å¯†ç )。待机超时期é™å°†åœ¨æ¯æ¬¡æˆåŠŸç¡®è®¤è®¾å¤‡å‡æ®åŽé‡ç½®ã€‚ + </li> + <li>[C-5-3] 这些方法ä¸å¾—被视为安全的é”å±æ–¹æ³•ï¼Œä¸”必须满足本节下文ä¸ä»¥ C-8 开头的è¦æ±‚。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°ä¼šæ·»åŠ æˆ–ä¿®æ”¹ç”¨äºŽè§£é”é”定å±å¹•çš„身份验è¯æ–¹æ³•ï¼Œä¸”新的身份验è¯æ–¹æ³•åŸºäºŽç‰©ç†ä»¤ç‰Œæˆ–ä½ç½®ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-6-1] 必须具有回退机制,以使用建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€ï¼ˆåŸºäºŽå·²çŸ¥å¯†é’¥ï¼Œä¸”满足被视为安全é”定å±å¹•çš„è¦æ±‚)。 + </li> + <li>[C-6-2] 当设备政ç–控制器 (DPC) 应用已通过 <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setKeyguardDisabledFeatures%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setKeyguardDisabledFeatures(KEYGUARD_DISABLE_TRUST_AGENTS)</code></a> 或 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setPasswordQuality%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setPasswordQuality()</code></a> 方法(二者具有比 <code>PASSWORD_QUALITY_UNSPECIFIED</code> é™åˆ¶æ€§æ›´å¼ºçš„è´¨é‡å¸¸é‡ï¼‰è®¾ç½®å¯†ç è´¨é‡æ”¿ç–时,必须åœç”¨æ–°çš„身份验è¯æ–¹æ³•ï¼Œä¸”ä»…å…许使用建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€è§£é”å±å¹•ã€‚ + </li> + <li>[C-6-3] 必须至少æ¯éš” 72 å°æ—¶è¦æ±‚用户通过建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€ï¼ˆä¾‹å¦‚ PIN ç ã€å›¾æ¡ˆã€å¯†ç )验è¯èº«ä»½ã€‚ + </li> + <li>[C-6-4] 新的身份验è¯æ–¹æ³•ä¸å¾—被视为安全的é”å±æ–¹æ³•ï¼Œä¸”å¿…é¡»éµå¾ªä¸‹æ–‡ C-8 ä¸æ‰€åˆ—çš„é™åˆ¶æ¡ä»¶ã€‚ + </li> + </ul> + <p> +如果设备实现包å«å®‰å…¨é”定å±å¹•ï¼Œå¹¶ä¸”包å«ä¸€ä¸ªæˆ–多个实现 <code>TrustAgentService</code> System API çš„å¯ä¿¡ä»£ç†ï¼Œåˆ™ï¼š + </p> + <ul> + <li>[C-7-1] 如果设备é”被推迟或å¯è¢«å¯ä¿¡ä»£ç†è§£é”,则必须在“设置â€èœå•ä¸å’Œé”定å±å¹•ä¸Šæ˜Žç¡®æŒ‡æ˜Žã€‚例如,AOSP 通过以下方å¼æ»¡è¶³è¯¥è¦æ±‚:在“设置â€èœå•ä¸æ˜¾ç¤ºæœ‰å…³â€œè‡ªåŠ¨é”定设置â€å’Œâ€œç”µæºæŒ‰é’®å³æ—¶é”定â€çš„æ–‡å—说明,并在é”定å±å¹•ä¸Šæ˜¾ç¤ºæ˜¾çœ¼çš„å›¾æ ‡ã€‚ + </li> + <li>[C-7-2] å¿…é¡»éµä»Žå¹¶å®Œæ•´å®žçŽ° <code>DevicePolicyManager</code> ç±»ä¸çš„所有å¯ä¿¡ä»£ç† API,例如 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#KEYGUARD&lowbarDISABLE&lowbarTRUST&lowbarAGENTS"><code>KEYGUARD_DISABLE_TRUST_AGENTS</code></a> 常é‡ã€‚ + </li> + <li>[C-7-3] ä¸å¾—在主è¦ä¾›ä¸ªäººä½¿ç”¨çš„设备(例如手æŒè®¾å¤‡ï¼‰ä¸Šå®Œæ•´å®žçŽ° <code>TrustAgentService.addEscrowToken()</code> 功能,但å¯ä»¥åœ¨é€šå¸¸ä¾›å¤šäººå…±äº«çš„设备实现(例如 Android TV 或 Automotive 设备)上完整实现该功能。 + </li> + <li>[C-7-4] 必须对 <code>TrustAgentService.addEscrowToken()</code> æ·»åŠ çš„æ‰€æœ‰å˜å‚¨ä»¤ç‰Œè¿›è¡ŒåŠ 密。 + </li> + <li>[C-7-5] ä¸å¾—å°†åŠ å¯†å¯†é’¥å˜å‚¨åœ¨ä½¿ç”¨è¯¥å¯†é’¥çš„设备上。例如,å¯ä»¥ä½¿ç”¨å˜å‚¨åœ¨æ‰‹æœºä¸Šçš„å¯†é’¥è§£é” TV 上的用户å¸å·ã€‚ + </li> + <li>[C-7-6] 在å¯ç”¨ç¬¬ä¸‰æ–¹æ‰˜ç®¡ä»¤ç‰Œä»¥è§£å¯†æ•°æ®å˜å‚¨ä¹‹å‰ï¼Œå¿…é¡»å…ˆå°†ä¼šå¯¹å®‰å…¨æ€§é€ æˆçš„å½±å“通知用户。 + </li> + <li>[C-7-7] 必须具有回退机制,以使用建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€ã€‚ + </li> + <li>[C-7-8] 必须至少æ¯éš” 72 å°æ—¶è¦æ±‚用户通过建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€ï¼ˆä¾‹å¦‚ PIN ç ã€å›¾æ¡ˆã€å¯†ç )验è¯èº«ä»½ã€‚ + </li> + <li>[C-7-9] 必须在 4 å°æ—¶çš„待机超时期é™ä¹‹åŽè¦æ±‚用户通过建议的主è¦èº«ä»½éªŒè¯æ–¹æ³•ä¹‹ä¸€ï¼ˆä¾‹å¦‚ PIN ç ã€å›¾æ¡ˆã€å¯†ç )验è¯èº«ä»½ã€‚待机超时期é™å°†åœ¨æ¯æ¬¡æˆåŠŸç¡®è®¤è®¾å¤‡å‡æ®åŽé‡ç½®ã€‚ + </li> + <li>[C-7-10] ä¸å¾—被视为安全的é”å±æ–¹æ³•ï¼Œä¸”å¿…é¡»éµå¾ªä¸‹æ–‡ C-8 ä¸æ‰€åˆ—çš„é™åˆ¶æ¡ä»¶ã€‚ + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°ä¼šæ·»åŠ æˆ–ä¿®æ”¹ç”¨äºŽè§£é”é”定å±å¹•ï¼ˆå¹¶éžä¸Šè¿°å®‰å…¨é”å±æ–¹å¼ä¸çš„一ç§ï¼‰çš„身份验è¯æ–¹æ³•ï¼Œå¹¶ä½¿ç”¨æ–°çš„身份验è¯æ–¹æ³•è§£é”键盘é”,则: + </p> + <ul> + <li>[C-8-1] 当设备政ç–控制器 (DPC) 应用已通过 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setPasswordQuality%28android.content.ComponentName,%20int%29"><code>DevicePolicyManager.setPasswordQuality()</code></a> 方法(具有比 <code>PASSWORD_QUALITY_UNSPECIFIED</code> é™åˆ¶æ€§æ›´å¼ºçš„è´¨é‡å¸¸é‡ï¼‰è®¾ç½®å¯†ç è´¨é‡æ”¿ç–时,新的身份验è¯æ–¹æ³•å¿…须处于åœç”¨çŠ¶æ€ã€‚ + </li> + <li>[C-8-2] ä¸å¾—é‡ç½® <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setPasswordExpirationTimeout%28android.content.ComponentName,%20long%29"><code>DevicePolicyManager.setPasswordExpirationTimeout()</code></a> 设置的密ç 有效期计时器。 + </li> + <li>[C-8-3] 如果应用将 <a href="https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder.html#setUserAuthenticationRequired%28boolean%29"><code>KeyGenParameterSpec.Builder.setUserAuthenticationRequired()</code></a> 设置为 <code>true</code>,则ä¸å¾—对密钥å˜å‚¨åŒºçš„访问进行身份验è¯ã€‚ + </li> + </ul> + <h4 id="9_11_2_strongbox"> +9.11.2. StrongBox + </h4> + <p> +<a href="https://developer.android.com/training/articles/keystore.html">Android Keystore 系统</a>å…许应用开å‘è€…å°†åŠ å¯†å¯†é’¥å˜å‚¨åœ¨ä¸“用的安全处ç†å™¨ä»¥åŠä¸Šè¿°éš”离的执行环境ä¸ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-SR] å¼ºçƒˆå»ºè®®æ”¯æŒ StrongBox。 + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ StrongBox,则: + </p> + <ul> + <li> + <p> +[C-1-1] 必须声明 <a href="https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#FEATURE_STRONGBOX_KEYSTORE%3Akotlin.String">FEATURE_STRONGBOX_KEYSTORE</a>。 + </p> + </li> + <li> + <p> +[C-1-2] å¿…é¡»æ供专用的安全硬件,以支æŒå¯†é’¥å˜å‚¨åŒºå’Œå®‰å…¨çš„用户身份验è¯ã€‚ + </p> + </li> + <li> + <p> +[C-1-3] 必须具有ä¸ä¸Žåº”用处ç†å™¨ (AP) 共享任何缓å˜ã€DRAMã€å处ç†å™¨æˆ–å…¶ä»–æ ¸å¿ƒèµ„æºçš„独立 CPU。 + </p> + </li> + <li> + <p> +[C-1-4] 必须确ä¿ä¸Ž AP 共享的任何外围设备都ä¸å¾—以任何方å¼æ”¹å˜ StrongBox 处ç†æˆ–从 StrongBox ä¸èŽ·å–任何信æ¯ã€‚AP å¯ä»¥åœç”¨æˆ–å±è”½å¯¹ StrongBox 的访问。 + </p> + </li> + <li> + <p> +[C-1-5] 必须具有准确度在åˆç†èŒƒå›´ (+-10%) 内的内置时钟,且该时钟ä¸å— AP æ“纵。 + </p> + </li> + <li> + <p> +[C-1-6] 必须具有真æ£çš„éšæœºå·ç 生æˆå™¨ï¼Œè¯¥ç”Ÿæˆå™¨ä¼šç”Ÿæˆå‡åŒ€åˆ†å¸ƒä¸”ä¸å¯é¢„测的输出。 + </p> + </li> + <li> + <p> +[C-1-7] 必须具有防篡改功能,包括防物ç†æ¸—é€å’Œå¹²æ‰°ã€‚ + </p> + </li> + <li> + <p> +[C-1-8] 必须能够抗边信é“攻击,包括防æ¢é€šè¿‡ç”µæºã€å®šæ—¶å™¨ã€ç”µç£è¾å°„å’Œçƒè¾å°„边信é“泄露信æ¯ã€‚ + </p> + </li> + <li> + <p> +[C-1-9] 必须具有安全å˜å‚¨ç©ºé—´ï¼Œä»¥ç¡®ä¿å†…容的机密性ã€å®Œæ•´æ€§ã€çœŸå®žæ€§ã€ä¸€è‡´æ€§å’Œæ–°é²œåº¦ã€‚除éžç»è¿‡ StrongBox API å…许,å¦åˆ™ä¸å¾—读å–或更改å˜å‚¨å†…容。 + </p> + </li> + <li> + <p> +è¦éªŒè¯å¯¹ [C-1-3] 到 [C-1-9] çš„éµä»Žæ€§ï¼Œè®¾å¤‡å®žçŽ°ï¼š + </p> + <ul> + <li>[C-1-10] 包å«çš„硬件必须ç»è¿‡ Secure IC Protection Profile <a href="https://www.commoncriteriaportal.org/files/ppfiles/pp0084b_pdf.pdf">BSI-CC-PP-0084-2014</a> 认è¯æˆ–通过国家认å¯çš„测试实验室的评估,以åŠæ ¹æ® <a href="https://www.commoncriteriaportal.org/files/supdocs/CCDB-2013-05-002.pdf">Common Criteria Application of Attack Potential to Smartcards</a> 进行的高攻击性潜在æ¼æ´žè¯„估。 + </li> + <li>[C-1-11] 包å«çš„固件必须通过国家认å¯çš„测试实验室的评估,以åŠæ ¹æ® <a href="https://www.commoncriteriaportal.org/files/supdocs/CCDB-2013-05-002.pdf">Common Criteria Application of Attack Potential to Smartcards</a> 进行的高攻击性潜在æ¼æ´žè¯„估。 + </li> + <li>[C-SR] 强烈建议使包å«çš„ç¡¬ä»¶é€šè¿‡å®‰å…¨ç›®æ ‡ã€å®‰å…¨è¯„ä¼°ç‰çº§ (EAL) 5(由 AVA_VAN.5 增强)的评估。EAL 5 认è¯åœ¨æœªæ¥ç‰ˆæœ¬ä¸å¾ˆå¯èƒ½ä¼šæˆä¸ºä¸€é¡¹è¦æ±‚。 + </li> + </ul> + </li> + <li> + <p> +[C-SR] 强烈建议æ供防内部人员攻击 (IAR) 功能,这æ„味ç€æœ‰æƒè®¿é—®å›ºä»¶ç¾åå¯†é’¥çš„å†…éƒ¨äººå‘˜æ— æ³•ç”Ÿæˆå¯¼è‡´ StrongBox 泄露密钥的固件,æ¥ç»•è¿‡åŠŸèƒ½å®‰å…¨è¦æ±‚或以其他方å¼è®¿é—®æ•æ„Ÿçš„用户数æ®ã€‚IAR 的建议实现方法是仅在通过 IAuthSecret HAL æ供主è¦ç”¨æˆ·å¯†ç æ—¶æ‰å…许固件更新。IAR 在未æ¥ç‰ˆæœ¬ä¸å¾ˆå¯èƒ½ä¼šæˆä¸ºä¸€é¡¹è¦æ±‚。 + </p> + </li> + </ul> + <h3 id="9_12_data_deletion"> +9.12. æ•°æ®åˆ 除 + </h3> + <p> +所有设备实现: + </p> + <ul> + <li>[C-0-1] 必须为用户æ供一ç§ç”¨äºŽæ‰§è¡Œâ€œæ¢å¤å‡ºåŽ‚设置â€çš„机制。 + </li> + <li>[C-0-2] å¿…é¡»åˆ é™¤æ‰€æœ‰ç”±ç”¨æˆ·ç”Ÿæˆçš„æ•°æ®ï¼Œå³é™¤ä»¥ä¸‹å„项以外的所有数æ®ï¼š + <ul> + <li>ç³»ç»Ÿæ˜ åƒ + </li> + <li>ç³»ç»Ÿæ˜ åƒæ‰€éœ€çš„所有æ“作系统文件 + </li> + </ul> + </li> + <li>[C-0-3] 必须采用符åˆç›¸å…³è¡Œä¸šæ ‡å‡†ï¼ˆä¾‹å¦‚ NIST SP800-88)的方å¼åˆ 除数æ®ã€‚ + </li> + <li>[C-0-4] 当主è¦ç”¨æˆ·çš„设备政ç–控制器应用调用 <a href="https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#wipeData%28int%29"><code>DevicePolicyManager.wipeData()</code></a> API 时,必须触å‘上述“æ¢å¤å‡ºåŽ‚设置â€æµç¨‹ã€‚ + </li> + <li>å¯ä»¥æ供仅会执行逻辑数æ®æ¸…空æ“作的快速数æ®æ“¦é™¤åŠŸèƒ½ã€‚ + </li> + </ul> + <h3 id="9_13_safe_boot_mode"> +9.13. 安全å¯åŠ¨æ¨¡å¼ + </h3> + <p> +Android æ供了安全å¯åŠ¨æ¨¡å¼ï¼Œå¯è®©ç”¨æˆ·å¯åŠ¨åˆ°ä»…å…许è¿è¡Œé¢„安装的系统应用而åœç”¨æ‰€æœ‰ç¬¬ä¸‰æ–¹åº”用的模å¼ã€‚è¿™ç§æ¨¡å¼ç§°ä¸ºâ€œå®‰å…¨å¯åŠ¨æ¨¡å¼â€ï¼Œå®ƒå¯ä»¥è®©ç”¨æˆ·å¸è½½æ½œåœ¨æœ‰å®³çš„第三方应用。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[SR] 强烈建议实现安全å¯åŠ¨æ¨¡å¼ã€‚ + </li> + </ul> + <p> +如果设备实现已实现安全å¯åŠ¨æ¨¡å¼ï¼Œåˆ™ï¼š + </p> + <ul> + <li> + <p> +[C-1-1] 必须为用户æ供一个进入安全å¯åŠ¨æ¨¡å¼çš„选项,并确ä¿åœ¨è¿›å…¥è¯¥æ¨¡å¼æ—¶ä¸ä¼šè¢«è®¾å¤‡ä¸Šå®‰è£…的第三方应用ä¸æ–,除éžç¬¬ä¸‰æ–¹åº”用是设备政ç–控制器,并且已将 <a href="https://developer.android.com/reference/android/os/UserManager.html#DISALLOW_SAFE_BOOT"><code>UserManager.DISALLOW_SAFE_BOOT</code></a> æ ‡è®°è®¾ä¸º true。 + </p> + </li> + <li> + <p> +[C-1-2] 必须让用户能够在安全模å¼ä¸‹å¸è½½ä»»ä½•ç¬¬ä¸‰æ–¹åº”用。 + </p> + </li> + <li> + <p> +应为用户æ供一个用于从å¯åŠ¨èœå•è¿›å…¥å®‰å…¨å¯åŠ¨æ¨¡å¼çš„选项(采用的工作æµç¨‹ä¸åŒäºŽæ£å¸¸å¯åŠ¨æ—¶çš„工作æµç¨‹ï¼‰ã€‚ + </p> + </li> + </ul> + <h3 id="9_14_automotive_vehicle_system_isolation"> +9.14. Automotive 车载系统隔离 + </h3> + <p> +Android Automotive 设备应使用<a href="http://source.android.com/devices/automotive.html">车载 HAL</a> 与关键车载å系统交æ¢æ•°æ®ï¼Œä»¥ä¾¿é€šè¿‡è½¦è½½ç½‘络(如 CAN 总线)收å‘消æ¯ã€‚ + </p> + <p> +å¯ä»¥é€šè¿‡ä»¥ä¸‹æ–¹å¼ä¿æŠ¤æ•°æ®äº¤æ¢çš„安全性:在 Android 框架层以下实现安全功能,以防æ¢ä¸Žè¿™äº›å系统进行æ¶æ„交互或æ„外交互。 + </p> + <h3 id="9_15_subscription_plans"> +9.15. è®¢é˜…å¥—é¤ + </h3> + <p> +“订阅套é¤â€æ˜¯æŒ‡ç§»åŠ¨è¿è¥å•†é€šè¿‡ <a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#setSubscriptionPlans%28int,%20java.util.List%3Candroid.telephony.SubscriptionPlan%3E%29"><code>SubscriptionManager.setSubscriptionPlans()</code></a> æ供的结算关系套é¤è¯¦æƒ…。 + </p> + <p> +所有设备实现: + </p> + <ul> + <li>[C-0-1] 必须仅将订阅套é¤è¿”回给最åˆæ供它们的移动è¿è¥å•†åº”用。 + </li> + <li>[C-0-2] ä¸å¾—è¿œç¨‹å¤‡ä»½æˆ–ä¸Šä¼ è®¢é˜…å¥—é¤ã€‚ + </li> + <li>[C-0-3] å¿…é¡»åªå…许当å‰æ供有效订阅套é¤çš„移动è¿è¥å•†åº”用进行替æ¢ï¼Œä¾‹å¦‚ <a href="https://developer.android.com/reference/android/telephony/SubscriptionManager.html#setSubscriptionOverrideCongested%28int,%20boolean,%20long%29"><code>SubscriptionManager.setSubscriptionOverrideCongested()</code></a>。 + </li> + </ul> + <h2 id="10_software_compatibility_testing"> +10. 软件兼容性测试 + </h2> + <p> +设备实现必须通过本节ä¸æ‰€è¿°çš„所有测试。ä¸è¿‡è¯·æ³¨æ„,任何软件测试包都ä¸æ˜¯è¯¦å°½æ— é—çš„ã€‚å› æ¤ï¼Œ<strong>强烈建议</strong>设备实现者尽å¯èƒ½é¿å…对å¯ä»Ž Android å¼€æºé¡¹ç›®èŽ·å¾—çš„ Android å‚è€ƒå®žçŽ°å’Œé¦–é€‰å®žçŽ°è¿›è¡Œæ›´æ”¹ã€‚è¿™æ ·æœ‰åŠ©äºŽæœ€å¤§é™åº¦åœ°é™ä½Žå¼•å…¥é”™è¯¯çš„风险,从而é¿å…ç”±æ¤é€ æˆéœ€è¦è¿›è¡Œè¿”工和潜在设备更新的ä¸å…¼å®¹é—®é¢˜ã€‚ + </p> + <h3 id="10_1_compatibility_test_suite"> +10.1. 兼容性测试套件 + </h3> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-1] 必须通过 Android å¼€æºé¡¹ç›®æ供的 <a href="http://source.android.com/compatibility/index.html">Android 兼容性测试套件 (CTS)</a> 的测试(使用设备上最终交付的软件)。 + </p> + </li> + <li> + <p> +[C-0-2] 对于 CTS ä¸ä¸æ˜Žç¡®çš„情况,以åŠå‚考æºä»£ç ä¸éƒ¨åˆ†å†…容的任何é‡æ–°å®žçŽ°ï¼Œéƒ½å¿…须确ä¿å…¼å®¹æ€§ã€‚ + </p> + </li> + </ul> + <p> +CTS 能够在实际设备上è¿è¡Œã€‚ä¸Žæ‰€æœ‰è½¯ä»¶ä¸€æ ·ï¼ŒCTS 自身也å¯èƒ½åŒ…å«é”™è¯¯ã€‚CTS 的版本å‘布独立于本兼容性定义,我们å¯èƒ½ä¼šé’ˆå¯¹ Android 9 å‘布多个 CTS 修订版本。 + </p> + <p> +设备实现: + </p> + <ul> + <li> + <p> +[C-0-3] 必须通过设备软件å‘布时å¯ç”¨çš„最新 CTS 版本的测试。 + </p> + </li> + <li> + <p> +应尽å¯èƒ½å¤šåœ°ä½¿ç”¨ Android 开放æºä»£ç æ ‘ä¸çš„å‚考实现。 + </p> + </li> + </ul> + <h3 id="10_2_cts_verifier"> +10.2. CTS 验è¯ç¨‹åº + </h3> + <p> +CTS 验è¯ç¨‹åºåŒ…å«åœ¨å…¼å®¹æ€§æµ‹è¯•å¥—件ä¸ï¼Œä»¥ä¾¿äººå·¥æ“作员è¿è¡Œè¯¥éªŒè¯ç¨‹åºæ¥æµ‹è¯•æ— 法由自动化系统测试的功能(例如,测试摄åƒå¤´å’Œä¼ 感器能å¦æ£å¸¸å·¥ä½œï¼‰ã€‚ + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-1] å¿…é¡»æ£ç¡®æ‰§è¡Œ CTS 验è¯ç¨‹åºä¸çš„所有适用用例。 + </li> + </ul> + <p> +CTS 验è¯ç¨‹åºä¸åŒ…å«é’ˆå¯¹å¤šç§ç¡¬ä»¶ï¼ˆå…¶ä¸åŒ…括一些选é…硬件)的测试。 + </p> + <p> +设备实现: + </p> + <ul> + <li>[C-0-2] 必须通过针对其具备的硬件的所有测试;例如,如果æŸå°è®¾å¤‡å…·å¤‡åŠ 速度计,则必须æ£ç¡®æ‰§è¡Œ CTS 验è¯ç¨‹åºä¸çš„åŠ é€Ÿåº¦è®¡æµ‹è¯•ç”¨ä¾‹ã€‚ + </li> + </ul> + <p> +对于本兼容性定义文档ä¸æ³¨æ˜Žä¸ºé€‰é…的功能,å¯è·³è¿‡æˆ–çœç•¥ç›¸åº”的测试用例。 + </p> + <ul> + <li>[C-0-2] 如上所述,æ¯ç§è®¾å¤‡å’Œæ¯ä¸ªç»†åˆ†ç‰ˆæœ¬éƒ½å¿…é¡»æ£ç¡®è¿è¡Œ CTS 验è¯ç¨‹åºã€‚ä¸è¿‡ï¼Œç”±äºŽå¾ˆå¤šç»†åˆ†ç‰ˆæœ¬éžå¸¸ç›¸ä¼¼ï¼Œå› æ¤è®¾å¤‡å®žçŽ°äººå‘˜ä¸ä¼šå¯¹åªæœ‰ç»†å¾®å·®åˆ«çš„细分版本明确地è¿è¡Œ CTS 验è¯ç¨‹åºã€‚具体而言,如果设备实现与æŸä¸ªå·²é€šè¿‡ CTS 验è¯ç¨‹åºæµ‹è¯•çš„实现åªæ˜¯åœ¨æ‰€åŒ…å«çš„è¯è¨€åŒºåŸŸã€å“牌信æ¯ç‰æ–¹é¢å˜åœ¨å·®åˆ«ï¼Œåˆ™å¯ä»¥çœç•¥ CTS 验è¯ç¨‹åºæµ‹è¯•ã€‚ + </li> + </ul> + <h2 id="11_updatable_software"> +11. å¯æ›´æ–°è½¯ä»¶ + </h2> + <ul> + <li> + <p> +[C-0-1] 设备实现必须包å«å¯ç”¨äºŽæ›¿æ¢æ•´ä¸ªç³»ç»Ÿè½¯ä»¶çš„机制。该机制ä¸éœ€è¦æ‰§è¡Œâ€œå®žæ—¶â€å‡çº§ - 也就是说,å¯èƒ½éœ€è¦é‡æ–°å¯åŠ¨è®¾å¤‡ã€‚å¯ä»¥ä½¿ç”¨ä»»ä½•æ–¹æ³•ï¼Œä½†å‰æ是该方法å¯ä»¥æ›¿æ¢è®¾å¤‡ä¸Šé¢„安装的整个软件。例如,以下任何方法都å¯ä»¥æ»¡è¶³è¯¥è¦æ±‚: + </p> + <ul> + <li>â€œæ— çº¿ä¸‹è½½ (OTA)â€ï¼ˆé€šè¿‡é‡æ–°å¯åŠ¨è¿›è¡Œç¦»çº¿æ›´æ–°ï¼‰ã€‚ + </li> + <li>从主机 PC 上通过 USB 进行“网络共享â€æ›´æ–°ã€‚ + </li> + <li>通过é‡æ–°å¯åŠ¨è¿›è¡Œâ€œç¦»çº¿â€æ›´æ–°ï¼Œä»¥åŠé€šè¿‡å¯ç§»åŠ¨å˜å‚¨è®¾å¤‡ä¸Šçš„文件进行更新。 + </li> + </ul> + </li> + <li> + <p> +[C-0-2] 使用的更新机制必须支æŒåœ¨ä¸æ“¦é™¤ç”¨æˆ·æ•°æ®çš„情况下进行更新。也就是说,更新机制必须ä¿ç•™åº”用éšç§æ•°æ®å’Œåº”用共享数æ®ã€‚请注æ„,上游 Android 软件包å«æ»¡è¶³è¯¥è¦æ±‚的更新机制。 + </p> + </li> + </ul> + <p> +å¦‚æžœè®¾å¤‡å®žçŽ°æ”¯æŒ 802.11 或è“牙 PAN(个人局域网)é…ç½®ç‰ä¸æŒ‰æµé‡è®¡è´¹çš„æ•°æ®ç½‘络连接,则: + </p> + <ul> + <li>[C-1-1] å¿…é¡»æ”¯æŒ (OTA) 下载(通过é‡æ–°å¯åŠ¨è¿›è¡Œç¦»çº¿æ›´æ–°ï¼‰ã€‚ + </li> + </ul> + <p> +对于æè½½ Android 6.0 åŠæ›´é«˜ç‰ˆæœ¬çš„设备实现,更新机制应支æŒåœ¨ OTA 之åŽéªŒè¯ç³»ç»Ÿæ˜ åƒæ˜¯å¦ä¸ºä¸Žé¢„期结果完全相åŒçš„二进制文件。上游 Android å¼€æºé¡¹ç›®ä¸åŸºäºŽå—çš„ OTA 实现(从 Android 5.1 å¼€å§‹æ·»åŠ äº†æ¤å®žçŽ°ï¼‰å¯æ»¡è¶³è¯¥è¦æ±‚。 + </p> + <p> +æ¤å¤–ï¼Œè®¾å¤‡å®žçŽ°è¿˜åº”æ”¯æŒ <a href="https://source.android.com/devices/tech/ota/ab_updates.html">A/B 系统更新</a>。AOSP 使用å¯åŠ¨æŽ§ä»¶ HAL 实现了该功能。 + </p> + <p> +在设备实现å‘布åŽï¼Œå¦‚果在其åˆç†çš„产å“生命周期内å‘现其ä¸å˜åœ¨é”™è¯¯ï¼Œå¹¶ä¸”ç»ä¸Ž Android 兼容性团队磋商åŽç¡®å®šè¯¥é”™è¯¯ä¼šå½±å“第三方应用的兼容性,则: + </p> + <ul> + <li>[C-2-1] 设备实现者必须通过å¯æŒ‰ä¸Šè¿°æœºåˆ¶åº”用的å¯ç”¨è½¯ä»¶æ›´æ–°æ¥æ›´æ£è¯¥é”™è¯¯ã€‚ + </li> + </ul> + <p> +Android 包å«ä¸€äº›å¯è®©è®¾å¤‡æ‰€æœ‰è€…应用(如果å˜åœ¨ï¼‰æŽ§åˆ¶ç³»ç»Ÿæ›´æ–°å®‰è£…的功能。如果设备的系统更新å系统报告 android.software.device_admin,则: + </p> + <ul> + <li>[C-3-1] 必须实现 <a href="http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html">SystemUpdatePolicy</a> ç±»ä¸æ‰€è¿°çš„行为。 + </li> + </ul> + <h2 id="12_document_changelog"> +12. 文档更改日志 + </h2> + <p> +有关对æ¤ç‰ˆæœ¬ä¸çš„兼容性定义所åšæ›´æ”¹çš„摘è¦ï¼Œè¯·å‚阅: + </p> + <ul> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/?pretty=full&no-merges">文档更改日志</a> + </li> + </ul> + <p> +有关对å„节所åšæ›´æ”¹çš„摘è¦ï¼Œè¯·å‚阅: + </p> + <ol> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/1_introduction?pretty=full&no-merges">简介</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/2_device_types?pretty=full&no-merges">设备类型</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/3_software?pretty=full&no-merges">软件</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/4_application-packaging?pretty=full&no-merges">应用打包</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/5_multimedia?pretty=full&no-merges">多媒体</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/6_dev-tools-and-options?pretty=full&no-merges">å¼€å‘者工具和选项</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/7_hardware-compatibility?pretty=full&no-merges">硬件兼容性</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/8_performance-and-power?pretty=full&no-merges">性能和功耗</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/9_security-model?pretty=full&no-merges">安全模型</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/10_software-compatibility-testing?pretty=full&no-merges">软件兼容性测试</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/11_updatable-software?pretty=full&no-merges">å¯æ›´æ–°è½¯ä»¶</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/12_document-changelog?pretty=full&no-merges">文档更改日志</a> + </li> + <li> + <a href="https://android.googlesource.com/platform/compatibility/cdd/+log/pie-dev/13_contact-us?pretty=full&no-merges">与我们è”ç³»</a> + </li> + </ol> + <h3 id="12_1_changelog_viewing_tips"> +12.1. 更改日志查看æ示 + </h3> + <p> +æ›´æ”¹é‡‡ç”¨ä»¥ä¸‹æ ‡è®°æ–¹å¼ï¼š + </p> + <ul> + <li> + <p> + <strong>CDD</strong><br /> +对兼容性è¦æ±‚所åšçš„é‡å¤§æ›´æ”¹ã€‚ + </p> + </li> + <li> + <p> + <strong>文档</strong><br /> +与美观性或细分版本相关的更改。 + </p> + </li> + </ul> + <p> +为了最便æ·åœ°æŸ¥çœ‹ç›¸å…³æ›´æ”¹ï¼Œè¯·å°† <code>pretty=full</code> å’Œ <code>no-merges</code> 网å€å‚æ•°é™„åŠ åˆ°æ›´æ”¹æ—¥å¿—ç½‘å€ã€‚ + </p> + <h2 id="13_contact_us"> +13. 与我们è”ç³» + </h2> + <p> +您å¯ä»¥åŠ å…¥ <a href="https://groups.google.com/forum/#!forum/android-compatibility">android-compatibility 论å›</a>,å‘帖咨询或æ出您认为本文档未涵盖的任何问题。 + </p> + +</body></html>
\ No newline at end of file diff --git a/zh-cn/compatibility/cts/camera-its-box-assembly.html b/zh-cn/compatibility/cts/camera-its-box-assembly.html index b5c1a758..dc4e11ed 100644 --- a/zh-cn/compatibility/cts/camera-its-box-assembly.html +++ b/zh-cn/compatibility/cts/camera-its-box-assembly.html @@ -41,7 +41,7 @@ <p class="caption"><strong>图 1</strong>. 盒装 ITS çš„ CAD 图纸。</p> <h3>所需工具</h3> -<p>在开始之å‰ï¼Œè¯·ç¡®ä¿æ‚¨å·²<a href="camera_its_iab_tech_drawings.zip">下载盒装 ITS 的技术图纸</a>,并准备好以下工具:</p> +<p>在开始之å‰ï¼Œè¯·ç¡®ä¿æ‚¨å·²<a href="rfov_its_box_assembly_1_3.zip">下载盒装 ITS 的技术图纸</a>,并准备好以下工具:</p> <ul> <li>åå—头螺ä¸åˆ€</li> <li>é’³å</li> diff --git a/zh-cn/compatibility/cts/camera-wfov-box-assembly.html b/zh-cn/compatibility/cts/camera-wfov-box-assembly.html index 0c56bb67..a3396263 100644 --- a/zh-cn/compatibility/cts/camera-wfov-box-assembly.html +++ b/zh-cn/compatibility/cts/camera-wfov-box-assembly.html @@ -52,7 +52,7 @@ sales@myway.tw</li> <h3 id="required_tools">所需工具</h3> -<p>在开始之å‰ï¼Œè¯·ç¡®ä¿æ‚¨å·²ä¸‹è½½ <a href="/compatibility/cts/wfov_its_box_assembly_2.6.zip">WFoV 盒装 ITS 的技术图纸</a>ã€å·²åˆ‡å¥½å¡‘料和乙烯基元件ã€å·²æŒ‰ç…§ BOM è´ä¹°ç¡¬ä»¶ï¼Œå¹¶å‡†å¤‡å¥½ä»¥ä¸‹å·¥å…·ï¼š</p> +<p>首先,请下载最新的 <a href="/compatibility/cts/wfov_its_box_assembly_2_7.zip">WFoV 盒装 ITS 的技术图纸</a>ã€åˆ‡å¥½å¡‘料和乙烯基元件ã€æŒ‰ç…§ç‰©æ–™æ¸…å• (BOM) è´ä¹°ç¡¬ä»¶ï¼Œå¹¶å‡†å¤‡å¥½ä»¥ä¸‹å·¥å…·ï¼š</p> <ul> <li>åå—头螺ä¸åˆ€</li> @@ -62,7 +62,7 @@ sales@myway.tw</li> <li>喷壶</li> <li>美工刀</li> </ul> - +<aside class="note"><strong>注æ„</strong>:<span>如需详细了解以往版本,请å‚阅<a href="#revision_history">修订历å²è®°å½•</a>。</span></aside> <h3 id="step_1_apply_colored_vinyl">第 1 æ¥ï¼šè´´å½©è‰²ä¹™çƒ¯åŸºè†œ</h3> <p>è¦è´´å½©è‰²ä¹™çƒ¯åŸºè†œï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ“作:</p> @@ -199,4 +199,40 @@ sales@myway.tw</li> <p><strong>图 22. </strong> 组装好的 WFoV 盒:åŽè§†å›¾ï¼ˆå·¦ï¼‰å’Œå‰è§†å›¾ï¼ˆå³ï¼‰</p></li> </ol> +<h3 id="revision_history">修订历å²è®°å½•</h3> + +<p>下é¢ä»‹ç»äº†å¯¹ WFoV 盒装 ITS 所åšçš„更改。</p> + +<h4 id="revision_27">修订版 2.7</h4> + +<ul> +<li>å°† BOM ä¸çš„ç¯ (#16) æ¢æˆäº†é€šè¿‡ç¾Žå›½ UL 认è¯çš„ LED ç¯å¸¦ï¼Œä»¥ä¾¿åœ¨åˆ¶é€ æ–¹é¢å®žçŽ°æ›´å¥½çš„一致性。</li> +<li>å°† BOM ä¸çš„ç”µæº (#17) æ¢æˆäº†ä¸Ž #16 相åŒçš„电æºã€‚</li> +<li>将平æ¿ç”µè„‘åº•åº§åŠ å®½äº† 35 毫米,以匹é…å¹³æ¿ç”µè„‘çš„å¼€å£ï¼ˆæœºæ¢°åˆ¶å›¾ä¸Šç¬¬ 4 页)</li> +<li>修改了å‰å¤¹é’³å”çš„é—´è·ï¼ˆè·ç¦»ï¼‰ï¼Œä»¥ä¸Žå¤¹é’³æ§½çš„长度ä¿æŒä¸€è‡´ï¼ˆæœºæ¢°åˆ¶å›¾ä¸Šç¬¬ 5 页)</li> +<li>å°†å‰ç«¯åœ†å”的直径å‡å°‘了 20 æ¯«ç±³ï¼Œä»¥åŒ¹é… <a href="/compatibility/cts/camera-its-box-assembly">RFoV 盒装 ITS(修订版 1)</a>(机械制图上第 5 页)</li> +</ul> + +<h4 id="revision_26_released_internally">修订版 2.6(内部å‘布)</h4> + +<ul> +<li>å¯¹æœºæ¢°åˆ¶å›¾è¿›è¡Œäº†æ ¡æ£</li> +</ul> + +<h4 id="revision_25">修订版 2.5</h4> + +<ul> +<li>简化了平æ¿ç”µè„‘固定支架,使其类似于手机底座</li> +<li>é‡‡ç”¨å–·ç ‚ç£¨å…‰ï¼ˆåŽŸä¸ºé˜³æžåŒ–抛光),以é™ä½Žæˆæœ¬</li> +<li>ä¿®æ£äº† BOM 上 LED ç¯çš„è§„æ ¼</li> +</ul> + +<h4 id="revision_24">修订版 2.4</h4> + +<ul> +<li>使用 ABS æ料(原为丙烯酸æ料),以å‡å°‘è¿è¾“æŸä¼¤</li> +<li>移除了 3D 打å°å…ƒä»¶ï¼Œå¹¶ç”¨æ¿€å…‰åˆ‡å‰² ABS å–代它们,以é™ä½Žæˆæœ¬</li> +<li>将盒å手柄改为使用 ABS,手柄ä¸å†æ˜¯ BOM 上需è¦å•ç‹¬è´ä¹°çš„器件</li> +</ul> + </body></html>
\ No newline at end of file diff --git a/zh-cn/compatibility/cts/downloads.html b/zh-cn/compatibility/cts/downloads.html index ffcff01f..9b70e4ee 100644 --- a/zh-cn/compatibility/cts/downloads.html +++ b/zh-cn/compatibility/cts/downloads.html @@ -23,50 +23,50 @@ <p>感谢您对 Android 兼容性计划的关注ï¼æ‚¨å¯ä»¥é€šè¿‡ä»¥ä¸‹é“¾æŽ¥è®¿é—®å…³äºŽè¯¥è®¡åˆ’çš„é‡è¦æ–‡æ¡£å’Œä¿¡æ¯ã€‚éšç€ CTS 的更新,æ¤ç½‘页上会陆ç»æ·»åŠ 新的版本。CTS 版本在链接å称ä¸ç”± R<æ•°å—> 表示。</p> <h2 id="android-90">Android 9</h2> -<p>Android 9 是代å·ä¸º P çš„å¼€å‘里程碑版本。以下测试(包括针对å…安装应用的测试)的æºä»£ç å¯ä»¥ä¸Žå¼€æºä»£ç æ ‘ä¸çš„“android-cts-9.0_r2â€æ ‡è®°åŒæ¥ã€‚</p> +<p>Android 9 是代å·ä¸º P çš„å¼€å‘里程碑版本。以下测试(包括针对å…安装应用的测试)的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘ä¸çš„“android-cts-9.0_r3â€æ ‡è®°åŒæ¥ã€‚</p> <ul> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-9.0_r2-linux_x86-arm.zip">Android 9.0 R2 兼容性测试套件 (CTS) - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-9.0_r2-linux_x86-x86.zip">Android 9.0 R2 兼容性测试套件 (CTS) - x86</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r2-linux_x86-arm.zip">Android 9.0 R2 CTS 验è¯ç¨‹åº - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-9.0_r2-linux_x86-x86.zip">Android 9.0 R2 CTS 验è¯ç¨‹åº - x86</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r2-linux_x86-arm.zip">Android 9.0 R2 CTS(适用于å…安装应用)- ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts_instant-9.0_r2-linux_x86-x86.zip">Android 9.0 R2 CTS(适用于å…安装应用)- x86</a></li> +<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> </ul> <h2 id="android-81">Android 8.1</h2> -<p>Android 8.1 是代å·ä¸º Oreo-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æºä»£ç æ ‘ä¸çš„“android-cts-8.1_r9â€æ ‡è®°åŒæ¥ã€‚</p> +<p>Android 8.1 是代å·ä¸º Oreo-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘ä¸çš„“android-cts-8.1_r10â€æ ‡è®°åŒæ¥ã€‚</p> <ul> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.1_r9-linux_x86-arm.zip">Android 8.1 R9 兼容性测试套件 (CTS) - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.1_r9-linux_x86-x86.zip">Android 8.1 R9 兼容性测试套件 (CTS) - x86</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r9-linux_x86-arm.zip">Android 8.1 R9 CTS 验è¯ç¨‹åº - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.1_r9-linux_x86-x86.zip">Android 8.1 R9 CTS 验è¯ç¨‹åº - x86</a></li> +<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> </ul> <h2 id="android-80">Android 8.0</h2> -<p>Android 8.0 是代å·ä¸º Oreo çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æºä»£ç æ ‘ä¸çš„“android-cts-8.0_r13â€æ ‡è®°åŒæ¥ã€‚</p> +<p>Android 8.0 是代å·ä¸º Oreo çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘ä¸çš„“android-cts-8.0_r14â€æ ‡è®°åŒæ¥ã€‚</p> <ul> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.0_r13-linux_x86-arm.zip">Android 8.0 R13 兼容性测试套件 (CTS) - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-8.0_r13-linux_x86-x86.zip">Android 8.0 R13 兼容性测试套件 (CTS) - x86</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r13-linux_x86-arm.zip">Android 8.0 R13 CTS 验è¯ç¨‹åº - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-8.0_r13-linux_x86-x86.zip">Android 8.0 R13 CTS 验è¯ç¨‹åº - x86</a></li> +<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> </ul> <h2 id="android-71">Android 7.1</h2> -<p>Android 7.1 是代å·ä¸º Nougat-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æºä»£ç æ ‘ä¸çš„“android-cts-7.1_r21â€æ ‡è®°åŒæ¥ã€‚</p> +<p>Android 7.1 是代å·ä¸º Nougat-MR1 çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘ä¸çš„“android-cts-7.1_r22â€æ ‡è®°åŒæ¥ã€‚</p> <ul> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.1_r21-linux_x86-arm.zip">Android 7.1 R21 兼容性测试套件 (CTS) - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.1_r21-linux_x86-x86.zip">Android 7.1 R21 兼容性测试套件 (CTS) - x86</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r21-linux_x86-arm.zip">Android 7.1 R21 CTS 验è¯ç¨‹åº - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.1_r21-linux_x86-x86.zip">Android 7.1 R21 CTS 验è¯ç¨‹åº - x86</a></li> +<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> </ul> <h2 id="android-70">Android 7.0</h2> -<p>Android 7.0 是代å·ä¸º Nougat çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æºä»£ç æ ‘ä¸çš„“android-cts-7.0_r25â€æ ‡è®°åŒæ¥ã€‚</p> +<p>Android 7.0 是代å·ä¸º Nougat çš„å¼€å‘里程碑版本。以下测试的æºä»£ç å¯ä»¥ä¸Žå¼€æ”¾æºä»£ç æ ‘ä¸çš„“android-cts-7.0_r26â€æ ‡è®°åŒæ¥ã€‚</p> <ul> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.0_r25-linux_x86-arm.zip">Android 7.0 R25 兼容性测试套件 (CTS) - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-7.0_r25-linux_x86-x86.zip">Android 7.0 R25 兼容性测试套件 (CTS) - x86</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r25-linux_x86-arm.zip">Android 7.0 R25 CTS 验è¯ç¨‹åº - ARM</a></li> -<li><a href="https://dl.google.com/dl/android/cts/android-cts-verifier-7.0_r25-linux_x86-x86.zip">Android 7.0 R25 CTS 验è¯ç¨‹åº - x86</a></li> +<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> </ul> <h2 id="android-60">Android 6.0</h2> diff --git a/zh-cn/compatibility/cts/sensor-fusion-box-assembly.html b/zh-cn/compatibility/cts/sensor-fusion-box-assembly.html index 0a5876c9..592728fa 100644 --- a/zh-cn/compatibility/cts/sensor-fusion-box-assembly.html +++ b/zh-cn/compatibility/cts/sensor-fusion-box-assembly.html @@ -18,9 +18,9 @@ limitations under the License. --> -<h1 id="sensor_fusion_box_assembly" class="page-title">ç»„è£…ä¼ æ„Ÿå™¨èžåˆç›’</h1> +<h1 id="sensor_fusion_box_details" class="page-title">ä¼ æ„Ÿå™¨èžåˆç›’详细信æ¯</h1> -<p>本页é€æ¥ä»‹ç»äº†å¦‚ä½•ç»„è£…ä¼ æ„Ÿå™¨èžåˆç›’。在 CameraITS sensor_fusion 测试和多摄åƒå¤´åŒæ¥æµ‹è¯•ä¸ï¼Œéœ€è¦ä½¿ç”¨ä¼ 感器èžåˆç›’。它能够æä¾›ä¸€è‡´çš„æµ‹è¯•çŽ¯å¢ƒï¼Œä»¥ä¾¿è¡¡é‡ Android 手机上的摄åƒå¤´å’Œå…¶ä»–ä¼ æ„Ÿå™¨çš„æ—¶é—´æˆ³å‡†ç¡®åº¦ã€‚ä¼ æ„Ÿå™¨èžåˆç›’包å«å¤šä¸ªæ ¹æ®è®¡ç®—机辅助设计 (CAD) 图纸激光切割而æˆçš„塑料盒组件,以åŠä¸€ä¸ªä¼ºæœå™¨æŽ§åˆ¶ç®±ã€‚</p> +<p>本页æ供了有关如何è´ä¹°æˆ–ç»„è£…ä¼ æ„Ÿå™¨èžåˆç›’çš„ä¿¡æ¯ã€‚在 CameraITS sensor_fusion 测试和多摄åƒå¤´åŒæ¥æµ‹è¯•ä¸ï¼Œéœ€è¦ä½¿ç”¨ä¼ 感器èžåˆç›’。它能够æä¾›ä¸€è‡´çš„æµ‹è¯•çŽ¯å¢ƒï¼Œä»¥ä¾¿è¡¡é‡ Android 手机上的摄åƒå¤´å’Œå…¶ä»–ä¼ æ„Ÿå™¨çš„æ—¶é—´æˆ³å‡†ç¡®åº¦ã€‚ä¼ æ„Ÿå™¨èžåˆç›’包å«å¤šä¸ªæ ¹æ®è®¡ç®—机辅助设计 (CAD) 图纸激光切割而æˆçš„塑料盒组件,以åŠä¸€ä¸ªä¼ºæœå™¨æŽ§åˆ¶ç®±ã€‚</p> <p>您å¯ä»¥è´ä¹°æˆ–è‡ªå·±åˆ¶ä½œä¼ æ„Ÿå™¨èžåˆç›’。</p> @@ -32,24 +32,26 @@ <li><em>Acu Spec, Inc.</em><br /> 990 Richard Ave, Ste 103, Santa Clara, CA 95050<br /> fred@acuspecinc.com </li> -<li><em>MYWAY, Inc</em><br /> +<li><em>MYWAY DESIGN</em><br /> å°æ¹¾æ–°åŒ—市ç¦è¥è·¯ 163 å· 4 楼<br /> -sales@myway.tw</li> +sales@myway.tw<br /> +http://www.myway.tw/</li> </ul> <h2 id="building_a_sensor_fusion_box">åˆ¶ä½œä¼ æ„Ÿå™¨èžåˆç›’</h2> -<p>这一部分é€æ¥ä»‹ç»äº†å¦‚何使用激光切割的塑料组件æ¥ç»„è£…ä¼ æ„Ÿå™¨èžåˆç›’(如图 1 所示):</p> +<p>这一部分é€æ¥ä»‹ç»äº†å¦‚何使用激光切割的丙烯腈·ä¸äºŒçƒ¯Â·è‹¯ä¹™çƒ¯ (ABS) ç»„ä»¶ç»„è£…ä¼ æ„Ÿå™¨èžåˆç›’(如图 1 所示):</p> -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_box_cad_drawing.png" width="700" alt="ä¼ æ„Ÿå™¨èžåˆç›’组件的 CAD 图纸"/><br /> -<strong>图 1.</strong> ä¼ æ„Ÿå™¨èžåˆç›’组件的 CAD 图纸</p> +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_box_cad_drawing.png" width="700" alt="ä¼ æ„Ÿå™¨èžåˆç›’组件的 CAD 图纸" class="screenshot"/><br /> +<strong>图 1.</strong> ä¼ æ„Ÿå™¨èžåˆç›’组件的机械图纸</p> <h3 id="required_tools">所需工具</h3> -<p>开始之å‰ï¼Œè¯·å…ˆç¡®ä¿æ‚¨å·²ä¸‹è½½ä¼ 感器èžåˆç›’的技术图纸(包å«åœ¨ <a href="/compatibility/cts/sensor_fusion_1.4.zip">Sensor Fusion Box zip 文件</a>ä¸ï¼‰ï¼Œå¹¶å‡†å¤‡å¥½ä»¥ä¸‹å·¥å…·ï¼š</p> +<p>开始之å‰ï¼Œè¯·å…ˆç¡®ä¿æ‚¨å·²ä¸‹è½½ä¼ 感器èžåˆç›’的技术图纸(包å«åœ¨ <a href="/compatibility/cts/sensor_fusion_1.5.zip">Sensor Fusion Box zip 文件</a>ä¸ï¼‰ï¼Œå¹¶å‡†å¤‡å¥½ä»¥ä¸‹å·¥å…·ï¼š</p> <ul> <li>åå—头螺ä¸åˆ€</li> +<li>å…角扳手</li> <li>电钻套装</li> <li>美工刀</li> <li>胶带</li> @@ -57,145 +59,141 @@ sales@myway.tw</li> <h3 id="step_1_apply_vinyl_stickers">第 1 æ¥ï¼šè´´ä¹™çƒ¯åŸºè´´çº¸</h3> -<p>使用激光切割机制作好塑料组件åŽï¼Œæ‚¨å¯ä»¥ä¸ºå¡‘料盒组件贴上乙烯基贴纸:</p> +<p>使用激光切割机制作好 ABS 组件åŽï¼Œåœ¨å¡‘料盒上贴上乙烯基贴纸,以便在测试盒内部实现适当的颜色控制:</p> <ol> -<li>将乙烯基贴纸贴在 ABS(丙烯脯二乙烯ä¸äºŒçƒ¯æ ‘脂)组件的光滑é¢ä¸Šï¼ˆå¦‚<strong>图 2</strong> 所示)。如需关于如何贴乙烯基贴纸的实用æ示,请å‚阅 <a href="https://www.wikihow.com/Install-a-Vinyl-Graphic" class="external">wikiHow</a>。</li> -<li><p>在乙烯基贴纸上è£å‡ºå¿…è¦çš„å”。</p> +<li>将乙烯基贴纸贴在 ABS 组件的光滑é¢ä¸Šï¼ˆå¦‚图 2 所示)。如需关于如何贴乙烯基贴纸的实用æ示,请å‚阅 <a href="https://www.wikihow.com/Install-a-Vinyl-Graphic" class="external">wikiHow</a>。</li> +<li><p>使用美工刀在乙烯基贴纸上è£å‡ºå¿…è¦çš„å”。</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_abs_pieces.png" width="350" alt="BS 件"/><br /> <strong>图 2.</strong> 光滑é¢ä¸Šè´´å¥½ä¹™çƒ¯åŸºè´´çº¸çš„ ABS 组件(盒内部)</p></li> </ol> -<h3 id="step_2_attach_servo">第 2 æ¥ï¼šå›ºå®šä¼ºæœå™¨</h3> +<h3 id="step_2_prepare_phone_mount_and_attach_servo_mount">第 2 æ¥ï¼šå‡†å¤‡æ‰‹æœºåº•åº§å¹¶å›ºå®šä¼ºæœå™¨åº•åº§</h3> -<p>è¦å›ºå®šä¼ºæœå™¨ï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ“作:</p> +<p>è¦å‡†å¤‡æ‰‹æœºåº•åº§ä»¥å›ºå®šåˆ°ä¼ºæœå™¨ä¸Šï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ“作:</p> <ol> -<li><p>在手机夹上攻出 3 个 ¼" - 20 螺纹å”,并在手机夹背é¢åˆ¶ä½œåŸ‹å¤´å”: -<table class="columns"> - <tbody><tr> - <td><img src="/compatibility/cts/images/sensor_fusion_assembly_phone_fixture_holes1.png" width="250" alt="手机夹螺纹å”"/></td> - <td><img src="/compatibility/cts/images/sensor_fusion_assembly_phone_fixture_holes2.png" width="250" alt="手机夹埋头å”"/></td> - </tr> -</tbody></table> -<strong>图 3.</strong> 显示螺纹å”和埋头å”的手机夹</p></li> -<li><p>在伺æœå™¨é™„带的较大轴上,用 43 å·é’»å¤´ï¼ˆ2.26 毫米)从两侧最é 边的å”ä¸åˆ†åˆ«é’»å‡ºä¸€ä¸ªå®šä½å”,以便用 4-40 螺钉进行固定:</p> +<li><p>在手机夹上攻出 16 个 ¼" - 20 螺纹å”,并在手机夹背é¢æ‰“出锥å£å”。</p> + +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_phone_fixture_holes.png" width="350" alt="手机夹上的å”"/><br /> +<strong>图 3.</strong> 带螺纹å”和锥å£å”的手机夹</p></li> +<li><p>在伺æœå™¨é™„带的较大轴上,用 43 å·é’»å¤´ï¼ˆ2.26 毫米)从两侧最é 边的å”ä¸åˆ†åˆ«é’»å‡ºä¸€ä¸ªå®šä½å”,使 4-40 螺钉能够从å”ä¸ç©¿è¿‡ï¼š</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_servo_shaft.png" width="350" alt="伺æœå™¨è½´"/><br /> <strong>图 4.</strong> 两端带有定ä½å”的伺æœå™¨è½´</p></li> -<li><p>用 4-40 平头螺钉将轴紧固到手机夹æ£é¢ï¼š</p> +<li><p>从手机夹æ£é¢æ’入并拧紧 4-40 平头螺钉(如图 5 所示),然åŽæ‹§ç´§è½´ï¼ˆå¦‚图 6 所示)。</p> -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_shaft_screws.png" width="350" alt="轴和螺钉"/><br /> -<strong>图 5.</strong> 显示轴和螺钉的手机夹æ£é¢</p> +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_screws.png" width="350" alt="轴和螺钉"/><br /> +<strong>图 5.</strong> 4-40 平头螺钉</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_shaft.png" width="350" alt="è½´"/><br /> <strong>图 6.</strong> 手机夹背é¢çš„轴(已用从æ£é¢æ‹§å…¥çš„螺钉紧固)</p></li> </ol> -<h3 id="step_3_attach_clamp_rails">第 3 æ¥ï¼šå›ºå®šå¤¹é’³å’Œå¯¼è½¨</h3> +<h3 id="step_3_attach_phone_clamps">第 3 æ¥ï¼šå›ºå®šæ‰‹æœºå¤¹</h3> -<p>è¦å›ºå®šå¤¹é’³å’Œå¯¼è½¨ï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ“作:</p> +<p>è¦å›ºå®šæ‰‹æœºå¤¹ï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ“作:</p> <ol> -<li><p>将尼龙手拧螺钉和导线固定在é“制夹钳上,并涂上橡胶粘åˆå‰‚:</p> +<li><p>将尼龙手拧螺钉和钢ä¸å¼¹ç°§å›ºå®šåœ¨é“制夹钳上,并涂上橡胶粘åˆå‰‚。</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_clamp.png" width="350" alt="涂有橡胶粘åˆå‰‚的夹钳"/><br /> -<strong>图 7.</strong> 涂上橡胶粘åˆå‰‚并固定好手拧螺钉和导线的夹钳</p></li> -<li><p>将手机夹钳上的手拧螺钉拧入到手机夹的螺纹å”ä¸ã€‚</p> +<strong>图 7.</strong> 涂上橡胶粘åˆå‰‚并固定好手拧螺钉和钢ä¸å¼¹ç°§çš„夹钳</p></li> +<li><p>将手机夹钳上的手拧螺钉拧入到手机夹的螺纹å”ä¸ï¼ˆå¦‚图 8 所示)。您å¯ä»¥æ ¹æ®æ‰‹æœºå¤§å°è°ƒæ•´æ‰‹æœºåº•åº§çš„ä½ç½®ï¼ˆå¦‚图 9 所示)。</p> <ul> -<li><p>CAD 图纸:</p> +<li><p>机械图纸:</p> -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_clamp_attachment_cad_drawing.png" width="450" alt="关于固定夹钳的 CAD 图纸"/><br /> -<strong>图 8.</strong> 夹钳固定在手机夹上的 CAD 图纸</p></li> -<li><p>夹钳固定在手机夹上的实际效果:</p> +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_clamp_attachment_drawing.png" width="600" alt="关于固定夹钳的 CAD 图纸" class="screenshot"/><br /> +<strong>图 8.</strong> 夹钳固定在手机夹上的机械图纸</p></li> +<li><p>手机底座固定在手机夹上的效果:</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_assembled_fixture.png" width="350" alt="组装好的手机夹"/><br /> <strong>图 9.</strong> 组装好的手机夹</p></li> </ul></li> -<li><p>在盒å顶部和底部安装导轨(æœå‘å‰æ–¹ï¼‰ã€‚下图显示的是将 6-32 螺钉固定在预攻螺纹å”ä¸çš„效果,但如果需è¦ï¼Œæ‚¨ä¹Ÿå¯ä»¥ä½¿ç”¨è‡ªæ”»èžºé’‰ã€‚</p> +</ol> + +<h3 id="step_4_assemble_sliding_door_rail">第 4 æ¥ï¼šç»„装滑动门导轨</h3> + +<ol> +<li><p>在盒å顶部和底部安装滑动æ¿å¯¼è½¨ï¼ˆæœå‘å‰æ–¹ï¼‰ã€‚图 10 显示的是将 6-32 螺钉固定在预攻螺纹å”ä¸çš„效果。或者,您也å¯ä»¥ä½¿ç”¨è‡ªæ”»èžºé’‰ã€‚</p> -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_fixed_rail.png" width="350" alt="安装好的导轨"/><br /> -<strong>图 10.</strong> 安装在盒å顶部和底部的导轨</p></li> +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_fixed_rail.png" width="450" alt="安装好的导轨"/><br /> +<strong>图 10.</strong> 安装在盒å顶部和底部的滑动æ¿å¯¼è½¨</p></li> </ol> -<h3 id="step_4_attach_lighting">第 4 æ¥ï¼šå›ºå®šç¯å…·</h3> +<h3 id="step_5_attach_lighting">第 5 æ¥ï¼šå›ºå®šç¯å…·</h3> <p>è¦å›ºå®šç¯æž¶å’Œæ¼«å°„膜,请执行以下æ“作:</p> <ol> -<li><p>将两个手柄件å 放在一起,然åŽä½¿ç”¨ 6-32 螺钉(或自攻螺钉)连接起æ¥ï¼š</p> +<li><p>将两个手柄件å 放在一起,然åŽä½¿ç”¨ 6-32 螺钉(或自攻螺钉)将其组装起æ¥ã€‚</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_handle_pieces.png" width="450" alt="手柄件和组装"/><br /> <strong>图 11.</strong> ä¼ æ„Ÿå™¨èžåˆç›’手柄件åŠç»„装</p></li> -<li><p>准备 4 组 4-40 螺钉和螺æ¯ï¼Œå°†ç¯å…·å¥—件上的安装架固定在盒å£ä¸Šï¼š</p> +<li><p>准备 4 组 4-40 螺钉ã€èžºæ¯å’Œç›–形螺æ¯ï¼Œå°†ç¯å…·å¥—件上的安装架固定在盒å£ä¸Šã€‚</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_interior_wall_screws.png" width="350" alt="内å£ä¸Šçš„螺钉和支架"/><br /> -<strong>图 12.</strong> 盒内å£ä¸Šçš„螺钉和ç¯æž¶<br /> +<strong>图 12. </strong>盒内å£ä¸Šçš„ 4-40 螺钉和ç¯æž¶<br /> <img src="/compatibility/cts/images/sensor_fusion_assembly_exterior_bolts.png" width="350" alt="è£…æœ‰èžºæ “çš„å¤–éƒ¨"/><br /> -<strong>图 13.</strong> 从盒外部拧入螺å”çš„èžºæ “</p></li> -<li><p>å°†ç¯å…·å¡å…¥æ”¯æž¶ï¼ˆå¯èƒ½ä¼šæœ‰ç‚¹ç´§ï¼‰ï¼š</p> - -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_interior_wall_lights.png" width="450" alt="内å£ä¸Šçš„ç¯å…·"/><br /> -<strong>图 14.</strong> 使用支架固定到内å£çš„ç¯å…·</p></li> -<li><p>å°†ç¯å…‰æ¼«å°„膜è£æˆåˆé€‚的尺寸,以便将ç¯æ£åŒ…裹起æ¥ï¼š</p> +<strong>图 13.</strong> 从盒外部拧入螺å”çš„èžºæ “å’Œç›–å½¢èžºæ “</p></li> +<li><p>å°†ç¯å…‰æ¼«å°„膜è£æˆåˆé€‚的尺寸,以便将ç¯æ£åŒ…裹起æ¥ã€‚</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_light_strips_diffusers.png" width="350" alt="ç¯æ£å’Œç¯å…‰æ¼«å°„膜"/><br /> -<strong>图 15.</strong> ç¯æ£å’Œç¯å…‰æ¼«å°„膜</p></li> -<li><p>å°†ç¯å…‰æ¼«å°„膜裹在ç¯æ£ä¸Šï¼Œç„¶åŽåœ¨èƒŒé¢ç”¨èƒ¶å¸¦ç²˜å¥½ï¼š</p> +<strong>图 14.</strong> ç¯æ£å’Œç¯å…‰æ¼«å°„膜</p></li> +<li><p>å°†ç¯å…‰æ¼«å°„膜裹在ç¯æ£ä¸Šï¼Œç„¶åŽåœ¨èƒŒé¢ç”¨èƒ¶å¸¦ç²˜å¥½ã€‚</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_strips_taped_back.png" width="350" alt="从背é¢ç”¨èƒ¶å¸¦ç²˜å¥½çš„ç¯æ£å’Œæ¼«å°„膜"/><br /> -<strong>图 16.</strong> 从背é¢ç”¨èƒ¶å¸¦ç²˜å¥½çš„ç¯æ£å’Œç¯å…‰æ¼«å°„膜</p></li> +<strong>图 15.</strong> 从背é¢ç”¨èƒ¶å¸¦ç²˜å¥½çš„ç¯æ£å’Œç¯å…‰æ¼«å°„膜</p></li> +<li><p>å°†ç¯å…·å¡å…¥æ”¯æž¶ï¼ˆå¯èƒ½ä¼šæœ‰ç‚¹ç´§ï¼‰ã€‚</p> + +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_interior_wall_lights.png" width="450" alt="内å£ä¸Šçš„ç¯å…·"/><br /> +<strong>图 16.</strong> 未安装在支架ä¸çš„ç¯å…·ï¼ˆå·¦ï¼‰ã€‚安装在支架ä¸çš„ç¯å…·ï¼ˆå³ï¼‰ã€‚</p></li> </ol> -<h3 id="step_5_attach_phone_fixture_to_servo_plate">第 5 æ¥ï¼šå°†æ‰‹æœºå¤¹å›ºå®šåœ¨ä¼ºæœå™¨æ¿ä¸Š</h3> +<h3 id="step_6_attach_phone_fixture_to_servo_plate">第 6 æ¥ï¼šå°†æ‰‹æœºå¤¹å›ºå®šåœ¨ä¼ºæœå™¨æ¿ä¸Š</h3> <p>è¦å°†æ‰‹æœºå¤¹å›ºå®šåœ¨ä¼ºæœå™¨æ¿ä¸Šï¼Œè¯·æ‰§è¡Œä»¥ä¸‹æ“作:</p> <ol> -<li><p>准备 4 个 6-32 螺钉和一个伺æœå™¨æ¿ï¼Œä»¥ä¾¿å°†ä¼ºæœå™¨å®‰è£…到盒å£ä¸Šã€‚从内部将螺钉拧入到盒å£å¤–部的伺æœå™¨æ¿ä¸Šã€‚</p> +<li><p>准备 4 个 6-32 螺钉和一个伺æœå™¨æ¿ï¼Œä»¥ä¾¿å°†ä¼ºæœå™¨å®‰è£…到盒å£ä¸Šã€‚将伺æœå™¨å›ºå®šåœ¨å†…å£ä¸Šï¼Œç„¶åŽä»Žå†…测将螺钉æ’å…¥ä½äºŽå¤–å£ä¸Šçš„伺æœå™¨æ¿ä¸ã€‚</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_servo_servo_plate.png" width="450" alt="伺æœå™¨å’Œä¼ºæœå™¨æ¿"/><br /> <strong>图 17.</strong> 使用 6-32 螺钉固定的伺æœå™¨å’Œä¼ºæœå™¨æ¿</p></li> -<li><p>使用尼龙é”紧螺æ¯å°†æ‰‹æœºå¤¹å›ºå®šåˆ°ä¼ºæœå™¨ä¸Šï¼ˆå°†è½´çš„ä¸å¿ƒæŽ¨å…¥åˆ°ä¼ºæœå™¨çš„旋转ä¸å¿ƒï¼‰ï¼š</p> +<li><p>使用尼龙é”紧螺æ¯å°†æ‰‹æœºå¤¹å›ºå®šåˆ°ä¼ºæœå™¨ä¸Šï¼ˆå°†è½´çš„ä¸å¿ƒæŽ¨å…¥åˆ°ä¼ºæœå™¨çš„旋转ä¸å¿ƒï¼‰ã€‚</p> -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_phone_fixture.png" width="450" alt="伺æœå™¨ä¸Šçš„手机夹"/><br /> -<strong>图 18.</strong> 伺æœå™¨ä¸Šçš„手机夹</p></li> -<li><p>用伺æœå™¨èžºé’‰å°†æ‰‹æœºå¤¹å›ºå®šåˆ°ä¼ºæœå™¨ä¸Šï¼š</p> +<p><img src="/compatibility/cts/images/sensor_fusion_assembly_phone_mount_servo.png" width="450" alt="伺æœå™¨ä¸Šçš„手机夹"/><br /> +<strong>图 18.</strong> 使用尼龙é”紧螺æ¯å›ºå®šåœ¨ä¼ºæœå™¨è½´ä¸Šçš„手机底座</p></li> +<li><p>用伺æœå™¨èžºé’‰å°†æ‰‹æœºå¤¹å›ºå®šåˆ°ä¼ºæœå™¨ä¸Šã€‚</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_servo_screw.png" width="350" alt="伺æœå™¨ä¸Šçš„手机夹(带有螺钉)"/><br /> <strong>图 19.</strong> 用伺æœå™¨èžºé’‰å°†æ‰‹æœºå¤¹å›ºå®šåˆ°ä¼ºæœå™¨ä¸Š</p></li> </ol> -<h3 id="step_6_final_assembly">第 6 æ¥ï¼šæœ€ç»ˆç»„装</h3> +<h3 id="step_7_final_assembly">第 7 æ¥ï¼šæœ€ç»ˆç»„装</h3> -<p>è¦å®Œæˆä¼ 感器èžåˆç›’的最终组装,请执行以下æ“作:</p> +<p>è¦å®Œæˆä¼ 感器èžåˆç›’的组装,请执行以下æ“作:</p> <ol> -<li><p>从外侧用 4-40 螺钉将伺æœå™¨æŽ§åˆ¶ç®±å›ºå®šåœ¨ä¼ºæœå™¨å·¦ä¾§ï¼Œå¹¶ç”¨èžºæ¯ä»Žå†…部紧固:</p> +<li><p>从外侧用 4-40 螺钉将伺æœå™¨æŽ§åˆ¶ç®±å›ºå®šåœ¨ä¼ºæœå™¨å·¦ä¾§ï¼Œå¹¶ç”¨èžºæ¯ä»Žå†…部紧固。</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_servo_on_wall.png" width="450" alt="ç›’å£ä¸Šçš„伺æœå™¨æŽ§åˆ¶ç®±"/><br /> <strong>图 20.</strong> 将伺æœå™¨æŽ§åˆ¶ç®±å›ºå®šåˆ°ç›’å£ä¸Š</p></li> -<li><p>用胶带将盒å粘在一起,然åŽç”¨èžºé’‰å°†å„部件固定到一起(您å¯èƒ½éœ€è¦åœ¨æŸäº›éƒ¨ä»¶ä¸Šé¢„先钻一些å”)。</p> +<li><p>用胶带将盒å粘在一起,然åŽç”¨èžºé’‰å°†å„部件固定到一起(您å¯èƒ½éœ€è¦åœ¨æŸäº›éƒ¨ä»¶ä¸Šé¢„先钻å”)。</p> <ul> -<li><p>CAD 图纸:</p> - -<p><img src="/compatibility/cts/images/sensor_fusion_assembly_complete_box_drawing.png" width="450" alt="完整盒åçš„ CAD 图纸"/><br /> -<strong>图 21.</strong> å®Œæ•´ä¼ æ„Ÿå™¨ç›’çš„ CAD 图纸</p></li> -<li><p>å®žé™…çš„ä¼ æ„Ÿå™¨èžåˆç›’:</p> +<li><p>ç»„è£…ä¼ æ„Ÿå™¨èžåˆç›’:</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_taped_box.png" width="450" alt="用胶带粘好的盒å"/><br /> -<strong>图 22.</strong> 用胶带粘好的盒å(带有电机组件和伺æœå™¨æŽ§åˆ¶ç®±ï¼‰å’Œèžºé’‰ç»†éƒ¨è§†å›¾</p></li> +<strong>图 21.</strong> 用胶带粘好的盒å(带有电机组件和伺æœå™¨æŽ§åˆ¶ç®±ï¼‰å’Œèžºé’‰ç»†éƒ¨è§†å›¾</p></li> </ul></li> -<li><p>在 A3 纸(或 11 x 17 英寸的纸)上打å°ä¸€ä»½å½©è‰²çš„æ£‹ç›˜æ ¼ï¼ˆåŒ…å«åœ¨ <a href="/compatibility/cts/sensor_fusion_1.4.zip">Sensor Fusion -Box zip 文件</a>ä¸ï¼‰ï¼Œå¹¶ç”¨èƒ¶å¸¦ç²˜åˆ°æ‰‹æœºå¤¹å¯¹é¢çš„ç›’å£ä¸Šã€‚</p> +<li><p>在 A3 纸(或 11 x 17 英寸的纸)上打å°ä¸€ä»½å½©è‰²çš„æ£‹ç›˜æ ¼ï¼ˆåŒ…å«åœ¨ <a href="/compatibility/cts/sensor_fusion_1.5.zip">Sensor Fusion Box zip 文件</a>ä¸ï¼‰ï¼Œå¹¶ç”¨èƒ¶å¸¦ç²˜åˆ°æ‰‹æœºå¤¹å¯¹é¢çš„ç›’å£ä¸Šã€‚</p> -<p>放置在手机夹上时,请确ä¿æ£‹ç›˜æ ¼ä¸å¿ƒçš„红点æ£å¯¹ç€æ‘„åƒå¤´ï¼ˆå¦‚下所示):</p> +<p>放置在手机夹上时,请确ä¿æ£‹ç›˜æ ¼ä¸å¿ƒçš„红点æ£å¯¹ç€æ‘„åƒå¤´ï¼ˆå¦‚下所示)。</p> <p><img src="/compatibility/cts/images/sensor_fusion_assembly_checkerboard.png" width="350" alt="æ£‹ç›˜æ ¼"/><br /> -<strong>图 23.</strong> 打å°å‡ºæ£‹ç›˜æ ¼å¹¶ç”¨èƒ¶å¸¦ç²˜åˆ°æ‰‹æœºå¤¹å¯¹é¢çš„ç›’å£ä¸Š</p></li> +<strong>图 22.</strong> 打å°å‡ºæ£‹ç›˜æ ¼å¹¶ç”¨èƒ¶å¸¦ç²˜åˆ°æ‰‹æœºå¤¹å¯¹é¢çš„ç›’å£ä¸Š</p></li> </ol> </body></html>
\ No newline at end of file diff --git a/zh-cn/compatibility/cts/sensor-fusion-quick-start.html b/zh-cn/compatibility/cts/sensor-fusion-quick-start.html index 791f6bcf..98efb1d7 100644 --- a/zh-cn/compatibility/cts/sensor-fusion-quick-start.html +++ b/zh-cn/compatibility/cts/sensor-fusion-quick-start.html @@ -92,7 +92,7 @@ </tr> </tbody></table> <b>图 7.</b> 将手机放在手机夹上并夹紧 - <p>倒置的手拧螺钉å¯æ供背部支撑,而å¦ä¸€ä¸ªèžºé’‰å¯é€šè¿‡å‘å³æ—‹è½¬æ¥æ‹§ç´§æ‰‹æŸ„。如需更多帮助,请å‚阅有关装载手机的视频(包å«åœ¨<a href="/compatibility/cts/sensor_fusion_1.4.zip">ä¼ æ„Ÿå™¨èžåˆç›’ zip 文件</a>ä¸ï¼‰ã€‚</p> + <p>倒置的手拧螺钉å¯æ供背部支撑,而å¦ä¸€ä¸ªèžºé’‰å¯é€šè¿‡å‘å³æ—‹è½¬æ¥æ‹§ç´§æ‰‹æŸ„。如需更多帮助,请å‚阅有关装载手机的视频(包å«åœ¨<a href="/compatibility/cts/sensor_fusion_1.5.zip">ä¼ æ„Ÿå™¨èžåˆç›’ zip 文件</a>ä¸ï¼‰ã€‚</p> </li> <li>使用æŸçº¿å¸¦å°†æ‰‹æœº USB 线固定在手机夹æ¿ä¸Šï¼Œå¹¶ç©¿è¿‡å‡ºå£å”引出盒外。将这æ¡çº¿çš„å¦ä¸€ç«¯æ’入到è¿è¡Œæµ‹è¯•çš„主机。 <figure id="sensor-fusion-zip-ties"> @@ -152,7 +152,7 @@ </li> </ol> <p> -如需更多帮助,请å‚é˜…æœ‰å…³ä¼ æ„Ÿå™¨èžåˆç›’è¿è¡Œçš„视频(包å«åœ¨<a href="/compatibility/cts/sensor_fusion_1.4.zip">ä¼ æ„Ÿå™¨èžåˆç›’ zip 文件</a>ä¸ï¼‰ã€‚ +如需更多帮助,请å‚é˜…æœ‰å…³ä¼ æ„Ÿå™¨èžåˆç›’è¿è¡Œçš„视频(包å«åœ¨<a href="/compatibility/cts/sensor_fusion_1.5.zip">ä¼ æ„Ÿå™¨èžåˆç›’ zip 文件</a>ä¸ï¼‰ã€‚ </p> </body></html>
\ No newline at end of file diff --git a/zh-cn/compatibility/cts/setup.html b/zh-cn/compatibility/cts/setup.html index 2339eff3..5afd5256 100644 --- a/zh-cn/compatibility/cts/setup.html +++ b/zh-cn/compatibility/cts/setup.html @@ -43,7 +43,7 @@ <p>å¦‚æžœæ‚¨æ— æ³•è®¿é—®åŽŸç”Ÿ IPv6 网络ã€IPv6 è¿è¥å•†ç½‘络或 IPv6 VPNï¼Œä»¥è‡´æ— æ³•é€šè¿‡åŸºäºŽ IPv6 的一些测试,则å¯ä»¥æ”¹ä¸ºä½¿ç”¨ WLAN 接入点和 IPv6 隧é“。请å‚阅维基百科 <a href="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">IPv6 隧é“代ç†åˆ—表</a>。</p> <h3 id="rtt">Wi-Fi RTT(往返时间)</h3> -<p>Android 9 针对 <a ref="/devices/tech/connect/wifi-rtt">Wi-Fi RTT</a> åŠŸèƒ½å¢žåŠ äº†ä¸€ä¸ª APIï¼Œæ¤ API å…许设备测é‡è‡ªèº«ä¸ŽæŽ¥å…¥ç‚¹ä¹‹é—´çš„è·ç¦»ï¼ˆè¯¯å·®å¹…度在 1 到 2 米内),从而显著æ高室内ä½ç½®ä¿¡æ¯ç²¾ç¡®åº¦ã€‚ä»¥ä¸‹æ˜¯æ”¯æŒ Wi-Fi RTT 的两款推è设备:<a href="https://store.google.com/product/google_wifi">Google Wifi</a> å’Œ <a href="https://fit-iot.com/web/products/fitlet2/">Compulab çš„ Filet2 接入点</a>(使用 5GHz 频段,带宽设为 40MHz)。</p> +<p>Android 9 针对 <a ref="/devices/tech/connect/wifi-rtt">WLAN RTT</a> åŠŸèƒ½å¢žåŠ äº†ä¸€ä¸ª APIï¼Œæ¤ API å…许设备测é‡è‡ªèº«ä¸ŽæŽ¥å…¥ç‚¹ä¹‹é—´çš„è·ç¦»ï¼ˆè¯¯å·®å¹…度在 1 到 2 米内),从而显著æ高室内ä½ç½®ä¿¡æ¯ç²¾ç¡®åº¦ã€‚ä»¥ä¸‹æ˜¯æ”¯æŒ WLAN RTT 的两款推è设备:<a href="https://store.google.com/product/google_wifi">Google Wifi</a> å’Œ <a href="https://fit-iot.com/web/products/fitlet2/">Compulab çš„ Filet2 接入点</a>(使用 5GHz 频段,带宽设为 40MHz)。</p> <p>接入点应接入电æºï¼Œä½†æ— éœ€è¿žæŽ¥åˆ°ä»»ä½•ç½‘ç»œã€‚æŽ¥å…¥ç‚¹æ— éœ€ç´§æŒ¨ç€æµ‹è¯•è®¾å¤‡ï¼Œä½†å»ºè®®å°†å…¶æ”¾ç½®åœ¨è·ç¦» DUT 40 英尺的ä½ç½®ã€‚通常情况下,一个接入点就足够了。</p> @@ -165,7 +165,7 @@ ro.product.first_api_level=21 <p class="warning"><strong>è¦å‘Šï¼š</strong>这将清空设备ä¸çš„所有用户数æ®ã€‚</p> </li><li>将设备的è¯è¨€è®¾ç½®ä¸ºè‹±è¯ï¼ˆ<strong>美国</strong>):<strong>设置 > è¯è¨€å’Œè¾“入法 > è¯è¨€</strong> </li><li>如果设备具有 GPS 或 WLAN/移动网络功能,则打开ä½ç½®ä¿¡æ¯è®¾ç½®ï¼š<strong>设置 > ä½ç½®ä¿¡æ¯ > å¼€å¯</strong> - </li><li>连接到满足以下è¦æ±‚çš„ WLAN ç½‘ç»œï¼šæ”¯æŒ IPv6,å¯ä»¥å°†è¢«æµ‹è®¾å¤‡ (DUT) 视为隔离客户端<em></em>(请å‚阅上文的<a href="#physical_environment">物ç†çŽ¯å¢ƒ</a>部分),并å¯è¿žæŽ¥åˆ°äº’è”网。具体æ“作方法为:<strong>设置 > WLAN</strong> + </li><li>连接到满足以下è¦æ±‚çš„ WLAN ç½‘ç»œï¼šæ”¯æŒ IPv6,å¯ä»¥å°†è¢«æµ‹è®¾å¤‡ (DUT) 视为隔离客户端(请å‚阅上文的<a href="#physical_environment">物ç†çŽ¯å¢ƒ</a>部分),并å¯è¿žæŽ¥åˆ°äº’è”网。具体æ“作方法为:<strong>设置 > WLAN</strong><em></em> </li><li>ç¡®ä¿è®¾å¤‡ä¸Šæœªè®¾ç½®é”定图案或密ç :<strong>设置 > 安全 > å±å¹•é”定 > æ— </strong> </li><li>在设备上å¯ç”¨ <strong>USB 调试</strong>:<strong>设置 > å¼€å‘者选项 > USB 调试</strong>。 <p class="note"><strong>注æ„:</strong>在 Android 4.2 åŠæ›´é«˜ç‰ˆæœ¬ä¸ï¼Œé»˜è®¤æƒ…况下会éšè—<strong>å¼€å‘者选项</strong>。è¦æ˜¾ç¤ºè¿™äº›é€‰é¡¹ï¼Œè¯·ä¾æ¬¡è½¬åˆ°<strong>设置 > 关于手机</strong>,然åŽç‚¹æŒ‰<strong>版本å·</strong>七次。返回上一å±å¹•ä»¥æŸ¥æ‰¾<strong>å¼€å‘者选项</strong>。è¦æŸ¥çœ‹å…¶ä»–详细信æ¯ï¼Œè¯·å‚阅<a href="http://developer.android.com/studio/run/device.html#developer-device-options">å¯ç”¨è®¾å¤‡ä¸Šçš„å¼€å‘者选项</a>。</p> diff --git a/zh-cn/compatibility/cts/usb-audio.html b/zh-cn/compatibility/cts/usb-audio.html index 08e46950..9cbb72d8 100644 --- a/zh-cn/compatibility/cts/usb-audio.html +++ b/zh-cn/compatibility/cts/usb-audio.html @@ -54,21 +54,21 @@ <p>请注æ„ï¼Œåˆ¶é€ å•†å·²åœæ¢é”€å”®è¿™ä¸¤ä¸ªå¤–设,在未æ¥ç‰ˆæœ¬çš„ CTS 验è¯ç¨‹åºä¸å°†å¼ƒç”¨å®ƒä»¬ã€‚</p> <ul> - <li><a href="https://www.amazon.com/PreSonus-AudioBox-USB-96-%20Interface/dp/B06ZZCR6P4/ref=sr_1_3?ie=UTF8&qid=1537371840&sr=8-3&keywords%20=Presonus+AudioBox+USB+96&dpID=41xVV2y1j%252BL&preST=_SX300_QL70_&dpSrc=srch" class="external"> - Presonus AudioBox USB 96</a> - </li> - - <li><a href="https://www.amazon.com/Focusrite-Scarlett-Audio-%20Interface-Tools/dp/B01E6T50LY/ref=sr_1_3?ie=UTF8&qid=1537371877&sr=%208-3&keywords=Focusrite+Scarlett+2i4&dpID=41riKC0pb9L&preST=%20_SX300_QL70_&dpSrc=srch" class="external"> + <li><a href="https://focusrite.com/usb-audio-interface/scarlett/scarlett-2i4" class="external"> Focusrite Scarlett 2i4</a> </li> - <li><a href="https://www.amazon.com/Behringer-UMC204HD-BEHRINGER-U-%20PHORIA/dp/B00QHURLCW/ref=sr_1_3?ie=UTF8&qid=1537371923&sr=8-3&keywords%20=Behringer+UMC204HD&dpID=41vDeQgewhL&preST=_SY300_QL70_&dpSrc=srch" class="external"> + <li><a href="http://www.musictribe.com/Categories/Behringer/Computer-Audio/Interfaces/UMC204HD/p/P0BK0" class="external"> Behringer UMC204HD</a> </li> - <li><a href="https://www.amazon.com/Roland-USB-Audio-Interface-%20RUBIX22/dp/B01N14VOZM/ref=sr_1_1?ie=UTF8&qid=1537371963&sr=8-1&%20keywords=roland+rubix+24&dpID=41bDXqlk1rL&preST=_%20SX300_QL70_&dpSrc=srch" class="external"> + <li><a href="https://www.roland.com/us/products/rubix24/" class="external"> Roland Rubix 24</a> </li> + + <li><a href="https://www.presonus.com/products/AudioBox-USB-96" class="external"> + PreSonus AudioBox 96</a> + </li> </ul> <table> @@ -88,7 +88,8 @@ <li><span style="color:#202124;">æ”¯æŒ <a href="/devices/accessories/headset/usb-headset-spec">Android USB 耳机é…件规范</a>çš„ USB 耳机外设<span style="color:#202124;">ã€‚è¿™ç±»è€³æœºå¤–è®¾é€šå¸¸å¸¦æœ‰åˆ¶é€ å•†æ ‡è®°çš„â€œä¸“ä¸º Android è®¾å¤‡æ‰“é€ â€(Made for Android) å—æ ·ã€‚</span></span> </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&acc=usb-c-digital-to-3-5mm-htc-u11" class="external">HTC æ•°å— USB-C 型转 3.5 毫米音频耳机æ’å”适é…器</a>)。<br />例如,已知的兼容模拟耳机外设包括 <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 端å£ã€‚ + <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&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> </li> </ul> diff --git a/zh-cn/compatibility/cts/verifier.html b/zh-cn/compatibility/cts/verifier.html index 08f07990..0b287100 100644 --- a/zh-cn/compatibility/cts/verifier.html +++ b/zh-cn/compatibility/cts/verifier.html @@ -57,14 +57,14 @@ adb install -r -g CtsVerifier.apk <img src="/compatibility/cts/images/cts-verifier-menu.png" alt="CTS 验è¯ç¨‹åºæµ‹è¯•èœå•" id="figure2"/> <figcaption><strong>图 2.</strong> CTS 验è¯ç¨‹åºæµ‹è¯•èœå•ã€‚</figcaption> -<p>æ¯é¡¹æµ‹è¯•å‡åŒ…å«ä¸€ç»„å…±é€šå…ƒç´ ï¼ˆä¿¡æ¯ã€é€šè¿‡ã€å¤±è´¥ï¼‰ï¼š</p> +<p>æ¯é¡¹æµ‹è¯•å‡åŒ…å«ä¸€ç»„å…±åŒå…ƒç´ (信æ¯ã€é€šè¿‡ã€å¤±è´¥ï¼‰ï¼š</p> <img src="/compatibility/cts/images/video-verifier.png" alt="æµå¼è§†é¢‘å“质验è¯ç¨‹åº" id="figure3"/> <figcaption><strong>图 3.</strong> æµ‹è¯•å…ƒç´ ã€‚</figcaption> <ul> <li><strong>ä¿¡æ¯</strong> (?)。点按å³å¯æ˜¾ç¤ºæµ‹è¯•è¯´æ˜Žã€‚首次打开测试时,系统也会自动显示æ¤æŒ‰é’®ã€‚</li> -<li><strong>通过</strong> (✓)。如果 DUT 符åˆâ€œä¿¡æ¯â€ä¸çš„说明规定的测试è¦æ±‚,请点按æ¤æŒ‰é’®ã€‚</li> -<li><strong>失败</strong> (!)。如果 DUT ä¸ç¬¦åˆâ€œä¿¡æ¯â€ä¸çš„说明规定的测试è¦æ±‚,请点按æ¤æŒ‰é’®ã€‚</li> +<li><strong>通过</strong> (✓)。如果 DUT 符åˆâ€œä¿¡æ¯â€ä¸è§„定的测试è¦æ±‚,请点按æ¤æŒ‰é’®ã€‚</li> +<li><strong>失败</strong> (!)。如果 DUT ä¸ç¬¦åˆâ€œä¿¡æ¯â€ä¸è§„定的测试è¦æ±‚,请点按æ¤æŒ‰é’®ã€‚</li> </ul> <aside class="note"><strong>注æ„</strong>:在æŸäº›æµ‹è¯•ä¸ï¼Œç³»ç»Ÿä¼šè‡ªåŠ¨ç¡®è®¤æµ‹è¯•ç»“果为通过/失败。</aside> @@ -124,8 +124,8 @@ Found Android device in accessory mode (18d1:2d01)... <li>在尺寸为 11†x 17â€æˆ– A3 çš„çº¸å¼ ä¸Šæ‰“å° <a href="/compatibility/calibration-pattern.pdf">calibration-pattern.pdf</a> ç›®æ ‡æ–‡ä»¶ã€‚</li> <li>将打å°å‡ºæ¥çš„图案贴在一个硬æ质底æ¿ä¸Šã€‚</li> <li>将相机设备和打å°å‡ºæ¥çš„图纸按如下ä½ç½®å’Œæ–¹å‘摆放:<br /> -<img src="/compatibility/cts/images/camera-printed-target.png" alt="相机打å°ç›®æ ‡" id="figure5"/> -<figcaption><strong>图 5.</strong> 相机打å°ç›®æ ‡</figcaption> +<img src="/compatibility/cts/images/camera-printed-target.png" alt="相机与打å°ç›®æ ‡" id="figure5"/> +<figcaption><strong>图 5.</strong> 相机与打å°ç›®æ ‡</figcaption> </li> </ol> </li> @@ -146,10 +146,10 @@ Found Android device in accessory mode (18d1:2d01)... <ul> <li>如果这两æ¡çº¿ä¸Žç›®æ ‡å›¾æ¡ˆä¸Šçš„垂直线是对é½çš„ï¼ˆè¯¯å·®æŽ§åˆ¶åœ¨å‡ ä¸ªåƒç´ 内),则针对选定分辨率报告的视野是准确的。 </li> -<li>如果没有对é½ï¼Œåˆ™æŠ¥å‘Šçš„视野将ä¸å‡†ç¡®ã€‚è¦è¿›è¡Œæ›´æ£ï¼Œè¯·è°ƒæ•´å±å¹•åº•éƒ¨çš„滑å—,直到å åŠ å±‚å°½å¯èƒ½ç´§å¯†åœ°ä¸Žç›®æ ‡å›¾æ¡ˆå¯¹é½ã€‚当å åŠ å±‚å’Œç›®æ ‡å›¾æ¡ˆå›¾ç‰‡å¯¹é½æ—¶ï¼Œæ‰€æ˜¾ç¤ºçš„视野将近似于æ£ç¡®çš„å€¼ã€‚æŠ¥å‘Šçš„è§†é‡Žåº”åœ¨æ ¡å‡†å€¼çš„ +/- 1 度范围内。</li> +<li>如果没有对é½ï¼Œåˆ™æ„味ç€æ‰€æŠ¥å‘Šçš„视野ä¸å‡†ç¡®ã€‚è¦è¿›è¡Œæ›´æ£ï¼Œè¯·è°ƒæ•´å±å¹•åº•éƒ¨çš„滑å—,直到å åŠ æ˜¾ç¤ºçš„åž‚ç›´çº¿å°½å¯èƒ½ä¸Žç›®æ ‡å›¾æ¡ˆå¯¹é½ã€‚当å åŠ æ˜¾ç¤ºçš„åž‚ç›´çº¿å’Œç›®æ ‡å›¾æ¡ˆå›¾ç‰‡å¯¹é½æ—¶ï¼Œæ‰€æ˜¾ç¤ºçš„视野将近似于æ£ç¡®çš„å€¼ã€‚æŠ¥å‘Šçš„è§†é‡Žä¸Žæ ¡å‡†å€¼çš„è¯¯å·®åº”åœ¨ +/- 1 度范围内。</li> </ul> </li> -<li>按åŽé€€æŒ‰é’®ï¼Œå¹¶ä¸º DUT 支æŒçš„所有图片分辨率é‡å¤è¿è¡Œæ ¡å‡†æµ‹è¯•ã€‚</li> +<li>按åŽé€€æŒ‰é’®ï¼Œä»¥åŒæ ·çš„æ–¹æ³•æ ¡å‡†æµ‹è¯• DUT 所支æŒçš„所有图片分辨率。</li> </ol> </li> </ol> @@ -163,12 +163,12 @@ Found Android device in accessory mode (18d1:2d01)... <figcaption><strong>图 6.</strong> CTS 验è¯ç¨‹åºä¿å˜å›¾æ ‡ã€‚</figcaption> <aside class="note"><strong>注æ„</strong>:Android 7.0 åŠæ›´é«˜ç‰ˆæœ¬ä¸åŒ…å«é¢„览功能。</aside> </li> -<li>ç‰å¾…弹出消æ¯æ˜¾ç¤ºå·²ä¿å˜æŠ¥å‘Šçš„路径(例如 <code>/sdcard/verifierReports/ctsVerifierReport-date-time.zip</code>),然åŽè®°å½•è¯¥è·¯å¾„。<br /> -<img src="images/path-saved-report.png" alt="CTS 验è¯ç¨‹åºä¿å˜æŠ¥å‘Šçš„路径" id="figure7"/> -<figcaption><strong>图 7.</strong> CTS 验è¯ç¨‹åºä¿å˜æŠ¥å‘Šçš„路径。</figcaption> +<li>ç‰å¾…弹出消æ¯æ˜¾ç¤ºæŠ¥å‘Šä¿å˜çš„路径(例如 <code>/sdcard/verifierReports/ctsVerifierReport-date-time.zip</code>),然åŽè®°å½•è¯¥è·¯å¾„。<br /> +<img src="images/path-saved-report.png" alt="CTS 验è¯ç¨‹åºæŠ¥å‘Šä¿å˜çš„路径" id="figure7"/> +<figcaption><strong>图 7.</strong> CTS 验è¯ç¨‹åºæŠ¥å‘Šä¿å˜çš„路径。</figcaption> </li> <li>å°† DUT 连接到 Linux 计算机。</li> -<li>通过在 Linux 计算机上安装的 Android SDK,在已连接的设备ä¸ä½¿ç”¨ <code>adb pull CTSVerifierReportPath</code> 下载报告。 +<li>通过在 Linux 计算机上安装的 Android SDK,使用 <code>adb pull CTSVerifierReportPath</code> 在已连接的设备ä¸ä¸‹è½½æŠ¥å‘Šã€‚ <ul> <li>对于 Android 7.x åŠæ›´é«˜ç‰ˆæœ¬ï¼Œè¯·ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤ä¸‹è½½æ‰€æœ‰æŠ¥å‘Šï¼š<pre class="devsite-terminal devsite-click-to-copy"> adb pull /sdcard/verifierReports diff --git a/zh-cn/compatibility/index.html b/zh-cn/compatibility/index.html index 468d6161..2a18f1d0 100644 --- a/zh-cn/compatibility/index.html +++ b/zh-cn/compatibility/index.html @@ -30,8 +30,8 @@ <ol> <li><p>查看<a href="/devices/architecture/">架构</a>ä¸çš„ Android å¹³å°å¼€å‘基本原则,尤其是 Android 8.0 ä¸å¼•å…¥çš„ <a href="/devices/architecture/hidl/">HIDL</a> æ ¼å¼ã€‚</p></li> -<li><p>ç¡®ä¿æ ¹æ® <a href="/compatibility/overview">Android 兼容性定义文档</a>(Android çš„æ ¸å¿ƒè§„èŒƒï¼‰çš„ç›¸å…³è¦æ±‚,设备属于<a href="/compatibility/cdd">兼容性</a>设备。</p></li> -<li><p>å‚阅<a href="/devices/tech/display/">显示</a>功能和<a href="/devices/tech/settings/settings-guidelines">设置</a>指å—,获å–用户界é¢æ–¹é¢çš„帮助。</p></li> +<li><p>ç¡®ä¿è®¾å¤‡ç¬¦åˆ <a href="/compatibility/cdd">Android 兼容性定义文档</a>(Android çš„æ ¸å¿ƒè§„èŒƒï¼‰çš„è¦æ±‚,å³è®¾å¤‡å±žäºŽ<a href="/compatibility/overview">兼容性</a>设备。</p></li> +<li><p>å‚阅<a href="/devices/tech/display/">显示</a>功能和<a href="/devices/tech/settings/settings-guidelines">设置</a>指å—,获å–ç•Œé¢æ–¹é¢çš„帮助。</p></li> <li><p>利用所有å¯ç”¨çš„<a href="/compatibility/tests">测试</a>调试和改进您的 Android 设备。</p></li> <li><p>在开å‘é¢å‘用户的应用时,请先熟悉一下<a href="https://developer.android.com/design/" class="external">应用设计</a>原则和 <a href="https://material.io/design/" class="external">Material Design</a> 技术。</p></li> </ol> diff --git a/zh-cn/compatibility/overview.html b/zh-cn/compatibility/overview.html index 5403ff4a..830466e9 100644 --- a/zh-cn/compatibility/overview.html +++ b/zh-cn/compatibility/overview.html @@ -75,10 +75,10 @@ </ul> <h2 id="android-compatibility-is-free-and-its-easy">Android 兼容性计划是å…费的,而且申请æ¥éª¤å¾ˆç®€å•</h2> -<p>è¦æ‰“é€ ä¸Ž Android 兼容的移动设备,请按以下三个æ¥éª¤è¿›è¡Œæ“作:</p> +<p>è¦æ‰“é€ ä¸Ž Android 兼容的移动设备,请按以下三个æ¥éª¤æ“作:</p> <ol> <li><em></em>èŽ·å– <a href="/setup/index.html">Android 软件æºä»£ç </a>。这是è¦ç§»æ¤åˆ°æ‚¨çš„硬件的 Android å¹³å°æºä»£ç 。</li> -<li><em></em>éµå¾ª Android 兼容性定义文档 (CDD)(<a href="/compatibility/android-cdd.pdf">PDF</a>ã€<a href="/compatibility/android-cdd.html">HTML</a>)。CDD 列出了对兼容的 Android 设备的软件和硬件è¦æ±‚。</li> +<li><em></em>éµå¾ª Android 兼容性定义文档 (CDD)(<a href="/compatibility/android-cdd.pdf">PDF</a>ã€<a href="/compatibility/android-cdd.html">HTML</a>)。CDD 列出了兼容的 Android 设备应éµå¾ªçš„软件和硬件è¦æ±‚。</li> <li><em></em>通过<a href="/compatibility/cts/">兼容性测试套件 (CTS)</a> 测试。在开å‘过程ä¸éšæ—¶å€ŸåŠ© CTS 评估兼容性。</li> </ol> <p>åœ¨ç¬¦åˆ CDD è¦æ±‚且通过 CTS 测试åŽï¼Œæ‚¨çš„设备å³æ˜¯ä¸Ž Android 兼容的设备,这æ„味ç€ç”Ÿæ€ç³»ç»Ÿä¸çš„ Android 应用在您的设备上è¿è¡Œæ—¶å¯æ供一致的体验。有关 Android 兼容性计划的详细信æ¯ï¼Œè¯·å‚阅<a href="overview.html">计划概述</a>。</p> diff --git a/zh-cn/compatibility/tests/development/jar.html b/zh-cn/compatibility/tests/development/jar.html new file mode 100644 index 00000000..0f63584a --- /dev/null +++ b/zh-cn/compatibility/tests/development/jar.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="jar_java_host_tests" class="page-title">JAR (Java) 主机测试</h1> + +<p>为了实现软件代ç 的完全覆盖率,应执行 JAR 主机测试。请按照相关说明<a href="https://developer.android.com/training/testing/unit-testing/local-unit-tests" class="external">构建本地å•å…ƒæµ‹è¯•</a>。è¦éªŒè¯æŸé¡¹ç‰¹å®šåŠŸèƒ½ï¼Œåªéœ€ç¼–写å°åž‹å•å…ƒæµ‹è¯•å³å¯ã€‚</p> + +<h2 id="example">示例</h2> + +<p>以下è“图文件å¯æ供符åˆæ‚¨éœ€æ±‚且å¯ä¾›æ¨¡ä»¿çš„ç®€å• Hello World JAR 主机测试示例: +<a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/jarhosttest/Android.bp">platform_testing/tests/example/jarhosttest/Android.bp</a></p> + +<p>该示例对应以下ä½ç½®çš„实际测试代ç : +<a href="https://android.googlesource.com/platform/platform_testing/+/master/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java">platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java</a></p> + +<p>为了方便起è§ï¼Œæˆ‘们在æ¤å¤„附上了该è“图文件的快照:</p> +<pre class="prettyprint"><code> java_test_host { + name: "HelloWorldHostTest", + + test_suites: ["general-tests"], + + srcs: ["test/**/*.java"], + + static_libs: [ + "junit", + "mockito", + ], +} +</code></pre> +<p>请注æ„,开头的 <code>java_host_test</code> 声明表示这是一项 JAR 主机测试。</p> + +<h2 id="settings">设置</h2> + +<p>下é¢å¯¹å„项设置进行了说明:</p> +<pre class="prettyprint"><code> name: "HelloWorldHostTest", +</code></pre> +<p>如果指定了 <code>java_test_host</code> 模å—类型(在å—的开头),则需è¦è¿›è¡Œ <code>name</code> 设置。这项设置å¯ä»¥ä¸ºæ‚¨çš„模å—命å,而且生æˆçš„ JAR 将与模å—命å相åŒï¼Œä¸è¿‡å…¶å称会带有 <code>.jar</code> åŽç¼€ã€‚例如,在本例ä¸ï¼Œç”Ÿæˆçš„测试 JAR 将命å为 <code>HelloWorldHostTest.jar</code>。æ¤å¤–,æ¤è®¾ç½®è¿˜å¯ä»¥ä¸ºæ‚¨çš„模å—定义 make ç›®æ ‡å称,以便您å¯ä»¥ä½¿ç”¨ <code>make [options] +<HelloWorldHostTest></code> æ¥ç¼–译测试模å—åŠå…¶æ‰€æœ‰ä¾èµ–项。</p> +<pre class="prettyprint"><code> test_suites: ["general-tests"], +</code></pre> +<p><code>test_suites</code> 设置å¯è®© Trade Federation 自动化测试框架轻æ¾å‘现测试。å¯åœ¨æ¤å¤„æ·»åŠ å…¶ä»–å¥—ä»¶ï¼ˆå¦‚ CTS),以便共享æ¤æµ‹è¯•ã€‚</p> +<pre class="prettyprint"><code> static_libs: [ + "junit", + ], +</code></pre> +<p><code>static_libs</code> 设置会指示编译系统将已命å模å—的内容åˆå¹¶åˆ°å½“å‰æ¨¡å—的已生æˆçš„ APK ä¸ã€‚è¿™æ„味ç€ï¼Œæ¯ä¸ªå·²å‘½å模å—éƒ½ä¼šç”Ÿæˆ <code>.jar</code> 文件,其内容将用于在编译期间解æžç±»è·¯å¾„引用,以åŠåˆå¹¶åˆ°ç”Ÿæˆçš„ apk ä¸ã€‚</p> + +</body></html>
\ No newline at end of file diff --git a/zh-cn/compatibility/vts/index.html b/zh-cn/compatibility/vts/index.html index d1b558b5..06e46c1d 100644 --- a/zh-cn/compatibility/vts/index.html +++ b/zh-cn/compatibility/vts/index.html @@ -42,7 +42,7 @@ Android 供应商测试套件 (VTS) æ供了大é‡ç”¨äºŽè¿›è¡Œ Android æµ‹è¯•çš <li><a href="/compatibility/vts/ui.html">ç•Œé¢</a>:一个统一的界é¢ï¼Œåˆ©ç”¨ Material Design 有效显示与测试结果ã€åˆ†æžå’Œè¦†ç›–率相关的信æ¯ã€‚</li> </ul> </li> - <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><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> <li><a href="/compatibility/vts/performance.html">binder å’Œ hwbinder 性能测试</a>:用于衡é‡åžåé‡å’Œå»¶è¿Ÿçš„工具。</li> </ul> diff --git a/zh-cn/compatibility/vts/performance.html b/zh-cn/compatibility/vts/performance.html index 0d036040..6ffab22a 100644 --- a/zh-cn/compatibility/vts/performance.html +++ b/zh-cn/compatibility/vts/performance.html @@ -289,8 +289,7 @@ BM_sendVec_binderize/8 69974 ns 32700 ns 21296 </dl> -<p class="note"><strong>注æ„</strong>:åŽå°è´Ÿè·å¯èƒ½ä¼šå½±å“延迟测试ä¸çš„åžåé‡ç»“果和 -<code>other_ms</code> 元组。åªè¦åŽå°è´Ÿè·çš„优先级低于 <code>fifo_ms</code>,就å¯èƒ½åªæœ‰ <code>RT-fifo</code> 会显示类似的结果。</p> +<p class="note"><strong>注æ„</strong>:åŽå°è´Ÿè·å¯èƒ½ä¼šå½±å“延迟测试ä¸çš„åžåé‡ç»“果和 <code>other_ms</code> 元组。åªè¦åŽå°è´Ÿè·çš„优先级低于 <code>RT-fifo</code>,就å¯èƒ½åªæœ‰ <code>fifo_ms</code> 会显示类似的结果。</p> <h4 id="pair-values">指定对值</h4> <p>æ¯ä¸ªå®¢æˆ·ç«¯è¿›ç¨‹éƒ½ä¼šä¸Žå…¶ä¸“用的æœåŠ¡å™¨è¿›ç¨‹é…对,且æ¯ä¸€å¯¹éƒ½å¯èƒ½ä¼šç‹¬ç«‹è°ƒåº¦åˆ°ä»»ä½• CPU。ä¸è¿‡ï¼Œåªè¦åŒæ¥æ ‡è®°æ˜¯ <code>honor</code>,事务期间应该就ä¸ä¼šå‡ºçŽ° CPU è¿ç§»çš„情况。</p> @@ -334,7 +333,7 @@ SCHED_OTHER 0</div> </pre> <ul> -<li><font style="color:orange">æœåŠ¡çº¿ç¨‹</font>按 <code>SCHED_OTHER</code> 优先级而创建,且与 <code>pid +<li><font style="color:orange">æœåŠ¡çº¿ç¨‹</font>按 <code>SCHED_OTHER</code> 优先级创建,且与 <code>pid 8674</code> 一起在 <code>CPU:1</code> ä¸è¿è¡Œã€‚</li> <li>éšåŽï¼Œç”± <code>fifo-caller</code> å¯åŠ¨<font style="color:blue">第一个事务</font>。为处ç†è¯¥äº‹åŠ¡ï¼Œhwbinder 会将æœåŠ¡å™¨ (<code>pid: 8674 tid: 8676</code>) 的优先级å‡çº§åˆ° 99,并使用瞬æ€è°ƒåº¦ç±»åˆ«ï¼ˆè¾“出为 <code>???</code>ï¼‰å¯¹å…¶è¿›è¡Œæ ‡è®°ã€‚æŽ¥ä¸‹æ¥ï¼Œè°ƒåº¦ç¨‹åºä¼šå°†æœåŠ¡å™¨è¿›ç¨‹ç½®äºŽ <code>CPU:0</code> ä¸ï¼Œä»¥è¿è¡Œè¯¥è¿›ç¨‹å¹¶å°†å®ƒä¸Žå…¶å®¢æˆ·ç«¯ä½¿ç”¨çš„åŒä¸€ CPU 进行åŒæ¥ã€‚</li> <li><font style="color:green">第二个事务</font>调用程åºçš„优先级为 <code>SCHED_OTHER</code>。æœåŠ¡å™¨è‡ªè¡Œé™çº§å¹¶ä¸ºä¼˜å…ˆçº§ä¸º <code>SCHED_OTHER</code> 的调用程åºæä¾›æœåŠ¡ã€‚</li> diff --git a/zh-cn/compatibility/vts/shell-commands.html b/zh-cn/compatibility/vts/shell-commands.html index fd36b924..7ada0aee 100644 --- a/zh-cn/compatibility/vts/shell-commands.html +++ b/zh-cn/compatibility/vts/shell-commands.html @@ -44,7 +44,7 @@ shell</code> 命令的延迟更çŸã€‚</p> <p><img src="images/vts_shell_driver.png"/></p> <figcaption><strong>图 1.</strong> VTS shell 驱动程åºã€‚</figcaption> -<p>VTS 框架支æŒå¤šè®¾å¤‡æµ‹è¯•ï¼Œå…¶ä¸æ¯éƒ¨ Android 设备都在基础è¿è¡Œå™¨ä¸è¡¨ç¤ºä¸º AndroidDevice 对象。默认情况下,VTS 框架会将 VTS 代ç†å’Œ VTS shell 驱动程åºäºŒè¿›åˆ¶æ–‡ä»¶æŽ¨é€åˆ°æ¯éƒ¨ Android 设备,并与这些设备上的 VTS 代ç†å»ºç«‹ TCP 连接。</p> +<p>VTS 框架支æŒå¤šè®¾å¤‡æµ‹è¯•ï¼Œå…¶ä¸æ¯éƒ¨ Android 设备都在基础è¿è¡Œå™¨ä¸æ˜¾ç¤ºä¸ºä¸€ä¸ª AndroidDevice 对象。默认情况下,VTS 框架会将 VTS 代ç†å’Œ VTS shell 驱动程åºäºŒè¿›åˆ¶æ–‡ä»¶æŽ¨é€åˆ°æ¯éƒ¨ Android 设备,并与这些设备上的 VTS 代ç†å»ºç«‹ TCP 连接。</p> <p>è¦æ‰§è¡Œ shell 命令,主机端 Python 脚本会对 AndroidDevice 对象内的 ShellMirror 对象å‘出函数调用。ShellMirror 对象将 shell å‘½ä»¤æ–‡æœ¬æ‰“åŒ…æˆ <a href="https://developers.google.com/protocol-buffers/" class="external">protobuf</a> 消æ¯ï¼Œå¹¶é€šè¿‡ TCP 通é“将其å‘é€è‡³ Android 设备上的 VTS 代ç†ã€‚然åŽï¼Œè®¾å¤‡ä¸Šè¿è¡Œçš„代ç†é€šè¿‡ Unix 套接å—å°† shell 命令转å‘ç»™ VTS shell 驱动程åºã€‚</p> diff --git a/zh-cn/devices/architecture/hidl-java/index.html b/zh-cn/devices/architecture/hidl-java/index.html index f397bdc5..47693bd8 100644 --- a/zh-cn/devices/architecture/hidl-java/index.html +++ b/zh-cn/devices/architecture/hidl-java/index.html @@ -59,6 +59,7 @@ IFoo server = IFoo.getService(true /* retry */); // throws NoSuchElementExceptio IFoo anotherServer = IFoo.getService("second_impl", true /* retry */); server.doSomething(…); </pre> +<p class="caution"><strong>è¦å‘Š</strong>:ä¸å«å‚æ•°çš„ Java <code>getService</code> å°†ä¸ä¼šç‰å¾…æœåŠ¡å¯åŠ¨ã€‚</p> </li> </ol> diff --git a/zh-cn/devices/architecture/hidl/versioning.html b/zh-cn/devices/architecture/hidl/versioning.html index a48fc3c0..518daf0b 100644 --- a/zh-cn/devices/architecture/hidl/versioning.html +++ b/zh-cn/devices/architecture/hidl/versioning.html @@ -84,7 +84,7 @@ <li>如有必è¦ï¼Œå¯ä»¥æ˜¯ä¸é€æ˜Žæ•°æ®ï¼ˆå¦‚公钥ã€ID ç‰ï¼‰ã€‚</li> </ul> -<p>如果使用ä¸é€æ˜Žæ•°æ®ï¼Œåˆ™åªèƒ½åœ¨ HIDL 接å£çš„一侧读å–相关数æ®ã€‚例如,如果 <code>vendor.img</code> 代ç 为 <code>system.img</code> 上的æŸä¸ªç»„件æ供了一项å—符串消æ¯æˆ– <code>vec<uint8_t></code> æ•°æ®ï¼Œåˆ™è¿™é¡¹æ•°æ®ä¸èƒ½ç”± <code>system.img</code> 自行解æžï¼Œåªèƒ½ä¼ 回到 <code>vendor.img</code> 进行解读。<strong>将值从 <code>vendor.img</code> ä¼ é€’åˆ° <code>system.img</code> 上的供应商代ç 或其他设备时,相关数æ®çš„æ ¼å¼åŠå…¶è§£è¯»æ–¹å¼å¿…须准确æ述,并且ä»æ˜¯ç›¸åº”接å£çš„一部分</strong>。</p> +<p>如果使用ä¸é€æ˜Žæ•°æ®ï¼Œåˆ™åªèƒ½åœ¨ HIDL 接å£çš„一侧读å–相关数æ®ã€‚例如,如果 <code>vendor.img</code> 代ç 为 <code>system.img</code> 上的æŸä¸ªç»„件æ供了一项å—符串消æ¯æˆ– <code>vec<uint8_t></code> æ•°æ®ï¼Œåˆ™è¿™é¡¹æ•°æ®ä¸èƒ½ç”± <code>system.img</code> 自行解æžï¼Œåªèƒ½ä¼ 回到 <code>vendor.img</code> 进行解读。<strong>å°† <code>vendor.img</code> ä¸çš„å€¼ä¼ é€’ç»™ <code>system.img</code> 上的供应商代ç 或其他设备时,相关数æ®çš„æ ¼å¼åŠå…¶è§£è¯»æ–¹å¼å¿…须准确æ述,并且ä»æ˜¯ç›¸åº”接å£çš„一部分</strong>。</p> <h3 id="structuring-guidelines">准则</h3> diff --git a/zh-cn/devices/bootloader/partitions-images.html b/zh-cn/devices/bootloader/partitions-images.html index c7f248e2..8b33252c 100644 --- a/zh-cn/devices/bootloader/partitions-images.html +++ b/zh-cn/devices/bootloader/partitions-images.html @@ -26,8 +26,8 @@ Android 设备包å«è‹¥å¹²ä¸ªåˆ†åŒºï¼Œè¿™äº›åˆ†åŒºåœ¨å¯åŠ¨è¿‡ç¨‹ä¸å‘挥ä¸åŒ </p> <ul> <li><strong>boot</strong>:<code>boot</code> 分区包å«é€šè¿‡ <code>mkbootimg</code> 组åˆåœ¨ä¸€èµ·çš„å†…æ ¸æ˜ åƒå’Œ RAM ç£ç›˜ã€‚ä¸ºäº†ç›´æŽ¥åˆ·å†™å†…æ ¸è€Œä¸åˆ·å†™æ–°çš„ boot 分区,å¯ä»¥ä½¿ç”¨è™šæ‹Ÿåˆ†åŒºï¼š<ul> - <li><strong>kernel</strong>:<code>kernel</code> è™šæ‹Ÿåˆ†åŒºä¼šé€šè¿‡å°†æ–°æ˜ åƒå†™å…¥æ—§ç£ç›˜æ¥ä»…è¦†ç›–å†…æ ¸ï¼ˆzImageã€zImage-dtb å’Œ Image.gz-dtb)。为æ¤ï¼Œå®ƒä¼šç¡®å®š eMMC ä¸çŽ°æœ‰å†…æ ¸æ˜ åƒçš„起始ä½ç½®å¹¶å°†æ–°å†…æ ¸æ˜ åƒå¤åˆ¶åˆ°è¯¥ä½ç½®ã€‚请记ä½ï¼Œæ–°å†…æ ¸æ˜ åƒå¯èƒ½ä¼šå¤§äºŽçŽ°æœ‰å†…æ ¸æ˜ åƒã€‚å¼•å¯¼åŠ è½½ç¨‹åºå¯ä»¥é€šè¿‡ç§»åŠ¨å…¶åŽçš„任何数æ®æ¥è…¾å‡ºç©ºé—´æˆ–放弃出错的æ“作。如果æ供的开å‘å†…æ ¸ä¸å…¼å®¹ï¼Œåˆ™å¯èƒ½éœ€è¦ä½¿ç”¨ç›¸å…³çš„å†…æ ¸æ¨¡å—æ›´æ–° dtb 分区(如果å˜åœ¨ï¼‰ã€vendor 分区或 system 分区。 - </li><li><strong>ramdisk</strong>:<code>ramdisk</code> è™šæ‹Ÿåˆ†åŒºä¼šé€šè¿‡å°†æ–°æ˜ åƒå†™å…¥æ—§ç£ç›˜æ¥ä»…覆盖 RAM ç£ç›˜ã€‚为æ¤ï¼Œå®ƒä¼šç¡®å®š eMMC ä¸çŽ°æœ‰ <code>ramdisk.img</code> 的起始ä½ç½®å¹¶å°†æ–° RAM ç£ç›˜æ˜ åƒå¤åˆ¶åˆ°è¯¥ä½ç½®ã€‚请记ä½ï¼Œæ–° RAM ç£ç›˜æ˜ åƒå¯èƒ½ä¼šå¤§äºŽçŽ°æœ‰ RAM ç£ç›˜æ˜ åƒã€‚å¼•å¯¼åŠ è½½ç¨‹åºå¯ä»¥é€šè¿‡ç§»åŠ¨å…¶åŽçš„任何数æ®æ¥è…¾å‡ºç©ºé—´æˆ–放弃出错的æ“作。</li></ul> + <li><strong>kernel</strong>:<code>kernel</code> è™šæ‹Ÿåˆ†åŒºä¼šå°†æ–°æ˜ åƒå†™å…¥æ—§ç£ç›˜ï¼Œä»¥ä¾¿ä»…è¦†ç›–å†…æ ¸ï¼ˆzImageã€zImage-dtb å’Œ Image.gz-dtb)。为æ¤ï¼Œå®ƒä¼šç¡®å®š eMMC ä¸çŽ°æœ‰å†…æ ¸æ˜ åƒçš„起始ä½ç½®å¹¶å°†æ–°å†…æ ¸æ˜ åƒå¤åˆ¶åˆ°è¯¥ä½ç½®ã€‚请记ä½ï¼Œæ–°å†…æ ¸æ˜ åƒå¯èƒ½ä¼šå¤§äºŽçŽ°æœ‰å†…æ ¸æ˜ åƒã€‚å¼•å¯¼åŠ è½½ç¨‹åºå¯ä»¥é€šè¿‡ç§»åŠ¨å…¶åŽçš„任何数æ®æ¥è…¾å‡ºç©ºé—´æˆ–放弃出错的æ“作。如果æ供的开å‘å†…æ ¸ä¸å…¼å®¹ï¼Œåˆ™å¯èƒ½éœ€è¦ä½¿ç”¨ç›¸å…³çš„å†…æ ¸æ¨¡å—æ›´æ–° dtb 分区(如果å˜åœ¨ï¼‰ã€vendor 分区或 system 分区。 + </li><li><strong>ramdisk</strong>:<code>ramdisk</code> è™šæ‹Ÿåˆ†åŒºä¼šå°†æ–°æ˜ åƒå†™å…¥æ—§ç£ç›˜ï¼Œä»¥ä¾¿ä»…覆盖 RAM ç£ç›˜ã€‚为æ¤ï¼Œå®ƒä¼šç¡®å®š eMMC ä¸çŽ°æœ‰ <code>ramdisk.img</code> 的起始ä½ç½®å¹¶å°†æ–° RAM ç£ç›˜æ˜ åƒå¤åˆ¶åˆ°è¯¥ä½ç½®ã€‚请记ä½ï¼Œæ–° RAM ç£ç›˜æ˜ åƒå¯èƒ½ä¼šå¤§äºŽçŽ°æœ‰ RAM ç£ç›˜æ˜ åƒã€‚å¼•å¯¼åŠ è½½ç¨‹åºå¯ä»¥é€šè¿‡ç§»åŠ¨å…¶åŽçš„任何数æ®æ¥è…¾å‡ºç©ºé—´æˆ–放弃出错的æ“作。</li></ul> </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 应该没问题。 @@ -35,12 +35,12 @@ Android 设备包å«è‹¥å¹²ä¸ªåˆ†åŒºï¼Œè¿™äº›åˆ†åŒºåœ¨å¯åŠ¨è¿‡ç¨‹ä¸å‘挥ä¸åŒ </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) 的二进制文件。如果没有专有信æ¯ï¼Œåˆ™å¯ä»¥çœç•¥æ¤åˆ†åŒºã€‚ -</li><li><strong>radio</strong>:<code>radio</code> 分区包å«æ— çº¿è£…ç½®æ˜ åƒã€‚åªæœ‰åŒ…å«æ— 线装置且在专用分区ä¸åŒ…å«ç‰¹å®šäºŽæ— 线装置的软件的设备需è¦æ¤åˆ†åŒºã€‚ +</li><li><strong>radio</strong>:<code>radio</code> 分区包å«æ— çº¿è£…ç½®æ˜ åƒã€‚åªæœ‰åŒ…å«æ— 线装置且在专用分区ä¸åŒ…å«æ— 线装置专用软件的设备æ‰éœ€è¦æ¤åˆ†åŒºã€‚ </li><li><strong>tos</strong>:<code>tos</code> 分区会å˜å‚¨ Trusty æ“ä½œç³»ç»Ÿçš„äºŒè¿›åˆ¶æ˜ åƒï¼Œä¸”ä»…åœ¨è®¾å¤‡åŒ…å« Trusty 时使用。</li> </ul> <h2 id="flow">æµç¨‹</h2> <p> -å¼•å¯¼åŠ è½½ç¨‹åºçš„è¿è¡Œæ–¹å¼å¦‚下: +å¼•å¯¼åŠ è½½ç¨‹åºçš„è¿ä½œæ–¹å¼å¦‚下: </p><ol> <li>é¦–å…ˆåŠ è½½å¼•å¯¼åŠ è½½ç¨‹åºã€‚ </li><li>å¼•å¯¼åŠ è½½ç¨‹åºåˆå§‹åŒ–内å˜ã€‚ @@ -72,7 +72,7 @@ RAM ç£ç›˜åº”包å«é€‚åˆä½œä¸º rootfs è£…è½½çš„æ ¹æ–‡ä»¶ç³»ç»Ÿã€‚RAM ç£ç›˜æ˜ å 您å¯ä»¥åœ¨ä»¥ä¸‹ä½ç½®æ‰¾åˆ° <code>mkbootimg</code> 实现:<code><a href="https://android.googlesource.com/platform/system/core/+/master/mkbootimg">system/core/mkbootimg</a></code> </p> <p> -å¼•å¯¼åŠ è½½ç¨‹åºä¼šè¯»å–ç”± mkbootimg 生æˆçš„ <code><a href="https://android.googlesource.com/platform/system/core/+/master/mkbootimg/bootimg.h">bootimg.h</a></code> æ ‡å¤´æ–‡ä»¶ï¼Œå¹¶æ›´æ–°å†…æ ¸æ ‡å¤´ä»¥ä½¿å…¶åŒ…å«æ£åœ¨è¢«åˆ·å†™çš„ RAM ç£ç›˜çš„æ£ç¡®ä½ç½®å’Œå¤§å°ã€å†…æ ¸åŸºå€ã€å‘½ä»¤è¡Œå‚æ•°ç‰ã€‚然åŽï¼Œå¼•å¯¼åŠ 载程åºä¼šå°†å¯åŠ¨æ˜ åƒä¸æŒ‡å®šçš„å‘½ä»¤è¡Œé™„åŠ åˆ°å¼•å¯¼åŠ è½½ç¨‹åºç”Ÿæˆçš„命令行的末尾。 +å¼•å¯¼åŠ è½½ç¨‹åºä¼šè¯»å–ç”± mkbootimg 生æˆçš„ <code><a href="https://android.googlesource.com/platform/system/core/+/master/mkbootimg/bootimg.h">bootimg.h</a></code> æ ‡å¤´æ–‡ä»¶ï¼Œå¹¶æ›´æ–°å†…æ ¸æ ‡å¤´ï¼Œä½¿å…¶åŒ…å«æ£åœ¨è¢«åˆ·å†™çš„ RAM ç£ç›˜çš„æ£ç¡®ä½ç½®å’Œå¤§å°ã€å†…æ ¸åŸºå€ã€å‘½ä»¤è¡Œå‚æ•°ç‰ã€‚然åŽï¼Œå¼•å¯¼åŠ 载程åºä¼šå°†å¯åŠ¨æ˜ åƒä¸æŒ‡å®šçš„å‘½ä»¤è¡Œé™„åŠ åˆ°å¼•å¯¼åŠ è½½ç¨‹åºç”Ÿæˆçš„命令行的末尾。 </p><h3 id="file-system-images-system-userdata-recovery">æ–‡ä»¶ç³»ç»Ÿæ˜ åƒï¼ˆç³»ç»Ÿã€ç”¨æˆ·æ•°æ®å’Œæ¢å¤æ˜ åƒï¼‰</h3> <h4 id="sparse-image-format">YAFFS2 æ˜ åƒæ ¼å¼</h4> @@ -88,7 +88,7 @@ RAM ç£ç›˜åº”包å«é€‚åˆä½œä¸º rootfs è£…è½½çš„æ ¹æ–‡ä»¶ç³»ç»Ÿã€‚RAM ç£ç›˜æ˜ å </p> <h4 id="sparse-image-format">稀ç–æ˜ åƒæ ¼å¼</h4> <p> -应支æŒç¨€ç–æ˜ åƒæ ¼å¼ã€‚“ext4 åŽ‹ç¼©æ˜ åƒâ€æ–‡æ¡£å’Œ <code><a href="https://android.googlesource.com/platform/system/core/+/master/libsparse/sparse_format.h">system/core/libsparse/sparse_format.h</a></code> 对这ç§æ ¼å¼è¿›è¡Œäº†è¯´æ˜Žï¼Œè¯¥æ ¼å¼çš„实现ä½ç½®ä¸ºï¼š<code><a href="https://android.googlesource.com/platform/system/core/+/master/libsparse/sparse_read.cpp">system/core/libsparse/sparse_read.cpp</a></code>。 +稀ç–æ˜ åƒæ ¼å¼åº”å—支æŒã€‚“ext4 åŽ‹ç¼©æ˜ åƒâ€æ–‡æ¡£å’Œ <code><a href="https://android.googlesource.com/platform/system/core/+/master/libsparse/sparse_format.h">system/core/libsparse/sparse_format.h</a></code> 对这ç§æ ¼å¼è¿›è¡Œäº†è¯´æ˜Žï¼Œè¯¥æ ¼å¼çš„实现ä½ç½®ä¸ºï¼š<code><a href="https://android.googlesource.com/platform/system/core/+/master/libsparse/sparse_read.cpp">system/core/libsparse/sparse_read.cpp</a></code>。 </p> <p> 如果使用基于å—çš„å˜å‚¨è®¾å¤‡ï¼Œåˆ™åº”æ”¯æŒ ext4 或 f2fs。è¦å¿«é€Ÿä¼ 输并刷写大型空 ext4 文件系统 (userdata),应以稀ç–æ ¼å¼å˜å‚¨æ˜ åƒï¼Œæ˜ åƒä¸åŒ…å«æœ‰å…³æ–‡ä»¶ç³»ç»Ÿçš„哪些区域å¯ä»¥ä¿ç•™ä¸å†™çš„ä¿¡æ¯ã€‚æ–‡ä»¶æ ¼å¼ç”± <code>mke2fs</code> 实用程åºç¼–写,该实用程åºè¿˜ç”¨äºŽåˆ›å»ºæ–‡ä»¶æ ¼å¼ç”±å¼•å¯¼åŠ 载程åºè¯»å–å’Œåˆ·å†™çš„æ˜ åƒã€‚有关属性,请å‚è§ä¸‹é¢å‡ 部分: diff --git a/zh-cn/devices/bootloader/unlock-trusty.html b/zh-cn/devices/bootloader/unlock-trusty.html index f96f3e29..eb2d0689 100644 --- a/zh-cn/devices/bootloader/unlock-trusty.html +++ b/zh-cn/devices/bootloader/unlock-trusty.html @@ -37,7 +37,7 @@ flashing unlock</code> 设置æ¤è§£é”模å¼ï¼Œè®¾ç½®åŽï¼Œæ¤æ¨¡å¼åœ¨ç³»ç»Ÿé‡ </p> <p> 所有尚未覆盖的 RAM 都应在 <code>fastboot flashing -unlock</code> 过程ä¸è¢«é‡ç½®ã€‚æ¤æŽªæ–½å¯é˜²æ¢å‡ºçŽ°è¯»å–上次å¯åŠ¨çš„剩余 RAM 内容这一攻击。åŒæ ·ï¼Œè§£é”的设备应在æ¯æ¬¡å¯åŠ¨æ—¶æ¸…除 RAM,å‰ææ˜¯è¿™æ ·åšä¸ä¼šé€ æˆä¸å¯æŽ¥å—的延迟,但应ä¿ç•™ç”¨äºŽå†…æ ¸çš„ <a href="https://www.kernel.org/doc/html/v4.12/admin-guide/ramoops.html" class="external"><code>ramoops</code></a> 的区域。 +unlock</code> 过程ä¸è¢«é‡ç½®ã€‚æ¤æŽªæ–½å¯é˜²æ¢å‡ºçŽ°è¯»å–上次å¯åŠ¨çš„剩余 RAM 内容这一攻击。åŒæ ·ï¼Œè§£é”的设备应在æ¯æ¬¡å¯åŠ¨æ—¶æ¸…除 RAM(å‰ææ˜¯è¿™æ ·åšä¸ä¼šé€ æˆä¸å¯æŽ¥å—的延迟),但应ä¿ç•™ç”¨äºŽå†…æ ¸çš„ <a href="https://www.kernel.org/doc/html/v4.12/admin-guide/ramoops.html" class="external"><code>ramoops</code></a> 的区域。 </p> <p> 打算零售的设备应以é”定状æ€å‘货(并且 <code>get_unlock_ability</code> 返回“0â€ï¼‰ã€‚这是为了确ä¿æ”»å‡»è€…ä¸èƒ½é€šè¿‡å®‰è£…自己的系统或å¯åŠ¨æ˜ åƒæ¥æŸå®³è®¾å¤‡ã€‚ @@ -103,7 +103,7 @@ unlock</code> 产生的效果相似:用户必须按设备上的æŸäº›ç‰©ç†æŒ‰ </li><li>在 ARM v7 上,CPU 处于 SVC 模å¼ï¼›åœ¨ ARM v8 上,CPU 处于 EL3 æ¨¡å¼ </li><li>寄å˜å™¨å¤„于以下状æ€ï¼š<ul> <li>r0/x0:分é…ç»™ TOS 的内å˜å¤§å°ã€‚ -</li><li>r1/x1:连ç»å†…å˜å—(包å«ç‰¹å®šäºŽå¹³å°çš„å¯åŠ¨å‚数)的物ç†åœ°å€ã€‚æ¤å—的布局特定于平å°ã€‚ +</li><li>r1/x1:连ç»å†…å˜å—(包å«å¹³å°ç‰¹æœ‰çš„å¯åŠ¨å‚数)的物ç†åœ°å€ã€‚æ¤å—的布局特定于平å°ã€‚ </li><li>r2/x2:上述内å˜å—的大å°ã€‚ </li><li>r14/x30:返回在 TOS åˆå§‹åŒ–åŽè·³è½¬åˆ°ï¼ˆåœ¨éžå®‰å…¨æ¨¡å¼ä¸‹ï¼‰çš„地å€ã€‚</li> </ul> </li> </ul> diff --git a/zh-cn/devices/sensors/versioning.html b/zh-cn/devices/sensors/versioning.html index 6dc47148..65fb903f 100644 --- a/zh-cn/devices/sensors/versioning.html +++ b/zh-cn/devices/sensors/versioning.html @@ -119,7 +119,7 @@ SENSOR_FLAG_CONTINUOUS_MODE, </li><li> ä¼ æ„Ÿå™¨æ˜¯å¦æ”¯æŒæ‰¹å¤„ç†å–决于它是å¦å…·æœ‰å¤§äºŽ 0 çš„ <code>fifoMaxEventCount </code>。(在以å‰çš„版本ä¸ï¼Œå®ƒæ˜¯ä»¥ <code>batch()</code> 的返回值为ä¾æ®ã€‚) </li><li> 支æŒæ‰¹å¤„ç†çš„ä¼ æ„Ÿå™¨åœ¨ä»¥å‰çš„版本ä¸å§‹ç»ˆå¤„于“批处ç†æ¨¡å¼â€ï¼šå³ä½¿ <code>max_report_latency_ns</code> å‚数为 0,ä»å¿…é¡»å¯¹ä¼ æ„Ÿå™¨è¿›è¡Œæ‰¹å¤„ç†ï¼Œè¿™æ„味ç€å½“ SoC 进入挂起模å¼æ—¶ï¼Œäº‹ä»¶å¿…é¡»å˜å‚¨åœ¨ FIFO ä¸ã€‚ </li><li> <code>batch</code> 函数的 <code>flags </code>å‚æ•°å°†ä¸å†ä½¿ç”¨ã€‚<code>DRY_RUN</code> å’Œ <code>WAKE_UPON_FIFO_FULL</code> 两者都已弃用,将永远ä¸ä¼šè¢«ä¼ 递给 <code>batch</code> 函数。 - </li><li> 批处ç†è¶…æ—¶å‚数现称为 <code>max_report_latency</code> å‚数。 + </li><li>批处ç†è¶…æ—¶å‚数现称为 <code>max_report_latency</code> å‚数。 </li></ul> </body></html>
\ No newline at end of file diff --git a/zh-cn/devices/tech/admin/ota-updates.html b/zh-cn/devices/tech/admin/ota-updates.html index 82265558..ef691bf6 100644 --- a/zh-cn/devices/tech/admin/ota-updates.html +++ b/zh-cn/devices/tech/admin/ota-updates.html @@ -55,7 +55,7 @@ Android 9 å…许设备所有者将 OTA 更新最多推迟 90 天,增强了设å </ul> <p> -设备所有者还å¯ä»¥é€šè¿‡<a href="https://developer.android.com/work/dpc/system-updates#freeze-periods">设置冻结时段</a>(在 Android 9 或更高版本ä¸ï¼‰ï¼Œåœ¨é‡è¦æ—¶æ®µï¼ˆå¦‚节å‡æ—¥æˆ–其他ç¹å¿™æ—¶æ®µï¼‰å†»ç»“æ“作系统版本。系统在冻结时段ä¸ä¼šå®‰è£… OTA 更新。我们建议使用 <code>SystemUpdatePolicy.InstallationOption</code>(请å‚è§ä¸‹ä¸€èŠ‚);ä¸è¿‡ï¼ŒOTA 客户端还å¯ä»¥é€šè¿‡è°ƒç”¨ <a href="https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy#getFreezePeriods()"><code>SystemUpdatePolicy.getFreezePeriods()</code></a> 了解设备是å¦å¤„于冻结时段。 +设备所有者还å¯ä»¥é€šè¿‡<a href="https://developer.android.com/work/dpc/system-updates#freeze-periods">设置冻结时段</a>(在 Android 9 或更高版本ä¸ï¼‰ï¼Œåœ¨é‡è¦æ—¶æ®µï¼ˆå¦‚节å‡æ—¥æˆ–其他ç¹å¿™æ—¶æ®µï¼‰å†»ç»“æ“作系统版本。系统在冻结时段ä¸ä¼šå®‰è£… OTA 更新。我们建议使用 <code>SystemUpdatePolicy.InstallationOption</code>(请å‚è§ä¸‹ä¸€èŠ‚);ä¸è¿‡ï¼ŒOTA 客户端还å¯ä»¥é€šè¿‡è°ƒç”¨ <a href="https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy#getFreezePeriods()"><code>SystemUpdatePolicy.getFreezePeriods()</code></a> æ¥æ£€æŸ¥è®¾å¤‡æ˜¯å¦å¤„于冻结时段。 </p> <h2 id="implementing-installation-options"> @@ -78,7 +78,7 @@ Android 9 引入了专为系统更新客户端设计的 @SystemApi <code>SystemU </ul> <p> -系统更新客户端å¯ä»¥æŸ¥è¯¢ <code>SystemUpdatePolicy.InstallationOption</code>,方法是使用 <code>SystemUpdatePolicy.getInstallationOptionAt(long <var>when</var>)</code>,其ä¸â€œwhenâ€è¡¨ç¤ºæŸ¥è¯¢å®‰è£…选项的时间(从公元纪年开始计算的毫秒数)。<var></var>系统更新客户端å¯ä»¥ä½¿ç”¨ <code>SystemUpdatePolicy.getInstallationOptionAt(long <var>when</var>)</code> 方法,在有效时间结æŸå‰é’ˆå¯¹è¿”回的选项执行æ“作。在返回的选项失效åŽï¼Œå®¢æˆ·ç«¯å¯ä»¥ä½¿ç”¨æ–°çš„时间戳为最近的选项执行å¦ä¸€æ¬¡æŸ¥è¯¢ã€‚ +系统更新客户端å¯ä»¥æŸ¥è¯¢ <code>SystemUpdatePolicy.InstallationOption</code>,方法是使用 <code>SystemUpdatePolicy.getInstallationOptionAt(long <var>when</var>)</code>,其ä¸â€œwhenâ€è¡¨ç¤ºæŸ¥è¯¢å®‰è£…选项的时间(从公元纪年开始计算的毫秒数)。<var></var>系统更新客户端å¯ä»¥ä½¿ç”¨ <code>SystemUpdatePolicy.getInstallationOptionAt(long <var>when</var>)</code> 方法在有效时间结æŸå‰é’ˆå¯¹è¿”回的选项执行æ“作。在返回的选项失效åŽï¼Œå®¢æˆ·ç«¯å¯ä»¥ä½¿ç”¨æ–°çš„时间戳为最近的选项执行å¦ä¸€æ¬¡æŸ¥è¯¢ã€‚ </p> <p> diff --git a/zh-cn/devices/tech/config/perms-whitelist.html b/zh-cn/devices/tech/config/perms-whitelist.html index b373bccd..f05b6e66 100644 --- a/zh-cn/devices/tech/config/perms-whitelist.html +++ b/zh-cn/devices/tech/config/perms-whitelist.html @@ -23,6 +23,10 @@ 特æƒåº”用是ä½äºŽç³»ç»Ÿæ˜ åƒ <code>/system/priv-app</code> ç›®å½•ä¸‹çš„ç³»ç»Ÿåº”ç”¨ã€‚è¿‡åŽ»ï¼Œè®¾å¤‡å®žçŽ°äººå‘˜å‡ ä¹Žæ— æ³•æŽ§åˆ¶å¯ä»¥å‘特æƒåº”用授予哪些ç¾å|特许æƒé™ã€‚从 Android 8.0 开始,实现人员å¯ä»¥å°†ç‰¹æƒåº”用显å¼åŠ 入到 <code>/etc/permissions</code> 目录下的系统é…ç½® XML 文件的白åå•ä¸ã€‚未在这些 XML 文件ä¸æ˜Žç¡®åˆ—出的应用ä¸ä¼šè¢«æŽˆäºˆç‰¹è®¸æƒé™ã€‚ </p> +<aside class="note"> + <strong>注æ„</strong>:仅<a href="https://developer.android.com/guide/topics/manifest/manifest-element#package">软件包</a>=“androidâ€çš„应用所声明的<a href="https://developer.android.com/guide/topics/manifest/permission-element">æƒé™</a>需列入相应白åå•ä¸ã€‚ +</aside> + <h2 id="adding-whitelists">æ·»åŠ ç™½åå•</h2> <p> 应用的æƒé™ç™½åå•å¯åˆ—在ä½äºŽ <code>frameworks/base/etc/permissions</code> 目录下的å•ä¸ªæˆ–多个 XML 文件ä¸ï¼Œå¦‚下所示: diff --git a/zh-cn/devices/tech/debug/fuzz-sanitize.html b/zh-cn/devices/tech/debug/fuzz-sanitize.html index 0319b0d5..47496cc7 100644 --- a/zh-cn/devices/tech/debug/fuzz-sanitize.html +++ b/zh-cn/devices/tech/debug/fuzz-sanitize.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> @@ -20,10 +20,11 @@ limitations under the License. --> - <p>本部分从安全角度总结了实用的动æ€åˆ†æžå’Œè°ƒè¯•å·¥å…·ï¼Œå…¶ä¸åŒ…括一些用于模糊测试ã€æŽ’错和预先缓解攻击的工具。有关常规调试,请å‚阅<a href="/devices/tech/debug/">调试部分</a>。</p> + <p>本部分总结了用于安全性测试和调试的工具,其ä¸åŒ…括一些用于模糊测试ã€æŽ’错和预先防æ¢æ”»å‡»çš„工具。有关常规调试,请å‚阅<a href="/devices/tech/debug/">调试部分</a>。</p> <p> Android 的多个版本都支æŒæ¨¡ç³Šæµ‹è¯•å·¥å…·ï¼Œä¸è¿‡ï¼ŒAndroid 8.0 åŠæ›´é«˜ç‰ˆæœ¬ä¸æ供了模糊测试方é¢çš„更多支æŒï¼Œåœ¨ Android 编译系统ä¸å®žçŽ°äº†æ›´ç´§å¯†çš„模糊测试工具集æˆï¼Œè¿˜é’ˆå¯¹ Android å†…æ ¸æ供了更有力的动æ€åˆ†æžæ”¯æŒã€‚ </p> +<p>除了特定于安全性的测试之外,Android 还包括针对兼容性的常规<a href="/compatibility/tests">å¹³å°æµ‹è¯•</a>。</p> </body></html>
\ No newline at end of file diff --git a/zh-cn/security/bulletin/2018-07-01.html b/zh-cn/security/bulletin/2018-07-01.html index 89de0337..5e6bf3b6 100644 --- a/zh-cn/security/bulletin/2018-07-01.html +++ b/zh-cn/security/bulletin/2018-07-01.html @@ -28,7 +28,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有问题的通知。我们已将针对这些问题的æºä»£ç è¡¥ä¸ç¨‹åºå‘布到 Android å¼€æºé¡¹ç›® (AOSP) 代ç 库ä¸ï¼Œå¹¶åœ¨æœ¬å…¬å‘Šä¸æ供了相应链接。本公告ä¸è¿˜æä¾›äº†æŒ‡å‘ AOSP 之外的补ä¸ç¨‹åºçš„链接。 </p> <p> -这些问题ä¸å±é™©æ€§æœ€é«˜çš„是媒体框架ä¸çš„一个严é‡ç¨‹åº¦ä¸ºâ€œä¸¥é‡â€çš„安全æ¼æ´žï¼Œè¯¥æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦è¯„ä¼°</a>çš„ä¾æ®æ˜¯æ¼æ´žè¢«åˆ©ç”¨åŽå¯èƒ½ä¼šå¯¹å—å½±å“çš„è®¾å¤‡é€ æˆçš„å½±å“(å‡è®¾ç›¸å…³å¹³å°å’ŒæœåŠ¡ç¼“解措施被æˆåŠŸè§„é¿æˆ–出于开å‘目的而被åœç”¨ï¼‰ã€‚ +这些问题ä¸å±é™©æ€§æœ€é«˜çš„是媒体框架ä¸çš„一个严é‡ç¨‹åº¦ä¸ºâ€œä¸¥é‡â€çš„安全æ¼æ´žï¼Œè¯¥æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用特制的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。<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 ä¿æŠ¤æœºåˆ¶ã€‚ @@ -47,11 +47,11 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </ul> <h2 id="2018-07-01-details">2018-07-01 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2> <p> -我们在下é¢æ供了 2018-07-01 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括问题æ述和一个表,该表ä¸åŒ…å« CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>和已更新的 AOSP 版本(如果适用)。如果有解决相应问题的公开更改记录(例如 AOSP 代ç 更改列表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç 更改记录,我们还会通过 Bug ID åŽé¢çš„æ•°å—链接到更多å‚考内容。 +我们在下é¢æ供了 2018-07-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>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的 pac 文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> +<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用特制的 pac 文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> <table> <colgroup><col width="21%" /> @@ -61,7 +61,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>已更新的 AOSP 版本</th> @@ -83,7 +83,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tbody></table> <h3 id="media-framework">媒体框架</h3> -<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> +<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用特制的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> <table> <colgroup><col width="21%" /> @@ -93,7 +93,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>已更新的 AOSP 版本</th> @@ -136,7 +136,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tbody></table> <h3 id="system">系统</h3> -<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用蓄æ„创建的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> +<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©è¿œç¨‹æ”»å‡»è€…利用特制的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> <table> <colgroup><col width="21%" /> @@ -146,7 +146,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>已更新的 AOSP 版本</th> @@ -183,7 +183,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <h2 id="2018-07-05-details">2018-07-05 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2> <p> -我们在下é¢æ供了 2018-07-05 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括 CVEã€ç›¸å…³å‚考内容ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>ã€ç»„件(如果适用)和已更新的 AOSP 版本(如果适用)ç‰è¯¦ç»†ä¿¡æ¯ã€‚如果有解决相应问题的公开更改记录(例如 AOSP 代ç 更改列表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç 更改记录,我们还会通过 Bug ID åŽé¢çš„æ•°å—链接到更多å‚考内容。 +我们在下é¢æ供了 2018-07-05 è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–çš„æ¯ä¸ªå®‰å…¨æ¼æ´žçš„详细信æ¯ã€‚æ¼æ´žåˆ—在所影å“的组件下,内容包括 CVEã€ç›¸å…³å‚考编å·ã€<a href="#type">æ¼æ´žç±»åž‹</a>ã€<a href="/security/overview/updates-resources.html#severity">严é‡ç¨‹åº¦</a>ã€ç»„件(如果适用)和已更新的 AOSP 版本(如果适用)ç‰è¯¦ç»†ä¿¡æ¯ã€‚如果有解决相应问题的公开更改记录(例如 AOSP 代ç 更改列表),我们会将 Bug ID 链接到该记录。如果æŸä¸ª Bug 有多æ¡ç›¸å…³çš„代ç 更改记录,我们还会通过 Bug ID åŽé¢çš„æ•°å—链接到更多å‚考内容。 </p> <h3 id="kernel-components">å†…æ ¸ç»„ä»¶</h3> @@ -197,7 +197,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>组件</th> @@ -236,7 +236,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tbody></table> <h3 id="qualcomm-components">Qualcomm 组件</h3> -<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©é‚»è¿‘区域内的攻击者利用蓄æ„创建的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> +<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©é‚»è¿‘区域内的攻击者利用特制的文件通过特æƒè¿›ç¨‹æ‰§è¡Œä»»æ„代ç 。</p> <table> <colgroup><col width="21%" /> @@ -246,7 +246,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>组件</th> @@ -302,7 +302,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>组件</th> @@ -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> @@ -515,17 +515,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> @@ -549,10 +549,10 @@ 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">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。 +如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—ä¸ï¼Œç›¸åº” Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers">Google Developers 网站</a>上针对 Pixel/Nexus 设备æ供的最新二进制驱动程åºä¸é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。 </p> <p> <strong>6. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œè®¾å¤‡â€Š/ åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šï¼ˆå¦‚ Pixel/Nexus 公告)ä¸ï¼Ÿ</strong> diff --git a/zh-cn/security/bulletin/2018-08-01.html b/zh-cn/security/bulletin/2018-08-01.html index 9307b3cb..39eec1b6 100644 --- a/zh-cn/security/bulletin/2018-08-01.html +++ b/zh-cn/security/bulletin/2018-08-01.html @@ -70,7 +70,9 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <tr> <td>CVE-2018-9445</td> <td> - <a href="https://android.googlesource.com/platform/external/e2fsprogs/+/9a2d95e4ed9ec5ab76998654b1c2fba9cc139e50">A-80436257</a> [<a href="https://android.googlesource.com/platform/system/vold/+/940a1ff70cfc5f2e4de83da9ad84cd9734faadf6">2</a>]</td> + <a href="https://android.googlesource.com/platform/external/e2fsprogs/+/9a2d95e4ed9ec5ab76998654b1c2fba9cc139e50">A-80436257</a> + [<a href="https://android.googlesource.com/platform/system/vold/+/940a1ff70cfc5f2e4de83da9ad84cd9734faadf6">2</a>] + </td> <td>EoP</td> <td>高</td> <td>6.0ã€6.0.1ã€7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td> @@ -78,7 +80,11 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <tr> <td>CVE-2018-9438</td> <td> -<a href="https://android.googlesource.com/platform/packages/providers/DownloadProvider/+/b552ebf70913cc79085bcc4212235ea45e036d3b">A-78644887</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/e3854655e75d97552140d77cca5d20c121a17ef9">2</a>] [<a href="https://android.googlesource.com/platform/frameworks/opt/telephony/+/d1ce32b059bed774b41f11413c1d83a1bc412964">3</a>] [<a href="https://android.googlesource.com/platform/frameworks/base/+/97e1cd61d3040dd366ac9e25cdb6f134c7490846">4</a>]</td> +<a href="https://android.googlesource.com/platform/packages/providers/DownloadProvider/+/b552ebf70913cc79085bcc4212235ea45e036d3b">A-78644887</a> +[<a href="https://android.googlesource.com/platform/frameworks/base/+/e3854655e75d97552140d77cca5d20c121a17ef9">2</a>] +[<a href="https://android.googlesource.com/platform/frameworks/opt/telephony/+/d1ce32b059bed774b41f11413c1d83a1bc412964">3</a>] +[<a href="https://android.googlesource.com/platform/frameworks/base/+/97e1cd61d3040dd366ac9e25cdb6f134c7490846">4</a>] +</td> <td>DoS</td> <td>高</td> <td>8.1</td> @@ -95,7 +101,9 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <tr> <td>CVE-2018-9451</td> <td> -<a href="https://android.googlesource.com/platform/frameworks/base/+/a409aa1214d6483efe129a4966f09aa4fdc097ad">A-79488511</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/1de25074adb5d9ed572d6a85e77d3df5ac3a7e9e">2</a>]</td> +<a href="https://android.googlesource.com/platform/frameworks/base/+/a409aa1214d6483efe129a4966f09aa4fdc097ad">A-79488511</a> +[<a href="https://android.googlesource.com/platform/frameworks/base/+/1de25074adb5d9ed572d6a85e77d3df5ac3a7e9e">2</a>] +</td> <td>ID</td> <td>高</td> <td>6.0ã€6.0.1ã€7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td> @@ -122,7 +130,9 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <tr> <td>CVE-2018-9427</td> <td> -<a href="https://android.googlesource.com/platform/frameworks/av/+/08d392085c095e227c029f64644bc08ef5a544de">A-77486542</a> [<a href="https://android.googlesource.com/platform/frameworks/av/+/c9909e5a980f941a5b72477755e09fb4dc57c478">2</a>]</td> +<a href="https://android.googlesource.com/platform/frameworks/av/+/08d392085c095e227c029f64644bc08ef5a544de">A-77486542</a> +[<a href="https://android.googlesource.com/platform/frameworks/av/+/c9909e5a980f941a5b72477755e09fb4dc57c478">2</a>] +</td> <td>RCE</td> <td>严é‡</td> <td>8.0ã€8.1</td> @@ -218,7 +228,9 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <tr> <td>CVE-2018-9448</td> <td> -<a href="https://android.googlesource.com/platform/system/bt/+/13294c70a66347c9e5d05b9f92f8ceb6fe38d7f6">A-79944113</a> [<a href="https://android.googlesource.com/platform/system/bt/+/f1f1c3e00f8d1baad0215b057e6d894517eeaddb">2</a>]</td> +<a href="https://android.googlesource.com/platform/system/bt/+/13294c70a66347c9e5d05b9f92f8ceb6fe38d7f6">A-79944113</a> +[<a href="https://android.googlesource.com/platform/system/bt/+/f1f1c3e00f8d1baad0215b057e6d894517eeaddb">2</a>] + </td> <td>ID</td> <td>高</td> <td>8.0ã€8.1</td> @@ -291,7 +303,8 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tr> <tr> <td>CVE-2018-5383</td> - <td>A-79421580<a href="#asterisk">*</a><br />QC-CR#2209635</td> + <td>A-79421580<a href="#asterisk">*</a><br /> + QC-CR#2209635</td> <td>ID</td> <td>高</td> <td>è“牙</td> diff --git a/zh-cn/security/bulletin/2018-09-01.html b/zh-cn/security/bulletin/2018-09-01.html index 3d1e7cd0..c6f5d74c 100644 --- a/zh-cn/security/bulletin/2018-09-01.html +++ b/zh-cn/security/bulletin/2018-09-01.html @@ -754,7 +754,7 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 <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> 安全公告)记录其设备上å˜åœ¨çš„其他修å¤ç¨‹åºã€‚ +è¦åœ¨ 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&hairsp;/&hairsp;Nexus</a> 安全公告)记录其设备上å˜åœ¨çš„其他修å¤ç¨‹åºã€‚ </p> <h2 id="versions">版本</h2> diff --git a/zh-cn/security/bulletin/2018-10-01.html b/zh-cn/security/bulletin/2018-10-01.html index 323d6c6f..0f97e60e 100644 --- a/zh-cn/security/bulletin/2018-10-01.html +++ b/zh-cn/security/bulletin/2018-10-01.html @@ -67,7 +67,8 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tr> <tr> <td>CVE-2018-9490</td> - <td><a href="https://android.googlesource.com/platform/external/chromium-libpac/+/948d4753664cc4e6b33cc3de634ac8fd5f781382">A-111274046</a> [<a href="https://android.googlesource.com/platform/external/v8/+/a24543157ae2cdd25da43e20f4e48a07481e6ceb">2</a>]</td> + <td><a href="https://android.googlesource.com/platform/external/chromium-libpac/+/948d4753664cc4e6b33cc3de634ac8fd5f781382">A-111274046</a> + [<a href="https://android.googlesource.com/platform/external/v8/+/a24543157ae2cdd25da43e20f4e48a07481e6ceb">2</a>]</td> <td>EoP</td> <td>严é‡</td> <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td> @@ -88,14 +89,17 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tr> <tr> <td>CVE-2018-9493</td> - <td><a href="https://android.googlesource.com/platform/frameworks/base/+/462aaeaa616e0bb1342e8ef7b472acc0cbc93deb">A-111085900</a> [<a href="https://android.googlesource.com/platform/packages/providers/DownloadProvider/+/e7364907439578ce5334bce20bb03fef2e88b107">2</a>] [<a href="https://android.googlesource.com/platform/frameworks/base/+/ebc250d16c747f4161167b5ff58b3aea88b37acf">3</a>]</td> + <td><a href="https://android.googlesource.com/platform/frameworks/base/+/462aaeaa616e0bb1342e8ef7b472acc0cbc93deb">A-111085900</a> + [<a href="https://android.googlesource.com/platform/packages/providers/DownloadProvider/+/e7364907439578ce5334bce20bb03fef2e88b107">2</a>] + [<a href="https://android.googlesource.com/platform/frameworks/base/+/ebc250d16c747f4161167b5ff58b3aea88b37acf">3</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-9452</td> - <td><a href="https://android.googlesource.com/platform/frameworks/base/+/54f661b16b308cf38d1b9703214591c0f83df64d">A-78464361</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/3b6f84b77c30ec0bab5147b0cffc192c86ba2634">2</a>]</td> + <td><a href="https://android.googlesource.com/platform/frameworks/base/+/54f661b16b308cf38d1b9703214591c0f83df64d">A-78464361</a> + [<a href="https://android.googlesource.com/platform/frameworks/base/+/3b6f84b77c30ec0bab5147b0cffc192c86ba2634">2</a>]</td> <td>DoS</td> <td>ä¸</td> <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td> @@ -201,14 +205,18 @@ Android åˆä½œä¼™ä¼´åœ¨æœ¬å…¬å‘Šå‘布å‰è‡³å°‘一个月就已收到关于所有 </tr> <tr> <td>CVE-2018-9502</td> - <td><a href="https://android.googlesource.com/platform/system/bt/+/92a7bf8c44a236607c146240f3c0adc1ae01fedf">A-111936792</a> [<a href="https://android.googlesource.com/platform/system/bt/+/d4a34fefbf292d1e02336e4e272da3ef1e3eef85">2</a>] [<a href="https://android.googlesource.com/platform/system/bt/+/9fe27a9b445f7e911286ed31c1087ceac567736b">3</a>]</td> + <td><a href="https://android.googlesource.com/platform/system/bt/+/92a7bf8c44a236607c146240f3c0adc1ae01fedf">A-111936792</a> + [<a href="https://android.googlesource.com/platform/system/bt/+/d4a34fefbf292d1e02336e4e272da3ef1e3eef85">2</a>] + [<a href="https://android.googlesource.com/platform/system/bt/+/9fe27a9b445f7e911286ed31c1087ceac567736b">3</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-9503</td> - <td><a href="https://android.googlesource.com/platform/system/bt/+/92a7bf8c44a236607c146240f3c0adc1ae01fedf">A-80432928</a> [<a href="https://android.googlesource.com/platform/system/bt/+/d4a34fefbf292d1e02336e4e272da3ef1e3eef85">2</a>] [<a href="https://android.googlesource.com/platform/system/bt/+/9fe27a9b445f7e911286ed31c1087ceac567736b">3</a>]</td> + <td><a href="https://android.googlesource.com/platform/system/bt/+/92a7bf8c44a236607c146240f3c0adc1ae01fedf">A-80432928</a> + [<a href="https://android.googlesource.com/platform/system/bt/+/d4a34fefbf292d1e02336e4e272da3ef1e3eef85">2</a>] + [<a href="https://android.googlesource.com/platform/system/bt/+/9fe27a9b445f7e911286ed31c1087ceac567736b">3</a>]</td> <td>ID</td> <td>高</td> <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1ã€9</td> diff --git a/zh-cn/security/bulletin/2018-11-01.html b/zh-cn/security/bulletin/2018-11-01.html new file mode 100644 index 00000000..c1b7bf56 --- /dev/null +++ b/zh-cn/security/bulletin/2018-11-01.html @@ -0,0 +1,586 @@ +<html devsite><head> + <title>Android 安全公告 - 2018 å¹´ 11 月</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 å¹´ 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> +<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-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> +<p>è¯¥åº“å·²è¢«æ ‡è®°ä¸ºå®žéªŒæ€§åŠŸèƒ½ï¼Œå¹¶ä¸”ä¸å†çº³å…¥ä»»ä½• Android æ£å¼ç‰ˆä¸ã€‚</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-11-01-details">2018-11-01 安全补ä¸ç¨‹åºçº§åˆ«æ¼æ´žè¯¦æƒ…</h2> +<p> +我们在下é¢æ供了 2018-11-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-9522</td> + <td>A-112550251</td> + <td>EoP</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9524</td> + <td>A-34170870</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>EoP</td> + <td>高</td> + <td>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-9527</td> + <td>A-112159345</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>RCE</td> + <td>严é‡</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9536</td> + <td>A-112662184</td> + <td>EoP</td> + <td>严é‡</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9537</td> + <td>A-112891564</td> + <td>EoP</td> + <td>严é‡</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9521</td> + <td>A-111874331</td> + <td>RCE</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9539</td> + <td>A-113027383</td> + <td>EoP</td> + <td>高</td> + <td>8.0ã€8.1ã€9</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-9540</td> + <td>A-111450417</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>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>ID</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9544</td> + <td>A-113037220</td> + <td>ID</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9545</td> + <td>A-113111784</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>ID</td> + <td>ä¸</td> + <td>9</td> + </tr> + <tr> + <td>ID</td> + <td>高</td> + <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td> + </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 åŽé¢çš„æ•°å—链接到更多å‚考内容。 +</p> + +<h3 id="framework-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>已更新的 AOSP 版本</th> + </tr> + <tr> + <td>CVE-2018-9523</td> + <td>A-112859604</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> +<p>这一部分ä¸æœ€ä¸¥é‡çš„æ¼æ´žå¯è®©æœ¬åœ°æ¶æ„应用在特æƒè¿›ç¨‹çŽ¯å¢ƒä¸æ‰§è¡Œä»»æ„代ç 。</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>å‚考编å·</th> + <th>类型</th> + <th>严é‡ç¨‹åº¦</th> + <th>组件</th> + </tr> + <tr> + <td>CVE-2017-15818</td> + <td>A-68992408<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/lk/commit/?id=abe4f7042cbdef928ffc152335a17150fb39b096">QC-CR#2078580</a></td> + <td>N/A</td> + <td>高</td> + <td>生æ€ç³»ç»Ÿ</td> + </tr> + <tr> + <td>CVE-2018-11995</td> + <td>A-71501677<br /> + <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=e3688be47d2b72f130f90dafd24b5f5acc4684ca">QC-CR#2129639</a></td> + <td>N/A</td> + <td>高</td> + <td>å¼•å¯¼åŠ è½½ç¨‹åº</td> + </tr> + <tr> + <td>CVE-2018-11905</td> + <td>A-112277889<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cdcf0409bdad7ed91c11d7715c89acc2e521e96">QC-CR#2090797</a></td> + <td>N/A</td> + <td>高</td> + <td>DSP_Services</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-closed-source-components">Qualcomm é—æºç»„件</h3> +<p>以下æ¼æ´žä¼šå½±å“ Qualcomm 组件,相应的 Qualcomm AMSS 安全公告或安全æ醒ä¸å¯¹è¿™äº›æ¼æ´žè¿›è¡Œäº†è¯¦ç»†è¯´æ˜Žã€‚这些æ¼æ´žçš„严é‡ç¨‹åº¦è¯„估是由 Qualcomm 直接æ供的。</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>å‚考编å·</th> + <th>类型</th> + <th>严é‡ç¨‹åº¦</th> + <th>组件</th> + </tr> + <tr> + <td>CVE-2017-18317</td> + <td>A-78244877<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>严é‡</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-5912</td> + <td>A-79420111<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>严é‡</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-11264</td> + <td>A-109677962<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>严é‡</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2016-10502</td> + <td>A-68326808<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2017-18316</td> + <td>A-78240714<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2017-18318</td> + <td>A-78240675<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2017-18315</td> + <td>A-78241957<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-11994</td> + <td>A-72950294<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-11996</td> + <td>A-74235967<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-5870</td> + <td>A-77484722<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-5877</td> + <td>A-77484786<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-5916</td> + <td>A-79420492<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-5917</td> + <td>A-79420096<a href="#asterisk">*</a></td> + <td>N/A</td> + <td>高</td> + <td>é—æºç»„件</td> + </tr> + <tr> + <td>CVE-2018-11269</td> + <td>A-109678529<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-11-01 或更新,则æ„味ç€å·²è§£å†³ 2018-11-01 安全补ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题。</li> +<li>如果安全补ä¸ç¨‹åºçº§åˆ«æ˜¯ 2018-11-05 或更新,则æ„味ç€å·²è§£å†³ 2018-11-05 以åŠä¹‹å‰çš„所有安全补ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题。</li> +</ul> +<p>é¢„è£…è¿™äº›æ›´æ–°çš„è®¾å¤‡åˆ¶é€ å•†åº”å°†è¡¥ä¸ç¨‹åºå—符串级别设为:</p> +<ul> + <li>[ro.build.version.security_patch]:[2018-11-01]</li> + <li>[ro.build.version.security_patch]:[2018-11-05]</li> +</ul> +<p><strong>2. 为何本公告有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Ÿ</strong></p> +<p> +本公告之所以有 2 个安全补ä¸ç¨‹åºçº§åˆ«ï¼Œæ˜¯ä¸ºäº†è®© Android åˆä½œä¼™ä¼´èƒ½å¤Ÿçµæ´»åœ°ã€æ›´å¿«é€Ÿåœ°ä¿®å¤åœ¨å„ç§ Android 设备上类似的一系列æ¼æ´žã€‚我们建议 Android åˆä½œä¼™ä¼´ä¿®å¤æœ¬å…¬å‘Šä¸åˆ—出的所有问题并使用最新的安全补ä¸ç¨‹åºçº§åˆ«ã€‚ +</p> +<ul> +<li>如果设备使用的是 2018-11-01 这一安全补ä¸ç¨‹åºçº§åˆ«ï¼Œåˆ™å¿…须包å«è¯¥å®‰å…¨è¡¥ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题以åŠä¹‹å‰çš„安全公告ä¸æŠ¥å‘Šçš„所有问题的修å¤ç¨‹åºã€‚</li> +<li>如果设备使用的是 2018-11-05 或更新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œåˆ™å¿…须包å«æœ¬å®‰å…¨å…¬å‘Šï¼ˆä»¥åŠä¹‹å‰çš„安全公告)ä¸çš„所有适用补ä¸ç¨‹åºã€‚</li> +</ul> +<p> +我们建议åˆä½œä¼™ä¼´å°†è¦è§£å†³çš„全部问题的修å¤ç¨‹åºæ‰“包到一个更新ä¸ã€‚ +</p> +<p id="type"> +<strong>3.“类型â€åˆ—ä¸çš„æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong> +</p> +<p> +在æ¼æ´žè¯¦æƒ…表内,“类型â€åˆ—ä¸çš„æ¡ç›®æ˜¯å®‰å…¨æ¼æ´žçš„分类。<em></em> +</p> +<table> + <colgroup><col width="25%" /> + <col width="75%" /> + </colgroup><tbody><tr> + <th>缩写è¯</th> + <th>定义</th> + </tr> + <tr> + <td>RCE</td> + <td>远程代ç 执行</td> + </tr> + <tr> + <td>EoP</td> + <td>ææƒ</td> + </tr> + <tr> + <td>ID</td> + <td>ä¿¡æ¯æŠ«éœ²</td> + </tr> + <tr> + <td>DoS</td> + <td>æ‹’ç»æœåŠ¡</td> + </tr> + <tr> + <td>N/A</td> + <td>没有分类</td> + </tr> +</tbody></table> +<p> +<strong>4.“å‚考编å·â€åˆ—ä¸çš„æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong> +</p> +<p> +在æ¼æ´žè¯¦æƒ…表内,“å‚考编å·â€åˆ—ä¸çš„æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em> +</p> +<table> + <colgroup><col width="25%" /> + <col width="75%" /> + </colgroup><tbody><tr> + <th>å‰ç¼€</th> + <th>å‚考编å·</th> + </tr> + <tr> + <td>A-</td> + <td>Android Bug ID</td> + </tr> + <tr> + <td>QC-</td> + <td>Qualcomm å‚考编å·</td> + </tr> + <tr> + <td>M-</td> + <td>MediaTek å‚考编å·</td> + </tr> + <tr> + <td>N-</td> + <td>NVIDIA å‚考编å·</td> + </tr> + <tr> + <td>B-</td> + <td>Broadcom å‚考编å·</td> + </tr> +</tbody></table> +<p id="asterisk"> +<strong>5. 在“å‚考编å·â€åˆ—ä¸ï¼ŒAndroid Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong> +</p> +<p> +如果问题尚未公开å‘布,则在“å‚考编å·â€åˆ—ä¸ï¼Œç›¸åº” Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。 +</p> +<p> +<strong>6. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œè®¾å¤‡â€Š/ åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šï¼ˆå¦‚ Pixel/Nexus 公告)ä¸ï¼Ÿ</strong> +</p> +<p> +è¦åœ¨ Android 设备上声明最新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œå¿…须修å¤æœ¬å®‰å…¨å…¬å‘Šä¸è®°å½•çš„安全æ¼æ´žã€‚但在声明安全补ä¸ç¨‹åºçº§åˆ«æ—¶ï¼Œå¹¶ä¸æ˜¯å¿…é¡»è¦ä¿®å¤è®¾å¤‡/åˆä½œä¼™ä¼´å®‰å…¨å…¬å‘Šä¸è®°å½•çš„其他安全æ¼æ´žã€‚我们建议 Android è®¾å¤‡å’ŒèŠ¯ç‰‡ç»„åˆ¶é€ å•†é€šè¿‡è‡ªå·±çš„å®‰å…¨ç½‘ç«™ï¼ˆä¾‹å¦‚ <a href="https://security.samsungmobile.com/securityUpdate.smsb" class="external">Samsung</a>ã€<a href="https://lgsecurity.lge.com/security_updates.html" class="external">LGE</a> 或 <a href="/security/bulletin/pixel/" class="external">Pixel/Nexus</a> 安全公告)记录其设备上å˜åœ¨çš„其他修å¤ç¨‹åºã€‚ +</p> + +<h2 id="versions">版本</h2> +<table> + <colgroup><col width="25%" /> + <col width="25%" /> + <col width="50%" /> + </colgroup><tbody><tr> + <th>版本</th> + <th>日期</th> + <th>备注</th> + </tr> + <tr> + <td>1.0</td> + <td>2018 å¹´ 11 月 5 æ—¥</td> + <td>å‘布了本公告。</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/zh-cn/security/bulletin/2018.html b/zh-cn/security/bulletin/2018.html index be126f08..9c252aab 100644 --- a/zh-cn/security/bulletin/2018.html +++ b/zh-cn/security/bulletin/2018.html @@ -35,14 +35,13 @@ </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">2018 å¹´ 10 月</a></td> - <td>å³å°†å‘布<!-- - <a href="/security/bulletin/2018-10-01.html">English</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> - --> + <td> + <a href="/security/bulletin/2018-10-01.html">English</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-01<br />2018-10-05</td> diff --git a/zh-cn/security/bulletin/index.html b/zh-cn/security/bulletin/index.html index 298e7e37..1e565664 100644 --- a/zh-cn/security/bulletin/index.html +++ b/zh-cn/security/bulletin/index.html @@ -57,7 +57,12 @@ <tr> <td><a href="/security/bulletin/2018-10-01.html">2018 å¹´ 10 月</a></td> <td> - <a href="/security/bulletin/2018-10-01.html">English</a> / <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-10-01.html">English</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-01<br />2018-10-05</td> @@ -65,7 +70,12 @@ <tr> <td><a href="/security/bulletin/2018-09-01.html">2018 å¹´ 9 月</a></td> <td> - <a href="/security/bulletin/2018-09-01.html">English</a> / <a href="/security/bulletin/2018-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-09-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-09-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-09-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-09-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-09-01.html">English</a> / + <a href="/security/bulletin/2018-09-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-09-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-09-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-09-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-09-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 9 月 4 æ—¥</td> <td>2018-09-01<br />2018-09-05</td> @@ -73,7 +83,12 @@ <tr> <td><a href="/security/bulletin/2018-08-01.html">2018 å¹´ 8 月</a></td> <td> - <a href="/security/bulletin/2018-08-01.html">English</a> / <a href="/security/bulletin/2018-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-08-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-08-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-08-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-08-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-08-01.html">English</a> / + <a href="/security/bulletin/2018-08-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-08-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-08-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-08-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-08-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 8 月 6 æ—¥</td> <td>2018-08-01<br />2018-08-05</td> @@ -81,7 +96,12 @@ <tr> <td><a href="/security/bulletin/2018-07-01.html">2018 å¹´ 7 月</a></td> <td> - <a href="/security/bulletin/2018-07-01.html">English</a> / <a href="/security/bulletin/2018-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-07-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-07-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-07-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-07-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-07-01.html">English</a> / + <a href="/security/bulletin/2018-07-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-07-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-07-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-07-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-07-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 7 月 2 æ—¥</td> <td>2018-07-01<br />2018-07-05</td> @@ -89,7 +109,12 @@ <tr> <td><a href="/security/bulletin/2018-06-01.html">2018 å¹´ 6 月</a></td> <td> - <a href="/security/bulletin/2018-06-01.html">English</a> / <a href="/security/bulletin/2018-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-06-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-06-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-06-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-06-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-06-01.html">English</a> / + <a href="/security/bulletin/2018-06-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-06-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-06-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-06-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-06-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 6 月 4 æ—¥</td> <td>2018-06-01<br />2018-06-05</td> @@ -97,7 +122,12 @@ <tr> <td><a href="/security/bulletin/2018-05-01.html">2018 å¹´ 5 月</a></td> <td> - <a href="/security/bulletin/2018-05-01.html">English</a> / <a href="/security/bulletin/2018-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-05-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-05-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-05-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-05-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-05-01.html">English</a> / + <a href="/security/bulletin/2018-05-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-05-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-05-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-05-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-05-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 5 月 7 æ—¥</td> <td>2018-05-01<br />2018-05-05</td> @@ -105,7 +135,12 @@ <tr> <td><a href="/security/bulletin/2018-04-01.html">2018 å¹´ 4 月</a></td> <td> - <a href="/security/bulletin/2018-04-01.html">English</a> / <a href="/security/bulletin/2018-04-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-04-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-04-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-04-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-04-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-04-01.html">English</a> / + <a href="/security/bulletin/2018-04-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-04-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-04-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-04-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-04-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 4 月 2 æ—¥</td> <td>2018-04-01<br />2018-04-05</td> @@ -113,7 +148,12 @@ <tr> <td><a href="/security/bulletin/2018-03-01.html">2018 å¹´ 3 月</a></td> <td> - <a href="/security/bulletin/2018-03-01.html">English</a> / <a href="/security/bulletin/2018-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-03-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-03-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-03-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-03-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-03-01.html">English</a> / + <a href="/security/bulletin/2018-03-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-03-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-03-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-03-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-03-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 3 月 5 æ—¥</td> <td>2018-03-01<br />2018-03-05</td> @@ -121,7 +161,12 @@ <tr> <td><a href="/security/bulletin/2018-02-01.html">2018 å¹´ 2 月</a></td> <td> - <a href="/security/bulletin/2018-02-01.html">English</a> / <a href="/security/bulletin/2018-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-02-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-02-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-02-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-02-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-02-01.html">English</a> / + <a href="/security/bulletin/2018-02-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-02-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-02-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-02-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-02-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 2 月 5 æ—¥</td> <td>2018-02-01<br />2018-02-05</td> @@ -129,7 +174,12 @@ <tr> <td><a href="/security/bulletin/2018-01-01.html">2018 å¹´ 1 月</a></td> <td> - <a href="/security/bulletin/2018-01-01.html">English</a> / <a href="/security/bulletin/2018-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2018-01-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2018-01-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2018-01-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2018-01-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2018-01-01.html">English</a> / + <a href="/security/bulletin/2018-01-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-01-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-01-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-01-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-01-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 1 月 2 æ—¥</td> <td>2018-01-01<br />2018-01-05</td> @@ -137,7 +187,12 @@ <tr> <td><a href="/security/bulletin/2017-12-01.html">2017 å¹´ 12 月</a></td> <td> - <a href="/security/bulletin/2017-12-01.html">English</a> / <a href="/security/bulletin/2017-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-12-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-12-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-12-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-12-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-12-01.html">English</a> / + <a href="/security/bulletin/2017-12-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-12-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-12-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-12-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-12-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 12 月 4 æ—¥</td> <td>2017-12-01<br />2017-12-05</td> @@ -145,7 +200,12 @@ <tr> <td><a href="/security/bulletin/2017-11-01.html">2017 å¹´ 11 月</a></td> <td> - <a href="/security/bulletin/2017-11-01.html">English</a> / <a href="/security/bulletin/2017-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-11-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-11-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-11-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-11-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-11-01.html">English</a> / + <a href="/security/bulletin/2017-11-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-11-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-11-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-11-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-11-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 11 月 6 æ—¥</td> <td>2017-11-01<br />2017-11-05<br />2017-11-06</td> @@ -153,7 +213,12 @@ <tr> <td><a href="/security/bulletin/2017-10-01.html">2017 å¹´ 10 月</a></td> <td> - <a href="/security/bulletin/2017-10-01.html">English</a> / <a href="/security/bulletin/2017-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-10-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-10-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-10-01.html">English</a> / + <a href="/security/bulletin/2017-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 10 月 2 æ—¥</td> <td>2017-10-01<br />2017-10-05</td> @@ -161,7 +226,12 @@ <tr> <td><a href="/security/bulletin/2017-09-01.html">2017 å¹´ 9 月</a></td> <td> - <a href="/security/bulletin/2017-09-01.html">English</a> / <a href="/security/bulletin/2017-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-09-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-09-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-09-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-09-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-09-01.html">English</a> / + <a href="/security/bulletin/2017-09-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-09-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-09-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-09-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-09-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 9 月 5 æ—¥</td> <td>2017-09-01<br />2017-09-05</td> @@ -169,7 +239,12 @@ <tr> <td><a href="/security/bulletin/2017-08-01.html">2017 å¹´ 8 月</a></td> <td> - <a href="/security/bulletin/2017-08-01.html">English</a> / <a href="/security/bulletin/2017-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-08-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-08-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-08-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-08-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-08-01.html">English</a> / + <a href="/security/bulletin/2017-08-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-08-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-08-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-08-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-08-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 8 月 7 æ—¥</td> <td>2017-08-01<br />2017-08-05</td> @@ -177,7 +252,12 @@ <tr> <td><a href="/security/bulletin/2017-07-01.html">2017 å¹´ 7 月</a></td> <td> - <a href="/security/bulletin/2017-07-01.html">English</a> / <a href="/security/bulletin/2017-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-07-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-07-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-07-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-07-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-07-01.html">English</a> / + <a href="/security/bulletin/2017-07-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-07-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-07-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-07-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-07-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 7 月 5 æ—¥</td> <td>2017-07-01<br />2017-07-05</td> @@ -185,7 +265,12 @@ <tr> <td><a href="/security/bulletin/2017-06-01.html">2017 å¹´ 6 月</a></td> <td> - <a href="/security/bulletin/2017-06-01.html">English</a> / <a href="/security/bulletin/2017-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-06-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-06-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-06-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-06-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-06-01.html">English</a> / + <a href="/security/bulletin/2017-06-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-06-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-06-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-06-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-06-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 6 月 5 æ—¥</td> <td>2017-06-01<br />2017-06-05</td> @@ -193,35 +278,60 @@ <tr> <td><a href="/security/bulletin/2017-05-01.html">2017 å¹´ 5 月</a></td> <td> - <a href="/security/bulletin/2017-05-01.html">English</a> / <a href="/security/bulletin/2017-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-05-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-05-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-05-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-05-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2017-05-01.html">English</a> / + <a href="/security/bulletin/2017-05-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-05-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-05-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-05-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-05-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 5 月 1 æ—¥</td> <td>2017-05-01<br />2017-05-05</td> </tr> <tr> <td><a href="/security/bulletin/2017-04-01.html">2017 å¹´ 4 月</a></td> - <td><a href="/security/bulletin/2017-04-01.html">English</a> / <a href="/security/bulletin/2017-04-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-04-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-04-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-04-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-04-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <td><a href="/security/bulletin/2017-04-01.html">English</a> / + <a href="/security/bulletin/2017-04-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-04-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-04-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-04-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-04-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 4 月 3 æ—¥</td> <td>2017-04-01<br />2017-04-05</td> </tr> <tr> <td><a href="/security/bulletin/2017-03-01.html">2017 å¹´ 3 月</a></td> - <td><a href="/security/bulletin/2017-03-01.html">English</a> / <a href="/security/bulletin/2017-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-03-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-03-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-03-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-03-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <td><a href="/security/bulletin/2017-03-01.html">English</a> / + <a href="/security/bulletin/2017-03-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-03-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-03-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-03-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-03-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 3 月 6 æ—¥</td> <td>2017-03-01<br />2017-03-05</td> </tr> <tr> <td><a href="/security/bulletin/2017-02-01.html">2017 å¹´ 2 月</a></td> - <td><a href="/security/bulletin/2017-02-01.html">English</a> / <a href="/security/bulletin/2017-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-02-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-02-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-02-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-02-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <td><a href="/security/bulletin/2017-02-01.html">English</a> / + <a href="/security/bulletin/2017-02-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-02-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-02-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-02-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-02-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 2 月 6 æ—¥</td> <td>2017-02-01<br />2017-02-05</td> </tr> <tr> <td><a href="/security/bulletin/2017-01-01.html">2017 å¹´ 1 月</a></td> - <td><a href="/security/bulletin/2017-01-01.html">English</a> / <a href="/security/bulletin/2017-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2017-01-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2017-01-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2017-01-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2017-01-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <td><a href="/security/bulletin/2017-01-01.html">English</a> / + <a href="/security/bulletin/2017-01-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2017-01-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2017-01-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2017-01-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2017-01-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2017 å¹´ 1 月 3 æ—¥</td> <td>2017-01-01<br />2017-01-05</td> @@ -229,7 +339,12 @@ <tr> <td><a href="/security/bulletin/2016-12-01.html">2016 å¹´ 12 月</a></td> <td> - <a href="/security/bulletin/2016-12-01.html">English</a> / <a href="/security/bulletin/2016-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-12-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-12-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-12-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-12-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-12-01.html">English</a> / + <a href="/security/bulletin/2016-12-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-12-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-12-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-12-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-12-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 12 月 5 æ—¥</td> <td>2016-12-01<br />2016-12-05</td> @@ -237,7 +352,12 @@ <tr> <td><a href="/security/bulletin/2016-11-01.html">2016 å¹´ 11 月</a></td> <td> - <a href="/security/bulletin/2016-11-01.html">English</a> / <a href="/security/bulletin/2016-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-11-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-11-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-11-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-11-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-11-01.html">English</a> / + <a href="/security/bulletin/2016-11-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-11-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-11-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-11-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-11-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 11 月 7 æ—¥</td> <td>2016-11-01<br />2016-11-05<br />2016-11-06</td> @@ -245,7 +365,12 @@ <tr> <td><a href="/security/bulletin/2016-10-01.html">2016 å¹´ 10 月</a></td> <td> - <a href="/security/bulletin/2016-10-01.html">English</a> / <a href="/security/bulletin/2016-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-10-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-10-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-10-01.html">English</a> / + <a href="/security/bulletin/2016-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 10 月 3 æ—¥</td> <td>2016-10-01<br />2016-10-05</td> @@ -253,7 +378,12 @@ <tr> <td><a href="/security/bulletin/2016-09-01.html">2016 å¹´ 9 月</a></td> <td> - <a href="/security/bulletin/2016-09-01.html">English</a> / <a href="/security/bulletin/2016-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-09-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-09-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-09-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-09-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-09-01.html">English</a> / + <a href="/security/bulletin/2016-09-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-09-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-09-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-09-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-09-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 9 月 6 æ—¥</td> <td>2016-09-01<br />2016-09-05<br />2016-09-06</td> @@ -261,7 +391,12 @@ <tr> <td><a href="/security/bulletin/2016-08-01.html">2016 å¹´ 8 月</a></td> <td> - <a href="/security/bulletin/2016-08-01.html">English</a> / <a href="/security/bulletin/2016-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-08-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-08-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-08-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-08-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-08-01.html">English</a> / + <a href="/security/bulletin/2016-08-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-08-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-08-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-08-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-08-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 8 月 1 æ—¥</td> <td>2016-08-01<br />2016-08-05</td> @@ -269,7 +404,12 @@ <tr> <td><a href="/security/bulletin/2016-07-01.html">2016 å¹´ 7 月</a></td> <td> - <a href="/security/bulletin/2016-07-01.html">English</a> / <a href="/security/bulletin/2016-07-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-07-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-07-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-07-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-07-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-07-01.html">English</a> / + <a href="/security/bulletin/2016-07-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-07-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-07-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-07-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-07-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 7 月 6 æ—¥</td> <td>2016-07-01<br />2016-07-05</td> @@ -277,7 +417,12 @@ <tr> <td><a href="/security/bulletin/2016-06-01.html">2016 å¹´ 6 月</a></td> <td> - <a href="/security/bulletin/2016-06-01.html">English</a> / <a href="/security/bulletin/2016-06-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-06-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-06-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-06-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-06-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-06-01.html">English</a> / + <a href="/security/bulletin/2016-06-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-06-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-06-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-06-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-06-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 6 月 6 æ—¥</td> <td>2016-06-01</td> @@ -285,7 +430,12 @@ <tr> <td><a href="/security/bulletin/2016-05-01.html">2016 å¹´ 5 月</a></td> <td> - <a href="/security/bulletin/2016-05-01.html">English</a> / <a href="/security/bulletin/2016-05-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-05-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-05-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-05-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-05-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-05-01.html">English</a> / + <a href="/security/bulletin/2016-05-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-05-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-05-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-05-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-05-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 5 月 2 æ—¥</td> <td>2016-05-01</td> @@ -293,7 +443,12 @@ <tr> <td><a href="/security/bulletin/2016-04-02.html">2016 å¹´ 4 月</a></td> <td> - <a href="/security/bulletin/2016-04-02.html">English</a> / <a href="/security/bulletin/2016-04-02.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-04-02.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-04-02.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-04-02.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-04-02.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-04-02.html">English</a> / + <a href="/security/bulletin/2016-04-02.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-04-02.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-04-02.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-04-02.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-04-02.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 4 月 4 æ—¥</td> <td>2016-04-02</td> @@ -301,7 +456,12 @@ <tr> <td><a href="/security/bulletin/2016-03-01.html">2016 å¹´ 3 月</a></td> <td> - <a href="/security/bulletin/2016-03-01.html">English</a> / <a href="/security/bulletin/2016-03-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-03-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-03-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-03-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-03-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-03-01.html">English</a> / + <a href="/security/bulletin/2016-03-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-03-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-03-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-03-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-03-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 3 月 7 æ—¥</td> <td>2016-03-01</td> @@ -309,7 +469,12 @@ <tr> <td><a href="/security/bulletin/2016-02-01.html">2016 å¹´ 2 月</a></td> <td> - <a href="/security/bulletin/2016-02-01.html">English</a> / <a href="/security/bulletin/2016-02-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-02-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-02-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-02-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-02-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-02-01.html">English</a> / + <a href="/security/bulletin/2016-02-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-02-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-02-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-02-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-02-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 2 月 1 æ—¥</td> <td>2016-02-01</td> @@ -317,7 +482,12 @@ <tr> <td><a href="/security/bulletin/2016-01-01.html">2016 å¹´ 1 月</a></td> <td> - <a href="/security/bulletin/2016-01-01.html">English</a> / <a href="/security/bulletin/2016-01-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2016-01-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2016-01-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2016-01-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2016-01-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2016-01-01.html">English</a> / + <a href="/security/bulletin/2016-01-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2016-01-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2016-01-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2016-01-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2016-01-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2016 å¹´ 1 月 4 æ—¥</td> <td>2016-01-01</td> @@ -325,7 +495,12 @@ <tr> <td><a href="/security/bulletin/2015-12-01.html">2015 å¹´ 12 月</a></td> <td> - <a href="/security/bulletin/2015-12-01.html">English</a> / <a href="/security/bulletin/2015-12-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-12-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2015-12-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2015-12-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2015-12-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2015-12-01.html">English</a> / + <a href="/security/bulletin/2015-12-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2015-12-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2015-12-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2015-12-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2015-12-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2015 å¹´ 12 月 7 æ—¥</td> <td>2015-12-01</td> @@ -333,7 +508,12 @@ <tr> <td><a href="/security/bulletin/2015-11-01.html">2015 å¹´ 11 月</a></td> <td> - <a href="/security/bulletin/2015-11-01.html">English</a> / <a href="/security/bulletin/2015-11-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-11-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2015-11-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2015-11-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2015-11-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2015-11-01.html">English</a> / + <a href="/security/bulletin/2015-11-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2015-11-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2015-11-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2015-11-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2015-11-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2015 å¹´ 11 月 2 æ—¥</td> <td>2015-11-01</td> @@ -341,7 +521,12 @@ <tr> <td><a href="/security/bulletin/2015-10-01.html">2015 å¹´ 10 月</a></td> <td> - <a href="/security/bulletin/2015-10-01.html">English</a> / <a href="/security/bulletin/2015-10-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-10-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2015-10-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2015-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2015-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2015-10-01.html">English</a> / + <a href="/security/bulletin/2015-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2015-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2015-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2015-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2015-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2015 å¹´ 10 月 5 æ—¥</td> <td>2015-10-01</td> @@ -349,7 +534,12 @@ <tr> <td><a href="/security/bulletin/2015-09-01.html">2015 å¹´ 9 月</a></td> <td> - <a href="/security/bulletin/2015-09-01.html">English</a> / <a href="/security/bulletin/2015-09-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-09-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2015-09-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2015-09-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2015-09-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2015-09-01.html">English</a> / + <a href="/security/bulletin/2015-09-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2015-09-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2015-09-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2015-09-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2015-09-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2015 å¹´ 9 月 9 æ—¥</td> <td>æ— </td> @@ -357,7 +547,12 @@ <tr> <td><a href="/security/bulletin/2015-08-01.html">2015 å¹´ 8 月</a></td> <td> - <a href="/security/bulletin/2015-08-01.html">English</a> / <a href="/security/bulletin/2015-08-01.html?hl=ja">日本語</a> / <a href="/security/bulletin/2015-08-01.html?hl=ko">í•œêµì–´</a> / <a href="/security/bulletin/2015-08-01.html?hl=ru">руÌÑÑкий</a> / <a href="/security/bulletin/2015-08-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / <a href="/security/bulletin/2015-08-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> + <a href="/security/bulletin/2015-08-01.html">English</a> / + <a href="/security/bulletin/2015-08-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2015-08-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2015-08-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2015-08-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2015-08-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2015 å¹´ 8 月 13 æ—¥</td> <td>æ— </td> diff --git a/zh-cn/security/bulletin/pixel/2018-04-01.html b/zh-cn/security/bulletin/pixel/2018-04-01.html index 37fb9ff7..96a8142a 100644 --- a/zh-cn/security/bulletin/pixel/2018-04-01.html +++ b/zh-cn/security/bulletin/pixel/2018-04-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>和已更新的 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> @@ -56,7 +56,8 @@ </tr> <tr> <td>CVE-2017-13294</td> - <td><a href="https://android.googlesource.com/platform/packages/apps/Email/+/c3e0aba2a604ce7c3807d65df1e6a2b848287019">A-71814449</a> [<a href="https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/e00598532bbfc8618b7c051cbf6bd15491f61f27">2</a>]</td> + <td><a href="https://android.googlesource.com/platform/packages/apps/Email/+/c3e0aba2a604ce7c3807d65df1e6a2b848287019">A-71814449</a> + [<a href="https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/e00598532bbfc8618b7c051cbf6bd15491f61f27">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> @@ -159,7 +160,8 @@ </tr> <tr> <td>CVE-2017-13301</td> - <td><a href="https://android.googlesource.com/platform/frameworks/base/+/384689934d293acf532e3fea3e72ef78df4f2d1e">A-66498711</a> [<a href="https://android.googlesource.com/platform/frameworks/base/+/d52b215f82e464705373d794748325298f0a1f9a">2</a>]</td> + <td><a href="https://android.googlesource.com/platform/frameworks/base/+/384689934d293acf532e3fea3e72ef78df4f2d1e">A-66498711</a> + [<a href="https://android.googlesource.com/platform/frameworks/base/+/d52b215f82e464705373d794748325298f0a1f9a">2</a>]</td> <td>DoS</td> <td>ä¸</td> <td>8.0</td> @@ -305,14 +307,16 @@ </tr> <tr> <td>CVE-2018-3584</td> - <td>A-64610600<a href="#asterisk">*</a><br />QC-CR#2142046</td> + <td>A-64610600<a href="#asterisk">*</a><br /> + QC-CR#2142046</td> <td>ID</td> <td>ä¸</td> <td>rmnet_usb</td> </tr> <tr> <td>CVE-2017-8269</td> - <td>A-33967002<a href="#asterisk">*</a><br />QC-CR#2013145<br />QC-CR#2114278</td> + <td>A-33967002<a href="#asterisk">*</a><br /> + QC-CR#2013145<br />QC-CR#2114278</td> <td>ID</td> <td>ä¸</td> <td>IPA 驱动程åº</td> @@ -335,7 +339,9 @@ <tr> <td>CVE-2018-5825</td> <td>A-72957269<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=5ae227670444cf8ea7b8a8d98eab41404a03332f">QC-CR#2151146</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=cf0f031ffbb6a8e08e517f653045c3f81d7f2663">2</a>] [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=09a34b7878a732187f9138900667d8abb2b1c39c">3</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=5ae227670444cf8ea7b8a8d98eab41404a03332f">QC-CR#2151146</a> + [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=cf0f031ffbb6a8e08e517f653045c3f81d7f2663">2</a>] + [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=09a34b7878a732187f9138900667d8abb2b1c39c">3</a>]</td> <td>EoP</td> <td>ä¸</td> <td>IPA 驱动程åº</td> @@ -343,7 +349,8 @@ <tr> <td>CVE-2018-5824</td> <td>A-72957235<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=b34f6f3afe229e32a32418f75889279f6e00d157">QC-CR#2149399</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d3a92a1656a3ee2fc44d4ff98614a4f5b70f1893">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=b34f6f3afe229e32a32418f75889279f6e00d157">QC-CR#2149399</a> + [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d3a92a1656a3ee2fc44d4ff98614a4f5b70f1893">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>WLAN</td> @@ -406,7 +413,8 @@ <tr> <td>CVE-2018-3567</td> <td>A-72956997<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=f2627fca43bc4403a445c2b84481383ac0249364">QC-CR#2147119</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=25c131e8a807894e04f95bdeb1cbd0376eda3bea">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=f2627fca43bc4403a445c2b84481383ac0249364">QC-CR#2147119</a> + [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=25c131e8a807894e04f95bdeb1cbd0376eda3bea">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>WLAN</td> @@ -457,7 +465,9 @@ QC-CR#2120424</a></td> <tr> <td>CVE-2017-14880</td> <td>A-68992477<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=cbf3702ae1c5e2cacd6f15a5eb7a799e2f1ed96f">QC-CR#2078734</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=d72e444dce0b9d20fdcdc4daeb6227e3536eebf7">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=cbf3702ae1c5e2cacd6f15a5eb7a799e2f1ed96f"> +QC-CR#2078734</a> + [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=d72e444dce0b9d20fdcdc4daeb6227e3536eebf7">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>IPA WAN 驱动程åº</td> @@ -665,7 +675,13 @@ QC-CR#2120424</a></td> <td>Pixel 2ã€Pixel 2 XL</td> </tr> <tr> - <td>A-69017578<br />A-68138080<br />A-68205105<br />A-70731000<br />A-69574837<br />A-68474108<br />A-70406781</td> + <td>A-69017578<br /> + A-68138080<br /> + A-68205105<br /> + A-70731000<br /> + A-69574837<br /> + A-68474108<br /> + A-70406781</td> <td>连接ã€æ€§èƒ½</td> <td>改进部分è¿è¥å•†ç½‘络的连接性和性能</td> <td>Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XL</td> @@ -695,7 +711,8 @@ QC-CR#2120424</a></td> <td>Nexus 5Xã€Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XL</td> </tr> <tr> - <td>A-69261367<br />A-70512352</td> + <td>A-69261367<br /> + A-70512352</td> <td>çŸä¿¡</td> <td>改进部分è¿è¥å•†çš„彩信性能</td> <td>Nexus 5Xã€Pixelã€Pixel XLã€Pixel 2ã€Pixel 2 XL</td> @@ -743,7 +760,8 @@ QC-CR#2120424</a></td> <td>Pixel 2ã€Pixel 2 XL</td> </tr> <tr> - <td>A-70094083<br />A-70094701</td> + <td>A-70094083<br /> + A-70094701</td> <td>ç”µæ± </td> <td>改进 Pixel 2 å’Œ Pixel 2 XL çš„ç”µæ± æ€§èƒ½</td> <td>Pixel 2ã€Pixel 2 XL</td> diff --git a/zh-cn/security/bulletin/pixel/2018-05-01.html b/zh-cn/security/bulletin/pixel/2018-05-01.html index 87703d9c..1695d50d 100644 --- a/zh-cn/security/bulletin/pixel/2018-05-01.html +++ b/zh-cn/security/bulletin/pixel/2018-05-01.html @@ -245,7 +245,8 @@ <tr> <td>CVE-2018-5851</td> <td>A-72957505<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=103f385783f368cc5cd3c125390e6dfd43c36096">QC-CR#2146869</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=a9068fbb6bad55c9ecc80b9c3935969c8820c425">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=103f385783f368cc5cd3c125390e6dfd43c36096">QC-CR#2146869</a> +[<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=a9068fbb6bad55c9ecc80b9c3935969c8820c425">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>WLAN</td> @@ -253,7 +254,8 @@ <tr> <td>CVE-2018-5842</td> <td>A-72957257<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=f05883b3d442a7eb9df46a6bde08f1d5cdfc8133">QC-CR#2113219</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=21b91d4faa275d7b1ae58ad6a549cfa801066dfe">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=f05883b3d442a7eb9df46a6bde08f1d5cdfc8133">QC-CR#2113219</a> +[<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=21b91d4faa275d7b1ae58ad6a549cfa801066dfe">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>WLAN</td> @@ -308,7 +310,8 @@ <tr> <td>CVE-2018-3581</td> <td>A-72957725<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=becb9c5aaa05137ce1002f77f8a7d9e7e0799268">QC-CR#2150359</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=43c8a7f083c56b2f6aeac6d77721f5a70bdba99c">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=becb9c5aaa05137ce1002f77f8a7d9e7e0799268">QC-CR#2150359</a> + [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/commit/?id=43c8a7f083c56b2f6aeac6d77721f5a70bdba99c">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>WLAN</td> @@ -324,7 +327,8 @@ <tr> <td>CVE-2018-3572</td> <td>A-72957724<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b11e3a50197e73e397c36d335d56d905b99eb02c">QC-CR#2145996</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/opensource/audio-kernel/commit/?id=fbf66aa0c6ae84db64bdf0b8f3c3a32370c70c67">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b11e3a50197e73e397c36d335d56d905b99eb02c">QC-CR#2145996</a> + [<a href="https://source.codeaurora.org/quic/la/platform/vendor/opensource/audio-kernel/commit/?id=fbf66aa0c6ae84db64bdf0b8f3c3a32370c70c67">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>音频</td> @@ -370,7 +374,8 @@ <tr> <td>CVE-2017-15843</td> <td>A-72956941<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=a549abd08f3a52593d9602128c63c1212e90984b">QC-CR#2032076</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e05adec18cbc3c9213cc293441a2be8683339b4a">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=a549abd08f3a52593d9602128c63c1212e90984b">QC-CR#2032076</a> +[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e05adec18cbc3c9213cc293441a2be8683339b4a">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>Floor_vote 驱动程åº</td> @@ -378,7 +383,8 @@ <tr> <td>CVE-2017-15842</td> <td>A-72957040<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=c4ab75dfc22f644fb5ee70bd515aaf633761cd3b">QC-CR#2123291</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/opensource/audio-kernel/commit/?id=6d42b0e51ed7f8e51397d89af66c1453beba51cd">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=c4ab75dfc22f644fb5ee70bd515aaf633761cd3b">QC-CR#2123291</a> + [<a href="https://source.codeaurora.org/quic/la/platform/vendor/opensource/audio-kernel/commit/?id=6d42b0e51ed7f8e51397d89af66c1453beba51cd">2</a>]</td> <td>EoP</td> <td>ä¸</td> <td>Qdsp6v2</td> @@ -542,7 +548,7 @@ <tr> <td>1.1</td> <td>2018 å¹´ 5 月 9 æ—¥</td> - <td>在本公告ä¸æ·»åŠ 了 AOSP 链接。</td> + <td>ä¿®è®¢äº†æœ¬å…¬å‘Šï¼Œæ·»åŠ äº† AOSP 链接。</td> </tr> </tbody></table> diff --git a/zh-cn/security/bulletin/pixel/2018-07-01.html b/zh-cn/security/bulletin/pixel/2018-07-01.html index e99584fb..1cdd45d2 100644 --- a/zh-cn/security/bulletin/pixel/2018-07-01.html +++ b/zh-cn/security/bulletin/pixel/2018-07-01.html @@ -37,7 +37,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>和已更新的 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,7 +50,7 @@ <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>已更新的 AOSP 版本</th> @@ -88,7 +88,7 @@ <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>已更新的 AOSP 版本</th> @@ -119,7 +119,7 @@ <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>已更新的 AOSP 版本</th> @@ -171,7 +171,7 @@ <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>组件</th> @@ -208,7 +208,7 @@ <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=57ebd808a97d7c5b1e1afb937c2db22beba3c1f8">ä¸Šæ¸¸å†…æ ¸</a></td> <td>EoP</td> <td>ä¸</td> - <td>防ç«å¢™</td> + <td>netfilter</td> </tr> <tr> @@ -240,7 +240,7 @@ <col width="30%" /> </colgroup><tbody><tr> <th>CVE</th> - <th>å‚考内容</th> + <th>å‚考编å·</th> <th>类型</th> <th>严é‡ç¨‹åº¦</th> <th>组件</th> @@ -325,12 +325,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> @@ -389,17 +389,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> @@ -423,10 +423,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>上针对 Pixel/Nexus 设备æ供的最新二进制驱动程åºä¸é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。 </p> <p> <strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告ä¸ï¼Ÿ</strong> diff --git a/zh-cn/security/bulletin/pixel/2018-08-01.html b/zh-cn/security/bulletin/pixel/2018-08-01.html index ee83ed14..c76f1576 100644 --- a/zh-cn/security/bulletin/pixel/2018-08-01.html +++ b/zh-cn/security/bulletin/pixel/2018-08-01.html @@ -120,7 +120,8 @@ <tr> <td>CVE-2018-9441</td> <td> -<a href="https://android.googlesource.com/platform/system/bt/+/c3c69bed0f76178c640dd8e726967b9cdea5dece">A-74075873</a> [<a href="https://android.googlesource.com/platform/system/bt/+/3a2799939b2da543ed3a62f29db658cb05f8ad3b">2</a>] +<a href="https://android.googlesource.com/platform/system/bt/+/c3c69bed0f76178c640dd8e726967b9cdea5dece">A-74075873</a> +[<a href="https://android.googlesource.com/platform/system/bt/+/3a2799939b2da543ed3a62f29db658cb05f8ad3b">2</a>] </td> <td>ID</td> <td>ä¸</td> @@ -231,7 +232,9 @@ <tr> <td>CVE-2018-5910</td> <td>A-79422277<br /> -<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=b67e04e3696f05411b7434c8b194895d273b00c5">QC-CR#2175499</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=d9344c2f4b60cf5d4c747c11f3cb0b6f1558db78">2</a>] +<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=b67e04e3696f05411b7434c8b194895d273b00c5"> +QC-CR#2175499</a> +[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=d9344c2f4b60cf5d4c747c11f3cb0b6f1558db78">2</a>] </td> <td>EoP</td> <td>ä¸</td> @@ -248,7 +251,9 @@ <tr> <td>CVE-2018-5908</td> <td>A-79422409<br /> -<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=28e5918c60b832091c6b3618747258803cbd3302">QC-CR#2171758</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=4689d03e5db548d263232c274bf307956207da27">2</a>] +<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=28e5918c60b832091c6b3618747258803cbd3302"> +QC-CR#2171758</a> +[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=4689d03e5db548d263232c274bf307956207da27">2</a>] </td> <td>EoP</td> <td>ä¸</td> @@ -265,7 +270,9 @@ <tr> <td>CVE-2018-5904</td> <td>A-79421260<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=88b838c8952ec6414c72449ae15768d15d2606dd">QC-CR#2184702</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=8e82c0d84ccee87309fd22f8208915f0ba502b26">2</a>] + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=88b838c8952ec6414c72449ae15768d15d2606dd"> +QC-CR#2184702</a> +[<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=8e82c0d84ccee87309fd22f8208915f0ba502b26">2</a>] </td> <td>EoP</td> <td>ä¸</td> @@ -274,7 +281,8 @@ <tr> <td>CVE-2018-5903</td> <td>A-79421737<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=20365fa599f42f6e1f175d9d5d60d964927c2160">QC-CR#2185477</a></td> + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=20365fa599f42f6e1f175d9d5d60d964927c2160"> +QC-CR#2185477</a></td> <td>EoP</td> <td>ä¸</td> <td>qcacld 3.0</td> @@ -288,21 +296,24 @@ </tr> <tr> <td>CVE-2017-18307</td> - <td>A-73888283<a href="#asterisk">*</a><br />QC-CR#2026045</td> + <td>A-73888283<a href="#asterisk">*</a><br /> + QC-CR#2026045</td> <td>ID</td> <td>ä¸</td> <td>qcacld-3.0</td> </tr> <tr> <td>CVE-2017-9711</td> - <td>A-36367253<a href="#asterisk">*</a><br />QC-CR#2046006</td> + <td>A-36367253<a href="#asterisk">*</a><br /> + QC-CR#2046006</td> <td>EoP</td> <td>ä¸</td> <td>IPA</td> </tr> <tr> <td>CVE-2018-3587</td> - <td>A-65542521<a href="#asterisk">*</a><br />QC-CR#2120605</td> + <td>A-65542521<a href="#asterisk">*</a><br /> + QC-CR#2120605</td> <td>EoP</td> <td>ä¸</td> <td>qcacld-2.0</td> @@ -327,7 +338,8 @@ <tr> <td>CVE-2017-13295</td> <td> -<a href="https://android.googlesource.com/platform/frameworks/base/+/da24aa45a8b65a7b9adbe12ff94bf891bdd38825">A-62537081</a> [<a href="https://android.googlesource.com/platform/packages/apps/PackageInstaller/+/3af01bd93513d902dbb5382b10109fdf3ab29d2d">2</a>] +<a href="https://android.googlesource.com/platform/frameworks/base/+/da24aa45a8b65a7b9adbe12ff94bf891bdd38825">A-62537081</a> +[<a href="https://android.googlesource.com/platform/packages/apps/PackageInstaller/+/3af01bd93513d902dbb5382b10109fdf3ab29d2d">2</a>] </td> <td>DoS</td> <td>ä¸</td> @@ -379,7 +391,8 @@ <tr> <td>CVE-2017-15817</td> <td>A-68992394<br /> - <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=fe43c2b64ac81199de17efc258e95546cb0546f1">QC-CR#2076603</a> [<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=8ba78e506e5002cdae525dd544dbf1df0ccce1ef">2</a>] + <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=fe43c2b64ac81199de17efc258e95546cb0546f1">QC-CR#2076603</a> +[<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/prima/commit/?id=8ba78e506e5002cdae525dd544dbf1df0ccce1ef">2</a>] <br /> <a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=343a3f28338788c5c91289f53171c1f71f293cd7">QC-CR#2084599</a> <br /> diff --git a/zh-cn/security/bulletin/pixel/2018-09-01.html b/zh-cn/security/bulletin/pixel/2018-09-01.html index 1d6273cb..5b742fb8 100644 --- a/zh-cn/security/bulletin/pixel/2018-09-01.html +++ b/zh-cn/security/bulletin/pixel/2018-09-01.html @@ -114,8 +114,7 @@ <tr> <td>CVE-2018-11273</td> <td>A-109741750<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=789d4d21c3f1818dcbf74da4a051598e8f53676c">QC-CR#2204285</a> - [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=f34f6271362484c1f87f4176e72a3bfb80ee7711">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=789d4d21c3f1818dcbf74da4a051598e8f53676c">QC-CR#2204285</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=f34f6271362484c1f87f4176e72a3bfb80ee7711">2</a>]</td> <td>N/A</td> <td>ä¸</td> <td>音频</td> @@ -131,8 +130,7 @@ <tr> <td>CVE-2018-11281</td> <td>A-109741734<br /> - <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=4bc7311e9ea9145a615184626cc43a8b92e7619c">QC-CR#2191541</a> - [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=c9861d16283cb4279de98a6695e0a4e6ea0230cb">2</a>]</td> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=4bc7311e9ea9145a615184626cc43a8b92e7619c">QC-CR#2191541</a> [<a href="https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=c9861d16283cb4279de98a6695e0a4e6ea0230cb">2</a>]</td> <td>N/A</td> <td>ä¸</td> <td>æ•°æ® HLOS - LNX</td> diff --git a/zh-cn/security/bulletin/pixel/2018-11-01.html b/zh-cn/security/bulletin/pixel/2018-11-01.html new file mode 100644 index 00000000..b1623f8c --- /dev/null +++ b/zh-cn/security/bulletin/pixel/2018-11-01.html @@ -0,0 +1,249 @@ +<html devsite><head> + <title>Pixel / Nexus 安全公告 - 2018 å¹´ 11 月</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 å¹´ 11 月 5 æ—¥</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-11-05 或更新,则æ„味ç€å·²è§£å†³æœ¬å…¬å‘Šä»¥åŠ 2018 å¹´ 11 月的 Android 安全公告ä¸æ‰€è¿°çš„所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅<a href="https://support.google.com/pixelphone/answer/4457705" class="external">查看并更新 Android 版本</a>。 +</p> +<p> +所有å—支æŒçš„ Google 设备都将会收到 2018-11-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-11-01">2018 å¹´ 11 月的 Android 安全公告</a>ä¸æ‰€è¿°çš„安全æ¼æ´žå¤–,Pixel å’Œ Nexus 设备ä¸è¿˜åŒ…å«é’ˆå¯¹ä¸‹è¿°å®‰å…¨æ¼æ´žçš„è¡¥ä¸ç¨‹åºã€‚åˆä½œä¼™ä¼´åœ¨è‡³å°‘一个月å‰å°±å·²æ”¶åˆ°å…³äºŽè¿™äº›é—®é¢˜çš„通知,并å¯ä»¥é€‰æ‹©å°†é’ˆå¯¹è¿™äº›é—®é¢˜çš„è¡¥ä¸ç¨‹åºçº³å…¥åˆ°å…¶è®¾å¤‡æ›´æ–°ä¸ã€‚ +</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="htc-components">HTC 组件</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-9580</td> + <td>A-76222002<a href="#asterisk">*</a></td> + <td>EoP</td> + <td>ä¸</td> + <td>å¼•å¯¼åŠ è½½ç¨‹åº</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-components">Qualcomm 组件</h3> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>å‚考内容</th> + <th>类型</th> + <th>严é‡ç¨‹åº¦</th> + <th>组件</th> + </tr> + <tr> + <td>CVE-2017-14888</td> + <td>A-70237718<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d50dfd647b2396d2e2c05b7aee84d831e4a18d68">QC-CR#2119729</a></td> + <td>N/A</td> + <td>ä¸</td> + <td>WLAN 主机</td> + </tr> + <tr> + <td>CVE-2017-15835</td> + <td>A-72957155<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=b6eeed234707244c799ae7009e67312b8bf33ccd">QC-CR#2125781</a></td> + <td>N/A</td> + <td>ä¸</td> + <td>WLAN 主机</td> + </tr> +</tbody></table> + +<h2 id="functional-patches">功能补ä¸ç¨‹åº</h2> + +<p>在 11 月份的 OTA 更新期间,所有æè½½ Android 9 çš„ Pixel 设备都将会收到 Android 9 更新。æ¤ç±»æ›´æ–°æ¯å£åº¦å‘布一次,其ä¸åŒ…å«é’ˆå¯¹ Android å¹³å°å’Œå—支æŒçš„ Pixel 设备å„个部分的多项功能更新和改进。</p> + +<p>æ¤æ›´æ–°è¿˜åŒ…å«ä»¥ä¸‹ä¿®å¤ç¨‹åºï¼Œè¿™äº›ä¿®å¤ç¨‹åºå¯¹äºŽ Android è®¾å¤‡åˆ¶é€ å•†è€Œè¨€å¿…ä¸å¯å°‘。</p> + +<table> + <tbody><tr> + <th>å‚考内容</th> + <th>类别</th> + <th>改进</th> + <th>设备</th> + </tr> + <tr> + <td>A-111401911</td> + <td>显示</td> + <td>改进了使用<a href="/devices/tech/display/pip">ç”»ä¸ç”»</a>的设备的性能</td> + <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-109769728</td> + <td>框架</td> + <td>改进了 Strongbox 对称密钥生æˆè¯·æ±‚</td> + <td>Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-112198479</td> + <td>显示</td> + <td>改进了使用<a href="/devices/tech/display/pip">ç”»ä¸ç”»</a>的应用的性能</td> + <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-112714177</td> + <td>通知</td> + <td>æå‡äº†é€šçŸ¥çš„稳定性</td> + <td>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-11-05 或更新,则æ„味ç€å·²è§£å†³ 2018-11-05 以åŠä¹‹å‰çš„所有安全补ä¸ç¨‹åºçº§åˆ«æ¶µç›–的所有问题。è¦äº†è§£å¦‚何查看设备的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œè¯·å‚阅 <a href="https://support.google.com/pixelphone/answer/4457705#pixel_phones&nexus_devices" class="external">Pixel å’Œ Nexus 更新时间表</a>ä¸çš„说明。 +</p> +<p id="type"> +<strong>2.“类型â€åˆ—ä¸çš„æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong> +</p> +<p> +在æ¼æ´žè¯¦æƒ…表内,“类型â€åˆ—ä¸çš„æ¡ç›®æ˜¯å®‰å…¨æ¼æ´žçš„分类。<em></em> +</p> +<table> + <colgroup><col width="25%" /> + <col width="75%" /> + </colgroup><tbody><tr> + <th>缩写è¯</th> + <th>定义</th> + </tr> + <tr> + <td>RCE</td> + <td>远程代ç 执行</td> + </tr> + <tr> + <td>EoP</td> + <td>ææƒ</td> + </tr> + <tr> + <td>ID</td> + <td>ä¿¡æ¯æŠ«éœ²</td> + </tr> + <tr> + <td>DoS</td> + <td>æ‹’ç»æœåŠ¡</td> + </tr> + <tr> + <td>N/A</td> + <td>没有分类</td> + </tr> +</tbody></table> +<p> +<strong>3.“å‚考内容â€åˆ—ä¸çš„æ¡ç›®è¡¨ç¤ºä»€ä¹ˆæ„æ€ï¼Ÿ<em></em></strong> +</p> +<p> +在æ¼æ´žè¯¦æƒ…表内,“å‚考内容â€åˆ—ä¸çš„æ¡ç›®å¯èƒ½åŒ…å«ç”¨äºŽæ ‡è¯†å‚考值所属组织的å‰ç¼€ã€‚<em></em> +</p> +<table> + <colgroup><col width="25%" /> + <col width="75%" /> + </colgroup><tbody><tr> + <th>å‰ç¼€</th> + <th>å‚考内容</th> + </tr> + <tr> + <td>A-</td> + <td>Android Bug ID</td> + </tr> + <tr> + <td>QC-</td> + <td>Qualcomm å‚考编å·</td> + </tr> + <tr> + <td>M-</td> + <td>MediaTek å‚考编å·</td> + </tr> + <tr> + <td>N-</td> + <td>NVIDIA å‚考编å·</td> + </tr> + <tr> + <td>B-</td> + <td>Broadcom å‚考编å·</td> + </tr> +</tbody></table> +<p id="asterisk"> +<strong>4. 在“å‚考内容â€åˆ—ä¸ï¼ŒAndroid Bug ID æ—边的 * 表示什么æ„æ€ï¼Ÿ<em></em></strong> +</p> +<p> +如果问题尚未公开å‘布,则在“å‚考内容â€åˆ—ä¸ï¼Œç›¸åº” Android Bug ID æ—边会显示 *。<em></em><a href="https://developers.google.com/android/nexus/drivers" class="external">Google Developers 网站</a>上针对 Nexus 设备æ供的最新二进制驱动程åºä¸é€šå¸¸åŒ…å«æ—¨åœ¨è§£å†³ç›¸åº”问题的更新。 +</p> +<p> +<strong>5. 为什么è¦å°†å®‰å…¨æ¼æ´žæ‹†åˆ†åˆ°æœ¬å…¬å‘Šå’Œ Android 安全公告ä¸ï¼Ÿ</strong> +</p> +<p> +è¦åœ¨ Android 设备上声明最新的安全补ä¸ç¨‹åºçº§åˆ«ï¼Œå¿…é¡»ä¿®å¤ Android 安全公告ä¸è®°å½•çš„安全æ¼æ´žã€‚但在声明安全补ä¸ç¨‹åºçº§åˆ«æ—¶ï¼Œå¹¶ä¸æ˜¯å¿…é¡»è¦ä¿®å¤å…¶ä»–安全æ¼æ´žï¼ˆå¦‚本公告ä¸è®°å½•çš„æ¼æ´žï¼‰ã€‚ +</p> +<h2 id="versions">版本</h2> +<table> + <colgroup><col width="25%" /> + <col width="25%" /> + <col width="50%" /> + </colgroup><tbody><tr> + <th>版本</th> + <th>日期</th> + <th>备注</th> + </tr> + <tr> + <td>1.0</td> + <td>2018 å¹´ 11 月 5 æ—¥</td> + <td>å‘布了本公告。</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/zh-cn/security/bulletin/pixel/2018.html b/zh-cn/security/bulletin/pixel/2018.html index 795b45db..243614a2 100644 --- a/zh-cn/security/bulletin/pixel/2018.html +++ b/zh-cn/security/bulletin/pixel/2018.html @@ -35,14 +35,13 @@ </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018 å¹´ 10 月</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> - --> + <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> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-05</td> diff --git a/zh-cn/security/bulletin/pixel/index.html b/zh-cn/security/bulletin/pixel/index.html index c3c18935..40717bd0 100644 --- a/zh-cn/security/bulletin/pixel/index.html +++ b/zh-cn/security/bulletin/pixel/index.html @@ -44,14 +44,13 @@ </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018 å¹´ 10 月</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> - --> + <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> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-05</td> diff --git a/zh-cn/security/encryption/file-based.html b/zh-cn/security/encryption/file-based.html index 53194cb9..2622f3fe 100644 --- a/zh-cn/security/encryption/file-based.html +++ b/zh-cn/security/encryption/file-based.html @@ -50,7 +50,7 @@ Android 7.0 åŠæ›´é«˜ç‰ˆæœ¬æ”¯æŒæ–‡ä»¶çº§åŠ 密 (FBE)ã€‚é‡‡ç”¨æ–‡ä»¶çº§åŠ å¯†æ— è¿™ç§åŒºåˆ†èƒ½å¤Ÿä½¿å·¥ä½œèµ„æ–™æ›´åŠ å®‰å…¨ï¼Œå› ä¸ºè¿™æ ·ä¸€æ¥ï¼ŒåŠ 密ä¸å†åªåŸºäºŽå¯åŠ¨å¯†ç ,从而能够åŒæ—¶ä¿æŠ¤å¤šä½ç”¨æˆ·ã€‚ </p> <p> -Direct Boot API å…è®¸åŠ å¯†æ„ŸçŸ¥åž‹åº”ç”¨è®¿é—®ä¸Šè¿°ä»»ä½•ä¸€ä¸ªå˜å‚¨ç©ºé—´ã€‚<em></em>应用生命周期会å‘生一些å˜åŒ–,以便系统在用户的 CE å˜å‚¨ç©ºé—´å› 用户在é”定å±å¹•ä¸Šé¦–次输入å‡æ®è€Œè§£é”时,或者在工作资料æä¾›<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 å˜å‚¨ç©ºé—´å°†å§‹ç»ˆå¤„于解é”状æ€ã€‚ +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) 优化该功能的方法。 @@ -107,15 +107,18 @@ AOSP æä¾›çš„æ–‡ä»¶çº§åŠ å¯†å®žçŽ°ä¼šç”¨åˆ° Linux 4.4 å†…æ ¸ä¸çš„ EXT4 åŠ å¯†å </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> + <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> + <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> + <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> @@ -261,10 +264,10 @@ AOSP å®žçŽ°ä¼šç”¨åˆ°å†…æ ¸ä¸çš„“fscryptâ€åŠ å¯†ï¼ˆå— ext4 å’Œ f2fs 支æŒï¼ </p><ul> <li>身份验è¯ä»¤ç‰Œ</li><li>扩展å‡æ®</li><li>secdiscardable hash</li></ul> <p> -身份验è¯ä»¤ç‰Œæ˜¯ä¸€ä¸ªç»è¿‡åŠ 密和身份验è¯çš„令牌,由 <a href="/security/authentication/gatekeeper.html">Gatekeeper</a> 在用户æˆåŠŸç™»å½•æ—¶ç”Ÿæˆã€‚<em></em>除éžç”¨æˆ·æ供的身份验è¯ä»¤ç‰Œæ£ç¡®æ— 误,å¦åˆ™ TEE 将拒ç»ç”¨æˆ·ä½¿ç”¨è¯¥å¯†é’¥ã€‚如果用户没有任何å‡æ®ï¼Œåˆ™ä¸ä½¿ç”¨ä¹Ÿä¸éœ€è¦ä½¿ç”¨èº«ä»½éªŒè¯ä»¤ç‰Œã€‚ +身份验è¯ä»¤ç‰Œæ˜¯ä¸€ä¸ªç»è¿‡åŠ 密和身份验è¯çš„令牌<em></em>,由 <a href="/security/authentication/gatekeeper.html">Gatekeeper</a> 在用户æˆåŠŸç™»å½•æ—¶ç”Ÿæˆã€‚除éžç”¨æˆ·æ供的身份验è¯ä»¤ç‰Œæ£ç¡®æ— 误,å¦åˆ™ TEE 将拒ç»ç”¨æˆ·ä½¿ç”¨è¯¥å¯†é’¥ã€‚如果用户没有任何å‡æ®ï¼Œåˆ™ä¸ä½¿ç”¨ä¹Ÿä¸éœ€è¦ä½¿ç”¨èº«ä»½éªŒè¯ä»¤ç‰Œã€‚ </p> <p> -<em></em>扩展å‡æ®æ˜¯ä½¿ç”¨ <code>scrypt</code> ç®—æ³•è¿›è¡ŒåŠ ç›å’Œæ‰©å±•å¤„ç†åŽçš„用户å‡æ®ã€‚实际上,å‡æ®åœ¨è¢«ä¼ 递到 <code>vold</code>ï¼ˆä»¥ä¾¿ä¼ é€’åˆ° <code>scrypt</code>)之å‰ï¼Œä¼šåœ¨é”定设置æœåŠ¡ä¸æŽ¥å—一次哈希处ç†ã€‚扩展å‡æ®ä¼šä»¥åŠ 密形å¼ç»‘定到 TEE ä¸çš„相应密钥,并享有适用于 <code>KM_TAG_APPLICATION_ID</code> 的所有ä¿è¯ã€‚如果用户没有å‡æ®ï¼Œåˆ™ä¸ä½¿ç”¨ä¹Ÿä¸éœ€è¦ä½¿ç”¨æ‰©å±•å‡æ®ã€‚ +扩展å‡æ®æ˜¯ä½¿ç”¨ <code>scrypt</code> ç®—æ³•è¿›è¡ŒåŠ ç›å’Œæ‰©å±•å¤„ç†åŽçš„用户å‡æ®ã€‚<em></em>实际上,å‡æ®åœ¨è¢«ä¼ 递到 <code>vold</code>ï¼ˆä»¥ä¾¿ä¼ é€’åˆ° <code>scrypt</code>)之å‰ï¼Œä¼šåœ¨é”定设置æœåŠ¡ä¸æŽ¥å—一次哈希处ç†ã€‚扩展å‡æ®ä¼šä»¥åŠ 密形å¼ç»‘定到 TEE ä¸çš„相应密钥,并享有适用于 <code>KM_TAG_APPLICATION_ID</code> 的所有ä¿è¯ã€‚如果用户没有å‡æ®ï¼Œåˆ™ä¸ä½¿ç”¨ä¹Ÿä¸éœ€è¦ä½¿ç”¨æ‰©å±•å‡æ®ã€‚ </p> <p> <code>secdiscardable hash</code> 是 16 KB éšæœºæ–‡ä»¶çš„ 512 ä½å“ˆå¸Œï¼Œå’Œç”¨äºŽé‡å»ºç›¸åº”密钥的其他信æ¯ï¼ˆä¾‹å¦‚ç§å)å˜å‚¨åœ¨ä¸€èµ·ã€‚è¯¥æ–‡ä»¶ä¼šåœ¨ç›¸åº”å¯†é’¥è¢«åˆ é™¤æ—¶ä¸€å¹¶è¢«å®‰å…¨åˆ é™¤ï¼Œæˆ–è€…ä¼šä»¥æ–°çš„æ–¹å¼è¢«åŠ 密;采用这ç§é™„åŠ çš„ä¿æŠ¤æŽªæ–½åŽï¼Œæ”»å‡»è€…è¦æ¢å¤ç›¸åº”密钥,必须è¦å…ˆæ¢å¤è¿™ä¸ªè¢«å®‰å…¨åˆ 除的文件ä¸çš„æ¯ä¸€ä¸ªä½ã€‚secdiscardable hash åŒæ ·ä¼šä»¥åŠ 密形å¼ç»‘定到 TEE ä¸çš„相应密钥,并享有适用于 <code><a href="/security/keystore/tags#application_id">KM_TAG_APPLICATION_ID</a></code> 的所有ä¿è¯ã€‚ diff --git a/zh-cn/security/overview/updates-resources.html b/zh-cn/security/overview/updates-resources.html index f4cab2c7..d3d87862 100644 --- a/zh-cn/security/overview/updates-resources.html +++ b/zh-cn/security/overview/updates-resources.html @@ -163,7 +163,7 @@ <p>远程攻击å‘é‡æŒ‡æ”»å‡»è€…å¯ä»¥åœ¨ä¸å®‰è£…应用或ä¸å®žé™…æŽ¥è§¦è®¾å¤‡çš„æƒ…å†µä¸‹åˆ©ç”¨çš„é”™è¯¯ã€‚è¿™åŒ…æ‹¬å› æµè§ˆç½‘页ã€é˜…读电å邮件ã€æŽ¥æ”¶çŸä¿¡æˆ–连接到æ¶æ„网络而触å‘的错误。为了进行严é‡ç¨‹åº¦åˆ†çº§ï¼ŒAndroid 安全团队还会将“邻近â€æ”»å‡»å‘é‡è§†ä¸ºè¿œç¨‹æ”»å‡»å‘é‡ã€‚这包括åªèƒ½è¢«å®žé™…æŽ¥è¿‘ç›®æ ‡è®¾å¤‡çš„æ”»å‡»è€…åˆ©ç”¨çš„é”™è¯¯ï¼Œä¾‹å¦‚éœ€è¦å‘é€æ ¼å¼é”™è¯¯çš„ WLAN æ•°æ®åŒ…或è“牙数æ®åŒ…的错误。</p> -<p>本地攻击需è¦å—害者安装应用æ‰èƒ½å¾—逞。为了进行严é‡ç¨‹åº¦åˆ†çº§ï¼ŒAndroid 安全团队还会将现实攻击å‘é‡è§†ä¸ºæœ¬åœ°æ”»å‡»ã€‚这包括åªèƒ½è¢«å®žé™…接触到设备的攻击者利用的错误,例如é”定å±å¹•ä¸çš„错误,或需è¦æ’å…¥ USB æ•°æ®çº¿çš„错误。Android 安全团队还会将基于 NFC 的攻击视为本地攻击。</p> +<p>本地攻击需è¦å—害者è¿è¡Œåº”用æ‰èƒ½å¾—逞,å³éœ€è¦ç”¨æˆ·å®‰è£…å’Œè¿è¡Œåº”用,或åŒæ„è¿è¡Œ<a href="https://developer.android.com/topic/google-play-instant/">å…安装应用</a>。为了进行严é‡ç¨‹åº¦åˆ†çº§ï¼ŒAndroid 安全团队还会将现实攻击å‘é‡è§†ä¸ºæœ¬åœ°æ”»å‡»ã€‚这包括åªèƒ½è¢«å®žé™…接触到设备的攻击者利用的错误,例如é”定å±å¹•ä¸çš„错误,或需è¦æ’å…¥ USB æ•°æ®çº¿çš„错误。Android 安全团队还会将基于 NFC 的攻击视为本地攻击。</p> <h3 id="rating_modifiers">分级调节方å¼</h3> <p>尽管通常å¯ä»¥è½»æ¾ç¡®å®šå®‰å…¨æ¼æ´žçš„严é‡ç¨‹åº¦ï¼Œä½†åˆ†çº§å¯èƒ½ä¼šå› 具体情况而异。</p> diff --git a/zh-cn/security/selinux/concepts.html b/zh-cn/security/selinux/concepts.html index c1acae5c..40e5143a 100644 --- a/zh-cn/security/selinux/concepts.html +++ b/zh-cn/security/selinux/concepts.html @@ -81,7 +81,7 @@ allow domain null_device:chr_file { open }; </pre> <p> -<em></em><em></em><em></em><em></em>该规则å…许具有与 <code>domain</code> 属性关è”的任何域的进程对 target_type æ ‡ç¾ä¸º <code>null_device</code> çš„ <code>chr_file</code> 类(å—符设备文件)的对象执行 <code>open</code> æƒé™æ‰€æè¿°çš„æ“作。在实践ä¸ï¼Œè¯¥è§„则å¯èƒ½ä¼šæ‰©å±•ä¸ºåŒ…å«å…¶ä»–æƒé™ï¼š</p> +该规则å…许具有与 <code>domain</code> 属性关è”的任何域的进程对 target_type æ ‡ç¾ä¸º <code>null_device</code> çš„ <code>chr_file</code> 类(å—符设备文件)的对象执行 <code>open</code> æƒé™æ‰€æè¿°çš„æ“作。<em></em><em></em><em></em><em></em>在实践ä¸ï¼Œè¯¥è§„则å¯èƒ½ä¼šæ‰©å±•ä¸ºåŒ…å«å…¶ä»–æƒé™ï¼š</p> <pre class="devsite-click-to-copy"> allow domain null_device:chr_file { getattr open read ioctl lock append write}; diff --git a/zh-cn/security/selinux/validate.html b/zh-cn/security/selinux/validate.html index 34c36924..eaf1f492 100644 --- a/zh-cn/security/selinux/validate.html +++ b/zh-cn/security/selinux/validate.html @@ -60,10 +60,10 @@ tcontext=u:object_r:kmem_device:s0 tclass=chr_file <p>以下是æ¤æ‹’ç»äº‹ä»¶çš„å…³é”®å…ƒç´ ï¼š</p> <ul> - <li><em></em>æ“作 - 试图进行的æ“作会使用括å·çªå‡ºæ˜¾ç¤ºï¼š<code>read write</code> 或 <code>setenforce</code>。 - </li><li><em></em>æ“作方 - <code>scontext</code>(æ¥æºçŽ¯å¢ƒï¼‰æ¡ç›®è¡¨ç¤ºæ“作方;在æ¤ä¾‹ä¸ä¸º<code> rmt_storage</code> 守护进程。 - </li><li><em></em>对象 - <code>tcontext</code>ï¼ˆç›®æ ‡çŽ¯å¢ƒï¼‰æ¡ç›®è¡¨ç¤ºæ˜¯å¯¹å“ªä¸ªå¯¹è±¡æ‰§è¡Œæ“作;在æ¤ä¾‹ä¸ä¸º kmem。 - </li><li><em></em>结果 - <code>tclass</code>ï¼ˆç›®æ ‡ç±»åˆ«ï¼‰æ¡ç›®è¡¨ç¤ºæ“作对象的类型;在æ¤ä¾‹ä¸ä¸º <code>chr_file</code>(å—符设备)。 + <li>æ“作 - 试图进行的æ“作会使用括å·çªå‡ºæ˜¾ç¤ºï¼š<code>read write</code> 或 <code>setenforce</code>。<em></em> + </li><li>æ“作方 - <code>scontext</code>(æ¥æºçŽ¯å¢ƒï¼‰æ¡ç›®è¡¨ç¤ºæ“作方;在æ¤ä¾‹ä¸ä¸º<code> rmt_storage</code> 守护进程。<em></em> + </li><li>对象 - <code>tcontext</code>ï¼ˆç›®æ ‡çŽ¯å¢ƒï¼‰æ¡ç›®è¡¨ç¤ºæ˜¯å¯¹å“ªä¸ªå¯¹è±¡æ‰§è¡Œæ“作;在æ¤ä¾‹ä¸ä¸º kmem。<em></em> + </li><li>结果 - <code>tclass</code>ï¼ˆç›®æ ‡ç±»åˆ«ï¼‰æ¡ç›®è¡¨ç¤ºæ“作对象的类型;在æ¤ä¾‹ä¸ä¸º <code>chr_file</code>(å—符设备)。<em></em> </li></ul> <h2 id="switching_to_permissive">切æ¢åˆ°å®½å®¹æ¨¡å¼</h2> @@ -106,6 +106,6 @@ allow shell kernel:security setenforce; allow rmt kmem_device:chr_file { read write }; </pre> -<p>这会授予 <code>rmt</code> å‘å†…æ ¸å†…å˜å†™å…¥å†…容的æƒé™ï¼Œä»Žè€Œå½¢æˆæ˜Žæ˜¾çš„安全æ¼æ´žã€‚通常情况下,<code>audit2allow</code> 给出的声明建议åªæ˜¯ä¸€ä¸ªå¤§è‡´çš„åŸºç¡€ã€‚åœ¨æ·»åŠ è¿™äº›å£°æ˜ŽåŽï¼Œæ‚¨å¯èƒ½éœ€è¦æ›´æ”¹æ¥æºåŸŸå’Œç›®æ ‡æ ‡ç¾ï¼Œå¹¶çº³å…¥é€‚当的å®ï¼Œæ‰èƒ½å®žçŽ°è‰¯å¥½çš„政ç–é…置。有时,拒ç»äº‹ä»¶çš„åˆç†åº”对方å¼ä¸æ˜¯å¯¹æ”¿ç–进行更改,而是更改è¿è§„的应用。</p> +<p>这会授予 <code>rmt</code> å‘å†…æ ¸å†…å˜å†™å…¥å†…容的æƒé™ï¼Œä»Žè€Œå½¢æˆæ˜Žæ˜¾çš„安全æ¼æ´žã€‚通常情况下,<code>audit2allow</code> 给出的声明建议åªæ˜¯ä¸€ä¸ªå¤§è‡´çš„åŸºç¡€ã€‚åœ¨æ·»åŠ è¿™äº›å£°æ˜ŽåŽï¼Œæ‚¨å¯èƒ½éœ€è¦æ›´æ”¹æ¥æºåŸŸå’Œç›®æ ‡æ ‡ç¾ï¼Œå¹¶çº³å…¥é€‚当的å®ï¼Œæ‰èƒ½å®žçŽ°è‰¯å¥½çš„政ç–é…置。有时,应对拒ç»äº‹ä»¶çš„åˆç†æ–¹å¼ä¸æ˜¯æ›´æ”¹æ”¿ç–,而是更改è¿è§„的应用。</p> </body></html>
\ No newline at end of file diff --git a/zh-cn/setup/build/requirements.html b/zh-cn/setup/build/requirements.html index 6d74547c..3f3cda14 100644 --- a/zh-cn/setup/build/requirements.html +++ b/zh-cn/setup/build/requirements.html @@ -31,13 +31,14 @@ <li>如果是 Android 2.3.x (Gingerbread) åŠæ›´é«˜ç‰ˆæœ¬ï¼ˆåŒ…括 master 分支),需è¦ä½¿ç”¨ 64 ä½çŽ¯å¢ƒã€‚如果是较低的版本,则å¯ä»¥åœ¨ 32 ä½ç³»ç»Ÿä¸è¿›è¡Œç¼–译。 </li> <li>如果è¦æ£€å‡ºä»£ç ï¼Œè‡³å°‘éœ€è¦ 250GB å¯ç”¨ç£ç›˜ç©ºé—´ï¼›å¦‚æžœè¦è¿›è¡Œç¼–è¯‘ï¼Œåˆ™è¿˜éœ€è¦ 150GB。如果è¦è¿›è¡Œå¤šæ¬¡ç¼–译,则需è¦æ›´å¤šç©ºé—´ã€‚ + <aside class="note"><strong>注æ„</strong>:完整的 Android å¼€æºé¡¹ç›® (AOSP) é•œåƒåŒ…å«äº†ä¹‹å‰ä½¿ç”¨è¿‡çš„所有 Git 代ç åº“ã€‚å› æ¤ï¼Œå¦‚æžœè¦æ£€å‡ºé•œåƒï¼Œåˆ™éœ€è¦æ›´å¤šç©ºé—´ã€‚</aside> </li> <li>如果在虚拟机ä¸è¿è¡Œ Linuxï¼Œåˆ™è‡³å°‘éœ€è¦ 16GB çš„ RAM/交æ¢ç©ºé—´ã€‚ </li> </ul> <h2 id="software-requirements">软件è¦æ±‚</h2> -<p><a href="https://android.googlesource.com/" class="external">Android å¼€æºé¡¹ç›® (AOSP)</a> <code>master</code> 分支历æ¥éƒ½æ˜¯åœ¨ Ubuntu Long Term Support (LTS) 版本ä¸è¿›è¡Œå¼€å‘和测试,但您也å¯ä»¥ä½¿ç”¨å…¶ä»– Ubuntu 分å‘版本。è¦æŸ¥çœ‹å»ºè®®ä½¿ç”¨çš„版本,请å‚阅下é¢çš„列表。 +<p><a href="https://android.googlesource.com/" class="external">Android å¼€æºé¡¹ç›® (AOSP)</a> <code>master</code> 分支历æ¥éƒ½æ˜¯åœ¨ Ubuntu Long Term Support (LTS) 版本ä¸è¿›è¡Œå¼€å‘和测试,但您也å¯ä»¥ä½¿ç”¨å…¶ä»–分å‘版本。è¦æŸ¥çœ‹å»ºè®®ä½¿ç”¨çš„版本,请å‚阅下é¢çš„列表。 </p> <p> 您的工作站必须具有下é¢åˆ—出的软件。è¦æŸ¥çœ‹æ‰€éœ€çš„其他软件包以åŠç”¨äºŽå®‰è£…这些软件包的命令,请å‚阅<a href="initializing.html">构建编译环境</a>。 diff --git a/zh-cn/setup/contribute/code-style.html b/zh-cn/setup/contribute/code-style.html index fa06052c..6e72c8f3 100644 --- a/zh-cn/setup/contribute/code-style.html +++ b/zh-cn/setup/contribute/code-style.html @@ -36,7 +36,7 @@ } </code></pre> <p>åƒä¸‡ä¸è¦è¿™æ ·åšã€‚虽然您å¯èƒ½è®¤ä¸ºè‡ªå·±çš„代ç 永远ä¸ä¼šé‡åˆ°è¿™ç§é”™è¯¯ï¼Œæˆ–è€…æ— éœ€è´¹å¿ƒå¤„ç†è¿™ç§é”™è¯¯ï¼Œä½†åƒä¸Šä¾‹é‚£æ ·å¿½ç•¥å¼‚常会在您的代ç ä¸åŸ‹ä¸‹éšæ‚£ï¼Œè¿™ç§é”™è¯¯æ€»æœ‰ä¸€å¤©ä¼šè¢«ä»–人触å‘。您必须有原则地处ç†ä»£ç ä¸çš„æ¯ä¸ªå¼‚常;具体处ç†æ–¹å¼å› 情况而异。</p> -<p><em>æ— è®ºä½•æ—¶ï¼Œåªè¦é‡åˆ°ç©ºçš„ catch åå¥ï¼Œå°±åº”该ä¿æŒè¦æƒ•ã€‚当然,在æŸäº›æ—¶å€™ï¼Œç©ºçš„ catch è¯å¥ç¡®å®žæ²¡ä»€ä¹ˆé—®é¢˜ï¼Œä½†è‡³å°‘ä½ å¾—æƒ³ä¸€æƒ³ã€‚</em>在 Java ä¸ï¼Œæ— 论怎么å°å¿ƒéƒ½ä¸ä¸ºè¿‡ã€‚- <a href="http://www.artima.com/intv/solid4.html">James Gosling</a></p> +<p><em>æ— è®ºä½•æ—¶ï¼Œåªè¦é‡åˆ°ç©ºçš„ catch åå¥ï¼Œå°±åº”该ä¿æŒè¦æƒ•ã€‚当然,在æŸäº›æ—¶å€™ï¼Œç©ºçš„ catch è¯å¥ç¡®å®žæ²¡ä»€ä¹ˆé—®é¢˜ï¼Œä½†è‡³å°‘ä½ å¾—æƒ³ä¸€æƒ³ã€‚åœ¨ Java ä¸ï¼Œæ— 论怎么å°å¿ƒéƒ½ä¸ä¸ºè¿‡ã€‚- <a href="http://www.artima.com/intv/solid4.html">James Gosling</a></em></p> <p>å¯æŽ¥å—的替代方案(按优先顺åºæŽ’列)包括:</p> <ul> <li>将异常抛给方法调用者。 @@ -141,7 +141,7 @@ void setServerPort(String value) { <h3 id="use-javadoc-standard-comments">使用 Javadoc æ ‡å‡†å¤‡æ³¨</h3> <p>æ¯ä¸ªæ–‡ä»¶éƒ½åº”该在顶部放置版æƒå£°æ˜Žï¼Œå…¶åŽæ˜¯ package å’Œ import è¯å¥ï¼ˆå„个å—之间用空行分隔),最åŽæ˜¯ç±»æˆ–接å£å£°æ˜Žã€‚在 Javadoc 备注ä¸è¯´æ˜Žç±»æˆ–接å£çš„作用。</p> <pre><code>/* - * Copyright 2017 The Android Open Source Project + * 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. diff --git a/zh-cn/setup/develop/repo.html b/zh-cn/setup/develop/repo.html index 448f2642..a4b1be2b 100644 --- a/zh-cn/setup/develop/repo.html +++ b/zh-cn/setup/develop/repo.html @@ -48,7 +48,7 @@ repo help init <h2 id="init">init</h2> <pre class="devsite-terminal devsite-click-to-copy">repo init -u <var><URL></var> [<var><OPTIONS></var>] </pre> -<p>在当å‰ç›®å½•ä¸å®‰è£… Repo。这会创建一个 <code>.repo/</code> 目录,其ä¸åŒ…å«ç”¨äºŽ Repo æºä»£ç å’Œæ ‡å‡† Android 清å•æ–‡ä»¶çš„ Git 代ç 库。该 <code>.repo/</code> 目录ä¸è¿˜åŒ…å« <code>manifest.xml</code>ï¼Œè¿™æ˜¯ä¸€ä¸ªæŒ‡å‘ <code>.repo/manifests/</code> 目录ä¸æ‰€é€‰æ¸…å•çš„符å·é“¾æŽ¥ã€‚有关更新清å•çš„说明,请å‚阅 <a href="https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.txt" class="external">manifest-format.txt</a>。</p> +<p>在当å‰ç›®å½•ä¸å®‰è£… Repo。这会创建一个 <code>.repo/</code> 目录,其ä¸åŒ…å«ç”¨äºŽ Repo æºä»£ç å’Œæ ‡å‡† Android 清å•æ–‡ä»¶çš„ Git 代ç 库。该 <code>.repo/</code> 目录ä¸è¿˜åŒ…å« <code>manifest.xml</code>ï¼Œè¿™æ˜¯ä¸€ä¸ªæŒ‡å‘ <code>.repo/manifests/</code> 目录ä¸æ‰€é€‰æ¸…å•çš„符å·é“¾æŽ¥ã€‚有关更新清å•çš„说明,请å‚阅 <a href="https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md" class="external">manifest-format.md</a>。</p> <p>选项:</p> <ul> <li> @@ -140,7 +140,7 @@ repo download <var><TARGET> <CHANGE></var> repo download platform/build 23823 </pre> <p><code>repo sync</code> 应该å¯ä»¥æœ‰æ•ˆç§»é™¤é€šè¿‡ <code>repo download</code> 检索到的任何æ交。或者,您å¯ä»¥å°†è¿œç¨‹åˆ†æ”¯æ£€å‡ºï¼Œä¾‹å¦‚ <code>git checkout m/master</code>。</p> -<p class="note"><strong>注æ„</strong>:由于全çƒçš„所有æœåŠ¡å™¨å‡å˜åœ¨å¤åˆ¶å»¶è¿Ÿï¼Œå› æ¤æŸé¡¹æ›´æ”¹ï¼ˆä½äºŽ <a href="https://android-review.googlesource.com/">Gerrit</a> ä¸ï¼‰å‡ºçŽ°åœ¨ç½‘络上的时间与所有用户å¯é€šè¿‡ <code>repo download</code> 找到æ¤é¡¹æ›´æ”¹çš„时间之间å˜åœ¨äº›è®¸çš„é•œåƒå»¶è¿Ÿã€‚</p> +<p class="note"><strong>注æ„</strong>:由于全çƒçš„所有æœåŠ¡å™¨å‡å˜åœ¨å¤åˆ¶å»¶è¿Ÿï¼Œå› æ¤æŸé¡¹æ›´æ”¹å‡ºçŽ°åœ¨ç½‘络上(ä½äºŽ <a href="https://android-review.googlesource.com/">Gerrit</a> ä¸ï¼‰çš„时间与所有用户å¯é€šè¿‡ <code>repo download</code> 找到æ¤é¡¹æ›´æ”¹çš„时间之间å˜åœ¨äº›è®¸çš„é•œåƒå»¶è¿Ÿã€‚</p> <h2 id="forall">forall</h2> <pre class="devsite-terminal devsite-click-to-copy"> diff --git a/zh-cn/setup/start/build-numbers.html b/zh-cn/setup/start/build-numbers.html index f3537f2f..745c0d84 100644 --- a/zh-cn/setup/start/build-numbers.html +++ b/zh-cn/setup/start/build-numbers.html @@ -204,2333 +204,2755 @@ <th>分支</th> <th>版本</th> <th>支æŒçš„设备</th> + <th>安全补ä¸ç¨‹åºçº§åˆ«</th> </tr> </thead> <tbody> <tr> + <td>PPR2.181005.003.A1</td> + <td>android-9.0.0_r18</td> + <td>Pie</td> + <td>Pixel XLã€Pixel</td> + <td>2018-11-01</td> + </tr> + <tr> + <td>PPR1.181005.003.A1</td> + <td>android-9.0.0_r17</td> + <td>Pie</td> + <td>Pixel XLã€Pixel</td> + <td>2018-11-01</td> + </tr> + <tr> + <td>PQ1A.181105.017.A1</td> + <td>android-9.0.0_r16</td> + <td>Pie</td> + <td>Pixel 3 XLã€Pixel 3ã€Pixel 2 XLã€Pixel 2</td> + <td>2018-11-05</td> + </tr> + <tr> <td>PD1A.180720.031</td> <td>android-9.0.0_r12</td> <td>Pie</td> <td>Pixel 3 XLã€Pixel 3</td> + <td>2018-09-05</td> </tr> <tr> <td>PD1A.180720.030</td> <td>android-9.0.0_r11</td> <td>Pie</td> <td>Pixel 3 XLã€Pixel 3</td> + <td>2018-09-05</td> </tr> <tr> <td>PPR2.181005.003</td> <td>android-9.0.0_r10</td> <td>Pie</td> <td>Pixel XLã€Pixelã€Pixel 2 XLã€Pixel 2</td> + <td>2018-10-05</td> </tr> <tr> <td>PPR1.181005.003</td> <td>android-9.0.0_r9</td> <td>Pie</td> <td>Pixel XLã€Pixel</td> + <td>2018-10-05</td> </tr> <tr> <td>PPR2.180905.006.A1</td> <td>android-9.0.0_r8</td> <td>Pie</td> <td>Pixel XLã€Pixel</td> + <td>2018-09-05</td> </tr> <tr> <td>PPR2.180905.006</td> <td>android-9.0.0_r7</td> <td>Pie</td> <td>Pixel XLã€Pixel</td> + <td>2018-09-05</td> </tr> <tr> <td>PPR2.180905.005</td> <td>android-9.0.0_r6</td> <td>Pie</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-09-05</td> </tr> <tr> <td>PPR1.180905.003</td> <td>android-9.0.0_r5</td> <td>Pie</td> <td>Pixel XLã€Pixel</td> + <td>2018-09-05</td> </tr> <tr> <td>PPR1.180610.011</td> <td>android-9.0.0_r3</td> <td>Pie</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-08-05</td> </tr> <tr> <td>PPR1.180610.010</td> <td>android-9.0.0_r2</td> <td>Pie</td> <td>Pixel XLã€Pixel</td> + <td>2018-08-05</td> </tr> <tr> <td>PPR1.180610.009</td> <td>android-9.0.0_r1</td> <td>Pie</td> <td>Pixel 2 XLã€Pixel 2ã€Pixel XLã€Pixel</td> + <td>2018-08-05</td> + </tr> + <tr> + <td>OPM8.181105.002</td> + <td>android-8.1.0_r51</td> + <td>Oreo</td> + <td>Pixel C</td> + <td>2018-11-05</td> + </tr> + <tr> + <td>OPM7.181105.004</td> + <td>android-8.1.0_r50</td> + <td>Oreo</td> + <td>Nexus 5X å’Œ Nexus 6P</td> + <td>2018-11-05</td> </tr> <tr> <td>OPM8.181005.003</td> <td>android-8.1.0_r48</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-10-05</td> </tr> <tr> <td>OPM7.181005.003</td> <td>android-8.1.0_r47</td> <td>Oreo</td> <td>Nexus 5X å’Œ Nexus 6P</td> + <td>2018-10-05</td> </tr> <tr> <td>OPM6.171019.030.K1</td> <td>android-8.1.0_r46</td> <td>Oreo</td> <td>Nexus 5X å’Œ Nexus 6P</td> + <td>2018-09-05</td> </tr> <tr> <td>OPM4.171019.021.Z1</td> <td>android-8.1.0_r45</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-09-05</td> </tr> <tr> <td>OPM6.171019.030.H1</td> <td>android-8.1.0_r43</td> <td>Oreo</td> <td>Nexus 5X å’Œ Nexus 6P</td> + <td>2018-08-05</td> </tr> <tr> <td>OPM4.171019.021.Y1</td> <td>android-8.1.0_r42</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-08-05</td> </tr> <tr> <td>OPM6.171019.030.E1</td> <td>android-8.1.0_r41</td> <td>Oreo</td> <td>Nexus 5X å’Œ Nexus 6P</td> + <td>2018-07-05</td> </tr> <tr> <td>OPM4.171019.021.R1</td> <td>android-8.1.0_r40</td> <td>Oreo</td> <td>Pixel 2 XL</td> + <td>2018-07-05</td> </tr> <tr> <td>OPM4.171019.021.Q1</td> <td>android-8.1.0_r39</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2018-07-05</td> </tr> <tr> <td>OPM4.171019.021.P1</td> <td>android-8.1.0_r38</td> <td>Oreo</td> <td>Pixelã€Pixel XL</td> + <td>2018-07-05</td> </tr> <tr> <td>OPM4.171019.021.N1</td> <td>android-8.1.0_r37</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-07-05</td> </tr> <tr> <td>OPM2.171026.006.H1</td> <td>android-8.1.0_r36</td> <td>Oreo</td> <td>Pixel 2 XL</td> + <td>2018-07-05</td> </tr> <tr> - <td>OPM2.171026.006.Google One</td> + <td>OPM2.171026.006.G1</td> <td>android-8.1.0_r35</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2018-07-05</td> </tr> <tr> <td>OPM6.171019.030.B1</td> <td>android-8.1.0_r33</td> <td>Oreo</td> <td>Nexus 6Pã€Nexus 5X</td> + <td>2018-06-05</td> </tr> <tr> <td>OPM4.171019.021.E1</td> <td>android-8.1.0_r32</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-06-05</td> </tr> <tr> <td>OPM4.171019.021.D1</td> <td>android-8.1.0_r31</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2018-06-05</td> </tr> <tr> <td>OPM2.171026.006.C1</td> <td>android-8.1.0_r30</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-06-05</td> </tr> <tr> <td>OPM4.171019.016.C1</td> <td>android-8.1.0_r29</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-05-05</td> </tr> <tr> <td>OPM4.171019.016.B1</td> <td>android-8.1.0_r28</td> <td>Oreo</td> <td>Pixel XLã€Pixelã€Pixel 2 XLã€Pixel 2</td> + <td>2018-05-05</td> </tr> <tr> <td>OPM4.171019.016.A1</td> <td>android-8.1.0_r27</td> <td>Oreo</td> <td>Nexus 5X</td> + <td>2018-05-05</td> </tr> <tr> <td>OPM2.171019.029.B1</td> <td>android-8.1.0_r26</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-05-05</td> </tr> <tr> <td>OPM2.171019.029.A1</td> <td>android-8.1.0_r25</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2018-05-05</td> </tr> <tr> <td>OPM4.171019.015.A1</td> <td>android-8.1.0_r23</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-04-01</td> </tr> <tr> <td>OPM5.171019.019</td> <td>android-8.1.0_r22</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2018-04-01</td> </tr> <tr> <td>OPM3.171019.019</td> <td>android-8.1.0_r21</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2018-04-01</td> </tr> <tr> <td>OPM2.171019.029</td> <td>android-8.1.0_r20</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2ã€Pixel XLã€Pixelã€Nexus 5X</td> + <td>2018-04-05</td> </tr> <tr> <td>OPM1.171019.026</td> <td>android-8.1.0_r19</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-04-05</td> </tr> <tr> <td>OPM5.171019.017</td> <td>android-8.1.0_r18</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2018-03-05</td> </tr> <tr> <td>OPM3.171019.016</td> <td>android-8.1.0_r17</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2018-03-05</td> </tr> <tr> <td>OPM1.171019.022.A1</td> <td>android-8.1.0_r16</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-03-05</td> </tr> <tr> <td>OPM1.171019.021</td> <td>android-8.1.0_r15</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2ã€Pixel XLã€Pixel</td> + <td>2018-03-05</td> </tr> <tr> <td>OPM5.171019.015</td> <td>android-8.1.0_r14</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2018-02-05</td> </tr> <tr> <td>OPM3.171019.014</td> <td>android-8.1.0_r13</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2018-02-05</td> </tr> <tr> <td>OPM1.171019.019</td> <td>android-8.1.0_r12</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2018-02-05</td> </tr> <tr> <td>OPM1.171019.018</td> <td>android-8.1.0_r11</td> <td>Oreo</td> <td>Pixel 2 XL</td> + <td>2018-02-05</td> </tr> <tr> <td>OPM1.171019.016</td> <td>android-8.1.0_r10</td> <td>Oreo</td> <td>Pixelã€Pixel XLã€Pixel C</td> + <td>2018-02-05</td> </tr> <tr> <td>OPM5.171019.014</td> <td>android-8.1.0_r9</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM2.171019.016</td> <td>android-8.1.0_r8</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM3.171019.013</td> <td>android-8.1.0_r7</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM1.171019.015</td> <td>android-8.1.0_r6</td> <td>Oreo</td> <td>Pixel C</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM1.171019.014</td> <td>android-8.1.0_r5</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2ã€Pixel XLã€Pixel</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM1.171019.013</td> <td>android-8.1.0_r4</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM1.171019.012</td> <td>android-8.1.0_r3</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2018-01-05</td> </tr> <tr> <td>OPM2.171019.012</td> <td>android-8.1.0_r2</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-12-05</td> </tr> <tr> <td>OPM1.171019.011</td> <td>android-8.1.0_r1</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2ã€Pixel XLã€Pixelã€Pixel Cã€Nexus 6Pã€Nexus 5X</td> + <td>2017-12-05</td> </tr> <tr> <td>OPR5.170623.014</td> <td>android-8.0.0_r36</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2017-12-01</td> </tr> <tr> <td>OPR4.170623.020</td> <td>android-8.0.0_r35</td> <td>Oreo</td> <td>Nexus 5X</td> + <td>2017-12-01</td> </tr> <tr> <td>OPD3.170816.023</td> <td>android-8.0.0_r34</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-11-05</td> </tr> <tr> <td>OPD1.170816.025</td> <td>android-8.0.0_r33</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-11-05</td> </tr> <tr> <td>OPR6.170623.023</td> <td>android-8.0.0_r32</td> <td>Oreo</td> <td>Nexus 5X</td> + <td>2017-11-05</td> </tr> <tr> <td>OPR5.170623.011</td> <td>android-8.0.0_r31</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2017-11-05</td> </tr> <tr> <td>OPR3.170623.013</td> <td>android-8.0.0_r30</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2017-11-05</td> </tr> <tr> <td>OPR2.170623.027</td> <td>android-8.0.0_r29</td> <td>Oreo</td> <td>Nexus Player</td> + <td>2017-11-05</td> </tr> <tr> <td>OPR1.170623.032</td> <td>android-8.0.0_r28</td> <td>Oreo</td> <td>Pixel XLã€Pixelã€Pixel C</td> + <td>2017-11-05</td> </tr> <tr> <td>OPD3.170816.016</td> <td>android-8.0.0_r27</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2017-11-05</td> </tr> <tr> <td>OPD2.170816.015</td> <td>android-8.0.0_r26</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2017-11-05</td> </tr> <tr> <td>OPD1.170816.018</td> <td>android-8.0.0_r25</td> <td>Oreo</td> <td>Pixel 2</td> + <td>2017-11-05</td> </tr> <tr> <td>OPD3.170816.012</td> <td>android-8.0.0_r24</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-09-05</td> </tr> <tr> <td>OPD1.170816.012</td> <td>android-8.0.0_r23</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-09-05</td> </tr> <tr> <td>OPD1.170816.011</td> <td>android-8.0.0_r22</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-09-05</td> </tr> <tr> <td>OPD1.170816.010</td> <td>android-8.0.0_r21</td> <td>Oreo</td> <td>Pixel 2 XLã€Pixel 2</td> + <td>2017-09-05</td> </tr> <tr> <td>OPR5.170623.007</td> <td>android-8.0.0_r17</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2017-10-05</td> </tr> <tr> <td>OPR4.170623.009</td> <td>android-8.0.0_r16</td> <td>Oreo</td> <td>Nexus 5X</td> + <td>2017-10-05</td> </tr> <tr> <td>OPR3.170623.008</td> <td>android-8.0.0_r15</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2017-10-05</td> </tr> <tr> <td>OPR1.170623.027</td> <td>android-8.0.0_r13</td> <td>Oreo</td> <td>Pixel XLã€Pixelã€Pixel C</td> + <td>2017-10-05</td> </tr> <tr> <td>OPR6.170623.021</td> <td>android-8.0.0_r12</td> <td>Oreo</td> <td>Nexus Player</td> + <td>2017-09-05</td> </tr> <tr> <td>OPR6.170623.019</td> <td>android-8.0.0_r11</td> <td>Oreo</td> <td>Nexus 6P</td> + <td>2017-09-05</td> </tr> <tr> <td>OPR4.170623.006</td> <td>android-8.0.0_r10</td> <td>Oreo</td> <td>Nexus 5X</td> + <td>2017-09-05</td> </tr> <tr> <td>OPR3.170623.007</td> <td>android-8.0.0_r9</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2017-09-05</td> </tr> <tr> <td>OPR1.170623.026</td> <td>android-8.0.0_r7</td> <td>Oreo</td> <td>Pixel XLã€Pixelã€Pixel C</td> + <td>2017-09-05</td> </tr> <tr> <td>OPR6.170623.013</td> <td>android-8.0.0_r4</td> <td>Oreo</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2017-08-05</td> </tr> <tr> <td>OPR6.170623.012</td> <td>android-8.0.0_r3</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2017-08-05</td> </tr> <tr> <td>OPR6.170623.011</td> <td>android-8.0.0_r2</td> <td>Oreo</td> <td>Pixel XLã€Pixel</td> + <td>2017-08-05</td> </tr> <tr> <td>OPR6.170623.010</td> <td>android-8.0.0_r1</td> <td>Oreo</td> <td>Pixel C</td> + <td>2017-08-05</td> </tr> <tr> <td>N2G48H</td> <td>android-7.1.2_r36</td> <td>Nougat</td> <td></td> + <td>2017-10-05</td> </tr> <tr> <td>NZH54D</td> <td>android-7.1.2_r33</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-08-05</td> </tr> <tr> <td>NKG47S</td> <td>android-7.1.2_r32</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-08-05</td> </tr> <tr> <td>NHG47Q</td> <td>android-7.1.2_r30</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-08-05</td> </tr> <tr> <td>NJH47F</td> <td>android-7.1.2_r29</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-08-05</td> </tr> <tr> <td>N2G48C</td> <td>android-7.1.2_r28</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Nexus Playerã€Pixel C</td> + <td>2017-08-05</td> </tr> <tr> <td>NZH54B</td> <td>android-7.1.2_r27</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-07-05</td> </tr> <tr> - </tr><tr> <td>NKG47M</td> <td>android-7.1.2_r25</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-07-05</td> </tr> <tr> <td>NJH47D</td> <td>android-7.1.2_r24</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-07-05</td> </tr> <tr> <td>NHG47O</td> <td>android-7.1.2_r23</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-07-05</td> </tr> <tr> <td>N2G48B</td> <td>android-7.1.2_r19</td> <td>Nougat</td> <td>Nexus 6Pã€Nexus Playerã€Pixel C</td> + <td>2017-07-05</td> </tr> <tr> <td>N2G47Z</td> <td>android-7.1.2_r18</td> <td>Nougat</td> <td>Nexus 5X</td> + <td>2017-07-05</td> </tr> <tr> <td>NJH47B</td> <td>android-7.1.2_r17</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-06-05</td> </tr> <tr> <td>NJH34C</td> <td>android-7.1.2_r16</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-06-05</td> </tr> <tr> <td>NKG47L</td> <td>android-7.1.2_r15</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-06-05</td> </tr> <tr> <td>NHG47N</td> <td>android-7.1.2_r14</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-06-05</td> </tr> <tr> <td>N2G47X</td> <td>android-7.1.2_r13</td> <td>Nougat</td> <td>Nexus Player</td> + <td>2017-06-05</td> </tr> <tr> <td>N2G47W</td> <td>android-7.1.2_r12</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Pixel C</td> + <td>2017-06-05</td> </tr> <tr> <td>NHG47L</td> <td>android-7.1.2_r11</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-05-05</td> </tr> <tr> <td>N2G47T</td> <td>android-7.1.2_r10</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-05-05</td> </tr> <tr> <td>N2G47R</td> <td>android-7.1.2_r9</td> <td>Nougat</td> <td>Nexus Player</td> + <td>2017-05-05</td> </tr> <tr> <td>N2G47O</td> <td>android-7.1.2_r8</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Pixel XLã€Pixelã€Pixel C</td> + <td>2017-05-05</td> </tr> <tr> <td>NHG47K</td> <td>android-7.1.2_r6</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-04-05</td> </tr> <tr> <td>N2G47J</td> <td>android-7.1.2_r5</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-04-05</td> </tr> <tr> <td>N2G47H</td> <td>android-7.1.2_r4</td> <td>Nougat</td> <td>Nexus 6Pã€Nexus Player</td> + <td>2017-04-05</td> </tr> <tr> <td>N2G47F</td> <td>android-7.1.2_r3</td> <td>Nougat</td> <td>Nexus 5X</td> + <td>2017-04-05</td> </tr> <tr> <td>N2G47E</td> <td>android-7.1.2_r2</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-04-05</td> </tr> <tr> <td>N2G47D</td> <td>android-7.1.2_r1</td> <td>Nougat</td> <td>Pixel C</td> + <td>2017-04-05</td> </tr> <tr> <td>N9F27M</td> <td>android-7.1.1_r58</td> <td>Nougat</td> <td>Nexus 9 (volantis)</td> + <td>2017-10-05</td> </tr> <tr> <td>NGI77B</td> <td>android-7.1.1_r57</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-10-05</td> </tr> <tr> <td>N8I11F</td> <td>android-7.1.1_r56</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-10-05</td> </tr> <tr> <td>N6F27M</td> <td>android-7.1.1_r55</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-10-05</td> </tr> <tr> <td>N4F27P</td> <td>android-7.1.1_r54</td> <td>Nougat</td> <td>Nexus 9 (volantisg)</td> + <td>2017-10-05</td> </tr> <tr> <td>N9F27L</td> <td>android-7.1.1_r53</td> <td>Nougat</td> <td>Nexus 9</td> + <td>2017-09-05</td> </tr> <tr> <td>NGI55D</td> <td>android-7.1.1_r52</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-09-05</td> </tr> <tr> <td>N4F27O</td> <td>android-7.1.1_r51</td> <td>Nougat</td> <td>Nexus 9 (volantisg)</td> + <td>2017-09-05</td> </tr> <tr> <td>N8I11B</td> <td>android-7.1.1_r50</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-08-05</td> </tr> <tr> <td>N9F27H</td> <td>android-7.1.1_r49</td> <td>Nougat</td> <td>Nexus 9 (volantis)</td> + <td>2017-08-05</td> </tr> <tr> <td>N6F27I</td> <td>android-7.1.1_r48</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-08-05</td> </tr> <tr> <td>N4F27K</td> <td>android-7.1.1_r47</td> <td>Nougat</td> <td>Nexus 9 (volantisg)</td> + <td>2017-08-05</td> </tr> <tr> <td>N9F27F</td> <td>android-7.1.1_r46</td> <td>Nougat</td> <td>Nexus 9 (volantis)</td> + <td>2017-07-05</td> </tr> <tr> <td>N6F27H</td> <td>android-7.1.1_r45</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-07-05</td> </tr> <tr> <td>N4F27I</td> <td>android-7.1.1_r44</td> <td>Nougat</td> <td>Nexus 9 (volantisg)</td> + <td>2017-07-05</td> </tr> <tr> <td>N9F27C</td> <td>android-7.1.1_r43</td> <td>Nougat</td> <td>Nexus 9 (volantis)</td> + <td>2017-06-05</td> </tr> <tr> <td>N6F27E</td> <td>android-7.1.1_r42</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-06-05</td> </tr> <tr> <td>N4F27E</td> <td>android-7.1.1_r41</td> <td>Nougat</td> <td>Nexus 9 (volantisg)</td> + <td>2017-06-05</td> </tr> <tr> <td>N6F27C</td> <td>android-7.1.1_r40</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-05-05</td> </tr> <tr> <td>N4F27B</td> <td>android-7.1.1_r39</td> <td>Nougat</td> <td>Nexus 9 (volantis/volantisg)</td> + <td>2017-05-05</td> </tr> <tr> <td>N6F26Y</td> <td>android-7.1.1_r38</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-04-01</td> </tr> <tr> <td>NOF27D</td> <td>android-7.1.1_r35</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-04-01</td> </tr> <tr> <td>N4F26X</td> <td>android-7.1.1_r33</td> <td>Nougat</td> <td>Nexus 9 (volantis/volantisg)</td> + <td>2017-04-01</td> </tr> <tr> <td>N4F26U</td> <td>android-7.1.1_r31</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2017-04-01</td> </tr> <tr> <td>N6F26U</td> <td>android-7.1.1_r28</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-03-05</td> </tr> <tr> <td>NUF26N</td> <td>android-7.1.1_r27</td> <td>Nougat</td> <td>Nexus 6P</td> + <td>2017-03-05</td> </tr> <tr> <td>NOF27C</td> <td>android-7.1.1_r26</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-03-05</td> </tr> <tr> <td>NOF27B</td> <td>android-7.1.1_r25</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-03-05</td> </tr> <tr> <td>N4F26T</td> <td>android-7.1.1_r24</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Nexus 9 (volantis/volantisg)ã€Pixel C</td> + <td>2017-03-05</td> </tr> <tr> <td>NMF27D</td> <td>android-7.1.1_r23</td> <td>Nougat</td> <td>Nexus Player</td> + <td>2017-03-05</td> </tr> <tr> <td>NMF26X</td> <td>android-7.1.1_r22</td> <td>Nougat</td> <td>Nexus Player</td> + <td>2017-02-05</td> </tr> <tr> <td>NOF26W</td> <td>android-7.1.1_r21</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-02-05</td> </tr> <tr> <td>NOF26V</td> <td>android-7.1.1_r20</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-02-05</td> </tr> <tr> <td>N6F26R</td> <td>android-7.1.1_r17</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-02-05</td> </tr> <tr> <td>NUF26K</td> <td>android-7.1.1_r16</td> <td>Nougat</td> <td>Nexus 6P</td> + <td>2017-02-05</td> </tr> <tr> <td>N4F26Q</td> <td>android-7.1.1_r15</td> <td>Nougat</td> <td>Nexus 9 (volantis/volantisg)</td> + <td>2017-02-05</td> </tr> <tr> <td>N4F26O</td> <td>android-7.1.1_r14</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Pixel C</td> + <td>2017-02-05</td> </tr> <tr> <td>N6F26Q</td> <td>android-7.1.1_r13</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-01-05</td> </tr> <tr> <td>N4F26M</td> <td>android-7.1.1_r12</td> <td>Nougat</td> <td>Nexus 9 (volantis)</td> + <td>2017-01-01</td> </tr> <tr> <td>N4F26J</td> <td>android-7.1.1_r11</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2017-01-05</td> </tr> <tr> <td>N4F26I</td> <td>android-7.1.1_r10</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Pixel C</td> + <td>2017-01-05</td> </tr> <tr> <td>NMF26V</td> <td>android-7.1.1_r9</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-01-05</td> </tr> <tr> <td>NMF26U</td> <td>android-7.1.1_r8</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2017-01-05</td> </tr> <tr> <td>NMF26R</td> <td>android-7.1.1_r7</td> <td>Nougat</td> <td>Nexus Player</td> + <td>2017-01-05</td> </tr> <tr> <td>NMF26Q</td> <td>android-7.1.1_r6</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-12-05</td> </tr> <tr> <td>NMF26O</td> <td>android-7.1.1_r4</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-12-05</td> </tr> <tr> <td>NMF26J</td> <td>android-7.1.1_r3</td> <td>Nougat</td> <td>Nexus Player</td> + <td>2016-12-05</td> </tr> <tr> <td>NMF26H</td> <td>android-7.1.1_r2</td> <td>Nougat</td> <td>Pixel C</td> + <td>2016-12-05</td> </tr> <tr> <td>NMF26F</td> <td>android-7.1.1_r1</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 6Pã€Nexus 9 (volantis/volantisg)</td> + <td>2016-12-05</td> </tr> <tr> <td>NDE63X</td> <td>android-7.1.0_r7</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-11-05</td> </tr> <tr> <td>NDE63V</td> <td>android-7.1.0_r6</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-11-05</td> </tr> <tr> <td>NDE63U</td> <td>android-7.1.0_r5</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-11-05</td> </tr> <tr> <td>NDE63P</td> <td>android-7.1.0_r4</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-10-05</td> </tr> <tr> <td>NDE63L</td> <td>android-7.1.0_r2</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-10-05</td> </tr> <tr> <td>NDE63H</td> <td>android-7.1.0_r1</td> <td>Nougat</td> <td>Pixel XLã€Pixel</td> + <td>2016-10-05</td> </tr> <tr> <td>NBD92Q</td> <td>android-7.0.0_r35</td> <td>Nougat</td> <td></td> + <td>2017-11-01</td> </tr> <tr> <td>NBD92N</td> <td>android-7.0.0_r34</td> <td>Nougat</td> <td></td> + <td>2017-10-01</td> </tr> <tr> <td>NBD92G</td> <td>android-7.0.0_r33</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-04-01</td> </tr> <tr> <td>NBD92F</td> <td>android-7.0.0_r32</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-04-01</td> </tr> <tr> <td>NBD92E</td> <td>android-7.0.0_r31</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-03-05</td> </tr> <tr> <td>NBD92D</td> <td>android-7.0.0_r30</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-03-05</td> </tr> <tr> <td>NBD91Z</td> <td>android-7.0.0_r29</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-02-05</td> </tr> <tr> <td>NBD91Y</td> <td>android-7.0.0_r28</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-02-05</td> </tr> <tr> <td>NBD91X</td> <td>android-7.0.0_r27</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2017-01-05</td> </tr> <tr> <td>NBD91U</td> <td>android-7.0.0_r24</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2016-12-05</td> </tr> <tr> <td>N5D91L</td> <td>android-7.0.0_r21</td> <td>Nougat</td> <td>Nexus 5X</td> + <td>2016-11-05</td> </tr> <tr> <td>NBD91P</td> <td>android-7.0.0_r19</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2016-11-05</td> </tr> <tr> <td>NRD91K</td> <td>android-7.0.0_r17</td> <td>Nougat</td> <td>Nexus 6P</td> + <td>2016-11-05</td> </tr> <tr> <td>NRD91N</td> <td>android-7.0.0_r15</td> <td>Nougat</td> <td>Nexus 5Xã€Pixel Cã€Nexus Playerã€Nexus 9 (volantis/volantisg)</td> + <td>2016-11-05</td> </tr> <tr> <td>NBD90Z</td> <td>android-7.0.0_r14</td> <td>Nougat</td> <td>Nexus 6</td> + <td>2016-10-05</td> </tr> <tr> <td>NBD90X</td> <td>android-7.0.0_r13</td> <td>Nougat</td> <td>Nexus 6P</td> + <td>2016-10-05</td> </tr> <tr> <td>NBD90W</td> <td>android-7.0.0_r12</td> <td>Nougat</td> <td>Nexus 5X</td> + <td>2016-10-05</td> </tr> <tr> <td>NRD91D</td> <td>android-7.0.0_r7</td> <td>Nougat</td> <td>Pixel Cã€Nexus Playerã€Nexus 9 (WLAN)</td> + <td>2016-10-05</td> </tr> <tr> <td>NRD90U</td> <td>android-7.0.0_r6</td> <td>Nougat</td> <td>Nexus 6P</td> + <td>2016-09-06</td> </tr> <tr> <td>NRD90T</td> <td>android-7.0.0_r5</td> <td>Nougat</td> <td>Nexus 6P</td> + <td>2016-09-06</td> </tr> <tr> <td>NRD90S</td> <td>android-7.0.0_r4</td> <td>Nougat</td> <td>Nexus 5X</td> + <td>2016-09-06</td> </tr> <tr> <td>NRD90R</td> <td>android-7.0.0_r3</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 9 (volantis)ã€Nexus Playerã€Pixel C</td> + <td>2016-09-06</td> </tr> <tr> <td>NRD90M</td> <td>android-7.0.0_r1</td> <td>Nougat</td> <td>Nexus 5Xã€Nexus 9 (volantis)ã€Nexus Playerã€Pixel C</td> + <td>2016-08-05</td> </tr> <tr> <td>MOI10E</td> <td>android-6.0.1_r81</td> <td>Marshmallow</td> <td></td> + <td>2017-10-01</td> </tr> <tr> <td>MOB31Z</td> <td>android-6.0.1_r80</td> <td>Marshmallow</td> <td></td> + <td>2017-07-01</td> </tr> <tr> <td>MOB31T</td> <td>android-6.0.1_r79</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2017-02-01</td> </tr> <tr> <td>MOB31S</td> <td>android-6.0.1_r78</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2017-01-05</td> </tr> <tr> <td>M4B30Z</td> <td>android-6.0.1_r77</td> <td>Marshmallow</td> <td>Nexus 5</td> + <td>2016-10-05</td> </tr> <tr> <td>MOB31K</td> <td>android-6.0.1_r74</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-11-05</td> </tr> <tr> <td>MMB31C</td> <td>android-6.0.1_r73</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-11-05</td> </tr> <tr> <td>M4B30X</td> <td>android-6.0.1_r72</td> <td>Marshmallow</td> <td>Nexus 5</td> + <td>2016-10-05</td> </tr> <tr> <td>MOB31H</td> <td>android-6.0.1_r70</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-10-05</td> </tr> <tr> <td>MMB30Y</td> <td>android-6.0.1_r69</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-10-05</td> </tr> <tr> <td>MTC20K</td> <td>android-6.0.1_r67</td> <td>Marshmallow</td> <td>Nexus 5X</td> + <td>2016-09-06</td> </tr> <tr> <td>MOB31E</td> <td>android-6.0.1_r66</td> <td>Marshmallow</td> <td>Nexus 5ã€Nexus 6ã€Nexus 9 (volantis)</td> + <td>2016-09-06</td> </tr> <tr> <td>MMB30W</td> <td>android-6.0.1_r65</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-09-06</td> </tr> <tr> <td>MXC89L</td> <td>android-6.0.1_r63</td> <td>Marshmallow</td> <td>Pixel C</td> + <td>2016-08-05</td> </tr> <tr> <td>MTC20F</td> <td>android-6.0.1_r62</td> <td>Marshmallow</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2016-08-05</td> </tr> <tr> <td>MOB30Y</td> <td>android-6.0.1_r60</td> <td>Marshmallow</td> <td>Nexus 5</td> + <td>2016-08-05</td> </tr> <tr> <td>MOB30X</td> <td>android-6.0.1_r59</td> <td>Marshmallow</td> <td>Nexus 7 (flo/deb)</td> + <td>2016-08-05</td> </tr> <tr> <td>MOB30W</td> <td>android-6.0.1_r58</td> <td>Marshmallow</td> <td>Nexus 6ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2016-08-05</td> </tr> <tr> <td>MMB30S</td> <td>android-6.0.1_r57</td> <td>Marshmallow</td> <td>Nexus 7 (deb)</td> + <td>2016-08-05</td> </tr> <tr> <td>MMB30R</td> <td>android-6.0.1_r56</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-08-05</td> </tr> <tr> <td>MXC89K</td> <td>android-6.0.1_r55</td> <td>Marshmallow</td> <td>Pixel C</td> + <td>2016-07-05</td> </tr> <tr> <td>MTC19Z</td> <td>android-6.0.1_r54</td> <td>Marshmallow</td> <td>Nexus 5X</td> + <td>2016-07-05</td> </tr> <tr> <td>MTC19X</td> <td>android-6.0.1_r53</td> <td>Marshmallow</td> <td>Nexus 6P</td> + <td>2016-07-05</td> </tr> <tr> <td>MOB30P</td> <td>android-6.0.1_r50</td> <td>Marshmallow</td> <td>Nexus 5ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2016-07-05</td> </tr> <tr> <td>MOB30O</td> <td>android-6.0.1_r49</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-07-05</td> </tr> <tr> <td>MMB30M</td> <td>android-6.0.1_r48</td> <td>Marshmallow</td> <td>Nexus 7 (deb)</td> + <td>2016-07-05</td> </tr> <tr> <td>MMB30K</td> <td>android-6.0.1_r47</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-07-05</td> </tr> <tr> <td>MOB30M</td> <td>android-6.0.1_r46</td> <td>Marshmallow</td> <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2016-06-01</td> </tr> <tr> <td>MTC19V</td> <td>android-6.0.1_r45</td> <td>Marshmallow</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2016-06-01</td> </tr> <tr> <td>MOB30J</td> <td>android-6.0.1_r43</td> <td>Marshmallow</td> <td>Nexus 7 (flo/deb)</td> + <td>2016-05-01</td> </tr> <tr> <td>MOB30I</td> <td>android-6.0.1_r42</td> <td>Marshmallow</td> <td>Nexus 6</td> + <td>2016-05-01</td> </tr> <tr> <td>MOB30H</td> <td>android-6.0.1_r41</td> <td>Marshmallow</td> <td>Nexus 5</td> + <td>2016-05-01</td> </tr> <tr> <td>MOB30G</td> <td>android-6.0.1_r40</td> <td>Marshmallow</td> <td>Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2016-05-01</td> </tr> <tr> <td>MXC89H</td> <td>android-6.0.1_r33</td> <td>Marshmallow</td> <td>Pixel C</td> + <td>2016-06-01</td> </tr> <tr> <td>MXC89F</td> <td>android-6.0.1_r32</td> <td>Marshmallow</td> <td>Pixel C</td> + <td>2016-05-01</td> </tr> <tr> <td>MMB30J</td> <td>android-6.0.1_r28</td> <td>Marshmallow</td> <td>Nexus 6ã€Nexus 7 (deb)</td> + <td>2016-06-01</td> </tr> <tr> <td>MTC19T</td> <td>android-6.0.1_r25</td> <td>Marshmallow</td> <td>Nexus 5Xã€Nexus 6P</td> + <td>2016-05-01</td> </tr> -<tr> - <td>M5C14J</td> - <td>android-6.0.1_r31</td> - <td>Marshmallow</td> - <td>Pixel C</td> -</tr> -<tr> - <td>MOB30D</td> - <td>android-6.0.1_r30</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> -</tr> -<tr> - <td>MHC19Q</td> - <td>android-6.0.1_r24</td> - <td>Marshmallow</td> - <td>Nexus 5Xã€Nexus 6P</td> -</tr> -<tr> - <td>MHC19J</td> - <td>android-6.0.1_r22</td> - <td>Marshmallow</td> - <td>Nexus 5X</td> -</tr> -<tr> - <td>MHC19I</td> - <td>android-6.0.1_r21</td> - <td>Marshmallow</td> - <td>Nexus 6P</td> -</tr> -<tr> - <td>MMB29X</td> - <td>android-6.0.1_r20</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 6ã€Nexus 7 (deb)ã€Nexus 9 (volantisg)</td> -</tr> -<tr> - <td>MXC14G</td> - <td>android-6.0.1_r18</td> - <td>Marshmallow</td> - <td>Pixel C</td> -</tr> -<tr> - <td>MMB29V</td> - <td>android-6.0.1_r17</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 5Xã€Nexus 6ã€Nexus 6Pã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)</td> -</tr> -<tr> - <td>MXB48T</td> - <td>android-6.0.1_r16</td> - <td>Marshmallow</td> - <td>Pixel C</td> -</tr> -<tr> - <td>MMB29U</td> - <td>android-6.0.1_r13</td> - <td>Marshmallow</td> - <td>Nexus Player</td> -</tr> -<tr> - <td>MMB29R</td> - <td>android-6.0.1_r12</td> - <td>Marshmallow</td> - <td>Nexus 9 (volantis/volantisg)</td> -</tr> -<tr> - <td>MMB29Q</td> - <td>android-6.0.1_r11</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 5Xã€Nexus 6ã€Nexus 6Pã€Nexus 7 (flo/deb)</td> -</tr> -<tr> - <td>MMB29T</td> - <td>android-6.0.1_r10</td> - <td>Marshmallow</td> - <td>Nexus Player</td> -</tr> -<tr> - <td>MMB29S</td> - <td>android-6.0.1_r9</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 6ã€Nexus 9 (volantis/volantisg)</td> -</tr> -<tr> - <td>MMB29P</td> - <td>android-6.0.1_r8</td> - <td>Marshmallow</td> - <td>Nexus 5Xã€Nexus 6P</td> -</tr> -<tr> - <td>MMB29O</td> - <td>android-6.0.1_r7</td> - <td>Marshmallow</td> - <td>Nexus 7 (flo/deb)</td> -</tr> -<tr> - <td>MXB48K</td> - <td>android-6.0.1_r5</td> - <td>Marshmallow</td> - <td>Pixel C</td> -</tr> -<tr> - <td>MXB48J</td> - <td>android-6.0.1_r4</td> - <td>Marshmallow</td> - <td>Pixel C</td> -</tr> -<tr> - <td>MMB29M</td> - <td>android-6.0.1_r3</td> - <td>Marshmallow</td> - <td>Nexus 6Pã€Nexus Player</td> -</tr> -<tr> - <td>MMB29K</td> - <td>android-6.0.1_r1</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 5Xã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)</td> -</tr> -<tr> - <td>MMB29N</td> - <td>android-6.0.0_r41</td> - <td>Marshmallow</td> - <td>Nexus 6P</td> -</tr> -<tr> - <td>MDB08M</td> - <td>android-6.0.0_r26</td> - <td>Marshmallow</td> - <td>Nexus 5Xã€Nexus 6P</td> -</tr> -<tr> - <td>MDB08L</td> - <td>android-6.0.0_r25</td> - <td>Marshmallow</td> - <td>Nexus 5Xã€Nexus 6P</td> -</tr> -<tr> - <td>MDB08K</td> - <td>android-6.0.0_r24</td> - <td>Marshmallow</td> - <td>Nexus 6P</td> -</tr> -<tr> - <td>MDB08I</td> - <td>android-6.0.0_r23</td> - <td>Marshmallow</td> - <td>Nexus 5X</td> -</tr> -<tr> - <td>MDA89E</td> - <td>android-6.0.0_r12</td> - <td>Marshmallow</td> - <td>Nexus 5X</td> -</tr> -<tr> - <td>MDA89D</td> - <td>android-6.0.0_r11</td> - <td>Marshmallow</td> - <td>Nexus 6P</td> -</tr> -<tr> - <td>MRA59B</td> - <td>android-6.0.0_r7</td> - <td>Marshmallow</td> - <td>Nexus 7 (deb)</td> -</tr> -<tr> - <td>MRA58X</td> - <td>android-6.0.0_r6</td> - <td>Marshmallow</td> - <td>Nexus 6</td> -</tr> -<tr> - <td>MRA58V</td> - <td>android-6.0.0_r5</td> - <td>Marshmallow</td> - <td>Nexus 7 (flo/deb)</td> -</tr> -<tr> - <td>MRA58U</td> - <td>android-6.0.0_r4</td> - <td>Marshmallow</td> - <td>Nexus 7 (flo)</td> -</tr> -<tr> - <td>MRA58N</td> - <td>android-6.0.0_r2</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> -</tr> -<tr> - <td>MRA58K</td> - <td>android-6.0.0_r1</td> - <td>Marshmallow</td> - <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> -</tr> -<tr> - <td>LMY49M</td> - <td>android-5.1.1_r38</td> - <td>Lollipop</td> - <td>Nexus 10</td> -</tr> -<tr> - <td>LMY49J</td> - <td>android-5.1.1_r37</td> - <td>Lollipop</td> - <td>Nexus 10</td> -</tr> -<tr> - <td>LMY49I</td> - <td>android-5.1.1_r36</td> - <td>Lollipop</td> - <td>Nexus 10</td> -</tr> -<tr> - <td>LMY49H</td> - <td>android-5.1.1_r35</td> - <td>Lollipop</td> - <td>Nexus 10</td> -</tr> -<tr> - <td>LMY49G</td> - <td>android-5.1.1_r34</td> - <td>Lollipop</td> - <td>Nexus 10</td> -</tr> -<tr> - <td>LMY49F</td> - <td>android-5.1.1_r33</td> - <td>Lollipop</td> - <td>Nexus 9 (volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LMY48Z</td> - <td>android-5.1.1_r30</td> - <td>Lollipop</td> - <td>Nexus 6ã€Nexus 7 (deb)ã€Nexus 9 (volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LYZ28N</td> - <td>android-5.1.1_r28</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ T-Mobile)</td> -</tr> -<tr> - <td>LMY48Y</td> - <td>android-5.1.1_r26</td> - <td>Lollipop</td> - <td>Nexus 6</td> -</tr> -<tr> - <td>LMY48X</td> - <td>android-5.1.1_r25</td> - <td>Lollipop</td> - <td>Nexus 6ã€Nexus 7 (deb)ã€Nexus 9 (volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LMY48W</td> - <td>android-5.1.1_r24</td> - <td>Lollipop</td> - <td>Nexus 6</td> -</tr> -<tr> - <td>LVY48H</td> - <td>android-5.1.1_r23</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ Project Fi)</td> -</tr> -<tr> - <td>LYZ28M</td> - <td>android-5.1.1_r22</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ T-Mobile)</td> -</tr> -<tr> - <td>LMY48U</td> - <td>android-5.1.1_r20</td> - <td>Lollipop</td> - <td>Nexus 7 (deb)</td> -</tr> -<tr> - <td>LMY48T</td> - <td>android-5.1.1_r19</td> - <td>Lollipop</td> - <td>Nexus 4ã€Nexus 6ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LVY48F</td> - <td>android-5.1.1_r18</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ Project Fi)</td> -</tr> -<tr> - <td>LYZ28K</td> - <td>android-5.1.1_r17</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ T-Mobile)</td> -</tr> -<tr> - <td>LMY48P</td> - <td>android-5.1.1_r16</td> - <td>Lollipop</td> - <td>Nexus 7 (deb)</td> -</tr> -<tr> - <td>LMY48N</td> - <td>android-5.1.1_r15</td> - <td>Lollipop</td> - <td>Nexus Player</td> -</tr> -<tr> - <td>LMY48M</td> - <td>android-5.1.1_r14</td> - <td>Lollipop</td> - <td>Nexus 4ã€Nexus 5ã€Nexus 6ã€Nexus 7 (flo)ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LVY48E</td> - <td>android-5.1.1_r13</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ Project Fi)</td> -</tr> -<tr> - <td>LYZ28J</td> - <td>android-5.1.1_r12</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ T-Mobile)</td> -</tr> -<tr> - <td>LMY48J</td> - <td>android-5.1.1_r10</td> - <td>Lollipop</td> - <td>Nexus Player</td> -</tr> -<tr> - <td>LMY48I</td> - <td>android-5.1.1_r9</td> - <td>Lollipop</td> - <td>Nexus 4ã€Nexus 5ã€Nexus 6ã€Nexus 7 (flo)ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LVY48C</td> - <td>android-5.1.1_r8</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ Project Fi)</td> -</tr> -<tr> - <td>LMY48G</td> - <td>android-5.1.1_r6</td> - <td>Lollipop</td> - <td>Nexus 7 (flo)</td> -</tr> -<tr> - <td>LYZ28E</td> - <td>android-5.1.1_r5</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ T-Mobile)</td> -</tr> -<tr> - <td>LMY47Z</td> - <td>android-5.1.1_r4</td> - <td>Lollipop</td> - <td>Nexus 6(é¢å‘除 T-Mobile(美国)之外的所有è¿è¥å•†ï¼‰</td> -</tr> -<tr> - <td>LMY48B</td> - <td>android-5.1.1_r3</td> - <td>Lollipop</td> - <td>Nexus 5</td> -</tr> -<tr> - <td>LMY47X</td> - <td>android-5.1.1_r2</td> - <td>Lollipop</td> - <td>Nexus 9 (volantis)</td> -</tr> -<tr> - <td>LMY47V</td> - <td>android-5.1.1_r1</td> - <td>Lollipop</td> - <td>Nexus 7 (flo/grouper)ã€Nexus 10ã€Nexus Player</td> -</tr> -<tr> - <td>LMY47O</td> - <td>android-5.1.0_r5</td> - <td>Lollipop</td> - <td>Nexus 4ã€Nexus 7 (flo/deb)</td> -</tr> -<tr> - <td>LMY47M</td> - <td>android-5.1.0_r4</td> - <td>Lollipop</td> - <td>Nexus 6(仅é¢å‘ T-Mobile)</td> -</tr> -<tr> - <td>LMY47I</td> - <td>android-5.1.0_r3</td> - <td>Lollipop</td> - <td>Nexus 5ã€Nexus 6</td> -</tr> -<tr> - <td>LMY47E</td> - <td>android-5.1.0_r2</td> - <td>Lollipop</td> - <td>Nexus 6</td> -</tr> -<tr> - <td>LMY47D</td> - <td>android-5.1.0_r1</td> - <td>Lollipop</td> - <td>Nexus 5ã€Nexus 6ã€Nexus 7 (grouper/tilapia)ã€Nexus 10ã€Nexus Player</td> -</tr> -<tr> - <td>LRX22L</td> - <td>android-5.0.2_r3</td> - <td>Lollipop</td> - <td>Nexus 9 (volantis/volantisg)</td> -</tr> -<tr> - <td>LRX22G</td> - <td>android-5.0.2_r1</td> - <td>Lollipop</td> - <td>Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 10</td> -</tr> -<tr> - <td>LRX22C</td> - <td>android-5.0.1_r1</td> - <td>Lollipop</td> - <td>Nexus 4ã€Nexus 5ã€Nexus 6 (shamu)ã€Nexus 7 (flo)ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> -</tr> -<tr> - <td>LRX21V</td> - <td>android-5.0.0_r7.0.1</td> - <td>Lollipop</td> - <td>Nexus Player (fugu)</td> -</tr> -<tr> - <td>LRX21T</td> - <td>android-5.0.0_r6.0.1</td> - <td>Lollipop</td> - <td>Nexus 4</td> -</tr> -<tr> - <td>LRX21R</td> - <td>android-5.0.0_r5.1.0.1</td> - <td>Lollipop</td> - <td>Nexus 9 (volantis)</td> -</tr> -<tr> - <td>LRX21Q</td> - <td>android-5.0.0_r5.0.1</td> - <td>Lollipop</td> - <td>Nexus 9 (volantis)</td> -</tr> -<tr> - <td>LRX21P</td> - <td>android-5.0.0_r4.0.1</td> - <td>Lollipop</td> - <td>Nexus 7 (flo/grouper)ã€Nexus 10</td> -</tr> -<tr> - <td>LRX21O</td> - <td>android-5.0.0_r3.0.1</td> - <td>Lollipop</td> - <td>Nexus 5 (hammerhead)ã€Nexus 6 (shamu)</td> -</tr> -<tr> - <td>LRX21M</td> - <td>android-5.0.0_r2.0.1</td> - <td>Lollipop</td> - <td>Nexus Player (fugu)</td> -</tr> -<tr> - <td>LRX21L</td> - <td>android-5.0.0_r1.0.1</td> - <td>Lollipop</td> - <td>Nexus 9 (volantis)</td> -</tr> -<tr> - <td>KTU84Q</td> - <td>android-4.4.4_r2</td> - <td>KitKat</td> - <td>Nexus 5 (hammerhead)(仅é¢å‘新西兰的 2Degreesã€æ¾³å¤§åˆ©äºšçš„ Telstra å’Œå°åº¦ï¼‰</td> -</tr> -<tr> - <td>KTU84P</td> - <td>android-4.4.4_r1</td> - <td>KitKat</td> - <td>Nexus 5ã€Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>KTU84M</td> - <td>android-4.4.3_r1.1</td> - <td>KitKat</td> - <td>Nexus 5 (hammerhead)</td> -</tr> -<tr> - <td>KTU84L</td> - <td>android-4.4.3_r1</td> - <td>KitKat</td> - <td>Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>KVT49L</td> - <td>android-4.4.2_r2</td> - <td>KitKat</td> - <td>Nexus 7 (deb Verizon)</td> -</tr> -<tr> - <td>KOT49H</td> - <td>android-4.4.2_r1</td> - <td>KitKat</td> - <td>Nexus 5ã€Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>KOT49E</td> - <td>android-4.4.1_r1</td> - <td>KitKat</td> - <td>Nexus 5ã€Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>KRT16S</td> - <td>android-4.4_r1.2</td> - <td>KitKat</td> - <td>Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>KRT16M</td> - <td>android-4.4_r1</td> - <td>KitKat</td> - <td>Nexus 5 (hammerhead)</td> -</tr> -<tr> - <td>JLS36I</td> - <td>android-4.3.1_r1</td> - <td>Jelly Bean</td> - <td>Nexus 7 (deb)</td> -</tr> -<tr> - <td>JLS36C</td> - <td>android-4.3_r3</td> - <td>Jelly Bean</td> - <td>Nexus 7 (deb)</td> -</tr> -<tr> - <td>JSS15R</td> - <td>android-4.3_r2.3</td> - <td>Jelly Bean</td> - <td>Nexus 7 (flo)</td> -</tr> -<tr> - <td>JSS15Q</td> - <td>android-4.3_r2.2</td> - <td>Jelly Bean</td> - <td>Nexus 7 (flo)</td> -</tr> -<tr> - <td>JSS15J</td> - <td>android-4.3_r2.1</td> - <td>Jelly Bean</td> - <td>Nexus 7 (flo/deb)</td> -</tr> -<tr> - <td>JSR78D</td> - <td>android-4.3_r2</td> - <td>Jelly Bean</td> - <td>Nexus 7 (deb)</td> -</tr> -<tr> - <td>JWR66Y</td> - <td>android-4.3_r1.1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexusã€Nexus 7 (grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>JWR66V</td> - <td>android-4.3_r1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexusã€Nexus 7 (grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>JWR66N</td> - <td>android-4.3_r0.9.1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexusã€Nexus 7 (grouper/tilapia/flo)ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>JWR66L</td> - <td>android-4.3_r0.9</td> - <td>Jelly Bean</td> - <td>Nexus 7</td> -</tr> -<tr> - <td>JDQ39E</td> - <td>android-4.2.2_r1.2</td> - <td>Jelly Bean</td> - <td>Nexus 4</td> -</tr> -<tr> - <td>JDQ39B</td> - <td>android-4.2.2_r1.1</td> - <td>Jelly Bean</td> - <td>Nexus 7</td> -</tr> -<tr> - <td>JDQ39</td> - <td>android-4.2.2_r1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexusã€Nexus 7ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>JOP40G</td> - <td>android-4.2.1_r1.2</td> - <td>Jelly Bean</td> - <td>Nexus 4</td> -</tr> -<tr> - <td>JOP40F</td> - <td>android-4.2.1_r1.1</td> - <td>Jelly Bean</td> - <td>Nexus 10</td> -</tr> -<tr> - <td>JOP40D</td> - <td>android-4.2.1_r1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexusã€Nexus 7ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>JOP40C</td> - <td>android-4.2_r1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexusã€Nexus 7ã€Nexus 4ã€Nexus 10</td> -</tr> -<tr> - <td>JZO54M</td> - <td>android-4.1.2_r2.1</td> - <td>Jelly Bean</td> - <td></td> -</tr> -<tr> - <td>JZO54L</td> - <td>android-4.1.2_r2</td> - <td>Jelly Bean</td> - <td></td> -</tr> -<tr> - <td>JZO54K</td> - <td>android-4.1.2_r1</td> - <td>Jelly Bean</td> - <td>Nexus Sã€Galaxy Nexusã€Nexus 7</td> -</tr> -<tr> - <td>JRO03S</td> - <td>android-4.1.1_r6.1</td> - <td>Jelly Bean</td> - <td>Nexus 7</td> -</tr> -<tr> - <td>JRO03R</td> - <td>android-4.1.1_r6</td> - <td>Jelly Bean</td> - <td>Nexus S 4G</td> -</tr> -<tr> - <td>JRO03O</td> - <td>android-4.1.1_r5</td> - <td>Jelly Bean</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>JRO03L</td> - <td>android-4.1.1_r4</td> - <td>Jelly Bean</td> - <td>Nexus S</td> -</tr> -<tr> - <td>JRO03H</td> - <td>android-4.1.1_r3</td> - <td>Jelly Bean</td> - <td></td> -</tr> -<tr> - <td>JRO03E</td> - <td>android-4.1.1_r2</td> - <td>Jelly Bean</td> - <td>Nexus S</td> -</tr> -<tr> - <td>JRO03D</td> - <td>android-4.1.1_r1.1</td> - <td>Jelly Bean</td> - <td>Nexus 7</td> -</tr> -<tr> - <td>JRO03C</td> - <td>android-4.1.1_r1</td> - <td>Jelly Bean</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>IMM76L</td> - <td>android-4.0.4_r2.1</td> - <td>Ice Cream Sandwich</td> - <td> </td> -</tr> -<tr> - <td>IMM76K</td> - <td>android-4.0.4_r2</td> - <td>Ice Cream Sandwich</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>IMM76I</td> - <td>android-4.0.4_r1.2</td> - <td>Ice Cream Sandwich</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>IMM76D</td> - <td>android-4.0.4_r1.1</td> - <td>Ice Cream Sandwich</td> - <td>Nexus Sã€Nexus S 4Gã€Galaxy Nexus</td> -</tr> -<tr> - <td>IMM76</td> - <td>android-4.0.4_r1</td> - <td>Ice Cream Sandwich</td> - <td></td> -</tr> -<tr> - <td>IML77</td> - <td>android-4.0.3_r1.1</td> - <td>Ice Cream Sandwich</td> - <td></td> -</tr> -<tr> - <td>IML74K</td> - <td>android-4.0.3_r1</td> - <td>Ice Cream Sandwich</td> - <td>Nexus S</td> -</tr> -<tr> - <td>ICL53F</td> - <td>android-4.0.2_r1</td> - <td>Ice Cream Sandwich</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>ITL41F</td> - <td>android-4.0.1_r1.2</td> - <td>Ice Cream Sandwich</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>ITL41D</td> - <td>android-4.0.1_r1.1</td> - <td>Ice Cream Sandwich</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>ITL41D</td> - <td>android-4.0.1_r1</td> - <td>Ice Cream Sandwich</td> - <td>Galaxy Nexus</td> -</tr> -<tr> - <td>GWK74</td> - <td>android-2.3.7_r1</td> - <td>Gingerbread</td> - <td>Nexus S 4G</td> -</tr> -<tr> - <td>GRK39F</td> - <td>android-2.3.6_r1</td> - <td>Gingerbread</td> - <td>Nexus Oneã€Nexus S</td> -</tr> -<tr> - <td>GRK39C</td> - <td>android-2.3.6_r0.9</td> - <td>Gingerbread</td> - <td>Nexus S</td> -</tr> -<tr> - <td>GRJ90</td> - <td>android-2.3.5_r1</td> - <td>Gingerbread</td> - <td>Nexus S 4G</td> -</tr> -<tr> - <td>GRJ22</td> - <td>android-2.3.4_r1</td> - <td>Gingerbread</td> - <td>Nexus Oneã€Nexus Sã€Nexus S 4G</td> -</tr> -<tr> - <td>GRJ06D</td> - <td>android-2.3.4_r0.9</td> - <td>Gingerbread</td> - <td>Nexus S 4G</td> -</tr> -<tr> - <td>GRI54</td> - <td>android-2.3.3_r1.1</td> - <td>Gingerbread</td> - <td>Nexus S</td> -</tr> -<tr> - <td>GRI40</td> - <td>android-2.3.3_r1</td> - <td>Gingerbread</td> - <td>Nexus Oneã€Nexus S</td> -</tr> -<tr> - <td>GRH78C</td> - <td>android-2.3.2_r1</td> - <td>Gingerbread</td> - <td>Nexus S</td> -</tr> -<tr> - <td>GRH78</td> - <td>android-2.3.1_r1</td> - <td>Gingerbread</td> - <td>Nexus S</td> -</tr> -<tr> - <td>GRH55</td> - <td>android-2.3_r1</td> - <td>Gingerbread</td> - <td>使用 Gingerbread 最早期版本的设备ã€Nexus S</td> -</tr> -<tr> - <td>FRK76C</td> - <td>android-2.2.3_r2</td> - <td>Froyo</td> - <td> </td> -</tr> -<tr> - <td>FRK76</td> - <td>android-2.2.3_r1</td> - <td>Froyo</td> - <td></td> -</tr> -<tr> - <td>FRG83G</td> - <td>android-2.2.2_r1</td> - <td>Froyo</td> - <td>Nexus One</td> -</tr> -<tr> - <td>FRG83D</td> - <td>android-2.2.1_r2</td> - <td>Froyo</td> - <td>Nexus One</td> -</tr> -<tr> - <td>FRG83</td> - <td>android-2.2.1_r1</td> - <td>Froyo</td> - <td>Nexus One</td> -</tr> -<tr> - <td>FRG22D</td> - <td>android-2.2_r1.3</td> - <td>Froyo</td> - <td></td> -</tr> -<tr> - <td>FRG01B</td> - <td>android-2.2_r1.2</td> - <td>Froyo</td> - <td></td> -</tr> -<tr> - <td>FRF91</td> - <td>android-2.2_r1.1</td> - <td>Froyo</td> - <td>Nexus One</td> -</tr> -<tr> - <td>FRF85B</td> - <td>android-2.2_r1</td> - <td>Froyo</td> - <td>Nexus One</td> -</tr> -<tr> - <td>EPF21B</td> - <td>android-2.1_r2.1p2</td> - <td>Eclair</td> - <td> </td> -</tr> -<tr> - <td>ESE81</td> - <td>android-2.1_r2.1s</td> - <td>Eclair</td> - <td></td> -</tr> -<tr> - <td>EPE54B</td> - <td>android-2.1_r2.1p</td> - <td>Eclair</td> - <td>Nexus One</td> -</tr> -<tr> - <td>ERE27</td> - <td>android-2.1_r2</td> - <td>Eclair</td> - <td>Nexus One</td> -</tr> -<tr> - <td>ERD79</td> - <td>android-2.1_r1</td> - <td>Eclair</td> - <td>Nexus One</td> -</tr> -<tr> - <td>ESD56</td> - <td>android-2.0.1_r1</td> - <td>Eclair</td> - <td></td> -</tr> -<tr> - <td>ESD20</td> - <td>android-2.0_r1</td> - <td>Eclair</td> - <td> </td> -</tr> -<tr> - <td>DMD64</td> - <td>android-1.6_r1.5</td> - <td>Donut</td> - <td> </td> -</tr> -<tr> - <td>DRD20</td> - <td>android-1.6_r1.4</td> - <td></td> - <td></td> -</tr> -<tr> - <td>DRD08</td> - <td>android-1.6_r1.3</td> - <td></td> - <td></td> -</tr> -<tr> - <td>DRC92</td> - <td>android-1.6_r1.2</td> - <td></td> - <td></td> -</tr> -</tbody> + <tr> + <td>M5C14J</td> + <td>android-6.0.1_r31</td> + <td>Marshmallow</td> + <td>Pixel C</td> + <td>2016-04-01</td> + </tr> + <tr> + <td>MOB30D</td> + <td>android-6.0.1_r30</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2016-04-02</td> + </tr> + <tr> + <td>MHC19Q</td> + <td>android-6.0.1_r24</td> + <td>Marshmallow</td> + <td>Nexus 5Xã€Nexus 6P</td> + <td>2016-04-02</td> + </tr> + <tr> + <td>MHC19J</td> + <td>android-6.0.1_r22</td> + <td>Marshmallow</td> + <td>Nexus 5X</td> + <td>2016-03-01</td> + </tr> + <tr> + <td>MHC19I</td> + <td>android-6.0.1_r21</td> + <td>Marshmallow</td> + <td>Nexus 6P</td> + <td>2016-03-01</td> + </tr> + <tr> + <td>MMB29X</td> + <td>android-6.0.1_r20</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 6ã€Nexus 7 (deb)ã€Nexus 9 (volantisg)</td> + <td>2016-04-02</td> + </tr> + <tr> + <td>MXC14G</td> + <td>android-6.0.1_r18</td> + <td>Marshmallow</td> + <td>Pixel C</td> + <td>2016-03-01</td> + </tr> + <tr> + <td>MMB29V</td> + <td>android-6.0.1_r17</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 5Xã€Nexus 6ã€Nexus 6Pã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)</td> + <td>2016-03-01</td> + </tr> + <tr> + <td>MXB48T</td> + <td>android-6.0.1_r16</td> + <td>Marshmallow</td> + <td>Pixel C</td> + <td>2016-02-01</td> + </tr> + <tr> + <td>MMB29U</td> + <td>android-6.0.1_r13</td> + <td>Marshmallow</td> + <td>Nexus Player</td> + <td>2016-02-01</td> + </tr> + <tr> + <td>MMB29R</td> + <td>android-6.0.1_r12</td> + <td>Marshmallow</td> + <td>Nexus 9 (volantis/volantisg)</td> + <td>2016-02-01</td> + </tr> + <tr> + <td>MMB29Q</td> + <td>android-6.0.1_r11</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 5Xã€Nexus 6ã€Nexus 6Pã€Nexus 7 (flo/deb)</td> + <td>2016-02-01</td> + </tr> + <tr> + <td>MMB29T</td> + <td>android-6.0.1_r10</td> + <td>Marshmallow</td> + <td>Nexus Player</td> + <td>2016-01-01</td> + </tr> + <tr> + <td>MMB29S</td> + <td>android-6.0.1_r9</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 6ã€Nexus 9 (volantis/volantisg)</td> + <td>2016-01-01</td> + </tr> + <tr> + <td>MMB29P</td> + <td>android-6.0.1_r8</td> + <td>Marshmallow</td> + <td>Nexus 5Xã€Nexus 6P</td> + <td>2016-01-01</td> + </tr> + <tr> + <td>MMB29O</td> + <td>android-6.0.1_r7</td> + <td>Marshmallow</td> + <td>Nexus 7 (flo/deb)</td> + <td>2016-01-01</td> + </tr> + <tr> + <td>MXB48K</td> + <td>android-6.0.1_r5</td> + <td>Marshmallow</td> + <td>Pixel C</td> + <td>2015-12-01</td> + </tr> + <tr> + <td>MXB48J</td> + <td>android-6.0.1_r4</td> + <td>Marshmallow</td> + <td>Pixel C</td> + <td>2015-12-01</td> + </tr> + <tr> + <td>MMB29M</td> + <td>android-6.0.1_r3</td> + <td>Marshmallow</td> + <td>Nexus 6Pã€Nexus Player</td> + <td>2015-12-01</td> + </tr> + <tr> + <td>MMB29K</td> + <td>android-6.0.1_r1</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 5Xã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)</td> + <td>2015-12-01</td> + </tr> + <tr> + <td>MMB29N</td> + <td>android-6.0.0_r41</td> + <td>Marshmallow</td> + <td>Nexus 6P</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>MDB08M</td> + <td>android-6.0.0_r26</td> + <td>Marshmallow</td> + <td>Nexus 5Xã€Nexus 6P</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>MDB08L</td> + <td>android-6.0.0_r25</td> + <td>Marshmallow</td> + <td>Nexus 5Xã€Nexus 6P</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>MDB08K</td> + <td>android-6.0.0_r24</td> + <td>Marshmallow</td> + <td>Nexus 6P</td> + <td>2015-10-01</td> + </tr> + <tr> + <td>MDB08I</td> + <td>android-6.0.0_r23</td> + <td>Marshmallow</td> + <td>Nexus 5X</td> + <td>2015-10-01</td> + </tr> + <tr> + <td>MDA89E</td> + <td>android-6.0.0_r12</td> + <td>Marshmallow</td> + <td>Nexus 5X</td> + <td>2015-10-01</td> + </tr> + <tr> + <td>MDA89D</td> + <td>android-6.0.0_r11</td> + <td>Marshmallow</td> + <td>Nexus 6P</td> + <td>2015-10-01</td> + </tr> + <tr> + <td>MRA59B</td> + <td>android-6.0.0_r7</td> + <td>Marshmallow</td> + <td>Nexus 7 (deb)</td> + <td>2015-12-01</td> + </tr> + <tr> + <td>MRA58X</td> + <td>android-6.0.0_r6</td> + <td>Marshmallow</td> + <td>Nexus 6</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>MRA58V</td> + <td>android-6.0.0_r5</td> + <td>Marshmallow</td> + <td>Nexus 7 (flo/deb)</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>MRA58U</td> + <td>android-6.0.0_r4</td> + <td>Marshmallow</td> + <td>Nexus 7 (flo)</td> + <td>2015-10-01</td> + </tr> + <tr> + <td>MRA58N</td> + <td>android-6.0.0_r2</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>MRA58K</td> + <td>android-6.0.0_r1</td> + <td>Marshmallow</td> + <td>Nexus 5ã€Nexus 6ã€Nexus 7 (flo/deb)ã€Nexus 9 (volantis/volantisg)ã€Nexus Player</td> + <td>2015-10-01</td> + </tr> + <tr> + <td>LMY49M</td> + <td>android-5.1.1_r38</td> + <td>Lollipop</td> + <td>Nexus 10</td> + <td>2016-07-05</td> + </tr> + <tr> + <td>LMY49J</td> + <td>android-5.1.1_r37</td> + <td>Lollipop</td> + <td>Nexus 10</td> + <td>2016-04-01</td> + </tr> + <tr> + <td>LMY49I</td> + <td>android-5.1.1_r36</td> + <td>Lollipop</td> + <td>Nexus 10</td> + <td>2016-03-01</td> + </tr> + <tr> + <td>LMY49H</td> + <td>android-5.1.1_r35</td> + <td>Lollipop</td> + <td>Nexus 10</td> + <td>2016-03-01</td> + </tr> + <tr> + <td>LMY49G</td> + <td>android-5.1.1_r34</td> + <td>Lollipop</td> + <td>Nexus 10</td> + <td>2016-02-01</td> + </tr> + <tr> + <td>LMY49F</td> + <td>android-5.1.1_r33</td> + <td>Lollipop</td> + <td>Nexus 9 (volantisg)ã€Nexus 10</td> + <td>2016-01-01</td> + </tr> + <tr> + <td>LMY48Z</td> + <td>android-5.1.1_r30</td> + <td>Lollipop</td> + <td>Nexus 6ã€Nexus 7 (deb)ã€Nexus 9 (volantisg)ã€Nexus 10</td> + <td>2015-12-01</td> + </tr> + <tr> + <td>LYZ28N</td> + <td>android-5.1.1_r28</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ T-Mobile)</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>LMY48Y</td> + <td>android-5.1.1_r26</td> + <td>Lollipop</td> + <td>Nexus 6</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>LMY48X</td> + <td>android-5.1.1_r25</td> + <td>Lollipop</td> + <td>Nexus 6ã€Nexus 7 (deb)ã€Nexus 9 (volantisg)ã€Nexus 10</td> + <td>2015-11-01</td> + </tr> + <tr> + <td>LMY48W</td> + <td>android-5.1.1_r24</td> + <td>Lollipop</td> + <td>Nexus 6</td> + <td></td> + </tr> + <tr> + <td>LVY48H</td> + <td>android-5.1.1_r23</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ Project Fi)</td> + <td></td> + </tr> + <tr> + <td>LYZ28M</td> + <td>android-5.1.1_r22</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ T-Mobile)</td> + <td></td> + </tr> + <tr> + <td>LMY48U</td> + <td>android-5.1.1_r20</td> + <td>Lollipop</td> + <td>Nexus 7 (deb)</td> + <td></td> + </tr> + <tr> + <td>LMY48T</td> + <td>android-5.1.1_r19</td> + <td>Lollipop</td> + <td>Nexus 4ã€Nexus 6ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>LVY48F</td> + <td>android-5.1.1_r18</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ Project Fi)</td> + <td></td> + </tr> + <tr> + <td>LYZ28K</td> + <td>android-5.1.1_r17</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ T-Mobile)</td> + <td></td> + </tr> + <tr> + <td>LMY48P</td> + <td>android-5.1.1_r16</td> + <td>Lollipop</td> + <td>Nexus 7 (deb)</td> + <td></td> + </tr> + <tr> + <td>LMY48N</td> + <td>android-5.1.1_r15</td> + <td>Lollipop</td> + <td>Nexus Player</td> + <td></td> + </tr> + <tr> + <td>LMY48M</td> + <td>android-5.1.1_r14</td> + <td>Lollipop</td> + <td>Nexus 4ã€Nexus 5ã€Nexus 6ã€Nexus 7 (flo)ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>LVY48E</td> + <td>android-5.1.1_r13</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ Project Fi)</td> + <td></td> + </tr> + <tr> + <td>LYZ28J</td> + <td>android-5.1.1_r12</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ T-Mobile)</td> + <td></td> + </tr> + <tr> + <td>LMY48J</td> + <td>android-5.1.1_r10</td> + <td>Lollipop</td> + <td>Nexus Player</td> + <td></td> + </tr> + <tr> + <td>LMY48I</td> + <td>android-5.1.1_r9</td> + <td>Lollipop</td> + <td>Nexus 4ã€Nexus 5ã€Nexus 6ã€Nexus 7 (flo)ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>LVY48C</td> + <td>android-5.1.1_r8</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ Project Fi)</td> + <td></td> + </tr> + <tr> + <td>LMY48G</td> + <td>android-5.1.1_r6</td> + <td>Lollipop</td> + <td>Nexus 7 (flo)</td> + <td></td> + </tr> + <tr> + <td>LYZ28E</td> + <td>android-5.1.1_r5</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ T-Mobile)</td> + <td></td> + </tr> + <tr> + <td>LMY47Z</td> + <td>android-5.1.1_r4</td> + <td>Lollipop</td> + <td>Nexus 6(é¢å‘除 T-Mobile(美国)之外的所有è¿è¥å•†ï¼‰</td> + <td></td> + </tr> + <tr> + <td>LMY48B</td> + <td>android-5.1.1_r3</td> + <td>Lollipop</td> + <td>Nexus 5</td> + <td></td> + </tr> + <tr> + <td>LMY47X</td> + <td>android-5.1.1_r2</td> + <td>Lollipop</td> + <td>Nexus 9 (volantis)</td> + <td></td> + </tr> + <tr> + <td>LMY47V</td> + <td>android-5.1.1_r1</td> + <td>Lollipop</td> + <td>Nexus 7 (flo/grouper)ã€Nexus 10ã€Nexus Player</td> + <td></td> + </tr> + <tr> + <td>LMY47O</td> + <td>android-5.1.0_r5</td> + <td>Lollipop</td> + <td>Nexus 4ã€Nexus 7 (flo/deb)</td> + <td></td> + </tr> + <tr> + <td>LMY47M</td> + <td>android-5.1.0_r4</td> + <td>Lollipop</td> + <td>Nexus 6(仅é¢å‘ T-Mobile)</td> + <td></td> + </tr> + <tr> + <td>LMY47I</td> + <td>android-5.1.0_r3</td> + <td>Lollipop</td> + <td>Nexus 5ã€Nexus 6</td> + <td></td> + </tr> + <tr> + <td>LMY47E</td> + <td>android-5.1.0_r2</td> + <td>Lollipop</td> + <td>Nexus 6</td> + <td></td> + </tr> + <tr> + <td>LMY47D</td> + <td>android-5.1.0_r1</td> + <td>Lollipop</td> + <td>Nexus 5ã€Nexus 6ã€Nexus 7 (grouper/tilapia)ã€Nexus 10ã€Nexus Player</td> + <td></td> + </tr> + <tr> + <td>LRX22L</td> + <td>android-5.0.2_r3</td> + <td>Lollipop</td> + <td>Nexus 9 (volantis/volantisg)</td> + <td></td> + </tr> + <tr> + <td>LRX22G</td> + <td>android-5.0.2_r1</td> + <td>Lollipop</td> + <td>Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>LRX22C</td> + <td>android-5.0.1_r1</td> + <td>Lollipop</td> + <td>Nexus 4ã€Nexus 5ã€Nexus 6 (shamu)ã€Nexus 7 (flo)ã€Nexus 9 (volantis/volantisg)ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>LRX21V</td> + <td>android-5.0.0_r7.0.1</td> + <td>Lollipop</td> + <td>Nexus Player (fugu)</td> + <td></td> + </tr> + <tr> + <td>LRX21T</td> + <td>android-5.0.0_r6.0.1</td> + <td>Lollipop</td> + <td>Nexus 4</td> + <td></td> + </tr> + <tr> + <td>LRX21R</td> + <td>android-5.0.0_r5.1.0.1</td> + <td>Lollipop</td> + <td>Nexus 9 (volantis)</td> + <td></td> + </tr> + <tr> + <td>LRX21Q</td> + <td>android-5.0.0_r5.0.1</td> + <td>Lollipop</td> + <td>Nexus 9 (volantis)</td> + <td></td> + </tr> + <tr> + <td>LRX21P</td> + <td>android-5.0.0_r4.0.1</td> + <td>Lollipop</td> + <td>Nexus 7 (flo/grouper)ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>LRX21O</td> + <td>android-5.0.0_r3.0.1</td> + <td>Lollipop</td> + <td>Nexus 5 (hammerhead)ã€Nexus 6 (shamu)</td> + <td></td> + </tr> + <tr> + <td>LRX21M</td> + <td>android-5.0.0_r2.0.1</td> + <td>Lollipop</td> + <td>Nexus Player (fugu)</td> + <td></td> + </tr> + <tr> + <td>LRX21L</td> + <td>android-5.0.0_r1.0.1</td> + <td>Lollipop</td> + <td>Nexus 9 (volantis)</td> + <td></td> + </tr> + <tr> + <td>KTU84Q</td> + <td>android-4.4.4_r2</td> + <td>KitKat</td> + <td>Nexus 5 (hammerhead)(仅é¢å‘新西兰的 2Degreesã€æ¾³å¤§åˆ©äºšçš„ Telstra å’Œå°åº¦ï¼‰</td> + <td></td> + </tr> + <tr> + <td>KTU84P</td> + <td>android-4.4.4_r1</td> + <td>KitKat</td> + <td>Nexus 5ã€Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>KTU84M</td> + <td>android-4.4.3_r1.1</td> + <td>KitKat</td> + <td>Nexus 5 (hammerhead)</td> + <td></td> + </tr> + <tr> + <td>KTU84L</td> + <td>android-4.4.3_r1</td> + <td>KitKat</td> + <td>Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>KVT49L</td> + <td>android-4.4.2_r2</td> + <td>KitKat</td> + <td>Nexus 7 (deb Verizon)</td> + <td></td> + </tr> + <tr> + <td>KOT49H</td> + <td>android-4.4.2_r1</td> + <td>KitKat</td> + <td>Nexus 5ã€Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>KOT49E</td> + <td>android-4.4.1_r1</td> + <td>KitKat</td> + <td>Nexus 5ã€Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>KRT16S</td> + <td>android-4.4_r1.2</td> + <td>KitKat</td> + <td>Nexus 7 (flo/deb/grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>KRT16M</td> + <td>android-4.4_r1</td> + <td>KitKat</td> + <td>Nexus 5 (hammerhead)</td> + <td></td> + </tr> + <tr> + <td>JLS36I</td> + <td>android-4.3.1_r1</td> + <td>Jelly Bean</td> + <td>Nexus 7 (deb)</td> + <td></td> + </tr> + <tr> + <td>JLS36C</td> + <td>android-4.3_r3</td> + <td>Jelly Bean</td> + <td>Nexus 7 (deb)</td> + <td></td> + </tr> + <tr> + <td>JSS15R</td> + <td>android-4.3_r2.3</td> + <td>Jelly Bean</td> + <td>Nexus 7 (flo)</td> + <td></td> + </tr> + <tr> + <td>JSS15Q</td> + <td>android-4.3_r2.2</td> + <td>Jelly Bean</td> + <td>Nexus 7 (flo)</td> + <td></td> + </tr> + <tr> + <td>JSS15J</td> + <td>android-4.3_r2.1</td> + <td>Jelly Bean</td> + <td>Nexus 7 (flo/deb)</td> + <td></td> + </tr> + <tr> + <td>JSR78D</td> + <td>android-4.3_r2</td> + <td>Jelly Bean</td> + <td>Nexus 7 (deb)</td> + <td></td> + </tr> + <tr> + <td>JWR66Y</td> + <td>android-4.3_r1.1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexusã€Nexus 7 (grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JWR66V</td> + <td>android-4.3_r1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexusã€Nexus 7 (grouper/tilapia)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JWR66N</td> + <td>android-4.3_r0.9.1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexusã€Nexus 7 (grouper/tilapia/flo)ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JWR66L</td> + <td>android-4.3_r0.9</td> + <td>Jelly Bean</td> + <td>Nexus 7</td> + <td></td> + </tr> + <tr> + <td>JDQ39E</td> + <td>android-4.2.2_r1.2</td> + <td>Jelly Bean</td> + <td>Nexus 4</td> + <td></td> + </tr> + <tr> + <td>JDQ39B</td> + <td>android-4.2.2_r1.1</td> + <td>Jelly Bean</td> + <td>Nexus 7</td> + <td></td> + </tr> + <tr> + <td>JDQ39</td> + <td>android-4.2.2_r1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexusã€Nexus 7ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JOP40G</td> + <td>android-4.2.1_r1.2</td> + <td>Jelly Bean</td> + <td>Nexus 4</td> + <td></td> + </tr> + <tr> + <td>JOP40F</td> + <td>android-4.2.1_r1.1</td> + <td>Jelly Bean</td> + <td>Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JOP40D</td> + <td>android-4.2.1_r1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexusã€Nexus 7ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JOP40C</td> + <td>android-4.2_r1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexusã€Nexus 7ã€Nexus 4ã€Nexus 10</td> + <td></td> + </tr> + <tr> + <td>JZO54M</td> + <td>android-4.1.2_r2.1</td> + <td>Jelly Bean</td> + <td></td> + <td></td> + </tr> + <tr> + <td>JZO54L</td> + <td>android-4.1.2_r2</td> + <td>Jelly Bean</td> + <td></td> + <td></td> + </tr> + <tr> + <td>JZO54K</td> + <td>android-4.1.2_r1</td> + <td>Jelly Bean</td> + <td>Nexus Sã€Galaxy Nexusã€Nexus 7</td> + <td></td> + </tr> + <tr> + <td>JRO03S</td> + <td>android-4.1.1_r6.1</td> + <td>Jelly Bean</td> + <td>Nexus 7</td> + <td></td> + </tr> + <tr> + <td>JRO03R</td> + <td>android-4.1.1_r6</td> + <td>Jelly Bean</td> + <td>Nexus S 4G</td> + <td></td> + </tr> + <tr> + <td>JRO03O</td> + <td>android-4.1.1_r5</td> + <td>Jelly Bean</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>JRO03L</td> + <td>android-4.1.1_r4</td> + <td>Jelly Bean</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>JRO03H</td> + <td>android-4.1.1_r3</td> + <td>Jelly Bean</td> + <td></td> + <td></td> + </tr> + <tr> + <td>JRO03E</td> + <td>android-4.1.1_r2</td> + <td>Jelly Bean</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>JRO03D</td> + <td>android-4.1.1_r1.1</td> + <td>Jelly Bean</td> + <td>Nexus 7</td> + <td></td> + </tr> + <tr> + <td>JRO03C</td> + <td>android-4.1.1_r1</td> + <td>Jelly Bean</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>IMM76L</td> + <td>android-4.0.4_r2.1</td> + <td>Ice Cream Sandwich</td> + <td> </td> + <td></td> + </tr> + <tr> + <td>IMM76K</td> + <td>android-4.0.4_r2</td> + <td>Ice Cream Sandwich</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>IMM76I</td> + <td>android-4.0.4_r1.2</td> + <td>Ice Cream Sandwich</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>IMM76D</td> + <td>android-4.0.4_r1.1</td> + <td>Ice Cream Sandwich</td> + <td>Nexus Sã€Nexus S 4Gã€Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>IMM76</td> + <td>android-4.0.4_r1</td> + <td>Ice Cream Sandwich</td> + <td></td> + <td></td> + </tr> + <tr> + <td>IML77</td> + <td>android-4.0.3_r1.1</td> + <td>Ice Cream Sandwich</td> + <td></td> + <td></td> + </tr> + <tr> + <td>IML74K</td> + <td>android-4.0.3_r1</td> + <td>Ice Cream Sandwich</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>ICL53F</td> + <td>android-4.0.2_r1</td> + <td>Ice Cream Sandwich</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>ITL41F</td> + <td>android-4.0.1_r1.2</td> + <td>Ice Cream Sandwich</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>ITL41D</td> + <td>android-4.0.1_r1.1</td> + <td>Ice Cream Sandwich</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>ITL41D</td> + <td>android-4.0.1_r1</td> + <td>Ice Cream Sandwich</td> + <td>Galaxy Nexus</td> + <td></td> + </tr> + <tr> + <td>GWK74</td> + <td>android-2.3.7_r1</td> + <td>Gingerbread</td> + <td>Nexus S 4G</td> + <td></td> + </tr> + <tr> + <td>GRK39F</td> + <td>android-2.3.6_r1</td> + <td>Gingerbread</td> + <td>Nexus Oneã€Nexus S</td> + <td></td> + </tr> + <tr> + <td>GRK39C</td> + <td>android-2.3.6_r0.9</td> + <td>Gingerbread</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>GRJ90</td> + <td>android-2.3.5_r1</td> + <td>Gingerbread</td> + <td>Nexus S 4G</td> + <td></td> + </tr> + <tr> + <td>GRJ22</td> + <td>android-2.3.4_r1</td> + <td>Gingerbread</td> + <td>Nexus Oneã€Nexus Sã€Nexus S 4G</td> + <td></td> + </tr> + <tr> + <td>GRJ06D</td> + <td>android-2.3.4_r0.9</td> + <td>Gingerbread</td> + <td>Nexus S 4G</td> + <td></td> + </tr> + <tr> + <td>GRI54</td> + <td>android-2.3.3_r1.1</td> + <td>Gingerbread</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>GRI40</td> + <td>android-2.3.3_r1</td> + <td>Gingerbread</td> + <td>Nexus Oneã€Nexus S</td> + <td></td> + </tr> + <tr> + <td>GRH78C</td> + <td>android-2.3.2_r1</td> + <td>Gingerbread</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>GRH78</td> + <td>android-2.3.1_r1</td> + <td>Gingerbread</td> + <td>Nexus S</td> + <td></td> + </tr> + <tr> + <td>GRH55</td> + <td>android-2.3_r1</td> + <td>Gingerbread</td> + <td>使用 Gingerbread 最早期版本的设备ã€Nexus S</td> + <td></td> + </tr> + <tr> + <td>FRK76C</td> + <td>android-2.2.3_r2</td> + <td>Froyo</td> + <td> </td> + <td></td> + </tr> + <tr> + <td>FRK76</td> + <td>android-2.2.3_r1</td> + <td>Froyo</td> + <td></td> + <td></td> + </tr> + <tr> + <td>FRG83G</td> + <td>android-2.2.2_r1</td> + <td>Froyo</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>FRG83D</td> + <td>android-2.2.1_r2</td> + <td>Froyo</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>FRG83</td> + <td>android-2.2.1_r1</td> + <td>Froyo</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>FRG22D</td> + <td>android-2.2_r1.3</td> + <td>Froyo</td> + <td></td> + <td></td> + </tr> + <tr> + <td>FRG01B</td> + <td>android-2.2_r1.2</td> + <td>Froyo</td> + <td></td> + <td></td> + </tr> + <tr> + <td>FRF91</td> + <td>android-2.2_r1.1</td> + <td>Froyo</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>FRF85B</td> + <td>android-2.2_r1</td> + <td>Froyo</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>EPF21B</td> + <td>android-2.1_r2.1p2</td> + <td>Eclair</td> + <td> </td> + <td></td> + </tr> + <tr> + <td>ESE81</td> + <td>android-2.1_r2.1s</td> + <td>Eclair</td> + <td></td> + <td></td> + </tr> + <tr> + <td>EPE54B</td> + <td>android-2.1_r2.1p</td> + <td>Eclair</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>ERE27</td> + <td>android-2.1_r2</td> + <td>Eclair</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>ERD79</td> + <td>android-2.1_r1</td> + <td>Eclair</td> + <td>Nexus One</td> + <td></td> + </tr> + <tr> + <td>ESD56</td> + <td>android-2.0.1_r1</td> + <td>Eclair</td> + <td></td> + <td></td> + </tr> + <tr> + <td>ESD20</td> + <td>android-2.0_r1</td> + <td>Eclair</td> + <td> </td> + <td></td> + </tr> + <tr> + <td>DMD64</td> + <td>android-1.6_r1.5</td> + <td>Donut</td> + <td> </td> + <td></td> + </tr> + <tr> + <td>DRD20</td> + <td>android-1.6_r1.4</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>DRD08</td> + <td>android-1.6_r1.3</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>DRC92</td> + <td>android-1.6_r1.2</td> + <td></td> + <td></td> + <td></td> + </tr> + </tbody> </table> <p>froyoã€gingerbreadã€ics-mr0ã€ics-mr1ã€jb-devã€jb-mr1-devã€jb-mr1.1-devã€jb-mr2-dev å’Œ kitkat-dev ç‰åˆ†æ”¯ä»£è¡¨ä¸Žç»è¿‡ Google 测试的é…ç½®ä¸å®Œå…¨ä¸€è‡´çš„å¼€å‘åˆ†æ”¯ã€‚å› æ¤ï¼Œé™¤å®˜æ–¹å‘½å的版本之外,这些分支å¯èƒ½è¿˜åŒ…å«å°šæœªç»è¿‡å…¨é¢æµ‹è¯•çš„å„ç§æ›´æ”¹ã€‚</p> diff --git a/zh-cn/setup/start/p-release-notes.html b/zh-cn/setup/start/p-release-notes.html index b3b7be02..12835d7a 100644 --- a/zh-cn/setup/start/p-release-notes.html +++ b/zh-cn/setup/start/p-release-notes.html @@ -122,7 +122,7 @@ <h4 id="product_partitions">产å“分区</h4> -<p>æ¤ç‰ˆæœ¬æ”¯æŒä½¿ç”¨ Android 编译系统编译 <a href="/devices/bootloader/product-partitions"><code>/product</code> partitions</a> 分区。以å‰ï¼ŒAndroid 8.x 强制将系统芯片 (SoC) 特定组件从 <code>/system</code> 分区分离到 <code>/vendor</code> 分区,而没有为从 Android 编译系统编译的 OEM 特定组件æ供专用空间。</p> +<p>æ¤ç‰ˆæœ¬æ”¯æŒä½¿ç”¨ Android 编译系统编译 <a href="/devices/bootloader/product-partitions"><code>/product</code> 分区</a>。以å‰ï¼ŒAndroid 8.x 强制将系统芯片 (SoC) 特定组件从 <code>/system</code> 分区分离到 <code>/vendor</code> 分区,而没有为从 Android 编译系统编译的 OEM 特定组件æ供专用空间。</p> <h4 id="canonical_boot_reason_compliance">规范å¯åŠ¨åŽŸå› åˆè§„性</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> @@ -575,7 +575,7 @@ <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> </ul> diff --git a/zh-tw/security/bulletin/2018-07-01.html b/zh-tw/security/bulletin/2018-07-01.html index 5c4b2e86..392363d7 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="/security/enhancements/index.html">Android 安全性平å°é˜²è·æŽªæ–½</a>å’Œ Google Play 安全防è·æ©Ÿåˆ¶å¦‚ä½•åŠ å¼· Android å¹³å°çš„安全性,請åƒé–± <a href="#mitigations">Android å’Œ Google Play 安全防è·æ©Ÿåˆ¶æ‰€æä¾›çš„å› æ‡‰æŽªæ–½</a>。 +é‡å°é€™äº›æ–°ç™¼ç¾çš„æ¼æ´žï¼Œæˆ‘們目å‰å°šæœªæ”¶åˆ°ä»»ä½•å®¢æˆ¶å›žå ±ç›¸é—œçš„æ¼æ´žæ¿«ç”¨æ¡ˆä¾‹ã€‚如果想進一æ¥çžè§£ <a href="#mitigations">Android 安全性平å°é˜²è·æŽªæ–½</a>å’Œ Google Play 安全防è·æ©Ÿåˆ¶å¦‚ä½•åŠ å¼· Android å¹³å°çš„安全性,請åƒé–± <a href="/security/enhancements/index.html">Android å’Œ Google Play 安全防è·æ©Ÿåˆ¶æ‰€æä¾›çš„å› æ‡‰æŽªæ–½</a>。 </p> <p class="note"> <strong>注æ„:</strong>在 <a href="/security/bulletin/pixel/2018-07-01.html">2018 å¹´ 7 月 Pixel/Nexus 安全性公告</a>ä¸ï¼Œæˆ‘們æ供了 Google è£ç½®é©ç”¨çš„最新無線下載更新 (OTA) å’ŒéŸŒé«”æ˜ åƒæª”的相關資訊。 diff --git a/zh-tw/security/bulletin/2018-11-01.html b/zh-tw/security/bulletin/2018-11-01.html new file mode 100644 index 00000000..762f9e9c --- /dev/null +++ b/zh-tw/security/bulletin/2018-11-01.html @@ -0,0 +1,587 @@ +<html devsite><head> + <title>Android 安全性公告 - 2018 å¹´ 11 月</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 å¹´ 11 月 5 æ—¥</em></p> + +<p> +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> +<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-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> +<p>我們已將這個程å¼åº«æ¨™ç¤ºç‚ºå¯¦é©—性程å¼åº«ï¼Œæ‰€æœ‰ Android æ£å¼ç‰ˆæœ¬ä¹Ÿä¸å†åŒ…å«é€™å€‹ç¨‹å¼åº«ã€‚</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-11-01-details">2018-11-01 安全性修補程å¼ç‰ç´š - 資安æ¼æ´žè©³æƒ…</h2> +<p> +下列å„節é‡å° 2018-11-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-9522</td> + <td>A-112550251</td> + <td>EoP</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9524</td> + <td>A-34170870</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>EoP</td> + <td>高</td> + <td>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-9527</td> + <td>A-112159345</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>RCE</td> + <td>最高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9536</td> + <td>A-112662184</td> + <td>EoP</td> + <td>最高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9537</td> + <td>A-112891564</td> + <td>EoP</td> + <td>最高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9521</td> + <td>A-111874331</td> + <td>RCE</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9539</td> + <td>A-113027383</td> + <td>EoP</td> + <td>高</td> + <td>8.0ã€8.1ã€9</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-9540</td> + <td>A-111450417</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>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>ID</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9544</td> + <td>A-113037220</td> + <td>ID</td> + <td>高</td> + <td>9</td> + </tr> + <tr> + <td>CVE-2018-9545</td> + <td>A-113111784</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>ID</td> + <td>ä¸</td> + <td>9</td> + </tr> + <tr> + <td>ID</td> + <td>高</td> + <td>7.0ã€7.1.1ã€7.1.2ã€8.0ã€8.1</td> + </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> + +<h3 id="framework-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>æ›´æ–°çš„ Android 開放原始碼計劃版本</th> + </tr> + <tr> + <td>CVE-2018-9523</td> + <td>A-112859604</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> +<p>本節ä¸æœ€åš´é‡çš„æ¼æ´žå¯èƒ½æœƒè®“本機惡æ„應用程å¼åœ¨ç²å¾—授權的程åºç’°å¢ƒå…§åŸ·è¡Œä»»ä½•ç¨‹å¼ç¢¼ã€‚</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>åƒè€ƒè³‡æ–™</th> + <th>é¡žåž‹</th> + <th>åš´é‡ç¨‹åº¦</th> + <th>元件</th> + </tr> + <tr> + <td>CVE-2017-15818</td> + <td>A-68992408<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/lk/commit/?id=abe4f7042cbdef928ffc152335a17150fb39b096"> +QC-CR#2078580</a></td> + <td>ç„¡</td> + <td>高</td> + <td>生態系統</td> + </tr> + <tr> + <td>CVE-2018-11995</td> + <td>A-71501677<br /> + <a href="https://source.codeaurora.org/quic/la/abl/tianocore/edk2/commit/?id=e3688be47d2b72f130f90dafd24b5f5acc4684ca"> +QC-CR#2129639</a></td> + <td>ç„¡</td> + <td>高</td> + <td>系統啟動載入程å¼</td> + </tr> + <tr> + <td>CVE-2018-11905</td> + <td>A-112277889<br /> + <a href="https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cdcf0409bdad7ed91c11d7715c89acc2e521e96"> +QC-CR#2090797</a></td> + <td>ç„¡</td> + <td>高</td> + <td>DSP_Services</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-closed-source-components">Qualcomm å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</h3> +<p>以下列出會影響 Qualcomm 元件的安全性æ¼æ´žï¼Œè©³æƒ…è«‹åƒè€ƒé©ç”¨çš„ Qualcomm AMSS 安全性公告或安全性è¦ç¤ºã€‚這些å•é¡Œçš„åš´é‡ç¨‹åº¦æ˜¯ç”± Qualcomm 直接評定。</p> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>åƒè€ƒè³‡æ–™</th> + <th>é¡žåž‹</th> + <th>åš´é‡ç¨‹åº¦</th> + <th>元件</th> + </tr> + <tr> + <td>CVE-2017-18317</td> + <td>A-78244877<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>最高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-5912</td> + <td>A-79420111<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>最高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-11264</td> + <td>A-109677962<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>最高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2016-10502</td> + <td>A-68326808<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2017-18316</td> + <td>A-78240714<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2017-18318</td> + <td>A-78240675<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2017-18315</td> + <td>A-78241957<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-11994</td> + <td>A-72950294<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-11996</td> + <td>A-74235967<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-5870</td> + <td>A-77484722<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-5877</td> + <td>A-77484786<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-5916</td> + <td>A-79420492<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-5917</td> + <td>A-79420096<a href="#asterisk">*</a></td> + <td>ç„¡</td> + <td>高</td> + <td>å°é–‰åŽŸå§‹ç¢¼å…ƒä»¶</td> + </tr> + <tr> + <td>CVE-2018-11269</td> + <td>A-109678529<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-11-01 後的安全性修補程å¼ç‰ç´šå·²è§£æ±ºäº†æ‰€æœ‰èˆ‡ 2018-11-01 安全性修補程å¼ç‰ç´šç›¸é—œçš„å•é¡Œã€‚</li> +<li>2018-11-05 之後的安全性修補程å¼ç‰ç´šå®Œå…¨è§£æ±ºäº†èˆ‡ 2018-11-05 安全性修補程å¼ç‰ç´šåŠæ‰€æœ‰å…ˆå‰ä¿®è£œç¨‹å¼ç‰ç´šç›¸é—œçš„å•é¡Œã€‚</li> +</ul> +<p>æ供這些更新的è£ç½®è£½é€ 商應將修補程å¼å—串ç‰ç´šè¨å®šç‚ºï¼š</p> +<ul> + <li>[ro.build.version.security_patch]:[2018-11-01]</li> + <li>[ro.build.version.security_patch]:[2018-11-05]</li> +</ul> +<p><strong>2. 為什麼這篇公告有兩種安全性修補程å¼ç‰ç´šï¼Ÿ</strong></p> +<p> +本公告有兩種安全性修補程å¼ç‰ç´šï¼Œè®“ Android åˆä½œå¤¥ä¼´èƒ½å¤ éˆæ´»é‹ç”¨ï¼Œä»¥å¿«é€Ÿä¿®æ£æŸäº›ç™¼ç”Ÿåœ¨æ‰€æœ‰ Android è£ç½®ä¸Šçš„é¡žä¼¼æ¼æ´žã€‚æˆ‘å€‘å»ºè° Android åˆä½œå¤¥ä¼´ä¿®æ£æœ¬å…¬å‘Šæ‰€åˆ—的所有å•é¡Œï¼Œä¸¦ä½¿ç”¨æœ€æ–°çš„安全性修補程å¼ç‰ç´šã€‚ +</p> +<ul> +<li>安全性修補程å¼ç‰ç´šç‚º 2018-11-01 çš„è£ç½®å¿…é ˆç´å…¥æ‰€æœ‰èˆ‡è©²å®‰å…¨æ€§ä¿®è£œç¨‹å¼ç‰ç´šç›¸é—œçš„å•é¡Œï¼Œä»¥åŠåœ¨ä¹‹å‰å®‰å…¨æ€§å…¬å‘Šä¸å›žå ±çš„所有å•é¡Œé©ç”¨çš„ä¿®æ£ç¨‹å¼ã€‚</li> +<li>如果è£ç½®çš„安全性修補程å¼ç‰ç´šåœ¨ 2018-11-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 å¹´ 11 月 5 æ—¥</td> + <td>發佈公告。</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/zh-tw/security/bulletin/2018.html b/zh-tw/security/bulletin/2018.html index 13996351..4c0a5c76 100644 --- a/zh-tw/security/bulletin/2018.html +++ b/zh-tw/security/bulletin/2018.html @@ -35,15 +35,13 @@ </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">2018 å¹´ 10 月</a></td> - <td>å³å°‡æŽ¨å‡º - <!-- - <a href="/security/bulletin/2018-10-01.html">English</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> - --> + <td> + <a href="/security/bulletin/2018-10-01.html">English</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-01<br /> diff --git a/zh-tw/security/bulletin/index.html b/zh-tw/security/bulletin/index.html index 99a4db7c..fbf1f2e9 100644 --- a/zh-tw/security/bulletin/index.html +++ b/zh-tw/security/bulletin/index.html @@ -57,15 +57,13 @@ </tr> <tr> <td><a href="/security/bulletin/2018-10-01.html">2018 å¹´ 10 月</a></td> - <td>å³å°‡æŽ¨å‡º - <!-- - <a href="/security/bulletin/2018-10-01.html">English</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / - <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡ (ä¸å›½)</a> / - <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡ (å°ç£)</a> - --> + <td> + <a href="/security/bulletin/2018-10-01.html">English</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ja">日本語</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ko">í•œêµì–´</a> / + <a href="/security/bulletin/2018-10-01.html?hl=ru">руÌÑÑкий</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-cn">ä¸æ–‡Â (ä¸å›½)</a> / + <a href="/security/bulletin/2018-10-01.html?hl=zh-tw">ä¸æ–‡Â (å°ç£)</a> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-01<br /> diff --git a/zh-tw/security/bulletin/pixel/2018-11-01.html b/zh-tw/security/bulletin/pixel/2018-11-01.html new file mode 100644 index 00000000..ca88bb31 --- /dev/null +++ b/zh-tw/security/bulletin/pixel/2018-11-01.html @@ -0,0 +1,249 @@ +<html devsite><head> + <title>Pixel/Nexus 安全性公告 - 2018 å¹´ 11 月</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 å¹´ 11 月 5 æ—¥</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-11-05 之後的安全性修補程å¼ç‰ç´šä¹Ÿå·²é‡å° Google è£ç½®è§£æ±ºäº†é€™å€‹å…¬å‘Šå’Œ 2018 å¹´ 11 月 Android 安全性公告列出的所有å•é¡Œã€‚è«‹åƒé–±<a href="https://support.google.com/pixelphone/answer/4457705" class="external">檢查åŠæ›´æ–° Android 版本</a>一文,çžè§£å¦‚何查看è£ç½®çš„安全性修補程å¼ç‰ç´šã€‚ +</p> +<p> +所有支æ´çš„ Google è£ç½®éƒ½æœƒæ”¶åˆ° 2018-11-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-11-01">2018 å¹´ 11 月 Android 安全性公告</a>ä¸æ‰€åˆ—出的安全性æ¼æ´žï¼Œä¹Ÿé‡å°ä¸‹æ–‡åˆ—出的 Pixel å’Œ Nexus è£ç½®çš„安全性æ¼æ´žæ供修補程å¼ã€‚我們的åˆä½œå¤¥ä¼´è‡³å°‘會æå‰ä¸€å€‹æœˆæ”¶åˆ°é€™äº›å•é¡Œçš„相關通知,方便他們將相關內容ç´å…¥å…¶è£ç½®æ›´æ–°ä¸ã€‚ +</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="htc-components">HTC 元件</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-9580</td> + <td>A-76222002<a href="#asterisk">*</a></td> + <td>EoP</td> + <td>ä¸</td> + <td>系統啟動載入程å¼</td> + </tr> +</tbody></table> + +<h3 id="qualcomm-components">Qualcomm 元件</h3> + +<table> +<colgroup><col width="21%" /> +<col width="21%" /> +<col width="14%" /> +<col width="14%" /> +<col width="30%" /> + </colgroup><tbody><tr> + <th>CVE</th> + <th>åƒè€ƒè³‡æ–™</th> + <th>é¡žåž‹</th> + <th>åš´é‡ç¨‹åº¦</th> + <th>元件</th> + </tr> + <tr> + <td>CVE-2017-14888</td> + <td>A-70237718<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=d50dfd647b2396d2e2c05b7aee84d831e4a18d68">QC-CR#2119729</a></td> + <td>ç„¡</td> + <td>ä¸</td> + <td>WLAN 主機</td> + </tr> + <tr> + <td>CVE-2017-15835</td> + <td>A-72957155<br /> +<a href="https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0/commit/?id=b6eeed234707244c799ae7009e67312b8bf33ccd">QC-CR#2125781</a></td> + <td>ç„¡</td> + <td>ä¸</td> + <td>WLAN 主機</td> + </tr> +</tbody></table> + +<h2 id="functional-patches">功能修補程å¼</h2> + +<p>在 11 月份的 OTA 網路å‡ç´šç¨‹åºä¸ï¼Œæ‰€æœ‰æ載 Android 9 çš„ Pixel è£ç½®éƒ½æœƒæ”¶åˆ° Android 9 更新。這個å£åº¦ç‰ˆæœ¬é™¤äº†æ›´æ–°è¨±å¤šåŠŸèƒ½ï¼Œä¹Ÿé‡å° Android å¹³å°çš„å„é …å…ƒä»¶å’Œæ”¯æ´çš„ Pixel è£ç½®é€²è¡Œæ”¹å–„。</p> + +<p>æ¤å¤–,這個版本還包å«äº†ä¸‹åˆ—ä¿®æ£ç¨‹å¼ (Android è£ç½®è£½é€ å•†éƒ½å¿…é ˆç‚ºä½¿ç”¨è€…æ供這些修æ£ç¨‹å¼):</p> + +<table> + <tbody><tr> + <th>åƒè€ƒè³‡æ–™</th> + <th>類別</th> + <th>æ”¹å–„é …ç›®</th> + <th>è£ç½®</th> + </tr> + <tr> + <td>A-111401911</td> + <td>螢幕</td> + <td>é‡å°ä½¿ç”¨<a href="/devices/tech/display/pip">åæ¯ç•«é¢</a>功能的è£ç½®æå‡æ•ˆèƒ½</td> + <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-109769728</td> + <td>架構</td> + <td>改善 Strongbox å°ç¨±é‡‘鑰產生è¦æ±‚</td> + <td>Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-112198479</td> + <td>螢幕</td> + <td>é‡å°ä½¿ç”¨<a href="/devices/tech/display/pip">åæ¯ç•«é¢</a>功能的應用程å¼æå‡æ•ˆèƒ½</td> + <td>Pixel 2ã€Pixel 2 XLã€Pixel 3ã€Pixel 3 XL</td> + </tr> + <tr> + <td>A-112714177</td> + <td>通知</td> + <td>æå‡é€šçŸ¥åŠŸèƒ½çš„穩定性</td> + <td>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-11-05 之後的安全性修補程å¼ç‰ç´šå®Œå…¨è§£æ±ºäº†èˆ‡ 2018-11-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/nexus/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 å¹´ 11 月 5 æ—¥</td> + <td>發佈公告。</td> + </tr> +</tbody></table> + +</body></html>
\ No newline at end of file diff --git a/zh-tw/security/bulletin/pixel/2018.html b/zh-tw/security/bulletin/pixel/2018.html index 88de75fb..60e7340b 100644 --- a/zh-tw/security/bulletin/pixel/2018.html +++ b/zh-tw/security/bulletin/pixel/2018.html @@ -35,15 +35,13 @@ </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018 å¹´ 10 月</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> - --> + <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> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-05</td> diff --git a/zh-tw/security/bulletin/pixel/index.html b/zh-tw/security/bulletin/pixel/index.html index 67965943..5384dd0a 100644 --- a/zh-tw/security/bulletin/pixel/index.html +++ b/zh-tw/security/bulletin/pixel/index.html @@ -44,15 +44,13 @@ </tr> <tr> <td><a href="/security/bulletin/pixel/2018-10-01.html">2018 å¹´ 10 月</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> - --> + <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> </td> <td>2018 å¹´ 10 月 1 æ—¥</td> <td>2018-10-05</td> |