aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-05-02 08:58:40 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-05-02 08:58:40 +0000
commitd8b6c10b465fd0471677b2a56d0a8120c908b615 (patch)
treea75506878fec8f2ca81a0627ee9047ff1a529f61
parent243f11da189339d6e7c7d642a504c2a10fde3417 (diff)
parent70d269ba87f6b03413d56ef21e605be826cfa92a (diff)
downloadsource.android.com-d8b6c10b465fd0471677b2a56d0a8120c908b615.tar.gz
release-request-e32f3567-b299-4433-aaca-18a62b3f00c0-for-git_oc-dr1-release-3964195 snap-temp-L52500000059616409
Change-Id: If010398557c3a502b72e0c135d3d03075fecda31
-rw-r--r--en/_index.yaml10
-rw-r--r--en/compatibility/_toc-compatibility.yaml10
-rw-r--r--en/compatibility/cts/camera-its-box-assembly.html270
-rw-r--r--en/compatibility/cts/camera-its-box.html222
-rw-r--r--en/compatibility/cts/camera_its_iab_tech_drawings.zipbin0 -> 3334613 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_back_no_sides.jpgbin0 -> 243736 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_cad.pngbin0 -> 456204 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_front_apertures.jpgbin0 -> 322328 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_front_attached.jpgbin0 -> 280812 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_front_plate_assembled.jpgbin0 -> 272217 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_front_plate_parts.pngbin0 -> 1013808 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_gater_no_aperture.jpgbin0 -> 310470 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_handle_assembled.pngbin0 -> 2410500 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_handle_parts.pngbin0 -> 2511530 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_left_side_placed.jpgbin0 -> 257140 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_assembled.pngbin0 -> 1602562 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_assembly_parts.pngbin0 -> 1227528 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_baffles.pngbin0 -> 964615 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_bar.pngbin0 -> 2238676 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_cord.jpgbin0 -> 241702 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_cord_secured.jpgbin0 -> 194642 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_cord_zip.jpgbin0 -> 247502 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_light_installed.jpgbin0 -> 202832 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_phone_mount_assembled.pngbin0 -> 2993262 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_phone_mount_parts.pngbin0 -> 1729870 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_pin_led_mount_details.pngbin0 -> 161545 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_plunger_parts.pngbin0 -> 2703392 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_right_side_placed.jpgbin0 -> 304385 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_tab_holder_parts.pngbin0 -> 2863136 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_tab_holder_spacer.pngbin0 -> 994174 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_tabholder_assembled.pngbin0 -> 1397216 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_tabholder_inserted.jpgbin0 -> 265988 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpgbin0 -> 156985 bytes
-rw-r--r--en/compatibility/cts/images/camera_iab_top_bottom_placed.pngbin0 -> 1391435 bytes
-rw-r--r--en/compatibility/cts/images/camera_its_cam0.pngbin0 -> 379498 bytes
-rw-r--r--en/compatibility/cts/images/camera_its_cam1.pngbin0 -> 308063 bytes
-rw-r--r--en/compatibility/cts/images/camera_its_reports.pngbin0 -> 34154 bytes
-rw-r--r--en/compatibility/cts/images/camera_its_results.pngbin0 -> 379497 bytes
-rw-r--r--en/compatibility/cts/images/camera_its_scene5.pngbin0 -> 1283372 bytes
-rw-r--r--en/devices/tech/dalvik/dex-format.html3
-rw-r--r--en/devices/tech/debug/asan.html21
-rw-r--r--en/security/bulletin/2017-04-01.html9
-rw-r--r--en/security/index.html2
-rw-r--r--en/security/overview/implement.html3
-rw-r--r--en/security/overview/updates-resources.html30
-rw-r--r--en/source/report-bugs.html7
46 files changed, 548 insertions, 39 deletions
diff --git a/en/_index.yaml b/en/_index.yaml
index c9bc4170..5797200c 100644
--- a/en/_index.yaml
+++ b/en/_index.yaml
@@ -55,6 +55,14 @@ landing_page:
image_path: /images/android_stack.png
- heading: News
items:
+ - heading: Camera Image Test Suite (ITS) Test Automation
+ description: >
+ The Android Compatibility Test Suite (CTS) now supports ITS test
+ automation via Camera ITS-in-a-box, an assembly for testing
+ multiple devices at once with minimal intervention.
+ buttons:
+ - label: April 20th, 2017
+ path: /compatibility/cts/camera-its-box
- heading: April Android Security Bulletin
description: >
The April 2017 Android Security Bulletin has been published along with
@@ -78,7 +86,7 @@ landing_page:
users safe.
buttons:
- label: March 21st, 2017
- path: http://static.googleusercontent.com/media/source.android.com/en//security/reports/Google_Android_Security_2016_Report_Final.pdf
+ path: /security/reports/Google_Android_Security_2016_Report_Final.pdf
- classname: devsite-landing-row-100 tf-row-centered
items:
- buttons:
diff --git a/en/compatibility/_toc-compatibility.yaml b/en/compatibility/_toc-compatibility.yaml
index be60f37d..9e5c1851 100644
--- a/en/compatibility/_toc-compatibility.yaml
+++ b/en/compatibility/_toc-compatibility.yaml
@@ -25,12 +25,18 @@ toc:
path: /compatibility/cts/verifier
- title: Audio Framework
path: /compatibility/cts/audio-framework
- - title: Camera HAL Testing
- path: /compatibility/cts/camera-hal
- title: Near Ultrasound Tests
path: /compatibility/cts/near-ultrasound
- title: Rotation Vector Crosscheck
path: /compatibility/cts/rotation-vector
+ - title: Camera Testing
+ section:
+ - title: Camera HAL Testing
+ path: /compatibility/cts/camera-hal
+ - title: Camera ITS-in-a-Box
+ path: /compatibility/cts/camera-its-box
+ - title: Camera ITS-in-a-Box Assembly
+ path: /compatibility/cts/camera-its-box-assembly
- title: Interpret Results
path: /compatibility/cts/interpret
- title: Develop CTS
diff --git a/en/compatibility/cts/camera-its-box-assembly.html b/en/compatibility/cts/camera-its-box-assembly.html
new file mode 100644
index 00000000..86518df8
--- /dev/null
+++ b/en/compatibility/cts/camera-its-box-assembly.html
@@ -0,0 +1,270 @@
+<html devsite>
+ <head>
+ <title>ITS-in-a-Box Assembly</title>
+ <meta name="project_path" value="/_project.yaml" />
+ <meta name="book_path" value="/_book.yaml" />
+ </head>
+ <body>
+ <!--
+ Copyright 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<p>ITS-in-a-box consists of a plastic box that is laser cut from computer-aided
+design (CAD) drawings, a chart tablet, and a device under test (DUT). This page
+provides step-by-step instructions for assembling the ITS-in-a-box.</p>
+
+<p><img src=images/camera_iab_cad.png></p>
+<p class=caption><strong>Figure 1</strong>. CAD image for ITS-in-a-box.</p>
+
+<h2>Required tools</h2>
+<p>Before getting started, ensure you have
+<a href="camera_its_iab_tech_drawings.zip">downloaded the technical
+drawings</a> for the ITS-in-a box and have the following tools available:</p>
+<ul>
+<li>Phillips head screwdriver</li>
+<li>Pliers</li>
+<li>Exacto knife</li>
+<li>Wire cutters or scissors (optional)</li>
+</ul>
+
+<h2 id=lighting>Step 1: Lighting</h2>
+<p>To assemble the ITS-in-a-box lighting component:</p>
+
+<ol>
+<li>Gather the lighting hardware shown in Figure 2:
+<br><img src=images/camera_iab_light_assembly_parts.png width="50%"><br>
+<strong>Figure 2</strong>. Light assembly parts.<br><br>
+Hardware includes LED light bars, plastic light baffles, plastic light mounts,
+metal light clips included in the LED lighting kit, and four 6-32 screws with
+acorn head nuts.</li>
+<li>Place LED light bars in the mounts with lights pointing down and towards
+the table, as shown in Figure 3 (left side):
+<br><img src=images/camera_iab_light_bar.png width="50%"><br>
+<strong>Figure 3</strong>. Close-up of light bars with lights facing down
+and screws threaded through clips.<br><br>
+Thread the screws through the light clips using a screwdriver and while holding
+the metal clip. The screw head should be be on the inside of the C shape of the
+light clip as shown in Figure 3 (right side). Threading the screws requires
+pressure as the fit is tight.</li>
+<li>Bolt the clips to the plastic baffles as shown in Figure 4:
+<br><img src=images/camera_iab_light_baffles.png width="50%"><br>
+<strong>Figure 4</strong>. Light baffles with clips attached (acorn nuts are on
+the side of the plastic not shown).</li>
+<li>Assemble the lights by snapping the baffles to the LED light backs with the
+clips.
+<br><img src=images/camera_iab_light_assembled.png width="50%"><br>
+<strong>Figure 5</strong>. Assembled lights.<br><br>
+The LED lights should point down and the plastic should form a back to the light
+to block the shiny, reflective back of the LED light bar.</li>
+</ol>
+
+<h2 id=phone-mount>Step 2: Phone mounts</h2>
+<p>To assemble phone mounts:</p>
+
+<ol>
+<li>Gather the phone mount hardware shown in Figure 6:
+<br><img src=images/camera_iab_phone_mount_parts.png width="50%"><br>
+<strong>Figure 6</strong>. Phone mount assembly parts.<br><br>
+Hardware includes two aluminum phone trays, two plungers, two rubber tips, and
+four 8-32 pan-head screws.</li>
+<li>Cut the rubber tips short enough to not interfere with plunger operation
+(roughly in half), then use the rubber tips to cover the plungers.</li>
+<li>Assemble the phone mounts using pan-head screws to attach the plunger
+mechanisms to the aluminum trays.
+<br><img src=images/camera_iab_phone_mount_assembled.png width="50%"><br>
+<strong>Figure 7</strong>. Assembled phone mounts.<br><br>
+Ensure the screws do not protrude beyond the plunger in the retracted or
+extended plunger position.</li>
+</ol>
+
+<h2 id=phone-mount>Step 3: Aperture plate</h2>
+<p>To assemble the front aperture plate:</p>
+<ol>
+<li>Gather the front aperture plate hardware shown in Figure 8:
+<br><img src=images/camera_iab_front_plate_parts.png width="50%"><br>
+<strong>Figure 8</strong>. Front aperture plate assembly parts (front plate
+top has the narrower space from slots for tabs to edge).<br><br>
+Hardware includes four short nylon screws (provided in the ITS-in-a-box kit) and
+eight washers (required to keep the screws from protruding through the back of
+the plastic plate).</li>
+<li>Add phone mounts to the front square aperture plate as shown in Figure 9:
+<br><img src=images/camera_iab_front_plate_assembled.jpg width="50%"><br>
+<strong>Figure 9</strong>. Assembled front plate, phone mounts in middle
+position.</li>
+</ol>
+
+
+<h2 id=tablet-holder>Step 4: Tablet holder</h2>
+<p>To assemble the tablet holder:</p>
+
+<ol>
+<li>Gather the tablet holder parts shown in Figure 10:
+<br><img src=images/camera_iab_tab_holder_parts.png width="50%"><br>
+<strong>Figure 10</strong>. Tablet holder space assembly parts.</li>
+
+<li>Attach the spacer bars to the back of the tablet holder by threading a
+nylon screw into the hole at the bottom-left or bottom-right of the tablet
+holder (the screw threads properly in only one direction).</li>
+
+<li>Mount the spacers on the opposite side of the nylon screw as shown in Figure
+11:
+<br><img src=images/camera_iab_tablet_spacer_detail.jpg width="50%"><br>
+<strong>Figure 11</strong>. Tablet holder, location of plastic spacers and
+nylon screw.</li>
+
+<li>Assemble the tablet holder with the screw head in the counter-drilled
+plastic, then assemble the remaining pieces as shown in Figure 12.
+<br><img src=images/camera_iab_tab_holder_spacer.png width="50%"><br>
+<strong>Figure 12</strong>. Assembled tablet holder spacer (washers account for
+thickness variations in the plastic).</li>
+
+<li>Gather the tablet plunger parts as shown in Figure 13:
+<br><img src=images/camera_iab_plunger_parts.png width="50%"><br>
+<strong>Figure 13</strong>. Tablet plunger parts with plastic tips cut
+(later designs have only one plunger in the center).</li>
+
+<li>Cut the plastic tips to correct length and use the tips to cover the
+plunger heads.</li>
+
+<li>Attach plungers to the plastic, placing the acorn nuts on the outside to
+ensure minimum clearance on the inside for the tablet (and to prevent
+interference with plunger operation.</li>
+
+<li>Connect the plunger(s) with the screw heads facing the box as shown in
+Figure 14:
+<br><img src=images/camera_iab_tabholder_assembled.png width="50%"><br>
+<strong>Figure 14</strong>. Assembled tablet holder (acorn nuts face away
+from back panel of box).<br><br>
+All acorn nuts are on the same side of the tablet holder to maximize clearance
+for the tablet.</li>
+</ol>
+
+<h2 id=box-assembly>Step 5: Assemble box</h2>
+<p>To assemble the box:</p>
+<ol>
+<li>Place the front panel with the circular aperture flat on the table, inside
+facing up.</li>
+<li>Connect the front and back walls by inserting tabs into slots as shown in
+Figure 15:
+<br><img src=images/camera_iab_top_bottom_placed.png width="50%"><br>
+<strong>Figure 15</strong>. Top and bottom attached to front (as seen from
+right side).<br><br>
+Position the front so the chamfered side of the circular aperture is on the
+inside of the box. The front of the bottom can be identified by the small hole
+for the power cord box exit (out of the field of view). The plastic hooks for
+the sides should be pointed in the same direction.</li>
+<li>Attach the back to the top and bottom as shown in Figure 16:
+<br><img src=images/camera_iab_back_no_sides.jpg width="50%"><br>
+<strong>Figure 16</strong>. Back attached, no sides.<br><br>
+Push the back onto the tabs, then slide the back to the right (when facing the
+back of the box) to fit under the hooked tabs.</li></ol>
+
+
+<h2 id=light-install>Step 6: Install lights</h2>
+<p>To install the lights:</p>
+<ol>
+<li>Place lights in the assembled box as shown in Figure 17:
+<br><img src=images/camera_iab_light_installed.jpg width="50%"><br>
+<strong>Figure 17</strong>. Proper light placement (back removed).<br><br>
+Ensure lights are pointed in the right direction (towards the top and bottom and
+towards the front of the box).</li>
+<li>Secure lights by squeezing the pin into the small hole on the rectangular
+tab that extends through the slot in the top/bottom, as shown in Figure 18:
+<br><img src=images/camera_iab_pin_led_mount_details.png width="50%"><br>
+<strong>Figure 18</strong>. Detail of inserted pin in LED mount tab on outside
+of box.<br><br>
+Squeezing of the pins is best done with a pair of pliers using gentle pressure;
+you should feel a little give in the plastic as the pins are squeezed in place.
+Insert the pins for both the bottom and top light sets. As the pins are small
+and easy to drop, it is easiest to insert them to the bottom with the box
+upside down.</li>
+<li>Attach the power cord to the lower light bar as shown in Figure 19:
+<br><img src=images/camera_iab_light_cord.jpg width="50%"><br>
+<strong>Figure 19</strong>. Detail of lighting power cord.<br><br>
+Thread the power cord through the hole in lower-front-right. The power cord has
+different connectors at each end: The narrow connector fits to the LED light bar
+and the larger connector fits to the power adaptor.</li>
+<li>To prevent the power cord from pulling on the light assembly, use a zip tie
+to secure the power cord to bottom of box as shown in Figure 20:
+<br><img src=images/camera_iab_light_cord_secured.jpg width="50%"><br>
+<strong>Figure 20</strong>. Power cord zip tie attachment on bottom of box
+(shown on its side); trim ties as necessary.</li>
+<li>Wire the top lights to the bottom lights on the left side and secure the
+cable to the front of the box. Some drawings show the cable secured on side of
+box, but it is easier to wire them to front corner as shown in Figure 21:
+<br><img src=images/camera_iab_light_cord_zip.jpg width="50%"><br>
+<strong>Figure 21</strong>. Detail of light cord anchored out of field of
+view.</li>
+</ol>
+
+<h2 id=sides-holder>Step 7: Attach sides, tablet holder, and handles</h2>
+<p>To attach the box sides, tablet holder, and handles with locking mechanism:</p>
+<ol>
+<li>Snap the right panel into place by pushing and sliding it upwards. The
+bottom of the panel should be flush with the bottom of the front and back panels
+as shown in Figure 22:
+<br><img src=images/camera_iab_right_side_placed.jpg width="50%"><br>
+<strong>Figure 22</strong>. Right side panel in place (viewed from back).</li>
+<li>Place assembled tablet holder in right tabs as shown in Figure 23:
+<br><img src=images/camera_iab_tabholder_inserted.jpg width="50%"><br>
+<strong>Figure 23</strong>. Right side, tablet holder inserted in slots (viewed
+from back of box so it appears on the left).<br><br>
+If the tabs are too tight to allow the tablet holder to move up and down, sand
+the tabs with 100 grit sandpaper to thin them and create a better fit.</li>
+<li>Snap the left panel into place by pushing and sliding it upwards, as shown
+in figure 24:
+<br><img src=images/camera_iab_left_side_placed.jpg width="50%"><br>
+<strong>Figure 24</strong>. Left side panel in place.</li>
+<li>Gather the handle parts shown in Figure 25:
+<br><img src=images/camera_iab_handle_parts.png width="50%"><br>
+<strong>Figure 25</strong>. Handle and box lock parts.<br><br>
+Hardware includes four wide plastic pieces (for outside the box) and two narrow
+pieces (for top of the box). Screw holes are not placed symmetrically on the
+plastic strips.</li>
+<li>Assemble the handle as shown in figure 26:
+<br><img src=images/camera_iab_handle_assembled.png width="50%"><br>
+<strong>Figure 26</strong>. Assembled handle.<br><br>
+Acorn nuts are usually placed on the top of the box. While this is not strictly
+necessary, it makes the outer part of the handle as flat as possible. If the
+handle is loose, insert washers to allow the acorn nuts to tighten effectively.
+</li>
+</ol>
+
+<h2 id=final-assembly>Step 8: Final assembly</h2>
+<p>To perform final assembly of the ITS-in-a-box:</p>
+<ol>
+<li>Using two nylon screws (short or long), attach the square aperture panel
+with phone mounts to the front of the box as shown in Figure 27:
+<br><img src=images/camera_iab_front_attached.jpg width="50%"><br>
+<strong>Figure 27</strong>. Attached front panel.<br><br>
+Place one screw on the top of the box and one screw on the bottom of the box.</li>
+<li>Test the 4"x4” gatorboard aperture blank to ensure it fits in the square
+opening, as shown in Figure 28:
+<br><img src=images/camera_iab_gater_no_aperture.jpg width="50%"><br>
+<strong>Figure 28</strong>. Gatorboard installed, no aperture cut.<br><br>
+The fit should be snug. If the blank is too tight, shave it; if too loose, make
+another.</li>
+<li>Cut apertures for cameras. You can cut a single aperture (for testing a
+single phone) or two apertures (for testing two phones). Apertures for the Pixel
+and Pixel XL front and rear cameras are shown in Figure 29:
+<br><img src=images/camera_iab_front_apertures.jpg width="50%"><br>
+<strong>Figure 29</strong>. Front of ITS-in-a-box with front and rear camera
+aperture cuts.<br><br>
+The front camera is a circular aperture since there is no flash or laser, while
+the rear camera is a rectangular aperture that allows the flash and laser to
+operate without being blocked.</li></ol>
+
+ </body>
+</html>
diff --git a/en/compatibility/cts/camera-its-box.html b/en/compatibility/cts/camera-its-box.html
new file mode 100644
index 00000000..b88b0b72
--- /dev/null
+++ b/en/compatibility/cts/camera-its-box.html
@@ -0,0 +1,222 @@
+<html devsite>
+ <head>
+ <title>Camera ITS-in-a-Box</title>
+ <meta name="project_path" value="/_project.yaml" />
+ <meta name="book_path" value="/_book.yaml" />
+ </head>
+ <body>
+ <!--
+ Copyright 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+
+
+<p>Android Camera Image Test Suite (ITS) is part of Android Compatibility Test
+Suite (CTS) Verifier and includes tests that verify image content. As of CTS
+7.0_r8, CTS Verifier supports ITS test automation via Camera ITS-in-a-box;
+support for manual tests continues to ensure coverage for all Android device
+form factors.</p>
+
+<p>ITS-in-a-box brings the following benefits:</p>
+<ul>
+<li><strong>Automation</strong>. No human intervention is needed during the
+test.</li>
+<li><strong>Reduced testing time</strong>. Parallel testing of front/back camera
+cuts
+testing cycle time by 50%.</li>
+<li><strong>Easier troubleshooting</strong>. Consistency of test environment
+leads to fewer setup errors and increases reproducibility.</li>
+<li><strong>Efficiency</strong>. Ability to retry for individual Camera/Scene
+improves test execution efficiency.</li>
+</ul>
+
+<h2 id=get-started>Getting started</h2>
+<p>ITS-in-a-box consists of a plastic box that is laser cut from computer-aided
+design (CAD) drawings, a chart tablet, and a device under test (DUT). To get
+started with the Camera ITS-in-a-box:</p>
+<ol>
+<li><a href="camera_its_iab_tech_drawings.zip">Download the technical
+drawings</a>.</li>
+<li><a href="camera-its-box-assembly.html">Build the box</a>.</li>
+<li><a href="#configure-tablet">Configure a tablet</a> with Camera ITS
+software.</li>
+<li><a href="#run-tests">Run tests</a>.</li>
+<li><a href="#get-results">Get results</a> from the DUT.</li>
+</ol>
+
+<h2 id=configure-tablet>Configuring the tablet</h2>
+<p>This section provides step-by-step instructions for setting up a Pixel C
+tablet for use with the CameraITS software.</p>
+
+<p class="note"><strong>Note:</strong> The CameraITS python scripts
+automatically set the following options on the tablet for you:
+<br><em>Settings > Display > Sleep > After 30 minutes of inactivity</em>
+<br><em>Adaptive brightness > OFF</em>
+</p>
+
+<ol>
+<li>Charge the tablet and power it on. If prompted to set up an account, skip it
+(CameraITS does not require any account paired with the tablet).</li>
+<li>Update the tablet to Android 7.0 or later (Android 6.x and earlier versions
+do not support CameraITS).</li>
+<li>Enable developer mode by going to <em>Settings > About tablet</em> and
+tapping <strong>Build number</strong> five times.</li>
+<li>Return to <em>Settings</em> and select <strong>Developer options</strong>.
+
+<table>
+<tr>
+<th>Enable options</th>
+<td>
+<ul>
+<li>On</li>
+<li>Stay awake</li>
+<li>USB debugging (This allows the host to run the tablet in debug mode. When you
+connect the tablet to the host for the first time, the tablet prompts you to
+"Allow USB debugging?" If the tablet does not display the debug prompt,
+disconnect then reconnect tablet.)</li>
+</ul>
+</td>
+</tr>
+<tr>
+<th>Disable options</th>
+<td>
+<ul>
+<li>Automatic system updates</li>
+<li>Verify apps over USB</li>
+</ul>
+</td>
+</tr>
+</table>
+</li>
+<li>Determine DUT and chart IDs by running <code>$ adb devices</code> to list
+available devices. To determine <code>device_id</code> and
+<code>chart_id</code>, plug and unplug devices and observe the devices that
+connect and disconnect.</li>
+<li>Perform three test runs to suppress hints and user prompts that can obscure
+charts on the tablet screen.
+<ol style=list-style-lower-alpha>
+<li>Position the tablet face-up on a table (do not attach the tablet to the back
+panel of the box)</li>
+<li>Run the following command:
+<pre>$ python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3</pre>
+Scenes 2 and 3 require the tablet to display an image, so the tablet prompts you
+to "Allow Drive to access photos, media, and files on your device?". Clear this
+prompt (and prevent future prompts) by pressing <strong>Allow</strong>.</li>
+<li>Run the command again. The tablet prompts you to "Keep a copy of this file?"
+and suggests Google Drive. Clear this prompt (and prevent future prompts) by
+pressing the Drive icon then <strong>Cancel</strong> for upload to drive.</li>
+<li>Finally, run <code>tools/run_all_tests.py</code> and confirm that scenes
+change automatically as script cycles through different scenes. While most
+tests will FAIL (as the camera is not pointed at the chart), you can verify the
+tablet correctly cycles through the scenes without displaying any prompts or
+other pop-ups on the screen.</li></ol></li></ol>
+
+<h2 id=run-tests>Running tests</h2>
+<p>Before running the ITS-in-a-box, ensure your test setup includes the following
+hardware and software:</p>
+<ul>
+<li>One (1) ITS-in-a-box</li>
+<li>One (1) Pixel C for displaying Scenes, S/N: 5811000011</li>
+<li>Two (2) DUTs that use the same build fingerprint and have the CTS Verifier
+7.0_8+ application installed. Example DUTs:
+
+<ul>
+<li>One (1) Pixel NOF26W for the back camera(0) testing, S/N: FA6BM0305016. To
+install the CTS Verifier app, unzip android-cts-verifier.zip then run
+<pre>$ adb -s FA6BM0305016 install -r android-cts-verifier/CtsVerifier.apk</pre></li>
+<li>One (1) Pixel NOF26W for the front camera(1) testing, S/N: FA6BM0305439. To
+install the CTS Verifier app, unzip android-cts-verifier.zip then run
+<pre>$ adb -s FA6BM0305439 install -r android-cts-verifier/CtsVerifier.apk</pre></li>
+</ul>
+</li></ul>
+
+<h3 id=scenes-0-4>Running scenes 0-4</h3>
+<p>To run scenes 0-4 on the front and back camera in parallel:</p>
+<pre>$ cd android-cts-verifier/CameraITS
+$ . build/envsetup.sh
+$ python tools/run_parallel_tests.py device0=FA6BM0305016 device1=FA6BM0305439 chart=5811000011
+</pre>
+
+<p>Examples:</p>
+<table>
+<tr>
+<td ><img src=images/camera_its_cam0.png align="center"></td>
+<td align="center"><img src=images/camera_its_cam0.png></td>
+</tr>
+<tr>
+<td align="center"><p class=caption><strong>Figure 1</strong>. Camera 0 S/N:
+FA6BM0305016</p>
+</td>
+<td align="center"><p class=caption><strong>Figure 2</strong>. Camera 1 S/N:
+FA6BM0305439</p>
+</td>
+</tr>
+</table>
+
+<h3 id=retry-scenes>Retrying scenes</h3>
+<p>You can retry scenes for both front and back cameras or a single camera:
+<ul>
+<li>To retry scenes on front and back cameras in parallel:
+<pre>$ python tools/run_parallel_tests.py device0=FA6BM0305016 device1=FA6BM0305439 chart=5811000011 scenes=3,4</pre></li>
+<li>To retry scenes on a single camera:
+<pre>$ python tools/run_all_tests.py device=FA6BM0305016 chart=5811000011 camera=1 scenes=3,4</pre></li>
+</ul>
+
+<h3 id=scenes-0-4>Running scene 5</h3>
+<p>Scene 5 requires special setup with specific lighting (for details, refer to
+CameraITS.pdf in the CTS Verifier download). You can run Scene 5 separately
+(outside of the box) to test two devices in parallel.</p>
+<ul>
+<li>To run Scene 5 on front and back cameras on two devices in parallel:
+<pre>$ python tools/run_parallel_tests.py device0=FA6BM0305016 device1=FA6BM0305439 chart=5811000011 scenes=5</pre>
+<br><img src=images/camera_its_scene5.png width="50%"><br>
+<strong>Figure 3</strong>. Camera scene 5.</li>
+<li>To run Scene 5 for front and back cameras on a single device:
+<pre>$ python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
+$ python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5
+</pre></li>
+</ul>
+
+<h2 id=get-results>Getting results</h2>
+<p>You can view results during testing and save the completed results as a report.
+</p>
+<ul>
+<li><strong>View progress of running tests</strong>. The command
+<code>run_parallel_tests</code> prints results only after Camera-Scene tests
+have finished, so to view results during test execution you must use Android
+Device Monitor or <code>adb logcat</code> to verify progress and/or view
+screenshots.<br>
+<br>Example adb command:
+<pre>$ adb -s FA6BM0305016 logcat -v time</pre>
+Example screenshots command:
+<pre>$ adb -s FA6BM0305016 shell screencap -p /sdcard/screencap.png
+$ adb -s FA6BM0305016 pull /sdcard/screencap.png
+$ display ./screencap.png
+</pre></li>
+<li><strong>View results</strong>. To save Camera ITS results as a report:
+<ol>
+<li>Press <strong>Pass</strong> and save the report:
+<br><img src=images/camera_its_results.png width="50%"><br>
+<strong>Figure 4</strong>. Camera ITS report.</li>
+<li>Pull reports from the device:
+<pre>$ adb -s FA6BM0305016 pull /sdcard/verifierReports</pre></li>
+<li>Unzip the report file and view the test_result.xml.
+<br><img src=images/camera_its_reports.png><br>
+<strong>Figure 5</strong>. Camera ITS reports.<br></li>
+</ol>
+</li>
+</ul>
+ </body>
+</html>
diff --git a/en/compatibility/cts/camera_its_iab_tech_drawings.zip b/en/compatibility/cts/camera_its_iab_tech_drawings.zip
new file mode 100644
index 00000000..ddf25da4
--- /dev/null
+++ b/en/compatibility/cts/camera_its_iab_tech_drawings.zip
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_back_no_sides.jpg b/en/compatibility/cts/images/camera_iab_back_no_sides.jpg
new file mode 100644
index 00000000..621db6c7
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_back_no_sides.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_cad.png b/en/compatibility/cts/images/camera_iab_cad.png
new file mode 100644
index 00000000..ecee914c
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_cad.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_front_apertures.jpg b/en/compatibility/cts/images/camera_iab_front_apertures.jpg
new file mode 100644
index 00000000..06f82bc0
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_front_apertures.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_front_attached.jpg b/en/compatibility/cts/images/camera_iab_front_attached.jpg
new file mode 100644
index 00000000..c2276be2
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_front_attached.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_front_plate_assembled.jpg b/en/compatibility/cts/images/camera_iab_front_plate_assembled.jpg
new file mode 100644
index 00000000..1092b103
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_front_plate_assembled.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_front_plate_parts.png b/en/compatibility/cts/images/camera_iab_front_plate_parts.png
new file mode 100644
index 00000000..9f4ae418
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_front_plate_parts.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_gater_no_aperture.jpg b/en/compatibility/cts/images/camera_iab_gater_no_aperture.jpg
new file mode 100644
index 00000000..abc534b0
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_gater_no_aperture.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_handle_assembled.png b/en/compatibility/cts/images/camera_iab_handle_assembled.png
new file mode 100644
index 00000000..769e2444
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_handle_assembled.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_handle_parts.png b/en/compatibility/cts/images/camera_iab_handle_parts.png
new file mode 100644
index 00000000..e5a3c103
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_handle_parts.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_left_side_placed.jpg b/en/compatibility/cts/images/camera_iab_left_side_placed.jpg
new file mode 100644
index 00000000..8b2ab676
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_left_side_placed.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_assembled.png b/en/compatibility/cts/images/camera_iab_light_assembled.png
new file mode 100644
index 00000000..e9df6ce1
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_assembled.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_assembly_parts.png b/en/compatibility/cts/images/camera_iab_light_assembly_parts.png
new file mode 100644
index 00000000..6882ccc0
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_assembly_parts.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_baffles.png b/en/compatibility/cts/images/camera_iab_light_baffles.png
new file mode 100644
index 00000000..130592a8
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_baffles.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_bar.png b/en/compatibility/cts/images/camera_iab_light_bar.png
new file mode 100644
index 00000000..971bdc43
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_bar.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_cord.jpg b/en/compatibility/cts/images/camera_iab_light_cord.jpg
new file mode 100644
index 00000000..2dc760b9
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_cord.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_cord_secured.jpg b/en/compatibility/cts/images/camera_iab_light_cord_secured.jpg
new file mode 100644
index 00000000..c17a94e7
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_cord_secured.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_cord_zip.jpg b/en/compatibility/cts/images/camera_iab_light_cord_zip.jpg
new file mode 100644
index 00000000..0cac0904
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_cord_zip.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_light_installed.jpg b/en/compatibility/cts/images/camera_iab_light_installed.jpg
new file mode 100644
index 00000000..90f704d7
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_light_installed.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_phone_mount_assembled.png b/en/compatibility/cts/images/camera_iab_phone_mount_assembled.png
new file mode 100644
index 00000000..0756f7a5
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_phone_mount_assembled.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_phone_mount_parts.png b/en/compatibility/cts/images/camera_iab_phone_mount_parts.png
new file mode 100644
index 00000000..53b7c89f
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_phone_mount_parts.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_pin_led_mount_details.png b/en/compatibility/cts/images/camera_iab_pin_led_mount_details.png
new file mode 100644
index 00000000..a7e07482
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_pin_led_mount_details.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_plunger_parts.png b/en/compatibility/cts/images/camera_iab_plunger_parts.png
new file mode 100644
index 00000000..7b7fd082
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_plunger_parts.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_right_side_placed.jpg b/en/compatibility/cts/images/camera_iab_right_side_placed.jpg
new file mode 100644
index 00000000..6e775c07
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_right_side_placed.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_tab_holder_parts.png b/en/compatibility/cts/images/camera_iab_tab_holder_parts.png
new file mode 100644
index 00000000..dbe05b90
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_tab_holder_parts.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_tab_holder_spacer.png b/en/compatibility/cts/images/camera_iab_tab_holder_spacer.png
new file mode 100644
index 00000000..3c6aa81d
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_tab_holder_spacer.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_tabholder_assembled.png b/en/compatibility/cts/images/camera_iab_tabholder_assembled.png
new file mode 100644
index 00000000..826564fd
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_tabholder_assembled.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_tabholder_inserted.jpg b/en/compatibility/cts/images/camera_iab_tabholder_inserted.jpg
new file mode 100644
index 00000000..e4a86517
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_tabholder_inserted.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpg b/en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpg
new file mode 100644
index 00000000..a1044455
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpg
Binary files differ
diff --git a/en/compatibility/cts/images/camera_iab_top_bottom_placed.png b/en/compatibility/cts/images/camera_iab_top_bottom_placed.png
new file mode 100644
index 00000000..d4eb8955
--- /dev/null
+++ b/en/compatibility/cts/images/camera_iab_top_bottom_placed.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_its_cam0.png b/en/compatibility/cts/images/camera_its_cam0.png
new file mode 100644
index 00000000..85af4681
--- /dev/null
+++ b/en/compatibility/cts/images/camera_its_cam0.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_its_cam1.png b/en/compatibility/cts/images/camera_its_cam1.png
new file mode 100644
index 00000000..06e482e5
--- /dev/null
+++ b/en/compatibility/cts/images/camera_its_cam1.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_its_reports.png b/en/compatibility/cts/images/camera_its_reports.png
new file mode 100644
index 00000000..66bd4864
--- /dev/null
+++ b/en/compatibility/cts/images/camera_its_reports.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_its_results.png b/en/compatibility/cts/images/camera_its_results.png
new file mode 100644
index 00000000..af4d86d5
--- /dev/null
+++ b/en/compatibility/cts/images/camera_its_results.png
Binary files differ
diff --git a/en/compatibility/cts/images/camera_its_scene5.png b/en/compatibility/cts/images/camera_its_scene5.png
new file mode 100644
index 00000000..02378154
--- /dev/null
+++ b/en/compatibility/cts/images/camera_its_scene5.png
Binary files differ
diff --git a/en/devices/tech/dalvik/dex-format.html b/en/devices/tech/dalvik/dex-format.html
index 7ddcc127..3ff22c0d 100644
--- a/en/devices/tech/dalvik/dex-format.html
+++ b/en/devices/tech/dalvik/dex-format.html
@@ -247,8 +247,7 @@ values are unlikely to be needed).</p>
<td>call_site_id_item[]</td>
<td>call site identifiers list. These are identifiers for all call sites
referred to by this file, whether defined in the file or not. This list
- must be sorted in ascending order of <code>call_site_off</code>. This
- list must not contain any duplicate entries.
+ must be sorted in ascending order of <code>call_site_off</code>.
</tr>
<tr>
<td>method_handles</td>
diff --git a/en/devices/tech/debug/asan.html b/en/devices/tech/debug/asan.html
index e93a8789..e510a05b 100644
--- a/en/devices/tech/debug/asan.html
+++ b/en/devices/tech/debug/asan.html
@@ -54,16 +54,17 @@ AddressSanitizer at once. Otherwise, you are limited to using
<h2 id=building_with_clang>Building with Clang</h2>
<p>As a first step to building an ASan-instrumented binary, make sure that your
-code builds with Clang. This is done by adding <code>LOCAL_CLANG:=true</code>
+code builds with Clang. This is done by default on the master branch, so there should be nothing
+you need to do. If you believe that the module you'd like to test is being built with GCC,
+you can switch to Clang by adding <code>LOCAL_CLANG:=true</code>
to the build rules. Clang may find bugs in your code that GCC missed.</p>
<h2 id=building_executables_with_addresssanitizer>Building executables with AddressSanitizer</h2>
<p>Add <code>LOCAL_SANITIZE:=address</code> to the build rule of the
-executable. This requires: <code>LOCAL_CLANG:=true</code></p>
+executable.</p>
<pre>
-LOCAL_CLANG:=true
LOCAL_SANITIZE:=address
</pre>
@@ -85,7 +86,6 @@ recommended way to do this is to add the following to <code>Android.mk</code>
for the module in question:</p>
<pre>
-LOCAL_CLANG:=true
LOCAL_SANITIZE:=address
LOCAL_MODULE_RELATIVE_PATH := asan
</pre>
@@ -161,7 +161,7 @@ this case is <code>/system/bin/app_process(<em>32|64</code></em>). This will
enable ASan in all apps on the device at the same time, which is a
bit stressful, but nothing that a 2GB RAM device cannot handle.</p>
-<p>Add the usual <code>LOCAL_CLANG:=true, LOCAL_SANITIZE:=address</code> to
+<p>Add the usual <code>LOCAL_SANITIZE:=address</code> to
the app_process build rule in <code>frameworks/base/cmds/app_process</code>. Ignore
the <code>app_process__asan</code> target in the same file for now (if it is
still there at the time you read
@@ -213,7 +213,7 @@ AddressSanitizer at once.</p>
<pre>
$ make -j42
-$ make USE_CLANG_PLATFORM_BUILD:=true SANITIZE_TARGET=address -j42
+$ SANITIZE_TARGET=address make -j42
</pre>
<p>In this mode, <code>userdata.img</code> contains extra libraries and must be
@@ -223,15 +223,14 @@ flashed to the device as well. Use the following command line:</p>
$ fastboot flash userdata && fastboot flashall
</pre>
-<p>At the moment of this writing, hammerhead-userdebug and shamu-userdebug boot to
-the UI in this mode.</p>
+<p>At the moment of this writing, modern Nexus and Pixel devices boot to the UI in this mode.</p>
<p>This works by building two sets of shared libraries: normal in
<code>/system/lib</code> (the first make invocation), ASan-instrumented in
-<code>/data/lib</code> (the second make invocation). Executables from the
+<code>/data/asan/lib</code> (the second make invocation). Executables from the
second build overwrite the ones from the first build. ASan-instrumented
executables get a different library search path that includes
-<code>/data/lib</code> before <code>/system/lib</code> through the use of
+<code>/data/asan/lib</code> before <code>/system/lib</code> through the use of
"/system/bin/linker_asan" in PT_INTERP.</p>
<p>The build system clobbers intermediate object directories when the
@@ -243,7 +242,7 @@ targets while preserving installed binaries under <code>/system/lib</code>.</p>
<ul>
<li>Statically linked executables.
<li><code>LOCAL_CLANG:=false</code> targets
- <li><code>LOCAL_SANITIZE:=undefined</code>; will not be ASan'd for <code>SANITIZE_TARGET=address</code>
+ <li><code>LOCAL_SANITIZE:=false</code> will not be ASan'd for <code>SANITIZE_TARGET=address</code>
</ul>
<p>Executables like these are skipped in the SANITIZE_TARGET build, and the
diff --git a/en/security/bulletin/2017-04-01.html b/en/security/bulletin/2017-04-01.html
index 4498d7dd..7d25193e 100644
--- a/en/security/bulletin/2017-04-01.html
+++ b/en/security/bulletin/2017-04-01.html
@@ -20,7 +20,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p><em>Published April 03, 2017 | Updated April 05, 2017</em></p>
+<p><em>Published April 03, 2017 | Updated April 21, 2017</em></p>
<p>The Android Security Bulletin contains details of security vulnerabilities
affecting Android devices. Alongside the bulletin, we have released a security
update to Nexus devices through an over-the-air (OTA) update. The Google device
@@ -140,14 +140,14 @@ successfully exploited on Android.</p>
<li>Pengfei Ding (丁鹏飞), Chenfu Bao (包沉浮), and Lenx Wei (韦韬) of Baidu X-Lab
(百度安全实验室): CVE-2016-10236</li>
<li>Qidan He (何淇丹 - <a href="https://twitter.com/flanker_hqd">@flanker_hqd</a>)
- of KeenLab, Tencent: CVE-2017-0544, CVE-2016-10231, CVE-2017-0325</li>
+ of KeenLab, Tencent: CVE-2017-0544, CVE-2017-0325</li>
<li>Roee Hay (<a href="https://twitter.com/roeehay">@roeehay</a>) of Aleph
Research, HCL Technologies: CVE-2017-0582, CVE-2017-0563</li>
<li><a href="mailto:sbauer@plzdonthack.me">Scott Bauer</a> (<a
href="https://twitter.com/ScottyBauer1">@ScottyBauer1</a>): CVE-2017-0562,
CVE-2017-0339</li>
<li>Seven Shen (<a href="https://twitter.com/lingtongshen">@lingtongshen</a>) of
- TrendMicro Mobile Threat Research Team: CVE-2017-0578</li>
+ TrendMicro Mobile Threat Research Team: CVE-2016-10231, CVE-2017-0578, CVE-2017-0586</li>
<li>Tim Becker: CVE-2017-0546</li>
<li>Uma Sankar Pradhan (<a
href="https://twitter.com/umasankar_iitd">@umasankar_iitd</a>): CVE-2017-0560</li>
@@ -161,8 +161,6 @@ successfully exploited on Android.</p>
<li>Wenlin Yang (<a href="https://twitter.com/wenlin_yang">@wenlin_yang</a>),
Guang Gong (<a href="https://twitter.com/oldfresher">@oldfresher</a>), and Hao
Chen of Alpha Team, Qihoo 360 Technology Co. Ltd.: CVE-2017-0580, CVE-2017-0577</li>
- <li>Yonggang Guo (<a href="https://twitter.com/guoygang">@guoygang</a>) of
- IceSword Lab, Qihoo 360 Technology Co. Ltd.: CVE-2017-0586</li>
<li><a href="http://weibo.com/ele7enxxh">Zinuo Han</a> from Chengdu Security
Response Center of Qihoo 360 Technology Co. Ltd.: CVE-2017-0548</li>
<li>Zubin Mithra of Google: CVE-2017-0462</li>
@@ -2690,6 +2688,7 @@ belongs. These prefixes map as follows:</p>
<ul>
<li>April 03, 2017: Bulletin published.</li>
<li>April 05, 2017: Bulletin revised to include AOSP links.</li>
+ <li>April 21, 2017: Attribution for CVE-2016-10231 and CVE-2017-0586 corrected.</li>
</ul>
</body>
diff --git a/en/security/index.html b/en/security/index.html
index 8521b8bb..5d62e5d1 100644
--- a/en/security/index.html
+++ b/en/security/index.html
@@ -158,7 +158,7 @@ Android devices with <a href="https://www.android.com/gms/">Google Mobile
Services</a>. While these services are not part of the Android Open Source
Project, they are included on many Android devices. For more information on
some of these services, see Android Security’s
-<a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Google_Android_Security_2015_Report_Final.pdf">2015
+<a href="/security/reports/Google_Android_Security_2015_Report_Final.pdf">2015
Year in Review</a>.
</p>
<p>
diff --git a/en/security/overview/implement.html b/en/security/overview/implement.html
index bbe1967c..7233a34d 100644
--- a/en/security/overview/implement.html
+++ b/en/security/overview/implement.html
@@ -56,6 +56,9 @@ automated source code review. Best practices:</p>
application code using the Android SDK and correct any identified issues.</li>
<li>Native code should be analyzed using an automated tool that can detect
memory management issues such as buffer overflows and off-by-one errors.</li>
+<li>The Android build system has support for many of the LLVM sanitizers,
+such as AddressSanitizer and UndefinedBehaviorSanitizer which can be used
+for this purpose.</li>
</ul>
<h3 id="auto-test">Using automated testing</h3>
diff --git a/en/security/overview/updates-resources.html b/en/security/overview/updates-resources.html
index c524b5ff..fcf199f5 100644
--- a/en/security/overview/updates-resources.html
+++ b/en/security/overview/updates-resources.html
@@ -275,40 +275,40 @@ href="https://developer.android.com">https://developer.android.com</a></p>
<p>Security information exists throughout the Android Open Source and Developer
sites. Good places to start:<br>
-<a href="https://source.android.com/security/index.html">https://source.android.com/security/index.html</a><br>
+<a href="/security/index.html">https://source.android.com/security/index.html</a><br>
<a href="https://developer.android.com/training/articles/security-tips.html">https://developer.android.com/training/articles/security-tips.html</a></p>
<h3 id=reports>Reports</h3>
<p>Sometimes the Android Security team publishes reports or whitepapers. Here are some of the most recent.</p>
<ul>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Google_Android_Security_2016_Report_Final.pdf">
+ <li><a href="/security/reports/Google_Android_Security_2016_Report_Final.pdf">
Android Security 2016 Year In Review</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Google_Android_Security_2015_Report_Final.pdf">
+ <li><a href="/security/reports/Google_Android_Security_2015_Report_Final.pdf">
Android Security 2015 Year In Review</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Google_Android_Security_2014_Report_Final.pdf">
+ <li><a href="/security/reports/Google_Android_Security_2014_Report_Final.pdf">
Android Security 2014 Year In Review</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android_WhitePaper_Final_02092016.pdf">
+ <li><a href="/security/reports/Android_WhitePaper_Final_02092016.pdf">
Android Security white paper</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Google_Android_Security_PHA_classifications.pdf">
+ <li><a href="/security/reports/Google_Android_Security_PHA_classifications.pdf">
Classifications for Potentially Harmful Applications</a></li>
</ul>
-<h3 id=slides>Android Bootcamp 2016 slides</h3>
-<p>The Android Security team has published their Android Bootcamp 2016 slides that cover new security features.</p>
+<h3 id=slides>Presentations</h3>
+<p>The Android Security team presents at various conferences and talks. Here are some of their slides:</p>
<ul>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-Verified-Boot-and-Encryption.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-Verified-Boot-and-Encryption.pdf">
Verified boot and encryption</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-SafetyNet.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-SafetyNet.pdf">
SafetyNet</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-New-App-Lifecycle-for-Encryption.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-New-App-Lifecycle-for-Encryption.pdf">
New app life cycle for encryption</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-Keeping-Google-Play-safe.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-Keeping-Google-Play-safe.pdf">
Keeping Google Play safe</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-Defense-in-depth-efforts.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-Defense-in-depth-efforts.pdf">
Defense in depth efforts</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-Android-Keystore-Attestation.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-Android-Keystore-Attestation.pdf">
Keystore attestation</a></li>
- <li><a href="http://static.googleusercontent.com/media/source.android.com/en//security/reports/Android-Bootcamp-2016-Android-Attack-Team.pdf">
+ <li><a href="/security/reports/Android-Bootcamp-2016-Android-Attack-Team.pdf">
Android attack team</a></li>
</ul>
diff --git a/en/source/report-bugs.html b/en/source/report-bugs.html
index 8c7e55f6..581dc780 100644
--- a/en/source/report-bugs.html
+++ b/en/source/report-bugs.html
@@ -22,13 +22,16 @@
-->
<p>
Thank you for your interest in Android! You can help improve Android by
-reporting issues and feature requests in
-<a href="https://developers.google.com/issue-tracker/concepts/issues">Issue
+reporting issues and feature requests in the
+<a href="https://issuetracker.google.com/issues/new?component=190923">Android Issue
Tracker</a>. The Android Issue Tracker contains a list of pending technical
tasks across a variety of topics, information relevant to those tasks, and
information about progress on those tasks, including which ones might get worked
on in the short term.
</p>
+<p class="note">For more information about why we switched to Issue Tracker, see <a
+href="http://android-developers.googleblog.com/2017/04/a-new-issue-tracker-for-our-aosp.html">this
+blog post</a>.</p>
<p>
Issue Tracker is not a customer support forum. For support information, see the
<a href="https://support.google.com/nexus">Nexus</a> and