diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-02 08:58:40 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-02 08:58:40 +0000 |
commit | d8b6c10b465fd0471677b2a56d0a8120c908b615 (patch) | |
tree | a75506878fec8f2ca81a0627ee9047ff1a529f61 | |
parent | 243f11da189339d6e7c7d642a504c2a10fde3417 (diff) | |
parent | 70d269ba87f6b03413d56ef21e605be826cfa92a (diff) | |
download | source.android.com-d8b6c10b465fd0471677b2a56d0a8120c908b615.tar.gz |
release-request-e32f3567-b299-4433-aaca-18a62b3f00c0-for-git_oc-dr1-release-3964195 snap-temp-L52500000059616409
Change-Id: If010398557c3a502b72e0c135d3d03075fecda31
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 Binary files differnew file mode 100644 index 00000000..ddf25da4 --- /dev/null +++ b/en/compatibility/cts/camera_its_iab_tech_drawings.zip diff --git a/en/compatibility/cts/images/camera_iab_back_no_sides.jpg b/en/compatibility/cts/images/camera_iab_back_no_sides.jpg Binary files differnew file mode 100644 index 00000000..621db6c7 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_back_no_sides.jpg diff --git a/en/compatibility/cts/images/camera_iab_cad.png b/en/compatibility/cts/images/camera_iab_cad.png Binary files differnew file mode 100644 index 00000000..ecee914c --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_cad.png diff --git a/en/compatibility/cts/images/camera_iab_front_apertures.jpg b/en/compatibility/cts/images/camera_iab_front_apertures.jpg Binary files differnew file mode 100644 index 00000000..06f82bc0 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_front_apertures.jpg diff --git a/en/compatibility/cts/images/camera_iab_front_attached.jpg b/en/compatibility/cts/images/camera_iab_front_attached.jpg Binary files differnew file mode 100644 index 00000000..c2276be2 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_front_attached.jpg diff --git a/en/compatibility/cts/images/camera_iab_front_plate_assembled.jpg b/en/compatibility/cts/images/camera_iab_front_plate_assembled.jpg Binary files differnew file mode 100644 index 00000000..1092b103 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_front_plate_assembled.jpg diff --git a/en/compatibility/cts/images/camera_iab_front_plate_parts.png b/en/compatibility/cts/images/camera_iab_front_plate_parts.png Binary files differnew file mode 100644 index 00000000..9f4ae418 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_front_plate_parts.png diff --git a/en/compatibility/cts/images/camera_iab_gater_no_aperture.jpg b/en/compatibility/cts/images/camera_iab_gater_no_aperture.jpg Binary files differnew file mode 100644 index 00000000..abc534b0 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_gater_no_aperture.jpg diff --git a/en/compatibility/cts/images/camera_iab_handle_assembled.png b/en/compatibility/cts/images/camera_iab_handle_assembled.png Binary files differnew file mode 100644 index 00000000..769e2444 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_handle_assembled.png diff --git a/en/compatibility/cts/images/camera_iab_handle_parts.png b/en/compatibility/cts/images/camera_iab_handle_parts.png Binary files differnew file mode 100644 index 00000000..e5a3c103 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_handle_parts.png diff --git a/en/compatibility/cts/images/camera_iab_left_side_placed.jpg b/en/compatibility/cts/images/camera_iab_left_side_placed.jpg Binary files differnew file mode 100644 index 00000000..8b2ab676 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_left_side_placed.jpg diff --git a/en/compatibility/cts/images/camera_iab_light_assembled.png b/en/compatibility/cts/images/camera_iab_light_assembled.png Binary files differnew file mode 100644 index 00000000..e9df6ce1 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_assembled.png diff --git a/en/compatibility/cts/images/camera_iab_light_assembly_parts.png b/en/compatibility/cts/images/camera_iab_light_assembly_parts.png Binary files differnew file mode 100644 index 00000000..6882ccc0 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_assembly_parts.png diff --git a/en/compatibility/cts/images/camera_iab_light_baffles.png b/en/compatibility/cts/images/camera_iab_light_baffles.png Binary files differnew file mode 100644 index 00000000..130592a8 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_baffles.png diff --git a/en/compatibility/cts/images/camera_iab_light_bar.png b/en/compatibility/cts/images/camera_iab_light_bar.png Binary files differnew file mode 100644 index 00000000..971bdc43 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_bar.png diff --git a/en/compatibility/cts/images/camera_iab_light_cord.jpg b/en/compatibility/cts/images/camera_iab_light_cord.jpg Binary files differnew file mode 100644 index 00000000..2dc760b9 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_cord.jpg diff --git a/en/compatibility/cts/images/camera_iab_light_cord_secured.jpg b/en/compatibility/cts/images/camera_iab_light_cord_secured.jpg Binary files differnew file mode 100644 index 00000000..c17a94e7 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_cord_secured.jpg diff --git a/en/compatibility/cts/images/camera_iab_light_cord_zip.jpg b/en/compatibility/cts/images/camera_iab_light_cord_zip.jpg Binary files differnew file mode 100644 index 00000000..0cac0904 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_cord_zip.jpg diff --git a/en/compatibility/cts/images/camera_iab_light_installed.jpg b/en/compatibility/cts/images/camera_iab_light_installed.jpg Binary files differnew file mode 100644 index 00000000..90f704d7 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_light_installed.jpg diff --git a/en/compatibility/cts/images/camera_iab_phone_mount_assembled.png b/en/compatibility/cts/images/camera_iab_phone_mount_assembled.png Binary files differnew file mode 100644 index 00000000..0756f7a5 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_phone_mount_assembled.png diff --git a/en/compatibility/cts/images/camera_iab_phone_mount_parts.png b/en/compatibility/cts/images/camera_iab_phone_mount_parts.png Binary files differnew file mode 100644 index 00000000..53b7c89f --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_phone_mount_parts.png 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 Binary files differnew file mode 100644 index 00000000..a7e07482 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_pin_led_mount_details.png diff --git a/en/compatibility/cts/images/camera_iab_plunger_parts.png b/en/compatibility/cts/images/camera_iab_plunger_parts.png Binary files differnew file mode 100644 index 00000000..7b7fd082 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_plunger_parts.png diff --git a/en/compatibility/cts/images/camera_iab_right_side_placed.jpg b/en/compatibility/cts/images/camera_iab_right_side_placed.jpg Binary files differnew file mode 100644 index 00000000..6e775c07 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_right_side_placed.jpg diff --git a/en/compatibility/cts/images/camera_iab_tab_holder_parts.png b/en/compatibility/cts/images/camera_iab_tab_holder_parts.png Binary files differnew file mode 100644 index 00000000..dbe05b90 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_tab_holder_parts.png diff --git a/en/compatibility/cts/images/camera_iab_tab_holder_spacer.png b/en/compatibility/cts/images/camera_iab_tab_holder_spacer.png Binary files differnew file mode 100644 index 00000000..3c6aa81d --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_tab_holder_spacer.png diff --git a/en/compatibility/cts/images/camera_iab_tabholder_assembled.png b/en/compatibility/cts/images/camera_iab_tabholder_assembled.png Binary files differnew file mode 100644 index 00000000..826564fd --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_tabholder_assembled.png diff --git a/en/compatibility/cts/images/camera_iab_tabholder_inserted.jpg b/en/compatibility/cts/images/camera_iab_tabholder_inserted.jpg Binary files differnew file mode 100644 index 00000000..e4a86517 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_tabholder_inserted.jpg diff --git a/en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpg b/en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpg Binary files differnew file mode 100644 index 00000000..a1044455 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_tablet_spacer_detail.jpg diff --git a/en/compatibility/cts/images/camera_iab_top_bottom_placed.png b/en/compatibility/cts/images/camera_iab_top_bottom_placed.png Binary files differnew file mode 100644 index 00000000..d4eb8955 --- /dev/null +++ b/en/compatibility/cts/images/camera_iab_top_bottom_placed.png diff --git a/en/compatibility/cts/images/camera_its_cam0.png b/en/compatibility/cts/images/camera_its_cam0.png Binary files differnew file mode 100644 index 00000000..85af4681 --- /dev/null +++ b/en/compatibility/cts/images/camera_its_cam0.png diff --git a/en/compatibility/cts/images/camera_its_cam1.png b/en/compatibility/cts/images/camera_its_cam1.png Binary files differnew file mode 100644 index 00000000..06e482e5 --- /dev/null +++ b/en/compatibility/cts/images/camera_its_cam1.png diff --git a/en/compatibility/cts/images/camera_its_reports.png b/en/compatibility/cts/images/camera_its_reports.png Binary files differnew file mode 100644 index 00000000..66bd4864 --- /dev/null +++ b/en/compatibility/cts/images/camera_its_reports.png diff --git a/en/compatibility/cts/images/camera_its_results.png b/en/compatibility/cts/images/camera_its_results.png Binary files differnew file mode 100644 index 00000000..af4d86d5 --- /dev/null +++ b/en/compatibility/cts/images/camera_its_results.png diff --git a/en/compatibility/cts/images/camera_its_scene5.png b/en/compatibility/cts/images/camera_its_scene5.png Binary files differnew file mode 100644 index 00000000..02378154 --- /dev/null +++ b/en/compatibility/cts/images/camera_its_scene5.png 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 |