Merge "Docs: Attempt to replace inline contents with downloadable rules file"
diff --git a/src/accessories/headset/requirements.jd b/src/accessories/headset/requirements.jd
index a9c1621..1f5c0d0 100644
--- a/src/accessories/headset/requirements.jd
+++ b/src/accessories/headset/requirements.jd
@@ -184,6 +184,6 @@
 <p>The microphone should never be obstructed when operating the buttons. Place the
 port away from finger interface area.</p>
 
-<img src="images/microphone.png" alt="MIcrophone placement">
+<img src="images/microphone.png" alt="Microphone placement">
 
 <p class="img-caption"><strong>Figure 13.</strong> Microphone placement. </p>
diff --git a/src/devices/audio/debugging.jd b/src/devices/audio/debugging.jd
index 78ca801..503f35b 100644
--- a/src/devices/audio/debugging.jd
+++ b/src/devices/audio/debugging.jd
@@ -202,7 +202,7 @@
 
 <ul>
 <li>
-They are suspectible to "log spam": the log buffer is a shared resource
+They are susceptible to "log spam": the log buffer is a shared resource
 so it can easily overflow due to unrelated log entries, resulting in
 missed information.  The <code>ALOGV</code> variant is disabled at
 compile-time by default.  But of course even it can result in log spam
diff --git a/src/devices/audio/latency_measure.jd b/src/devices/audio/latency_measure.jd
index 9abe015..d0113d2 100644
--- a/src/devices/audio/latency_measure.jd
+++ b/src/devices/audio/latency_measure.jd
@@ -57,7 +57,7 @@
   <li>Use a General Purpose Input/Output (GPIO) pin for the same purpose.</li>
   <li>Use JTAG or another debugging port.</li>
   <li>Use the screen backlight. This might be risky as the
-  backlight may have a non-neglible latency, and can contribute to
+  backlight may have a non-negligible latency, and can contribute to
   an inaccurate latency reading.
   </li>
 </ul>
diff --git a/src/devices/audio/usb.jd b/src/devices/audio/usb.jd
index 5395560..1a0ce67 100644
--- a/src/devices/audio/usb.jd
+++ b/src/devices/audio/usb.jd
@@ -310,7 +310,7 @@
 
 <p>
 In asynchronous (also called implicit feedback) sub-mode,
-the sink or source determines the sample rate, and the host accomodates.
+the sink or source determines the sample rate, and the host accommodates.
 The primary theoretical advantage of asynchronous sub-mode is that the source
 or sink USB clock is physically and electrically closer to (and indeed may
 be the same as, or derived from) the clock that drives the DAC or ADC.
diff --git a/src/devices/camera/camera3_3Amodes.jd b/src/devices/camera/camera3_3Amodes.jd
index 89d9841..35fa90d 100644
--- a/src/devices/camera/camera3_3Amodes.jd
+++ b/src/devices/camera/camera3_3Amodes.jd
@@ -73,7 +73,7 @@
   triggered.<br/>
   AF_MODE_CONTINUOUS_VIDEO: Smooth continuous focusing, for recording video. 
   Triggering immediately locks focus in current position. Canceling resumes 
-  cotinuous focusing.<br/>
+  continuous focusing.<br/>
   AF_MODE_CONTINUOUS_PICTURE: Fast continuous focusing, for zero-shutter-lag still 
   capture. Triggering locks focus once currently active sweep concludes. Canceling 
   resumes continuous focusing.<br/>
diff --git a/src/devices/camera/camera3_requests_methods.jd b/src/devices/camera/camera3_requests_methods.jd
index bde2e44..4da58da 100644
--- a/src/devices/camera/camera3_requests_methods.jd
+++ b/src/devices/camera/camera3_requests_methods.jd
@@ -94,9 +94,9 @@
   given device. The framework will use this to dump all state as quickly as 
   possible in order to prepare for a configure_streams() call.<br/>
   No buffers are required to be successfully returned, so every buffer held at the 
-  time of flush() (whether sucessfully filled or not) may be returned with 
+  time of flush() (whether successfully filled or not) may be returned with
   CAMERA3_BUFFER_STATUS_ERROR. Note the HAL is still allowed to return valid 
-  (STATUS_OK) buffers during this call, provided they are succesfully filled.<br/>
+  (STATUS_OK) buffers during this call, provided they are successfully filled.<br/>
   All requests currently in the HAL are expected to be returned as soon as 
   possible. Not-in-process requests should return errors immediately. Any 
   interruptible hardware blocks should be stopped, and any uninterruptible blocks 
diff --git a/src/devices/drm.jd b/src/devices/drm.jd
index 3d47e30..87b967a 100644
--- a/src/devices/drm.jd
+++ b/src/devices/drm.jd
@@ -227,7 +227,7 @@
 
 <ul>
 <li>OnEventListener for results of asynchronous APIs</li>
-<li>OnErrorListener for recieving errors of asynchronous APIs</li>
+<li>OnErrorListener for receiving errors of asynchronous APIs</li>
 <li>OnInfoListener for any supplementary information during DRM
 transactions.</li>
 </ul>
diff --git a/src/devices/index.jd b/src/devices/index.jd
index a09d10c..07687de 100644
--- a/src/devices/index.jd
+++ b/src/devices/index.jd
@@ -121,7 +121,7 @@
 
   <p>In addition, the <code>hw_module_t</code> struct contains
   a pointer to another struct, <code>hw_module_methods_t</code>, that contains a pointer to
-  an "open" function for the module. This open function is used to initate communication with
+  an "open" function for the module. This open function is used to initiate communication with
   the hardware that the HAL is serving as an abstraction for. Each hardware-specific HAL usually
   extends the generic <code>hw_module_t</code> struct with additional information
   for that specific piece of hardware. For example in the camera HAL, the <code>camera_module_t</code> struct
@@ -195,7 +195,7 @@
 <p>
 Developing your device drivers is similar to developing a typical Linux device
 driver. Android uses a version of the Linux kernel with a few special additions
-such as wake locks (a memory management system that is more agressive in
+such as wake locks (a memory management system that is more aggressive in
 preserving memory), the Binder IPC driver, and other features important for a
 mobile embedded platform. These additions are primarily for system functionality
 and do not affect driver development.
diff --git a/src/devices/input/getevent.jd b/src/devices/input/getevent.jd
index fd39dbb..3717f63 100644
--- a/src/devices/input/getevent.jd
+++ b/src/devices/input/getevent.jd
@@ -26,7 +26,7 @@
 
 <p>The <code>getevent</code> tool runs on the device and provides information about input
 devices and a live dump of kernel input events.</p>
-<p>It is very useful tool for ensuring that device drivers are reporing the
+<p>It is very useful tool for ensuring that device drivers are reporting the
 expected set of capabilities for each input device and are generating the
 desired stream of input events.</p>
 <h2 id="usage">Usage</h2>
diff --git a/src/devices/input/key-character-map-files.jd b/src/devices/input/key-character-map-files.jd
index d485707..aa9ff88 100644
--- a/src/devices/input/key-character-map-files.jd
+++ b/src/devices/input/key-character-map-files.jd
@@ -64,7 +64,7 @@
 (see <code>KeyCharacterMap.VIRTUAL_KEYBOARD</code>).  It is present on all Android devices
 beginning with Android Honeycomb 3.0.  The purpose of the virtual keyboard device
 is to provide a known built-in input device that can be used for injecting
-keystokes into applications by the IME or by test instrumentation, even
+keystrokes into applications by the IME or by test instrumentation, even
 for devices that do not have built-in keyboards.</p>
 <p>The virtual keyboard is assumed to have a full QWERTY layout that is the
 same on all devices.  This makes it possible for applications to inject
diff --git a/src/devices/input/keyboard-devices.jd b/src/devices/input/keyboard-devices.jd
index 267ae42..821e201 100644
--- a/src/devices/input/keyboard-devices.jd
+++ b/src/devices/input/keyboard-devices.jd
@@ -27,7 +27,7 @@
 <p>Android supports a variety of keyboard devices including special function
 keypads (volume and power controls), compact embedded QWERTY keyboards,
 and fully featured PC-style external keyboards.</p>
-<p>This document decribes physical keyboards only.  Refer to the Android SDK
+<p>This document describes physical keyboards only.  Refer to the Android SDK
 for information about soft keyboards (Input Method Editors).</p>
 <h2 id="keyboard-classification">Keyboard Classification</h2>
 <p>An input device is classified as a keyboard if either of the following
diff --git a/src/devices/input/overview.jd b/src/devices/input/overview.jd
index 11cdf97..44091cf 100644
--- a/src/devices/input/overview.jd
+++ b/src/devices/input/overview.jd
@@ -181,7 +181,7 @@
 using constants that begin with the prefix <code>SW_</code>.  The Linux
 kernel input drivers report switch state changes as <code>EV_SW</code> events.</p>
 <p>Android applications generally do not receive events from switches,
-but the system may use them interally to control various
+but the system may use them internally to control various
 device-specific functions.</p>
 </dd>
 <dt>Android Key Code</dt>
diff --git a/src/devices/input/touch-devices.jd b/src/devices/input/touch-devices.jd
index bb78d35..4a4b6d7 100644
--- a/src/devices/input/touch-devices.jd
+++ b/src/devices/input/touch-devices.jd
@@ -426,7 +426,7 @@
 <p>Reporting tilt information is <em>optional</em> but recommended for stylus devices.</p>
 </li>
 <li>
-<p>If the tool type is reported by <code>ABS_MT_TOOL_TYPE</code>, it will supercede any tool
+<p>If the tool type is reported by <code>ABS_MT_TOOL_TYPE</code>, it will supersede any tool
     type information reported by <code>BTN_TOOL_*</code>.
     If no tool type information is available at all, the tool type defaults to
     <code>MotionEvent.TOOL_TYPE_FINGER</code>.</p>
diff --git a/src/devices/sensors/sensor-types.jd b/src/devices/sensors/sensor-types.jd
index baa2f76..add3796 100644
--- a/src/devices/sensors/sensor-types.jd
+++ b/src/devices/sensors/sensor-types.jd
@@ -247,7 +247,7 @@
 <ul>
   <li> For example, the power consumption of a game rotation vector is probably equal
     to the sum of the power consumptions of: the accelerometer chip, the gyroscope
-    chip, the chip processing the data, and the busses transporting the data. </li>
+    chip, the chip processing the data, and the buses transporting the data. </li>
   <li> As another example, the drift of a game rotation vector will depend as much on
     the quality of the calibration algorithm as on the physical sensor
     characteristics. </li>
diff --git a/src/devices/tech/admin/provision.jd b/src/devices/tech/admin/provision.jd
index 62b898e..a1b20bc 100644
--- a/src/devices/tech/admin/provision.jd
+++ b/src/devices/tech/admin/provision.jd
@@ -36,6 +36,9 @@
 href="https://github.com/googlesamples/android-DeviceOwner">Android-DeviceOwner
 APK</a>.</p>
 
+<p class="caution"><strong>Caution:</strong> If provisioning has already
+started, affected devices will first need to be factory reset.</p>
+
 <h2 id=managed_provisioning>Managed Provisioning</h2>
 
 <p>Managed Provisioning is a framework UI flow to ensure users are adequately
@@ -165,4 +168,4 @@
 <p>Managed provisioning is just one piece of the EMM end-to-end workflow, with the
   end goal being to make corporate data accessible to apps in the managed profile.</p>
 
-<p>See <a href="https://docs.google.com/document/d/1xWdZHjsDB_4FWQcHfPh84EuTvljoMgrc2JINGMBtDQg/edit#">Manual Setup for Device Owner Testing</a> for testing instructions.</p>
+<p>See <a href="testing-setup.html">Setting up Device Testing</a> for testing instructions.</p>
diff --git a/src/devices/tech/dalvik/constraints.jd b/src/devices/tech/dalvik/constraints.jd
index 8ad6aac..c95bae0 100644
--- a/src/devices/tech/dalvik/constraints.jd
+++ b/src/devices/tech/dalvik/constraints.jd
@@ -231,7 +231,7 @@
         </td>
 
         <td>
-          For each <code>type_id_item</code>, the <code>desciptor_idx</code> field must contain a valid
+          For each <code>type_id_item</code>, the <code>descriptor_idx</code> field must contain a valid
           reference into the <code>string_ids</code> list. The referenced string must be a valid type
           descriptor.
         </td>
diff --git a/src/devices/tech/dalvik/dex-format.jd b/src/devices/tech/dalvik/dex-format.jd
index 5315db1..8c59b01 100644
--- a/src/devices/tech/dalvik/dex-format.jd
+++ b/src/devices/tech/dalvik/dex-format.jd
@@ -786,7 +786,7 @@
 <tr>
   <td>elements</td>
   <td>annotation_element[size]</td>
-  <td>elements of the annotataion, represented directly in-line (not as
+  <td>elements of the annotation, represented directly in-line (not as
     offsets). Elements must be sorted in increasing order by
     <code>string_id</code> index.
   </td>
diff --git a/src/devices/tech/dalvik/instruction-formats.jd b/src/devices/tech/dalvik/instruction-formats.jd
index 91d876a..69b0924 100644
--- a/src/devices/tech/dalvik/instruction-formats.jd
+++ b/src/devices/tech/dalvik/instruction-formats.jd
@@ -66,7 +66,7 @@
 <p>Most format IDs consist of three characters, two digits followed by a
 letter. The first digit indicates the number of 16-bit code units in the
 format. The second digit indicates the maximum number of registers that the
-format contains (maximum, since some formats can accomodate a variable
+format contains (maximum, since some formats can accommodate a variable
 number of registers), with the special designation "<code>r</code>" indicating
 that a range of registers is encoded. The final letter semi-mnemonically
 indicates the type of any extra data encoded by the format. For example,
@@ -200,7 +200,7 @@
 (indicated as "<code>vtaboff</code>") and field offsets (indicated as
 "<code>fieldoff</code>").</p>
 
-<p>In the cases where a format value isn't explictly part of the syntax
+<p>In the cases where a format value isn't explicitly part of the syntax
 but instead picks a variant, each variant is listed with the prefix
 "<code>[<i>X</i>=<i>N</i>]</code>" (e.g., "<code>[A=2]</code>") to indicate
 the correspondence.</p>
diff --git a/src/devices/tech/ram/index.jd b/src/devices/tech/ram/index.jd
index 2bb2717..e4a2237 100644
--- a/src/devices/tech/ram/index.jd
+++ b/src/devices/tech/ram/index.jd
@@ -17,5 +17,5 @@
     limitations under the License.
 -->
 
-<p> The following sections contain information, documentation, tips and tricks about Android memory managment and RAM diagnostics.</p>
+<p> The following sections contain information, documentation, tips and tricks about Android memory management and RAM diagnostics.</p>
 
diff --git a/src/devices/tech/security/encryption/index.jd b/src/devices/tech/security/encryption/index.jd
index 957e9ed..546bb63 100644
--- a/src/devices/tech/security/encryption/index.jd
+++ b/src/devices/tech/security/encryption/index.jd
@@ -454,7 +454,7 @@
     <td><code>vold.encrypt_progress  error_not_encrypted</code></td>
     <td>The progress bar UI should
 display a message saying an error
-occured,  no data was encrypted or
+occurred,  no data was encrypted or
 lost, and give the user a button to reboot the system.</td>
   </tr>
   <tr>
diff --git a/src/devices/tv/HDMI-CEC.jd b/src/devices/tv/HDMI-CEC.jd
index bbf6547..03c364d 100644
--- a/src/devices/tv/HDMI-CEC.jd
+++ b/src/devices/tv/HDMI-CEC.jd
@@ -87,7 +87,7 @@
 <p>Here are the key ingredients to a proper Android HDMI-CEC implementation:</p>
 
 <ul>
-  <li> A manager class <code>HdmiControlManager</code> provides priviledged apps with the API. System services like TV Input Manager service and Audio service can grab the service directly.</li>
+  <li> A manager class <code>HdmiControlManager</code> provides privileged apps with the API. System services like TV Input Manager service and Audio service can grab the service directly.</li>
   <li> The service is designed to allow hosting more than one type of logical device.</li>
   <li> HDMI-CEC is connected with the hardware via a hardware abstraction layer (HAL)
 to simplify handling differences of the protocol and signalling mechanisms
@@ -104,7 +104,7 @@
 
 
 <p>Depending on whether your device is a HDMI sink device or a HDMI source device,
-device manufactureres need to set <code>ro.hdmi.device_type</code> in <code>device.mk</code> for <code>HdmiControlService</code> to work correctly.</p>
+device manufacturers need to set <code>ro.hdmi.device_type</code> in <code>device.mk</code> for <code>HdmiControlService</code> to work correctly.</p>
 
 <p>For HDMI source devices, like Over the Top (OTT) boxes, set:</p>
 
@@ -126,7 +126,7 @@
 Note that any change made in the service for manufacturer-specific commands
 must not interfere with the way standard commands are handled or the device
 will not be Android compatible.</li>
-  <li> Access to the HDMI-CEC service is guarded with the protection level <code>SignatureOrSystem</code>. Only system components or the apps placed in <code>/system/priv-app</code> can access the service. This is to protect the service from abuse by apps with malicous intent.</li>
+  <li> Access to the HDMI-CEC service is guarded with the protection level <code>SignatureOrSystem</code>. Only system components or the apps placed in <code>/system/priv-app</code> can access the service. This is to protect the service from abuse by apps with malicious intent.</li>
 </ul>
 
 <p>Android supports type <code>TV/Display(0)</code> and <code>playback device(4)</code>, which can issue the One Touch Play command to display. The other types (tuner
diff --git a/src/source/code-style.jd b/src/source/code-style.jd
index ee65c27..dd52b5d 100644
--- a/src/source/code-style.jd
+++ b/src/source/code-style.jd
@@ -650,7 +650,7 @@
 enough to be logged in a release build).</p>
 </li>
 <li>
-<p>A full filesystem on a filesystem that is acceessible to or on
+<p>A full filesystem on a filesystem that is accessible to or on
 behalf of third-party applications should not be logged at a level higher than
 INFORMATIVE.</p>
 </li>
@@ -725,7 +725,7 @@
 readers out of their rhythm when they go to read it. Try to avoid this.</p></p>
 <h2 id="javatests-style-rules">Javatests Style Rules</h2>
 <h3 id="follow-test-method-naming-conventions">Follow Test Method Naming Conventions</h3>
-<p>When naming test methods, you can use an underscore to seperate what is
+<p>When naming test methods, you can use an underscore to separate what is
 being tested from the specific case being tested. This style makes it easier
 to see exactly what cases are being tested.</p>
 <p>For example:</p>
diff --git a/src/source/known-issues.jd b/src/source/known-issues.jd
index 9a6d9fc..49657e5 100644
--- a/src/source/known-issues.jd
+++ b/src/source/known-issues.jd
@@ -96,7 +96,7 @@
 actions could have swapped the default compiler.</p>
 <h3 id="build-errors-caused-by-non-default-tool-settings">Build errors caused by non-default tool settings.</h3>
 <p><strong>Symptom</strong>: The build fails with various symptoms, possibly
-complinaing about missing files or files that have the
+complaining about missing files or files that have the
 wrong format. One such symptom is <code>member [...] in archive is not an object</code>.</p>
 <p><strong>Cause</strong>: The Android build system tends to use many host tools
 and to rely on their default behaviors. Some settings change
@@ -151,7 +151,7 @@
 One such symptom is
 <code>DownloadError: HTTP 500 (Internal Server Error: Server got itself in trouble)</code>.</p>
 <p><strong>Cause</strong>: The default network behavior of VirtualBox is to use
-NAT (Network Addrss Translation) to connect the guest system to
+NAT (Network Address Translation) to connect the guest system to
 the network. The heavy network activity of repo sync triggers some
 corner cases in the NAT code.</p>
 <p><strong>Fix</strong>: Configure VirtualBox to use bridged network instead of NAT.</p>