don't require some OTA features

Make the following things optional:
 - kernel command lines for bootable images
 - radio images
 - bootloader assertions
These are not all (yet?) defined for some new devices.
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index 1ac035a..307ca4f 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -310,13 +310,11 @@
 
   info = input_zip.read("OTA/android-info.txt")
   m = re.search(r"require\s+version-bootloader\s*=\s*(\S+)", info)
-  if not m:
-    raise ExternalError("failed to find required bootloaders in "
-                        "android-info.txt")
-  bootloaders = m.group(1).split("|")
-  script.append("assert " +
-                " || ".join(['getprop("ro.bootloader") == "%s"' % (b,)
-                             for b in bootloaders]))
+  if m:
+    bootloaders = m.group(1).split("|")
+    script.append("assert " +
+                  " || ".join(['getprop("ro.bootloader") == "%s"' % (b,)
+                               for b in bootloaders]))
 
 
 def IncludeBinary(name, input_zip, output_zip, input_path=None):
@@ -343,8 +341,12 @@
   script.append("format BOOT:")
   script.append("show_progress 0.1 0")
 
-  common.ZipWriteStr(output_zip, "radio.img", input_zip.read("RADIO/image"))
-  script.append("write_radio_image PACKAGE:radio.img")
+  try:
+    common.ZipWriteStr(output_zip, "radio.img", input_zip.read("RADIO/image"))
+    script.append("write_radio_image PACKAGE:radio.img")
+  except KeyError:
+    pass
+
   script.append("show_progress 0.5 0")
 
   if OPTIONS.wipe_user_data: