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 625afcb..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="{@docRoot}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>
