From 59eb184cd46df4f795b867be97c6474dd3036d79 Mon Sep 17 00:00:00 2001 From: Tim Zimmermann Date: Sat, 6 Nov 2021 16:03:29 +0000 Subject: [PATCH] sdm710-common: Flash dummy super image if needed * Needed because stock does not use dynamic partitions so there's no existing metadata that could be used Change-Id: Icbc828389465f3d4681ca8e4c3adec782540752e --- AndroidBoard.mk | 19 +++++++++++++++++++ configs/flash_super_dummy.sh | 20 ++++++++++++++++++++ releasetools.py | 17 ++++++++++++----- sdm710.mk | 3 +++ 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 AndroidBoard.mk create mode 100644 configs/flash_super_dummy.sh diff --git a/AndroidBoard.mk b/AndroidBoard.mk new file mode 100644 index 0000000..c1f9449 --- /dev/null +++ b/AndroidBoard.mk @@ -0,0 +1,19 @@ +# +# Copyright (C) 2021 The LineageOS Project +# +# SPDX-License-Identifier: Apache-2.0 +# + +LPFLASH := $(HOST_OUT_EXECUTABLES)/lpflash$(HOST_EXECUTABLE_SUFFIX) +INSTALLED_SUPERIMAGE_DUMMY_TARGET := $(PRODUCT_OUT)/super_dummy.img + +$(INSTALLED_SUPERIMAGE_DUMMY_TARGET): $(PRODUCT_OUT)/super_empty.img $(LPFLASH) + $(call pretty,"Target dummy super image: $@") + $(hide) touch $@ + $(hide) echo $(CURDIR) + $(hide) $(LPFLASH) $(CURDIR)/$@ $(CURDIR)/$(PRODUCT_OUT)/super_empty.img + +.PHONY: super_dummyimage +super_dummyimage: $(INSTALLED_SUPERIMAGE_DUMMY_TARGET) + +INSTALLED_RADIOIMAGE_TARGET += $(INSTALLED_SUPERIMAGE_DUMMY_TARGET) diff --git a/configs/flash_super_dummy.sh b/configs/flash_super_dummy.sh new file mode 100644 index 0000000..7a13488 --- /dev/null +++ b/configs/flash_super_dummy.sh @@ -0,0 +1,20 @@ +#!/system/bin/sh +# +# Copyright (C) 2021 The LineageOS Project +# +# SPDX-License-Identifier: Apache-2.0 +# + +SUPER="/dev/block/by-name/system" + +mkdir /tmp/super-mnt + +mount $SUPER /tmp/super-mnt 2>/dev/null + +if [ "$?" = "0" ]; then + echo "Detected stock /system in super partition, flashing super_dummy.img!" + umount /tmp/super-mnt + dd if=/tmp/super_dummy.img of=$SUPER +fi + +rmdir /tmp/super-mnt diff --git a/releasetools.py b/releasetools.py index 36aa881..f5db020 100644 --- a/releasetools.py +++ b/releasetools.py @@ -57,14 +57,21 @@ def OTA_UpdateFirmware(info): info.script.AppendExtra('package_extract_file("install/firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xblbak");') info.script.AppendExtra('package_extract_file("install/firmware-update/NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem");') -def AddImage(info, basename, dest): +def AddImage(info, dir, basename, dest): name = basename - data = info.input_zip.read("IMAGES/" + basename) + data = info.input_zip.read(dir + "/" + basename) common.ZipWriteStr(info.output_zip, name, data) info.script.Print("Patching {} image unconditionally...".format(dest.split('/')[-1])) info.script.AppendExtra('package_extract_file("%s", "%s");' % (name, dest)) -def OTA_InstallEnd(info): - AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta") - AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo") +def FullOTA_InstallBegin(info): + AddImage(info, "RADIO", "super_dummy.img", "/tmp/super_dummy.img"); + info.script.AppendExtra('package_extract_file("install/bin/flash_super_dummy.sh", "/tmp/flash_super_dummy.sh");') + info.script.AppendExtra('set_metadata("/tmp/flash_super_dummy.sh", "uid", 0, "gid", 0, "mode", 0755);') + info.script.AppendExtra('run_program("/tmp/flash_super_dummy.sh");') + return + +def OTA_InstallEnd(info): + AddImage(info, "IMAGES", "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta") + AddImage(info, "IMAGES", "dtbo.img", "/dev/block/bootdevice/by-name/dtbo") return diff --git a/sdm710.mk b/sdm710.mk index a67078d..7073634 100644 --- a/sdm710.mk +++ b/sdm710.mk @@ -232,6 +232,9 @@ PRODUCT_BUILD_SUPER_PARTITION := false PRODUCT_USE_DYNAMIC_PARTITIONS := true PRODUCT_RETROFIT_DYNAMIC_PARTITIONS := true +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/flash_super_dummy.sh:install/bin/flash_super_dummy.sh + # FM PRODUCT_PACKAGES += \ FM2 \