Merge commit 'korg/cupcake'
diff --git a/cleanspec.mk b/cleanspec.mk
index ab1e5f1..22d9fe1 100644
--- a/cleanspec.mk
+++ b/cleanspec.mk
@@ -70,6 +70,11 @@
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/share)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libwebcore_intermediates)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/PinyinIME_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.inputmethod.pinyin.lib_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/PinyinIMEGoogleService_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.inputmethod.pinyin.lib_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/PinyinIMEGoogleService_intermediates)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/core/Makefile b/core/Makefile
index 9ba117a..3f452b3 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -79,6 +79,22 @@
   $(error BUILD_FINGERPRINT cannot contain spaces: "$(BUILD_FINGERPRINT)")
 endif
 
+# Display parameters shown under Settings -> About Phone
+ifeq ($(TARGET_BUILD_VARIANT),user)
+  # User builds should show:
+  # release build number or branch.buld_number non-release builds
+
+  # Dev. branches should have DISPLAY_BUILD_NUMBER set
+  ifeq "true" "$(DISPLAY_BUILD_NUMBER)"
+    BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)
+  else
+    BUILD_DISPLAY_ID := $(BUILD_ID)
+  endif
+else
+  # Non-user builds should show detailed build information
+  BUILD_DISPLAY_ID := $(build_desc)
+endif
+
 # Selects the first locale in the list given as the argument,
 # and splits it into language and region, which each may be
 # empty.
diff --git a/core/build_id.mk b/core/build_id.mk
old mode 100755
new mode 100644
index 03af5f5..cb18bc4
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -1,3 +1,32 @@
-# This branch was born out of a naming conventions fix.
-# The decision was to keep the RC names the same.
-export BUILD_ID=CRA71C
+#
+# Copyright (C) 2008 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Defines branch-specific values.
+#
+
+# BUILD_ID is usually used to specify the branch name
+# (like "MAIN") or a branch name and a release candidate
+# (like "TC1-RC5").  It must be a single word, and is
+# capitalized by convention.
+#
+BUILD_ID := CUPCAKE
+
+# DISPLAY_BUILD_NUMBER should only be set for development branches,
+# If set, the BUILD_NUMBER (cl) is appended to the BUILD_ID for
+# a more descriptive BUILD_ID_DISPLAY, otherwise BUILD_ID_DISPLAY
+# is the same as BUILD_ID
+DISPLAY_BUILD_NUMBER := true
diff --git a/core/cleanbuild.mk b/core/cleanbuild.mk
index 50b56f9..a753554 100644
--- a/core/cleanbuild.mk
+++ b/core/cleanbuild.mk
@@ -169,11 +169,13 @@
 	./$(PRODUCT_OUT)/*.xlb \
 	./$(PRODUCT_OUT)/*.zip \
 	./$(PRODUCT_OUT)/data \
+	./$(PRODUCT_OUT)/obj/lib \
 	./$(PRODUCT_OUT)/obj/APPS \
 	./$(PRODUCT_OUT)/obj/NOTICE_FILES \
 	./$(PRODUCT_OUT)/obj/PACKAGING \
 	./$(PRODUCT_OUT)/recovery \
 	./$(PRODUCT_OUT)/root \
+	./$(PRODUCT_OUT)/symbols/system/lib \
 	./$(PRODUCT_OUT)/system
 
 # The files/dirs to delete during a dataclean, which removes any files
diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk
index 10027b8..f07cf2a 100644
--- a/core/dynamic_binary.mk
+++ b/core/dynamic_binary.mk
@@ -18,7 +18,15 @@
 endif
 
 # The name of the target file, without any path prepended.
-LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
+# TODO: This duplicates logic from base_rules.mk because we need to
+#       know its results before base_rules.mk is included.
+#       Consolidate the duplicates.
+LOCAL_MODULE_STEM := $(strip $(LOCAL_MODULE_STEM))
+ifeq ($(LOCAL_MODULE_STEM),)
+  LOCAL_MODULE_STEM := $(LOCAL_MODULE)
+endif
+LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
+LOCAL_BUILT_MODULE_STEM := $(LOCAL_INSTALLED_MODULE_STEM)
 
 # base_rules.make defines $(intermediates), but we need its value
 # before we include base_rules.  Make a guess, and verify that
diff --git a/core/java.mk b/core/java.mk
index 65c525d..b1ded8a 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -72,33 +72,38 @@
 LOCAL_NO_EMMA_COMPILE := true
 endif
 
+# Choose leaf name for the compiled jar file.
 ifneq ($(LOCAL_NO_EMMA_COMPILE),true) 
-# If you instrument class files that have local variable debug information in
-# them emma does not correctly maintain the local variable table.
-# This will cause an error when you try to convert the class files for Android.
-# The workaround for this to compile the java classes with only
-# line and source debug information, not local information.
-full_classes_compiled_name_jar := classes-no-debug-var.jar
-$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g:{lines,source}
+full_classes_compiled_jar_leaf := classes-no-debug-var.jar
 else
-# when emma is off, compile with the default flags, which contain full debug 
-# info
-full_classes_compiled_name_jar := classes-full-debug.jar
-$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g
+full_classes_compiled_jar_leaf := classes-full-debug.jar
 endif
 
 # Compile the java files to a .jar file.
 # This intentionally depends on java_sources, not all_java_sources.
 # Deps for generated source files must be handled separately,
 # via deps on the target that generates the sources.
-full_classes_compiled_jar := $(intermediates.COMMON)/$(full_classes_compiled_name_jar)
+full_classes_compiled_jar := $(intermediates.COMMON)/$(full_classes_compiled_jar_leaf)
 $(full_classes_compiled_jar): $(java_sources) $(full_java_lib_deps)
 	$(transform-java-to-classes.jar)
 
+ifneq ($(LOCAL_NO_EMMA_COMPILE),true) 
+# If you instrument class files that have local variable debug information in
+# them emma does not correctly maintain the local variable table.
+# This will cause an error when you try to convert the class files for Android.
+# The workaround for this to compile the java classes with only
+# line and source debug information, not local information.
+$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g:{lines,source}
+else
+# when emma is off, compile with the default flags, which contain full debug 
+# info
+$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g
+endif
+
 emma_intermediates_dir := $(intermediates.COMMON)/emma_out
-# the 'lib/$(full_classes_compiled_name_jar)' portion of this path is fixed in 
+# the 'lib/$(full_classes_compiled_jar_leaf)' portion of this path is fixed in 
 # the emma tool
-full_classes_emma_jar := $(emma_intermediates_dir)/lib/$(full_classes_compiled_name_jar)
+full_classes_emma_jar := $(emma_intermediates_dir)/lib/$(full_classes_compiled_jar_leaf)
 
 ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
 # Skip adding emma instrumentation to class files if this is a static library,
diff --git a/core/prelink-linux-arm.map b/core/prelink-linux-arm.map
index 2d1da06..c32566f 100644
--- a/core/prelink-linux-arm.map
+++ b/core/prelink-linux-arm.map
@@ -39,7 +39,7 @@
 
 # core dalvik runtime support
 libandroid_servers.so   0xAD900000
-libicudata.so           0xAD600000
+#libicudata.so           0xAD600000
 libicuuc.so             0xAD500000
 libicui18n.so           0xAD400000
 libandroid_runtime.so   0xAD300000
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index e38a803..578d779 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -72,13 +72,3 @@
   BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S)
 endif
 
-ifeq "true" "$(DISPLAY_BUILD_NUMBER)"
-  # if the build_id.mk has this defined, then BUILD_ID is updated with
-  # the BUILD_NUMBER as well.  For development branches, this will be 
-  # set, but release branches this will not be set.
-  BUILD_DISPLAY_ID := "$(BUILD_ID).$(BUILD_NUMBER)"
-else
-  BUILD_DISPLAY_ID := "$(BUILD_ID)"
-endif
-
-
diff --git a/target/product/core.mk b/target/product/core.mk
index 83e2b3a..d79b1e1 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -9,7 +9,7 @@
     framework-res \
     Browser \
     Contacts \
-    Home \
+    Launcher \
     HTMLViewer \
     Phone \
     ContactsProvider \
@@ -22,6 +22,3 @@
     PackageInstaller \
     Bugreport
 
-#include basic ringtones
-include frameworks/base/data/sounds/OriginalAudio.mk
-
diff --git a/target/product/generic.mk b/target/product/generic.mk
index e32e657..b9bc070 100644
--- a/target/product/generic.mk
+++ b/target/product/generic.mk
@@ -9,7 +9,6 @@
     Camera \
     DrmProvider \
     LatinIME \
-    Launcher \
     Mms \
     Music \
     Settings \
diff --git a/tools/droiddoc/NOTICE b/tools/droiddoc/NOTICE
new file mode 100644
index 0000000..3f1b1bb
--- /dev/null
+++ b/tools/droiddoc/NOTICE
@@ -0,0 +1,45 @@
+
+Copyright (C) 2008 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+======================================================================
+
+jQuery 1.2.6 - New Wave Javascript
+
+Copyright (c) 2008 John Resig (jquery.com)
+Dual licensed under the MIT (MIT-LICENSE.txt)
+and GPL (GPL-LICENSE.txt) licenses.
+
+Copyright (c) 2009 John Resig, http://jquery.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/tools/droiddoc/src/ClassInfo.java b/tools/droiddoc/src/ClassInfo.java
index 2a792c5..f397a83 100644
--- a/tools/droiddoc/src/ClassInfo.java
+++ b/tools/droiddoc/src/ClassInfo.java
@@ -1185,7 +1185,7 @@
         ClassInfo cl = this;
         while (cl != null) {
             PackageInfo pkg = cl.containingPackage();
-            if (pkg.isHidden()) {
+            if (pkg != null && pkg.isHidden()) {
                 return true;
             }
             if (cl.comment().isHidden()) {
diff --git a/tools/soslim/soslim.c b/tools/soslim/soslim.c
index 4e59c24..d32e247 100644
--- a/tools/soslim/soslim.c
+++ b/tools/soslim/soslim.c
@@ -236,7 +236,7 @@
           {
             /* Mark the symbol table's string table for removal. */
             INFO("Section [%s] (static symbol-string table) will be stripped from image.\n",
-                 shdr_info[cnt].name);
+                 shdr_info[shdr_info[cnt].shdr.sh_link].name);
             shdr_info[shdr_info[cnt].shdr.sh_link].idx = 0;
           }
           else {