diff --git a/Android.mk b/Android.mk index ca3655d..1b3273b 100644 --- a/Android.mk +++ b/Android.mk @@ -17,33 +17,6 @@ ifneq ($(filter osprey,$(TARGET_DEVICE)),) LOCAL_PATH := $(call my-dir) -FIRMWARE_MBA_IMAGES := \ - mba.mbn.gz - -FIRMWARE_MBA_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_MBA_IMAGES))) -$(FIRMWARE_MBA_SYMLINKS): $(LOCAL_INSTALLED_MODULE) - @echo "MBA Firmware link: $@" - @mkdir -p $(dir $@) - @rm -rf $@ - $(hide) ln -sf /firmware/image/$(notdir $@) $@ - -ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MBA_SYMLINKS) - -FIRMWARE_MODEM_IMAGES := \ - modem.b00.gz modem.b01.gz modem.b02.gz modem.b03.gz modem.b04.gz modem.b05.gz \ - modem.b06.gz modem.b07.gz modem.b08.gz modem.b10.gz modem.b11.gz modem.b14.gz \ - modem.b15.gz modem.b16.gz modem.b17.gz modem.b18.gz modem.b19.gz modem.b20.gz \ - modem.b23.gz modem.b24.gz modem.b25.gz modem.b27.gz modem.b28.gz modem.mdt.gz - -FIRMWARE_MODEM_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_MODEM_IMAGES))) -$(FIRMWARE_MODEM_SYMLINKS): $(LOCAL_INSTALLED_MODULE) - @echo "Modem Firmware link: $@" - @mkdir -p $(dir $@) - @rm -rf $@ - $(hide) ln -sf /firmware/image/$(notdir $@) $@ - -ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MODEM_SYMLINKS) - include $(call all-makefiles-under,$(LOCAL_PATH)) endif diff --git a/configs/extract_firmware.sh b/configs/extract_firmware.sh new file mode 100644 index 0000000..62e2cce --- /dev/null +++ b/configs/extract_firmware.sh @@ -0,0 +1,7 @@ +#!/sbin/sh + +for file in /firmware/image/*.gz; do + OUT_FILE=$(basename $file .gz) + gzip -dc $file > /system/etc/firmware/$OUT_FILE + chmod 644 /system/etc/firmware/$OUT_FILE +done diff --git a/device.mk b/device.mk index d364cc7..d3c3c6b 100644 --- a/device.mk +++ b/device.mk @@ -29,6 +29,10 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/apns-conf-vmob.xml:system/etc/apns-conf-vmob.xml \ $(LOCAL_PATH)/configs/apns-conf-usc.xml:system/etc/apns-conf-usc.xml +# Firmware Extraction +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/extract_firmware.sh:install/bin/extract_firmware.sh + # Media PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/media_codecs.xml:system/etc/media_codecs.xml \ diff --git a/releasetools.py b/releasetools.py index c2570b1..bd2155f 100644 --- a/releasetools.py +++ b/releasetools.py @@ -21,6 +21,16 @@ def IncrementalOTA_InstallEnd(info): def FullOTA_InstallEnd(info): ReplaceApnList(info) + ExtractFirmwares(info) + +def ExtractFirmwares(info): + info.script.Mount("/system") + info.script.AppendExtra('mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/modem", "/firmware", "");') + info.script.AppendExtra('ui_print("Extracting modem firmware");') + info.script.AppendExtra('run_program("/sbin/sh", "/tmp/install/bin/extract_firmware.sh");') + info.script.AppendExtra('ui_print("Firmware extracted");') + info.script.AppendExtra('unmount("/firmware");') + info.script.Unmount("/system") def ReplaceApnList(info): info.script.AppendExtra('if getprop("ro.boot.hardware.sku") == "XT1548" then')