I have found in the JB4.3_1.1.0 GA documentation; specifically the FAQ:
How do I customize the update script to update uboot?
Because Android only upgrades the boot.img, system.img, and recovery partitions, the automatically generated update
package does not support upgrading bootloader. If you need to upgrade the bootloader, you need to modify the update
package and perform the signing work manually.
1. Unzip the update.zip, and then modify the updater_script by implementing the following operations.
To upgrade uboot to NOR flash, refer to this script:
To upgrade uboot for eMMC storage, because u-boot may be stored in the "boot partition" of eMMC, you need to
perform some system file operations before dd, for example,
# Write u-boot to 1K position.
# u-boot binary should be a no padding uboot!
# For eMMC(iNand) device, needs to unlock boot partition.
simple_dd("/tmp/u-boot-no-padding.bin", "/dev/block/mmcblk0", 1024);
2. Resign the update package by using the following command:
$ make_update_zip.sh ~/mydroid ~/update-dir
I have found this script at /device/asus/grouper/releasetools.py
# Copyright (C) 2012 The Android Open Source 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
# 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.
"""Emit extra commands needed for Group during OTA installation
(installing the bootloader)."""
bootloader_bin = info.input_zip.read("RADIO/bootloader.raw")
print "no bootloader.raw in target_files; skipping install"
target_bootloader_bin = info.target_zip.read("RADIO/bootloader.raw")
source_bootloader_bin = info.source_zip.read("RADIO/bootloader.raw")
source_bootloader_bin = None
if source_bootloader_bin == target_bootloader_bin:
print "bootloader unchanged; skipping"
print "no bootloader.raw in target target_files; skipping install"
def WriteBootloader(info, bootloader_bin):
common.ZipWriteStr(info.output_zip, "bootloader.raw", bootloader_bin)
fstab = info.info_dict["fstab"]
info.script.AppendExtra('''package_extract_file("bootloader.raw", "%s");''' %
It contains some instructions that add the bootloader image to OTA package.
As far as I understand this script is used by release tools due to TARGET_RELEASETOOLS_EXTENSIONS variable set in /device/asus/grouper/BoardConfig.mk. I understand this is for a whole different device, but do I have to do something similar to this for the IMX6Q, or do I add the script from the IMX6 documentation to the updater-script? I am really not sure.