Reconcile with ics-factoryrom-2-release

Change-Id: I2059be2fb54d852023cb4e4b96493ff6a934ffe0
diff --git a/core/build_id.mk b/core/build_id.mk
index 13e2b7d..6da16e0 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -1,4 +1,3 @@
-
 #
 # Copyright (C) 2008 The Android Open Source Project
 #
@@ -14,9 +13,20 @@
 # 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 "CRB01").  It must be a single word, and is
+# (like "TC1-RC5").  It must be a single word, and is
 # capitalized by convention.
+#
+BUILD_ID := ICS_MR0
 
-export BUILD_ID=ITL41D
+# 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/tasks/cts.mk b/core/tasks/cts.mk
index af20da8..fcdd987 100644
--- a/core/tasks/cts.mk
+++ b/core/tasks/cts.mk
@@ -17,14 +17,6 @@
 
 cts_name := android-cts
 
-CTS_EXECUTABLE := startcts
-ifeq ($(HOST_OS),windows)
-    CTS_EXECUTABLE_PATH := $(cts_tools_src_dir)/host/etc/cts.bat
-else
-    CTS_EXECUTABLE_PATH := $(cts_tools_src_dir)/utils/$(CTS_EXECUTABLE)
-endif
-CTS_HOST_JAR := $(HOST_OUT_JAVA_LIBRARIES)/cts.jar
-
 DDMLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/ddmlib-prebuilt.jar
 junit_host_jar := $(HOST_OUT_JAVA_LIBRARIES)/junit.jar
 HOSTTESTLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/hosttestlib.jar
@@ -59,13 +51,10 @@
 	$(hide) mkdir -p $(PRIVATE_DIR)/repository/testcases
 	$(hide) mkdir -p $(PRIVATE_DIR)/repository/plans
 # Copy executable and JARs to CTS directory
-	$(hide) $(ACP) -fp $(CTS_HOST_JAR) $(CTS_EXECUTABLE_PATH) $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools
+	$(hide) $(ACP) -fp $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools
 # Change mode of the executables
-	$(hide) chmod ug+rwX $(PRIVATE_DIR)/tools/$(notdir $(CTS_EXECUTABLE_PATH))
 	$(foreach apk,$(CTS_CASE_LIST), \
 			$(call copy-testcase-apk,$(apk)))
-# Copy CTS host config to CTS directory
-	$(hide) $(ACP) -fp $(cts_tools_src_dir)/utils/host_config.xml $(PRIVATE_DIR)/repository/
 	$(hide) touch $@
 
 # Generate the test descriptions for the core-tests
diff --git a/tools/releasetools/check_target_files_signatures b/tools/releasetools/check_target_files_signatures
index 4e83129..ae372ba 100755
--- a/tools/releasetools/check_target_files_signatures
+++ b/tools/releasetools/check_target_files_signatures
@@ -187,15 +187,15 @@
 class APK(object):
   def __init__(self, full_filename, filename):
     self.filename = filename
-    self.certs = set()
     Push(filename+":")
     try:
-      self.RecordCert(full_filename)
+      self.RecordCerts(full_filename)
       self.ReadManifest(full_filename)
     finally:
       Pop()
 
-  def RecordCert(self, full_filename):
+  def RecordCerts(self, full_filename):
+    out = set()
     try:
       f = open(full_filename)
       apk = zipfile.ZipFile(f, "r")
@@ -205,12 +205,13 @@
            (info.filename.endswith(".DSA") or info.filename.endswith(".RSA")):
           pkcs7 = apk.read(info.filename)
           cert = CertFromPKCS7(pkcs7, info.filename)
-          self.certs.add(cert)
+          out.add(cert)
           ALL_CERTS.Add(cert)
       if not pkcs7:
         AddProblem("no signature")
     finally:
       f.close()
+      self.certs = frozenset(out)
 
   def ReadManifest(self, full_filename):
     p = common.Run(["aapt", "dump", "xmltree", full_filename,
@@ -347,8 +348,8 @@
     for i in all:
       if i in self.apks:
         if i in other.apks:
-          # in both; should have at least one cert in common
-          if not (self.apks[i].cert & other.apks[i].cert):
+          # in both; should have same set of certs
+          if self.apks[i].certs != other.apks[i].certs:
             by_certpair.setdefault((other.apks[i].certs,
                                     self.apks[i].certs), []).append(i)
         else: