diff --git a/src/compatibility/2.1/versions.jd b/src/compatibility/2.1/versions.jd
index cbc12ef..2551382 100644
--- a/src/compatibility/2.1/versions.jd
+++ b/src/compatibility/2.1/versions.jd
@@ -1,7 +1,7 @@
 page.title=Permitted Version Strings for Android 2.1
 @jd:body
 
-<p>As described in Section 3.2.2 of the <a href="/cdds/android-2.1-cdd.pdf">Android 2.1 Compatibility Definition</a>, 
+<p>As described in Section 3.2.2 of the <a href="/compatibility/android-2.1-cdd.pdf">Android 2.1 Compatibility Definition</a>, 
 only certain strings are allowable for the system property
 <code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
 applications and web sites may rely on predictable values for this string, and
@@ -19,4 +19,4 @@
 <li>
 <p>2.1-update1</p>
 </li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/compatibility/2.2/versions.jd b/src/compatibility/2.2/versions.jd
index 5846316..dd223ff 100644
--- a/src/compatibility/2.2/versions.jd
+++ b/src/compatibility/2.2/versions.jd
@@ -1,7 +1,7 @@
 page.title=Permitted Version Strings for Android 2.2
 @jd:body
 
-<p>As described in Section 3.2.2 of the <a href="/cdds/android-2.2-cdd.pdf">Android 2.2 Compatibility Definition</a>, 
+<p>As described in Section 3.2.2 of the <a href="/compatibility/android-2.2-cdd.pdf">Android 2.2 Compatibility Definition</a>, 
 only certain strings are allowable for the system property
 <code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
 applications and web sites may rely on predictable values for this string, and
@@ -19,4 +19,4 @@
 <li>
 <p>2.2.1</p>
 </li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/compatibility/2.3/versions.jd b/src/compatibility/2.3/versions.jd
index a3b5481..57ec37d 100644
--- a/src/compatibility/2.3/versions.jd
+++ b/src/compatibility/2.3/versions.jd
@@ -1,7 +1,7 @@
 page.title=Permitted Version Strings for Android 2.3
 @jd:body
 
-<p>As described in Section 3.2.2 of the <a href="/cdds/android-2.3-cdd.pdf">Android 2.3 Compatibility Definition</a>, 
+<p>As described in Section 3.2.2 of the <a href="/compatibility/android-2.3-cdd.pdf">Android 2.3 Compatibility Definition</a>, 
 only certain strings are allowable for the system property
 <code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
 applications and web sites may rely on predictable values for this string, and
@@ -14,4 +14,4 @@
 <code>android.os.Build.VERSION.RELEASE</code> for Android 2.3 are:</p>
 <ul>
 <li>2.3.3</li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/compatibility/4.0/versions.jd b/src/compatibility/4.0/versions.jd
index 12039ba..a3283c5 100644
--- a/src/compatibility/4.0/versions.jd
+++ b/src/compatibility/4.0/versions.jd
@@ -1,7 +1,7 @@
 page.title=Permitted Version Strings for Android 4.0
 @jd:body
 
-<p>As described in Section 3.2.2 of the <a href="/cdds/android-4.0-cdd.pdf">Android 4.0 Compatibility Definition</a>, 
+<p>As described in Section 3.2.2 of the <a href="/compatibility/android-4.0-cdd.pdf">Android 4.0 Compatibility Definition</a>, 
 only certain strings are allowable for the system property
 <code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
 applications and web sites may rely on predictable values for this string, and
diff --git a/src/compatibility/4.1/versions.jd b/src/compatibility/4.1/versions.jd
index 9a3106c..e3439e9 100644
--- a/src/compatibility/4.1/versions.jd
+++ b/src/compatibility/4.1/versions.jd
@@ -1,7 +1,7 @@
 page.title=Permitted Version Strings for Android 4.1
 @jd:body
 
-<p>As described in Section 3.2.2 of the <a href="/cdds/android-4.1-cdd.pdf">Android 4.1 Compatibility Definition</a>, 
+<p>As described in Section 3.2.2 of the <a href="/compatibility/android-4.1-cdd.pdf">Android 4.1 Compatibility Definition</a>, 
 only certain strings are allowable for the system property
 <code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
 applications and web sites may rely on predictable values for this string, and
@@ -19,4 +19,4 @@
 <li>
 <p>4.1.1</p>
 </li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/compatibility/4.2/versions.jd b/src/compatibility/4.2/versions.jd
index 065085b..9730b6a 100644
--- a/src/compatibility/4.2/versions.jd
+++ b/src/compatibility/4.2/versions.jd
@@ -1,7 +1,7 @@
 page.title=Permitted Version Strings for Android 4.2
 @jd:body
 
-<p>As described in Section 3.2.2 of the <a href="/cdds/android-4.2-cdd.pdf">Android 4.2 Compatibility Definition</a>, 
+<p>As described in Section 3.2.2 of the <a href="/compatibility/android-4.2-cdd.pdf">Android 4.2 Compatibility Definition</a>, 
 only certain strings are allowable for the system property
 <code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
 applications and web sites may rely on predictable values for this string, and
diff --git a/src/compatibility/overview.jd b/src/compatibility/overview.jd
index 184903a..befc946 100644
--- a/src/compatibility/overview.jd
+++ b/src/compatibility/overview.jd
@@ -99,7 +99,7 @@
 <p>If you want to build a device compatible with a given Android version,
 start by checking out the source code for that version, and then read the
 corresponding CDD and stay within its guidelines. For additional details,
-simply examine <a href="4.2/android-4.2-cdd.pdf">the latest CDD</a>.</p>
+simply examine <a href="/compatibility/android-4.3-cdd.pdf">the latest CDD</a>.</p>
 <h1 id="compatibility-test-suite-cts">Compatibility Test Suite (CTS)</h1>
 <p>The CTS is a free, commercial-grade test suite, available for
 <a href="downloads.html">download</a>.
diff --git a/src/devices/audio.jd b/src/devices/audio.jd
index 50be277..08ed9ff 100644
--- a/src/devices/audio.jd
+++ b/src/devices/audio.jd
@@ -249,7 +249,7 @@
   </li>
 </ol>
 
-<h2>Audio preprocessing effects</h2>
+<h2 id="preprocessing">Audio preprocessing effects</h2>
 <p>
 The Android platform supports audio effects on supported devices in the
 <a href="http://developer.android.com/reference/android/media/audiofx/package-summary.html">audiofx</a>
@@ -291,7 +291,7 @@
 <p class="warning"><strong>Warning:</strong> For the <code>VOICE_RECOGNITION</code> use case, do not enable
 the noise suppression pre-processing effect. It should not be turned on by default when recording from this audio source,
 and you should not enable it in your own audio_effects.conf file. Turning on the effect by default will cause the device to fail
-the <a href="http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/en/us/compatibility/4.2/android-4.2-cdd.pdf"> compatibility requirement </a>
+the <a href="/compatibility/index.html"> compatibility requirement </a>
 regardless of whether is was on by default due to configuration file, or the audio HAL implementation's default behavior.</p>
 
 <p>The following example enables pre-processing for the VoIP <code>AudioSource</code> and Camcorder <code>AudioSource</code>.
@@ -309,7 +309,7 @@
 }
 </pre>
 
-<h3>Source tuning</h3>
+<h3 id="tuning">Source tuning</h3>
 <p>For <code>AudioSource</code> tuning, there are no explicit requirements on audio gain or audio processing
 with the exception of voice recognition (<code>VOICE_RECOGNITION</code>).</p>
 
@@ -341,7 +341,7 @@
   </li>
 </ul>
 
-<h3>More information</h3>
+<h3 id="more">More information</h3>
 <p>For more information, see:</p>
 <ul>
 <li>Android documentation for <a href="http://developer.android.com/reference/android/media/audiofx/package-summary.html">audiofx 
diff --git a/src/devices/devices_toc.cs b/src/devices/devices_toc.cs
index 64ff7dc..5446c74 100644
--- a/src/devices/devices_toc.cs
+++ b/src/devices/devices_toc.cs
@@ -169,10 +169,15 @@
                 <span class="en">Security Enhancements in Android 4.3</span>
               </a>
             </li>
+            <li>
+              <a href="<?cs var:toroot ?>devices/tech/security/se-linux.html">
+                <span class="en">Security-Enhanced Linux</span>
+              </a>
+            </li>
+
           </ul>
       </li>
 
-
       <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/tech/security/se-linux.jd b/src/devices/tech/security/se-linux.jd
new file mode 100644
index 0000000..d23be8c
--- /dev/null
+++ b/src/devices/tech/security/se-linux.jd
@@ -0,0 +1,315 @@
+page.title=Security-Enhanced Linux 
+@jd:body
+
+<!--
+    Copyright 2010 The Android Open Source Project
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<h2 id="introduction">Introduction</h2> <p>In Android 4.3,
+Android begins supporting Security-Enhanced Linux (SELinux), a tool for applying
+access control policies. SELinux enhances Android security, and contributions to
+it have been made by a number of companies and organizations; all Android code
+and contributors are publicly available for review on this same site <a
+href="http://source.android.com/">source.android.com</a>. With SELinux, Android
+can better control access to application data and system logs, reduce the
+effects of malicious software, and protect users from potential flaws in mobile
+code. </p>
+
+<p>In this release, Android includes SELinux in permissive mode and a
+corresponding security policy that works by default across the <a
+href="https://android.googlesource.com/">Android Open Source Project</a>. In
+permissive mode, no actions are prevented. Instead, all potential violations are
+logged by the kernel to <code>dmesg</code>. This allows Android and Android device
+manufacturers to gather information about errors so they may refine their
+software and SELinux policies before enforcing them.</p>
+
+<h2 id="background">Background</h2> <p>Used properly, SELinux greatly limits the
+potential damage of compromised machines and accounts. When you adopt SELinux,
+you instill a structure by which software runs at only the minimum privilege
+level. This mitigates the effects of attacks and reduces the likelihood of
+errant processes overwriting or even transmitting data.</p>
+
+<p>SELinux provides a mandatory access control (MAC) umbrella over traditional
+discretionary access control (DAC) environments. For instance, software must
+typically run as the root user account to write to raw block devices. In a
+traditional DAC-based Linux environment, if the root user becomes compromised
+that user can write to every raw block device. However, SELinux can be used to
+label these devices so the user role assigned the root privilege can write to
+only those specified in the associated policy. In this way, root cannot
+overwrite data and system settings outside of the specific raw block device.</p>
+
+<p>See the <em>Use Cases</em> section for more examples of threats and ways to
+address them with SELinux.</p>
+
+<h2 id="implementation">Implementation</h2> <p>Android&rsquo;s initial SELinux
+implementation is launching in permissive mode - rather than the non-functional
+disabled mode or the most stringent enforcing mode - to act as a reference and
+facilitate testing and development.</p>
+
+<p>SELinux is launching in permissive mode on Android to enable the first phase
+of policy development, and it is accompanied by everything you need to enable
+SELinux now.</p>
+
+<p>You merely need to integrate the <a
+href="https://android.googlesource.com/kernel/common/">latest Android kernel</a>
+and then incorporate the files found in the ~<a
+href="https://android.googlesource.com/platform/external/sepolicy/">platform/external/sepolicy</a>
+directory:<br>
+<a
+href="https://android.googlesource.com/kernel/common/">https://android.googlesource.com/kernel/common/</a>
+<br>
+<a
+href="https://android.googlesource.com/platform/external/sepolicy/">https://android.googlesource.com/platform/external/sepolicy/</a></p>
+
+<p>Those files when compiled comprise the SELinux kernel security policy and
+cover the upstream Android operating system. Place those files within the
+&lt;root&gt;/device/manufacturer/device-name/sepolicy directory.</p>
+
+<p>Then just update your <code>BoardConfig.mk</code> makefile - located in the
+&lt;device-name&gt; directory containing the sepolicy subdirectory - to
+reference the sepolicy subdirectory once created, like so:</p>
+
+<pre>
+BOARD_SEPOLICY_DIRS := \
+        &lt;root&gt;/device/manufacturer/device-name/sepolicy
+
+BOARD_SEPOLICY_UNION := \
+        genfs_contexts \ 
+        file_contexts \ 
+        sepolicy.te 
+</pre>
+
+<p>After rebuilding your device, it is enabled with SELinux. You can now either
+customize your SELinux policies to accommodate your own additions to the Android
+operating system as described in the <em>Customization</em> section or verify
+your existing setup as covered in the <em>Validation</em> section.</p>
+
+<h2 id="customization">Customization</h2> <p>Once you&rsquo;ve integrated this
+base level of functionality and thoroughly analyzed the results, you may add
+your own policy settings to cover your customizations to the Android operating
+system. Of course, these policies must still meet the <a
+href="{@docRoot}compatibility/index.html">Android Compatibility
+program</a> requirements and not remove the default SELinux settings.</p>
+
+<p>Manufacturers should not remove existing security settings. Otherwise, they
+risk breaking the Android SELinux implementation and the applications it
+governs. This includes third-party applications that will likely need to be
+improved to be compliant and operational. Applications must require no
+modification to continue functioning on SELinux-enabled devices.</p>
+
+<p>See section 9.7 of the Android 4.3 Compatibility Definition document for
+specific requirements:<br><a
+href="{@docRoot}compatibility/android-4.3-cdd.pdf">http://source.android.com/compatibility/android-4.3-cdd.pdf</a></p>
+
+<p>SELinux uses a whitelist approach, meaning it grants special privileges based
+upon role. Because the default policy provided by Android is so permissive, OEMs
+have great leeway in strengthening it. Here is how we recommend proceeding:</p>
+
+<ol>
+<li>
+<p>Use the <a
+href="https://android.googlesource.com/kernel/common/">latest Android
+kernel</a>.</p> </li>
+<li>
+<p>Adopt the <a
+href="http://en.wikipedia.org/wiki/Principle_of_least_privilege">principle of
+least privilege</a>.</p></li>
+<li>
+<p>Address only your own additions to
+Android. The default policy works with the <a
+href="https://android.googlesource.com/">Android Open Source Project</a>
+codebase automatically.</p></li>
+<li>
+<p>Compartmentalize software components
+into modules that conduct singular tasks.</p></li>
+<li>
+<p>Create SELinux
+policies that isolate those tasks from unrelated functions.</p></li>
+<li>
+<p>Put those policies in *.te files (the extension for SELinux policy source
+files) within the &lt;root&gt;/device/manufacturer/device-name/sepolicy
+directory.</p></li>
+<li>
+<p>Release your SELinux implementation in permissive
+mode first.</p></li>
+<li><p>Analyze results and refine policy settings.</p>
+</li>
+</ol>
+
+<p>Once integrated, OEM Android development should include a step to ensure
+SELinux compatibility going forward. In an ideal software development process,
+SELinux policy changes only when the software model changes and not the actual
+implementation.</p>
+
+<p>As device manufacturers begin to customize SELinux, they should first audit
+their additions to Android. If you&rsquo;ve added a component that conducts a
+new function, the manufacturer will need to ensure the component meets the
+security policy applied by Android, as well as any associated policy crafted by
+the OEM, before turning on enforcement.</p>
+
+<p>To prevent unnecessary issues, it is better to be overbroad and
+over-compatible than too restrictive and incompatible, which results in broken
+device functions. Conversely, if a manufacturer&rsquo;s changes will benefit
+others, it should supply the modifications to the default SELinux policy as a <a
+href="{@docRoot}source/submit-patches.html">patch</a>. If the
+patch is applied to the default security policy, the manufacturer will no longer
+need to make this change with each new Android release.</p>
+
+<h2 id="use-cases">Use Cases</h2> <p>Here are specific examples of exploits to
+consider when crafting your own software and associated SELinux policies:</p>
+
+<p><strong>Symlinks</strong> - Because symlinks appear as files, they are often read 
+just as that. This can lead to exploits. For instance, some privileged components such
+as init change the permissions of certain files, sometimes to be excessively
+open.</p>
+
+<p>Attackers might then replace those files with symlinks to code they control,
+allowing the attacker to overwrite arbitrary files. But if you know your application 
+will never traverse a symlink, you can prohibit it from doing so with SELinux.</p>
+
+<p><strong>System files</strong> - Consider the class of system files that should only be
+modified by the system server. Still, since <code>netd</code>, <code>init</code>, 
+and <code>vold</code> run as root, they can access those system files. So if 
+<code>netd</code> became compromised, it could compromise those files and 
+potentially the system server itself.</p>
+
+<p>With SELinux, you can identify those files as system server data files.
+Therefore, the only domain that has read/write access to them is system server.
+Even if <code>netd</code> became compromised, it could not switch domains to the 
+system server domain and access those system files although it runs as root.</p>
+
+<p><strong>App data</strong> - Another example is the class of functions that
+must run as root but should not get to access app data. This is incredibly useful as 
+wide-ranging assertions can be made, such as certain domains unrelated to application data
+being prohibited from accessing the internet.</p>
+
+<p><strong>setattr</strong> - For commands such as <code>chmod</code> and
+<code>chown</code>, you could identify the set of files where the associated domain 
+can conduct <code>setattr</code>. Anything outside of that could be prohibited from 
+these changes, even by root. So an application might run <code>chmod</code> and
+<code>chown</code> against those labeled app_data_files but not shell_data_files or 
+system_data_files.</p> <h2 id="related-files">Related
+Files</h2> <p>This section serves to guide you once you&rsquo;ve decided to
+customize the SELinux policy settings. See the <em>Customization</em> section
+for steps. We recommend device manufacturers start with the default Android
+SELinux policy and make the minimum possible set of changes to address their
+additions to Android. Existing Android SELinux policy files are found in the
+root of the ~<a
+href="https://android.googlesource.com/platform/external/sepolicy/">platform/external/sepolicy</a>
+directory.</p>
+
+<p>Android upgraded its SELinux policy version to allow the SELinux mode to be
+set to permissive on a per-domain basis. For example, if you run all of your
+applications on a single domain, you could set that domain to be permissive and
+then have all other functions and their domains set to enforcement. Domains are
+associated with applications by the key used to sign each application. This
+setting is made at the top of each SELinux policy source (*.te) file.</p>
+
+<p>Here are the files you must create or edit in order to customize SELinux:</p>
+<ul> 
+<li>
+<p><em>New SELinux policy source (*.te) files</em> - Located in the
+&lt;root&gt;/device/manufacturer/device-name/sepolicy directory These files
+define domains and their labels. The new policy files get concatenated with the
+existing policy files during compilation into a single SELinux kernel policy
+file.</p></li> 
+<li>
+<p><em>Updated <code>BoardConfig.mk</code> makefile</em> - Located in the
+&lt;device-name&gt; directory containing the sepolicy subdirectory. It must be
+updated to reference the sepolicy subdirectory once created if it wasn&rsquo;t
+in initial implementation.</p> </li> 
+<li>
+<p><em>Updated <code>file_contexts</code></em> - Located in
+the sepolicy subdirectory. It labels files and is managed in the userspace. As
+you create new policies, update this file to reference them. In order to apply
+new <code>file_contexts</code>, you must run <code>restorecon</code> on the file
+to be relabeled.</p>
+</li> </ul>
+
+<p>The remaining files in the sepolicy directory are either auto-generated or
+should remain static. The policy files come in the form: allow, domain, and
+context, for a set of actions:</p>
+
+<ul>
+<li>
+<p><em>Allow</em> - Gives the role permission to carry out the action described
+in the context within the specified domain.</p> </li>
+<li>
+<p><em>Domain</em> - Domain
+represents scope of the rule and gets converted to a security identifier (SID)
+in the kernel.</p> </li>
+<li>
+<p><em>Context</em> - An identifier for the rule, this is converted
+to an integer in the kernel.</p> </li> </ul>
+
+<p>And so the an example use of this would follow the structure:<br>
+<code>allow appdomain app_data_file:file rw_file_perms;</code></p>
+
+<p>This says an application is allowed to read and write files labeled
+app_data_file. During compilation, those overrides are concatenated to the
+existing SELinux settings and into a single security policy. These overrides add
+to the base security policy rather than subtract from existing settings.</p>
+
+<p>Once the new policy files and <code>BoardConfig.mk</code> updates are in place, the new
+policy settings get automatically uploaded to the device.</p>
+
+<h2 id="validation">Validation</h2> <p>Android strongly encourages OEMs to test
+their SELinux implementations thoroughly. As manufacturers implement SELinux,
+they should initially release their own policies in permissive mode. If
+possible, apply the new policy to devices of employees first as a test.</p>
+
+<p>Once applied, make sure SELinux is running in the correct mode on the device
+by issuing the command: <code>getenforce</code></p>
+
+<p>This will print the SELinux mode: either Disabled, Enforcing, or Permissive.
+If permissive, you are compliant. Enforcing is explicitly not compliant in
+Android 4.3. (Because of its risk, enforcing mode comes with a much heavier
+testing burden.)</p>
+
+<p>Then check for errors. Errors are routed as event logs to <code>dmesg</code> 
+and viewable locally on the device. Manufacturers should examine the SELinux output 
+to <code>dmesg</code> on these devices and refine settings prior to public release in 
+permissive mode.</p>
+
+<p>With this output, manufacturers can readily identify when system users or
+components are in violation of SELinux policy. Manufacturers can then repair
+this bad behavior, either by changes to the software, SELinux policy, or
+both.</p>
+
+<p>Specifically, these log messages indicate what roles and processes would fail
+under policy enforcement and why. Android is taking this information, analyzing
+it and refining its default security policy so that it works on a wide range of
+Android devices with little customization. With this policy, OEMs must only
+accommodate their own changes to the Android operating system.</p>
+
+<p>Then run the SELinux-enabled devices through the <a
+href="{@docRoot}compatibility/cts-intro.html">Android
+Compatibility Test Suite</a> (CTS).</p> <p>As said, any new policies must still
+meet the <a href="{@docRoot}compatibility/index.html">Android
+Compatibility program</a> requirements:<br><a
+href="{@docRoot}compatibility/android-4.3-cdd.pdf">http://source.android.com/compatibility/android-4.3-cdd.pdf</a></p>
+
+<p>If you run the devices through the CTS and find no errors in
+<code>dmesg</code>, you can consider your SELinux implementation compatible.</p>
+
+<p>Finally, if possible, turn on enforcement internally (on devices of
+employees) to raise the visibility of failures. Identify any user issues and
+resolve them.  </p> <h2 id="help">Help</h2> Device manufacturers are strongly
+encouraged to work with their Android account managers to analyze SELinux
+results and improve policy settings. Over time, Android intends to support
+common manufacturer additions in its default SELinux policy. For more
+information, contact <a
+href="mailto:security@android.com">security@android.com</a> or Geremy Condra (<a
+href="mailto:gcondra@google.com">gcondra@google.com</a>) directly.
diff --git a/src/images/Android_Robot_100.png b/src/images/Android_Robot_100.png
new file mode 100644
index 0000000..946ee3a
--- /dev/null
+++ b/src/images/Android_Robot_100.png
Binary files differ
diff --git a/src/index.jd b/src/index.jd
index 7fa4b2f..c48a90e 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -44,7 +44,8 @@
     <h3>Updates</h3>
       <a href="{@docRoot}source/index.html">
         <h4>Source Code Available for Android 4.3</h4>
-        <p>Android is an open-source software stack for a wide array of mobile devices with different form factors. 
+        <p>Android is an open-source software stack for a wide array of mobile devices with different form factors.
+<img border="0" src="images/Android_Robot_100.png" alt="Android Partner icon" style="display:inline;float:right;margin:5px 10px"> 
         We created Android in response to our own experiences launching mobile apps. We wanted to make sure there was 
         no central point of failure so no industry player can restrict or control the innovations of any other. That's 
         why we created Android and made its source code open.</p>
diff --git a/src/source/build-numbers.jd b/src/source/build-numbers.jd
index af80f13..fc84fc8 100644
--- a/src/source/build-numbers.jd
+++ b/src/source/build-numbers.jd
@@ -430,6 +430,12 @@
 </tr>
 
 <tr>
+<td>JZO54M</td>
+<td>android-4.1.2_r2.1</td>
+<td></td>
+</tr>
+
+<tr>
 <td>JOP40C</td>
 <td>android-4.2_r1</td>
 <td>Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10</td>
@@ -479,8 +485,26 @@
 
 <tr>
 <td>JWR66N</td>
+<td>android-4.3_r0.9.1</td>
+<td>Galaxy Nexus, Nexus 7 (grouper/tilapia/flo), Nexus 4, Nexus 10</td>
+</tr>
+
+<tr>
+<td>JWR66V</td>
 <td>android-4.3_r1</td>
-<td>latest Jelly Bean version, Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10</td>
+<td>Galaxy Nexus, Nexus 7 (grouper/tilapia), Nexus 4, Nexus 10</td>
+</tr>
+
+<tr>
+<td>JSR78D</td>
+<td>android-4.3_r2</td>
+<td>Nexus 7 (deb)</td>
+</tr>
+
+<tr>
+<td>JSS15J</td>
+<td>android-4.3_r2.1</td>
+<td>latest Jelly Bean version, Nexus 7 (flo/deb)</td>
 </tr>
 
 </tbody>
diff --git a/src/source/building-devices.jd b/src/source/building-devices.jd
index 5bb2f2c..5428259 100644
--- a/src/source/building-devices.jd
+++ b/src/source/building-devices.jd
@@ -32,8 +32,7 @@
 Nexus 4, Nexus 7, and for some variants of Galaxy Nexus.
 The exact level of functionality for each device depends on the availability
 of the relevant proprietary hardware-specific binaries.</p>
-<p>For Nexus 4 "mako" and on Nexus 7 "grouper" (Wi-Fi) and "tilapia" (Mobile),
-all configurations can be used,
+<p>For Nexus 4 and Nexus 7, all configurations can be used,
 and all the hardware is functional.
 Due to hardware differences, do not use 4.1.1 on a Nexus 7 that
 was originally sold with 4.1.2 or newer.</p>
@@ -77,6 +76,14 @@
 </thead>
 <tbody>
 <tr>
+<td>flo</td>
+<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
+</tr>
+<tr>
+<td>deb</td>
+<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
+</tr>
+<tr>
 <td>manta</td>
 <td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press and hold <em>Power</em></td>
 </tr>
@@ -186,6 +193,16 @@
 </thead>
 <tbody>
 <tr>
+<td>flo</td>
+<td>android-4.3_r2.1 or master</td>
+<td>aosp_flo-userdebug</td>
+</tr>
+<tr>
+<td>deb</td>
+<td>android-4.3_r2.1 or master</td>
+<td>aosp_deb-userdebug</td>
+</tr>
+<tr>
 <td>manta</td>
 <td>android-4.2.2_r1</td>
 <td>full_manta-userdebug</td>
@@ -203,7 +220,7 @@
 <tr>
 <td>tilapia</td>
 <td>android-4.3_r1 or master</td>
-<td>aosp_grouper-userdebug</td>
+<td>aosp_tilapia-userdebug</td>
 </tr>
 <tr>
 <td>maguro</td>
diff --git a/src/source/building-kernels.jd b/src/source/building-kernels.jd
index 3cc6c1e..092e3d3 100644
--- a/src/source/building-kernels.jd
+++ b/src/source/building-kernels.jd
@@ -40,6 +40,18 @@
     <th>Build configuration</th>
   </tr>
   <tr>
+    <td>flo</td>
+    <td>device/asus/flo-kernel/kernel</td>
+    <td>kernel/msm</td>
+    <td>flo_defconfig</td>
+  </tr>
+  <tr>
+    <td>deb</td>
+    <td>device/asus/flo-kernel/kernel</td>
+    <td>kernel/msm</td>
+    <td>flo_defconfig</td>
+  </tr>
+  <tr>
     <td>manta</td>
     <td>device/samsung/manta/kernel</td>
     <td>kernel/exynos</td>
@@ -173,4 +185,4 @@
 <p>
 The kernel binary is output as `arch/arm/boot/zImage`, and needs to be copied
 into the Android source tree in order to build the matching boot image.
-</p>
\ No newline at end of file
+</p>
diff --git a/src/source/code-lines.jd b/src/source/code-lines.jd
index 97a6ca8..95188ee 100644
--- a/src/source/code-lines.jd
+++ b/src/source/code-lines.jd
@@ -25,10 +25,10 @@
 </div>
 
 <p>
-  The Android Open Source Project maintains a complete software stack intended to be ported by
-  OEMs and other device implementors to run on actual hardware. To maintain the quality of
-  Android, Google has contributed full-time engineers, product managers, UI designers, Quality
-  Assurance, and all the other roles required to bring modern devices to market.
+  The Android Open Source Project (AOSP) maintains a complete software stack to be ported by
+  OEMs and other device implementors and run on their own hardware. To maintain the quality of
+  Android, Google has contributed full-time engineers, product managers, user interface designers,
+  quality assurance testers, and all the other roles required to bring modern devices to market.
 </p>
 
 <p>
@@ -40,9 +40,8 @@
 <p>
   The chart below depicts at a conceptual level how AOSP manages code and releases. We're
   referring to these as "code lines" instead of "branches" simply because at any given moment
-  there may be more than one branch extant for a given "code line". For instance, when a
-  release is cut, sometimes that will become a new branch in git, and sometimes not, based on
-  the needs of the moment.
+  there may be more than one branch for a given "code line". For instance, when a
+  release is cut, it may or may not become a new branch based on the needs of the moment.
 </p>
 <ol>
   <li>
@@ -60,14 +59,14 @@
   <li>
 	<p>
 	  In parallel, Google works internally on the next version of the Android platform and
-	  framework, working according to the product's needs and goals. We develop the next
+	  framework according to the product's needs and goals. We develop the next
 	  version of Android by working with a device partner on a flagship device whose
 	  specifications are chosen to push Android in the direction we believe it should go.
 	</p>
   </li>
   <li>
 	<p>
-	  When the "n+1"th version is ready, it will be published to the public source tree, and
+	  When the "n+1"th version is ready, it will be published to the public source tree and
 	  become the new latest release.
 	</p>
   </li>
@@ -76,38 +75,32 @@
   <img src="{@docRoot}images/code-lines.png" alt="code-line diagram">
 </p>
 
-<h2 id="notes-and-explanations">
-  Notes and Explanations
+<h2 id="terms-and-caveats">
+  Terms and Caveats
 </h2>
 <ul>
   <li>
 	<p>
 	  A <em>release</em> corresponds to a formal version of the Android platform, such as 1.5,
-	  2.1, and so on. Generally speaking, a release of the platform corresponds to a version of
-	  the <code>SdkVersion</code> field used in AndroidManifest.xml files, and defined in
+	  2.1, and so on. Generally speaking, a release of the platform corresponds to the version in
+	  the <code>SdkVersion</code> field of AndroidManifest.xml files and defined within
 	  <code>frameworks/base/api</code> in the source tree.
 	</p>
   </li>
   <li>
 	<p>
 	  An <em>upstream</em> project is an open-source project from which the Android stack is
-	  pulling code. These include obvious projects such as the Linux kernel and WebKit, but
-	  over time we are migrating some of the semi-autonomous Android projects (such as Dalvik,
+	  pulling code. These include obvious projects such as the Linux kernel and WebKit.
+	  Over time we are migrating some of the semi-autonomous Android projects (such as Dalvik,
 	  the Android SDK tools, Bionic, and so on) to work as "upstream" projects. Generally,
 	  these projects are developed entirely in the public tree. For some upstream projects,
-	  development is done by contributing directly to the upstream project itself. See <a href= 
+	  development is done by contributing directly to the upstream project itself. See <a href=
 	  "submit-patches.html#upstream-projects">Upstream Projects</a> for details. In both cases,
 	  snapshots will be periodically pulled into releases.
 	</p>
   </li>
   <li>
 	<p>
-	  The diagram refers to "Eclair" and "FroYo"; however, they are simply placeholders, and
-	  the diagram actually reflects the overall release and branching strategy.
-	</p>
-  </li>
-  <li>
-	<p>
 	  At all times, a release code-line (which may actually consist of more than one actual
 	  branch in git) is considered the sole canonical source code for a given Android platform
 	  version. OEMs and other groups building devices should pull only from a release branch.
@@ -115,14 +108,14 @@
   </li>
   <li>
 	<p>
-	  We will set up "experimental" code-lines to capture changes from the community, so that
-	  they can be iterated on, with an eye toward stability.
+	  "Experimental" code-lines are established to capture changes from the community so they can
+          be iterated on with an eye toward stability.
 	</p>
   </li>
   <li>
 	<p>
-	  Changes that prove stable will eventually be pulled into a release branch. Note that this
-	  will only apply to bug fixes, app improvements, and other things that do not affect the
+	  Changes that prove stable will eventually be pulled into a release branch. Note this
+	  applies only to bug fixes, application improvements, and other changes that do not affect the
 	  APIs of the platform.
 	</p>
   </li>
@@ -135,7 +128,8 @@
   <li>
 	<p>
 	  The "n+1"th version (that is, next major version of the framework and platform APIs) will
-	  be developed by Google internally. See below for details.
+	  be developed by Google internally. See <a href=
+          "#about-private-code-lines">About Private Codelines</a> for details.
 	</p>
   </li>
   <li>
@@ -169,23 +163,23 @@
 </p>
 <p>
   OEMs and other device builders naturally want to ship devices with the latest version of
-  Android. Similarly, application developers don't want to deal with more extant platform
+  Android. Similarly, application developers don't want to deal with more platform
   versions than strictly necessary. Meanwhile, Google retains responsibility for the strategic
-  direction of Android as a platform and a product. Our approach is based on focusing on a
-  small number of flagship devices to drive features, and secure protections of Android-related
-  intellectual property.
+  direction of Android as a platform and a product. Our approach focuses on a small number of
+  flagship devices to drive features while securing protections of Android-related intellectual
+  property. 
 </p>
 <p>
-  As a result, Google frequently has possession of confidential information of third parties,
-  and we must refrain from revealing sensitive features until we've secured the appropriate
-  protections. Meanwhile, there are real risks to the platform arising from having too many
+  As a result, Google frequently has possession of confidential information from third parties.
+  And we must refrain from revealing sensitive features until we've secured the appropriate
+  protections. In addition, there are real risks to the platform arising from having too many
   platform versions extant at once. For these reasons, we have structured the open-source
   project -- including third-party contributions -- to focus on the currently-public stable
   version of Android. "Deep development" on the next version of the platform will happen in
-  private, until it's ready to become an official release.
+  private until it's ready to become an official release.
 </p>
 <p>
-  We recognize that many contributors will disagree with this approach. We respect that others
-  may have a different point of view; however, this is the approach that we feel is best, and
+  We recognize many contributors will disagree with this approach. We respect others
+  may have a different point of view; however, this is the approach we feel is best, and
   the one we've chosen to implement.
 </p>
diff --git a/src/source/faqs.jd b/src/source/faqs.jd
index 7c1e5d4..60e02c2 100644
--- a/src/source/faqs.jd
+++ b/src/source/faqs.jd
@@ -31,54 +31,52 @@
 people, the processes, and the source code that make up Android.</p>
 <p>The people oversee the project and develop the actual source code. The
 processes refer to the tools and procedures we use to manage the development
-of the software. The net result is the source code that you can use to build
-cell phone and other devices.</p>
+of the software. The net result is the source code you can use to build
+mobile phones and other devices.</p>
 <h3 id="why-did-we-open-the-android-source-code">Why did we open the Android source code?</h3>
 <p>Google started the Android project in response to our own experiences
-launching mobile apps. We wanted to make sure that there would always be an
+launching mobile apps. We wanted to make sure there would always be an
 open platform available for carriers, OEMs, and developers to use to make
-their innovative ideas a reality. We also wanted to make sure that there was no
-central point of failure, so that no single industry player could restrict or control
+their innovative ideas a reality. We also wanted to make sure there was no
+central point of failure, so no single industry player could restrict or control
 the innovations of any other.  The single most important goal of the Android
-Open-Source Project (AOSP) is to make sure that the open-source Android
+Open Source Project (AOSP) is to make sure that the open-source Android
 software is implemented as widely and compatibly as possible, to everyone's
 benefit.</p>
-<p>You can find more information on this topic at our Project Philosophy page.</p>
 <h3 id="what-kind-of-open-source-project-is-android">What kind of open-source project is Android?</h3>
-<p>Google oversees the development of the core Android open-source platform,
-and works to create robust developer and user communities. For the most part
+<p>Google oversees the development of the core Android open-source platform
+and works to create robust developer and user communities. For the most part,
 the Android source code is licensed under the permissive Apache Software
 License 2.0, rather than a "copyleft" license. The main reason for this is
 because our most important goal is widespread adoption of the software, and
 we believe that the ASL2.0 license best achieves that goal.</p>
-<p>You can find more information on this topic at our Project Philosophy and
-Licensing pages. </p>
+<p>You can find more information on this topic on our <a href="{@docRoot}source/licenses.html">Licenses</a> page.</p>
 <h3 id="why-is-google-in-charge-of-android">Why is Google in charge of Android?</h3>
 <p>Launching a software platform is complex. Openness is vital to the
 long-term success of a platform, since openness is required to attract
 investment from developers and ensure a level playing field. However, the
-platform itself must also be a compelling product to end users.</p>
+platform itself must also be a compelling product to users.</p>
 <p>That's why Google has committed the professional engineering resources
 necessary to ensure that Android is a fully competitive software platform.
 Google treats the Android project as a full-scale product development
-operation, and strikes the business deals necessary to make sure that great
+operation and strikes the business deals necessary to make sure great
 devices running Android actually make it to market.</p>
-<p>By making sure that Android is a success with end users, we help ensure the
-vitality of Android as a platform, and as an open-source project. After all,
+<p>By making sure Android is a success with users, we help ensure the
+vitality of Android as a platform and as an open-source project. After all,
 who wants the source code to an unsuccessful product?</p>
-<p>Google's goal is to ensure a successful ecosystem around Android, but no
-one is required to participate, of course. We opened the Android source code
+<p>Google's goal is to ensure a successful ecosystem around Android. Of course, no
+one is required to participate. We opened the Android source code
 so anyone can modify and distribute the software to meet their own needs.</p>
 <h3 id="what-is-googles-overall-strategy-for-android-product-development">What is Google's overall strategy for Android product development?</h3>
-<p>We focus on releasing great devices into a competitive marketplace, and
+<p>We aim to release great devices into a competitive marketplace. We
 then incorporate the innovations and enhancements we made into the core
-platform, as the next version.</p>
-<p>In practice, this means that the Android engineering team typically focuses
-on a small number of "flagship" devices, and develops the next version of
+platform as the next version.</p>
+<p>In practice, this means the Android engineering team typically focuses
+on a small number of "flagship" devices and develops the next version of
 the Android software to support those product launches. These flagship
 devices absorb much of the product risk and blaze a trail for the broad OEM
 community, who follow up with many more devices that take advantage of the
-new features. In this way, we make sure that the Android platform evolves
+new features. In this way, we make sure the Android platform evolves
 according to the actual needs of real-world devices.</p>
 <h3 id="how-is-the-android-software-developed">How is the Android software developed?</h3>
 <p>Each platform version of Android (such as 1.5, 1.6, and so on) has a
@@ -93,60 +91,61 @@
 <p>Finally, Google works on the next version of the Android platform in tandem
 with developing a flagship device. This branch pulls in changes from the
 experimental and stable branches as appropriate.</p>
-<p>You can find more information on this topic at our <a href="{@docRoot}source/code-lines.html">Branches and Releases</a>.</p>
+<p>You can find more information on this topic at our <a href="{@docRoot}source/code-lines.html">Codelines,
+Branches and Releases</a> page.</p>
 <h3 id="why-are-parts-of-android-developed-in-private">Why are parts of Android developed in private?</h3>
-<p>It typically takes over a year to bring a device to market, but of course
+<p>It typically takes more than a year to bring a device to market. And, of course,
 device manufacturers want to ship the latest software they can. Developers,
-meanwhile, don't want to have to constantly track new versions of the
+meanwhile, don't want to constantly track new versions of the
 platform when writing apps. Both groups experience a tension between
-shipping products, and not wanting to fall behind.</p>
+shipping products and not wanting to fall behind.</p>
 <p>To address this, some parts of the next version of Android including the
 core platform APIs are developed in a private branch. These APIs constitute
 the next version of Android. Our aim is to focus attention on the current
-stable version of the Android source code, while we create the next version
-of the platform as driven by flagship Android devices. This allows developers
-and OEMs to focus on a single version without having to track unfinished
+stable version of the Android source code while we create the next version
+of the platform. This allows developers
+and OEMs to use a single version without tracking unfinished
 future work just to keep up. Other parts of the Android system that aren't
 related to application compatibility are developed in the open, however.
 It's our intention to move more of these parts to open development over
 time.</p>
 <h3 id="when-are-source-code-releases-made">When are source code releases made?</h3>
-<p>When they are ready. Some parts of Android are developed in the open,
+<p>When they are ready. Releasing the source code is a fairly complex process.
+Some parts of Android are developed in the open,
 so that source code is always available. Other parts are developed first in
 a private tree, and that source code is released when the next platform
 version is ready.</p>
 <p>In some releases, core platform APIs will be ready far enough in advance
-that we can push the source code out for an early look in advance of the
-device's release; however in others, this isn't possible. In all cases, we
+that we can push the source code out for an early look prior to the
+device's release; however in other releases, this isn't possible. In all cases, we
 release the platform source when we feel the version has stabilized enough,
-and when the development process permits. Releasing the source code is a
-fairly complex process.</p>
+and when the development process permits.</p>
 <h3 id="what-is-involved-in-releasing-the-source-code-for-a-new-android-version">What is involved in releasing the source code for a new Android version?</h3>
 <p>Releasing the source code for a new version of the Android platform is a
 significant process. First, the software gets built into a system image for
-a device, and put through various forms of certification, including
+a device and put through various forms of certification, including
 government regulatory certification for the regions the phones will be
 deployed. It also goes through operator testing. This is an important phase
 of the process, since it helps shake out a lot of software bugs.</p></p>
 <p>Once the release is approved by the regulators and operators, the
 manufacturer begins mass producing devices, and we turn to releasing the
 source code.</p>
-<p>Simultaneous to mass production the Google team kicks off several efforts
-to prepare the open source release. These efforts include final API changes
-and documentation (to reflect any changes that were made during
+<p>Simultaneous to mass production, the Google team kicks off several efforts
+to prepare the open source release. These efforts include making final API changes,
+updating documentation (to reflect any modifications that were made during
 qualification testing, for example), preparing an SDK for the new version,
 and launching the platform compatibility information.</p>
 <p>Also included is a final legal sign-off to release the code into open
 source. Just as open source contributors are required to sign a Contributors
-License Agreement attesting to their IP ownership of their contribution,
-Google too must verify that it is clear to make contributions.</p>
-<p>Starting at the time mass production begins, the software release process
-usually takes around a month, which often roughly places source code
-releases around the same time that the devices reach users.</p>
+License Agreement attesting to their intellectual property ownership of their
+contribution, Google too must verify it is clear to make contributions.</p>
+<p>From the time mass production begins, the software release process
+usually takes around a month. This often places source code releases
+around the same time the devices reach users.</p>
 <h3 id="how-does-the-aosp-relate-to-the-android-compatibility-program">How does the AOSP relate to the Android Compatibility Program?</h3>
-<p>The Android Open-Source Project maintains the Android software, and
+<p>The Android Open Source Project maintains the Android software, and
 develops new versions. Since it's open-source, this software can be used for
-any purpose, including to ship devices that are not compatible with other
+any purpose, including to develop devices that are not compatible with other
 devices based on the same source.</p>
 <p>The function of the Android Compatibility Program is to define a baseline
 implementation of Android that is compatible with third-party apps written
@@ -154,23 +153,25 @@
 Android ecosystem, including Google Play; devices that don't meet the
 compatibility requirements exist outside that ecosystem.</p>
 <p>In other words, the Android Compatibility Program is how we separate
-"Android compatible devices" from devices that merely run derivatives of the
+"Android-compatible devices" from devices that merely run derivatives of the
 source code. We welcome all uses of the Android source code, but only
-Android compatible devices -- as defined and tested by the Android
+Android-compatible devices -- as defined and tested by the Android
 Compatibility Program -- may participate in the Android ecosystem.</p>
 <h3 id="how-can-i-contribute-to-android">How can I contribute to Android?</h3>
 <p>There are a number of ways you can contribute to Android. You can report
 bugs, write apps for Android, or contribute source code to the Android
-Open-Source Project.</p>
-<p>There are some limits on the kinds of code contributions we are willing or
+Open Source Project.</p>
+<p>There are some limits to the kinds of code contributions we are willing or
 able to accept. For instance, someone might want to contribute an
 alternative application API, such as a full C++-based environment. We would
-decline that contribution, since Android is focused on applications that run
-in the Dalvik VM. Alternatively, we won't accept contributions such as GPL
+decline that contribution, since Android encourages applications to be run
+in the Dalvik VM. Similarly, we won't accept contributions such as GPL
 or LGPL libraries that are incompatible with our licensing goals.</p>
-<p>We encourage those interested in contributing source code to contact us via
-the AOSP Community page prior to beginning any work. You can find more
-information on this topic at the Getting Involved page.</p>
+<p>We encourage those interested in contributing source code to contact us
+via the channels listed on the <a href="{@docRoot}source/community/index.html">
+Android Community</a> page prior to beginning any work. You can find more
+information on this topic from the <a href="{@docRoot}source/contributing.html">
+Contributing</a> page.</p>
 <h3 id="how-do-i-become-an-android-committer">How do I become an Android committer?</h3>
 <p>The Android Open Source Project doesn't really have a notion of a
 "committer". All contributions -- including those authored by Google
@@ -181,40 +182,40 @@
 <p>Once submitted, changes need to be accepted by a designated Approver.
 Approvers are typically Google employees, but the same approvers are
 responsible for all submissions, regardless of origin.</p>
-<p>You can find more information on this topic at the <a href="source/submit-patches.html">Submitting Patches</a> page.</p>
+<p>You can find more information on this topic at the <a href="submit-patches.html">Submitting Patches</a> page.</p>
 <a href="#top">Back to top</a>  
 <h2 id="compatibility">Compatibility</h2>
 <h3 id="what-does-compatibility-mean">What does "compatibility" mean?</h3>
-<p>We define an "Android compatible" device as one that can run any
+<p>We define an "Android-compatible device" as one that can run any
 application written by third-party developers using the Android SDK and NDK.
 We use this as a filter to separate devices that can participate in the
-Android app ecosystem, and those that cannot. Devices that are properly
+Android app ecosystem and those that cannot. Devices that are properly
 compatible can seek approval to use the Android trademark. Devices that are
 not compatible are merely derived from the Android source code and may not
 use the Android trademark.</p>
 <p>In other words, compatibility is a prerequisite to participate in the
-Android apps ecosystem. Anyone is welcome to use the Android source code,
-but if the device isn't compatible, it's not considered part of the Android
+Android apps ecosystem. Anyone is welcome to use the Android source code.
+But if the device isn't compatible, it's not considered part of the Android
 ecosystem.</p>
 <h3 id="what-is-the-role-of-google-play-in-compatibility">What is the role of Google Play in compatibility?</h3>
 <p>Devices that are Android compatible may seek to license the Google Play
 client software. This allows them to become part of the Android app
-ecosystem, by allowing users to download developers' apps from a catalog
+ecosystem, enabling their users to download developers' apps from a catalog
 shared by all compatible devices. This option isn't available to devices
 that aren't compatible.</p>
 <h3 id="what-kinds-of-devices-can-be-android-compatible">What kinds of devices can be Android compatible?</h3>
-<p>The Android software can be ported to a lot of different kinds of devices,
-including some on which third-party apps won't run properly. The Android
-Compatibility Definition Document (CDD) spells out the specific device
-configurations that will be considered compatible.</p>
+<p>The Android software can be ported to many different kinds of devices,
+including some on which third-party apps won't run properly. The
+<a href="{@docRoot}compatibility/index.html">Android Compatibility Definition
+Document</a> (CDD) spells out the specific device configurations that will be
+considered compatible.</p>
 <p>For example, though the Android source code could be ported to run on a
-phone that doesn't have a camera, the CDD requires that in order to be
-compatible, all phones must have a camera. This allows developers to rely
-on a consistent set of capabilities when writing their apps.</p>
+phone that doesn't have a camera, the CDD requires all phones to have a camera.
+This allows developers to rely on a consistent set of capabilities when writing their apps.</p>
 <p>The CDD will evolve over time to reflect market realities. For instance,
-the 1.6 CDD only allows cell phones, but the 2.1 CDD allows devices to omit
-telephony hardware, allowing for non-phone devices such as tablet-style
-music players to be compatible. As we make these changes, we will also
+version 1.6 of the CDD supports only cell phones. But the 2.1 CDD allows devices
+to omit telephony hardware, enabling non-phone devices such as tablet-style music
+players to be compatible. As we make these changes, we will also
 augment Google Play to allow developers to retain control over where
 their apps are available. To continue the telephony example, an app that
 manages SMS text messages would not be useful on a media player, so Google
@@ -223,26 +224,27 @@
 <h3 id="if-my-device-is-compatible-does-it-automatically-have-access-to-google-play-and-branding">If my device is compatible, does it automatically have access to Google Play and branding?</h3>
 <p>Google Play is a service operated by Google. Achieving compatibility is
 a prerequisite for obtaining access to the Google Play software and branding.
-Device manufacturers should contact Google to obtain access to Google
-Play.</p>
+Device manufacturers should contact <a
+href="mailto:android-partnerships@google.com">android-partnerships@google.com</a>
+to obtain access to Google Play.</p>
 <h3 id="if-i-am-not-a-manufacturer-how-can-i-get-google-play">If I am not a manufacturer, how can I get Google Play?</h3>
 <p>Google Play is only licensed to handset manufacturers shipping devices.
-For questions about specific cases, contact android-partnerships@google.com.</p>
+For questions about specific cases, contact <a
+href="mailto:android-partnerships@google.com">android-partnerships@google.com</a>.</p>
 <h3 id="how-can-i-get-access-to-the-google-apps-for-android-such-as-maps">How can I get access to the Google apps for Android, such as Maps?</h3>
-<p>The Google apps for Android, such as YouTube, Google Maps and Navigation,
-Gmail, and so on are Google properties that are not part of Android, and
-are licensed separately.  Contact android-partnerships@google.com for
-inquiries related to those apps.</p>
+<p>The Google apps for Android, such as YouTube, Google Maps,
+Gmail, and more, are Google properties that are not part of Android and
+are licensed separately.  Contact <a
+href="mailto:android-partnerships@google.com">android-partnerships@google.com</a>
+for inquiries related to those apps.</p>
 <h3 id="is-compatibility-mandatory">Is compatibility mandatory?</h3>
 <p>No. The Android Compatibility Program is optional. Since the Android source
-code is open, anyone can use it to build any kind of device. However, if a
-manufacturer wishes to use the Android name with their product, or wants
-access to Google Play, they must first demonstrate that the device is
-compatible.</p>
+code is open, anyone can use it to build any kind of device. However, if manufacturers
+wish to use the Android name with their products, or want access to Google Play,
+they must first demonstrate their devices are compatible.</p>
 <h3 id="how-much-does-compatibility-certification-cost">How much does compatibility certification cost?</h3>
 <p>There is no cost to obtain Android compatibility for a device. The
-Compatibility Test Suite is open-source and available to anyone to use to
-test a device.</p>
+Compatibility Test Suite is open-source and available to anyone for device testing.</p>
 <h3 id="how-long-does-compatibility-take">How long does compatibility take?</h3>
 <p>The process is automated. The Compatibility Test Suite generates a report
 that can be provided to Google to verify compatibility. Eventually we intend
@@ -251,7 +253,7 @@
 <p>Since Google is responsible for the overall direction of Android as a
 platform and product, Google maintains the Compatibility Definition Document
 for each release. We draft the CDD for a new Android version in consultation
-with a number of OEMs, who provide input on its contents.</p>
+with various OEMs who provide input on its contents.</p>
 <h3 id="how-long-will-each-android-version-be-supported-for-new-devices">How long will each Android version be supported for new devices?</h3>
 <p>Since Android's code is open-source, we can't prevent someone from using an
 old version to launch a device. Instead, Google chooses not to license the
@@ -260,9 +262,9 @@
 but those devices won't use the Android name and will exist outside the
 Android apps ecosystem, just as if they were non-compatible.</p>
 <h3 id="can-a-device-have-a-different-user-interface-and-still-be-compatible">Can a device have a different user interface and still be compatible?</h3>
-<p>The Android Compatibility Program focuses on whether a device can run
+<p>The Android Compatibility Program determines whether a device can run
 third-party applications. The user interface components shipped with a
-device (such as home screen, dialer, color scheme, and so on) does not
+device (such as home screen, dialer, color scheme, and so on) do not
 generally have much effect on third-party apps. As such, device builders are
 free to customize the user interface as much as they like. The Compatibility
 Definition Document does restrict the degree to which OEMs may alter the
@@ -304,7 +306,7 @@
 <p>The CTS is licensed under the same Apache Software License 2.0 that the
 bulk of Android uses.</p>
 <h3 id="does-the-cts-accept-contributions">Does the CTS accept contributions?</h3>
-<p>Yes please! The Android Open-Source Project accepts contributions to
+<p>Yes please! The Android Open Source Project accepts contributions to
 improve the CTS in the same way as for any other component. In fact,
 improving the coverage and quality of the CTS test cases is one of the best
 ways to help out Android.</p>
@@ -323,16 +325,14 @@
 of the most secure mobile platforms available while still fulfilling our goal
 of opening the mobile device space to innovation and competition.</p>
 
-<p> A comprehensive overview  of the <a
-href="http://source.android.com/tech/security/index.html">Android
-security model and Android security processes</a> is provided in the Android
-Open Source Project Website.</p>
+<p>See the <a href="{@docRoot}devices/tech/security/index.html">Android Security
+Overview</a> for a comprehensive description of the Android security model and processes.</p>
 
 <p>Application developers play an important part in the security of Android.
 The Android Platform provides developers with a rich <a
-href="http://code.google.com/android/devel/security.html">security model</a>
-that to request the capabilities, or access, needed by their
-application and to define new capabilities that other applications can request.
+href="http://developer.android.com/training/articles/security-tips.html">security model</a>
+that allows them to request capabilities, or access, from users
+and define new capabilities other applications can request.
 The Android user can choose to grant or deny an application's request for
 certain capabilities on the handset.</p>
 
@@ -343,17 +343,16 @@
 </p>
 
 
-<h3 id="issue">I think I found a security flaw. How do I
-report it?</h3>
+<h3 id="issue">I think I found a security flaw. How do I report it?</h3>
 
 <p>You can reach the Android security team at <a
 href="mailto:security@android.com">security@android.com</a>. If you like, you
 can protect your message using our <a
-href="http://code.google.com/android/security_at_android_dot_com.txt">PGP
+href="http://developer.android.com/security_at_android_dot_com.txt">PGP
 key</a>.</p>
 
 <p>We appreciate researchers practicing responsible disclosure by emailing us
-with a detailed summary of the issue and keeping the issue confidential while
+a detailed summary of the issue and keeping the issue confidential while
 users are at risk. In return, we will make sure to keep the researcher informed
 of our progress in issuing a fix. </p>
 
@@ -368,16 +367,16 @@
 
 <h3 id="use">How do I securely use my Android phone?</h3>
 
-<p>Android was designed so that you can safely use your phone without making
+<p>Android was designed so you can safely use your phone without making
 any changes to the device or installing any special software.  Android applications
 run in an Application Sandbox that limits access to sensitive information or data
 with the users permission.</p>
 
 <p>To fully benefit from the security protections in Android, it is important that
-users only download and install software from known sources.</p>
+users download and install software only from known sources.</p>
 
 <p>As an open platform, Android allows users to visit any website and load
-software from any developer onto a device. As with a home PC, the user must be
+software from any developer onto a device. As with a home PC, users must be
 aware of who is providing the software they are downloading and must decide
 whether they want to grant the application the capabilities it requests.
 This decision can be informed by the user's judgment of the software
@@ -396,22 +395,22 @@
 being distributed from and why you suspect it of being malicious software.</p>
 
 <p>The term <i>malicious software</i> is subjective, and we cannot make an
-exhaustive definition.  Some examples of what the Android Security Team believes
+exhaustive definition.  Some examples of what the Android security team believes
 to be malicious software is any application that:
 <ul>
     <li>uses a bug or security vulnerability to gain permissions that have not
-    been granted by the user</li>
+    been granted by the user.</li>
     <li>shows the user unsolicited messages (especially messages urging the
-    user to buy something);</li>
-    <li>resists (or attempts to resist) the user's effort to uninstall it;</li>
-    <li>attempts to automatically spread itself to other devices;</li>
-    <li>hides its files and/or processes;</li>
+    user to buy something).</li>
+    <li>resists (or attempts to resist) the user's effort to uninstall it.</li>
+    <li>attempts to automatically spread itself to other devices.</li>
+    <li>hides its files and/or processes.</li>
     <li>discloses the user's private information to a third party, without the
-    user's knowledge and consent;</li>
+    user's knowledge and consent.</li>
     <li>destroys the user's data (or the device itself) without the user's
-    knowledge and consent;</li>
+    knowledge and consent.</li>
     <li>impersonates the user (such as by sending email or buying things from a
-    web store) without the user's knowledge and consent; or</li>
+    web store) without the user's knowledge and consent.</li>
     <li>otherwise degrades the user's experience with the device.</li>
 </ul>
 </p>
@@ -421,12 +420,12 @@
 
 <p>The manufacturer of each device is responsible for distributing software
 upgrades for it, including security fixes. Many devices will update themselves
-automatically with software downloaded "over the air", while some devices
+automatically with software downloaded "over the air" (OTA), while some devices
 require the user to upgrade them manually.</p>
 
 <p>Google provides software updates for a number of Android devices, including
 the <a href="http://www.google.com/nexus">Nexus</a>
-series of devices, using an "over the air" (OTA) update. These updates may include
+series of devices, using an OTA update. These updates may include
 security fixes as well as new features.</p>
 
 <h3 id="directfix">Can I get a fix directly from the
diff --git a/src/source/index.jd b/src/source/index.jd
index e39c611..46d5431 100644
--- a/src/source/index.jd
+++ b/src/source/index.jd
@@ -18,15 +18,15 @@
 -->
 <p>
 Android is an open-source software stack created for a wide array of devices
-with different form factors. The primary purpose of Android is to create an
+with different form factors. The primary purposes of Android are to create an
 open software platform available for carriers, OEMs, and developers to make
-their innovative ideas a reality and to create a successful,
-real-world product that improves the mobile experience for end users.
+their innovative ideas a reality and to introduce a successful,
+real-world product that improves the mobile experience for users.
 
-We also wanted to make sure that there was
+We also wanted to make sure there was
 no central point of failure, where one industry player could restrict or
 control the innovations of any other. The result is a full, production-quality
-consumer product whose source is open for customization and porting.
+consumer product with source code open for customization and porting.
 </p>
 
 
@@ -35,13 +35,14 @@
 <h2 id="governance-philosophy">Governance Philosophy</h2
 <p>Android was originated by a group of companies known as the Open
 Handset Alliance, led by Google. Today, many companies -- both original members
-of the OHA and others -- have invested heavily in Android, typically in the form
-of allocating significant engineering resources to improve Android and bring Android devices to market.
+of the OHA and others -- have invested heavily in Android. These companies have
+allocated significant engineering resources to improve Android and bring Android
+devices to market.
 </p>
-<p>The companies that have invested in Android have done so on its merits,
-because we believe that an open platform is necessary. Android is
-intentionally and explicitly an open-source -- as opposed to free software --
-effort: a group of organizations with shared needs has pooled
+<p>The companies that have invested in Android have done so on its merits
+because we believe an open platform is necessary. Android is
+intentionally and explicitly an open-source -- as opposed to a free software --
+effort; a group of organizations with shared needs has pooled
 resources to collaborate on a single implementation of a shared product.
 The Android philosophy is pragmatic, first and foremost. The objective is
 a shared product that each contributor can tailor and customize.</p>
@@ -49,10 +50,10 @@
 <p>Uncontrolled customization can, of course, lead to incompatible
 implementations. To prevent this, the Android Open Source Project also maintains the <a href="{@docRoot}compatibility/index.html">Android
 Compatibility Program</a>, which spells out what it means to be "Android
-compatible", and what is required of device builders to achieve that status.
+compatible" and what is required of device builders to achieve that status.
 Anyone can (and will!) use the Android source code for any purpose, and we
-welcome all such uses. However, in order to take part in the shared
-ecosystem of applications that we are building around Android, device builders
+welcome all legitimate uses. However, in order to take part in the shared
+ecosystem of applications we are building around Android, device builders
 must participate in the Android Compatibility Program.</p>
 
 <p>The Android Open Source Project is led by Google, who
@@ -62,4 +63,4 @@
 holistic software product, not a "distribution", specification, or collection
 of replaceable parts. Our intent is that device builders port
 Android to a device; they don't implement a specification or curate a
-distribution.</p>
\ No newline at end of file
+distribution.</p>
diff --git a/src/source/licenses.jd b/src/source/licenses.jd
index 7db245c..6287cda 100644
--- a/src/source/licenses.jd
+++ b/src/source/licenses.jd
@@ -24,14 +24,16 @@
   </div>
 </div>
 
-<p>The Android Open Source Project uses a few <a href="http://www.opensource.org/">open source initiative</a> 
+<p>The Android Open Source Project uses a few 
+<a href="http://www.opensource.org/">open source initiative</a>
 approved open source licenses for our software.</p>
-<h2 id="android-open-source-project-license">Android Open Source Project license</h2>
-<p>The preferred license for the Android Open Source Project is the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache 
-Software License, 2.0</a> ("Apache 2.0"), 
+<h2 id="android-open-source-project-license">Android Open Source Project License</h2>
+<p>The preferred license for the Android Open Source Project is the
+<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+Software License, Version 2.0</a> ("Apache 2.0"),
 and the majority of the Android software is licensed
 with Apache 2.0. While the project will strive to adhere to the preferred
-license, there may be exceptions which will be handled on a case-by-case
+license, there may be exceptions that will be handled on a case-by-case
 basis. For example, the Linux kernel patches are under the GPLv2 license with
 system exceptions, which can be found on <a href="http://www.kernel.org/pub/linux/kernel/COPYING">kernel.org</a>.</p>
 <h2 id="contributor-license-grants">Contributor License Grants</h2>
@@ -47,28 +49,28 @@
 other purpose.</p>
 <p>For a <em>corporation</em> (or other entity) that has assigned employees to
 work on the Android Open Source Project, a <a href="cla-corporate.pdf">Corporate
-Contributor License Grant</a> is available. 
+Contributor License Grant</a> is available.
 This version of the grant allows a
 corporation to authorize contributions submitted by its designated employees
 and to grant copyright and patent licenses. Note that a Corporate Contributor
 License Grant does not remove the need for any developer to sign their own
-Individual Contributor License Grant as an individual, to cover any of their
-contributions which are <em>not</em> owned by the corporation signing the
+Individual Contributor License Grant as an individual. The individual grant is needed
+to cover any of their contributions that are <em>not</em> owned by the corporation signing the
 Corporate Contributor License Grant.</p>
-<p>Please note that we based our grants on the ones that the 
+<p>Please note we based our grants on the ones the
 <a href="http://www.apache.org">Apache Software Foundation</a> uses, which can
-be found on <a href="http://www.apache.org/licenses/">the Apache web site</a>.</p>
+be found on the <a href="http://www.apache.org/licenses/">Apache web site</a>.</p>
 <h2 id="why-apache-software-license">Why Apache Software License?</h2>
 <p>We are sometimes asked why Apache Software License 2.0 is the preferred
 license for Android. For userspace (that is, non-kernel) software, we do in
 fact prefer ASL2.0 (and similar licenses like BSD, MIT, etc.) over other
 licenses such as LGPL.</p>
 <p>Android is about freedom and choice. The purpose of Android is promote
-openness in the mobile world, but we don't believe it's possible to predict or
+openness in the mobile world, and we don't believe it's possible to predict or
 dictate all the uses to which people will want to put our software. So, while
 we encourage everyone to make devices that are open and modifiable, we don't
 believe it is our place to force them to do so. Using LGPL libraries would
-often force them to do so.</p>
+often force them to do just that.</p>
 <p>Here are some of our specific concerns:</p>
 <ul>
 <li>
@@ -83,8 +85,8 @@
 <li>
 <p>LGPL requires allowance of customer modification and reverse
 engineering for debugging those modifications.  Most device makers do
-not want to have to be bound by these terms, so to minimize the burden on
-these companies we minimize usage of LGPL software in userspace.</li></p>
+not want to have to be bound by these terms. So to minimize the burden on
+these companies, we minimize usage of LGPL software in userspace.</li></p>
 </li>
 <li>
 <p>Historically, LGPL libraries have been the source of a large number
@@ -97,8 +99,8 @@
 </li>
 </ul>
 <p>The issues discussed above are our reasons for preferring ASL2.0 for
-our own code. They aren't criticisms of LGPL or other licenses. We do
-feel strongly on this topic, even to the point where we've gone out of our
-way to make sure as much code as possible is ASL2.0. However, we love all free
+our own code. They aren't criticisms of LGPL or other licenses. We are
+passionate about this topic, even to the point where we've gone out of our
+way to make sure as much code as possible is ASL2.0 licensed. However, we love all free
 and open source licenses, and respect others' opinions and preferences. We've
-simply decided that ASL2.0 is the right license for our goals.</p>
\ No newline at end of file
+simply decided ASL2.0 is the right license for our goals.</p>
diff --git a/src/source/life-of-a-bug.jd b/src/source/life-of-a-bug.jd
index 6f3b2c3..21995d5 100644
--- a/src/source/life-of-a-bug.jd
+++ b/src/source/life-of-a-bug.jd
@@ -23,26 +23,35 @@
     </ol>
   </div>
 </div>
-<p>The Android Open Source project maintains a public issue tracker where you
-can report bugs and request features for the Android software stack. (For
-details on this issue tracker, please see the <a href="report-bugs.html">Reporting Bugs</a> page).
+<p>The Android Open Source Project maintains a public issue tracker where you
+can report bugs and request features for the core Android software stack.
+(For details on this issue tracker, please see the
+<a href="report-bugs.html">Reporting Bugs</a> page).
 Reporting bugs is great (thank you!), but what happens to a bug report once
 you file it? This page describes the Life of a Bug.</p>
+
 <p>*Please note: the Android Open Source Project (AOSP) issue tracker is
-intended only for bugs and feature requests related to the Android software
-stack. Because many users find their way here looking for the Google apps for
-Android (such as Gmail and so on), we have components set up for their
-convenience. However, these apps are not part of Android, and any issues
-reported on these components are not guaranteed to to receive attention.
-Most notably, to report issues related to Google Play, you should visit the
-<a href="https://support.google.com/googleplay/">Google Play Support Forum</a>.</p>
+intended only for bugs and feature requests related to the core Android
+software stack, and is a technical tool for the Open Source community.</p>
+
+<p>This is not a customer support forum.
+You can find support for Nexus devices on
+<a href="http://support.google.com/nexus">Google's Nexus support site</a>.
+Support for other devices is provided by the device manufacturers or by the
+carriers selling those devices.</p>
+
+<p>Support for Google applications is through
+<a href="http://support.google.com/">Google's support site</a>. Support
+for 3rd-party applications is with each application's developer, e.g.
+through the contact information provided on Google Play.</p>
+
 <p>Here's the life of a bug, in a nutshell:</p>
 <ol>
 <li>
 <p>A bug is filed, and has the state "New".</p>
 </li>
 <li>
-<p>An AOSP contributor periodically reviews and triages bugs. Bugs are
+<p>An AOSP maintainer periodically reviews and triages bugs. Bugs are
 triaged into one of four "buckets": New, Open, No-Action, or Resolved.</p>
 </li>
 <li>
@@ -63,7 +72,7 @@
 <ul>
 <li>
 <p><em>New:</em>
-    The bug report has not yet been triaged (that is, reviewed by an AOSP contributor.)</p>
+    The bug report has not yet been triaged (that is, reviewed by an AOSP maintainer.)</p>
 </li>
 <li>
 <p><em>NeedsInfo:</em>
@@ -82,18 +91,7 @@
 <p><em>Unassigned:</em>
     The bug report has been recognized as an adequately
 detailed report of a legitimate issue, but has not yet been assigned to an
-AOSP contributor to be fixed. Typically, bugs in this state are considered low
-priority, at least insofar that if they were high priority, they'd be assigned
-to a contributor.</p>
-</li>
-<li>
-<p><em>Reviewed:</em>
-    Like <em>Unassigned</em>, but the issue
-represented is being tracked in a separate bug database. For example, the bug
-might have been reported via an internal bug-tracking system,
-which is considered the "master" copy. (For instance, Google maintains one
-such private issue tracker, intended primarily for bugs which contain
-sensitive information which can't be revealed publicly.)</p>
+AOSP contributor to be fixed.</p>
 </li>
 <li>
 <p><em>Assigned:</em>
@@ -102,14 +100,15 @@
 </li>
 </ul>
 <p>Typically, a given bug will start in <em>Unassigned</em>, where it
-will remain until it is associated with a specific upcoming release, at which
-point it will enter <em>Reviewed</em> or <em>Assigned</em>. However,
+will remain until someone intends to resolve it, at which
+point it will enter <em>Assigned</em>. However,
 note that this isn't a guarantee, and it's not uncommon for bugs to go from
 <em>Unassigned</em> to one of the Resolved states.</p>
 <p>In general, if a bug is in one of these Open states, the AOSP team has
-recognized it as a legitimate issue and will fix it according to the product
-priorities and milestones. However, it's impossible to guarantee a fix in time 
-for any particular release.</p>
+recognized it as a legitimate issue, and a high-quality contribution fixing
+that bug is likely to get accepted. However, it's impossible to guarantee a
+fix in time for any particular release.</p>
+
 <h2 id="no-action-issues">No-Action Issues</h2>
 <p>This bucket contains bugs that have for one reason or another been
 determined to not require any action.</p>
@@ -120,10 +119,9 @@
 regrettably, do not want.</p>
 </li>
 <li>
-<p><em>Question:</em>
-    Someone mistook the issue tracker for a help forum.
-(This is not as uncommon as you might think: many users whose native language
-isn't English misunderstand the site and make this mistake.)</p>
+<p><em>Duplicate:</em>
+    There was already an identical report in the issue tracker. Any actual
+action will be reported on that report.</p>
 </li>
 <li>
 <p><em>Unreproducible:</em>
@@ -133,40 +131,58 @@
 that the bug was fixed in a later release.</p>
 </li>
 <li>
+<p><em>Obsolete:</em>
+    Similar to <em>Unreproducible,</em> but with a reasonable certainty
+that the bug did exist in the reported version but was already fixed in
+a later release.</p>
+</li>
+<li>
 <p><em>WorkingAsIntended:</em>
-    An AOSP contributor has determined that the
+    An AOSP maintainer has determined that the
 behavior described isn't a bug, but is the intended behavior. This state is
 also commonly referred to as "WAI".</p>
 </li>
 <li>
 <p><em>Declined:</em>
     This is like <em>WorkingAsIntended</em>, except
-typically used for feature requests instead of bugs.  That is, an AOSP
-contributor has determined that the request is not going to be implemented in
+typically used for feature requests instead of bugs. That is, an AOSP
+maintainer has determined that the request is not going to be implemented in
 Android.</p>
 </li>
+<li>
+<p><em>NotEnoughInformation:</em>
+    The report didn't have enough information to be able to take any action.</p>
+</li>
+<li>
+<p><em>UserError:</em>
+    The report was the result of a user making a mistake while using Android,
+e.g. typing a wrong password and therefore not being able to connect to a
+server.</p>
+</li>
+<li>
+<p><em>WrongForum:</em>
+    The report cannot be handled in AOSP, typically because it is related
+to a customized device or to an external application.</p>
+</li>
+<li>
+<p><em>Question:</em>
+    Someone mistook the issue tracker for a help forum.</p>
+</li>
 </ul>
 <h2 id="resolved-issues">Resolved Issues</h2>
 <p>This bucket contains bugs that have had action taken, and are now
 considered resolved.</p>
 <ul>
 <li>
-<p><em>FutureRelease:</em>
-    This bug has been fixed (or feature implemented) in
-a source tree, but has not yet been included in a formal Android
-platform release. (Note that this may also include fixes that exist in a
-private source tree that has not yet been contributed to a public
-tree.)</p>
-</li>
-<li>
 <p><em>Released:</em>
-    This bug has been fixed, and is included in a formal
-Android platform release. When this state is set, we try to also set a
+    This bug has been fixed, and is included in a formal release.
+When this state is set, we try to also set a
 property indicating which release it was fixed in.</p>
 </li>
 <li>
-<p><em>Duplicate:</em>
-    This bug is a duplicate of another, existing bug report.</p>
+<p><em>FutureRelease:</em>
+    This bug has been fixed (or feature implemented) in
+a source tree, but has not yet been included in a formal release.</p>
 </li>
 </ul>
 <h1 id="other-stuff">Other Stuff</h1>
@@ -176,14 +192,3 @@
 states in a formal progression. We do try to keep the system up to date, but
 we tend to do so in periodic "bug sweeps" where we review the database and
 make updates.</p>
-<p>Since the AOSP is essentially constantly evolving, we do make tweaks to
-the list of bug states and the lifecycle described above.  When we do this,
-however, we'll be sure to update this page as well.</p>
-<p>Finally, you should be aware that for a variety of reasons, there are
-actually multiple issue trackers for Android-related issues. The 
-<a href="https://code.google.com/p/android/issues/list">Google Code Project Hosting Issue Tracker</a>
-is the <em>only</em> official public issue tracker; however,
-Google also maintains a private issue tracker, own, as do most OEMs. We try to
-keep the public issue tracker in sync with private issue trackers
-wherever possible, but in cases where confidential information and security
-issues are involved, this isn't always possible.</p>
\ No newline at end of file
diff --git a/src/source/report-bugs.jd b/src/source/report-bugs.jd
index 9b85b08..0a0ffbb 100644
--- a/src/source/report-bugs.jd
+++ b/src/source/report-bugs.jd
@@ -35,7 +35,11 @@
 <p>Here's how to report non-security bugs:</p>
 <ul>
 <li>
-<p><a href="https://code.google.com/p/android/issues/advsearch">Search for your bug</a> to see if anyone has already reported it.</p>
+<p><a href="https://code.google.com/p/android/issues/advsearch">Search for
+your bug</a> to see if anyone has already reported it. Don't forget to
+search for all issues, not just open ones, as your issue might already
+have been reported and closed. To help find the most popular results,
+sort the result by number of stars.</p>
 </li>
 <li>
 <p>If you find your issue and it's important to you, star it! That's how we know which bugs are most important to fix.</p>
@@ -55,6 +59,15 @@
 </ul>
 </li>
 </ul>
+<p>Keep in mind that an issue tracker is not a user support forum. It is a list
+of pending technical tasks, along with information relevant for those tasks,
+and information about progress on those tasks including which ones might
+get worked on in the short term.</p>
+<p>This issue tracker is narrowly focused on the Android Open Source Project.
+Issues with retail devices need to be reported through those devices' support
+channels, especially for devices other than Nexus. Issues with applications
+that aren't part of AOSP need to be reported with those applications'
+developers; that is also the case for Google applications.</p>
 <p>Please note that we can't guarantee that any particular bug can be fixed in
 any particular release. To see what happens to your bug once you report it,
 read <a href="life-of-a-bug.html">Life of a Bug</a>.</p>
@@ -149,4 +162,4 @@
         at
 org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$3.run(ElementContentProvider.java:200)
         at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
-</pre>
\ No newline at end of file
+</pre>
diff --git a/src/source/roles.jd b/src/source/roles.jd
index 7f2258b..44eeae4 100644
--- a/src/source/roles.jd
+++ b/src/source/roles.jd
@@ -33,46 +33,46 @@
 questions, contribute patches, report bugs, look at submitted patches, and use
 the tools. To get started with the Android code, see <a href="{@docRoot}source/contributing.html">Contributing</a>.</p>
 <h2 id="contributor">Contributor</h2>
-<p>A "Contributor" is anyone making contributions to the AOSP source code,
-including both employees of Google or other companies, as well as external
-developers who are contributing to Android on their own behalf.  There is no
-distinction between Contributors who are employed by Google, and those who are
-not: all engineers use the same tools (git, repo, and gerrit), 
+<p>"Contributors" are those making contributions to the AOSP source code,
+including both employees of Google or other companies, as well as individual
+developers who are contributing to Android on their own behalf. There is no
+distinction between contributors who are employed by Google and those who are
+not; all engineers use the same tools (git, repo, and gerrit),
 follow the same code review process, and are subject
 to the same requirements on code style and so on.</p>
 <h2 id="developer">Developer</h2>
-<p>A "Developer" is an engineer writing applications that run on Android
-devices. There is, of course, no difference in skillset between a "Developer"
-and a "Contributor", but AOSP uses "Developer" to distinguish between
-engineers using the platform and those contributing to it. Developers are
-(along with end users) the "customers" of the platform that the Contributors
-create. As such, we talk about Developers a lot, though this isn't technically
+<p>"Developers" are engineers writing applications that run on Android
+devices. There is often little difference in skillset between a developer
+and a contributor. But AOSP uses "developer" to distinguish between
+engineers using the platform and those contributing to it. Developers
+(along with users) are the "customers" of the platform the contributors
+create. As such, we talk about developers a lot, though this isn't technically
 a separate role in the AOSP per se.</p>
 <h2 id="verifier">Verifier</h2>
 <p>"Verifiers" are responsible for testing change requests. After individuals
 have submitted a significant amount of high-quality code to the project, the
-Project Leads might invite them to become Verifiers. <em>Note: at this
-time, generally Verifiers are the same as Approvers.</em></p>
+project leads might invite them to become verifiers. <em>Note: at this
+time, verifiers act similarly to approvers.</em></p>
 <h2 id="approver">Approver</h2>
 <p>"Approvers" are experienced members of the project who have demonstrated their
 design skills and have made significant technical contributions to the
-project. In the code-review process, an Approver decides whether to include or
-exclude a change. Project Leads (who are typically employed by Google) choose
-the Approvers, sometimes promoting to this position Verifiers who have
+project. In the code-review process, an approver decides whether to include or
+exclude a change. Project leads (who are typically employed by Google) choose
+the approvers, sometimes promoting to this position verifiers who have
 demonstrated their expertise within a specific project.</p>
-<h2 id="project-leads">Project Leads</h2>
+<h2 id="project-leads">Project Lead</h2>
 <p>Android consists of a number of sub-projects; you can see these in the git
-repository, as individual .git files. Tech Leads are senior Contributors who
-oversee the engineering for individual Android projects. Typically these tech
-leads will be Google employees.  A Project Lead for an individual project is
+repository as individual .git files. "Project leads" are senior contributors who
+oversee the engineering for individual Android projects. Typically these project
+leads are Google employees. A project lead for an individual project is
 responsible for the following:</p>
 <ul>
 <li>
-<p>Lead all technical aspects of the project; for example, the project roadmap, 
-  development, release cycles, versioning, and QA.</p>
+<p>Lead all technical aspects of the project, including the project roadmap,
+  development, release cycles, versioning, and quality assurance (QA).</p>
 </li>
 <li>
-<p>Ensure that the project is QA-ed in time for scheduled Android platform
+<p>Ensure the project is tested by QA in time for scheduled Android platform
   releases.</p>
 </li>
 <li>
