diff --git a/src/devices/audio.jd b/src/devices/audio.jd
index 50be277..657ec09 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>
@@ -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/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..46b8b06 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>
@@ -473,14 +479,26 @@
 
 <tr>
 <td>JWR66L</td>
-<td>android-4.3_r0.9</td>
+<td>android-4.3_w_r0.8</td>
 <td>Nexus 7</td>
 </tr>
 
 <tr>
 <td>JWR66N</td>
-<td>android-4.3_r1</td>
-<td>latest Jelly Bean version, Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10</td>
+<td>android-4.3_w_r0.9</td>
+<td>Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10</td>
+</tr>
+
+<tr>
+<td>JWR66V</td>
+<td>android-4.3_w_r1</td>
+<td>Galaxy Nexus, Nexus 7 (grouper/tilapia), Nexus 4, Nexus 10</td>
+</tr>
+
+<tr>
+<td>JSS15J</td>
+<td>android-4.3_s_r1</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..3b227a8 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,33 +193,43 @@
 </thead>
 <tbody>
 <tr>
+<td>flo</td>
+<td>android-4.3_s_r1 or master</td>
+<td>aosp_flo-userdebug</td>
+</tr>
+<tr>
+<td>deb</td>
+<td>android-4.3_s_r1 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>
 </tr>
 <tr>
 <td>mako</td>
-<td>android-4.3_r1 or master</td>
+<td>android-4.3_w_r1 or master</td>
 <td>aosp_mako-userdebug</td>
 </tr>
 <tr>
 <td>grouper</td>
-<td>android-4.3_r1 or master</td>
+<td>android-4.3_w_r1 or master</td>
 <td>aosp_grouper-userdebug</td>
 </tr>
 <tr>
 <td>tilapia</td>
-<td>android-4.3_r1 or master</td>
-<td>aosp_grouper-userdebug</td>
+<td>android-4.3_w_r1 or master</td>
+<td>aosp_tilapia-userdebug</td>
 </tr>
 <tr>
 <td>maguro</td>
-<td>android-4.3_r1 or master</td>
+<td>android-4.3_w_r1 or master</td>
 <td>aosp_maguro-userdebug</td>
 </tr>
 <tr>
 <td>toro</td>
-<td>android-4.3_r1 or master</td>
+<td>android-4.3_w_r1 or master</td>
 <td>aosp_toro-userdebug</td>
 </tr>
 <tr>
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/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>
