Merge "Fix markup for audio pages: tags, entities, etc"
diff --git a/hal_header.html b/hal_header.html
index dc4e671..895a68f 100644
--- a/hal_header.html
+++ b/hal_header.html
@@ -36,7 +36,7 @@
<td><a href="/index.html"><img src="/assets/images/sac_logo.png" width="123" height="25" alt="Android Developers" /></td>
<td><a class=toptab href="/source/index.html">Source</a></td>
<td><a class=devices href="/devices/index.html">Devices</a></td>
- <td><a class=toptab href="/accessories/index.html">Accessories</a></td>
+ <td><a class=toptab href="/security/index.html">Security</a></td>
<td><a class=toptab href="/compatibility/index.html">Compatibility</a></td>
<td width=20%>$searchbox</td>
</tr>
diff --git a/src/accessories/accessories_toc.cs b/src/accessories/accessories_toc.cs
deleted file mode 100644
index f4954a0..0000000
--- a/src/accessories/accessories_toc.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--
- Copyright 2015 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.
--->
-<?cs # Table of contents for adk?>
-<ul id="nav">
- <!-- Accessories -->
- <li class="nav-section">
-<div class="nav-section-header">
- <a href="<?cs var:toroot ?>accessories/index.html">
- <span class="en">Overview</span>
- </a>
- </div>
- <ul>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>accessories/audio.html">
- <span class="en">Audio Accessories</span>
- </a>
- </div>
- <ul>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>accessories/headset/index.html">
- <span class="en">Headset</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>accessories/headset/specification.html">Specification</a></li>
- <li><a href="<?cs var:toroot ?>accessories/headset/requirements.html">Requirements</a></li>
- <li><a href="<?cs var:toroot ?>accessories/headset/testing.html">Testing</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="nav-section">
-<div class="nav-section-header">
- <a href="<?cs var:toroot ?>accessories/custom.html">
- <span class="en">Custom Accessories</span>
- </a>
- </div>
- <ul>
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>accessories/protocol.html"><span class="en">AOA</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>accessories/aoa2.html">AOA 2.0</a></li>
- <li><a href="<?cs var:toroot ?>accessories/aoa.html">AOA 1.0</a></li>
- </ul>
- </li>
- <div class="nav-section-header"><a href="<?cs var:toroot ?>accessories/stylus.html"><span class="en">Stylus</span>
- </a>
- </div>
- </ul>
- </li>
- </li>
- <!-- End Accessories -->
-</ul>
\ No newline at end of file
diff --git a/src/accessories/aoa.jd b/src/devices/accessories/aoa.jd
similarity index 98%
rename from src/accessories/aoa.jd
rename to src/devices/accessories/aoa.jd
index 8eb7723..ba927e6 100644
--- a/src/accessories/aoa.jd
+++ b/src/devices/accessories/aoa.jd
@@ -31,7 +31,7 @@
<p class="note"><strong>Note:</strong> When developing a new accessory that
connects to an Android device over USB, use
-<a href="{@docRoot}accessories/aoa2.html">AOAv2</a>.</p>
+<a href="aoa2.html">AOAv2</a>.</p>
<h2 id="wait-for-and-detect-connected-devices">Wait for and detect connected
devices</h2>
@@ -182,4 +182,4 @@
interface, locate the first bulk input and output endpoints, set the
device configuration to a value of 1 with a <code>SET_CONFIGURATION</code>
(<code>0x09</code>) device request, then communicate using the endpoints.</li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/accessories/aoa2.jd b/src/devices/accessories/aoa2.jd
similarity index 98%
rename from src/accessories/aoa2.jd
rename to src/devices/accessories/aoa2.jd
index 2cbdc47..8994cad 100644
--- a/src/accessories/aoa2.jd
+++ b/src/devices/accessories/aoa2.jd
@@ -18,7 +18,7 @@
-->
<p>This document describes changes in the Android Open Accessory (AOA) protocol
since its initial release and supplements
-<a href="{@docRoot}accessories/aoa.html">AOA 1.0 documentation</a>. AOAv2
+<a href="aoa.html">AOA 1.0 documentation</a>. AOAv2
adds the following features:</p>
<ul>
@@ -246,7 +246,7 @@
<h2 id="interoperability-with-aoa-10-features">Interoperability with AOAv1</h2>
-<p>The original protocol (<a href="{@docRoot}accessories/aoa.html">AOAv1</a>)
+<p>The original protocol (<a href="aoa.html">AOAv1</a>)
provides support for an Android application to communicate directly with a USB
host (accessory) over USB. AOAv2 continues this support and adds new features
to allow the accessory to communicate with the Android operating system itself
@@ -273,4 +273,4 @@
accessory.</li>
<li>The accessory USB interface is not present in the Android device USB
configuration after the device enters accessory mode.</li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/accessories/audio.jd b/src/devices/accessories/audio.jd
similarity index 100%
rename from src/accessories/audio.jd
rename to src/devices/accessories/audio.jd
diff --git a/src/accessories/custom.jd b/src/devices/accessories/custom.jd
similarity index 96%
rename from src/accessories/custom.jd
rename to src/devices/accessories/custom.jd
index c4ff0f6..a58cd24 100644
--- a/src/accessories/custom.jd
+++ b/src/devices/accessories/custom.jd
@@ -60,9 +60,9 @@
<ul>
<li>Select a hardware platform or build a hardware device that can support USB
host mode.</li>
-<li>Review <a href="{@docRoot}accessories/protocol.html">AOA</a> specifications to
+<li>Review <a href="protocol.html">AOA</a> specifications to
understand how to implement this protocol on your accessory hardware.
-Implementing <a href="{@docRoot}accessories/aoa2.html">AOAv2</a> is
+Implementing <a href="aoa2.html">AOAv2</a> is
recommended for all new Android USB accessories.</li>
<li>Review the ADK 2012
<a href="http://developer.android.com/tools/adk/adk2.html#src-download">firmware
@@ -126,7 +126,7 @@
<a href="#next-steps_0">next steps for USB connections.</a></p>
<p>AOAv2 also supports the
-<a href="{@docRoot}accessories/aoa2.html#hid-support">human interface device</a>
+<a href="aoa2.html#hid-support">human interface device</a>
(HID) protocol through a USB connection, enabling accessories such as audio
docks to provide hardware play back controls such as pause, fast-forward or
-volume buttons.</p>
\ No newline at end of file
+volume buttons.</p>
diff --git a/src/accessories/headset/images/button_configuration.png b/src/devices/accessories/headset/images/button_configuration.png
similarity index 100%
rename from src/accessories/headset/images/button_configuration.png
rename to src/devices/accessories/headset/images/button_configuration.png
Binary files differ
diff --git a/src/accessories/headset/images/button_icons.png b/src/devices/accessories/headset/images/button_icons.png
similarity index 100%
rename from src/accessories/headset/images/button_icons.png
rename to src/devices/accessories/headset/images/button_icons.png
Binary files differ
diff --git a/src/accessories/headset/images/button_spacing.png b/src/devices/accessories/headset/images/button_spacing.png
similarity index 100%
rename from src/accessories/headset/images/button_spacing.png
rename to src/devices/accessories/headset/images/button_spacing.png
Binary files differ
diff --git a/src/accessories/headset/images/headset-circuit1.png b/src/devices/accessories/headset/images/headset-circuit1.png
similarity index 100%
rename from src/accessories/headset/images/headset-circuit1.png
rename to src/devices/accessories/headset/images/headset-circuit1.png
Binary files differ
diff --git a/src/accessories/headset/images/headset-circuit2.png b/src/devices/accessories/headset/images/headset-circuit2.png
similarity index 100%
rename from src/accessories/headset/images/headset-circuit2.png
rename to src/devices/accessories/headset/images/headset-circuit2.png
Binary files differ
diff --git a/src/accessories/headset/images/icon_sizing.png b/src/devices/accessories/headset/images/icon_sizing.png
similarity index 100%
rename from src/accessories/headset/images/icon_sizing.png
rename to src/devices/accessories/headset/images/icon_sizing.png
Binary files differ
diff --git a/src/accessories/headset/images/media_four.png b/src/devices/accessories/headset/images/media_four.png
similarity index 100%
rename from src/accessories/headset/images/media_four.png
rename to src/devices/accessories/headset/images/media_four.png
Binary files differ
diff --git a/src/accessories/headset/images/media_one.png b/src/devices/accessories/headset/images/media_one.png
similarity index 100%
rename from src/accessories/headset/images/media_one.png
rename to src/devices/accessories/headset/images/media_one.png
Binary files differ
diff --git a/src/accessories/headset/images/media_three.png b/src/devices/accessories/headset/images/media_three.png
similarity index 100%
rename from src/accessories/headset/images/media_three.png
rename to src/devices/accessories/headset/images/media_three.png
Binary files differ
diff --git a/src/accessories/headset/images/media_two.png b/src/devices/accessories/headset/images/media_two.png
similarity index 100%
rename from src/accessories/headset/images/media_two.png
rename to src/devices/accessories/headset/images/media_two.png
Binary files differ
diff --git a/src/accessories/headset/images/microphone.png b/src/devices/accessories/headset/images/microphone.png
similarity index 100%
rename from src/accessories/headset/images/microphone.png
rename to src/devices/accessories/headset/images/microphone.png
Binary files differ
diff --git a/src/accessories/headset/images/telephony_four.png b/src/devices/accessories/headset/images/telephony_four.png
similarity index 100%
rename from src/accessories/headset/images/telephony_four.png
rename to src/devices/accessories/headset/images/telephony_four.png
Binary files differ
diff --git a/src/accessories/headset/images/telephony_one.png b/src/devices/accessories/headset/images/telephony_one.png
similarity index 100%
rename from src/accessories/headset/images/telephony_one.png
rename to src/devices/accessories/headset/images/telephony_one.png
Binary files differ
diff --git a/src/accessories/headset/images/telephony_three.png b/src/devices/accessories/headset/images/telephony_three.png
similarity index 100%
rename from src/accessories/headset/images/telephony_three.png
rename to src/devices/accessories/headset/images/telephony_three.png
Binary files differ
diff --git a/src/accessories/headset/images/telephony_two.png b/src/devices/accessories/headset/images/telephony_two.png
similarity index 100%
rename from src/accessories/headset/images/telephony_two.png
rename to src/devices/accessories/headset/images/telephony_two.png
Binary files differ
diff --git a/src/accessories/headset/index.jd b/src/devices/accessories/headset/index.jd
similarity index 100%
rename from src/accessories/headset/index.jd
rename to src/devices/accessories/headset/index.jd
diff --git a/src/accessories/headset/requirements.jd b/src/devices/accessories/headset/requirements.jd
similarity index 100%
rename from src/accessories/headset/requirements.jd
rename to src/devices/accessories/headset/requirements.jd
diff --git a/src/accessories/headset/specification.jd b/src/devices/accessories/headset/specification.jd
similarity index 100%
rename from src/accessories/headset/specification.jd
rename to src/devices/accessories/headset/specification.jd
diff --git a/src/accessories/headset/testing.jd b/src/devices/accessories/headset/testing.jd
similarity index 100%
rename from src/accessories/headset/testing.jd
rename to src/devices/accessories/headset/testing.jd
diff --git a/src/accessories/index.jd b/src/devices/accessories/index.jd
similarity index 86%
rename from src/accessories/index.jd
rename to src/devices/accessories/index.jd
index 709b26a..450fbb8 100644
--- a/src/accessories/index.jd
+++ b/src/devices/accessories/index.jd
@@ -27,11 +27,11 @@
<p>Android supports local on-device audio and remote off-device audio
over a wired 3.5 mm headset jack, USB connection, or Bluetooth.
Manufacturers should see the <a
- href="{@docRoot}accessories/headset/specification.html">wired audio headset
+ href="headset/specification.html">wired audio headset
specification</a>, while users can learn how to <a
href="https://support.google.com/nexus/answer/6127700">record and play
back audio using USB host mode</a>.</p>
- <p><a href="{@docRoot}accessories/audio.html">» Audio Accessories</a></p>
+ <p><a href="audio.html">» Audio Accessories</a></p>
</div>
<div class="layout-content-col span-6">
@@ -40,7 +40,7 @@
Keyboard? Thermostat? Robot? Learn how to connect existing equipment or
your own unique hardware to Android using the Android Open Accessory
(AOA) protocol.</p>
- <p><a href="{@docRoot}accessories/custom.html">» Custom Accessories</a></p>
+ <p><a href="custom.html">» Custom Accessories</a></p>
</div>
</div>
diff --git a/src/accessories/protocol.jd b/src/devices/accessories/protocol.jd
similarity index 100%
rename from src/accessories/protocol.jd
rename to src/devices/accessories/protocol.jd
diff --git a/src/accessories/stylus.jd b/src/devices/accessories/stylus.jd
similarity index 100%
rename from src/accessories/stylus.jd
rename to src/devices/accessories/stylus.jd
diff --git a/src/devices/audio/implement.jd b/src/devices/audio/implement.jd
index cf68404..1e81136 100644
--- a/src/devices/audio/implement.jd
+++ b/src/devices/audio/implement.jd
@@ -119,7 +119,7 @@
LOCAL_MODULE := audio.primary.<device_name>
</pre>
-<p>Notice your library must be named <code>audio_primary.<device_name>.so</code> so
+<p>Notice your library must be named <code>audio.primary.<device_name>.so</code> so
that Android can correctly load the library. The "<code>primary</code>" portion of this filename
indicates that this shared library is for the primary audio hardware located on the device. The
module names <code>audio.a2dp.<device_name></code> and
@@ -155,7 +155,7 @@
PRODUCT_COPY_FILES := ...
PRODUCT_COPY_FILES += \
-frameworks/native/data/etc/android.android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
+frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
</pre>
</li>
diff --git a/src/devices/audio/midi.jd b/src/devices/audio/midi.jd
index b03ee80..c9ab0ff 100644
--- a/src/devices/audio/midi.jd
+++ b/src/devices/audio/midi.jd
@@ -136,6 +136,18 @@
As this transport is in draft status, it is subject to change.
</p>
+<p>
+The following changes should be applied to platform branch <code>android-6.0.0_r1</code>
+to improve stability of MIDI over BLE:
+</p>
+<ul>
+<li><a href="https://android-review.googlesource.com/#/c/179844/">179844</a></li>
+<li><a href="https://android-review.googlesource.com/#/c/179845/">179845</a></li>
+<li><a href="https://android-review.googlesource.com/#/c/179846/">179846</a></li>
+<li><a href="https://android-review.googlesource.com/#/c/179847/">179847</a></li>
+<li><a href="https://android-review.googlesource.com/#/c/179848/">179848</a></li>
+</ul>
+
<h3 id="virtual">Virtual (inter-app)</h3>
<p>
diff --git a/src/devices/devices_toc.cs b/src/devices/devices_toc.cs
index 85c5f76..b9fd45d 100644
--- a/src/devices/devices_toc.cs
+++ b/src/devices/devices_toc.cs
@@ -22,6 +22,56 @@
</a>
</div>
<ul>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>devices/accessories/index.html">
+ <span class="en">Accessories</span>
+ </a>
+ </div>
+ <ul>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>devices/accessories/audio.html">
+ <span class="en">Audio Accessories</span>
+ </a>
+ </div>
+ <ul>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>devices/accessories/headset/index.html">
+ <span class="en">Headset</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>devices/accessories/headset/specification.html">Specification</a></li>
+ <li><a href="<?cs var:toroot ?>devices/accessories/headset/requirements.html">Requirements</a></li>
+ <li><a href="<?cs var:toroot ?>devices/accessories/headset/testing.html">Testing</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>devices/accessories/custom.html">
+ <span class="en">Custom Accessories</span>
+ </a>
+ </div>
+ <ul>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>devices/accessories/protocol.html"><span class="en">AOA</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>devices/accessories/aoa2.html">AOA 2.0</a></li>
+ <li><a href="<?cs var:toroot ?>devices/accessories/aoa.html">AOA 1.0</a></li>
+ </ul>
+ </li>
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>devices/accessories/stylus.html"><span class="en">Stylus</span>
+ </a>
+ </div>
+ </ul>
+ </li>
+ </ul>
<li class="nav-section">
<div class="nav-section-header">
<a href="<?cs var:toroot ?>devices/audio/index.html">
@@ -311,101 +361,6 @@
</li>
</ul>
</li>
-
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/index.html">
- <span class="en">Security</span>
- </a>
- </div>
- <ul>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/overview/index.html">
- <span class="en">Overview</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>devices/tech/security/overview/kernel-security.html">Kernel security</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/overview/app-security.html">App security</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/overview/updates-resources.html">Updates and resources</a></li>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/enhancements/index.html">
- <span class="en">Enhancements</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements60.html">Android 6.0</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements50.html">Android 5.0</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements44.html">Android 4.4</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements43.html">Android 4.3</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements42.html">Android 4.2</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements41.html">Android 4.1</a></li>
- </ul>
- </li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/overview/acknowledgements.html">Acknowledgements</a></li>
- </ul>
- </li>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/implement.html">
- <span class="en">Implementation</span>
- </a>
- </div>
- <ul>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/authentication/index.html">
- <span class="en">Authentication</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>devices/tech/security/authentication/fingerprint-hal.html">Fingerprint HAL</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/authentication/gatekeeper.html">Gatekeeper</a></li>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/authentication/keymaster.html">
- <span class="en">Keymaster</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>devices/tech/security/authentication/km-features.html">Features</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/authentication/km-implementer-ref.html">Implementer's Reference</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/encryption/index.html">Full Disk Encryption</a></li>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/selinux/index.html">
- <span class="en">SELinux</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>devices/tech/security/selinux/concepts.html">Concepts</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/selinux/implement.html">Implementation</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/selinux/customize.html">Customization</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/selinux/validate.html">Validation</a></li>
- </ul>
- </li>
- <li class="nav-section">
- <div class="nav-section-header">
- <a href="<?cs var:toroot ?>devices/tech/security/verifiedboot/index.html">
- <span class="en">Verified Boot</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>devices/tech/security/verifiedboot/verified-boot.html">Verifying boot</a></li>
- <li><a href="<?cs var:toroot ?>devices/tech/security/verifiedboot/dm-verity.html">Implementing dm-verity</a></li>
- </ul>
- </li>
-
- </ul>
- </li>
- </ul>
-
<li class="nav-section">
<div class="nav-section-header">
<a href="<?cs var:toroot ?>devices/tech/test_infra/tradefed/index.html">
diff --git a/src/devices/input/key-layout-files.jd b/src/devices/input/key-layout-files.jd
index 2b7cd53..b7830ad 100644
--- a/src/devices/input/key-layout-files.jd
+++ b/src/devices/input/key-layout-files.jd
@@ -24,20 +24,21 @@
</div>
</div>
-<p>Key layout files (<code>.kl</code> files) are responsible for mapping Linux key codes
-and axis codes to Android key codes and axis codes and specifying associated
-policy flags.</p>
-<p>Device-specific key layout files are <em>required</em> for all internal (built-in)
-input devices that have keys, including special keys such as volume, power
-and headset media keys.</p>
-<p>Device-specific key layout files are <em>optional</em> for other input devices but
-they are <em>recommended</em> for special-purpose keyboards and joysticks.</p>
-<p>If no device-specific key layout file is available, then the system will
-choose a default instead.</p>
+<p>Key layout files (<code>.kl</code> files) map Linux key codes and axis codes
+to Android key codes and axis codes and specify associated policy flags.
+Device-specific key layout files are:</p>
+<ul>
+<li><em>Required</em> for internal (built-in) input devices with keys, including
+special keys such as volume, power, and headset media keys.</li>
+<li><em>Optional</em> for other input devices but <em>recommended</em> for
+special-purpose keyboards and joysticks.</li>
+</ul>
+<p>If no device-specific key layout file is available, the system chooses a
+default instead.</p>
+
<h2 id="location">Location</h2>
<p>Key layout files are located by USB vendor, product (and optionally version)
-id or by input device name.</p>
-<p>The following paths are consulted in order.</p>
+id or by input device name. The following paths are consulted in order:</p>
<ul>
<li><code>/system/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl</code></li>
<li><code>/system/usr/keylayout/Vendor_XXXX_Product_XXXX.kl</code></li>
@@ -49,95 +50,104 @@
<li><code>/data/system/devices/keylayout/Generic.kl</code></li>
</ul>
<p>When constructing a file path that contains the device name, all characters
-in the device name other than '0'-'9', 'a'-'z', 'A'-'Z', '-' or '<em>' are replaced by '</em>'.</p>
+in the device name other than '0'-'9', 'a'-'z',
+'A'-'Z', '-' or '_' are replaced by
+'_'.</p>
+
<h2 id="generic-key-layout-file">Generic Key Layout File</h2>
-<p>The system provides a special built-in generic key layout file called <code>Generic.kl</code>.
-This key layout is intended to support a variety of standard external
-keyboards and joysticks.</p>
-<p><em>Do not modify the generic key layout!</em></p>
+<p>The system provides a special built-in generic key layout file called
+<code>Generic.kl</code>. This key layout is intended to support a variety of
+standard external keyboards and joysticks. <strong>Do not modify the generic key
+layout!</strong></p>
+
<h2 id="syntax">Syntax</h2>
<p>A key layout file is a plain text file consisting of key or axis declarations
and flags.</p>
+
<h3 id="key-declarations">Key Declarations</h3>
-<p>Key declarations each consist of the keyword <code>key</code> followed by a Linux key code
-number and an Android key code name, or the keyword `usage` followed by a HID
-usage and an Android key code name. The HID usage is represented as a 32-bit
-integer, where the high 16-bits represent the HID usage page and the low
-16-bits represent the HID usage ID. Either of these declarations can then be
-followed by an optional set of whitespace delimited policy flags.</p>
-<pre><code>
-key 1 ESCAPE
-key 114 VOLUME_DOWN WAKE
-key 16 Q VIRTUAL WAKE
+<p>Key declarations consist of the keyword <code>key</code> followed by a Linux
+key code number and Android key code name, or the keyword usage followed by a
+HID usage and Android key code name. The HID usage is represented as a 32-bit
+integer, where the high 16-bits represent the HID usage page and the low 16-bits
+represent the HID usage ID. Either declaration can be followed by an optional
+set of whitespace-delimited policy flags.</p>
+<pre><code>key 1 ESCAPE
+key 114 VOLUME_DOWN
+key 16 Q VIRTUAL
key usage 0x0c006F BRIGHTNESS_UP
</code></pre>
<p>The following policy flags are recognized:</p>
<ul>
-<li><code>WAKE</code>: The key should wake the device when it is asleep. For historical reasons,
- this flag behaves in the same manner as <code>WAKE_DROPPED</code> below.</li>
-<li><code>WAKE_DROPPED</code>: The key should wake the device when it is asleep but the key itself
- should be dropped when the wake-up occurs. In a sense, the key's action was to
- wake the device, but the key itself is not processed.</li>
-<li><code>SHIFT</code>: The key should be interpreted as if the SHIFT key were also pressed.</li>
-<li><code>CAPS_LOCK</code>: The key should be interpreted as if the CAPS LOCK key were also pressed.</li>
-<li><code>ALT</code>: The key should be interpreted as if the ALT key were also pressed.</li>
-<li><code>ALT_GR</code>: The key should be interpreted as if the RIGHT ALT key were also pressed.</li>
-<li><code>FUNCTION</code>: The key should be interpreted as if the FUNCTION key were also pressed.</li>
-<li><code>VIRTUAL</code>: The key is a virtual soft key (capacitive button) that is adjacent to
- the main touch screen. This causes special debouncing logic to be enabled, see below.</li>
-<li><code>MENU</code>: Deprecated. Do not use.</li>
-<li><code>LAUNCHER</code>: Deprecated. Do not use.</li>
+<li><code>FUNCTION</code>: The key should be interpreted as if the FUNCTION key
+were also pressed.</li>
+<li><code>GESTURE</code>: The key generated by a user gesture, such as palming
+the touchscreen.</li>
+<li><code>VIRTUAL</code>: The key is a virtual soft key (capacitive button)
+adjacent to the main touch screen. This causes special debouncing logic to be
+enabled (see below).</li>
</ul>
+
<h3 id="axis-declarations">Axis Declarations</h3>
-<p>Axis declarations each consist of the keyword <code>axis</code> followed by a Linux axis code
-number, and qualifiers that control the behavior of the axis including at least
-one Android axis code name.</p>
+<p>Axis declarations each consist of the keyword <code>axis</code> followed by a
+Linux axis code number and qualifiers that control the behavior of the axis
+including at least one Android axis code name.</p>
+
<h4 id="basic-axes">Basic Axes</h4>
-<p>A basic axis simply maps a Linux axis code to an Android axis code name.</p>
-<p>The following declaration maps <code>ABS_X</code> (indicated by <code>0x00</code>) to <code>AXIS_X</code> (indicated by <code>X</code>).</p>
-<pre><code>axis 0x00 X
-</code></pre>
-<p>In the above example, if the value of <code>ABS_X</code> is <code>5</code> then <code>AXIS_X</code> will be set to <code>5</code>.</p>
+<p>A basic axis simply maps a Linux axis code to an Android axis code name. The
+following declaration maps <code>ABS_X</code> (indicated by <code>0x00</code>)
+to <code>AXIS_X</code> (indicated by <code>X</code>).</p>
+<pre><code>axis 0x00 X</code></pre>
+<p>In the above example, if the value of <code>ABS_X</code> is <code>5</code>
+then <code>AXIS_X</code> is set to <code>5</code>.</p>
+
<h4 id="split-axes">Split Axes</h4>
<p>A split axis maps a Linux axis code to two Android axis code names, such that
-values less than or greater than a threshold are split across two different axes when
-mapped. This mapping is useful when a single physical axis reported by the device
-encodes two different mutually exclusive logical axes.</p>
-<p>The following declaration maps values of the <code>ABS_Y</code> axis (indicated by <code>0x01</code>) to
-<code>AXIS_GAS</code> when less than <code>0x7f</code> or to <code>AXIS_BRAKE</code> when greater than <code>0x7f</code>.</p>
-<pre><code>axis 0x01 split 0x7f GAS BRAKE
-</code></pre>
-<p>In the above example, if the value of <code>ABS_Y</code> is <code>0x7d</code> then <code>AXIS_GAS</code> is set
-to <code>2</code> (<code>0x7f - 0x7d</code>) and <code>AXIS_BRAKE</code> is set to <code>0</code>. Conversely, if the value of
-<code>ABS_Y</code> is <code>0x83</code> then <code>AXIS_GAS</code> is set to <code>0</code> and <code>AXIS_BRAKE</code> is set to <code>4</code>
-(<code>0x83 - 0x7f</code>). Finally, if the value of <code>ABS_Y</code> equals the split value of <code>0x7f</code>
-then both <code>AXIS_GAS</code> and <code>AXIS_BRAKE</code> are set to <code>0</code>.</p>
+values less than or greater than a threshold are split across two different axes
+when mapped. This mapping is useful when a single physical axis reported by the
+device encodes two different mutually exclusive logical axes.</p>
+<p>The following declaration maps values of the <code>ABS_Y</code> axis
+(indicated by <code>0x01</code>) to <code>AXIS_GAS</code> when less than
+<code>0x7f</code> or to <code>AXIS_BRAKE</code> when greater than
+<code>0x7f</code>.</p>
+<pre><code>axis 0x01 split 0x7f GAS BRAKE</code></pre>
+<p>In the above example, if the value of <code>ABS_Y</code> is <code>0x7d</code>
+then <code>AXIS_GAS</code> is set to <code>2</code> (<code>0x7f - 0x7d</code>)
+and <code>AXIS_BRAKE</code> is set to <code>0</code>. Conversely, if the value
+of <code>ABS_Y</code> is <code>0x83</code> then <code>AXIS_GAS</code> is set to
+<code>0</code> and <code>AXIS_BRAKE</code> is set to <code>4</code>
+(<code>0x83 - 0x7f</code>). Finally, if the value of <code>ABS_Y</code> equals
+the split value of <code>0x7f</code> then both <code>AXIS_GAS</code> and
+<code>AXIS_BRAKE</code> are set to <code>0</code>.</p>
+
<h4 id="inverted-axes">Inverted Axes</h4>
-<p>An inverted axis inverts the sign of the axis value.</p>
-<p>The following declaration maps <code>ABS_RZ</code> (indicated by <code>0x05</code>) to <code>AXIS_BRAKE</code>
-(indicated by <code>BRAKE</code>), and inverts the output by negating it.</p>
-<pre><code>axis 0x05 invert BRAKE
-</code></pre>
-<p>In the above example, if the value of <code>ABS_RZ</code> is <code>2</code> then
-<code>AXIS_BRAKE</code> is set to <code>-2</code>.</p>
+<p>An inverted axis inverts the sign of the axis value. The following
+declaration maps <code>ABS_RZ</code> (indicated by <code>0x05</code>) to
+<code>AXIS_BRAKE</code> (indicated by <code>BRAKE</code>), and inverts the
+output by negating it.</p>
+<pre><code>axis 0x05 invert BRAKE</code></pre>
+<p>In the above example, if the value of <code>ABS_RZ</code> is <code>2</code>
+then <code>AXIS_BRAKE</code> is set to <code>-2</code>.</p>
+
<h4 id="center-flat-position-option">Center Flat Position Option</h4>
-<p>The Linux input protocol provides a way for input device drivers to specify the
-center flat position of joystick axes but not all of them do and some of them
-provide incorrect values.</p>
<p>The center flat position is the neutral position of the axis, such as when
a directional pad is in the very middle of its range and the user is not
touching it.</p>
-<p>To resolve this issue, an axis declaration may be followed by a <code>flat</code>
-option that specifies the value of the center flat position for the axis.</p>
-<pre><code>axis 0x03 Z flat 4096
-</code></pre>
-<p>In the above example, the center flat position is set to <code>4096</code>.</p>
+<p>The Linux input protocol provides a way for input device drivers to specify
+the center flat position of joystick axes but not all of them do and some of
+them provide incorrect values. To resolve this issue, an axis declaration may be
+followed by a <code>flat</code> option that specifies the value of the center
+flat position for the axis.</p>
+<pre><code>axis 0x03 Z flat 4096</code></pre>
+<p>In the above example, the center flat position is set to <code>4096</code>.
+</p>
+
<h3 id="comments">Comments</h3>
-<p>Comment lines begin with '#' and continue to the end of the line. Like this:</p>
-<pre><code># A comment!
-</code></pre>
+<p>Comment lines begin with # and continue to the end of the line:</p>
+<pre><code># A comment!</code></pre>
<p>Blank lines are ignored.</p>
+
<h3 id="examples">Examples</h3>
+
<h4 id="keyboard">Keyboard</h4>
<pre><code># This is an example of a key layout file for a keyboard.
@@ -158,15 +168,17 @@
# etc...
</code></pre>
+
<h4 id="system-controls">System Controls</h4>
-<pre><code># This is an example of a key layout file for basic system controls, such as
-# volume and power keys which are typically implemented as GPIO pins that
+<pre><code># This is an example of a key layout file for basic system controls,
+# such as volume and power keys which are typically implemented as GPIO pins
# the device decodes into key presses.
-key 114 VOLUME_DOWN WAKE
-key 115 VOLUME_UP WAKE
-key 116 POWER WAKE
+key 114 VOLUME_DOWN
+key 115 VOLUME_UP
+key 116 POWER
</code></pre>
+
<h4 id="capacitive-buttons">Capacitive Buttons</h4>
<pre><code># This is an example of a key layout file for a touch device with capacitive buttons.
@@ -175,6 +187,7 @@
key 158 BACK VIRTUAL
key 217 SEARCH VIRTUAL
</code></pre>
+
<h4 id="headset-jack-media-controls">Headset Jack Media Controls</h4>
<pre><code># This is an example of a key layout file for headset mounted media controls.
# A typical headset jack interface might have special control wires or detect known
@@ -182,10 +195,11 @@
# This file assumes that the driver decodes these signals and reports media
# controls as key presses.
-key 163 MEDIA_NEXT WAKE
-key 165 MEDIA_PREVIOUS WAKE
-key 226 HEADSETHOOK WAKE
+key 163 MEDIA_NEXT
+key 165 MEDIA_PREVIOUS
+key 226 HEADSETHOOK
</code></pre>
+
<h4 id="joystick">Joystick</h4>
<pre><code># This is an example of a key layout file for a joystick.
@@ -203,9 +217,9 @@
key 318 BUTTON_THUMBR
# Left and right stick.
-# The reported value for flat is 128 out of a range from -32767 to 32768, which is absurd.
-# This confuses applications that rely on the flat value because the joystick actually
-# settles in a flat range of +/- 4096 or so. We override it here.
+# The reported value for flat is 128 in a range of -32767 to 32768, which is absurd.
+# This confuses applications that rely on the flat value because the joystick
+# actually settles in a flat range of +/- 4096 or so. We override it here.
axis 0x00 X flat 4096
axis 0x01 Y flat 4096
axis 0x03 Z flat 4096
@@ -219,74 +233,61 @@
axis 0x10 HAT_X
axis 0x11 HAT_Y
</code></pre>
-<h2 id="wake-keys">Wake Keys</h2>
-<p>Wake keys are special keys that wake the device from sleep, such as the power key.</p>
-<p>By default, for internal keyboard devices, no key is a wake key. For external
-keyboard device, all keys are wake keys.</p>
-<p>To make a key be a wake key, set the <code>WAKE_DROPPED</code> flag in the key layout file
-for the keyboard device.</p>
-<p>Note that the <code>WindowManagerPolicy</code> component is responsible for implementing wake
-key behavior. Moreover, the key guard may prevent certain keys from functioning
-as wake keys. A good place to start understanding wake key behavior is
-<code>PhoneWindowManager.interceptKeyBeforeQueueing</code>.</p>
+
<h2 id="virtual-soft-keys">Virtual Soft Keys</h2>
-<p>The input system provides special features for implementing virtual soft keys.</p>
-<p>There are three cases:</p>
+<p>The input system provides special features for implementing virtual soft keys
+in the following use cases:</p>
<ol>
-<li>
-<p>If the virtual soft keys are displayed graphically on the screen, as on the
- Galaxy Nexus, then they are implemented by the Navigation Bar component in
- the System UI package.</p>
-<p>Because graphical virtual soft keys are implemented at a high layer in the
-system, key layout files are not involved and the following information does
-not apply.</p>
-</li>
-<li>
-<p>If the virtual soft keys are implemented as an extended touchable region
- that is part of the main touch screen, as on the Nexus One, then the
- input system uses a virtual key map file to translate X / Y touch coordinates
- into Linux key codes, then uses the key layout file to translate
- Linux key codes into Android key codes.</p>
-<p>Refer to the section on <a href="touch-devices.html">Touch Devices</a>
-for more details about virtual key map files.</p>
-<p>The key layout file for the touch screen input device must specify the
-appropriate key mapping and include the <code>VIRTUAL</code> flag for each key.</p>
-</li>
-<li>
-<p>If the virtual soft keys are implemented as capacitive buttons that are
- separate from the main touch screen, as on the Nexus S, then the kernel
- device driver or firmware is responsible for translating touches into
- Linux key codes which the input system then translates into Android
- key codes using the key layout file.</p>
-<p>The key layout file for the capacitive button input device must specify the
-appropriate key mapping and include the <code>VIRTUAL</code> flag for each key.</p>
-</li>
+<li>If the virtual soft keys are displayed graphically on the screen (such as on
+the Galaxy Nexus), they are implemented by the Navigation Bar component in the
+System UI package. Because graphical virtual soft keys are implemented at a high
+layer in the system, key layout files are not involved and the following
+information does not apply.</li>
+<li>If the virtual soft keys are implemented as an extended touchable region
+that is part of the main touch screen (such as on the Nexus One), the input
+system uses a virtual key map file to translate X/Y touch coordinates into
+Linux key codes, then uses the key layout file to translate Linux key codes into
+Android key codes (for details on virtual key map files, see
+<a href="touch-devices.html">Touch Devices</a>). The key layout file for the
+touch screen input device must specify the appropriate key mapping and include
+the <code>VIRTUAL</code> flag for each key.</li>
+<li>If the virtual soft keys are implemented as capacitive buttons separate from
+the main touch screen (such as on the Nexus S), the kernel device driver or
+firmware is responsible for translating touches into Linux key codes which the
+input system then translates into Android key codes using the key layout file.
+The key layout file for the capacitive button input device must specify the
+appropriate key mapping and include the <code>VIRTUAL</code> flag for each key.</li>
</ol>
-<p>When virtual soft key are located within or in close physical proximity of the
-touch screen, it is easy for the user to accidentally press one of the buttons
-when touching near the bottom of the screen or when sliding a finger from top
-to bottom or from bottom to top on the screen.</p>
-<p>To prevent this from happening, the input system applies a little debouncing
-such that virtual soft key presses are ignored for a brief period of time
-after the most recent touch on the touch screen. The delay is called the
-virtual key quiet time.</p>
-<p>To enable virtual soft key debouncing, we must do two things.</p>
-<p>First, we provide a key layout file for the touch screen or capacitive button
-input device with the <code>VIRTUAL</code> flag set for each key.</p>
+<p>When virtual soft keys are located within or in close physical proximity of
+the touch screen, it is easy for users to accidentally press a button when
+touching near the bottom of the screen or when sliding a finger top-to-bottom or
+bottom-to-top on the screen. To prevent this, the input system applies a little
+debouncing such that virtual soft key presses are ignored for a brief period of
+time after the most recent touch on the touch screen (this delay is called the
+<em>virtual key quiet time</em>).</p>
+<p>To enable virtual soft key debouncing:</p>
+<ol>
+<li>Provide a key layout file for the touch screen or capacitive button
+input device with the <code>VIRTUAL</code> flag set for each key.
<pre><code>key 139 MENU VIRTUAL
key 102 HOME VIRTUAL
key 158 BACK VIRTUAL
key 217 SEARCH VIRTUAL
</code></pre>
-<p>Then, we set the value of the virtual key quiet time in a resource overlay
-for the framework <code>config.xml</code> resource.</p>
-<pre><code><!-- Specifies the amount of time to disable virtual keys after the screen is touched
- in order to filter out accidental virtual key presses due to swiping gestures
- or taps near the edge of the display. May be 0 to disable the feature.
- It is recommended that this value be no more than 250 ms.
- This feature should be disabled for most devices. -->
+</li>
+<li>Set the value of the virtual key quiet time in a resource overlay for the
+framework <code>config.xml</code> resource.
+<pre><code><!-- Specifies the amount of time to disable virtual keys after the screen
+is touched to filter out accidental virtual key presses due to swiping gestures
+or taps near the edge of the display. May be 0 to disable the feature.
+It is recommended that this value be no more than 250 ms.
+This feature should be disabled for most devices. -->
+
<integer name="config_virtualKeyQuietTimeMillis">250</integer>
</code></pre>
+</li>
+</ol>
+
<h2 id="validation">Validation</h2>
-<p>Make sure to validate your key layout files using the
-<a href="validate-keymaps.html">Validate Keymaps</a> tool.</p>
+<p>You should validate your key layout files using the
+<a href="validate-keymaps.html">Validate Keymaps</a> tool.</p>
\ No newline at end of file
diff --git a/src/devices/media/oem.jd b/src/devices/media/oem.jd
index a271ecd..1d47f4d 100644
--- a/src/devices/media/oem.jd
+++ b/src/devices/media/oem.jd
@@ -114,8 +114,9 @@
<li>Run the tests first using cts-tradefed. Given the
variability of Android performance, it is recommended the tests are run
multiple times to get more accurate minimum and maximum values.
- <li>Use the provided <code>get_achievable_rates.py</code> script to
-generate the XML file.
+ <li>Use the provided <a
+href="https://android.googlesource.com/platform/cts/+/marshmallow-cts-dev/tools/cts-media/get_achievable_rates.py">get_achievable_rates.py</a>
+script to generate the XML file.
<li>Place the XML file at: <code>/etc/media_codecs_performance.xml</code><br>
This is usually done by placing the XML file in the device project
(device/<em><vendor></em>/<em><product></em>) and adding a
diff --git a/src/devices/tech/admin/index.jd b/src/devices/tech/admin/index.jd
index 7798355..e26135c 100644
--- a/src/devices/tech/admin/index.jd
+++ b/src/devices/tech/admin/index.jd
@@ -31,11 +31,11 @@
users</a>, <a href="managed-profiles.html">managed profiles</a>, and enterprise
mobility management (EMM) applications, as well as enhancements to default
<a
-href="{@docRoot}devices/tech/security/encryption/index.html">encryption</a>,
+href="{@docRoot}security/encryption/index.html">encryption</a>,
<a
-href="{@docRoot}devices/tech/security/verifiedboot/index.html">verified
+href="{@docRoot}security/verifiedboot/index.html">verified
boot</a>, and <a
-href="{@docRoot}devices/tech/security/selinux/index.html">SELinux</a>.</p>
+href="{@docRoot}security/selinux/index.html">SELinux</a>.</p>
<p>With these enhancements, either users or their IT departments may create
managed profiles that separate corporate employer data from personal user
diff --git a/src/devices/tech/index.jd b/src/devices/tech/index.jd
index 9b95216..022ba6c 100644
--- a/src/devices/tech/index.jd
+++ b/src/devices/tech/index.jd
@@ -89,12 +89,6 @@
<p><a href="{@docRoot}devices/tech/power/index.html">» Power Information</a>
</p>
-<h2 id="security-technical-information">Security</h2>
-<p>Android security comes with a variety of measures, including an application
-sandbox, SELinux, dm-verity, encryption, and more.</p>
-<p><a href="{@docRoot}devices/tech/security/index.html">» Security
-Information</a></p>
-
<h2 id="tradefed-test-infrastructure">Trade Federation Testing Infrastructure
</h2>
<p>Trade Federation is a continuous test framework for running tests on
diff --git a/src/devices/tech/ota/block.jd b/src/devices/tech/ota/block.jd
index 6c4f93d..7fa2b31 100755
--- a/src/devices/tech/ota/block.jd
+++ b/src/devices/tech/ota/block.jd
@@ -43,7 +43,7 @@
<p>Because block OTA ensures that each device uses the same partition, it
enables the use of dm-verity to cryptographically sign the system partition.
For details on dm-verity, see
-<a href="{@docRoot}devices/tech/security/verifiedboot/index.html">Verified Boot</a>.
+<a href="{@docRoot}security/verifiedboot/index.html">Verified Boot</a>.
</p>
<p class="note"><strong>Note:</strong> You must have a working block OTA
diff --git a/src/index.jd b/src/index.jd
index 02f6a7d..079c677 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -43,6 +43,14 @@
<div class="landing-docs">
<div class="col-8">
<h3>What's New</h3>
+<a href="{@docRoot}security/index.html">
+ <h4>Security Replaces Accessories in Navigation</h4></a>
+ <p>The <strong><a
+ href="{@docRoot}security/index.html">Security</a></strong> section has replaced the <strong><a
+ href="{@docRoot}devices/accessories/index.html">Accessories</a></strong> section
+ in top navigation with a more prominent directory structure to
+ highlight the importance of security measures undertaken in Android.</p>
+
<a href="{@docRoot}compatibility/index.html">
<h4>6.0 Compatibility Definition Document</h4></a>
<p>The <strong><a
@@ -82,11 +90,11 @@
href="{@docRoot}reference/packages.html">Trade Federation Testing
Suite</a></strong> reference files have been updated for Android 6.0.</p>
-<a href="{@docRoot}devices/tech/security/enhancements/index.html">
+<a href="{@docRoot}security/enhancements/index.html">
<h4>Android 6.0 Security Enhancements</h4></a>
<p>The Android security team lists the latest measures undertaken to
strengthen the operating system in the new <strong><a
- href="{@docRoot}devices/tech/security/enhancements/enhancements60.html">Security
+ href="{@docRoot}security/enhancements/enhancements60.html">Security
Enhancements in Android 6.0</a></strong>.</p>
<a href="{@docRoot}devices/tech/power/index.html">
@@ -96,22 +104,6 @@
Management</a></strong> while the remaining <strong><a
href="{@docRoot}devices/tech/power/index.html">Power</a></strong> section has
been revised.</p>
-
-<a href="{@docRoot}devices/tech/security/authentication/index.html">
- <h4>Authentication</h4></a>
- <p>An entirely new <strong><a
- href="{@docRoot}devices/tech/security/authentication/index.html">Authentication</a></strong>
- section describes the <strong><a
- href="{@docRoot}devices/tech/security/authentication/fingerprint-hal.html">Fingerprint</a></strong>,
- <strong><a
- href="{@docRoot}devices/tech/security/authentication/gatekeeper.html">Gatekeeper</a></strong>,
- and <strong><a
- href="{@docRoot}devices/tech/security/authentication/keymaster.html">Keymaster</a></strong>
- interfaces in detail, including a list of <strong><a
- href="{@docRoot}devices/tech/security/authentication/km-features.html">Keymaster
- features</a></strong> and an <strong><a
- href="{@docRoot}devices/tech/security/authentication/km-implementer-ref.html">implementer's
- reference</a></strong>.</p>
</div>
<div class="col-8">
@@ -131,9 +123,11 @@
<p>Port the latest Android platform and
create compelling devices that your customers want.</p>
- <a href="{@docRoot}accessories/index.html">
- <h4>Build Accessories</h4></a>
- <p>Sometimes, a device can't do it all. Tap into Android's open accessory standard and build accessories to complement the wide variety of Android-powered devices.</p>
+ <a href="{@docRoot}security/index.html">
+ <h4>Make Secure</h4></a>
+ <p>Follow these examples and instructions to harden your Android
+ devices against malicious attacks. Find out how the Android security program
+ works and learn to implement the latest features.</p>
<a href="{@docRoot}compatibility/index.html">
<h4>Get Compatible</h4></a>
diff --git a/src/devices/tech/security/authentication/fingerprint-hal.jd b/src/security/authentication/fingerprint-hal.jd
similarity index 100%
rename from src/devices/tech/security/authentication/fingerprint-hal.jd
rename to src/security/authentication/fingerprint-hal.jd
diff --git a/src/devices/tech/security/authentication/gatekeeper.jd b/src/security/authentication/gatekeeper.jd
similarity index 100%
rename from src/devices/tech/security/authentication/gatekeeper.jd
rename to src/security/authentication/gatekeeper.jd
diff --git a/src/devices/tech/security/authentication/index.jd b/src/security/authentication/index.jd
similarity index 100%
rename from src/devices/tech/security/authentication/index.jd
rename to src/security/authentication/index.jd
diff --git a/src/devices/tech/security/authentication/keymaster.jd b/src/security/authentication/keymaster.jd
similarity index 100%
rename from src/devices/tech/security/authentication/keymaster.jd
rename to src/security/authentication/keymaster.jd
diff --git a/src/devices/tech/security/authentication/km-features.jd b/src/security/authentication/km-features.jd
similarity index 100%
rename from src/devices/tech/security/authentication/km-features.jd
rename to src/security/authentication/km-features.jd
diff --git a/src/devices/tech/security/authentication/km-implementer-ref.jd b/src/security/authentication/km-implementer-ref.jd
similarity index 100%
rename from src/devices/tech/security/authentication/km-implementer-ref.jd
rename to src/security/authentication/km-implementer-ref.jd
diff --git a/src/devices/tech/security/encryption/index.jd b/src/security/encryption/index.jd
similarity index 100%
rename from src/devices/tech/security/encryption/index.jd
rename to src/security/encryption/index.jd
diff --git a/src/devices/tech/security/enhancements/enhancements41.jd b/src/security/enhancements/enhancements41.jd
similarity index 96%
rename from src/devices/tech/security/enhancements/enhancements41.jd
rename to src/security/enhancements/enhancements41.jd
index 60ae754..2881c08 100644
--- a/src/devices/tech/security/enhancements/enhancements41.jd
+++ b/src/security/enhancements/enhancements41.jd
@@ -2,7 +2,7 @@
@jd:body
<p>
-Android provides a multi-layered security model described in the <a href="{@docRoot}devices/tech/security/index.html">Android
+Android provides a multi-layered security model described in the <a href="{@docRoot}security/index.html">Android
Security Overview</a>. Each update to Android includes dozens of
security enhancements to protect users. The following are some of the security
enhancements introduced in Android versions 1.5 through 4.1:</p>
diff --git a/src/devices/tech/security/enhancements/enhancements42.jd b/src/security/enhancements/enhancements42.jd
similarity index 97%
rename from src/devices/tech/security/enhancements/enhancements42.jd
rename to src/security/enhancements/enhancements42.jd
index 4044a1e..d6e48d5 100644
--- a/src/devices/tech/security/enhancements/enhancements42.jd
+++ b/src/security/enhancements/enhancements42.jd
@@ -2,7 +2,7 @@
@jd:body
<p>
-Android provides a multi-layered security model described in the <a href="{@docRoot}devices/tech/security/index.html">Android
+Android provides a multi-layered security model described in the <a href="{@docRoot}security/index.html">Android
Security Overview</a>. Each update to Android includes dozens of
security enhancements to protect users. The following are some of the security
enhancements introduced in Android 4.2:</p>
@@ -57,4 +57,4 @@
Android Open Source Project. To improve security, some devices with earlier
versions of Android may also include these fixes.</li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/devices/tech/security/enhancements/enhancements43.jd b/src/security/enhancements/enhancements43.jd
similarity index 100%
rename from src/devices/tech/security/enhancements/enhancements43.jd
rename to src/security/enhancements/enhancements43.jd
diff --git a/src/devices/tech/security/enhancements/enhancements44.jd b/src/security/enhancements/enhancements44.jd
similarity index 100%
rename from src/devices/tech/security/enhancements/enhancements44.jd
rename to src/security/enhancements/enhancements44.jd
diff --git a/src/devices/tech/security/enhancements/enhancements50.jd b/src/security/enhancements/enhancements50.jd
similarity index 100%
rename from src/devices/tech/security/enhancements/enhancements50.jd
rename to src/security/enhancements/enhancements50.jd
diff --git a/src/devices/tech/security/enhancements/enhancements60.jd b/src/security/enhancements/enhancements60.jd
similarity index 100%
rename from src/devices/tech/security/enhancements/enhancements60.jd
rename to src/security/enhancements/enhancements60.jd
diff --git a/src/devices/tech/security/enhancements/index.jd b/src/security/enhancements/index.jd
similarity index 100%
rename from src/devices/tech/security/enhancements/index.jd
rename to src/security/enhancements/index.jd
diff --git a/src/devices/tech/security/images/access-to-keymaster.png b/src/security/images/access-to-keymaster.png
similarity index 100%
rename from src/devices/tech/security/images/access-to-keymaster.png
rename to src/security/images/access-to-keymaster.png
Binary files differ
diff --git a/src/devices/tech/security/images/android_software_stack.png b/src/security/images/android_software_stack.png
similarity index 100%
rename from src/devices/tech/security/images/android_software_stack.png
rename to src/security/images/android_software_stack.png
Binary files differ
diff --git a/src/devices/tech/security/images/authentication-flow.png b/src/security/images/authentication-flow.png
similarity index 100%
rename from src/devices/tech/security/images/authentication-flow.png
rename to src/security/images/authentication-flow.png
Binary files differ
diff --git a/src/devices/tech/security/images/boot_orange.png b/src/security/images/boot_orange.png
similarity index 100%
rename from src/devices/tech/security/images/boot_orange.png
rename to src/security/images/boot_orange.png
Binary files differ
diff --git a/src/devices/tech/security/images/boot_red.png b/src/security/images/boot_red.png
similarity index 100%
rename from src/devices/tech/security/images/boot_red.png
rename to src/security/images/boot_red.png
Binary files differ
diff --git a/src/devices/tech/security/images/boot_yellow1.png b/src/security/images/boot_yellow1.png
similarity index 100%
rename from src/devices/tech/security/images/boot_yellow1.png
rename to src/security/images/boot_yellow1.png
Binary files differ
diff --git a/src/devices/tech/security/images/boot_yellow2.png b/src/security/images/boot_yellow2.png
similarity index 100%
rename from src/devices/tech/security/images/boot_yellow2.png
rename to src/security/images/boot_yellow2.png
Binary files differ
diff --git a/src/devices/tech/security/images/dm-verity-hash-table.png b/src/security/images/dm-verity-hash-table.png
similarity index 100%
rename from src/devices/tech/security/images/dm-verity-hash-table.png
rename to src/security/images/dm-verity-hash-table.png
Binary files differ
diff --git a/src/devices/tech/security/images/dm-verity_mgmt.png b/src/security/images/dm-verity_mgmt.png
similarity index 100%
rename from src/devices/tech/security/images/dm-verity_mgmt.png
rename to src/security/images/dm-verity_mgmt.png
Binary files differ
diff --git a/src/devices/tech/security/images/fingerprint-daemon.png b/src/security/images/fingerprint-daemon.png
similarity index 100%
rename from src/devices/tech/security/images/fingerprint-daemon.png
rename to src/security/images/fingerprint-daemon.png
Binary files differ
diff --git a/src/devices/tech/security/images/fingerprint-data-flow.png b/src/security/images/fingerprint-data-flow.png
similarity index 100%
rename from src/devices/tech/security/images/fingerprint-data-flow.png
rename to src/security/images/fingerprint-data-flow.png
Binary files differ
diff --git a/src/devices/tech/security/images/gatekeeper-flow.png b/src/security/images/gatekeeper-flow.png
similarity index 100%
rename from src/devices/tech/security/images/gatekeeper-flow.png
rename to src/security/images/gatekeeper-flow.png
Binary files differ
diff --git a/src/devices/tech/security/images/image00.png b/src/security/images/image00.png
similarity index 100%
rename from src/devices/tech/security/images/image00.png
rename to src/security/images/image00.png
Binary files differ
diff --git a/src/devices/tech/security/images/image02.png b/src/security/images/image02.png
similarity index 100%
rename from src/devices/tech/security/images/image02.png
rename to src/security/images/image02.png
Binary files differ
diff --git a/src/devices/tech/security/images/image03.png b/src/security/images/image03.png
similarity index 100%
rename from src/devices/tech/security/images/image03.png
rename to src/security/images/image03.png
Binary files differ
diff --git a/src/devices/tech/security/images/image_gmail_installed.png b/src/security/images/image_gmail_installed.png
similarity index 100%
rename from src/devices/tech/security/images/image_gmail_installed.png
rename to src/security/images/image_gmail_installed.png
Binary files differ
diff --git a/src/devices/tech/security/images/image_install.png b/src/security/images/image_install.png
similarity index 100%
rename from src/devices/tech/security/images/image_install.png
rename to src/security/images/image_install.png
Binary files differ
diff --git a/src/devices/tech/security/images/patchreward.png b/src/security/images/patchreward.png
similarity index 100%
rename from src/devices/tech/security/images/patchreward.png
rename to src/security/images/patchreward.png
Binary files differ
diff --git a/src/devices/tech/security/images/permissions_check.png b/src/security/images/permissions_check.png
similarity index 100%
rename from src/devices/tech/security/images/permissions_check.png
rename to src/security/images/permissions_check.png
Binary files differ
diff --git a/src/devices/tech/security/images/tiny-robot.png b/src/security/images/tiny-robot.png
similarity index 100%
rename from src/devices/tech/security/images/tiny-robot.png
rename to src/security/images/tiny-robot.png
Binary files differ
diff --git a/src/devices/tech/security/images/verified_boot.png b/src/security/images/verified_boot.png
similarity index 100%
rename from src/devices/tech/security/images/verified_boot.png
rename to src/security/images/verified_boot.png
Binary files differ
diff --git a/src/devices/tech/security/implement.jd b/src/security/implement.jd
similarity index 100%
rename from src/devices/tech/security/implement.jd
rename to src/security/implement.jd
diff --git a/src/devices/tech/security/index.jd b/src/security/index.jd
similarity index 98%
rename from src/devices/tech/security/index.jd
rename to src/security/index.jd
index cb5c881..fb3db45 100644
--- a/src/devices/tech/security/index.jd
+++ b/src/security/index.jd
@@ -34,7 +34,7 @@
security that provides the flexibility required for an open platform, while
providing protection for all users of the platform. For information about
reporting security issues and the update process,
- see <a href="{@docRoot}devices/tech/security/overview/updates-resources.html">Security Updates and Resources</a>.</p>
+ see <a href="overview/updates-resources.html">Security Updates and Resources</a>.</p>
<p>Android was designed with developers in mind. Security controls were designed
to reduce the burden on developers. Security-savvy developers can easily work
with and rely on flexible security controls. Developers less familiar with
diff --git a/src/devices/tech/security/overview/acknowledgements.jd b/src/security/overview/acknowledgements.jd
similarity index 100%
rename from src/devices/tech/security/overview/acknowledgements.jd
rename to src/security/overview/acknowledgements.jd
diff --git a/src/devices/tech/security/overview/app-security.jd b/src/security/overview/app-security.jd
similarity index 100%
rename from src/devices/tech/security/overview/app-security.jd
rename to src/security/overview/app-security.jd
diff --git a/src/devices/tech/security/overview/index.jd b/src/security/overview/index.jd
similarity index 100%
rename from src/devices/tech/security/overview/index.jd
rename to src/security/overview/index.jd
diff --git a/src/devices/tech/security/overview/kernel-security.jd b/src/security/overview/kernel-security.jd
similarity index 98%
rename from src/devices/tech/security/overview/kernel-security.jd
rename to src/security/overview/kernel-security.jd
index 12ae1bb..326ac18 100644
--- a/src/devices/tech/security/overview/kernel-security.jd
+++ b/src/security/overview/kernel-security.jd
@@ -107,7 +107,7 @@
<p>Android uses Security-Enhanced
Linux (SELinux) to apply access control policies and establish an environment of
mandatory access control (mac). See <a
-href="{@docRoot}devices/tech/security/selinux/index.html">Validating
+href="{@docRoot}security/selinux/index.html">Validating
Security-Enhanced Linux in
Android</a> for details.</p>
<h3 id="crypto">Cryptography</h3>
@@ -166,7 +166,7 @@
administrator and enforced by the operating system. Filesystem encryption
requires the use of a user password, pattern-based screen lock is not supported.</p>
<p>More details on implementation of filesystem encryption are available at <a
-href="/devices/tech/security/encryption/index.html">Encryption</a>.</p>
+href="{@docRoot}security/encryption/index.html">Encryption</a>.</p>
<h3 id="password-protection">Password Protection</h3>
<p>Android can be configured to verify a user-supplied password prior to providing
access to a device. In addition to preventing unauthorized use of the device,
diff --git a/src/devices/tech/security/overview/updates-resources.jd b/src/security/overview/updates-resources.jd
similarity index 97%
rename from src/devices/tech/security/overview/updates-resources.jd
rename to src/security/overview/updates-resources.jd
index c4561f4..8c8d047 100644
--- a/src/devices/tech/security/overview/updates-resources.jd
+++ b/src/security/overview/updates-resources.jd
@@ -174,7 +174,7 @@
<p>Whether a vulnerability that compromises the kernel is considered "high" or
"critical" depends on the device and the version of Android. On devices with a
TEE (or TrustZone) and <a
-href="http://source.android.com/devices/tech/security/verifiedboot/index.html">verified
+href="{@docRoot}security/verifiedboot/index.html">verified
boot</a>, a kernel compromise is considered "high" because exploiting it won't
allow permanently affecting the operation of the device unless a vulnerability is
discovered in the TEE or verified boot implementation. In general, if the
@@ -251,7 +251,7 @@
<p>Security information exists throughout the Android Open Source and Developer
sites. Good places to start:<br>
-<a href="http://source.android.com/devices/tech/security/index.html">http://source.android.com/devices/tech/security/index.html</a><br>
+<a href="http://source.android.com/security/index.html">{@docRoot}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>
<p>Community resource for discussion about Android security: <a
diff --git a/src/security/security_toc.cs b/src/security/security_toc.cs
new file mode 100644
index 0000000..467e35d
--- /dev/null
+++ b/src/security/security_toc.cs
@@ -0,0 +1,113 @@
+<!--
+ Copyright 2015 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.
+-->
+<?cs # Table of contents for security?>
+<ul id="nav">
+ <!-- Security -->
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/index.html">
+ <span class="en">Security</span>
+ </a>
+ </div>
+ <ul>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/overview/index.html">
+ <span class="en">Overview</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>security/overview/kernel-security.html">Kernel security</a></li>
+ <li><a href="<?cs var:toroot ?>security/overview/app-security.html">App security</a></li>
+ <li><a href="<?cs var:toroot ?>security/overview/updates-resources.html">Updates and resources</a></li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/enhancements/index.html">
+ <span class="en">Enhancements</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>security/enhancements/enhancements60.html">Android 6.0</a></li>
+ <li><a href="<?cs var:toroot ?>security/enhancements/enhancements50.html">Android 5.0</a></li>
+ <li><a href="<?cs var:toroot ?>security/enhancements/enhancements44.html">Android 4.4</a></li>
+ <li><a href="<?cs var:toroot ?>security/enhancements/enhancements43.html">Android 4.3</a></li>
+ <li><a href="<?cs var:toroot ?>security/enhancements/enhancements42.html">Android 4.2</a></li>
+ <li><a href="<?cs var:toroot ?>security/enhancements/enhancements41.html">Android 4.1</a></li>
+ </ul>
+ </li>
+ <li><a href="<?cs var:toroot ?>security/overview/acknowledgements.html">Acknowledgements</a></li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/implement.html">
+ <span class="en">Implementation</span>
+ </a>
+ </div>
+ <ul>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/authentication/index.html">
+ <span class="en">Authentication</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>security/authentication/fingerprint-hal.html">Fingerprint HAL</a></li>
+ <li><a href="<?cs var:toroot ?>security/authentication/gatekeeper.html">Gatekeeper</a></li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/authentication/keymaster.html">
+ <span class="en">Keymaster</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>security/authentication/km-features.html">Features</a></li>
+ <li><a href="<?cs var:toroot ?>security/authentication/km-implementer-ref.html">Implementer's Reference</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="<?cs var:toroot ?>security/encryption/index.html">Full Disk Encryption</a></li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/selinux/index.html">
+ <span class="en">SELinux</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>security/selinux/concepts.html">Concepts</a></li>
+ <li><a href="<?cs var:toroot ?>security/selinux/implement.html">Implementation</a></li>
+ <li><a href="<?cs var:toroot ?>security/selinux/customize.html">Customization</a></li>
+ <li><a href="<?cs var:toroot ?>security/selinux/validate.html">Validation</a></li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>security/verifiedboot/index.html">
+ <span class="en">Verified Boot</span>
+ </a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>security/verifiedboot/verified-boot.html">Verifying boot</a></li>
+ <li><a href="<?cs var:toroot ?>security/verifiedboot/dm-verity.html">Implementing dm-verity</a></li>
+ </ul>
+ </li>
+
+ </ul>
+ </li>
+ </ul>
+ <!-- End Security -->
+</ul>
diff --git a/src/devices/tech/security/selinux/concepts.jd b/src/security/selinux/concepts.jd
similarity index 100%
rename from src/devices/tech/security/selinux/concepts.jd
rename to src/security/selinux/concepts.jd
diff --git a/src/devices/tech/security/selinux/customize.jd b/src/security/selinux/customize.jd
similarity index 100%
rename from src/devices/tech/security/selinux/customize.jd
rename to src/security/selinux/customize.jd
diff --git a/src/devices/tech/security/selinux/implement.jd b/src/security/selinux/implement.jd
similarity index 100%
rename from src/devices/tech/security/selinux/implement.jd
rename to src/security/selinux/implement.jd
diff --git a/src/devices/tech/security/selinux/index.jd b/src/security/selinux/index.jd
similarity index 100%
rename from src/devices/tech/security/selinux/index.jd
rename to src/security/selinux/index.jd
diff --git a/src/devices/tech/security/selinux/validate.jd b/src/security/selinux/validate.jd
similarity index 100%
rename from src/devices/tech/security/selinux/validate.jd
rename to src/security/selinux/validate.jd
diff --git a/src/devices/tech/security/verifiedboot/dm-verity.jd b/src/security/verifiedboot/dm-verity.jd
similarity index 100%
rename from src/devices/tech/security/verifiedboot/dm-verity.jd
rename to src/security/verifiedboot/dm-verity.jd
diff --git a/src/devices/tech/security/verifiedboot/index.jd b/src/security/verifiedboot/index.jd
similarity index 100%
rename from src/devices/tech/security/verifiedboot/index.jd
rename to src/security/verifiedboot/index.jd
diff --git a/src/devices/tech/security/verifiedboot/verified-boot.jd b/src/security/verifiedboot/verified-boot.jd
similarity index 100%
rename from src/devices/tech/security/verifiedboot/verified-boot.jd
rename to src/security/verifiedboot/verified-boot.jd
diff --git a/src/source/developing.jd b/src/source/developing.jd
index 7788f56..9d414c0 100644
--- a/src/source/developing.jd
+++ b/src/source/developing.jd
@@ -38,9 +38,6 @@
working directory.</p>
<p><strong>Gerrit</strong> is a web-based code review system for projects that use git. Gerrit encourages more centralized use of Git by allowing all authorized users to submit changes, which are automatically merged if they pass code review. In addition, Gerrit makes reviewing easier by displaying changes side by side in-browser and enabling inline comments. </p>
<h2 id="basic-workflow">Basic Workflow</h2>
-<div style="float:right">
- <img src="{@docRoot}images/submit-patches-0.png" alt="basic workflow diagram">
-</div>
<div class="figure" style="width:200px">
<img src="{@docRoot}images/submit-patches-0.png" alt="basic workflow diagram" height="153px" />
<p class="img-caption">
@@ -101,7 +98,7 @@
<pre><code>$ repo branches
</code></pre>
<p>The name of the current branch will be preceded by an asterisk.</p>
-<p class="note"><strong>Note:</strong> A bug might be causing <code>repo sync</code> to reset the local topic branch.
+<p class="note"><strong>Note:</strong> A bug might be causing <code>repo sync</code> to reset the local topic branch.
If <code>git branch</code> shows * (no branch) after you run <code>repo sync</code>, then run <code>git checkout</code> again.</p>
<h2 id="staging-files">Staging files</h2>
<p>By default, Git notices but does not track the changes you make in a project. In order to tell git to preserve your changes, you must mark them for inclusion in a commit. This is also called "staging". </p>
@@ -117,7 +114,7 @@
<pre><code>$ repo diff
</code></pre>
<p>The <code>repo diff</code> command shows every local edit that you have made that would <em>not</em> go into the commit, if you were to commit right now. To see every edit that would go into the commit if you were to commit right now, you need a Git command, <code>git diff</code>. Before running it, be sure you are in the project directory:</p>
-<pre><code>$ cd ~/WORKING_DIRECTORY/PROJECT
+<pre><code>$ cd ~/WORKING_DIRECTORY/PROJECT
$ git diff --cached
</code></pre>
<h2 id="committing-changes">Committing changes</h2>
@@ -141,7 +138,7 @@
<li>
<p>Change into the relevant project directory, run <code>git add</code> and <code>git commit</code> for the files in question, and then "rebase" the changes. For example:</p>
<pre><code>$ git add .
-$ git commit
+$ git commit
$ git rebase --continue
</code></pre>
</li>
diff --git a/src/source/report-bugs.jd b/src/source/report-bugs.jd
index fc5653e..3b65e8f 100644
--- a/src/source/report-bugs.jd
+++ b/src/source/report-bugs.jd
@@ -28,7 +28,7 @@
improve Android is to let us know about any problems you find with it.</p>
<h2 id="report-issues">Report Issues</h2>
<p class="note"><strong>Note:</strong> For security vulnerabilities, please see
-<a href="{@docRoot}devices/tech/security/overview/updates-resources.html#reporting-security-issues">Reporting Security Issues</a>. If you think you've found
+<a href="{@docRoot}security/overview/updates-resources.html#reporting-security-issues">Reporting Security Issues</a>. If you think you've found
a security vulnerability, <em>please don't use the forms below</em>. Using a public form may
allow anyone to see your report, which may put users at risk until the bug is
fixed. Instead, please send an email detailing the issue to security@android.com.</p>