diff --git a/core/apicheck_msg_current.txt b/core/apicheck_msg_current.txt
index d723a19..5d3a913 100644
--- a/core/apicheck_msg_current.txt
+++ b/core/apicheck_msg_current.txt
@@ -7,10 +7,10 @@
       errors above.
 
    2) You can update current.xml by executing the following command:
-
          make update-api
 
-      To check in the revised current.xml, you will need approval from the android API council.
+      To submit the revised current.xml to the main Android repository,
+      you will need approval.
 ******************************
 
 
diff --git a/core/build-system.html b/core/build-system.html
new file mode 100644
index 0000000..43bae03
--- /dev/null
+++ b/core/build-system.html
@@ -0,0 +1,947 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<!--
+  A lot of people read this document template.  Please keep it clean:
+
+   - keep the document xhtml-compliant, as many people use validating editors
+   - check your edits for typos, spelling errors, and questionable grammar
+   - prefer css styles to formatting tags like <font>, <tt>, etc.
+   - keep it human-readable and human-editable in a plain text editor:
+     - strive to keep lines wrapped at 80 columns, unless a link prevents it
+     - use plenty of whitespace
+     - try to pretty-format (wrt nesting and indenting) any hairy html
+   - check your inline javascript for errors using the javascript console
+   
+  Your readers will be very appreciative.
+-->
+
+<head>
+  <title>Android Build System</title>
+
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+  <link href="../android.css" type="text/css" rel="stylesheet" />
+
+<!-- commenting out so the xhtml validator doesn't whine about < and &&;
+     the browser should still find the script tag. -->
+<script language="JavaScript1.2" type="text/javascript">
+<!--
+function highlight(name) {
+  if (document.getElementsByTagName) {
+    tags              = [ 'span', 'div', 'tr', 'td' ];
+    for (i in tags) {
+      elements        = document.getElementsByTagName(tags[i]);
+      if (elements) {
+        for (j = 0; j < elements.length; j++) {
+          elementName = elements[j].getAttribute("class");
+          if (elementName == name) {
+            elements[j].style.backgroundColor = "#C0F0C0";
+          } else if (elementName && elementName.indexOf("rev") == 0) {
+            elements[j].style.backgroundColor = "#FFFFFF";
+          }
+        }
+      }
+    }
+  }
+}
+//-->
+  </script>
+  <!-- this style sheet is for the style of the toc -->
+  <link href="toc.css" type="text/css" rel="stylesheet" />
+
+  <style type="text/css">
+    .warning {
+        border: 1px solid red;
+        padding: 8px;
+        color: red;
+    }
+    pre.prettyprint {
+        margin-top: 0;
+    }
+    li {
+        margin-top: 8px;
+    }
+  </style>
+</head>
+
+<body onload="prettyPrint()">
+
+<h1><a name="My_Project_" />Android Build System</h1>
+
+<!-- Status is one of: Draft, Current, Needs Update, Obsolete -->
+<p style="text-align:center">
+  <strong>Status:</strong> <em>Draft </em> &nbsp;
+  <small>(as of May 18, 2006)</small>
+</p>
+
+<p><b>Contents</b></p>
+<!-- this div expands out to a list of contents based on the H2 and H3 headings.
+Believe it! -->
+ <div id="nav"  class="nav-2-levels"></div>
+
+<h2>Objective</h2>
+<p>The primary goals of reworking the build system are (1) to make dependencies
+work more reliably, so that when files need to rebuilt, they are, and (2) to
+improve performance of the build system so that unnecessary modules are not
+rebuilt, and so doing a top-level build when little or nothing needs to be done
+for a build takes as little time as possible.</p>
+
+<h2>Principles and Use Cases and Policy</h2>
+<p>Given the above objective, these are the overall principles and use cases
+that we will support.  This is not an exhaustive list.</p>
+<h3>Multiple Targets</h3>
+<p>It needs to be possible to build the Android platform for multiple targets.
+This means:</p>
+<ul>
+    <li>The build system will support building tools for the host platform,
+    both ones that are used in the build process itself, and developer tools
+    like the simulator.</li>
+    <li>The build system will need to be able to build tools on Linux
+    (definitely Goobuntu and maybe Grhat), MacOS, and to some degree on
+    Windows.</li>
+    <li>The build system will need to be able to build the OS on Linux, and in
+    the short-term, MacOS.  Note that this is a conscious decision to stop
+    building the OS on Windows.  We are going to rely on the emulator there
+    and not attempt to use the simulator.  This is a requirement change now
+    that the emulator story is looking brighter.</li>
+</ul>
+<h3>Non-Recursive Make</h3>
+<p>To achieve the objectives, the build system will be rewritten to use make
+non-recursively.  For more background on this, read <a href="http://aegis.sourceforge.net/auug97.pdf">Recursive Make Considered Harmful</a>.  For those that don't
+want PDF, here is the
+<a href="http://72.14.203.104/search?q=cache:HwuX7YF2uBIJ:aegis.sourceforge.net/auug97.pdf&hl=en&gl=us&ct=clnk&cd=2&client=firefox">Google translated version</a>.
+<h3>Rapid Compile-Test Cycles</h3>
+<p>When developing a component, for example a C++ shared library, it must be
+possible to easily rebuild just that component, and not have to wait more than a
+couple seconds for dependency checks, and not have to wait for unneeded
+components to be built.</p>
+<h3>Both Environment and Config File Based Settings</h3>
+<p>To set the target, and other options, some people on the team like to have a
+configuration file in a directory so they do not have an environment setup
+script to run, and others want an environment setup script to run so they can
+run builds in different terminals on the same tree, or switch back and forth
+in one terminal.  We will support both.</p>
+<h3>Object File Directory / make clean</h3>
+<p>Object files and other intermediate files will be generated into a directory
+that is separate from the source tree.  The goal is to have make clean be
+"rm -rf <obj>" in the tree root directory.  The primary goals of
+this are to simplify searching the source tree, and to make "make clean" more
+reliable.</p>
+
+<h3>SDK</h3>
+<p>The SDK will be a tarball that will allow non-OS-developers to write apps.
+The apps will actually be built by first building the SDK, and then building
+the apps against that SDK.  This will hopefully (1) make writing apps easier
+for us, because we won't have to rebuild the OS as much, and we can use the
+standard java-app development tools, and (2) allow us to dog-food the SDK, to
+help ensure its quality.  Cedric has suggested (and I agree) that apps built
+from the SDK should be built with ant.  Stay tuned for more details as we
+figure out exactly how this will work.</p>
+
+<h3>Dependecies</h3>
+<p>Dependencies should all be automatic.  Unless there is a custom tool involved
+(e.g. the webkit has several), the dependencies for shared and static libraries,
+.c, .cpp, .h, .java, java libraries, etc., should all work without intervention
+in the Android.mk file.</p>
+
+<h3>Hiding command lines</h3>
+<p>The default of the build system will be to hide the command lines being
+executed for make steps.  It will be possible to override this by specifying
+the showcommands pseudo-target, and possibly by setting an environment
+variable.</p>
+
+<h3>Wildcard source files</h3>
+<p>Wildcarding source file will be discouraged.  It may be useful in some
+scenarios.  The default <code>$(wildcard *)</code> will not work due to the
+current directory being set to the root of the build tree.<p>
+
+<h3>Multiple targets in one directory</h3>
+<p>It will be possible to generate more than one target from a given
+subdirectory.  For example, libutils generates a shared library for the target
+and a static library for the host.</p>
+
+<h3>Makefile fragments for modules</h3>
+<p><b>Android.mk</b> is the standard name for the makefile fragments that
+control the building of a given module.  Only the top directory should
+have a file named "Makefile".</p>
+
+<h3>Use shared libraries</h3>
+<p>Currently, the simulator is not built to use shared libraries.  This should
+be fixed, and now is a good time to do it.  This implies getting shared
+libraries to work on Mac OS.</p>
+
+
+<h2>Nice to Have</h2>
+
+<p>These things would be nice to have, and this is a good place to record them,
+however these are not promises.</p>
+
+<h3>Simultaneous Builds</h3>
+<p>The hope is to be able to do two builds for different combos in the same
+tree at the same time, but this is a stretch goal, not a requirement.
+Doing two builds in the same tree, not at the same time must work.  (update:
+it's looking like we'll get the two builds at the same time working)</p>
+
+<h3>Deleting headers (or other dependecies)</h3>
+<p>Problems can arise if you delete a header file that is referenced in
+".d" files.  The easy way to deal with this is "make clean".  There
+should be a better way to handle it. (from fadden)</p>
+<p>One way of solving this is introducing a dependency on the directory.  The
+problem is that this can create extra dependecies and slow down the build.
+It's a tradeoff.</p>
+
+<h3>Multiple builds</h3>
+<p>General way to perform builds across the set of known platforms.  This
+would make it easy to perform multiple platform builds when testing a
+change, and allow a wide-scale "make clean".  Right now the buildspec.mk
+or environment variables need to be updated before each build. (from fadden)</p>
+
+<h3>Aftermarket Locales and Carrier</h3>
+<p>We will eventually need to add support for creating locales and carrier
+customizations to the SDK, but that will not be addressed right now.</p>
+
+
+<h2><a id="usage"/>Usage</h2>
+<p>You've read (or scrolled past) all of the motivations for this build system,
+and you want to know how to use it.  This is the place.</p>
+
+<h3>Your first build</h3>
+<p>The <a href="../building.html">Building</a> document describes how do do
+builds.</p>
+
+<h3>build/envsetup.sh functions</h3>
+If you source the file build/envsetup.sh into your bash environment,
+<code>. build/envsetup.sh</code>you'll get a few helpful shell functions:
+
+<ul>
+<li><b>printconfig</b> - Prints the current configuration as set by the
+lunch and choosecombo commands.</li>
+<li><b>m</b> - Runs <code>make</code> from the top of the tree.  This is
+useful because you can run make from within subdirectories.  If you have the
+<code>TOP</code> environment variable set, it uses that.  If you don't, it looks
+up the tree from the current directory, trying to find the top of the tree.</li>
+<li><b>croot</b> - <code>cd</code> to the top of the tree.</li>
+<li><b>sgrep</b> - grep for the regex you provide in all .c, .cpp, .h, .java,
+and .xml files below the current directory.</li>
+</ul>
+
+<h3>Build flavors/types</h3>
+<p>
+When building for a particular product, it's often useful to have minor
+variations on what is ultimately the final release build.  These are the
+currently-defined "flavors" or "types" (we need to settle on a real name
+for these).
+</p>
+
+<table border=1>
+<tr>
+    <td>
+        <code>eng<code>
+    </td>
+    <td>
+        This is the default flavor. A plain "<code>make</code>" is the
+        same as "<code>make eng</code>".  <code>droid</code> is an alias
+        for <code>eng</code>.
+        <ul>
+        <li>Installs modules tagged with: <code>eng</code>, <code>debug</code>,
+            <code>user</code>, and/or <code>development</code>.
+        <li>Installs non-APK modules that have no tags specified.
+        <li>Installs APKs according to the product definition files, in
+            addition to tagged APKs.
+        <li><code>ro.secure=0</code>
+        <li><code>ro.debuggable=1</code>
+        <li><code>ro.kernel.android.checkjni=1</code>
+        <li><code>adb</code> is enabled by default.
+    </td>
+</tr>
+<tr>
+    <td>
+        <code>user<code>
+    </td>
+    <td>
+        "<code>make user</code>"
+        <p>
+        This is the flavor intended to be the final release bits.
+        <ul>
+        <li>Installs modules tagged with <code>user</code>.
+        <li>Installs non-APK modules that have no tags specified.
+        <li>Installs APKs according to the product definition files; tags
+            are ignored for APK modules.
+        <li><code>ro.secure=1</code>
+        <li><code>ro.debuggable=0</code>
+        <li><code>adb</code> is disabled by default.
+    </td>
+</tr>
+<tr>
+    <td>
+        <code>userdebug<code>
+    </td>
+    <td>
+        "<code>make userdebug</code>"
+        <p>
+        The same as <code>user</code>, except:
+        <ul>
+        <li>Also installs modules tagged with <code>debug</code>.
+        <li><code>ro.debuggable=1</code>
+        <li><code>adb</code> is enabled by default.
+    </td>
+</tr>
+</table>
+
+<p>
+If you build one flavor and then want to build another, you should run
+"<code>make installclean</code>" between the two makes to guarantee that
+you don't pick up files installed by the previous flavor.  "<code>make
+clean</code>" will also suffice, but it takes a lot longer.
+</p>
+
+
+<h3>More pseudotargets</h3>
+<p>Sometimes you want to just build one thing.  The following pseudotargets are
+there for your convenience:</p>
+
+<ul>
+<li><b>droid</b> - <code>make droid</code> is the normal build.  This target
+is here because the default target has to have a name.</li>
+<li><b>all</b> - <code>make all</code> builds everything <code>make
+droid</code> does, plus everything whose <code>LOCAL_MODULE_TAGS</code> do not
+include the "droid" tag.  The build server runs this to make sure
+that everything that is in the tree and has an Android.mk builds.</li>
+<li><b>clean-$(LOCAL_MODULE)</b> and <b>clean-$(LOCAL_PACKAGE_NAME)</b> - 
+Let you selectively clean one target.  For example, you can type
+<code>make clean-libutils</code> and it will delete libutils.so and all of the
+intermediate files, or you can type <code>make clean-Home</code> and it will
+clean just the Home app.</li>
+<li><b>clean</b> - <code>make clean</code> deletes all of the output and
+intermediate files for this configuration.  This is the same as <code>rm -rf
+out/&lt;configuration&gt;/</code></li>
+<li><b>clobber</b> - <code>make clobber</code> deletes all of the output
+and intermediate files for all configurations.  This is the same as
+<code>rm -rf out/</code>.</li>
+<li><b>dataclean</b> - <code>make dataclean</code> deletes contents of the data 
+directory inside the current combo directory.  This is especially useful on the
+simulator and emulator, where the persistent data remains present between 
+builds.</li>
+<li><b>showcommands</b> - <code>showcommands</code> is a modifier target
+which causes the build system to show the actual command lines for the build
+steps, instead of the brief descriptions.  Most people don't like seeing the
+actual commands, because they're quite long and hard to read, but if you need
+to for debugging purposes, you can add <code>showcommands</code> to the list
+of targets you build.  For example <code>make showcommands</code> will build
+the default android configuration, and <code>make runtime showcommands</code>
+will build just the runtime, and targets that it depends on, while displaying
+the full command lines.  Please note that there are a couple places where the
+commands aren't shown here.  These are considered bugs, and should be fixed,
+but they're often hard to track down.  Please let
+<a href="mailto:android-build-team">android-build-team</a> know if you find
+any.</li>
+<li><b>LOCAL_MODULE</b> - Anything you specify as a <code>LOCAL_MODULE</code>
+in an Android.mk is made into a pseudotarget.  For example, <code>make
+runtime</code> might be shorthand for <code>make
+out/linux-x86-debug/system/bin/runtime</code> (which would work), and
+<code>make libkjs</code> might be shorthand for <code>make
+out/linux-x86-debug/system/lib/libkjs.so</code> (which would also work).</li>
+<li><b>targets</b> - <code>make targets</code> will print a list of all of
+the LOCAL_MODULE names you can make.</li>
+</ul>
+
+<h3><a name="templates"/>How to add another component to the build - Android.mk templates</h3>
+<p>You have a new library, a new app, or a new executable.  For each of the
+common types of modules, there is a corresponding file in the templates
+directory.  It will usually be enough to copy one of these, and fill in your
+own values.  Some of the more esoteric values are not included in the
+templates, but are instead just documented here, as is the documentation
+on using custom tools to generate files.</p>
+<p>Mostly, you can just look for the TODO comments in the templates and do
+what it says.  Please remember to delete the TODO comments when you're done
+to keep the files clean.  The templates have minimal documentation in them,
+because they're going to be copied, and when that gets stale, the copies just
+won't get updated.  So read on...</p>
+
+<h4>Apps</h4>
+<p>Use the <code>templates/apps</code> file.</p>
+<p>This template is pretty self-explanitory.  See the variables below for more
+details.</p>
+
+<h4>Java Libraries</h4>
+<p>Use the <code>templates/java_library</code> file.</p>
+<p>The interesting thing here is the value of LOCAL_MODULE, which becomes
+the name of the jar file.  (Actually right now, we're not making jar files yet,
+just directories of .class files,  but the directory is named according to
+what you put in LOCAL_MODULE).  This name will be what goes in the 
+LOCAL_JAVA_LIBRARIES variable in modules that depend on your java library.</p>
+
+<h4>C/C++ Executables</h4>
+<p>Use the <code>templates/executable</code> file, or the
+<code>templates/executable_host</code> file.</p>
+<p>This template has a couple extra options that you usually don't need.
+Please delete the ones you don't need, and remove the TODO comments.  It makes
+the rest of them easier to read, and you can always refer back to the templates
+if you need them again later.</p>
+<p>By default, on the target these are built into /system/bin, and on the
+host, they're built into <combo>/host/bin.  These can be overridden by setting
+<code>LOCAL_MODULE_PATH</code>.  See
+<a href="#moving-targets">Putting targets elsewhere</a>
+for more.</p>
+
+<h4>Shared Libraries</h4>
+<p>Use the <code>templates/shared_library</code> file, or the
+<code>templates/shared_library_host</code> file.</p>
+<p>Remember that on the target, we use shared libraries, and on the host,
+we use static libraries, since executable size isn't as big an issue, and it
+simplifies distribution in the SDK.</p>
+
+<h4>Static Libraries</h4>
+<p>Use the <code>templates/static_library</code> file, or the
+<code>templates/static_library_host</code> file.</p>
+<p>Remember that on the target, we use shared libraries, and on the host,
+we use static libraries, since executable size isn't as big an issue, and it
+simplifies distribution in the SDK.</p>
+
+<h4><a name="custom-tools"/>Using Custom Tools</h4>
+<p>If you have a tool that generates source files for you, it's possible
+to have the build system get the dependencies correct for it.  Here are
+a couple of examples.  <code>$@</code> is the make built-in variable for
+"the current target." The <font color=red>red</font> parts are the parts you'll
+need to change.</p>
+
+<p>You need to put this after you have declared <code>LOCAL_PATH</code> and
+<code>LOCAL_MODULE</code>, because the <code>$(local-intermediates-dir)</code>
+and <code>$(local-host-intermediates-dir)</code> macros use these variables
+to determine where to put the files.
+
+<h5>Example 1</h5>
+<p>Here, there is one generated file, called
+chartables.c, which doesn't depend on anything.  And is built by the tool
+built to $(HOST_OUT_EXECUTABLES)/dftables.  Note on the second to last line
+that a dependency is created on the tool.</p>
+<pre>
+intermediates:= $(local-intermediates-dir)
+GEN := $(intermediates)/<font color=red>chartables.c</font>
+$(GEN): PRIVATE_CUSTOM_TOOL = <font color=red>$(HOST_OUT_EXECUTABLES)/dftables $@</font>
+$(GEN): <font color=red>$(HOST_OUT_EXECUTABLES)/dftables</font>
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+</pre>
+
+<h5>Example 2</h5>
+<p>Here as a hypothetical example, we use use cat as if it were to transform
+a file.  Pretend that it does something useful.  Note how we use a
+target-specific variable called PRIVATE_INPUT_FILE to store the name of the
+input file.</p>
+<pre>
+intermediates:= $(local-intermediates-dir)
+GEN := $(intermediates)/<font color=red>file.c</font>
+$(GEN): PRIVATE_INPUT_FILE := $(LOCAL_PATH)/<font color=red>input.file</font>
+$(GEN): PRIVATE_CUSTOM_TOOL = <font color=red>cat $(PRIVATE_INPUT_FILE) &gt; $@</font>
+$(GEN): <font color=red>$(LOCAL_PATH)/file.c</font>
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+</pre>
+
+<h5>Example 3</h5>
+<p>If you have several files that are all similar in
+name, and use the same tool, you can combine them.  (here the *.lut.h files are
+the generated ones, and the *.cpp files are the input files)</p>
+<pre>
+intermediates:= $(local-intermediates-dir)
+GEN := $(addprefix $(intermediates)<font color=red>/kjs/, \
+            array_object.lut.h \
+            bool_object.lut.h \</font>
+        )
+$(GEN): PRIVATE_CUSTOM_TOOL = <font color=red>perl libs/WebKitLib/WebKit/JavaScriptCore/kjs/create_hash_table $< -i > $@</font>
+$(GEN): $(intermediates)/<font color=red>%.lut.h</font> : $(LOCAL_PATH)/<font color=red>%.cpp</font>
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+</pre>
+
+<h3><a name="platform-specific"/>Platform specific conditionals</h3>
+<p>Sometimes you need to set flags specifically for different platforms.  Here
+is a list of which values the different build-system defined variables will be
+set to and some examples.</p>
+<p>For a device build, <code>TARGET_OS</code> is <code>linux</code> (we're using
+linux!), and <code>TARGET_ARCH</code> is <code>arm</code>.</p>
+<p>For a simulator build, <code>TARGET_OS</code> and <code>TARGET_ARCH</code>
+are set to the same as <code>HOST_OS</code> and <code>HOST_ARCH</code> are
+on your platform.  <code>TARGET_PRODUCT</code> is the name of the target
+hardware/product you are building for.  The value <code>sim</code> is used
+for the simulator.  We haven't thought through the full extent of customization
+that will happen here, but likely there will be additional UI configurations
+specified here as well.</p>
+<table cellspacing=25>
+<tr>
+    <td valign=top align=center>
+        <b>HOST_OS</b><br/>
+        linux<br/>
+        darwin<br/>
+        (cygwin)
+    </td>
+    <td valign=top align=center>
+        <b>HOST_ARCH</b><br/>
+        x86
+    </td>
+    <td valign=top align=center>
+        <b>HOST_BUILD_TYPE</b><br/>
+        release<br/>
+        debug
+    </td>
+</tr>
+<tr>
+    <td valign=top align=center>
+        <b>TARGET_OS</b><br/>
+        linux<br/>
+        darwin<br/>
+        (cygwin)
+    </td>
+    <td valign=top align=center>
+        <b>TARGET_ARCH</b><br/>
+        arm<br/>
+        x86
+    </td>
+    <td valign=top align=center>
+        <b>TARGET_BUILD_TYPE</b><br/>
+        release<br/>
+        debug
+    </td>
+    <td valign=top align=center>
+        <b>TARGET_PRODUCT</b><br/>
+        sim<br/>
+        dream<br/>
+        sooner
+    </td>
+</tr>
+</table>
+
+<h4>TARGET_SIMULATOR</h4>
+<p>If we're building the simulator, as opposed to the arm or emulator builds,
+<code>TARGET_SIMULATOR</code> will be set to <code>true</code>.
+
+<h4>Some Examples</h4>
+<pre>ifeq ($(TARGET_SIMULATOR),true)
+LOCAL_CFLAGS += -DSIMULATOR
+endif
+
+ifeq ($(TARGET_BUILD_TYPE),release)
+LOCAL_CFLAGS += -DNDEBUG=1
+endif
+
+# from libutils
+ifeq ($(TARGET_OS),linux)
+# Use the futex based mutex and condition variable
+# implementation from android-arm because it's shared mem safe
+LOCAL_SRC_FILES += futex_synchro.c
+LOCAL_LDLIBS += -lrt -ldl
+endif
+
+</pre>
+
+
+<h3><a name="moving-modules"/>Putting modules elsewhere</h3>
+<p>If you have modules that normally go somewhere, and you need to have them
+build somewhere else, read this.  One use of this is putting files on
+the root filesystem instead of where they normally go in /system. Add these
+lines to your Android.mk:</p>
+<pre>
+LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT_SBIN)
+LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_SBIN_UNSTRIPPED)
+</pre>
+<p>For executables and libraries, you need to also specify a
+<code>LOCAL_UNSTRIPPED_PATH</code> location, because on target builds, we keep
+the unstripped executables so GDB can find the symbols.</code>
+<p>Look in <code>config/envsetup.make</code> for all of the variables defining
+places to build things.</p>
+<p>FYI: If you're installing an executable to /sbin, you probably also want to
+set <code>LOCAL_FORCE_STATIC_EXCUTABLE := true</code> in your Android.mk, which
+will force the linker to only accept static libraries.</p>
+
+
+<h3>Android.mk variables</h3>
+<p>These are the variables that you'll commonly see in Android.mk files, listed
+alphabetically.</p>
+<p>But first, a note on variable naming:
+<ul>
+    <li><b>LOCAL_</b> - These variables are set per-module.  They are cleared
+    by the <code>include $(CLEAR_VARS)</code> line, so you can rely on them
+    being empty after including that file.  Most of the variables you'll use
+    in most modules are LOCAL_ variables.</li>
+    <li><b>PRIVATE_</b> - These variables are make-target-specific variables.  That
+    means they're only usable within the commands for that module.  It also
+    means that they're unlikely to change behind your back from modules that
+    are included after yours.  This 
+    <a href="http://www.gnu.org/software/make/manual/make.html#Target_002dspecific">link to the make documentation</a>
+    describes more about target-specific variables.  Please note that there
+    are a couple of these laying around the tree that aren't prefixed with
+    PRIVATE_.  It is safe, and they will be fixed as they are discovered.
+    Sorry for the confusion.</li>
+    <li><b>INTERNAL_</b> - These variables are critical to functioning of
+    the build system, so you shouldn't create variables named like this, and
+    you probably shouldn't be messing with these variables in your makefiles.
+    </li>
+    <li><b>HOST_</b> and <b>TARGET_</b> - These contain the directories
+    and definitions that are specific to either the host or the target builds.
+    Do not set variables that start with HOST_ or TARGET_ in your makefiles.
+    </li>
+    <li><b>BUILD_</b> and <b>CLEAR_VARS</b> - These contain the names of
+    well-defined template makefiles to include.  Some examples are CLEAR_VARS
+    and BUILD_HOST_PACKAGE.</li>
+    <li>Any other name is fair-game for you to use in your Android.mk.  However,
+    remember that this is a non-recursive build system, so it is possible that
+    your variable will be changed by another Android.mk included later, and be
+    different when the commands for your rule / module are executed.</li>
+</ul>
+</p>
+
+<h4>LOCAL_ASSET_FILES</h4>
+<p>In Android.mk files that <code>include $(BUILD_PACKAGE)</code> set this
+to the set of files you want built into your app.  Usually:</p>
+<p><code>LOCAL_ASSET_FILES += $(call find-subdir-assets)</code></p>
+<p>This will probably change when we switch to ant for the apps' build
+system.</p>
+
+<h4>LOCAL_CC</h4>
+<p>If you want to use a different C compiler for this module, set LOCAL_CC
+to the path to the compiler.  If LOCAL_CC is blank, the appropriate default
+compiler is used.</p>
+
+<h4>LOCAL_CXX</h4>
+<p>If you want to use a different C++ compiler for this module, set LOCAL_CXX
+to the path to the compiler.  If LOCAL_CXX is blank, the appropriate default
+compiler is used.</p>
+
+<h4>LOCAL_CFLAGS</h4>
+<p>If you have additional flags to pass into the C or C++ compiler, add
+them here.  For example:</p>
+<p><code>LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1</code></p>
+
+<h4>LOCAL_CPPFLAGS</h4>
+<p>If you have additional flags to pass into <i>only</i> the C++ compiler, add
+them here.  For example:</p>
+<p><code>LOCAL_CPPFLAGS += -ffriend-injection</code></p>
+<code>LOCAL_CPPFLAGS</code> is guaranteed to be after <code>LOCAL_CFLAGS</code>
+on the compile line, so you can use it to override flags listed in
+<code>LOCAL_CFLAGS</code>.
+
+<h4>LOCAL_CPP_EXTENSION</h4>
+<p>If your C++ files end in something other than "<code>.cpp</code>",
+you can specify the custom extension here.  For example:</p>
+<p><code>LOCAL_CPP_EXTENSION := .cc</code></p>
+Note that all C++ files for a given module must have the same
+extension; it is not currently possible to mix different extensions.
+
+<h4>LOCAL_NO_DEFAULT_COMPILER_FLAGS</h4>
+<p>Normally, the compile line for C and C++ files includes global include
+paths and global cflags.  If <code>LOCAL_NO_DEFAULT_COMPILER_FLAGS</code>
+is non-empty, none of the default includes or flags will be used when compiling
+C and C++ files in this module.
+<code>LOCAL_C_INCLUDES</code>, <code>LOCAL_CFLAGS</code>, and
+<code>LOCAL_CPPFLAGS</code> will still be used in this case, as will
+any <code>DEBUG_CFLAGS</code> that are defined for the module.
+
+<h4>LOCAL_COPY_HEADERS</h4>
+<p class=warning>This will be going away.</p>
+<p>The set of files to copy to the install include tree.  You must also
+supply <code>LOCAL_COPY_HEADERS_TO</code>.</p>
+<p>This is going away because copying headers messes up the error messages, and
+may lead to people editing those headers instead of the correct ones.  It also
+makes it easier to do bad layering in the system, which we want to avoid.  We
+also aren't doing a C/C++ SDK, so there is no ultimate requirement to copy any
+headers.</p>
+
+<h4>LOCAL_COPY_HEADERS_TO</h4>
+<p class=warning>This will be going away.</p>
+<p>The directory within "include" to copy the headers listed in
+<code>LOCAL_COPY_HEADERS</code> to.</p>
+<p>This is going away because copying headers messes up the error messages, and
+may lead to people editing those headers instead of the correct ones.  It also
+makes it easier to do bad layering in the system, which we want to avoid.  We
+also aren't doing a C/C++ SDK, so there is no ultimate requirement to copy any
+headers.</p>
+
+<h4>LOCAL_C_INCLUDES</h4>
+<p>Additional directories to instruct the C/C++ compilers to look for header
+files in.  These paths are rooted at the top of the tree.  Use
+<code>LOCAL_PATH</code> if you have subdirectories of your own that you
+want in the include paths.  For example:</p>
+<p><code>
+LOCAL_C_INCLUDES += extlibs/zlib-1.2.3<br/>
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/src
+</code></p>
+<p>You should not add subdirectories of include to
+<code>LOCAL_C_INCLUDES</code>, instead you should reference those files
+in the <code>#include</code> statement with their subdirectories.  For
+example:</p>
+<p><code>#include &lt;utils/KeyedVector.h&gt;</code><br/>
+not <code><s>#include &lt;KeyedVector.h&gt;</s></code></p>
+<p>There are some components that are doing this wrong, and should be cleaned
+up.</p>
+
+<h4>LOCAL_MODULE_TAGS</h4>
+<p>Set <code>LOCAL_MODULE_TAGS</code> to any number of whitespace-separated
+tags.  If the tag list is empty or contains <code>droid</code>, the module
+will get installed as part of a <code>make droid</code>.  Otherwise, it will
+only get installed by running <code>make &lt;your-module&gt;</code>
+or with the <code>make all</code> pseudotarget.</p>
+
+<h4>LOCAL_REQUIRED_MODULES</h4>
+<p>Set <code>LOCAL_REQUIRED_MODULES</code> to any number of whitespace-separated
+module names, like "libblah" or "Email".  If this module is installed, all
+of the modules that it requires will be installed as well.  This can be
+used to, e.g., ensure that necessary shared libraries or providers are
+installed when a given app is installed.
+
+<h4>LOCAL_FORCE_STATIC_EXECUTABLE</h4>
+<p>If your executable should be linked statically, set 
+<code>LOCAL_FORCE_STATIC_EXECUTABLE:=true</code>.  There is a very short
+list of libraries that we have in static form (currently only libc).  This is
+really only used for executables in /sbin on the root filesystem.</p>
+
+<h4>LOCAL_GENERATED_SOURCES</h4>
+<p>Files that you add to <code>LOCAL_GENERATED_SOURCES</code> will be
+automatically generated and then linked in when your module is built.
+See the <a href="#custom-tools">Custom Tools</a> template makefile for an
+example.</p>
+
+<h4>LOCAL_JAVA_LIBRARIES</h4>
+<p>When linking Java apps and libraries, <code>LOCAL_JAVA_LIBRARIES</code>
+specifies which sets of java classes to include.  Currently there are
+two of these: <code>core</code> and <code>framework</code>.
+In most cases, it will look like this:</p>
+<p><code>LOCAL_JAVA_LIBRARIES := core framework</code></p>
+<p>Note that setting <code>LOCAL_JAVA_LIBRARIES</code> is not necessary
+(and is not allowed) when building an APK with
+"<code>include $(BUILD_PACKAGE)</code>".  The appropriate libraries
+will be included automatically.</p>
+
+<h4>LOCAL_LDFLAGS</h4>
+<p>You can pass additional flags to the linker by setting
+<code>LOCAL_LDFLAGS</code>.  Keep in mind that the order of parameters is
+very important to ld, so test whatever you do on all platforms.</p>
+
+<h4>LOCAL_LDLIBS</h4>
+<p><code>LOCAL_LDLIBS</code> allows you to specify additional libraries
+that are not part of the build for your executable or library.  Specify
+the libraries you want in -lxxx format; they're passed directly to the 
+link line.  However, keep in mind that there will be no dependency generated
+for these libraries.  It's most useful in simulator builds where you want
+to use a library preinstalled on the host.  The linker (ld) is a particularly
+fussy beast, so it's sometimes necessary to pass other flags here if you're
+doing something sneaky. Some examples:</p>
+<p><code>LOCAL_LDLIBS += -lcurses -lpthread<br/>
+LOCAL_LDLIBS += -Wl,-z,origin
+</code></p>
+
+<h4>LOCAL_NO_MANIFEST</h4>
+<p>If your package doesn't have a manifest (AndroidManifest.xml), then
+set <code>LOCAL_NO_MANIFEST:=true</code>.  The common resources package
+does this.</p>
+
+<h4>LOCAL_PACKAGE_NAME</h4>
+<p><code>LOCAL_PACKAGE_NAME</code> is the name of an app.  For example,
+Dialer, Contacts, etc.  This will probably change or go away when we switch
+to an ant-based build system for the apps.</p>
+
+<h4>LOCAL_PATH</h4>
+<p>The directory your Android.mk file is in. You can set it by putting the
+following as the first line in your Android.mk:</p>
+<p><code>LOCAL_PATH := $(my-dir)</code></p>
+<p>The <code>my-dir</code> macro uses the 
+<code><a href="http://www.gnu.org/software/make/manual/make.html#MAKEFILE_005fLIST-Variable">MAKEFILE_LIST</a></code>
+variable, so you must call it before you include any other makefiles.  Also,
+consider that any subdirectories you inlcude might reset LOCAL_PATH, so do your
+own stuff before you include them.  This also means that if you try to write
+several <code>include</code> lines that reference <code>LOCAL_PATH</code>,
+it won't work, because those included makefiles might reset LOCAL_PATH.
+
+<h4>LOCAL_POST_PROCESS_COMMAND</h4>
+<p>For host executables, you can specify a command to run on the module
+after it's been linked.  You might have to go through some contortions
+to get variables right because of early or late variable evaluation:</p>
+<p><code>module := $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)<br/>
+LOCAL_POST_PROCESS_COMMAND := /Developer/Tools/Rez -d __DARWIN__ -t APPL\<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-d __WXMAC__ -o $(module) Carbon.r
+</code></p>
+
+<h4>LOCAL_PREBUILT_EXECUTABLES</h4>
+<p>When including $(BUILD_PREBUILT) or $(BUILD_HOST_PREBUILT), set these to
+executables that you want copied.  They're located automatically into the
+right bin directory.</p>
+
+<h4>LOCAL_PREBUILT_LIBS</h4>
+<p>When including $(BUILD_PREBUILT) or $(BUILD_HOST_PREBUILT), set these to
+libraries that you want copied.  They're located automatically into the
+right lib directory.</p>
+
+<h4>LOCAL_SHARED_LIBRARIES</h4>
+<p>These are the libraries you directly link against.  You don't need to
+pass transitively included libraries.  Specify the name without the suffix:</p>
+<p><code>LOCAL_SHARED_LIBRARIES := \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libutils \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libui \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libaudio \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libexpat \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libsgl
+</code></p>
+
+<h4>LOCAL_SRC_FILES</h4>
+<p>The build system looks at <code>LOCAL_SRC_FILES</code> to know what source
+files to compile -- .cpp .c .y .l .java.  For lex and yacc files, it knows
+how to correctly do the intermediate .h and .c/.cpp files automatically.  If
+the files are in a subdirectory of the one containing the Android.mk, prefix
+them with the directory name:</p>
+<p><code>LOCAL_SRC_FILES := \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;file1.cpp \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;dir/file2.cpp
+</code></p>
+
+<h4>LOCAL_STATIC_LIBRARIES</h4>
+<p>These are the static libraries that you want to include in your module.
+Mostly, we use shared libraries, but there are a couple of places, like
+executables in sbin and host executables where we use static libraries instead.
+<p><code>LOCAL_STATIC_LIBRARIES := \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libutils \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libtinyxml
+</code></p>
+
+<h4>LOCAL_MODULE</h4>
+<p><code>LOCAL_MODULE</code> is the name of what's supposed to be generated
+from your Android.mk.  For exmample, for libkjs, the <code>LOCAL_MODULE</code>
+is "libkjs" (the build system adds the appropriate suffix -- .so .dylib .dll).
+For app modules, use <code>LOCAL_PACKAGE_NAME</code> instead of 
+<code>LOCAL_MODULE</code>.  We're planning on switching to ant for the apps,
+so this might become moot.</p>
+
+<h4>LOCAL_MODULE_PATH</h4>
+<p>Instructs the build system to put the module somewhere other than what's
+normal for its type.  If you override this, make sure you also set
+<code>LOCAL_UNSTRIPPED_PATH</code> if it's an executable or a shared library
+so the unstripped binary has somewhere to go.  An error will occur if you forget
+to.</p>
+<p>See <a href="#moving-modules">Putting modules elsewhere</a> for more.</p>
+
+<h4>LOCAL_UNSTRIPPED_PATH</h4>
+<p>Instructs the build system to put the unstripped version of the module
+somewhere other than what's normal for its type.  Usually, you override this
+because you overrode <code>LOCAL_MODULE_PATH</code> for an executable or a
+shared library.  If you overrode <code>LOCAL_MODULE_PATH</code>, but not 
+<code>LOCAL_UNSTRIPPED_PATH</code>, an error will occur.</p>
+<p>See <a href="#moving-modules">Putting modules elsewhere</a> for more.</p>
+
+<h4>LOCAL_WHOLE_STATIC_LIBRARIES</h4>
+<p>These are the static libraries that you want to include in your module without allowing
+the linker to remove dead code from them. This is mostly useful if you want to add a static library
+to a shared library and have the static library's content exposed from the shared library.
+<p><code>LOCAL_WHOLE_STATIC_LIBRARIES := \<br/>
+	&nbsp;&nbsp;&nbsp;&nbsp;libsqlite3_android<br/>
+</code></p>
+
+<h4>LOCAL_YACCFLAGS</h4>
+<p>Any flags to pass to invocations of yacc for your module.  A known limitation
+here is that the flags will be the same for all invocations of YACC for your
+module.  This can be fixed.  If you ever need it to be, just ask.</p>
+<p><code>LOCAL_YACCFLAGS := -p kjsyy</code></p>
+
+
+
+<h2>Implementation Details</h2>
+
+<p>You should never have to touch anything in the config directory unless
+you're adding a new platform, new tools, or adding new features to the
+build system.  In general, please consult with the build system owner(s)
+(<a href="mailto:android-build-team">android-build-team</a>) before you go
+mucking around in here.  That said, here are some notes on what's going on
+under the hood.</p>
+
+<h3>Environment Setup / buildspec.mk Versioning</h3>
+<p>In order to make easier for people when the build system changes, when
+it is necessary to make changes to buildspec.mk or to rerun the environment
+setup scripts, they contain a version number in the variable
+BUILD_ENV_SEQUENCE_NUMBER.  If this variable does not match what the build
+system expects, it fails printing an error message explaining what happened.
+If you make a change that requires an update, you need to update two places
+so this message will be printed.
+<ul>
+    <li>In config/envsetup.make, increment the
+        CORRECT_BUILD_ENV_SEQUENCE_NUMBER definition.</li>
+    <li>In buildspec.mk.default, update the BUILD_ENV_SEQUENCE_DUMBER
+        definition to match the one in config/envsetup.make</li>
+</ul>
+The scripts automatically get the value from the build system, so they will
+trigger the warning as well.
+</p>
+
+<h3>Additional makefile variables</h3>
+<p>You probably shouldn't use these variables.  Please consult
+<a href="mailto:android-build-team">android-build-team</a> before using them.
+These are mostly there for workarounds for other issues, or things that aren't
+completely done right.</p>
+
+<h4>LOCAL_ADDITIONAL_DEPENDENCIES</h4>
+<p>If your module needs to depend on anything else that
+isn't actually built in to it, you can add those make targets to 
+<code>LOCAL_ADDITIONAL_DEPENDENCIES</code>.  Usually this is a workaround
+for some other dependency that isn't created automatically.</p>
+
+<h4>LOCAL_BUILT_MODULE</h4>
+<p>When a module is built, the module is created in an intermediate
+directory then copied to its final location.  LOCAL_BUILT_MODULE is
+the full path to the intermediate file.  See LOCAL_INSTALLED_MODULE
+for the path to the final installed location of the module.</p>
+
+<h4>LOCAL_HOST</h4>
+<p>Set by the host_xxx.make includes to tell base_rules.make and the other
+includes that we're building for the host.  Kenneth did this as part of
+openbinder, and I would like to clean it up so the rules, includes and
+definitions aren't duplicated for host and target.</p>
+
+<h4>LOCAL_INSTALLED_MODULE</h4>
+<p>The fully qualified path name of the final location of the module.
+See LOCAL_BUILT_MODULE for the location of the intermediate file that
+the make rules should actually be constructing.</p>
+
+<h4>LOCAL_REPLACE_VARS</h4>
+<p>Used in some stuff remaining from the openbinder for building scripts
+with particular values set,</p>
+
+<h4>LOCAL_SCRIPTS</h4>
+<p>Used in some stuff remaining from the openbinder build system that we
+might find handy some day.</p>
+
+<h4>LOCAL_MODULE_CLASS</h4>
+<p>Which kind of module this is.  This variable is used to construct other
+variable names used to locate the modules.  See base_rules.make and
+envsetup.make.</p>
+
+<h4>LOCAL_MODULE_NAME</h4>
+<p>Set to the leaf name of the LOCAL_BUILT_MODULE.  I'm not sure,
+but it looks like it's just used in the WHO_AM_I variable to identify
+in the pretty printing what's being built.</p>
+
+<h4>LOCAL_MODULE_SUFFIX</h4>
+<p>The suffix that will be appended to <code>LOCAL_MODULE</code> to form
+<code>LOCAL_MODULE_NAME</code>.  For example, .so, .a, .dylib.</p>
+
+<h4>LOCAL_STRIP_MODULE</h4>
+<p>Calculated in base_rules.make to determine if this module should actually
+be stripped or not, based on whether <code>LOCAL_STRIPPABLE_MODULE</code>
+is set, and whether the combo is configured to ever strip modules.  With
+Iliyan's stripping tool, this might change.</p>
+
+<h4>LOCAL_STRIPPABLE_MODULE</h4>
+<p>Set by the include makefiles if that type of module is strippable. 
+Executables and shared libraries are.</p>
+
+<h4>LOCAL_SYSTEM_SHARED_LIBRARIES</h4>
+<p>Used while building the base libraries: libc, libm, libdl.  Usually
+it should be set to "none," as it is in $(CLEAR_VARS).  When building
+these libraries, it's set to the ones they link against.  For example,
+libc, libstdc++ and libdl don't link against anything, and libm links against
+libc.  Normally, when the value is none, these libraries are automatically
+linked in to executables and libraries, so you don't need to specify them
+manually.</p>
+
+
+</body>
+</html>
diff --git a/core/combo/linux-arm.mk b/core/combo/linux-arm.mk
index edd2df4..11a8ac7 100644
--- a/core/combo/linux-arm.mk
+++ b/core/combo/linux-arm.mk
@@ -1,6 +1,64 @@
 # Configuration for Linux on ARM.
 # Included by combo/select.make
 
+# You can set TARGET_ARCH_VERSION to use an arch version other
+# than ARMv5TE
+ifeq ($(strip $(TARGET_ARCH_VERSION)),)
+TARGET_ARCH_VERSION := armv5te
+endif
+
+# This set of if blocks sets makefile variables similar to preprocesser
+# defines in system/core/include/arch/<combo>/AndroidConfig.h. Their
+# purpose is to allow module Android.mk files to selctively compile
+# different versions of code based upon the funtionality and 
+# instructions available in a given architecture version.
+#
+# The blocks also define specific arch_version_cflags, which 
+# include defines, and compiler settings for the given architecture
+# version.
+#
+# Note: Hard coding the 'tune' value here is probably not ideal,
+# and a better solution should be found in the future.
+#
+# With two or three different versions this if block approach is
+# fine. If/when this becomes large, please change this to include
+# architecture versions specific Makefiles which define these
+# variables.
+#
+# Supporting armv4 (without thumb) does not make much sense since
+# it's mostly an obsoleted instruction set architecture (only available
+# in StrongArm and arm8). Supporting armv4 will require a lot of conditional
+# code in assembler source since the bx (branch and exchange) instruction is
+# not supported.
+#
+ifeq ($(TARGET_ARCH_VERSION),armv5te)
+ARCH_ARM_HAVE_THUMB_SUPPORT := true
+ARCH_ARM_HAVE_FAST_INTERWORKING := true
+ARCH_ARM_HAVE_64BIT_DATA := true
+ARCH_ARM_HAVE_HALFWORD_MULTIPLY := true
+ARCH_ARM_HAVE_CLZ := true
+ARCH_ARM_HAVE_FFS := true
+
+arch_version_cflags := -march=armv5te -mtune=xscale  -D__ARM_ARCH_5__ \
+	-D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__
+else
+ifeq ($(TARGET_ARCH_VERSION),armv4t)
+$(warning ARMv4t support is currently a work in progress. It does not work right now!)
+ARCH_ARM_HAVE_THUMB_SUPPORT := false
+ARCH_ARM_HAVE_THUMB_INTERWORKING := false
+ARCH_ARM_HAVE_64BIT_DATA := false
+ARCH_ARM_HAVE_HALFWORD_MULTIPLY := false
+ARCH_ARM_HAVE_CLZ := false
+ARCH_ARM_HAVE_FFS := false
+
+DEFAULT_TARGET_CPU := arm920t
+
+arch_version_cflags := -march=armv4t -mtune=arm920t -D__ARM_ARCH_4T__
+else
+$(error Unknown ARM architecture version: $(TARGET_ARCH_VERSION))
+endif
+endif
+
 # You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
 ifeq ($(strip $($(combo_target)TOOLS_PREFIX)),)
 $(combo_target)TOOLS_PREFIX := \
@@ -21,11 +79,19 @@
                         -funswitch-loops     \
                         -finline-limit=300
 
+# Modules can choose to compile some source as thumb. As 
+# non-thumb enabled targets are supported, this is treated
+# as a 'hint'. If thumb is not enabled, these files are just
+# compiled as ARM.
+ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true)
 TARGET_thumb_CFLAGS :=  -mthumb \
                         -Os \
                         -fomit-frame-pointer \
                         -fno-strict-aliasing \
                         -finline-limit=64
+else
+TARGET_thumb_CFLAGS := $(TARGET_arm_CFLAGS)
+endif
 
 # Set FORCE_ARM_DEBUGGING to "true" in your buildspec.mk
 # or in your environment to force a full arm build, even for
@@ -41,22 +107,28 @@
   TARGET_thumb_CFLAGS += -marm -fno-omit-frame-pointer
 endif
 
-## on some hosts, the target cross-compiler is not available so do not run this command
-ifneq ($(wildcard $($(combo_target)CC)),)
-$(combo_target)LIBGCC := $(shell $($(combo_target)CC) -mthumb-interwork -print-libgcc-file-name)
-endif
+android_config_h := $(call select-android-config-h,linux-arm)
+arch_include_dir := $(dir $(android_config_h))
 
 $(combo_target)GLOBAL_CFLAGS += \
-			-march=armv5te -mtune=xscale \
 			-msoft-float -fpic \
-			-mthumb-interwork \
 			-ffunction-sections \
 			-funwind-tables \
 			-fstack-protector \
 			-fno-short-enums \
-			-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \
-			-D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
-			-include $(call select-android-config-h,linux-arm)
+			$(arch_version_cflags) \
+			-include $(android_config_h) \
+			-I $(arch_include_dir)
+
+# We only need thumb interworking in cases where thumb support
+# is available in the architecture, and just to be sure, (and
+# since sometimes thumb-interwork appears to be default), we
+# specifically disable when thumb support is unavailable.
+ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true)
+$(combo_target)GLOBAL_CFLAGS +=	-mthumb-interwork
+else
+$(combo_target)GLOBAL_CFLAGS +=	-mno-thumb-interwork
+endif
 
 $(combo_target)GLOBAL_CPPFLAGS += -fvisibility-inlines-hidden
 
@@ -75,6 +147,15 @@
 libstdc++_root := bionic/libstdc++
 libthread_db_root := bionic/libthread_db
 
+
+## on some hosts, the target cross-compiler is not available so do not run this command
+ifneq ($(wildcard $($(combo_target)CC)),)
+# We compile with the global cflags to ensure that 
+# any flags which affect libgcc are correctly taken
+# into account.
+$(combo_target)LIBGCC := $(shell $($(combo_target)CC) $($(combo_target)GLOBAL_CFLAGS) -print-libgcc-file-name)
+endif
+
 # unless CUSTOM_KERNEL_HEADERS is defined, we're going to use
 # symlinks located in out/ to point to the appropriate kernel
 # headers. see 'config/kernel_headers.make' for more details
diff --git a/core/find-jdk-tools-jar.sh b/core/find-jdk-tools-jar.sh
index 091eae4..4c40627 100755
--- a/core/find-jdk-tools-jar.sh
+++ b/core/find-jdk-tools-jar.sh
@@ -1,7 +1,11 @@
-if [[ "x$ANDROID_JAVA_HOME" != x && -e $ANDROID_JAVA_HOME/lib/tools.jar ]] ; then
+if [ "x$ANDROID_JAVA_HOME" != x ] && [ -e "$ANDROID_JAVA_HOME/lib/tools.jar" ] ; then
     echo $ANDROID_JAVA_HOME/lib/tools.jar
 else
     JAVAC=$(which javac)
+    if [ -z "$JAVAC" ] ; then
+	echo "Please-install-JDK-5.0,-update-12-or-higher,-which-you-can-download-from-java.sun.com"
+	exit 1
+    fi
     while [ -L $JAVAC ] ; do
         LSLINE=$(ls -l $JAVAC)
         JAVAC=$(echo -n $LSLINE | sed -e "s/.* -> //")
diff --git a/core/main.mk b/core/main.mk
index aaf5a76..e0489fb 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -253,6 +253,14 @@
     $(warning implicitly installing apns-conf_sdk.xml)
   endif
 endif
+# Install a vold.conf file is one's not already being installed.
+ifeq (,$(filter %:system/etc/vold.conf, $(PRODUCT_COPY_FILES)))
+  PRODUCT_COPY_FILES += \
+	development/data/etc/vold.conf:system/etc/vold.conf
+  ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
+    $(warning implicitly installing vold.conf)
+  endif
+endif
 # If we're on an eng or tests build, but not on the sdk, and we have
 # a better one, use that instead.
 ifneq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
diff --git a/core/multi_prebuilt.mk b/core/multi_prebuilt.mk
index 707af10..738a88d 100644
--- a/core/multi_prebuilt.mk
+++ b/core/multi_prebuilt.mk
@@ -53,13 +53,13 @@
     $(eval LOCAL_MODULE := $(word 1,$(tw))) \
     $(eval LOCAL_SRC_FILES := $(word 2,$(tw))) \
    , \
-    $(eval LOCAL_MODULE := $(basename $(t))) \
+    $(eval LOCAL_MODULE := $(basename $(notdir $(t)))) \
     $(eval LOCAL_SRC_FILES := $(t)) \
    ) \
   $(if $(6), \
     $(eval LOCAL_BUILT_MODULE_STEM := $(6)) \
    , \
-    $(eval LOCAL_BUILT_MODULE_STEM := $(LOCAL_SRC_FILES)) \
+    $(eval LOCAL_BUILT_MODULE_STEM := $(notdir $(LOCAL_SRC_FILES))) \
    ) \
   $(eval LOCAL_MODULE_SUFFIX := $(suffix $(LOCAL_SRC_FILES))) \
   $(eval include $(BUILD_PREBUILT)) \
diff --git a/core/node_fns.mk b/core/node_fns.mk
index 8b026f5..5d2a669 100644
--- a/core/node_fns.mk
+++ b/core/node_fns.mk
@@ -186,7 +186,9 @@
 define _import-node
   $(eval _include_stack := $(2) $$(_include_stack))
   $(call clear-var-list, $(3))
+  $(eval LOCAL_PATH := $(patsubst %/,%,$(dir $(2))))
   $(eval include $(2))
+  $(eval LOCAL_PATH :=)
   $(call copy-var-list, $(1).$(2), $(3))
   $(call clear-var-list, $(3))
 
diff --git a/core/prelink-linux-arm.map b/core/prelink-linux-arm.map
index 35e2ec1..c8e0db5 100644
--- a/core/prelink-linux-arm.map
+++ b/core/prelink-linux-arm.map
@@ -60,6 +60,8 @@
 libOpenVGU_CM.so        0xAC800000
 libEGL.so               0xAC700000
 
+libacc.so               0xAC600000
+
 libexif.so              0xAC500000
 libui.so                0xAC400000
 libsgl.so               0xAC000000
@@ -91,26 +93,11 @@
 libcamera.so            0xA9680000
 libqcamera.so           0xA9400000
 
-# pv libraries
-libpvasf.so                    0xA7C26000
-libpvasfreg.so                 0xA7C00000
-libomx_sharedlibrary.so        0xA7BA0000
-libopencore_download.so        0xA7B40000
-libopencore_downloadreg.so     0xA7B00000
-libopencore_net_support.so     0xA7A00000
-libopencore_rtsp.so            0xA7900000
-libopencore_rtspreg.so         0xA7890000
-libopencore_author.so          0xA7800000
-libomx_aacdec_sharedlibrary.so 0xA7700000
-libomx_amrdec_sharedlibrary.so 0xA76A0000
-libomx_amrenc_sharedlibrary.so 0xA7680000
-libomx_avcdec_sharedlibrary.so 0xA7660000
-libomx_m4vdec_sharedlibrary.so 0xA75C0000
-libomx_m4venc_sharedlibrary.so 0xA7590000
-libomx_mp3dec_sharedlibrary.so 0xA7450000
-libopencore_mp4local.so        0xA7400000
-libopencore_mp4localreg.so     0xA7300000
-libopencore_player.so          0xA7000000
+# pv opencore libraries
+libopencore_author.so   0xA7B00000
+libopencore_player.so   0xA7800000
+libopencore_common.so   0xA7300000
+libopencore_2way.so     0xA7000000
 
 # opencore hardware support
 libmm-adspsvc.so              0xA6FFD000
diff --git a/envsetup.sh b/envsetup.sh
index 984167e..6325c3d 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -718,14 +718,14 @@
     Darwin)
         function sgrep()
         {
-            find -E . -type f -iregex '.*\.(c|h|cpp|S|java|xml)' -print0 | xargs -0 grep --color -n "$@"
+            find -E . -type f -iregex '.*\.(c|h|cpp|S|java|xml|sh|mk)' -print0 | xargs -0 grep --color -n "$@"
         }
 
         ;;
     *)
         function sgrep()
         {
-            find . -type f -iregex '.*\.\(c\|h\|cpp\|S\|java\|xml\)' -print0 | xargs -0 grep --color -n "$@"
+            find . -type f -iregex '.*\.\(c\|h\|cpp\|S\|java\|xml\|sh\|mk\)' -print0 | xargs -0 grep --color -n "$@"
         }
         ;;
 esac
diff --git a/history/cupcake.txt b/history/cupcake.txt
new file mode 100644
index 0000000..7947f93
--- /dev/null
+++ b/history/cupcake.txt
@@ -0,0 +1,1103 @@
+Cupcake auto-import at change 127436, Jan 22 2009.
+
+(cd bionic && git checkout c2f23bb1cdea20fc5e8e5b8101d9d0bd6d14b74b)
+(cd bootable/bootloader/legacy && git checkout d08c9e9444e2fb688ca4d3c4d807ba69c680fb3c)
+(cd bootable/diskinstaller && git checkout a2bb8bf00fbd01859e2475fc36fc6fa070e6eaa9)
+(cd bootable/recovery && git checkout 6d12e0d6f8fe05ebd6b0210fed00e0ff874a3d70)
+(cd build && git checkout b33e7b0cb085a1937c1a2e5b81eb78d6059bf6bc)
+(cd dalvik && git checkout cd18d5743d1957b1c1f57c0abe7ea28187c63a9f)
+(cd development && git checkout 2f3ec0146063b7bed40ff4f41c73407cebdc71fc)
+(cd external/aes && git checkout 17e798f9d2c0a804b5dcac6ee4b2bc1eee66e3b2)
+(cd external/apache-http && git checkout 4e30c8f9f80e5bd40fd8f018760b01a80b16b8c3)
+(cd external/bison && git checkout b7f2b4d529ee03ee0e4172cc06e7cd973bd9bef5)
+(cd external/bluez && git checkout dbbd69e74e390449430a6c357a098fd345fde2ed)
+(cd external/bsdiff && git checkout 03874566c6f74e11d030fa2c534b3dd5a06721af)
+(cd external/bzip2 && git checkout d78fa13a44d08622d61d0df71e731de77021dcf1)
+(cd external/clearsilver && git checkout b651aeec8a719c9f639ef710423e29463123d4f6)
+(cd external/dbus && git checkout ed0821c6a30852d02d05ce85d4ad4a567ff8a3da)
+(cd external/dhcpcd && git checkout 4c5a5fb53bccceff331bae70f748bf9b4609fe0a)
+(cd external/dosfstools && git checkout c936fe75ee33b6cbc46e6124679d9a1d5d471663)
+(cd external/dropbear && git checkout 1abbfe5d373a44e7e0525fb7971ef0e00955f2e4)
+(cd external/e2fsprogs && git checkout 0bc54db4f9a9aab8225f5107a712c4bbbe34f79c)
+(cd external/elfcopy && git checkout 8d6d7ea32d2e40489fa8be26618167fb6e2dfb40)
+(cd external/elfutils && git checkout ee6008996aa701ad2a50d5d6b1529c9e2c2724c1)
+(cd external/embunit && git checkout 225a86217dd274aea51b1e442568e7aec43a74e9)
+(cd external/emma && git checkout 725ce5e17f431acc3b549f87464a7883f98adf66)
+(cd external/esd && git checkout 7ef614b2e0ad463c3454cd9ba1052c2964e14596)
+(cd external/expat && git checkout da44bf784a2b6acb5df7f40b32c0d4b563fba3ed)
+(cd external/fdlibm && git checkout 74aa530c6ca9c2f10a0e3635b4211f1438b972b2)
+(cd external/freetype && git checkout b36db06baca4c030538565e01b8264971c9b69f8)
+(cd external/gdata && git checkout e784ba4a104f64d1f57dad38ff76764b5718bea0)
+(cd external/genext2fs && git checkout f4a0b4d282a1718ac6e3fff10d02aa877e294324)
+(cd external/giflib && git checkout ff6a75e423d8333c6657e4a66494e0bc9ed34385)
+(cd external/googleclient && git checkout d3974b69b023cb38541d1870ad5c35e4b2ea2c35)
+(cd external/grub && git checkout 1650e5296608be8925d9831310c9ad3595fd6869)
+(cd external/icu4c && git checkout 80865003e90c51ddd5f1e5e1be5ebc1add6af188)
+(cd external/iptables && git checkout 10a1e8d1003257d408c77662fc5ce6470a19b245)
+(cd external/jdiff && git checkout 0e7cb56de28fb496d69a1dd1907388b2076224d6)
+(cd external/jhead && git checkout 9705c3e3c1b19598026449c303d54cdc485f35a9)
+(cd external/jpeg && git checkout 9175dba76b0c31e0870fe074d476650cf258071c)
+(cd external/libffi && git checkout 8c63892438fbb7ef754e55c60220dd02e7c8fd70)
+(cd external/libpcap && git checkout 23295e59cff9c04be154ede6afad16bc9fe385cf)
+(cd external/libpng && git checkout 78ac9384d6ca0067d77b843b70bbdd828bb738df)
+(cd external/libxml2 && git checkout 2c905f99793b8da7f02349aa69fc01cba533f935)
+(cd external/netcat && git checkout 6fc2e7182a81d3665e5233a6555fc6c1960b6b8a)
+(cd external/netperf && git checkout acbeb739a2260972afbd58233fc8939fe5014e3c)
+(cd external/neven && git checkout dfddd36f99a6e11ca3b0107b49f35c623203c8f2)
+(cd external/opencore && git checkout 7a7c607909568a2a1b561023be821919bdb9d578)
+(cd external/openssl && git checkout 499ee9f31d10290f510c2f3785b6abe1314993ec)
+(cd external/oprofile && git checkout b0a81c270584f10323634816b6e5e19711690233)
+(cd external/ping && git checkout 8a5b42ad26815061053bc553b2d04fcbbce5f9d0)
+(cd external/ppp && git checkout 9d869087afe63b8506a367aaeb2008459c823ecf)
+(cd external/protobuf && git checkout 2f1917b2d9754d6288e8de2739469bf719438388)
+(cd external/qemu && git checkout 7a5cb2bf2725afddd4ff9ede151063d23b849d94)
+(cd external/safe-iop && git checkout a625f2f303bd1e1eb8287d82075fa9a240296167)
+(cd external/skia && git checkout 07051704de661e1c4e0fffc4f486afb60110f7e6)
+(cd external/sonivox && git checkout 372b906dec9f897dc04ba3bbd00c908bb2304e95)
+(cd external/sqlite && git checkout 60a965a2f8a63d7704130d867458495a324801e1)
+(cd external/srec && git checkout 00743dcf9e86961f3867b81ef81022040c821f18)
+(cd external/strace && git checkout 67670f6420d064f0b0f54ab2cf2f07752dcc35c7)
+(cd external/tagsoup && git checkout 4bb395b502d0c2495f7a5d226ccf7f06f53dea38)
+(cd external/tcpdump && git checkout f3ccc4ec63431539743f1155a60192a40f6bec24)
+(cd external/tinyxml && git checkout 600ebb441039bcb8a0340df016c6685a688b7647)
+(cd external/tremor && git checkout 0ad0141e864cfbb130db4f22e279d421832e7336)
+(cd external/webkit && git checkout 3607268bbf57cd3af1bb2d67e956821fb8e3c9ec)
+(cd external/wpa_supplicant && git checkout 17800c6dac7ac53c2b348151274071a4cc6e4318)
+(cd external/xdelta3 && git checkout 65fb2b2df617551c42d9bdf7b5bc88168ce6f1ff)
+(cd external/yaffs2 && git checkout d333fc232d7e5ae3370080d5d6f7d88ea9c6b3a1)
+(cd external/zlib && git checkout e860c69e014c1dfed34cf4ee808d200648205f2a)
+(cd frameworks/base && git checkout 94cbba0933e50d593c1c462cff698dd3387ba95b)
+(cd frameworks/opt/com.google.android && git checkout 95252a12ffcf47582ab8b68a35a996ef50cdb523)
+(cd frameworks/opt/com.google.android.googlelogin && git checkout 8f1d2acbab346be5c40d06d24a07bc169ad9c60e)
+(cd frameworks/policies/base && git checkout 880754ac4766e622367a6d65304c0b4176260e0d)
+(cd hardware/libhardware && git checkout 37156b8db0bee9a0e77160a40483d0fad0409bd4)
+(cd hardware/libhardware_legacy && git checkout 5af6317f266c0f7792f6a2fa1c2061f61529aab7)
+(cd hardware/ril && git checkout 154a2efc9b75de255cf9c3916d9d778c445df2ae)
+(cd kernel && git checkout 3c625cce51fadd88b75db8b6766de38f4ce7deaf)
+(cd packages/apps/AlarmClock && git checkout c8208f9f6ff76479da3b1eb0cedbd5500b8be1f4)
+(cd packages/apps/Browser && git checkout c3996145a81b44e27b7fad251e460ccf9c4a5d61)
+(cd packages/apps/Calculator && git checkout d3f7cb4de21253fbeeec0cf4b680bd79e6e62e8a)
+(cd packages/apps/Calendar && git checkout 1c94a74857db16dec676dc16e1ff58f9a4d0385c)
+(cd packages/apps/Camera && git checkout bf1c107ea0bbe8d80769b70d8e9b50dbf8cfcc09)
+(cd packages/apps/Contacts && git checkout cbe59e173d0baf73e98b12ac889ca17172677121)
+(cd packages/apps/Email && git checkout 6f463987544260a770b9203bd412fb665c59d0f9)
+(cd packages/apps/GoogleSearch && git checkout 2134a0d22132a8e68b6914ce466aa2acf28c244a)
+(cd packages/apps/HTMLViewer && git checkout ae36e6ba1ad74a7eb844a41c6c0fc1ecd3c66467)
+(cd packages/apps/IM && git checkout ad1551cc24ebeffda11932c1d2cae0cf1b69a854)
+(cd packages/apps/Launcher && git checkout a3673051acdee1f88b68ffc3a39f0db8529009ff)
+(cd packages/apps/Mms && git checkout 2d9959fea0cfea5fca09d139b66b1fa2cd45bf49)
+(cd packages/apps/Music && git checkout fa0935a617742fe1545bb65202d2b93af8985b6a)
+(cd packages/apps/PackageInstaller && git checkout 3a1faab9685bd0fc39ea7bf5bdc7237805d09c58)
+(cd packages/apps/Phone && git checkout 4974565b48789d5b12c302a846fc090e67039647)
+(cd packages/apps/Settings && git checkout c0a8abbb4f423c0aaa66a1e09bafd4b845837537)
+(cd packages/apps/SoundRecorder && git checkout eb2e5e6a43c0756e9d3e149f46f6a504747175f2)
+(cd packages/apps/Stk && git checkout 4e63a901fb044d270868b4f3abc8abb20d011230)
+(cd packages/apps/Sync && git checkout d8aa470c7fea6a43e269da78e1a2b8c14fb40c70)
+(cd packages/apps/Updater && git checkout 9e0cd9b717f546609ec155f6be3764554ede6408)
+(cd packages/apps/VoiceDialer && git checkout 1ab735e15b6855beabd22f5b87d497f83b3b5b6a)
+(cd packages/providers/CalendarProvider && git checkout 3690a0259f2c62501a47c9a4ecd007f1c1cc599a)
+(cd packages/providers/ContactsProvider && git checkout ef7f8057050027ce57424b69dc697d4127ffc37d)
+(cd packages/providers/DownloadProvider && git checkout b7f50f86e1f424ab05dc8154c3fabbfb3ecd4c47)
+(cd packages/providers/DrmProvider && git checkout 7f08c3d1582a2195fd7b28a3157dedd975230d8b)
+(cd packages/providers/GoogleContactsProvider && git checkout 1a6c0f279fe754b041290768bfa753e5f58e43ad)
+(cd packages/providers/GoogleSubscribedFeedsProvider && git checkout 88f4be5460c130c048e5017999a80275d71a88d6)
+(cd packages/providers/ImProvider && git checkout 8d4eb986192e7682c770449e0695d23d954a5691)
+(cd packages/providers/MediaProvider && git checkout ef92b4dc14a5f8093cb1b58888c213a867504afa)
+(cd packages/providers/TelephonyProvider && git checkout 62f78e4e0ae991f0df285488a1af382bd5105483)
+(cd prebuilt && git checkout 4ef7c54fb1bdfbd5e93d631c7f76ea216ab2d375)
+(cd system/bluetooth && git checkout 36658369459e22152cce54bd1c0660d71a270947)
+(cd system/core && git checkout 4a4c9f6f98055918f1ebff06b3cc1ed622c058fe)
+(cd system/extras && git checkout 1d68e595e72f955a8cd12f59825943ea71daf7d5)
+(cd system/wlan/ti && git checkout 6ff408df1efe9981f20ab8ce6ec36d6ff6f034dc)
+
+Change 127102
+
+	Allow different "Settings > About phone > Contributors" for different products.  The product-specific contributors.{html,css} are copied to /system/etc, and the Contributors activity loads it from there.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/build/core/product.mk#4 edit
+... //branches/cupcake/android/build/core/product_config.mk#9 edit
+
+--------
+
+Change 127106
+
+	This removes the patch intended to fix this webkit bug
+	http://bugs.webkit.org/show_bug.cgi?id=16512
+	(orginally reported by this bug: http://b/issue?id=954816)
+	
+	The original bug can no longer be reproduced in webkit.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLAppletElement.cpp#3 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLEmbedElement.cpp#3 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLFormElement.cpp#3 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLFormElement.h#3 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLImageElement.cpp#3 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLImageElement.h#2 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLObjectElement.cpp#3 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLPlugInElement.cpp#2 edit
+... //branches/cupcake/android/external/webkit/WebCore/html/HTMLPlugInElement.h#2 edit
+
+--------
+
+Change 127112
+
+	Added RemoteViews.setOnClickPendingIntent() that connects onClick events to launch PendingIntents.  Also exposed un-@hide RemoteViews.setImageViewBitmap().  Also added @RemoteView annotation to Button and ImageButton to allow them across the RemoteView boundary, and added tests to verify this happens.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/api/current.xml#105 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/widget/Button.java#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/widget/ImageButton.java#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/widget/RemoteViews.java#2 edit
+... //branches/cupcake/android/frameworks/base/tests/FrameworkTest/res/layout/remote_view_test_good.xml#2 edit
+... //branches/cupcake/android/frameworks/base/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RemoteViewsActivityTest.java#2 edit
+
+--------
+
+Change 127115
+
+	Fix bug where UMS wouldn't enable properly
+	
+
+Affected files ...
+
+... //branches/cupcake/android/system/core/vold/volmgr.c#8 edit
+
+--------
+
+Change 127120
+
+	Automated rollback of changelist 127102.
+
+
+Affected files ...
+
+... //branches/cupcake/android/build/core/product.mk#5 edit
+... //branches/cupcake/android/build/core/product_config.mk#10 edit
+
+--------
+
+Change 127126
+
+	Add back auto space on candidate selection.
+	Delay key feedback display.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/inputmethodservice/KeyboardView.java#9 edit
+
+--------
+
+Change 127129
+
+	Remove the call to is.reset(). This allows callers to embedded data after the encoded bitmap and be able to retrieve it.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/graphics/java/android/graphics/BitmapFactory.java#2 edit
+
+--------
+
+Change 127134
+
+	add copyPixelsFromBuffer, to allow developers to write pixels values with no format or alpha transformations that accompany using setPixels.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/development/samples/ApiDemos/AndroidManifest.xml#7 edit
+... //branches/cupcake/android/development/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapPixels.java#1 add
+... //branches/cupcake/android/frameworks/base/api/current.xml#106 edit
+... //branches/cupcake/android/frameworks/base/core/jni/android/graphics/Bitmap.cpp#4 edit
+... //branches/cupcake/android/frameworks/base/graphics/java/android/graphics/Bitmap.java#2 edit
+
+--------
+
+Change 127136
+
+	Fix power consumption notification when driver is removed
+	
+
+Affected files ...
+
+... //branches/cupcake/android/system/wlan/ti/sta_dk_4_0_4_32/pform/linux/src/esta_drv.c#10 edit
+
+--------
+
+Change 127138
+
+	Enable building dosfstools for all non simulator builds
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/dosfstools/src/Android.mk#2 edit
+
+--------
+
+Change 127142
+
+	Use a single button for both the mode indicator and the recording indicator.
+	This makes for a smoother user experience when using the trackball, as the
+	focus highlight stays on the button when you start recording.
+	
+	(Bonus: the code's shorter too. We just switch the button's drawable rather than
+	hiding one button and showing another.)
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Camera/res/layout/video_camera.xml#8 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/VideoCamera.java#25 edit
+
+--------
+
+Change 127144
+
+	Fix problem that would leave the "now playing" list empty when removing the currently playing song from it.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Music/src/com/android/music/TrackBrowserActivity.java#13 edit
+
+--------
+
+Change 127146
+
+	Handle NPE when search is invoked but no suggestions are
+	provided.  Also, add a field
+	that was missing in the parceling of SearchableInfo.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/app/SearchDialog.java#20 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/server/search/SearchableInfo.java#6 edit
+
+--------
+
+Change 127147
+
+	Bug fix - SET UP CALL - sending confirmation result twice. TERMINAL RESPONSE is not needed.
+	
+	When the user's confirmation result is handled by Telephony->StkService, returns immediately after calling CommandInterface.handleCallSetupRequestFromSim(). This will insure that the no termainl response is going to be send.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/telephony/java/com/android/internal/telephony/gsm/stk/StkService.java#2 edit
+
+--------
+
+Change 127155
+
+	Don't switch back to video preview mode when bringing up the menu, except if
+	we're recording.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/VideoCamera.java#26 edit
+
+--------
+
+Change 127159
+
+	Change back button behavior when ping-ponging between the still-image camera and
+	the single-image gallery view. Now going from the gallery back to the still-image
+	camera acts like a "back" as far as the activity stack is concerned.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/MenuHelper.java#19 edit
+
+--------
+
+Change 127165
+
+	Added a test that attempts to access a nonexistent static field.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/dalvik/tests/064-field-access/expected.txt#2 edit
+... //branches/cupcake/android/dalvik/tests/064-field-access/src/GetNonexistent.java#1 add
+... //branches/cupcake/android/dalvik/tests/064-field-access/src/Holder.java#1 add
+... //branches/cupcake/android/dalvik/tests/064-field-access/src/Main.java#2 edit
+... //branches/cupcake/android/dalvik/tests/064-field-access/src2/Holder.java#1 add
+
+--------
+
+Change 127170
+
+	Setup a place to put IMF/IME sample activities. The idea is to try to
+	create situations that we want to test the IMF/IME against, that aren't
+	necessarily represented well by the existing applications. Include an
+	input type test for starters.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/Android.mk#1 add
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/AndroidManifest.xml#1 add
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/res/layout/sample_edit_text.xml#1 add
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/res/values/strings.xml#1 add
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java#1 add
+
+--------
+
+Change 127176
+
+	Expose API in SDK to remove cache files
+	
+	Add a new public api to free cache in PackageManager. The call back is via a pending intent.
+	Rename the api to freeStorage and change usage in other places.
+	Add a new unit test.
+	Remove DeviceMemoryMonitor from code base.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/cmds/installd/commands.c#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/app/ApplicationContext.java#5 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/content/pm/IPackageManager.aidl#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/content/pm/PackageManager.java#4 edit
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/DeviceMemoryMonitor.java#2 delete
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/DeviceStorageMonitorService.java#2 edit
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/PackageManagerService.java#6 edit
+... //branches/cupcake/android/frameworks/base/test-runner/android/test/mock/MockPackageManager.java#3 edit
+... //branches/cupcake/android/frameworks/base/tests/AndroidTests/src/com/android/unit_tests/AppCacheTest.java#3 edit
+... //branches/cupcake/android/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java#5 edit
+
+--------
+
+Change 127180
+
+	Fix TextAppearanceSpan parceling to write in the same
+	order as it reads.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/text/TextUtils.java#7 edit
+
+--------
+
+Change 127182
+
+	* General cleanup
+	* Switch to supporting split file (one for platform, one for product
+	  specific entries).
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Email/res/xml/providers.xml#7 edit
+... //branches/cupcake/android/packages/apps/Email/res/xml/providers_product.xml#1 branch
+... //branches/cupcake/android/packages/apps/Email/src/com/android/email/activity/setup/AccountSetupBasics.java#7 integrate
+
+--------
+
+Change 127194
+
+	Fix bug (The camera preview is not in full screen after using the trackball to select the "capture" button).  Also clean up the transitions between fullscreen and non-fullscreen a bit by animating the status bar.
+	Still not perfect, of course. :(
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/view/WindowManagerPolicy.java#2 edit
+... //branches/cupcake/android/frameworks/base/core/res/res/anim/status_bar_enter.xml#1 add
+... //branches/cupcake/android/frameworks/base/core/res/res/anim/status_bar_exit.xml#1 add
+... //branches/cupcake/android/frameworks/base/core/res/res/values/styles.xml#9 edit
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/WindowManagerService.java#14 edit
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/status/StatusBarService.java#7 edit
+... //branches/cupcake/android/frameworks/policies/base/mid/com/android/internal/policy/impl/MidWindowManager.java#2 edit
+... //branches/cupcake/android/frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java#12 edit
+
+--------
+
+Change 127197
+
+	Add broadcast intents for the following new external media events:
+	    - Volume is being disk checked
+	    - Volume is blank (no partition table or no supported filesystems)
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/content/Intent.java#11 edit
+
+--------
+
+Change 127200
+
+	Camera work:
+	+ Define a standard, albeit currently @hidden, intent-extra for specifying that
+	  videos and/or pictures should be written to a given content URI.
+	  (This had been the hard-coded string "output". We kept the value the same so
+	  that any in-the-wild applications that use this extra will continue to work.)
+	
+	+ Add the ability to specify that a video is recorded to a given content URI.
+	  (Because we can't actually do this at the video camera level yet, we cheat
+	   and implement this feature using a copy-and-delete-the-original-video-file.)
+	
+	+ Add a test to the MarkTest scratch app to test out this new ability.
+	
+	+ Remove mention of the "pick" intent from the camera and video camera activities.
+	  (This was a copy-and-paste error from when the code was originally copied from
+	   the image gallery activities.)
+	
+	+ Wrap use of MediaMetadataRetriever in try / catch clauses because the
+	  media metadata retriever was observed to throw a runtime exception if it was
+	  given a garbage video file.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/provider/MediaStore.java#16 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/Camera.java#30 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/CropImage.java#4 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/ImageManager.java#13 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/MenuHelper.java#20 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/VideoCamera.java#27 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/Wallpaper.java#4 edit
+
+--------
+
+Change 127225
+
+	Ensure that the fingerprint doesn't contain spaces.
+	
+	Strip the BoardConfig-defined variable.
+	
+	Fail if the fingerprint doesn't contain exactly one word.
+	
+	Remove an old check that is no longer necessary.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/build/core/Makefile#14 edit
+... //branches/cupcake/android/build/core/main.mk#18 edit
+
+--------
+
+Change 127245
+
+	Temporarily disable A2DP and force audio hardware when any audio streams are ringtones, alarms or notifications.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/libs/audioflinger/AudioFlinger.cpp#18 edit
+... //branches/cupcake/android/frameworks/base/libs/audioflinger/AudioFlinger.h#10 edit
+
+--------
+
+Change 127247
+
+	When the dom changes, preserve the focus unless the frame structure has
+	changed. The old test was too conservative, and required that the old and
+	new pointers match. With this change, only require that frame's position
+	in the parent hierarchy match.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/webkit/WebKit/android/nav/CachedFrame.cpp#3 edit
+... //branches/cupcake/android/external/webkit/WebKit/android/nav/CachedFrame.h#3 edit
+... //branches/cupcake/android/external/webkit/WebKit/android/nav/WebView.cpp#21 edit
+
+--------
+
+Change 127249
+
+	Log a better message when rejecting a class because we're not able
+	to resolve a static field.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/dalvik/vm/analysis/CodeVerify.c#12 edit
+
+--------
+
+Change 127250
+
+	Added a unique serial number to class objects.  This allows classes
+	to be uniquely identified in a world where the GC can move objects
+	around.
+	
+	This replaces the hprofSerialNumber that was included when
+	WITH_HPROF_STACK was defined.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/dalvik/vm/Globals.h#4 edit
+... //branches/cupcake/android/dalvik/vm/hprof/HprofClass.c#2 edit
+... //branches/cupcake/android/dalvik/vm/hprof/HprofStackFrame.c#2 edit
+... //branches/cupcake/android/dalvik/vm/mterp/common/asm-constants.h#3 edit
+... //branches/cupcake/android/dalvik/vm/oo/Array.c#3 edit
+... //branches/cupcake/android/dalvik/vm/oo/Class.c#5 edit
+... //branches/cupcake/android/dalvik/vm/oo/Class.h#2 edit
+... //branches/cupcake/android/dalvik/vm/oo/Object.h#3 edit
+... //branches/cupcake/android/dalvik/vm/reflect/Proxy.c#3 edit
+
+--------
+
+Change 127253
+
+	Convert microseconds to milliseconds before formatting
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/os/BatteryStats.java#4 edit
+
+--------
+
+Change 127254
+
+	Print a log message rather than a stack trace when the shared prefs file is unreadable
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/app/ApplicationContext.java#6 edit
+
+--------
+
+Change 127259
+
+	Integration of the latest EAS and JET engine updates from Sonivox.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/sonivox/arm-wt-22k/host_src/jet.h#3 edit
+... //branches/cupcake/android/external/sonivox/arm-wt-22k/lib_src/eas_midi.c#2 edit
+... //branches/cupcake/android/external/sonivox/arm-wt-22k/lib_src/jet.c#3 edit
+... //branches/cupcake/android/external/sonivox/arm-wt-22k/lib_src/jet_data.h#2 edit
+
+--------
+
+Change 127263
+
+	Adds the User dictionary settings, available via Settings > Locale and text > User dictionary, allowing you to see or add words to the user dictionary.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Settings/AndroidManifest.xml#14 edit
+... //branches/cupcake/android/packages/apps/Settings/res/drawable/ic_menu_add.png#1 add
+... //branches/cupcake/android/packages/apps/Settings/res/layout/dialog_edittext.xml#1 add
+... //branches/cupcake/android/packages/apps/Settings/res/layout/list_content_with_empty_view.xml#1 add
+... //branches/cupcake/android/packages/apps/Settings/res/values/strings.xml#26 edit
+... //branches/cupcake/android/packages/apps/Settings/res/xml/language_settings.xml#3 edit
+... //branches/cupcake/android/packages/apps/Settings/src/com/android/settings/UserDictionarySettings.java#1 add
+
+--------
+
+Change 127270
+
+	Buffer the response data even for redirects. If the redirect turns out
+	to be null, use the buffered data in webcore.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/webkit/LoadListener.java#5 edit
+
+--------
+
+Change 127272
+
+	This removes the quarter second delay when passing a set focus message from
+	WebView to WebCore. 
+	
+	The delay was originally added in March of 2008 to help reduce the burden
+	on WebCore when moving across several items with the trackball in quick secession.
+	By delaying the event, it is easier to detect if there are subsequent events
+	before the first is executed, allowing intermediate JavaScript, layout, and 
+	display list builds to be deferred until the user is finished navigating.
+	
+	Since March, JavaScript and display list building are substantially faster.
+	The old design makes it difficult to keep items in order since not all events
+	(e.g. resizing the window) are delayed the same.
+	
+	This change preserves the code that discards navigation events as WebCore
+	falls behind -- the change causes only the first trackball movement to make
+	it to WebCore, where with the delay, the first movement may be ignored.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/webkit/WebView.java#29 edit
+
+--------
+
+Change 127273
+
+	Pass the mouse click through to webkit, even if the node hit isn't valid.
+	
+	The node and frame are captured when the nav cache is built. They may not
+	still be around when a later mouse click is processed. If either are not
+	valid, skip special code that deals with image maps and menu lists, but
+	still pass the mouse click to the main frame.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/webkit/WebKit/android/jni/WebViewCore.cpp#16 edit
+
+--------
+
+Change 127274
+
+	Overhaul bonding API.
+	
+	- listBondings() is now listBonds() and uses cached values in the system
+	  server
+	- hasBonding() is now getBondState() and uses cached values in the system
+	  server. It also returns an integer state code now to include the
+	  in-progress state (BOND_BONDING)
+	- createBonding() is now createBond() and no longer has an async callback.
+	  Use intents instead.
+	- BONDING_CREATED_ACTION / BONDING_REMOVED_ACTION are now
+	  BOND_STATE_CHANGED_ACTION with state codes, and result codes.
+	- Introduced BluetoothDevice.BOND_RESULT_* result codes so the UI can pick
+	  a nicer error message. TODO(jasonparekh): update the UI to use these result codes.
+	- Removed Setttings App PAIRING_STATUS in favor of BluetoothDevice.BOND_*
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/bluetooth/BluetoothDevice.java#4 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/bluetooth/BluetoothIntent.java#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/bluetooth/IBluetoothDevice.aidl#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/bluetooth/IBluetoothDeviceCallback.aidl#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/server/BluetoothA2dpService.java#9 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/server/BluetoothDeviceService.java#6 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/server/BluetoothEventLoop.java#4 edit
+... //branches/cupcake/android/frameworks/base/core/jni/android_server_BluetoothDeviceService.cpp#2 edit
+... //branches/cupcake/android/frameworks/base/core/jni/android_server_BluetoothEventLoop.cpp#6 edit
+... //branches/cupcake/android/packages/apps/Phone/src/com/android/phone/BluetoothHeadsetService.java#6 edit
+... //branches/cupcake/android/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothEventRedirector.java#3 edit
+... //branches/cupcake/android/packages/apps/Settings/src/com/android/settings/bluetooth/LocalBluetoothDevice.java#8 edit
+... //branches/cupcake/android/packages/apps/Settings/src/com/android/settings/bluetooth/LocalBluetoothDeviceManager.java#6 edit
+... //branches/cupcake/android/packages/apps/Settings/src/com/android/settings/bluetooth/LocalBluetoothManager.java#5 edit
+... //branches/cupcake/android/packages/apps/Settings/src/com/android/settings/bluetooth/SettingsBtStatus.java#2 edit
+
+--------
+
+Change 127275
+
+	Added class name to "pure-abstract" warning.  Added a test case that
+	exercises "conversion" of the superclass declaration from concrete to
+	abstract.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/expected.txt#2 edit
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/info.txt#2 edit
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/src/AbstractBase.java#2 edit
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/src/ConcreteSub.java#2 edit
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/src/ConcreteSub2.java#1 add
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/src/Main.java#2 edit
+... //branches/cupcake/android/dalvik/tests/032-concrete-sub/src2/AbstractBase.java#2 edit
+... //branches/cupcake/android/dalvik/vm/analysis/DexOptimize.c#5 edit
+
+--------
+
+Change 127278
+
+	Bug 1555561: Make the EditTexts in the "Add Bookmark" dialog
+	single-line so they don't stretch and mess up the layout.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Browser/res/layout/browser_add_bookmark.xml#2 edit
+
+--------
+
+Change 127282
+
+	   Fix build.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/tests/AndroidTests/src/com/android/unit_tests/BluetoothTest.java#3 edit
+
+--------
+
+Change 127283
+
+	   Clean up some old cruft.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/system/core/init/devices.c#7 edit
+
+--------
+
+Change 127285
+
+	sync with demetrius r75
+	allow to build with scalar==fixed again
+	remove some unneeded SK_BUILD_FOR_MAC tests
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/skia/include/core/SkBitmap.h#2 edit
+... //branches/cupcake/android/external/skia/src/core/SkFloatBits.cpp#2 edit
+... //branches/cupcake/android/external/skia/src/core/SkGraphics.cpp#4 edit
+... //branches/cupcake/android/external/skia/src/core/SkMath.cpp#3 edit
+... //branches/cupcake/android/external/skia/src/ports/SkFontHost_mac.cpp#3 edit
+
+--------
+
+Change 127289
+
+	Increase MMS size to 1MB.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/core/java/android/provider/Settings.java#28 edit
+... //branches/cupcake/android/packages/apps/Mms/src/com/android/mms/model/CarrierContentRestriction.java#2 edit
+... //branches/cupcake/android/packages/apps/Mms/src/com/android/mms/model/ContentRestriction.java#2 edit
+... //branches/cupcake/android/packages/apps/Mms/src/com/android/mms/model/SlideshowModel.java#2 edit
+
+--------
+
+Change 127297
+
+	Fixing Socket Spec
+	Fixing a Bug where SecurityManager.checkConnect is called with the
+	host name instead of the host address as it is specified and
+	implemented by the RI.
+	Reenabling comented out code in InetAddress.getLocalHost()
+	Fixed an error in InetAddress.equals() where we were not adhering to the spec.
+	Applied some fixes copied from harmony to not have to deal with dem later.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/dalvik/libcore/luni/src/main/java/java/net/InetAddress.java#5 edit
+... //branches/cupcake/android/dalvik/libcore/luni/src/main/java/java/net/NegCacheElement.java#3 edit
+... //branches/cupcake/android/dalvik/libcore/luni/src/main/java/java/net/NegativeCache.java#3 edit
+... //branches/cupcake/android/dalvik/libcore/luni/src/main/java/java/net/Socket.java#3 edit
+
+--------
+
+Change 127310
+
+	Fix ToggleButton. A previous change I made was based on a false assumption about how LayerDrawable works. A LayerDrawable *adds* the padding of all of its layers, each layer being translated by the padding of the layer below it. Surprising, but necessary to make widgets like ToggleButton work.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/graphics/java/android/graphics/drawable/LayerDrawable.java#4 edit
+
+--------
+
+Change 127315
+
+	Implement "IME: Add transactions to InputConnection".  Also change the background dim amount, which I forgot to include with my previous check-in. :)
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/api/current.xml#107 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/view/inputmethod/InputConnection.java#11 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/view/inputmethod/InputConnectionWrapper.java#9 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java#22 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/widget/TextView.java#23 edit
+... //branches/cupcake/android/frameworks/base/core/java/com/android/internal/view/IInputConnectionWrapper.java#11 edit
+... //branches/cupcake/android/frameworks/base/core/java/com/android/internal/view/IInputContext.aidl#10 edit
+... //branches/cupcake/android/frameworks/base/core/java/com/android/internal/view/InputConnectionWrapper.java#10 edit
+... //branches/cupcake/android/frameworks/base/core/java/com/android/internal/widget/EditableInputConnection.java#11 edit
+... //branches/cupcake/android/frameworks/base/core/res/res/values/themes.xml#6 edit
+
+--------
+
+Change 127338
+
+	Reset variables in bluetooth_start() to fix intermittent glitches resuming A2DP after standby.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/bluez/utils/audio/liba2dp.c#12 edit
+
+--------
+
+Change 127341
+
+	ButtonActivity - test to see if softkeyboard responds correctly to button activity.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/AndroidManifest.xml#2 edit
+... //branches/cupcake/android/frameworks/base/tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java#1 add
+
+--------
+
+Change 127342
+
+	   Make GadgetService get the list of gadgets by querying the package
+	   manager, and having a configuration xml file instead of hard coding
+	   it.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/api/current.xml#108 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/gadget/GadgetManager.java#2 edit
+... //branches/cupcake/android/frameworks/base/core/java/com/android/internal/gadget/IGadgetService.aidl#2 edit
+... //branches/cupcake/android/frameworks/base/core/res/res/values/attrs.xml#32 edit
+... //branches/cupcake/android/frameworks/base/core/res/res/values/public.xml#32 edit
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/GadgetService.java#2 edit
+... //branches/cupcake/android/frameworks/base/tests/GadgetHost/AndroidManifest.xml#2 edit
+... //branches/cupcake/android/frameworks/base/tests/GadgetHost/src/com/android/gadgethost/GadgetHostActivity.java#2 edit
+... //branches/cupcake/android/frameworks/base/tests/GadgetHost/src/com/android/gadgethost/GadgetPickActivity.java#2 edit
+
+--------
+
+Change 127344
+
+	Make sure the music service also stops itself if it got killed and restarted by the system.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Music/src/com/android/music/MediaPlaybackService.java#10 edit
+
+--------
+
+Change 127347
+
+	   add the gadget_info xml file
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/tests/GadgetHost/res/xml/gadget_info.xml#1 add
+
+--------
+
+Change 127356
+
+	Submit rightly signed 64-bit driver
+	
+
+Affected files ...
+
+... //branches/cupcake/android/development/host/windows/prebuilt/usb/driver_amd_64/androidusb.sys#3 edit
+... //branches/cupcake/android/development/host/windows/prebuilt/usb/driver_amd_64/androidusba64.cat#3 edit
+
+--------
+
+Change 127362
+
+	Use mmap to load speech model files.  Use const.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/srec/srec/clib/log_add.h#2 edit
+... //branches/cupcake/android/external/srec/srec/clib/swimodel.c#2 edit
+... //branches/cupcake/android/external/srec/srec/clib/voc_read.c#2 edit
+... //branches/cupcake/android/external/srec/srec/crec/c47mulsp.c#2 edit
+... //branches/cupcake/android/external/srec/srec/crec/get_fram.c#2 edit
+... //branches/cupcake/android/external/srec/srec/crec/srec.c#2 edit
+... //branches/cupcake/android/external/srec/srec/include/c42mul.h#2 edit
+... //branches/cupcake/android/external/srec/srec/include/hmmlib.h#2 edit
+... //branches/cupcake/android/external/srec/srec/include/simapi.h#2 edit
+... //branches/cupcake/android/external/srec/srec/include/srec.h#2 edit
+... //branches/cupcake/android/external/srec/srec/include/swimodel.h#2 edit
+... //branches/cupcake/android/external/srec/tools/grxmlcompile/grph.h#2 edit
+
+--------
+
+Change 127363
+
+	Bug 1547138: Add copyright headers to translated strings files.
+	Don't generate files that don't actually contain any translations.
+	Check in code for generating translation console flat-file format.
+	
+
+Affected files ...
+
+[list deleted]
+
+--------
+
+Change 127371
+
+	Clean up termination of the GPS network thread.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/location/java/com/android/internal/location/GpsLocationProvider.java#6 edit
+
+--------
+
+Change 127377
+
+	Introduce a new Activity callback, onUserLeaving(), that is invoked whenever the user initiates an action that causes the activity to be moved away from being frontmost.
+	
+	Any code that starts activities "silently," without the user having prompted the action, should supply the new Intent.FLAG_ACTIVITY_NO_USER_ACTION flag when calling startActivity().  This instructs the Activity Manager that this focus change is not due to user activity, suppressing the onUserLeaving() callback.  This is important to preserve the reliability of the onUserLeaving() callback indicating a specific user choice to navigate to the new activity.
+	
+	The two known apps in the tree that forcibly start activities without user activity have also been updated to use this new Intent flag:  Phone and AlarmClock.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/frameworks/base/api/current.xml#109 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/app/Activity.java#9 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/app/ActivityThread.java#6 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/app/ApplicationThreadNative.java#3 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/app/IApplicationThread.java#3 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/app/Instrumentation.java#3 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/content/Intent.java#12 edit
+... //branches/cupcake/android/frameworks/base/services/java/com/android/server/am/ActivityManagerService.java#11 edit
+... //branches/cupcake/android/packages/apps/AlarmClock/src/com/android/alarmclock/AlarmReceiver.java#4 edit
+... //branches/cupcake/android/packages/apps/Phone/src/com/android/phone/PhoneApp.java#6 edit
+
+--------
+
+Change 127385
+
+	marking bookmarks as untranslatable
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Browser/res/values/strings.xml#15 integrate
+
+--------
+
+Change 127387
+
+	Test case to make sure we don't reuse the "this" register in
+	instance methods.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/dalvik/dx/tests/110-dex-preserve-this/Blort.java#1 add
+... //branches/cupcake/android/dalvik/dx/tests/110-dex-preserve-this/expected.txt#1 add
+... //branches/cupcake/android/dalvik/dx/tests/110-dex-preserve-this/info.txt#1 add
+... //branches/cupcake/android/dalvik/dx/tests/110-dex-preserve-this/run#1 add
+
+--------
+
+Change 127392
+
+	update the 'update-audio.sh' script that is used to upload a new prebuilt version
+	of the QEMU audio sub-system for Linux.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/qemu/Makefile.android#10 integrate
+... //branches/cupcake/android/external/qemu/distrib/update-audio.sh#2 edit
+... //branches/cupcake/android/prebuilt/linux-x86/emulator/libqemu-audio.a#2 edit
+
+--------
+
+Change 127400
+
+	Fix the problem where the build would break looking for "@".
+	
+	built_ota_tools should have been a list of files, not a list
+	of commands to build those files.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/build/core/Makefile#15 edit
+
+--------
+
+Change 127406
+
+	Fix bug (Bottom/Menu portion of the screen is appearing black).  There were a bunch of issues with deciding when to show the IME window, and a big issue in the sample keyboard IME with when it was handing starting of input (it would only work if the keyboard view had been created).
+	
+
+Affected files ...
+
+... //branches/cupcake/android/development/samples/SoftKeyboard/src/com/example/android/softkeyboard/SoftKeyboard.java#6 edit
+... //branches/cupcake/android/frameworks/base/core/java/android/inputmethodservice/InputMethodService.java#21 edit
+
+--------
+
+Change 127412
+
+	   Fix timer subtraction when there is > 1 second difference.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/bluez/utils/audio/liba2dp.c#13 edit
+
+--------
+
+Change 127433
+
+	Fix Mac build of the emulator
+	
+
+Affected files ...
+
+... //branches/cupcake/android/external/qemu/Makefile.android#11 edit
+
+--------
+
+Change 127436
+
+	 Camera: Create a subclass of ImageView that can be used as a camera button.
+	+ Clients can register for notification when the button is pressed, optionally clicked,
+	and released.
+	     - note that you can press a button, then move your finger off of it before releasing,
+	       in which case ther would be a pressed and a released notification, but no clicked
+	       notification.
+	     - The reason we want to do this is so we can emulate the physical camera button, which
+	       has focus down, optional camera down-and-up, and focus up events.
+	+ The pressed, clicked, and released notifications are delivered in that order, both for
+	  touch presses and for trackball/dpad presses. (This was tricky because the UI
+	  framework delivers the underlying notifications in a different order for the two
+	  types of input.)
+	+ Use the new shutter button in the still-image camera. We don't yet need it in the
+	  video camera, but it could be used there as well.
+	
+
+Affected files ...
+
+... //branches/cupcake/android/packages/apps/Camera/res/layout/camera.xml#16 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/Camera.java#31 edit
+... //branches/cupcake/android/packages/apps/Camera/src/com/android/camera/ShutterButton.java#1 add
+
+--------
+
diff --git a/tools/atree/files.cpp b/tools/atree/files.cpp
index c675ab7..d4866d4 100644
--- a/tools/atree/files.cpp
+++ b/tools/atree/files.cpp
@@ -7,6 +7,8 @@
 #include <unistd.h>
 #include <dirent.h>
 #include <fnmatch.h>
+#include <string.h>
+#include <stdlib.h>
 
 static bool
 is_comment_line(const char* p)
diff --git a/tools/atree/fs.cpp b/tools/atree/fs.cpp
index 022bd8c..00f44c2 100644
--- a/tools/atree/fs.cpp
+++ b/tools/atree/fs.cpp
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <sys/stat.h>
 #include <unistd.h>
+#include <string.h>
 #include <host/CopyFile.h>
 
 using namespace std;
diff --git a/tools/droiddoc/src/ClassInfo.java b/tools/droiddoc/src/ClassInfo.java
index 8180436..5c61941 100644
--- a/tools/droiddoc/src/ClassInfo.java
+++ b/tools/droiddoc/src/ClassInfo.java
@@ -378,7 +378,7 @@
 
     public TagInfo[] deprecatedTags()
     {
-        // should we also do the interfaces?
+        // Should we also do the interfaces?
         return comment().deprecatedTags();
     }
 
diff --git a/tools/findleaves.sh b/tools/findleaves.sh
index 6e3aed0..74bfd24 100755
--- a/tools/findleaves.sh
+++ b/tools/findleaves.sh
@@ -86,7 +86,7 @@
 # Print out all files that match, as long as the path isn't explicitly
 # pruned. This will print out extraneous results from directories whose
 # parents have a match. These are filtered out by the awk script below.
-find "${@:1:$nargs-1}" $findargs -type f -name "$filename" -print |
+find -L "${@:1:$nargs-1}" $findargs -type f -name "$filename" -print 2>/dev/null |
 
 # Only pass along the directory of each match.
 sed -e 's/\/[^\/]*$/\//' |
diff --git a/tools/kcm/kcm.cpp b/tools/kcm/kcm.cpp
index 3e6320b..23ac377 100644
--- a/tools/kcm/kcm.cpp
+++ b/tools/kcm/kcm.cpp
@@ -198,7 +198,7 @@
         return 1;
     }
 
-    int out = open(outfilename, O_RDWR|O_CREAT|O_TRUNC, 0660);
+    int out = open(outfilename, O_RDWR|O_CREAT|O_TRUNC, 0664);
     if (out == -1) {
         fprintf(stderr, "kcm: error opening file for write: %s\n", outfilename);
         return 1;
