From cec66044d25574b8a49c7f257f4534970e570407 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Tue, 18 Dec 2012 10:40:19 +0700 Subject: aries-common: use releasetools extensions releasetools extensions is an AOSP-supported method of extending releasetools which is better than duplicating the way we have now. Change-Id: I7d81b2713226f89e93df983c3e365415ae6e9f8f --- releasetools.py | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 releasetools.py (limited to 'releasetools.py') diff --git a/releasetools.py b/releasetools.py new file mode 100644 index 0000000..76721e0 --- /dev/null +++ b/releasetools.py @@ -0,0 +1,74 @@ +# Copyright (C) 2012 The Android Open Source Project +# Copyright (C) 2012 The CyanogenMod 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. + +"""Custom OTA commands for aries""" + +import common +import os +import shutil + +LOCAL_DIR = os.path.dirname(os.path.abspath(__file__)) +TARGET_DIR = os.getenv('OUT') +UTILITIES_DIR = os.path.join(TARGET_DIR, 'utilities') + +def FullOTA_Assertions(info): + info.output_zip.write(os.path.join(TARGET_DIR, "modem.bin"), "modem.bin") + info.output_zip.write(os.path.join(TARGET_DIR, "updater.sh"), "updater.sh") + info.output_zip.write(os.path.join(UTILITIES_DIR, "make_ext4fs"), "make_ext4fs") + info.output_zip.write(os.path.join(UTILITIES_DIR, "busybox"), "busybox") + info.output_zip.write(os.path.join(UTILITIES_DIR, "flash_image"), "flash_image") + info.output_zip.write(os.path.join(UTILITIES_DIR, "erase_image"), "erase_image") + info.output_zip.write(os.path.join(UTILITIES_DIR, "bml_over_mtd"), "bml_over_mtd") + info.output_zip.write(os.path.join(LOCAL_DIR, "bml_over_mtd.sh"), "bml_over_mtd.sh") + + info.script.AppendExtra( + ('package_extract_file("modem.bin", "/tmp/modem.bin");\n' + 'set_perm(0, 0, 0777, "/tmp/modem.bin");')) + info.script.AppendExtra( + ('package_extract_file("updater.sh", "/tmp/updater.sh");\n' + 'set_perm(0, 0, 0777, "/tmp/updater.sh");')) + info.script.AppendExtra( + ('package_extract_file("make_ext4fs", "/tmp/make_ext4fs");\n' + 'set_perm(0, 0, 0777, "/tmp/make_ext4fs");')) + info.script.AppendExtra( + ('package_extract_file("busybox", "/tmp/busybox");\n' + 'set_perm(0, 0, 0777, "/tmp/busybox");')) + info.script.AppendExtra( + ('package_extract_file("flash_image", "/tmp/flash_image");\n' + 'set_perm(0, 0, 0777, "/tmp/flash_image");')) + info.script.AppendExtra( + ('package_extract_file("erase_image", "/tmp/erase_image");\n' + 'set_perm(0, 0, 0777, "/tmp/erase_image");')) + info.script.AppendExtra( + ('package_extract_file("bml_over_mtd", "/tmp/bml_over_mtd");\n' + 'set_perm(0, 0, 0777, "/tmp/bml_over_mtd");')) + info.script.AppendExtra( + ('package_extract_file("bml_over_mtd.sh", "/tmp/bml_over_mtd.sh");\n' + 'set_perm(0, 0, 0777, "/tmp/bml_over_mtd.sh");')) + + info.script.AppendExtra('package_extract_file("boot.img", "/tmp/boot.img");') + info.script.AppendExtra('assert(run_program("/tmp/updater.sh") == 0);') + + # Make common releasetools copy boot.img verbatim + kernel_path = os.path.join(info.input_tmp, "BOOT", "kernel") + prebuilt_dir = os.path.join(info.input_tmp, "BOOTABLE_IMAGES") + prebuilt_path = os.path.join(prebuilt_dir, "boot.img") + os.mkdir(prebuilt_dir) + shutil.copyfile(kernel_path, prebuilt_path) + + +def FullOTA_InstallEnd(info): + # Remove writing boot.img from script (we do it in updater.sh) + info.script.script = [cmd for cmd in info.script.script if not "write_raw_image" in cmd] -- cgit v1.1