Merge change 25632 into eclair

* changes:
  Set default build ID to eclair (usually this is overridden).  Please do not merge.
diff --git a/cleanspec.mk b/cleanspec.mk
index cd2ce0d..ff06a56 100644
--- a/cleanspec.mk
+++ b/cleanspec.mk
@@ -81,6 +81,13 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/obj/target/common/obj/APPS/VoiceSearch_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/VoiceSearch_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libgps-rpc_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/pdsm_atl_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libgps_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/system/app/Launcher.apk)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 82c7dec..64b74e7 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -272,8 +272,10 @@
 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAVA_SOURCES := $(all_java_sources)
 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAVA_OBJECTS := $(patsubst %.java,%.class,$(LOCAL_SRC_FILES))
 ifeq ($(my_prefix),TARGET_)
+ifeq ($(LOCAL_SDK_VERSION),)
 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := -bootclasspath $(call java-lib-files,core)
 endif
+endif
 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS := $(extra_jar_args)
 $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR)
diff --git a/core/definitions.mk b/core/definitions.mk
index a16ce03..297e6b7 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -109,7 +109,14 @@
 
 # Figure out where we are.
 define my-dir
-$(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST),$(MAKEFILE_LIST))))
+$(strip \
+  $(eval md_file_ := $$(lastword $$(MAKEFILE_LIST))) \
+  $(if $(filter $(CLEAR_VARS),$(md_file_)), \
+    $(error LOCAL_PATH must be set before including $$(CLEAR_VARS)) \
+   , \
+    $(patsubst %/,%,$(dir $(md_file_))) \
+   ) \
+ )
 endef
 
 ###########################################################
diff --git a/target/product/generic.mk b/target/product/generic.mk
index dc48702..39f4950 100644
--- a/target/product/generic.mk
+++ b/target/product/generic.mk
@@ -9,6 +9,7 @@
     Calculator \
     Calendar \
     Camera \
+    CertInstaller \
     DrmProvider \
     Email \
     LatinIME \
diff --git a/tools/dexpreopt/Config.mk b/tools/dexpreopt/Config.mk
index c6639b2..443b8c9 100644
--- a/tools/dexpreopt/Config.mk
+++ b/tools/dexpreopt/Config.mk
@@ -77,6 +77,13 @@
     $(shell echo "$(p) $(PACKAGES.$(p).CERTIFICATE) $(PACKAGES.$(p).PRIVATE_KEY)" >> $(dexpreopt_package_certs_file)))
 endif
 
+# The kernel used for ARMv7 system images is different
+ifeq ($(TARGET_ARCH_VARIANT),armv7-a)
+BUILD_DEXPREOPT_KERNEL := prebuilt/android-arm/kernel/kernel-qemu-armv7
+else
+BUILD_DEXPREOPT_KERNEL := prebuilt/android-arm/kernel/kernel-qemu
+endif
+
 # Build an optimized image from the unoptimized image
 BUILT_DEXPREOPT_SYSTEMIMAGE := $(intermediates)/system.img
 $(BUILT_DEXPREOPT_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE_UNOPT)
@@ -99,7 +106,7 @@
 	$(hide) \
 	    PATH=$(HOST_OUT_EXECUTABLES):$$PATH \
 	    $(DEXPREOPT) \
-		    --kernel prebuilt/android-arm/kernel/kernel-qemu \
+		    --kernel $(BUILD_DEXPREOPT_KERNEL) \
 		    --ramdisk $(BUILT_DEXPREOPT_RAMDISK) \
 		    --image $(BUILT_SYSTEMIMAGE_UNOPT) \
 		    --system $(PRODUCT_OUT) \
diff --git a/tools/droiddoc/templates-sdk/devdoc-nav.cs b/tools/droiddoc/templates-sdk/devdoc-nav.cs
deleted file mode 100644
index a69c175..0000000
--- a/tools/droiddoc/templates-sdk/devdoc-nav.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-<ul>
-  <li><div><a href="<?cs var:toroot ?>index.html">Home</a></div></li>
-  <li><div><a href="<?cs var:toroot ?>what-is-android.html">What is Android?</a></div></li>
-  <li><div><a href="<?cs var:toroot ?>intro/index.html">Getting Started</a></div>
-    <ul>
-      <li><div><a href="<?cs var:toroot ?>intro/installing.html">Installing the SDK</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/upgrading.html">Upgrading the SDK</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/develop-and-debug.html">Developing/Debugging</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/hello-android.html">Hello Android</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/anatomy.html">Anatomy of an App</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/tutorial.html">Notepad Tutorial</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/tools.html">Development Tools</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/appmodel.html">Application Model</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>intro/lifecycle.html">Application Life Cycle</a></div></li>
-    </ul>
-  </li>
-  <li><div><div><a href="<?cs var:toroot ?>devel/index.html">Developing Applications</a></div>
-    <ul>
-      <li><div><a href="<?cs var:toroot ?>devel/implementing-ui.html">Implementing a UI</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>devel/building-blocks.html">Building Blocks</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>devel/data.html">Data Storage and Retrieval</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>devel/security.html">Security Model</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>devel/resources-i18n.html">Resources and i18n</a></div></li>
-    </ul>
-  </li>
-  <li><div><a href="<?cs var:toroot ?>toolbox/index.html">Developer Toolbox</a></div>
-    <ul>
-      <li><div><a href="<?cs var:toroot ?>toolbox/philosophy.html">Design Philosophy</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>toolbox/custom-components.html">Building Custom Components</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>toolbox/optional-apis.html">Optional APIs</a></div></li>
-    </ul>
-  </li>
-  <li><div><a href="<?cs var:toroot ?>samples/index.html">Sample Code</a></div>
-    <ul>
-      <li><div><a href="<?cs var:toroot ?>samples/ApiDemos/index.html">API Demos</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>samples/LunarLander/index.html">Lunar Lander</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>samples/NotePad/index.html">Note Pad</a></div></li>
-    </ul>
-  </li>
-  <li> <a href="<?cs var:toroot ?>reference/index.html"><strong>Reference Information</strong></a>
-    <ul>
-      <li><a href="<?cs var:toroot ?>reference/packages.html">Package Index</a></li>
-      <li><a href="<?cs var:toroot ?>reference/classes.html">Class Index</a></li>
-      <li><a href="<?cs var:toroot ?>reference/hierarchy.html">Class Hierarchy</a></li>
-      <li><a href="<?cs var:toroot ?>reference/view-gallery.html">List of Views</a></li>
-      <li><a href="<?cs var:toroot ?>reference/available-intents.html">List of Intents</a></li>
-      <li><a href="<?cs var:toroot ?>reference/android/Manifest.permission.html">List of Permissions</a></li>
-      <li><a href="<?cs var:toroot ?>reference/available-resources.html">List of Resource Types</a></li>
-      <li><a href="<?cs var:toroot ?>reference/aidl.html">Android IDL</a></li>
-      <li><a href="<?cs var:toroot ?>reference/glossary.html">Glossary</a></li>
-      <li><a href="<?cs var:toroot ?>reference/keywords.html">Index</a></li>
-    </ul>
-  </li>
-  <li><div><a href="<?cs var:toroot ?>kb/index.html">FAQs</a></div>
-    <ul>
-      <li><div><a href="<?cs var:toroot ?>kb/general.html">General</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>kb/commontasks.html">Common Tasks</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>kb/troubleshooting.html">Troubleshooting</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>kb/licensingandoss.html">Open Source Licensing</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>kb/framework.html">Application Framework</a></div></li>
-      <li><div><a href="<?cs var:toroot ?>kb/security.html">Security</a></div></li>
-    </ul>
-  </li>
-  <li><div><a href="<?cs var:toroot ?>roadmap.html">Roadmap</a></div></li>
-  <li><div><a href="<?cs var:toroot ?>goodies/index.html">Goodies</a></div></li>
-</ul>
\ No newline at end of file
diff --git a/tools/droiddoc/templates-sdk/header_tabs.cs b/tools/droiddoc/templates-sdk/header_tabs.cs
index 2a897cb..ad7f4a4 100644
--- a/tools/droiddoc/templates-sdk/header_tabs.cs
+++ b/tools/droiddoc/templates-sdk/header_tabs.cs
@@ -5,80 +5,84 @@
 	elif:home ?>home<?cs
 	elif:community ?>community<?cs
 	elif:videos ?>videos<?cs /if ?>">
-         
-	<li id="home-link"><a href="<?cs var:toroot ?><?cs if:android.whichdoc != "online" ?>offline.html<?cs else ?>index.html<?cs /if ?>">
-	<?cs if:!sdk.redirect ?>
+    
+ <?cs if:android.whichdoc == "online" ?>     
+	<li id="home-link"><a href="<?cs var:toroot ?>index.html">
+	 <?cs if:!sdk.redirect ?>
 		<span class="en">Home</span>
-		<span class="de">Startseite</span>
-		<span class="es"></span>
-		<span class="fr"></span>
-		<span class="it"></span>
-                <span class="ja">ホーム</span>
-		<span class="zh-CN">主页</span>
-		<span class="zh-TW">首頁</span>
-	<?cs /if ?>
+		<span style="display:none" class="de">Startseite</span>
+		<span style="display:none" class="es"></span>
+		<span style="display:none" class="fr"></span>
+		<span style="display:none" class="it"></span>
+    <span style="display:none" class="ja">ホーム</span>
+		<span style="display:none" class="zh-CN">主页</span>
+		<span style="display:none" class="zh-TW">首頁</span>
+	 <?cs /if ?>
 	</a></li>
-	<li id="sdk-link"><a href="<?cs var:toroot ?>sdk/<?cs var:sdk.current ?>/index.html">
+ <?cs /if ?> <?cs # end of "if online" ?>
+	<li id="sdk-link"><a href="<?cs var:toroot ?>sdk/<?cs 
+	                            if:android.whichdoc != "online" ?>offline-welcome.html<?cs 
+	                            else ?><?cs var:sdk.current ?>/index.html<?cs /if ?>">
 		<span class="en">SDK</span>
 	</a></li>
 	<li id="guide-link"><a href="<?cs var:toroot ?>guide/index.html" onClick="return loadLast('guide')">
 	<?cs if:!sdk.redirect ?>
 		<span class="en">Dev Guide</span>
-		<span class="de">Handbuch</span>
-		<span class="es">Guía</span>
-		<span class="fr">Guide</span>
-		<span class="it">Guida</span>
-                <span class="ja">開発ガイド</span>
-		<span class="zh-CN">开发人员指南</span>
-		<span class="zh-TW">開發指南</span>
+		<span style="display:none" class="de">Handbuch</span>
+		<span style="display:none" class="es">Guía</span>
+		<span style="display:none" class="fr">Guide</span>
+		<span style="display:none" class="it">Guida</span>
+    <span style="display:none" class="ja">開発ガイド</span>
+		<span style="display:none" class="zh-CN">开发人员指南</span>
+		<span style="display:none" class="zh-TW">開發指南</span>
 	<?cs /if ?>
 	</a></li>
 	<li id="reference-link"><a href="<?cs var:toroot ?>reference/packages.html" onClick="return loadLast('reference')">
 	<?cs if:!sdk.redirect ?>
 		<span class="en">Reference</span>
-		<span class="de">Referenz</span>
-		<span class="es">Referencia</span>
-		<span class="fr">Référence</span>
-		<span class="it">Riferimento</span>
-                <span class="ja">リファレンス</span>
-		<span class="zh-CN">参考</span>
-		<span class="zh-TW">參考資料</span>
+		<span style="display:none" class="de">Referenz</span>
+		<span style="display:none" class="es">Referencia</span>
+		<span style="display:none" class="fr">Référence</span>
+		<span style="display:none" class="it">Riferimento</span>
+    <span style="display:none" class="ja">リファレンス</span>
+		<span style="display:none" class="zh-CN">参考</span>
+		<span style="display:none" class="zh-TW">參考資料</span>
 	<?cs /if ?>
 	</a></li>
 	<li><a href="http://android-developers.blogspot.com" onClick="return requestAppendHL(this.href)">
 	<?cs if:!sdk.redirect ?>
 		<span class="en">Blog</span>
-		<span class="de"></span>
-		<span class="es"></span>
-		<span class="fr"></span>
-		<span class="it"></span>
-                <span class="ja">ブログ</span>
-		<span class="zh-CN">博客</span>
-		<span class="zh-TW">網誌</span>
+		<span style="display:none" class="de"></span>
+		<span style="display:none" class="es"></span>
+		<span style="display:none" class="fr"></span>
+		<span style="display:none" class="it"></span>
+    <span style="display:none" class="ja">ブログ</span>
+		<span style="display:none" class="zh-CN">博客</span>
+		<span style="display:none" class="zh-TW">網誌</span>
 	<?cs /if ?>
 	</a></li>
 	<li id="videos-link"><a href="<?cs var:toroot ?>videos/index.html" onClick="return loadLast('videos')">
 	<?cs if:!sdk.redirect ?>
 		<span class="en">Videos</span>
-		<span class="de"></span>
-		<span class="es"></span>
-		<span class="fr"></span>
-		<span class="it"></span>
-                <span class="ja">ビデオ</span>
-		<span class="zh-CN"></span>
-		<span class="zh-TW"></span>
+		<span style="display:none" class="de"></span>
+		<span style="display:none" class="es"></span>
+		<span style="display:none" class="fr"></span>
+		<span style="display:none" class="it"></span>
+    <span style="display:none" class="ja">ビデオ</span>
+		<span style="display:none" class="zh-CN"></span>
+		<span style="display:none" class="zh-TW"></span>
 	<?cs /if ?>
 	</a></li>
 	<li id="community-link"><a href="<?cs var:toroot ?>community/index.html">
 	<?cs if:!sdk.redirect ?>
 		<span class="en">Community</span>
-		<span class="de"></span>
-		<span class="es">Comunidad</span>
-		<span class="fr">Communauté</span>
-		<span class="it"></span>
-                <span class="ja">コミュニティ</span>
-		<span class="zh-CN">社区</span>
-		<span class="zh-TW">社群</span>
+		<span style="display:none" class="de"></span>
+		<span style="display:none" class="es">Comunidad</span>
+		<span style="display:none" class="fr">Communauté</span>
+		<span style="display:none" class="it"></span>
+    <span style="display:none" class="ja">コミュニティ</span>
+		<span style="display:none" class="zh-CN">社区</span>
+		<span style="display:none" class="zh-TW">社群</span>
 	<?cs /if ?>
 	</a></li>
      
diff --git a/tools/droiddoc/templates/assets/android-developer-docs.js b/tools/droiddoc/templates/assets/android-developer-docs.js
index b16ed0d..9ee6de0 100644
--- a/tools/droiddoc/templates/assets/android-developer-docs.js
+++ b/tools/droiddoc/templates/assets/android-developer-docs.js
@@ -50,7 +50,7 @@
   var lists = document.createElement("script");
   lists.setAttribute("type","text/javascript");
   lists.setAttribute("src", toRoot+"reference/lists.js");
-  $("head").append($(lists));
+  document.getElementsByTagName("head")[0].appendChild(lists);
 } );
 
 function setToRoot(root) {
diff --git a/tools/releasetools/amend_generator.py b/tools/releasetools/amend_generator.py
index 70e71d4..f8f4344 100644
--- a/tools/releasetools/amend_generator.py
+++ b/tools/releasetools/amend_generator.py
@@ -87,6 +87,10 @@
     'dur' seconds."""
     self.script.append("show_progress %f %d" % (frac, int(dur)))
 
+  def SetProgress(self, frac):
+    """Not implemented in amend."""
+    pass
+
   def PatchCheck(self, filename, *sha1):
     """Check that the given file (or MTD reference) has one of the
     given *sha1 hashes."""
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index e7a15cd..d1902e1 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -100,9 +100,16 @@
 
   def ShowProgress(self, frac, dur):
     """Update the progress bar, advancing it over 'frac' over the next
-    'dur' seconds."""
+    'dur' seconds.  'dur' may be zero to advance it via SetProgress
+    commands instead of by time."""
     self.script.append("show_progress(%f, %d);" % (frac, int(dur)))
 
+  def SetProgress(self, frac):
+    """Set the position of the progress bar within the chunk defined
+    by the most recent ShowProgress call.  'frac' should be in
+    [0,1]."""
+    self.script.append("set_progress(%f);" % (frac,))
+
   def PatchCheck(self, filename, *sha1):
     """Check that the given file (or MTD reference) has one of the
     given *sha1 hashes."""
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index fc6a4c6..fe63c3a 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -577,28 +577,27 @@
       os.path.join(OPTIONS.target_tmp, "RECOVERY")))
   updating_recovery = (source_recovery.data != target_recovery.data)
 
-  # We reserve the last 0.3 of the progress bar for the
-  # device-specific IncrementalOTA_InstallEnd() call at the end, which
-  # will typically install a radio image.
-  progress_bar_total = 0.7
-  if updating_boot:
-    progress_bar_total -= 0.1
+  # Here's how we divide up the progress bar:
+  #  0.1 for verifying the start state (PatchCheck calls)
+  #  0.8 for applying patches (ApplyPatch calls)
+  #  0.1 for unpacking verbatim files, symlinking, and doing the
+  #      device-specific commands.
 
   AppendAssertions(script, target_zip)
   device_specific.IncrementalOTA_Assertions()
 
   script.Print("Verifying current system...")
 
-  pb_verify = progress_bar_total * 0.3 * \
-              (total_patched_size /
-               float(total_patched_size+total_verbatim_size+1))
+  script.ShowProgress(0.1, 0)
+  total_verify_size = float(sum([i[2].size for i in patch_list]) + 1)
+  if updating_boot:
+    total_verify_size += source_boot.size
+  so_far = 0
 
-  for i, (fn, tf, sf, size) in enumerate(patch_list):
-    if i % 5 == 0:
-      next_sizes = sum([i[3] for i in patch_list[i:i+5]])
-      script.ShowProgress(next_sizes * pb_verify / (total_patched_size+1), 1)
-
+  for fn, tf, sf, size in patch_list:
     script.PatchCheck("/"+fn, tf.sha1, sf.sha1)
+    so_far += sf.size
+    script.SetProgress(so_far / total_verify_size)
 
   if updating_boot:
     d = Difference(target_boot, source_boot, "imgdiff")
@@ -610,6 +609,8 @@
     script.PatchCheck("MTD:boot:%d:%s:%d:%s" %
                       (source_boot.size, source_boot.sha1,
                        target_boot.size, target_boot.sha1))
+    so_far += source_boot.size
+    script.SetProgress(so_far / total_verify_size)
 
   if patch_list or updating_recovery or updating_boot:
     script.CacheFreeSpaceCheck(largest_source_size)
@@ -630,6 +631,19 @@
                             if i not in target_data] +
                      ["/system/recovery.img"])
 
+  script.ShowProgress(0.8, 0)
+  total_patch_size = float(sum([i[1].size for i in patch_list]) + 1)
+  if updating_boot:
+    total_patch_size += target_boot.size
+  so_far = 0
+
+  script.Print("Patching system files...")
+  for fn, tf, sf, size in patch_list:
+    script.ApplyPatch("/"+fn, "-", tf.size, tf.sha1,
+                      sf.sha1, "/tmp/patchtmp/"+fn+".p")
+    so_far += tf.size
+    script.SetProgress(so_far / total_patch_size)
+
   if updating_boot:
     # Produce the boot image by applying a patch to the current
     # contents of the boot partition, and write it back to the
@@ -641,6 +655,8 @@
                       "-",
                       target_boot.size, target_boot.sha1,
                       source_boot.sha1, "/tmp/patchtmp/boot.img.p")
+    so_far += target_boot.size
+    script.SetProgress(so_far / total_patch_size)
     print "boot image changed; including."
   else:
     print "boot image unchanged; skipping."
@@ -663,16 +679,7 @@
   else:
     print "recovery image unchanged; skipping."
 
-  script.Print("Patching system files...")
-  pb_apply = progress_bar_total * 0.7 * \
-             (total_patched_size /
-              float(total_patched_size+total_verbatim_size+1))
-  for i, (fn, tf, sf, size) in enumerate(patch_list):
-    if i % 5 == 0:
-      next_sizes = sum([i[3] for i in patch_list[i:i+5]])
-      script.ShowProgress(next_sizes * pb_apply / (total_patched_size+1), 1)
-    script.ApplyPatch("/"+fn, "-", tf.size, tf.sha1,
-                      sf.sha1, "/tmp/patchtmp/"+fn+".p")
+  script.ShowProgress(0.1, 10)
 
   target_symlinks = CopySystemFiles(target_zip, None)
 
@@ -700,10 +707,6 @@
   script.DeleteFiles(to_delete)
 
   if verbatim_targets:
-    pb_verbatim = progress_bar_total * \
-                  (total_verbatim_size /
-                   float(total_patched_size+total_verbatim_size+1))
-    script.ShowProgress(pb_verbatim, 5)
     script.Print("Unpacking new files...")
     script.UnpackPackageDir("system", "/system")
 
@@ -726,8 +729,7 @@
   # permissions.
   script.AppendScript(temp_script)
 
-  # Write the radio image, if necessary.
-  script.ShowProgress(0.3, 10)
+  # Do device-specific installation (eg, write radio image).
   device_specific.IncrementalOTA_InstallEnd()
 
   if OPTIONS.extra_script is not None: