Home | History | Annotate | Download | only in grouper
      1 # Copyright (C) 2012 The Android Open Source Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #      http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 """Emit extra commands needed for Group during OTA installation
     16 (installing the bootloader)."""
     17 
     18 import common
     19 
     20 def FullOTA_InstallEnd(info):
     21   try:
     22     bootloader_bin = info.input_zip.read("RADIO/bootloader.raw")
     23   except KeyError:
     24     print "no bootloader.raw in target_files; skipping install"
     25   else:
     26     WriteBootloader(info, bootloader_bin)
     27 
     28 
     29 def IncrementalOTA_InstallEnd(info):
     30   try:
     31     target_bootloader_bin = info.target_zip.read("RADIO/bootloader.raw")
     32     try:
     33       source_bootloader_bin = info.source_zip.read("RADIO/bootloader.raw")
     34     except KeyError:
     35       source_bootloader_bin = None
     36 
     37     if source_bootloader_bin == target_bootloader_bin:
     38       print "bootloader unchanged; skipping"
     39     else:
     40       WriteBootloader(info, target_bootloader_bin)
     41   except KeyError:
     42     print "no bootloader.raw in target target_files; skipping install"
     43 
     44 
     45 def WriteBootloader(info, bootloader_bin):
     46   common.ZipWriteStr(info.output_zip, "bootloader.raw", bootloader_bin)
     47   fstab = info.info_dict["fstab"]
     48 
     49   info.script.Print("Writing bootloader...")
     50 
     51   info.script.AppendExtra('''package_extract_file("bootloader.raw", "%s");''' %
     52                           (fstab["/staging"].device,))
     53