diff --git a/docs/html/robots.txt b/docs/html/robots.txt
index 7046373..878996f 100644
--- a/docs/html/robots.txt
+++ b/docs/html/robots.txt
@@ -4,5 +4,12 @@
 Disallow: /assets/
 Disallow: /images/
 Disallow: /sdk/preview/
+Disallow: /sdk/1.0_r1/
+Disallow: /sdk/1.0_r2/
+Disallow: /sdk/1.1_r1/
+Disallow: /sdk/1.5_r1/
+Disallow: /sdk/1.5_r2/
+Disallow: /sdk/1.5_r3/
+Disallow: /sdk/1.6_r1/
 Disallow: /shareables/
 Sitemap: http://developer.android.com/sitemap.txt
diff --git a/docs/html/sdk/1.0_r1/index.jd b/docs/html/sdk/1.0_r1/index.jd
index 6ef860f..b380483 100644
--- a/docs/html/sdk/1.0_r1/index.jd
+++ b/docs/html/sdk/1.0_r1/index.jd
@@ -1,68 +1,5 @@
 page.title=Android 1.0 SDK, release 1
-
-sdk.not_latest_version=true
-
-sdk.version=1.0_r1
-sdk.date=September 23, 2008
-
-sdk.win_download=android-sdk-windows-1.0_r1.zip
-sdk.win_bytes=89.7 MB
-sdk.win_checksum=d69f4ee93d4010f726c04302662fd999
-
-sdk.mac_download=android-sdk-mac_x86-1.0_r1.zip
-sdk.mac_bytes=87.5 MB
-sdk.mac_checksum=564876ada22872e50c2866806de9fc5c
-
-sdk.linux_download=android-sdk-linux_x86-1.0_r1.zip
-sdk.linux_bytes=87.8 MB
-sdk.linux_checksum=2660b4029039b7d714e59827e9a9a11d
-
+sdk.redirect=true
+sdk.redirect.path=index.html
 
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.0_r1">Release Notes</a>.</p>
-
-<h2>Included in this SDK</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a variety of tools for developing and debugging application code and designing 
-an application UI. You can read about the tools in the documentation included with the SDK. 
-You can access the tools in the <code>&lt;sdk&gt;/tools/</code> directory.</p>
-
-<h4 id="system_images">System Images</h4>
-
-<p>The Android system images listed below are included in this SDK.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>System Image</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-
-<tr>
-<td width="5%"><nobr>Android 1.0</nobr></td>
-<td  width="5%">1</td>
-<td  width="5%"><nobr>N/A</nobr></td>
-<td>Includes the {@code com.google.android.maps} external library and a set of standard development 
-applications. </td>
-
-</tr>
-
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the 
-documentation included with the SDK and access the sample code itself
-in the <code>&lt;sdk&gt;/samples/</code> directory of the SDK package.</p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package provides a full set of local documentation, including installation and upgrade 
-instructions. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. 
-If you are developing in an IDE such as Eclipse, you can also view the reference documentation 
-directly in the IDE. </p>
-
-
-
diff --git a/docs/html/sdk/1.0_r1/installing.jd b/docs/html/sdk/1.0_r1/installing.jd
index 8ac524c..2ea04e4 100644
--- a/docs/html/sdk/1.0_r1/installing.jd
+++ b/docs/html/sdk/1.0_r1/installing.jd
@@ -1,221 +1,8 @@
-page.title=Installing the SDK
-sdk.version=1.0_r1
 @jd:body
 
-<p>For the current SDK release, see the links under <strong>Current SDK Release</strong> in the side navigation.</p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-<p>This page describes how to install the Android 1.0 SDK, Release 1, and set up your development environment. 
-If you haven't downloaded the SDK yet, you can so from the <a href="{@docRoot}sdk/1.0_r1/index.html">Download</a> page.</p>
-
-<p>Before you begin, be sure that your development environment meets the SDK
-<a href="{@docRoot}sdk/1.0_r1/requirements.html">System Requirements</a>. If you encounter any problems during installation,
-see the <a href="#installnotes">Installation Notes</a> at the bottom of this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version of the 
-SDK, please skip this page and read the 
-<a href="{@docRoot}sdk/1.0_r1/upgrading.html"><strong>Upgrading the SDK</strong></a></b> document instead.
-</p>
-
-<a name="installingsdk"></a>
-<a name="setup"></a>
-<h2>Installing the SDK</h2>
-
-	<p>After downloading the SDK, unpack the .zip archive to a suitable location on your machine. By default, the SDK files are unpacked into a directory named  <code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em>_<em>&lt;build&gt;</em></code>. The directory contains a link to a local copy of the documentation and the subdirectories <code>tools/</code>, <code>samples/</code>, and others. </p>
-	
-	<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you will need to refer to the SDK directory later, when setting up the Android plugin or using SDK tools. </p>
-
-        <p>Optionally, you can add the path to the SDK <code>tools</code> directory to your path. As mentioned above, the <code>tools/</code> directory is located in the SDK directory. </p>
-     <ul>
-          <li>On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look
-          for a line that sets the PATH environment variable and add the
-          full path to the <code>tools/</code> directory to it. If you don't 
-          see a line setting the path, you can add one:</li>
-
-          <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-          <li>On a Mac, look in your home directory for .bash_profile and
-          proceed as for Linux. You can create the .bash_profile, if 
-          you haven't already set one up on your machine. </li>
-
-          <li>On Windows, right click on My Computer, and select Properties.  
-        Under the Advanced tab, hit the Environment Variables button, and in the
-        dialog that comes up, double-click on Path under System Variables. Add  the full path to the <code>tools/</code> directory to the path. </li>
-        </ul>
-
-        <p>Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.</p>
-
-
-<p>If you will be using the Eclipse IDE as your environment for developing Android applications, continue reading the next
-section in order to install the Android Development Tools plugin and setup Eclipse. If you choose not to use Eclipse, you can 
-develop Android applications using other tools &mdash; read the guide to developing 
-<a href="{@docRoot}guide/developing/other-ide.html">In other IDEs</a>.</p>
-
-
-<h2>Setting up Eclipse</h2>
-
-<p>First, you should install a custom plugin called Android Development Tools (ADT), which adds integrated support for Android projects and tools. The ADT plugin includes a variety of powerful extensions that make creating, running, and debugging Android applications faster and easier. Developing in ADT/Eclipse is highly recommended for Eclipse users and those new to Android.</p>
-
-<p>To download and install the ADT plugin, follow the steps below for your respective Eclipse version. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Find
-            and Install...</strong>. </li>
-
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Alternatively, you can use http in the Location URL, if you are having 
-         trouble with https (https is preferred for security reasons).</p>
-        <pre>http://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for
-    <strong>Android Plugin</strong> &gt; <strong>Developer Tools</strong>.
-    This will check both features:  "Android Developer Tools", and "Android
-    Editors". The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>. </li>
-    <li>Read the license agreement and then select <strong>Accept terms of the license agreement</strong>. 
-     Click <strong>Next</strong>. </li>
-    <li>Click <strong>Finish</strong>. </li>
-
-    <li>The ADT plugin is not signed; you can accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.
-    </li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab.
-    </li>
-    <li>Click <strong>Add Site...</strong>
-    </li>
-    <li>Enter this as the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Alternatively, you can use http in the Location URL, if you are having 
-         trouble with https (https is preferred for security reasons).</p>
-      <pre>http://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin. Select the checkbox next to 
-      <em>Developer Tools</em>  and click <strong>Install...</strong>
-    </li>
-    <li>On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. 
-    The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>.
-     </li>
-    <li>Accept the license agreement and click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-
-<p>Now, you just need to modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel. (Mac OS X: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>) </li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the SDK Location in the main panel, click <strong>Browse...</strong> and locate the SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to begin developing Android applications.
-We recommend you begin with the <a href="{@docRoot}guide/tutorials/hello-world.html">Hello World</a> tutorial,
-which will teach you some basics about Android applications and how to create projects using Eclipse.</p>
-
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions: </p>
-
-<ul>
-	<li>If Eclipse can not find the remote update site containing the ADT plugin, try changing the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
-        <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-	<li>If you are behind a firewall (such as a corporate firewall), make
-        sure that you have properly configured your proxy settings in Eclipse.
-        In Eclipse 3.3/3.4, you can configure proxy information from the main
-        Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; <strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you can download the ADT files to your local machine using a browser and the install the files in Eclipse from there:
-</p>
-<ol>
-<li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).
-<li>Follow steps 1 and 2 in the default install instructions (above).
-<li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-    In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong>
-<li>Browse and select the downloaded the zip file.
-<li>Follow the remaining procedures, above, starting from steps 5.
-</ol>
-<p> 
-Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.</p>
-
-<p>Note that the "Android Editors" feature of ADT requires several optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include those components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-<a name="installnotes"></a>
-<h2>Installation Notes</h2>
-<h4>Ubuntu Linux Notes</h4>
-<ul>
-    <li>If you need help installing and configuring Java on your
-development machine, you might find these resources helpful: 
-        <ul>
-           <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-           <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation </a></li>
-       </ul>
-   </li>
-<li>Here are the steps to install Java and Eclipse, prior to installing
-the Android SDK and ADT Plugin.
-<ol>
-    <li>If you are running a 64-bit distribution on your development
-machine, you need to install the <code>ia32-libs</code> package using
-<code>apt-get:</code>:
-        <pre>apt-get install ia32-libs</pre></li>
-    <li>Next, install Java:
-        <pre>apt-get install sun-java6-bin</pre></li>
-    <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-    version for download, so we recommend that you download Eclipse from
-eclipse.org (<a
-href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-<li>Follow the steps given in previous sections to install the SDK 
-and the ADT plugin. </li>
-</ol>
-</ul>
-<h4>Other Linux Notes</h4>
-<ul>
-    <li>If JDK is already installed on your development computer, please
-take a moment to make sure that it meets the version requirements listed
-at the top of this page. In particular, note that some Linux
-distributions may include JDK 1.4 or Gnu Compiler for Java, both of
-which are not supported for Android development.</li>
-</ul>
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.0_r1/requirements.jd b/docs/html/sdk/1.0_r1/requirements.jd
index 4163513..96fdcb26 100644
--- a/docs/html/sdk/1.0_r1/requirements.jd
+++ b/docs/html/sdk/1.0_r1/requirements.jd
@@ -1,51 +1,8 @@
-page.title=System Requirements
-sdk.version=1.0_r1
-
-
 @jd:body
 
-<p>The sections below describe the system and software requirements for 
-developing Android applications using the Android SDK tools included in Android 1.0 SDK, Release 1. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h2>System and Software Requirements</h2>
-<p>The following systems and development environments are supported by this SDK.</p>
-
-<h4>Supported Operating Systems:</h4>
-<ul>
-  <li>Windows XP or Vista</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#installnotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Supported Development Environments:</h4>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
-        <ul>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li><a href="http://www.eclipse.org/webtools">WST</a> (optional, but needed for the Android Editors feature; included in <a href="http://www.eclipse.org/downloads/moreinfo/compare.php">most Eclipse IDE packages</a>)</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.0_r2/index.jd b/docs/html/sdk/1.0_r2/index.jd
index a1989ba..c29c148 100644
--- a/docs/html/sdk/1.0_r2/index.jd
+++ b/docs/html/sdk/1.0_r2/index.jd
@@ -1,68 +1,5 @@
 page.title=Android 1.0 SDK, release 2
-
-sdk.not_latest_version=true
-
-sdk.version=1.0_r2
-sdk.date=November 2008
-
-sdk.win_download=android-sdk-windows-1.0_r2.zip
-sdk.win_bytes=98360564
-sdk.win_checksum=a5e1af8ac145946b4a9627516ad4a711
-
-sdk.mac_download=android-sdk-mac_x86-1.0_r2.zip
-sdk.mac_bytes=93771410
-sdk.mac_checksum=87b99d5e9f59b78363a63200c11498e8
-
-sdk.linux_download=android-sdk-linux_x86-1.0_r2.zip
-sdk.linux_bytes=94186463
-sdk.linux_checksum=a1f3b6d854596f850f5008856d0f380e
-
+sdk.redirect=true
+sdk.redirect.path=index.html
 
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.0_r2">Release Notes</a>.</p>
-
-<h2>Included in this SDK</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a variety of tools for developing and debugging application code and designing 
-an application UI. You can read about the tools in the documentation included with the SDK. 
-You can access the tools in the <code>&lt;sdk&gt;/tools/</code> directory.</p>
-
-<h4 id="system_images">System Images</h4>
-
-<p>The Android system images listed below are included in this SDK.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>System Image</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-
-<tr>
-<td width="5%"><nobr>Android 1.0</nobr></td>
-<td  width="5%">1</td>
-<td  width="5%"><nobr>N/A</nobr></td>
-<td>Includes the {@code com.google.android.maps} external library and a set of standard development 
-applications. </td>
-
-</tr>
-
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the 
-documentation included with the SDK and access the sample code itself
-in the <code>&lt;sdk&gt;/samples/</code> directory of the SDK package.</p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package provides a full set of local documentation, including installation and upgrade 
-instructions. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. 
-If you are developing in an IDE such as Eclipse, you can also view the reference documentation 
-directly in the IDE. </p>
-
-
-
diff --git a/docs/html/sdk/1.0_r2/installing.jd b/docs/html/sdk/1.0_r2/installing.jd
index 2c58dfd..2ea04e4 100644
--- a/docs/html/sdk/1.0_r2/installing.jd
+++ b/docs/html/sdk/1.0_r2/installing.jd
@@ -1,221 +1,8 @@
-page.title=Installing the SDK
-sdk.version=1.0_r2
 @jd:body
 
-<p>For the current SDK release, see the links under <strong>Current SDK Release</strong> in the side navigation.</p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-<p>This page describes how to install the Android 1.0 SDK, Release 2, and set up your development environment. 
-If you haven't downloaded the SDK yet, you can so from the <a href="{@docRoot}sdk/1.0_r2/index.html">Download</a> page.</p>
-
-<p>Before you begin, be sure that your development environment meets the SDK
-<a href="{@docRoot}sdk/1.0_r2/requirements.html">System Requirements</a>. If you encounter any problems during installation,
-see the <a href="#installnotes">Installation Notes</a> at the bottom of this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version of the 
-SDK, please skip this page and read the 
-<a href="{@docRoot}sdk/1.0_r2/upgrading.html"><strong>Upgrading the SDK</strong></a></b> document instead.
-</p>
-
-<a name="installingsdk"></a>
-<a name="setup"></a>
-<h2>Installing the SDK</h2>
-
-	<p>After downloading the SDK, unpack the .zip archive to a suitable location on your machine. By default, the SDK files are unpacked into a directory named  <code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em>_<em>&lt;build&gt;</em></code>. The directory contains a link to a local copy of the documentation and the subdirectories <code>tools/</code>, <code>samples/</code>, and others. </p>
-	
-	<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you will need to refer to the SDK directory later, when setting up the Android plugin or using SDK tools. </p>
-
-        <p>Optionally, you can add the path to the SDK <code>tools</code> directory to your path. As mentioned above, the <code>tools/</code> directory is located in the SDK directory. </p>
-     <ul>
-          <li>On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look
-          for a line that sets the PATH environment variable and add the
-          full path to the <code>tools/</code> directory to it. If you don't 
-          see a line setting the path, you can add one:</li>
-
-          <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-          <li>On a Mac, look in your home directory for .bash_profile and
-          proceed as for Linux. You can create the .bash_profile, if 
-          you haven't already set one up on your machine. </li>
-
-          <li>On Windows, right click on My Computer, and select Properties.  
-        Under the Advanced tab, hit the Environment Variables button, and in the
-        dialog that comes up, double-click on Path under System Variables. Add  the full path to the <code>tools/</code> directory to the path. </li>
-        </ul>
-
-        <p>Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.</p>
-
-
-<p>If you will be using the Eclipse IDE as your environment for developing Android applications, continue reading the next
-section in order to install the Android Development Tools plugin and setup Eclipse. If you choose not to use Eclipse, you can 
-develop Android applications using other tools &mdash; read the guide to developing 
-<a href="{@docRoot}guide/developing/other-ide.html">In other IDEs</a>.</p>
-
-
-<h2>Setting up Eclipse</h2>
-
-<p>First, you should install a custom plugin called Android Development Tools (ADT), which adds integrated support for Android projects and tools. The ADT plugin includes a variety of powerful extensions that make creating, running, and debugging Android applications faster and easier. Developing in ADT/Eclipse is highly recommended for Eclipse users and those new to Android.</p>
-
-<p>To download and install the ADT plugin, follow the steps below for your respective Eclipse version. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Find
-            and Install...</strong>. </li>
-
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Alternatively, you can use http in the Location URL, if you are having 
-         trouble with https (https is preferred for security reasons).</p>
-        <pre>http://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for
-    <strong>Android Plugin</strong> &gt; <strong>Developer Tools</strong>.
-    This will check both features:  "Android Developer Tools", and "Android
-    Editors". The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>. </li>
-    <li>Read the license agreement and then select <strong>Accept terms of the license agreement</strong>. 
-     Click <strong>Next</strong>. </li>
-    <li>Click <strong>Finish</strong>. </li>
-
-    <li>The ADT plugin is not signed; you can accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.
-    </li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab.
-    </li>
-    <li>Click <strong>Add Site...</strong>
-    </li>
-    <li>Enter this as the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Alternatively, you can use http in the Location URL, if you are having 
-         trouble with https (https is preferred for security reasons).</p>
-      <pre>http://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin. Select the checkbox next to 
-      <em>Developer Tools</em>  and click <strong>Install...</strong>
-    </li>
-    <li>On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. 
-    The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>.
-     </li>
-    <li>Accept the license agreement and click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-
-<p>Now, you just need to modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel. (Mac OS X: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>) </li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the SDK Location in the main panel, click <strong>Browse...</strong> and locate the SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to begin developing Android applications.
-We recommend you begin with the <a href="{@docRoot}guide/tutorials/hello-world.html">Hello World</a> tutorial,
-which will teach you some basics about Android applications and how to create projects using Eclipse.</p>
-
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions: </p>
-
-<ul>
-	<li>If Eclipse can not find the remote update site containing the ADT plugin, try changing the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
-        <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-	<li>If you are behind a firewall (such as a corporate firewall), make
-        sure that you have properly configured your proxy settings in Eclipse.
-        In Eclipse 3.3/3.4, you can configure proxy information from the main
-        Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; <strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you can download the ADT files to your local machine using a browser and the install the files in Eclipse from there:
-</p>
-<ol>
-<li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).
-<li>Follow steps 1 and 2 in the default install instructions (above).
-<li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-    In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong>
-<li>Browse and select the downloaded the zip file.
-<li>Follow the remaining procedures, above, starting from steps 5.
-</ol>
-<p> 
-Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.</p>
-
-<p>Note that the "Android Editors" feature of ADT requires several optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include those components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-<a name="installnotes"></a>
-<h2>Installation Notes</h2>
-<h4>Ubuntu Linux Notes</h4>
-<ul>
-    <li>If you need help installing and configuring Java on your
-development machine, you might find these resources helpful: 
-        <ul>
-           <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-           <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation </a></li>
-       </ul>
-   </li>
-<li>Here are the steps to install Java and Eclipse, prior to installing
-the Android SDK and ADT Plugin.
-<ol>
-    <li>If you are running a 64-bit distribution on your development
-machine, you need to install the <code>ia32-libs</code> package using
-<code>apt-get:</code>:
-        <pre>apt-get install ia32-libs</pre></li>
-    <li>Next, install Java:
-        <pre>apt-get install sun-java6-bin</pre></li>
-    <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-    version for download, so we recommend that you download Eclipse from
-eclipse.org (<a
-href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-<li>Follow the steps given in previous sections to install the SDK 
-and the ADT plugin. </li>
-</ol>
-</ul>
-<h4>Other Linux Notes</h4>
-<ul>
-    <li>If JDK is already installed on your development computer, please
-take a moment to make sure that it meets the version requirements listed
-at the top of this page. In particular, note that some Linux
-distributions may include JDK 1.4 or Gnu Compiler for Java, both of
-which are not supported for Android development.</li>
-</ul>
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.0_r2/requirements.jd b/docs/html/sdk/1.0_r2/requirements.jd
index 4f7c093..96fdcb26 100644
--- a/docs/html/sdk/1.0_r2/requirements.jd
+++ b/docs/html/sdk/1.0_r2/requirements.jd
@@ -1,50 +1,8 @@
-page.title=System Requirements
-sdk.version=1.0_r2
-
-
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android 1.0 SDK, Release 2. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h2>System and Software Requirements</h2>
-<p>The following systems and development environments are supported by this SDK.</p>
-
-<h4>Supported Operating Systems:</h4>
-<ul>
-  <li>Windows XP or Vista</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#installnotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Supported Development Environments:</h4>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
-        <ul>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li><a href="http://www.eclipse.org/webtools">WST</a> (optional, but needed for the Android Editors feature; included in <a href="http://www.eclipse.org/downloads/moreinfo/compare.php">most Eclipse IDE packages</a>)</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.1_r1/index.jd b/docs/html/sdk/1.1_r1/index.jd
index f658216..63fe51d 100644
--- a/docs/html/sdk/1.1_r1/index.jd
+++ b/docs/html/sdk/1.1_r1/index.jd
@@ -1,66 +1,5 @@
 page.title=Android 1.1 SDK, Release 1
-
-sdk.not_latest_version=true
-sdk.version=1.1_r1
-sdk.date=February 2009
-
-sdk.win_download=android-sdk-windows-1.1_r1.zip
-sdk.win_bytes=86038515
-sdk.win_checksum=8c4b9080b430025370689e03d20842f3
-
-sdk.mac_download=android-sdk-mac_x86-1.1_r1.zip
-sdk.mac_bytes=79046151
-sdk.mac_checksum=becf0f1763d61eedce15d2a903d6c1dd
-
-sdk.linux_download=android-sdk-linux_x86-1.1_r1.zip
-sdk.linux_bytes=79345522
-sdk.linux_checksum=ebcb16b0cd4aef198b4dd9a1418efbf1
-
+sdk.redirect=true
+sdk.redirect.path=index.html
 
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.1_r1">Release Notes</a>.</p>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a variety of tools for developing and debugging application code and designing an application UI. You can read about the tools in the  
-<a href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them in the <code>&lt;sdk&gt;/tools/</code> directory. 
-
-<p>The tools package included in this SDK is the same as that included in the Android 1.0, Release 2 SDK. </p>
-
-<h4 id="system_images">System Images</h4>
-
-<p>The Android system images listed below are included in this SDK. For more information about a system image &mdash; features, applications included, localizations, API changes, and so on &mdash; see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>System Image</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-
-<tr>
-<td width="5%"><nobr>Android 1.1</nobr></td>
-<td  width="5%">2</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.1.html">Version Notes</a></nobr></td>
-<td>Includes com.google.android.maps external library and a set of standard development applications. </td>
-
-</tr>
-
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code>&lt;sdk&gt;/samples/</code> directory of the SDK package.</p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE. </p>
-
-<p>The most current documentation is always available on the Android Developers site:</p>
-
-<p style="margin-left:2em;"><a href="http://developer.android.com/index.html">http://developer.android.com/</a></p>
-
-
diff --git a/docs/html/sdk/1.1_r1/installing.jd b/docs/html/sdk/1.1_r1/installing.jd
index 2da2479..2ea04e4 100644
--- a/docs/html/sdk/1.1_r1/installing.jd
+++ b/docs/html/sdk/1.1_r1/installing.jd
@@ -1,312 +1,8 @@
-page.title=Installing the Android SDK
-sdk.version=1.1_r1
-
 @jd:body
 
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-<p>This page describes how to install the Android SDK and set up your
-development environment. If you haven't downloaded the SDK, you can
-do so from the 
-<a href="{@docRoot}sdk/1.1_r1/index.html">Download</a> page.</p>
-
-<p>If you encounter any problems during installation, see the 
-<a href="#installnotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the SDK, please skip this page and read the 
-<a href="{@docRoot}sdk/1.1_r1/upgrading.html"><strong>Upgrading the
-SDK</strong></a></b> document instead.
-</p>
-
-
-<h2 id="setup">Preparing for Installation</h2>
-
-<p>Before you get started with the Android SDK, take a moment to confirm
-that your development machine meets the <a
-href="{@docRoot}sdk/1.1_r1/requirements.html">system requirements</a>.
-</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer. If you need to install Eclipse, you can
-download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a
-></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="installingsdk">Installing the SDK</h2>
-
-	<p>After downloading the SDK, unpack the .zip archive to a suitable location on your machine. By default, the SDK files are unpacked into a directory named  <code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em>_<em>&lt;build&gt;</em></code>. The directory contains a link to a local copy of the documentation and the subdirectories <code>tools/</code>, <code>samples/</code>, and others. </p>
-	
-	<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you will need to refer to the SDK directory later, when setting up the Android plugin or using SDK tools. </p>
-
-        <p>Optionally, you can add the path to the SDK <code>tools</code> directory to your path. As mentioned above, the <code>tools/</code> directory is located in the SDK directory. </p>
-     <ul>
-          <li>On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look
-          for a line that sets the PATH environment variable and add the
-          full path to the <code>tools/</code> directory to it. If you don't 
-          see a line setting the path, you can add one:</li>
-
-          <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-          <li>On a Mac, look in your home directory for .bash_profile and
-          proceed as for Linux. You can create the .bash_profile, if 
-          you haven't already set one up on your machine. </li>
-
-          <li>On Windows, right click on My Computer, and select Properties.  
-        Under the Advanced tab, hit the Environment Variables button, and in the
-        dialog that comes up, double-click on Path under System Variables. Add  the full path to the <code>tools/</code> directory to the path. </li>
-        </ul>
-
-        <p>Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.</p>
-
-
-<p>If you will be using the Eclipse IDE as your environment for developing Android applications, continue reading the next
-section in order to install the Android Development Tools plugin and set up Eclipse. If you choose not to use Eclipse, you can 
-develop Android applications using other tools &mdash; read the guide to developing 
-<a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>.</p>
-
-
-<h2 id="installingplugin">Installing the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, and debug using the Android SDK tools.</p>
-
-<p>If you are new to Android or want to develop using the Eclipse IDE,
-the ADT plugin will be an essential part of your development
-environment. In general, using Eclipse with ADT is a highly recommended
-approach and is the fastest way to get started. This section describes
-how to install ADT into your Eclipse environment. 
-
-<p>If you prefer to work in a development environment other than Eclipse,
-you do not need to install Eclipse or the ADT Plugin. Instead, you can 
-access the SDK tools directly to build and debug your application. </p>
-
-<p>Once you have Eclipse installed, as described in <a href="#setup">
-Preparing for Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse
-environment. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Find
-            and Install...</strong>. </li>
-
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Alternatively, you can use http in the Location URL, if you are having 
-         trouble with https (https is preferred for security reasons).</p>
-        <pre>http://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for
-    <strong>Android Plugin</strong> &gt; <strong>Developer Tools</strong>.
-    This will check both features:  "Android Developer Tools", and "Android
-    Editors". The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>. </li>
-    <li>Read the license agreement and then select <strong>Accept terms of the license agreement</strong>. 
-     Click <strong>Next</strong>. </li>
-    <li>Click <strong>Finish</strong>. </li>
-
-    <li>The ADT plugin is not signed; you can accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.
-    </li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab.
-    </li>
-    <li>Click <strong>Add Site...</strong>
-    </li>
-    <li>Enter this as the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Alternatively, you can use http in the Location URL, if you are having 
-         trouble with https (https is preferred for security reasons).</p>
-      <pre>http://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin. Select the checkbox next to 
-      <em>Developer Tools</em>  and click <strong>Install...</strong>
-    </li>
-    <li>On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. 
-    The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>.
-     </li>
-    <li>Accept the license agreement and click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<p>Now, you just need to modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel. (Mac OS X: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>) </li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the SDK Location in the main panel, click <strong>Browse...</strong> and locate the SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the <a href="#next">After 
-Installation: Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions: </p>
-
-<ul>
-	<li>If Eclipse can not find the remote update site containing the ADT plugin, try changing the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
-        <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-	<li>If you are behind a firewall (such as a corporate firewall), make
-        sure that you have properly configured your proxy settings in Eclipse.
-        In Eclipse 3.3/3.4, you can configure proxy information from the main
-        Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; <strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you can download the ADT files to your local machine using a browser and the install the files in Eclipse from there:
-</p>
-<ol>
-<li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).
-<li>Follow steps 1 and 2 in the default install instructions (above).
-<li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-    In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong>
-<li>Browse and select the downloaded the zip file.
-<li>Follow the remaining procedures, above, starting from steps 5.
-</ol>
-<p> 
-Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.</p>
-
-<p>Note that the "Android Editors" feature of ADT requires several optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include those components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
-<h2 id="next">After Installation: Next Steps</h2>
-<p>Once you have installed the SDK and the ADT Plugin, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
-<li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
-Guide</a> and the types of information it provides</li>
-<li>Read an introduction to Android as a platform in <a
-href="{@docRoot}guide/basics/what-is-android.html">What is
-Android?</a></li>
-<li>Learn about the Android framework and how applications run on it in
-<a href="{@docRoot}guide/topics/fundamentals.html">Application
-Fundamentals</a></li>
-<li>Take a look at the Android framework API specification in the <a
-href="{@docRoot}reference/index.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
-<li>Get an overview of the <a
-href="{@docRoot}guide/developing/tools/index.html">development
-tools</a> that are available to you</li>
-<li>Read the overviews of how to develop <a
-href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
-<a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
-</li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
-<li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
-World application</a></li>
-<li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
-Notepad Tutorial</a> to build a full Android application </li>
-<li>Create a new project for one of the other sample applications
-included in <code>&lt;sdk&gt;/samples</code>, then compile and run it in
-your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
-<li>Take a look at the <a
-href="{@docRoot}community/index.html">Community</a> tab to see a list of
-Android developers groups. In particular, you might want to look at the
-<a href="http://groups.google.com/group/android-developers">Android
-Developers</a> group to get a sense for what the Android developer
-community is like.</li>
-</ul>
-
-
-<h2 id="installnotes">Installation Notes</h2>
-<h4>Ubuntu Linux Notes</h4>
-<ul>
-    <li>If you need help installing and configuring Java on your
-development machine, you might find these resources helpful: 
-        <ul>
-           <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-           <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation </a></li>
-       </ul>
-   </li>
-<li>Here are the steps to install Java and Eclipse, prior to installing
-the Android SDK and ADT Plugin.
-<ol>
-    <li>If you are running a 64-bit distribution on your development
-machine, you need to install the <code>ia32-libs</code> package using
-<code>apt-get:</code>:
-        <pre>apt-get install ia32-libs</pre></li>
-    <li>Next, install Java:
-        <pre>apt-get install sun-java6-bin</pre></li>
-    <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-    version for download, so we recommend that you download Eclipse from
-eclipse.org (<a
-href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-<li>Follow the steps given in previous sections to install the SDK 
-and the ADT plugin. </li>
-</ol>
-</ul>
-<h4>Other Linux Notes</h4>
-<ul>
-    <li>If JDK is already installed on your development computer, please
-take a moment to make sure that it meets the version requirements listed
-in the <a href="{@docRoot}sdk/1.1_r1/requirements.html">System Requirements</a>.
-In particular, note that some Linux distributions may include JDK 1.4 or Gnu
-Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
-
-
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.1_r1/requirements.jd b/docs/html/sdk/1.1_r1/requirements.jd
index 9d8f9eb..96fdcb26 100644
--- a/docs/html/sdk/1.1_r1/requirements.jd
+++ b/docs/html/sdk/1.1_r1/requirements.jd
@@ -1,48 +1,8 @@
-page.title=System Requirements
-
-sdk.version=1.1_r1
-sdk.date=February 2009
-
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android 1.1 SDK, Release 1. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h3>Supported Operating Systems</h3>
-<ul>
-  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#installnotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
-        <ul>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li><a href="http://www.eclipse.org/webtools">WST</a> (optional, but needed for the Android Editors feature; included in <a href="http://www.eclipse.org/downloads/moreinfo/compare.php">most Eclipse IDE packages</a>)</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.5_r1/index.jd b/docs/html/sdk/1.5_r1/index.jd
index 405f56c..60dfc14 100644
--- a/docs/html/sdk/1.5_r1/index.jd
+++ b/docs/html/sdk/1.5_r1/index.jd
@@ -1,89 +1,5 @@
-sdk.version=1.5
-sdk.rel.id=1
-sdk.date=April 2009
-sdk.not_latest_version=true
-
-sdk.win_download=android-sdk-windows-1.5_r1.zip
-sdk.win_bytes=176263368
-sdk.win_checksum=42be980eb2d3efaced01ea6c32c0045f
-
-sdk.mac_download=android-sdk-mac_x86-1.5_r1.zip
-sdk.mac_bytes=167848675
-sdk.mac_checksum=5b2a8d9f096032db4a75bfa0d689a51b
-
-sdk.linux_download=android-sdk-linux_x86-1.5_r1.zip
-sdk.linux_bytes=162938845
-sdk.linux_checksum=2addfd315da0ad8b5bde6b09d5ff3b06
-
 page.title=Android 1.5 SDK, Release 1
+sdk.redirect=true
+sdk.redirect.path=index.html
+
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.5_r1">Release Notes</a>.</p>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the  
-<a href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them in the <code>&lt;sdk&gt;/tools/</code> directory. 
-
-<p>The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see <a href="{@docRoot}sdk/1.5_r1/upgrading.html">Upgrading the SDK</a>.
-
-<p>For more information about the new tools features, see the <a href="{@docRoot}sdk/RELEASENOTES.html">SDK Release Notes</a>. 
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version &mdash; features, applications included, localizations, API changes, and so on &mdash; see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version Notes</a></nobr></td>
-<td>Includes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.1</nobr></td>
-<td  width="5%">2</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.1.html">Version Notes</a></nobr></td>
-<td>Includes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).</td>
-
-</tr>
-</table>
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<p>An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant 
-system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code>&lt;sdk&gt;/platforms/android-1.5/samples/</code> directory of the SDK package. Note the new location &mdash; the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE. </p>
-
-<p>The most current documentation is always available on the Android Developers site:</p>
-
-<p style="margin-left:2em;"><a href="http://developer.android.com/index.html">http://developer.android.com/</a></p>
-
diff --git a/docs/html/sdk/1.5_r1/installing.jd b/docs/html/sdk/1.5_r1/installing.jd
index ac6af61..2ea04e4 100644
--- a/docs/html/sdk/1.5_r1/installing.jd
+++ b/docs/html/sdk/1.5_r1/installing.jd
@@ -1,332 +1,8 @@
-sdk.version=1.5
-sdk.rel.id=1
-sdk.date=April 2009
-
-page.title=Installing the Android SDK
 @jd:body
 
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-<p>This page describes how to install the Android SDK and set up your
-development environment. If you haven't downloaded the SDK, you can
-do so from the 
-<a href="{@docRoot}sdk/1.5_r1/index.html">Download</a> page. Once you've downloaded
-the SDK, return here.</p>
-
-<p>If you encounter any problems during installation, see the 
-<a href="#installnotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the SDK, please read 
-<a href="{@docRoot}sdk/1.5_r1/upgrading.html"><strong>Upgrading the
-SDK</strong></a></b>, instead.
-</p>
-
-
-<h2 id="setup">Preparing for Installation</h2>
-
-<p>Before you begin, take a moment to confirm that your development machine meets the 
-<a href="{@docRoot}sdk/1.5_r1/requirements.html">System Requirements</a>.
-</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer (3.3 or newer). If you need to install Eclipse, you can
-download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a
-></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="installingsdk">Installing the SDK</h2>
-
-<p>After downloading the SDK, unpack the .zip archive to a suitable location on your machine. 
-By default, the SDK files are unpacked into a directory named 
-<code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>. 
-The directory contains a local copy of the documentation (accessible by opening
-<code>documentation.html</code> in your browser) and the subdirectories 
-<code>tools/</code>, <code>add-ons/</code>, <code>platforms/</code>, and others. Inside
-each subdirectory of <code>platforms/</code> you'll find <code>samples/</code>, which includes
-code samples that are specific to each version of the platform.</p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you 
-will need to refer to the SDK directory later, when setting up the Android plugin or when 
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory 
-to your system PATH. The primary <code>tools/</code> directory is located at the root of the 
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and 
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without 
-needing to supply the full path to the tools directory. </p>
-<ul>
-    <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
-    for a line that sets the PATH environment variable and add the
-    full path to the <code>tools/</code> directory to it. If you don't 
-    see a line setting the path, you can add one:</li>
-
-    <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-    <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
-    proceed as for Linux. You can create the <code>.bash_profile</code> if 
-    you haven't already set one up on your machine. </li>
-
-    <li>On Windows, right-click on My Computer, and select Properties.  
-  Under the Advanced tab, hit the Environment Variables button, and in the
-  dialog that comes up, double-click on Path (under System Variables). Add the full path to the 
-  <code>tools/</code> directory to the path. </li>
-  </ul>
-
-<p>Note that, if you update your SDK in the future, you 
-should remember to update your PATH settings to point to the new location, if different.</p>
-
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools plugin and set up Eclipse. 
-If you choose not to use Eclipse, you can 
-develop Android applications in an IDE of your choice and then compile, debug and deploy using
-the tools included in the SDK (skip to <a href="#next">Next Steps</a>).</p>
-
-
-<h2 id="installingplugin">Installing the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<p>In general, using Eclipse with ADT is a highly recommended
-approach to Android development and is the fastest way to get started.
-(If you prefer to work in an IDE other than Eclipse,
-you do not need to install Eclipse or ADT, instead, you can directly
-use the SDK tools to build and debug your application.)</p>
-
-<p>Once you have Eclipse installed, as described in <a href="#setup">Preparing for 
-Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse
-environment. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.3 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> 
-&gt; <strong>Find and Install...</strong>. </li>
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> 
-and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and 
-    enter the URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
-        instead of "https" (https is preferred for security reasons).</p>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for the
-    "Android Plugin".
-    This will select the nested tools: "Android DDMS" and "Android Development Tools". 
-    Click <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement, then click <strong>Next</strong>. </li>
-    <li>On the following Installation window, click <strong>Finish</strong>. </li>
-    <li>The ADT plugin is not digitally signed. Accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<!-- 3.4 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.</li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
-    <li>Click <strong>Add Site...</strong> </li>
-    <li>Enter the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
-        instead of "https" (https is preferred for security reasons).</p>   
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin listed by the URL,
-    with "Developer Tools" nested within it. Select the checkbox next to 
-      Developer Tools and click <strong>Install...</strong></li>
-    <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
-    should both be checked. Click <strong>Next</strong>. </li>
-    <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel (Mac: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and 
-locate your downloaded SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the 
-<a href="#next">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are 
-some suggestions: </p>
-
-<ul>
-  <li>If Eclipse can not find the remote update site containing the ADT plugin, try changing 
-  the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
-  <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-  <li>If you are behind a firewall (such as a corporate firewall), make
-  sure that you have properly configured your proxy settings in Eclipse.
-  In Eclipse 3.3/3.4, you can configure proxy information from the main
-  Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; 
-  <strong>Preferences</strong> &gt; <strong>General</strong> &gt; 
-  <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you 
-can download the ADT zip file to your local machine and manually install the it:
-</p>
-<ol>
-  <li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).</li>
-  <li>Follow steps 1 and 2 in the default install instructions (above).</li>
-  <li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-      In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong></li>
-  <li>Browse and select the downloaded zip file.</li>
-  <li>Follow the remaining procedures, above, starting from steps 5.</li>
-</ol>
-<p>To update your plugin once you've installed using the zip file, you will have to 
-follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include these components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
-<h2 id="next">Next Steps</h2>
-<p>Once you have completed installation, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
-  <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
-  Guide</a> and the types of information it provides</li>
-  <li>Read an introduction to Android as a platform in <a
-  href="{@docRoot}guide/basics/what-is-android.html">What is
-  Android?</a></li>
-  <li>Learn about the Android framework and how applications run on it in
-  <a href="{@docRoot}guide/topics/fundamentals.html">Application
-  Fundamentals</a></li>
-  <li>Take a look at the Android framework API specification in the <a
-  href="{@docRoot}reference/packages.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
-  <li>Get an overview of the <a
-  href="{@docRoot}guide/developing/tools/index.html">development
-  tools</a> that are available to you</li>
-  <li>Read how to develop <a
-  href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
-  <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
-  </li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
-  <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
-  World application</a> (highly recommended, especially for Eclipse users)</li>
-  <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
-  Notepad Tutorial</a> to build a full Android application </li>
-  <li>Create a new project for one of the other sample applications
-  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platfrom&gt;</em>/samples</code>, 
-  then compile and run it in your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
-  <li>Take a look at the <a
-  href="{@docRoot}community/index.html">Community</a> tab to see a list of
-  Android developers groups. In particular, you might want to look at the
-  <a href="http://groups.google.com/group/android-developers">Android
-  Developers</a> group to get a sense for what the Android developer
-  community is like.</li>
-</ul>
-
-
-<h2 id="installnotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
-  <li>If you need help installing and configuring Java on your
-    development machine, you might find these resources helpful: 
-    <ul>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
-    </ul>
-  </li>
-  <li>Here are the steps to install Java and Eclipse, prior to installing
-  the Android SDK and ADT Plugin.
-    <ol>
-      <li>If you are running a 64-bit distribution on your development
-      machine, you need to install the <code>ia32-libs</code> package using
-      <code>apt-get:</code>:
-      <pre>apt-get install ia32-libs</pre>
-      </li>
-      <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
-      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-      version for download, so we recommend that you download Eclipse from
-      eclipse.org (<a
-      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-      <li>Follow the steps given in previous sections to install the SDK 
-      and the ADT plugin. </li>
-    </ol>
-  </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
-  <li>If JDK is already installed on your development computer, please
-  take a moment to make sure that it meets the version requirements listed
-  in the <a href="{@docRoot}sdk/1.1_r1/requirements.html">System Requirements</a>.
-  In particular, note that some Linux distributions may include JDK 1.4 or Gnu
-  Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
-
-
-
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.5_r1/requirements.jd b/docs/html/sdk/1.5_r1/requirements.jd
index c10ccac..96fdcb26 100644
--- a/docs/html/sdk/1.5_r1/requirements.jd
+++ b/docs/html/sdk/1.5_r1/requirements.jd
@@ -1,45 +1,8 @@
-page.title=System Requirements
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android <?cs var:sdk.version ?> SDK, Release <?cs var:sdk.rel.id ?>. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h3>Supported Operating Systems</h3>
-<ul>
-  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
-        <ul>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li>Eclipse Classic IDE package is not supported.</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.5_r2/index.jd b/docs/html/sdk/1.5_r2/index.jd
index 15342a4..4fb99b6 100644
--- a/docs/html/sdk/1.5_r2/index.jd
+++ b/docs/html/sdk/1.5_r2/index.jd
@@ -1,87 +1,5 @@
-sdk.version=1.5
-sdk.rel.id=2
-sdk.date=May 2009
-
-sdk.win_download=android-sdk-windows-1.5_r2.zip
-sdk.win_bytes=178346828
-sdk.win_checksum=ba54ac6bda45921d442b74b6de6ff6a9
-
-sdk.mac_download=android-sdk-mac_x86-1.5_r2.zip
-sdk.mac_bytes=169945128
-sdk.mac_checksum=f4e06a5194410243f213d0177713d6c9
-
-sdk.linux_download=android-sdk-linux_x86-1.5_r2.zip
-sdk.linux_bytes=165035130
-sdk.linux_checksum=1d3c3d099e95a31c43a7b3e6ae307ed3
-
 page.title=Android 1.5 SDK, Release 2
+sdk.redirect=true
+sdk.redirect.path=index.html
+
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.5_r2">Release Notes</a>.</p>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the  
-<a href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them in the <code>&lt;sdk&gt;/tools/</code> directory. 
-
-<p>The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see <a href="{@docRoot}sdk/1.5_r2/upgrading.html">Upgrading the SDK</a>.
-
-<p>For more information about the new tools features, see the <a href="{@docRoot}sdk/RELEASENOTES.html">SDK Release Notes</a>. 
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version &mdash; features, applications included, localizations, API changes, and so on &mdash; see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version Notes</a></nobr></td>
-<td>Includes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.1</nobr></td>
-<td  width="5%">2</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.1.html">Version Notes</a></nobr></td>
-<td>Includes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).</td>
-</tr>
-</table>
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<p>An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant 
-system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code>&lt;sdk&gt;/platforms/android-1.5/samples/</code> directory of the SDK package. Note the new location &mdash; the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE. </p>
-
-<p>The most current documentation is always available on the Android Developers site:</p>
-
-<p style="margin-left:2em;"><a href="http://developer.android.com/index.html">http://developer.android.com/</a></p>
-
diff --git a/docs/html/sdk/1.5_r2/installing.jd b/docs/html/sdk/1.5_r2/installing.jd
index 1e4e0f2..2ea04e4 100644
--- a/docs/html/sdk/1.5_r2/installing.jd
+++ b/docs/html/sdk/1.5_r2/installing.jd
@@ -1,332 +1,8 @@
-sdk.version=1.5
-sdk.rel.id=2
-sdk.date=April 2009
-
-page.title=Installing the Android SDK
 @jd:body
 
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-<p>This page describes how to install the Android SDK and set up your
-development environment. If you haven't downloaded the SDK, you can
-do so from the 
-<a href="index.html">Download</a> page. Once you've downloaded
-the SDK, return here.</p>
-
-<p>If you encounter any problems during installation, see the 
-<a href="#installnotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the SDK, please read 
-<a href="upgrading.html"><strong>Upgrading the
-SDK</strong></a></b>, instead.
-</p>
-
-
-<h2 id="setup">Preparing for Installation</h2>
-
-<p>Before you begin, take a moment to confirm that your development machine meets the 
-<a href="requirements.html">System Requirements</a>.
-</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer (3.3 or newer). If you need to install Eclipse, you can
-download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a
-></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="installingsdk">Installing the SDK</h2>
-
-<p>After downloading the SDK, unpack the .zip archive to a suitable location on your machine. 
-By default, the SDK files are unpacked into a directory named 
-<code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>. 
-The directory contains a local copy of the documentation (accessible by opening
-<code>documentation.html</code> in your browser) and the subdirectories 
-<code>tools/</code>, <code>add-ons/</code>, <code>platforms/</code>, and others. Inside
-each subdirectory of <code>platforms/</code> you'll find <code>samples/</code>, which includes
-code samples that are specific to each version of the platform.</p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you 
-will need to refer to the SDK directory later, when setting up the Android plugin or when 
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory 
-to your system PATH. The primary <code>tools/</code> directory is located at the root of the 
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and 
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without 
-needing to supply the full path to the tools directory. </p>
-<ul>
-    <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
-    for a line that sets the PATH environment variable and add the
-    full path to the <code>tools/</code> directory to it. If you don't 
-    see a line setting the path, you can add one:</li>
-
-    <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-    <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
-    proceed as for Linux. You can create the <code>.bash_profile</code> if 
-    you haven't already set one up on your machine. </li>
-
-    <li>On Windows, right-click on My Computer, and select Properties.  
-  Under the Advanced tab, hit the Environment Variables button, and in the
-  dialog that comes up, double-click on Path (under System Variables). Add the full path to the 
-  <code>tools/</code> directory to the path. </li>
-  </ul>
-
-<p>Note that, if you update your SDK in the future, you 
-should remember to update your PATH settings to point to the new location, if different.</p>
-
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools plugin and set up Eclipse. 
-If you choose not to use Eclipse, you can 
-develop Android applications in an IDE of your choice and then compile, debug and deploy using
-the tools included in the SDK (skip to <a href="#next">Next Steps</a>).</p>
-
-
-<h2 id="installingplugin">Installing the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<p>In general, using Eclipse with ADT is a highly recommended
-approach to Android development and is the fastest way to get started.
-(If you prefer to work in an IDE other than Eclipse,
-you do not need to install Eclipse or ADT, instead, you can directly
-use the SDK tools to build and debug your application.)</p>
-
-<p>Once you have Eclipse installed, as described in <a href="#setup">Preparing for 
-Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse
-environment. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.3 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> 
-&gt; <strong>Find and Install...</strong>. </li>
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> 
-and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and 
-    enter the URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
-        instead of "https" (https is preferred for security reasons).</p>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for the
-    "Android Plugin".
-    This will select the nested tools: "Android DDMS" and "Android Development Tools". 
-    Click <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement, then click <strong>Next</strong>. </li>
-    <li>On the following Installation window, click <strong>Finish</strong>. </li>
-    <li>The ADT plugin is not digitally signed. Accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<!-- 3.4 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.</li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
-    <li>Click <strong>Add Site...</strong> </li>
-    <li>Enter the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
-        instead of "https" (https is preferred for security reasons).</p>   
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin listed by the URL,
-    with "Developer Tools" nested within it. Select the checkbox next to 
-      Developer Tools and click <strong>Install...</strong></li>
-    <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
-    should both be checked. Click <strong>Next</strong>. </li>
-    <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel (Mac: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and 
-locate your downloaded SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the 
-<a href="#next">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are 
-some suggestions: </p>
-
-<ul>
-  <li>If Eclipse can not find the remote update site containing the ADT plugin, try changing 
-  the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
-  <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-  <li>If you are behind a firewall (such as a corporate firewall), make
-  sure that you have properly configured your proxy settings in Eclipse.
-  In Eclipse 3.3/3.4, you can configure proxy information from the main
-  Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; 
-  <strong>Preferences</strong> &gt; <strong>General</strong> &gt; 
-  <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you 
-can download the ADT zip file to your local machine and manually install the it:
-</p>
-<ol>
-  <li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).</li>
-  <li>Follow steps 1 and 2 in the default install instructions (above).</li>
-  <li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-      In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong></li>
-  <li>Browse and select the downloaded zip file.</li>
-  <li>Follow the remaining procedures, above, starting from steps 5.</li>
-</ol>
-<p>To update your plugin once you've installed using the zip file, you will have to 
-follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include these components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
-<h2 id="next">Next Steps</h2>
-<p>Once you have completed installation, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
-  <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
-  Guide</a> and the types of information it provides</li>
-  <li>Read an introduction to Android as a platform in <a
-  href="{@docRoot}guide/basics/what-is-android.html">What is
-  Android?</a></li>
-  <li>Learn about the Android framework and how applications run on it in
-  <a href="{@docRoot}guide/topics/fundamentals.html">Application
-  Fundamentals</a></li>
-  <li>Take a look at the Android framework API specification in the <a
-  href="{@docRoot}reference/packages.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
-  <li>Get an overview of the <a
-  href="{@docRoot}guide/developing/tools/index.html">development
-  tools</a> that are available to you</li>
-  <li>Read how to develop <a
-  href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
-  <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
-  </li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
-  <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
-  World application</a> (highly recommended, especially for Eclipse users)</li>
-  <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
-  Notepad Tutorial</a> to build a full Android application </li>
-  <li>Create a new project for one of the other sample applications
-  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platfrom&gt;</em>/samples</code>, 
-  then compile and run it in your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
-  <li>Take a look at the <a
-  href="{@docRoot}community/index.html">Community</a> tab to see a list of
-  Android developers groups. In particular, you might want to look at the
-  <a href="http://groups.google.com/group/android-developers">Android
-  Developers</a> group to get a sense for what the Android developer
-  community is like.</li>
-</ul>
-
-
-<h2 id="installnotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
-  <li>If you need help installing and configuring Java on your
-    development machine, you might find these resources helpful: 
-    <ul>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
-    </ul>
-  </li>
-  <li>Here are the steps to install Java and Eclipse, prior to installing
-  the Android SDK and ADT Plugin.
-    <ol>
-      <li>If you are running a 64-bit distribution on your development
-      machine, you need to install the <code>ia32-libs</code> package using
-      <code>apt-get:</code>:
-      <pre>apt-get install ia32-libs</pre>
-      </li>
-      <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
-      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-      version for download, so we recommend that you download Eclipse from
-      eclipse.org (<a
-      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-      <li>Follow the steps given in previous sections to install the SDK 
-      and the ADT plugin. </li>
-    </ol>
-  </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
-  <li>If JDK is already installed on your development computer, please
-  take a moment to make sure that it meets the version requirements listed
-  in the <a href="{@docRoot}sdk/requirements.html">System Requirements</a>.
-  In particular, note that some Linux distributions may include JDK 1.4 or Gnu
-  Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
-
-
-
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.5_r2/requirements.jd b/docs/html/sdk/1.5_r2/requirements.jd
index c10ccac..96fdcb26 100644
--- a/docs/html/sdk/1.5_r2/requirements.jd
+++ b/docs/html/sdk/1.5_r2/requirements.jd
@@ -1,45 +1,8 @@
-page.title=System Requirements
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android <?cs var:sdk.version ?> SDK, Release <?cs var:sdk.rel.id ?>. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h3>Supported Operating Systems</h3>
-<ul>
-  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
-        <ul>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li>Eclipse Classic IDE package is not supported.</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.5_r3/index.jd b/docs/html/sdk/1.5_r3/index.jd
index a79fe43..eb10f5e 100644
--- a/docs/html/sdk/1.5_r3/index.jd
+++ b/docs/html/sdk/1.5_r3/index.jd
@@ -1,88 +1,5 @@
-sdk.version=1.5
-sdk.rel.id=3
-
-sdk.date=July 2009
-
-sdk.win_download=android-sdk-windows-1.5_r3.zip
-sdk.win_bytes=191477853
-sdk.win_checksum=1725fd6963ce69102ba7192568dfc711
-
-sdk.mac_download=android-sdk-mac_x86-1.5_r3.zip
-sdk.mac_bytes=183024673
-sdk.mac_checksum=b1bafdaefdcec89a14b604b504e7daec
-
-sdk.linux_download=android-sdk-linux_x86-1.5_r3.zip
-sdk.linux_bytes=178117561
-sdk.linux_checksum=350d0211678ced38da926b8c9ffa4fac
-
 page.title=Android 1.5 SDK, Release 3
+sdk.redirect=true
+sdk.redirect.path=index.html
+
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.5_r3">Release Notes</a>.</p>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the  
-<a href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them in the <code>&lt;sdk&gt;/tools/</code> directory. 
-
-<p>The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see <a href="upgrading.html">Upgrading the SDK</a>.
-
-<p>For more information about the new tools features, see the <a href="{@docRoot}sdk/RELEASENOTES.html">SDK Release Notes</a>. 
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version &mdash; features, applications included, localizations, API changes, and so on &mdash; see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version Notes</a></nobr></td>
-<td>Includes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.1</nobr></td>
-<td  width="5%">2</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.1.html">Version Notes</a></nobr></td>
-<td>Includes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).</td>
-</tr>
-</table>
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<p>An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant 
-system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code>&lt;sdk&gt;/platforms/android-1.5/samples/</code> directory of the SDK package. Note the new location &mdash; the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE. </p>
-
-<p>The most current documentation is always available on the Android Developers site:</p>
-
-<p style="margin-left:2em;"><a href="http://developer.android.com/index.html">http://developer.android.com/</a></p>
-
diff --git a/docs/html/sdk/1.5_r3/installing.jd b/docs/html/sdk/1.5_r3/installing.jd
index ac475d1..2ea04e4 100644
--- a/docs/html/sdk/1.5_r3/installing.jd
+++ b/docs/html/sdk/1.5_r3/installing.jd
@@ -1,332 +1,8 @@
-sdk.version=1.5
-sdk.rel.id=3
-sdk.date=April 2009
-
-page.title=Installing the Android SDK
 @jd:body
 
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-<p>This page describes how to install the Android SDK and set up your
-development environment. If you haven't downloaded the SDK, you can
-do so from the 
-<a href="index.html">Download</a> page. Once you've downloaded
-the SDK, return here.</p>
-
-<p>If you encounter any problems during installation, see the 
-<a href="#installnotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the SDK, please read 
-<a href="upgrading.html"><strong>Upgrading the
-SDK</strong></a></b>, instead.
-</p>
-
-
-<h2 id="setup">Preparing for Installation</h2>
-
-<p>Before you begin, take a moment to confirm that your development machine meets the 
-<a href="requirements.html">System Requirements</a>.
-</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer (3.3 or newer). If you need to install Eclipse, you can
-download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a
-></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="installingsdk">Installing the SDK</h2>
-
-<p>After downloading the SDK, unpack the .zip archive to a suitable location on your machine. 
-By default, the SDK files are unpacked into a directory named 
-<code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>. 
-The directory contains a local copy of the documentation (accessible by opening
-<code>documentation.html</code> in your browser) and the subdirectories 
-<code>tools/</code>, <code>add-ons/</code>, <code>platforms/</code>, and others. Inside
-each subdirectory of <code>platforms/</code> you'll find <code>samples/</code>, which includes
-code samples that are specific to each version of the platform.</p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you 
-will need to refer to the SDK directory later, when setting up the Android plugin or when 
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory 
-to your system PATH. The primary <code>tools/</code> directory is located at the root of the 
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and 
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without 
-needing to supply the full path to the tools directory. </p>
-<ul>
-    <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
-    for a line that sets the PATH environment variable and add the
-    full path to the <code>tools/</code> directory to it. If you don't 
-    see a line setting the path, you can add one:</li>
-
-    <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-    <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
-    proceed as for Linux. You can create the <code>.bash_profile</code> if 
-    you haven't already set one up on your machine. </li>
-
-    <li>On Windows, right-click on My Computer, and select Properties.  
-  Under the Advanced tab, hit the Environment Variables button, and in the
-  dialog that comes up, double-click on Path (under System Variables). Add the full path to the 
-  <code>tools/</code> directory to the path. </li>
-  </ul>
-
-<p>Note that, if you update your SDK in the future, you 
-should remember to update your PATH settings to point to the new location, if different.</p>
-
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools plugin and set up Eclipse. 
-If you choose not to use Eclipse, you can 
-develop Android applications in an IDE of your choice and then compile, debug and deploy using
-the tools included in the SDK (skip to <a href="#next">Next Steps</a>).</p>
-
-
-<h2 id="installingplugin">Installing the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<p>In general, using Eclipse with ADT is a highly recommended
-approach to Android development and is the fastest way to get started.
-(If you prefer to work in an IDE other than Eclipse,
-you do not need to install Eclipse or ADT, instead, you can directly
-use the SDK tools to build and debug your application.)</p>
-
-<p>Once you have Eclipse installed, as described in <a href="#setup">Preparing for 
-Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse
-environment. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.3 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> 
-&gt; <strong>Find and Install...</strong>. </li>
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> 
-and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and 
-    enter the URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
-        instead of "https" (https is preferred for security reasons).</p>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for the
-    "Android Plugin".
-    This will select the nested tools: "Android DDMS" and "Android Development Tools". 
-    Click <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement, then click <strong>Next</strong>. </li>
-    <li>On the following Installation window, click <strong>Finish</strong>. </li>
-    <li>The ADT plugin is not digitally signed. Accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<!-- 3.4 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.</li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
-    <li>Click <strong>Add Site...</strong> </li>
-    <li>Enter the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
-        instead of "https" (https is preferred for security reasons).</p>   
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin listed by the URL,
-    with "Developer Tools" nested within it. Select the checkbox next to 
-      Developer Tools and click <strong>Install...</strong></li>
-    <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
-    should both be checked. Click <strong>Next</strong>. </li>
-    <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel (Mac: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and 
-locate your downloaded SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the 
-<a href="#next">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are 
-some suggestions: </p>
-
-<ul>
-  <li>If Eclipse can not find the remote update site containing the ADT plugin, try changing 
-  the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
-  <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-  <li>If you are behind a firewall (such as a corporate firewall), make
-  sure that you have properly configured your proxy settings in Eclipse.
-  In Eclipse 3.3/3.4, you can configure proxy information from the main
-  Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; 
-  <strong>Preferences</strong> &gt; <strong>General</strong> &gt; 
-  <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you 
-can download the ADT zip file to your local machine and manually install the it:
-</p>
-<ol>
-  <li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).</li>
-  <li>Follow steps 1 and 2 in the default install instructions (above).</li>
-  <li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-      In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong></li>
-  <li>Browse and select the downloaded zip file.</li>
-  <li>Follow the remaining procedures, above, starting from steps 5.</li>
-</ol>
-<p>To update your plugin once you've installed using the zip file, you will have to 
-follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include these components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
-<h2 id="next">Next Steps</h2>
-<p>Once you have completed installation, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
-  <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
-  Guide</a> and the types of information it provides</li>
-  <li>Read an introduction to Android as a platform in <a
-  href="{@docRoot}guide/basics/what-is-android.html">What is
-  Android?</a></li>
-  <li>Learn about the Android framework and how applications run on it in
-  <a href="{@docRoot}guide/topics/fundamentals.html">Application
-  Fundamentals</a></li>
-  <li>Take a look at the Android framework API specification in the <a
-  href="{@docRoot}reference/packages.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
-  <li>Get an overview of the <a
-  href="{@docRoot}guide/developing/tools/index.html">development
-  tools</a> that are available to you</li>
-  <li>Read how to develop <a
-  href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
-  <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
-  </li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
-  <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
-  World application</a> (highly recommended, especially for Eclipse users)</li>
-  <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
-  Notepad Tutorial</a> to build a full Android application </li>
-  <li>Create a new project for one of the other sample applications
-  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platfrom&gt;</em>/samples</code>, 
-  then compile and run it in your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
-  <li>Take a look at the <a
-  href="{@docRoot}community/index.html">Community</a> tab to see a list of
-  Android developers groups. In particular, you might want to look at the
-  <a href="http://groups.google.com/group/android-developers">Android
-  Developers</a> group to get a sense for what the Android developer
-  community is like.</li>
-</ul>
-
-
-<h2 id="installnotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
-  <li>If you need help installing and configuring Java on your
-    development machine, you might find these resources helpful: 
-    <ul>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
-    </ul>
-  </li>
-  <li>Here are the steps to install Java and Eclipse, prior to installing
-  the Android SDK and ADT Plugin.
-    <ol>
-      <li>If you are running a 64-bit distribution on your development
-      machine, you need to install the <code>ia32-libs</code> package using
-      <code>apt-get:</code>:
-      <pre>apt-get install ia32-libs</pre>
-      </li>
-      <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
-      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-      version for download, so we recommend that you download Eclipse from
-      eclipse.org (<a
-      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-      <li>Follow the steps given in previous sections to install the SDK 
-      and the ADT plugin. </li>
-    </ol>
-  </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
-  <li>If JDK is already installed on your development computer, please
-  take a moment to make sure that it meets the version requirements listed
-  in the <a href="{@docRoot}sdk/requirements.html">System Requirements</a>.
-  In particular, note that some Linux distributions may include JDK 1.4 or Gnu
-  Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
-
-
-
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.5_r3/requirements.jd b/docs/html/sdk/1.5_r3/requirements.jd
index 5bcee27..96fdcb26 100644
--- a/docs/html/sdk/1.5_r3/requirements.jd
+++ b/docs/html/sdk/1.5_r3/requirements.jd
@@ -1,48 +1,8 @@
-sdk.version=1.5
-sdk.rel.id=3
-page.title=System Requirements
-
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android <?cs var:sdk.version ?> SDK, Release <?cs var:sdk.rel.id ?>. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h3>Supported Operating Systems</h3>
-<ul>
-  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
-        <ul>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li>Eclipse Classic IDE package is not supported.</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.6_r1/index.jd b/docs/html/sdk/1.6_r1/index.jd
index 8f33949..e7f9112 100644
--- a/docs/html/sdk/1.6_r1/index.jd
+++ b/docs/html/sdk/1.6_r1/index.jd
@@ -1,140 +1,5 @@
 page.title=Android 1.6 SDK, Release 1
-sdk.redirect=0
-sdk.version=1.6
-
-sdk.date=September 2009
-
-sdk.win_download=android-sdk-windows-1.6_r1.zip
-sdk.win_bytes=260529085
-sdk.win_checksum=2bcbacbc7af0363058ca1cac6abad848
-
-sdk.mac_download=android-sdk-mac_x86-1.6_r1.zip
-sdk.mac_bytes=247412515
-sdk.mac_checksum=eb13cc79602d492e89103efcf48ac1f6
-
-sdk.linux_download=android-sdk-linux_x86-1.6_r1.tgz
-sdk.linux_bytes=238224860
-sdk.linux_checksum=b4bf0e610ff6db2fb6fb09c49cba1e79
-
-adt.zip_download=ADT-0.9.3.zip
-adt.zip_version=0.9.3
-adt.zip_bytes=3252487
-adt.zip_checksum=c296488ac35772667c0f49e822156979
+sdk.redirect=true
+sdk.redirect.path=index.html
 
 @jd:body
-
-<p>For more information on this SDK release, read the
-<a href="{@docRoot}sdk/RELEASENOTES.html#1.6_r1">Release Notes</a>.</p>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a full set of tools for developing and debugging application
-code and designing an application UI. You can read about the tools in the <a
-href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them
-in the <code>&lt;sdk&gt;/tools/</code> directory. 
-
-<p>The tools package in this SDK includes updates from those provided in the
-previous SDK. The tools use the same project structure as in the previous SDK
-(Android 1.5). If you have application projects developed in the Android 1.5
-SDK, you can migrate them to the latest SDK without modification. For more
-information about how to migrate, see <a href="upgrading.html">Upgrading the
-SDK</a>.
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you can use to
-develop applications. For each version, both a fully compliant Android library
-and system image are provided. The table below lists the platform versions
-included in this SDK. For more information about a platform version &mdash;
-features, applications included, localizations, API changes, and so on &mdash;
-see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API
-Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.6</nobr></td>
-<td  width="5%">4</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.6.html">Version
-Notes</a></nobr></td>
-<td>Includes a standard Android 1.6 library and system image with a set of
-development applications. Does not include any external libraries (such as the
-Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version
-Notes</a></nobr></td>
-<td>Includes a standard Android 1.5 library and system image with a set of
-development applications. Does not include any external libraries (such as the
-Maps external library).</td>
-</tr>
-</table>
-
-<p>Note that you can use the Android SDK and AVD Manager to download other
-platform versions into your development environment.</span>. 
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<p>An SDK add-on provides a development environment for an Android external
-library or a customized (but fully compliant) Android system image. This SDK
-includes the SDK add-ons listed below. The Android system API Level required by
-the add-ons are noted.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th>
-<th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">4</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant
-Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant 
-Android 1.5 system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a
-href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample
-code itself in the <code>&lt;sdk&gt;/platforms/&lt;platform&gt;/samples/</code>
-directory of the SDK package. Note the new location &mdash; the SDK now includes
-multiple platform versions that you can develop against and each has its own
-sample code directory. </p>
-
-<p>For example, to view or build the samples available for the Android 
-1.6 platform (AVD target "Android 1.6"), you will find the samples in the
-<code>&lt;sdk&gt;/platforms/android-1.6/samples/</code> directory of the SDK
-package. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open
-the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you
-are developing in an IDE such as Eclipse, you can also view the reference
-documentation directly in the IDE. </p>
-
-<p>The most current documentation is always available on the Android Developers
-site:</p>
-
-<p style="margin-left:2em;"><a
-href="http://developer.android.com/index.html">http://developer.android.com/</a>
-</p>
-
-
diff --git a/docs/html/sdk/1.6_r1/installing.jd b/docs/html/sdk/1.6_r1/installing.jd
index 954bfa3..2ea04e4 100644
--- a/docs/html/sdk/1.6_r1/installing.jd
+++ b/docs/html/sdk/1.6_r1/installing.jd
@@ -1,441 +1,8 @@
-page.title=Installing the Android 1.6 SDK
-sdk.version=1.6
-sdk.preview=0
-
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<script type="text/javascript">
+  document.location=toRoot+"sdk/installing.html"
+</script>
 
-  <h2>In this document</h2>
-  <ol>
-    <li><a href="#Preparing">Prepare for Installation</a></li>
-    <li><a href="#Installing">Install the SDK</a></li>
-    <li><a href="#InstallingADT">Install the ADT Plugin for Eclipse</a></li>
-    <li><a href="#sdkContents">SDK Contents</a></li>
-    <li><a href="#NextSteps">Next Steps</a></li>
-    <li><a href="#InstallationNotes">Installation Notes</a></li>
-    <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
-  </ol>
-
-</div>
-</div>
-
-<p>This page describes how to install the Android SDK and set up your
-development environment.</p>
-
-<p>If you encounter any problems during installation, see the 
-<a href="#InstallationNotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
-</p>
-
-
-<h2 id="Preparing">Prepare for Installation</h2>
-
-<p>Before you begin, take a moment to confirm that your development machine
-meets the <a href="requirements.html">System Requirements</a>.</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer (3.4 or newer is recommended). If you need 
-to install Eclipse, you can download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="Installing">Install the SDK</h2>
-
-<p>After downloading the Android SDK, unpack the Android SDK .zip archive 
-to a suitable location on your machine. By default, the SDK files are unpacked 
-into a directory named <code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>. </p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you 
-will need to refer to the SDK directory later, when setting up the Android plugin or when 
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory 
-to your system <code>PATH</code>. The primary <code>tools/</code> directory is located at the root of the 
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and 
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without 
-needing to supply the full path to the tools directory. </p>
-<ul>
-    <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
-    for a line that sets the PATH environment variable and add the
-    full path to the <code>tools/</code> directory to it. If you don't 
-    see a line setting the path, you can add one:</li>
-
-    <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-    <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
-    proceed as for Linux. You can create the <code>.bash_profile</code> if 
-    you haven't already set one up on your machine. </li>
-
-    <li>On Windows, right-click on My Computer, and select Properties.  
-  Under the Advanced tab, hit the Environment Variables button, and in the
-  dialog that comes up, double-click on Path (under System Variables). Add the full path to the 
-  <code>tools/</code> directory to the path. </li>
-  </ul>
-
-<p>Note that, if you update your SDK in the future, you 
-should remember to update your <code>PATH</code> settings to point to the new location, if different.</p>
-
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools (ADT) plugin and set up Eclipse. 
-If you choose not to use Eclipse, you can 
-develop Android applications in an IDE of your choice and then compile, debug and deploy using
-the tools included in the SDK (skip to <a href="#NextSteps">Next Steps</a>).</p>
-
-
-<h2 id="InstallingADT">Install the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<p>In general, using Eclipse with ADT is a highly recommended approach to
-Android development and is the fastest way to get started. (If you prefer to
-work in an IDE other than Eclipse, you do not need to install Eclipse or ADT,
-instead, you can directly use the SDK tools to build and debug your
-application&mdash;skip to <a href="#NextSteps">Next Steps</a>.)</p>
-
-<p>Once you have the Eclipse IDE installed, as described in <a
-href="#Preparing">Preparing for Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse environment.
-</p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.4 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>. 
-        In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
-    <li>Click <strong>Add Site...</strong> </li>
-    <li>In the Add Site dialog that appears, enter this URL in the "Location" field:
-      <pre style="margin-left:0">https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Note: If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
-        instead of "https" (https is preferred for security reasons).</p>   
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin listed by the URL,
-    with "Developer Tools" nested within it. Select the checkbox next to 
-      Developer Tools and click <strong>Install...</strong></li>
-    <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
-    should both be checked. Click <strong>Next</strong>. </li>
-    <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-<!-- 3.5 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install
-        New Softare</strong>. </li>
-    <li>In the Available Software dialog, click <strong>Add...</strong>.</li>
-    <li>In the Add Site dialog that appears, enter a name for the remote site
-        (e.g., "Android Plugin") in the "Name" field. 
-        <p>In the "Location" field, enter this URL:</p>
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Note: If you have trouble aqcuiring the plugin, you can try
-           using "http" in the URL, instead of "https" (https is preferred for 
-           security reasons).</p>
-        <p>Click <strong>OK</strong>.</p>
-    </li>
-    <li>Back in the Available Software view, you should now see "Developer
-        Tools" added to the list. Select the checkbox next to Developer Tools, 
-        which will automatically select the nested tools Android DDMS and Android 
-        Development Tools. 
-        Click <strong>Next</strong>. </li>
-    <li>In the resulting Install Details dialog, the Android DDMS and Android 
-        Development Tools features are listed. Click <strong>Next</strong> to 
-        read and accept the license agreement and install any dependencies, 
-        then click <strong>Finish</strong>. </li>
-    <li>Restart Eclipse. </li>
-	
-</ol>
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
-    <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
-        panel (Mac: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and 
-        locate your downloaded SDK directory. </li>
-    <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the 
-<a href="#NextSteps">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h2 id="sdkContents">Contents of the SDK</h2>
-
-<p>Once you've downloaded and unpacked the SDK, open the SDK directory 
-and take a look at what's inside.
-
-<p>The table below describes the SDK directory contents. </p>
-
-<table>
-<tr>
-<th colspan="3">Name</th><th>Description</th>
-</tr>
-<tr>
-<td colspan="3"><code>add-ons/</code></td>
-<td>Contains add-ons to the Android SDK development
-environment, which let you develop against external libraries that are available on some
-devices. </td>
-</tr>
-<tr>
-<td colspan="3"><code>docs/</code></td>
-<td>A full set of documentation in HTML format, including the Developer's Guide,
-API Reference, and other information.</td>
-</tr>
-<tr>
-<td colspan="3"><code>platforms/</code></td>
-<td>Contains a set of Android platform versions that you can develop
-applications against, each in a separate directory.  </td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td colspan="2"><code>&lt;platform&gt;/</code></td>
-<td>Platform version directory, for example "Android 1.6". All platform version 
-directories contain a similar set of files and subdirectory structure.</td>
-</tr>
-
-<tr>
-<td style="width:2em;border-bottom-color:white;">&nbsp;</td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>data/</code></td>
-<td>Storage area for default fonts and resource definitions.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>images/</code></td>
-<td>Storage area for default disk images, including the Android system image, 
-the default userdata image, the default ramdisk image, and more. The images 
-are used in emulator sessions.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>samples/</code></td>
-<td>Contains a wide variety of sample applications that you can load as projects
-into your development environment, compile, and run on the emulator.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>skins/</code></td>
-<td>A set of emulator skins available for the platform version. Each skin is
-designed for a specific screen resolution.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>templates/</code></td>
-<td>Storage area for file templates used by the SDK development tools.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>tools/</code></td>
-<td>Any development tools that are specific to the platform version.</td>
-</tr>
-<tr>
-<td style="width:2em;"></td>
-<td style="width:2em;"></td>
-<td><code>android.jar</code></td>
-<td>The Android library used when compiling applications against this platform
-version.</td>
-</tr>
-<tr>
-<td colspan="3"><code>tools/</code></td>
-<td>Contains the set of development and profiling tools available to you, such
-as the emulator, the <code>android</code> tool, adb, ddms, and more.</td>
-</tr>
-<tr>
-<td colspan="3"><code>RELEASE_NOTES.html</code></td>
-<td>A file that loads the local version of the SDK release notes, if
-available.</td>
-</tr>
-<tr>
-<td colspan="3"><code>documentation.html</code></td>
-<td>A file that loads the entry page for the local Android SDK
-documentation.</td>
-</tr>
-
-</table>
-
-<h2 id="NextSteps">Next Steps</h2>
-<p>Once you have completed installation, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
-  <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
-  Guide</a> and the types of information it provides</li>
-  <li>Read an introduction to Android as a platform in <a
-  href="{@docRoot}guide/basics/what-is-android.html">What is
-  Android?</a></li>
-  <li>Learn about the Android framework and how applications run on it in
-  <a href="{@docRoot}guide/topics/fundamentals.html">Application
-  Fundamentals</a></li>
-  <li>Take a look at the Android framework API specification in the <a
-  href="{@docRoot}reference/packages.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
-  <li>Get an overview of the <a
-  href="{@docRoot}guide/developing/tools/index.html">development
-  tools</a> that are available to you</li>
-  <li>Read how to develop <a
-  href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
-  <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
-  </li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
-  <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
-  World application</a> (highly recommended, especially for Eclipse users)</li>
-  <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
-  Notepad Tutorial</a> to build a full Android application </li>
-  <li>Create a new project for one of the other sample applications
-  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platform&gt;</em>/samples</code>, 
-  then compile and run it in your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
-  <li>Take a look at the <a
-  href="{@docRoot}community/index.html">Community</a> tab to see a list of
-  Android developers groups. In particular, you might want to look at the
-  <a href="http://groups.google.com/group/android-developers">Android
-  Developers</a> group to get a sense for what the Android developer
-  community is like.</li>
-</ul>
-
-
-<h2 id="InstallationNotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
-  <li>If you need help installing and configuring Java on your
-    development machine, you might find these resources helpful: 
-    <ul>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
-    </ul>
-  </li>
-  <li>Here are the steps to install Java and Eclipse, prior to installing
-  the Android SDK and ADT Plugin.
-    <ol>
-      <li>If you are running a 64-bit distribution on your development
-      machine, you need to install the <code>ia32-libs</code> package using
-      <code>apt-get:</code>:
-      <pre>apt-get install ia32-libs</pre>
-      </li>
-      <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
-      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-      version for download, so we recommend that you download Eclipse from
-      eclipse.org (<a
-      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-      <li>Follow the steps given in previous sections to install the SDK 
-      and the ADT plugin. </li>
-    </ol>
-  </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
-  <li>If JDK is already installed on your development computer, please
-  take a moment to make sure that it meets the version requirements listed
-  in the <a href="requirements.html">System Requirements</a>.
-  In particular, note that some Linux distributions may include JDK 1.4 or Gnu
-  Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
-
-
-<h2 id="Troubleshooting">Troubleshooting ADT Installation</h2>
-
-<p> If you are having trouble downloading the ADT plugin after following the
-steps above, here are some suggestions: </p>
-
-<ul>
-  <li>If Eclipse can not find the remote update site containing the ADT plugin,
-try changing the remote site URL to use http, rather than https. That is, set
-the Location for the remote site to:
-<pre>http://dl-ssl.google.com/android/eclipse/</pre></li> 
-<li>If you are behind a firewall (such as a corporate firewall), make sure that
-you have properly configured your proxy settings in Eclipse. In Eclipse 3.3/3.4,
-you can configure proxy information from the main Eclipse menu in
-<strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt;
-<strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network
-Connections</strong>.</li>
-</ul>
-
-<p> If you are still unable to use Eclipse to download the ADT plugin as a
-remote update site, you can download the ADT zip file to your local machine and
-manually install it:</p>
-
-<ol>
-  <li><a href="http://developer.android.com/sdk/preview/index.html">Download the
-      ADT Plugin zip file</a> (do not unpack it).</li>
-  <li>Follow steps 1 and 2 in the <a href="#InstallingADT">default install 
-      instructions</a> (above).</li>
-  <li>In the Add Site dialog, click <strong>Archive</strong>.</li>
-  <li>Browse and select the downloaded zip file.</li>
-  <li>In Eclipse 3.5 only, enter a name for the local update site (e.g.,
-      "Android Plugin") in the "Name" field.</li>
-  <li>Click <strong>OK</strong>.
-  <li>Follow the remaining procedures as listed for 
-      <a href="#InstallingADT">default installation</a> above,
-      starting from step 4.</li>
-</ol>
-
-<p>To update your plugin once you've installed using the zip file, you will have
-to follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include these components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/1.6_r1/requirements.jd b/docs/html/sdk/1.6_r1/requirements.jd
index 8cfc049..96fdcb26 100644
--- a/docs/html/sdk/1.6_r1/requirements.jd
+++ b/docs/html/sdk/1.6_r1/requirements.jd
@@ -1,57 +1,8 @@
-page.title=System Requirements
-sdk.version=1.6
-sdk.preview=0
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing 
-Android applications using the Android SDK tools included in Android 
-<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
+<script type="text/javascript">
+  document.location=toRoot+"sdk/requirements.html"
+</script>
 
-<h3>Supported Operating Systems</h3>
-<ul>
-  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Hardy Heron)
-    <ul>
-      <li>64-bit distributions must be capable of running 32-bit applications. 
-      For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
-    </ul>
-  </li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.4 (Ganymede) or 3.5 (Galileo)
-        <ul>
-        <li>Note: Eclipse 3.3 has not been fully tested with ADT 0.9.3 and support can no longer be guaranteed. We suggest you upgrade to 
-          Eclipse 3.4 or 3.5.</li>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li>Eclipse Classic IDE package is not supported.</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
-
-<h3>Hardware requirements</h3>
-<ul>
-  <li>For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed. </li>
-</ul>
-
+<p>You should have already been redirected by your browser. Please go to
+<a href="{@docRoot}sdk/requirements.html">System Requirements</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index bca89f6..cbfac2b 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -76,11 +76,8 @@
   </ul>
 
 <p>For details about the Android platforms included in the SDK &mdash; including
-bug fixes, features, and API changes &mdash; please read the Version Notes
-documents available at left. For a list of Android platforms included in this
-release, see the <a href="{@docRoot}sdk/1.6_r1/index.html">Download
-page</a>. Note that you can use the Android SDK and AVD Manager to download 
-additional platforms.</p>
+bug fixes, features, and API changes &mdash; please read the <a
+href="android-1.6.html">Android 1.6 version notes</a>.</p>
 
 <h3>Installation and Upgrade Notes</h3>
 
@@ -96,10 +93,6 @@
 matching the application's original API Level, and run it against the most
 current platform. </p>
 
-<p>If you're installing the Android SDK for the first time, please see
-the instructions in <a
-href="{@docRoot}sdk/1.6_r1/installing.html">Installing the SDK</a>.
-
 <h3>ADT Plugin for Eclipse</h3>
 
 <p>An updated version of the ADT Plugin for Eclipse is available with the
@@ -115,8 +108,8 @@
 
 <p>The new version of ADT is downloadable from the usual remote update site or
 is separately downloadable as a .zip archive. For instructions on how to
-download the plugin, please see <a href="{@docRoot}sdk/1.6_r1/upgrading.html#UpdateAdt">Upgrading
-Your Eclipse Plugin</a>. </p>
+download the plugin, please see <a
+href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>. </p>
 
 <h3>Android SDK and AVD Manager</h3>
 
@@ -208,11 +201,9 @@
 upgrading if you have had any problems with the older driver or simply want
 to upgrade to the latest version.</p>
 
-<p>The USB driver files are located in the
-<code>&lt;SDK&gt;/usb_driver</code> directory. For driver installation or
+<p>For driver installation or
 upgrade instructions, see  <a
-href="{@docRoot}guide/developing/device.html#WinUsbDriver">Installing the WinUSB
-Driver</a>.</p>
+href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a>.</p>
 </p>
 
 <h3>Emulator Skins, Android 1.6 Platform</h3>
@@ -360,10 +351,8 @@
   </ul>
 
 <p>For details about the Android platforms included in the SDK &mdash; including
-bug fixes, features, and API changes &mdash; please read the Version Notes
-documents available at left. For a list of Android platforms included in this
-release, see the <a href="{@docRoot}sdk/1.5_r1/index.html">Download
-page</a>.</p>
+bug fixes, features, and API changes &mdash; please read the <a
+href="{@docRoot}sdk/android-1.5.html">Android 1.5 version notes</a>.</p>
 
 <h3>Installation and Upgrade Notes</h3>
 
@@ -379,10 +368,6 @@
 matching the application's original API Level, and run it against the most
 current platform. </p>
 
-<p>If you're installing the Android SDK for the first time, please see
-the instructions in <a
-href="{@docRoot}sdk/1.5_r1/installing.html">Installing the SDK</a>.
-
 <h3>SDK Add-Ons</h3>
 
 <p>This version of the SDK introduces support for SDK add-ons, which extend the
@@ -457,11 +442,9 @@
 <li>USB driver for 64-bit Vista only</li>
 </ul>
 
-<p>The USB driver files are located in the
-<code>&lt;SDK&gt;/usb_driver</code> directory. For details and
-installation instructions, see <a
-href="{@docRoot}guide/developing/device.html#setting-up">Setting Up a
-Device for Development</a>.</p>
+<p>For driver installation or
+upgrade instructions, see  <a
+href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a>.</p>
 </p>
 
 <h3>Resolved Issues, Changes</h3>
@@ -508,7 +491,7 @@
 
 <p>For details about the Android 1.1 system image included in the SDK &mdash;
 including bug fixes, features, and API changes &mdash; please read the <a
-href="{@docRoot}sdk/android-1.1.html">Android 1.1 Version Notes</a>.</p>
+href="{@docRoot}sdk/android-1.1.html">Android 1.1 version notes</a>.</p>
 
 <h3>App Versioning for Android 1.1</h3>
 
@@ -562,8 +545,7 @@
 Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a
 previous version of ADT, you should update to the latest version for use
 with this SDK. For information about how to update your ADT plugin, see
-<a href="{@docRoot}sdk/1.1_r1/upgrading.html#update-plugin">Upgrading
-the SDK</a>.</p>
+<a href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
 
 <h3>Installation and Upgrade Notes</h3>
 
@@ -572,10 +554,6 @@
 user data (emulator option <code>-wipe-data</code>) when running your
 application on the Android 1.1 emulator for the first time.</p>
 
-<p>If you're installing the Android SDK for the first time, please see
-the instructions in <a
-href="{@docRoot}sdk/1.5_r1/installing.html">Installing the SDK</a>.
-
 <h3>Other Notes</h3>
 
 <p><strong>MapView API Key</strong></p>
@@ -673,13 +651,7 @@
 Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are
 using a previous version of ADT, you should update to the latest version for use
 with this SDK. For information about how to update your ADT plugin, see <a
-href="{@docRoot}sdk/1.0_r2/upgrading.html">Upgrading the SDK</a>.</p>
-
-<h3>Installation and Upgrade Notes</h3>
-
-<p>If you're installing the Android SDK for the first time, please see the
-instructions in <a href="{@docRoot}sdk/1.0_r2/installing.html">Installing the
-SDK</a>.
+href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
 
 <h3>Other Notes</h3>
 
@@ -765,8 +737,6 @@
 
 <p>If you've been developing an application using a previous SDK version and you want the application to run on Android-powered mobile devices, you must port the application to the Android 1.0 SDK. Please see <a href="{@docRoot}sdk/1.0_r1/upgrading.html">Upgrading the SDK</a> for detailed instructions on how to make the transition to this release.  Be sure to wipe application user data (emulator option <code>-wipe-data</code>) when running your application on the Android 1.0 SDK emulator.</p>
 
-<p>If you're installing the Android SDK for the first time, please see the instructions in <a href="{@docRoot}sdk/1.0_r1/installing.html">Installing the SDK</a>.
-
 <h3>Other Notes</h3>
 
 <p><strong>MapView API Key</strong></p>
diff --git a/docs/html/sdk/older_releases.jd b/docs/html/sdk/older_releases.jd
index 0ecee3c..c3ba495 100644
--- a/docs/html/sdk/older_releases.jd
+++ b/docs/html/sdk/older_releases.jd
@@ -1,51 +1,369 @@
-page.title=Other SDK Releases
+page.title=SDK Archives
 @jd:body
 
-<p>This page provides a full list of older, obsolete SDK releases, including
-non-current versions of active releases and "early look" versions that were
-released before Android 1.0. The list is provided for informational purposes
-only.</p>
+<p>This page provides a full list of archived and obsolete SDK releases,
+including non-current versions of active releases and "early look" versions that
+were released before Android 1.0. <strong>These are provided for
+informational and archival purposes only</strong>.</p>
 
-<p>If you are just getting started developing on Android, make sure that you
-are using the <a href="{@docRoot}sdk/index.html">most current SDK available</a>,
-to ensure that your applications will be compatible with the latest
-Android-powered devices.</p>
+<div class="special">
+<p>If you are just starting to develop applications for Android, please
+download the current <a href="{@docRoot}sdk/index.html">Android
+SDK</a>. With the current Android SDK, you can add any current and previous
+version of the Android platform as a component and use it for
+development and testing.</p>
+<p>If you already have an Android SDK for platform version 1.6 or newer, then
+you do not need to install a new SDK&mdash;especially not one from this page.
+You should install older platforms as components of your existing SDK.
+See <a href="adding-components.html">Adding SDK Components</a>.</p>
+</div>
 
-<h2>Obsolete Releases</h2>
 
-<p>The table below lists Android SDK releases that have been superceded by an
-active release and that are now obsolete. If you are using one of these
-releases, please upgrade to the <a href="{@docRoot}sdk/index.html">current SDK
-release</a>.</p>
+<h2>Archived SDKs</h2>
 
- <table>
+<p>The tables below provides Android SDKs that are current in terms of their
+platform version, but do not provide the latest Android development
+environment and tools. Instead of downloading one of these, as a separate
+SDK for each version of the platform, you should instead use the new
+version-neutral Android SDK to download each version of
+the Android platfrom as an individual component.</p>
+
+<p>Please download the current <a
+href="http://developer.android.com/sdk/index.html">Android SDK</a>.</p>
+
+
+<h3>Release 1.6 r1</h3>
+ <p><em>September 2009 - <a href="RELEASENOTES.html#1.6_r1">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
   <tr>
-     <th>Release</td>
-     <th>Platform(s)</th>
-     <th>Date</td>
-     <th>Description</td>
-   </tr>
-   <tr>
-     <td><a href="{@docRoot}sdk/1.5_r1/index.html">Android 1.5 SDK, Release 2</a></td>
-     <td style="text-align:center;">Android 1.5<br>Android 1.1</td>
-     <td><em>May 2009</em></td>
-     <td>Replaced by Android 1.5 SDK, Release 3. <em><a href="RELEASENOTES.html#1.5_r2">Release notes</a></em></td>
-   </tr>
-   <tr>
-     <td><a href="{@docRoot}sdk/1.5_r1/index.html">Android 1.5 SDK, Release 1</a></td>
-     <td style="text-align:center;">Android 1.5<br>Android 1.1</td>
-     <td><em>April 2009</em></td>
-     <td>Replaced by Android 1.5 SDK, Release 2. <em><a href="RELEASENOTES.html#1.5_r1">Release notes</a></em></td>
-   </tr>
-   <tr class="alt">
-     <td><a href="{@docRoot}sdk/1.0_r1/index.html">Android 1.0 SDK, Release 1</a></td>
-     <td style="text-align:center;">Android 1.0</td>
-     <td><em>September 2008</em></td>
-     <td>Replaced by Android 1.0 SDK, Release 2. <em><a href="RELEASENOTES.html#1.0_r1">Release notes</a></em></td>
-   </tr>
- </table>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.6_r1.zip">android-sdk-
+windows-1 .6_r1.zip</a>
+    </td>
+    <td>260529085 bytes</td>
+    <td>2bcbacbc7af0363058ca1cac6abad848</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.6_r1.zip">android-sdk-
+mac_x86-1 .6_r1.zip</a>
+    </td>
+    <td>247412515 bytes</td>
+    <td>eb13cc79602d492e89103efcf48ac1f6</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.6_r1.tgz">android-
+sdk- linux_x86-1.6_r1.tgz</a>
+    </td>
+    <td>238224860 bytes</td>
+    <td>b4bf0e610ff6db2fb6fb09c49cba1e79</td>
+  </tr>
+  
+  </table>
 
- <h2>Non-Compatible  Releases</h2>
+
+<h3>Release 1.5 r3</h3>
+ <p><em>July 2009 - <a href="RELEASENOTES.html#1.5_r3">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.5_r3.zip">android-sdk-
+windows-1 .5_r3.zip</a>
+    </td>
+    <td>191477853 bytes</td>
+    <td>1725fd6963ce69102ba7192568dfc711</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.5_r3.zip">android-sdk-
+mac_x86-1 .5_r3.zip</a>
+    </td>
+    <td>183024673 bytes</td>
+    <td>b1bafdaefdcec89a14b604b504e7daec</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.5_r3.zip">android-
+sdk- linux_x86-1.5_r3.zip</a>
+    </td>
+    <td>178117561 bytes</td>
+    <td>350d0211678ced38da926b8c9ffa4fac</td>
+  </tr>
+  
+  </table>
+
+
+<h3>Release 1.1 r1</h3>
+ <p><em>February 2009 - <a href="RELEASENOTES.html#1.1_r1">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.1_r1.zip">android-sdk-
+windows-1
+.1_r1.zip</a>
+    </td>
+    <td>86038515 bytes</td>
+    <td>8c4b9080b430025370689e03d20842f3</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.1_r1.zip">android-sdk-
+mac_x86-1
+.1_r1.zip</a>
+    </td>
+    <td>79046151 bytes</td>
+    <td>becf0f1763d61eedce15d2a903d6c1dd</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.1_r1.zip">android-
+sdk-
+linux_x86-1.1_r1.zip</a>
+    </td>
+    <td>79345522 bytes</td>
+    <td>ebcb16b0cd4aef198b4dd9a1418efbf1</td>
+  </tr>
+  
+  </table>
+
+
+<h3>Release 1.0 r2</h3>
+ <p><em>November 2008 - <a href="RELEASENOTES.html#1.0_r2">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.0_r2.zip">android-sdk-
+windows-1
+.0_r2.zip</a>
+    </td>
+    <td>98360564 bytes</td>
+    <td>a5e1af8ac145946b4a9627516ad4a711</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.0_r2.zip">android-sdk-
+mac_x86-1
+.0_r2.zip</a>
+    </td>
+    <td>93771410 bytes</td>
+    <td>87b99d5e9f59b78363a63200c11498e8</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.0_r2.zip">android-
+sdk-
+linux_x86-1.0_r2.zip</a>
+    </td>
+    <td>94186463 bytes</td>
+    <td>a1f3b6d854596f850f5008856d0f380e</td>
+  </tr>
+  
+  </table>
+
+
+
+
+<h2>Obsolete SDK Releases</h2>
+
+<p>These tables provide Android SDK releases that have been superceded by
+an active release (shown above) and that are now obsolete.</p>
+
+
+<h3>Release 1.5 r2</h3>
+ <p><em>May 2009 - <a href="RELEASENOTES.html#1.5_r2">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.5_r2.zip">android-sdk-
+windows-1 .5_r2.zip</a>
+    </td>
+    <td>178346828 bytes</td>
+    <td>ba54ac6bda45921d442b74b6de6ff6a9</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.5_r2.zip">android-sdk-
+mac_x86-1 .5_r2.zip</a>
+    </td>
+    <td>169945128 bytes</td>
+    <td>f4e06a5194410243f213d0177713d6c9</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.5_r2.zip">android-
+sdk- linux_x86-1.5_r2.zip</a>
+    </td>
+    <td>165035130 bytes</td>
+    <td>1d3c3d099e95a31c43a7b3e6ae307ed3</td>
+  </tr>
+  
+  </table>
+
+
+<h3>Release 1.5 r1</h3>
+ <p><em>April 2009 - <a href="RELEASENOTES.html#1.5_r1">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.5_r1.zip">android-sdk-
+windows-1 .5_r1.zip</a>
+    </td>
+    <td>176263368 bytes</td>
+    <td>42be980eb2d3efaced01ea6c32c0045f</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.5_r1.zip">android-sdk-
+mac_x86-1 .5_r1.zip</a>
+    </td>
+    <td>167848675 bytes</td>
+    <td>5b2a8d9f096032db4a75bfa0d689a51b</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.5_r1.zip">android-
+sdk- linux_x86-1.5_r1.zip</a>
+    </td>
+    <td>162938845 bytes</td>
+    <td>2addfd315da0ad8b5bde6b09d5ff3b06</td>
+  </tr>
+  
+  </table>
+
+
+<h3>Release 1.0 r1</h3>
+ <p><em>September 23, 2008 - <a href="RELEASENOTES.html#1.0_r1">Release
+Notes</a></em></p>
+
+  <table class="download">
+    <tr>
+      <th>Platform</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>Windows</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-windows-1.0_r1.zip">android-sdk-
+windows-1 .0_r1.zip</a>
+    </td>
+    <td>89.7 MB bytes</td>
+    <td>d69f4ee93d4010f726c04302662fd999</td>
+  </tr>
+  <tr class="alt-color">
+    <td>Mac OS X (intel)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-mac_x86-1.0_r1.zip">android-sdk-
+mac_x86-1 .0_r1.zip</a>
+    </td>
+    <td>87.5 MB bytes</td>
+    <td>564876ada22872e50c2866806de9fc5c</td>
+  </tr>
+  <tr>
+    <td>Linux (i386)</td>
+    <td>
+  <a
+href="/sdk/download.html?v=archives/android-sdk-linux_x86-1.0_r1.zip">android-
+sdk- linux_x86-1.0_r1.zip</a>
+    </td>
+    <td>87.8 MB bytes</td>
+    <td>2660b4029039b7d714e59827e9a9a11d</td>
+  </tr>
+  
+  </table>
+
+
+
+
+<h2>Non-Compatible SDK Releases</h2>
 
 <!-- <div class="special"> -->
 <p>The SDKs listed below are "early-look" versions that were released in
@@ -63,7 +381,7 @@
 documentation included in each SDK package.</p>
 <!-- </div> -->
 
-<h4>Android SDK m5-rc15</h4>
+<h4>Version 0.9 Beta</h4>
 <p><em>August 18, 2008 - <a href="OLD_RELEASENOTES.html#0.9_beta">Release Notes</a></em></p>
  <table>
    <tr>
@@ -74,21 +392,27 @@
    <tr>
      <td>Windows</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk-windows-0.9_beta.zip">android-sdk-windows-0.9_beta.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk-windows-0.9_beta.zip">
+android-sdk-windows-0.9_beta.zip</a></td>
      <td>93,126,573 bytes</td>
      <td>305031ad8335d1b6040bdd5a65349d6d</td>
    </tr>
    <tr class="alt">
      <td>Mac OS X (intel)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk-mac_x86-0.9_beta.zip">android-sdk-mac_x86-0.9_beta.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk-mac_x86-0.9_beta.zip">
+android-sdk-mac_x86-0.9_beta.zip</a></td>
      <td>91,374,464 bytes</td>
      <td>9a6969159091cede46302e11049fe3ca</td>
    </tr>
    <tr>
      <td>Linux (i386)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk-linux_x86-0.9_beta.zip">android-sdk-linux_x86-0.9_beta.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk-linux_x86-0.9_beta.zip"
+>android-sdk-linux_x86-0.9_beta.zip</a></td>
      <td>91,821,068 bytes</td>
      <td>077e5ef549dd9c5be54bd88e6a8e196c</td>
    </tr>
@@ -105,21 +429,27 @@
    <tr>
      <td>Windows</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk_m5-rc15_windows.zip">android-sdk_m5-rc15_windows.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk_m5-rc15_windows.zip">
+android-sdk_m5-rc15_windows.zip</a></td>
      <td>79 MB</td>
      <td>ecce40bc50201886d95ba2690cdbc5ce</td>
    </tr>
    <tr class="alt">
      <td>Mac OS X (intel)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk_m5-rc15_mac-x86.zip">android-sdk_m5-rc15_mac-x86.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk_m5-rc15_mac-x86.zip">
+android-sdk_m5-rc15_mac-x86.zip</a></td>
      <td>76 MB</td>
      <td>45a6385bbc1b2cb295409cfc81fb04b4</td>
    </tr>
    <tr>
      <td>Linux (i386)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk_m5-rc15_linux-x86.zip">android-sdk_m5-rc15_linux-x86.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk_m5-rc15_linux-x86.zip">
+android-sdk_m5-rc15_linux-x86.zip</a></td>
      <td>76 MB</td>
      <td>e913f785afecdeed34c30639fd8c5862</td>
    </tr>
@@ -136,21 +466,27 @@
    <tr>
      <td>Windows</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk_m5-rc14_windows.zip">android-sdk_m5-rc14_windows.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk_m5-rc14_windows.zip">
+android-sdk_m5-rc14_windows.zip</a></td>
      <td>79 MB</td>
      <td>ecc75c1e69588350634ca25867ce05a0</td>
    </tr>
    <tr class="alt">
      <td>Mac OS X (intel)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk_m5-rc14_mac-x86.zip">android-sdk_m5-rc14_mac-x86.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk_m5-rc14_mac-x86.zip">
+android-sdk_m5-rc14_mac-x86.zip</a></td>
      <td>76 MB</td>
      <td>844c80d0adb1a326f5a9fff262c61efc</td>
    </tr>
    <tr>
      <td>Linux (i386)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android-sdk_m5-rc14_linux-x86.zip">android-sdk_m5-rc14_linux-x86.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android-sdk_m5-rc14_linux-x86.zip">
+android-sdk_m5-rc14_linux-x86.zip</a></td>
      <td>76 MB</td>
      <td>f8b863c8a880afe9bb84124f5976aab1</td>
    </tr>
@@ -170,21 +506,27 @@
    <tr>
      <td>Windows</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_windows_m3-rc37a.zip">android_sdk_windows_m3-rc37a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_windows_m3-rc37a.zip">
+android_sdk_windows_m3-rc37a.zip</a></td>
      <td>58 MB</td>
      <td>5db5aea20a2c2f010baefc4b1091a575</td>
    </tr>
    <tr class="alt">
      <td>Mac OS X (intel)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_darwin_m3-rc37a.zip">android_sdk_darwin_m3-rc37a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_darwin_m3-rc37a.zip">
+android_sdk_darwin_m3-rc37a.zip</a></td>
      <td>54 MB</td>
      <td>0b22e73fbd07b4af4009387afce3a37f</td>
    </tr>
    <tr>
      <td>Linux (i386)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_linux_m3-rc37a.zip">android_sdk_linux_m3-rc37a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_linux_m3-rc37a.zip">
+android_sdk_linux_m3-rc37a.zip</a></td>
      <td>54 MB</td>
      <td>41285beecc4f9926e6ecf5f12610b356</td>
    </tr>
@@ -204,21 +546,27 @@
    <tr>
      <td>Windows</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_windows_m3-rc22a.zip">android_sdk_windows_m3-rc22a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_windows_m3-rc22a.zip">
+android_sdk_windows_m3-rc22a.zip</a></td>
      <td>59 MB</td>
      <td>aa3dee05a9872752a3bc4efd0f93e98b</td>
    </tr>
    <tr class="alt">
      <td>Mac OS X (intel)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_darwin_m3-rc22a.zip">android_sdk_darwin_m3-rc22a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_darwin_m3-rc22a.zip">
+android_sdk_darwin_m3-rc22a.zip</a></td>
      <td>55 MB</td>
      <td>0547f45614ad94c3af22c3c0aa6f709f</td>
    </tr>
    <tr>
      <td>Linux (i386)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_linux_m3-rc22a.zip">android_sdk_linux_m3-rc22a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_linux_m3-rc22a.zip">
+android_sdk_linux_m3-rc22a.zip</a></td>
      <td>55 MB</td>
      <td>84b3455de5cdfd841a172c13d24c382e</td>
    </tr>
@@ -238,21 +586,27 @@
    <tr>
      <td>Windows</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_windows_m3-rc20a.zip">android_sdk_windows_m3-rc20a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_windows_m3-rc20a.zip">
+android_sdk_windows_m3-rc20a.zip</a></td>
      <td>59 MB</td>
      <td>a404b875708df7339ba77bdf2e08dc06</td>
    </tr>
    <tr class="alt">
      <td>Mac OS X (intel)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_darwin_m3-rc20a.zip">android_sdk_darwin_m3-rc20a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_darwin_m3-rc20a.zip">
+android_sdk_darwin_m3-rc20a.zip</a></td>
      <td>55 MB</td>
      <td>8fc29aeaa45eda84bfac854ebd02a6da</td>
    </tr>
    <tr>
      <td>Linux (i386)</td>
      <td>
-<a href="{@docRoot}sdk/download.html?v=android_sdk_linux_m3-rc20a.zip">android_sdk_linux_m3-rc20a.zip</a></td>
+<a
+href="{@docRoot}sdk/download.html?v=archives/android_sdk_linux_m3-rc20a.zip">
+android_sdk_linux_m3-rc20a.zip</a></td>
      <td>55 MB</td>
      <td>9196759df9b69cd89a220b156f133364</td>
    </tr>
diff --git a/docs/html/sdk/requirements.jd b/docs/html/sdk/requirements.jd
index 97db36d..c1f74ad 100644
--- a/docs/html/sdk/requirements.jd
+++ b/docs/html/sdk/requirements.jd
@@ -12,7 +12,8 @@
     <ul>
       <li>64-bit distributions must be capable of running 32-bit applications. 
       For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
+      the <a href="installing.html#troublehooting">Ubuntu Linux
+installation notes</a>.</li>
     </ul>
   </li>
 </ul>
@@ -23,15 +24,19 @@
     <ul>
       <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.4 (Ganymede) or 3.5 (Galileo)
         <ul>
-        <li>Note: Eclipse 3.3 has not been fully tested with ADT 0.9.3 and support can no longer be guaranteed. We suggest you upgrade to 
-          Eclipse 3.4 or 3.5.</li>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li>Eclipse Classic IDE package is not supported.</li>
+        <li>Note: Eclipse 3.3 has not been tested with the latest version of 
+ADT and support can no longer be guaranteed. We suggest you upgrade to Eclipse
+3.4 or 3.5.</li>
+        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE
+Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in
+Developers, or Eclipse Classic (3.5.1+)</li>
+        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin
+(included in most Eclipse IDE packages) </li>
         </ul>
       </li>     
       <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
+      <li><a href="eclipse-adt.html">Android Development Tools
+plugin</a> (optional)</li>
       <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
     </ul>
   </li>
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index 4aed0ca..8c6e2c9 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -140,7 +140,11 @@
     <ul>
       <li><a href="<?cs var:toroot ?>sdk/requirements.html">SDK System Requirements</a></li>
       <li><a href="<?cs var:toroot ?>sdk/terms.html">SDK Terms and Conditions</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/RELEASENOTES.html">SDK Release Notes</a></li>
+      <li><a href="<?cs var:toroot ?>sdk/RELEASENOTES.html">SDK Release
+            Notes</a></li>
+      <li><a href="<?cs var:toroot ?>sdk/older_releases.html">SDK
+            Archives</a></li>
+
     </ul>
   </li>
 
