mkimg: use existing env variables instead of hardcoded strings

* this requires to run "lunch" before, the script checks for that
This commit is contained in:
MinnieTheMoocher
2025-01-29 16:10:17 +01:00
committed by Konsta
parent 193a130304
commit 357c27c66a

View File

@@ -6,14 +6,26 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
exit_with_error() {
echo "$@"
exit 1
}
if [ -z "${TARGET_PRODUCT}" ]; then
exit_with_error "TARGET_PRODUCT environment variable is not set. Run lunch first."
fi
if [ -z "${ANDROID_PRODUCT_OUT}" ]; then
exit_with_error "ANDROID_PRODUCT_OUT environment variable is not set. Run lunch first."
fi
VERSION=RaspberryVanillaAOSP14 VERSION=RaspberryVanillaAOSP14
DATE=$(date +%Y%m%d) DATE=$(date +%Y%m%d)
IMGNAME=${VERSION}-${DATE}-rpi4.img IMGNAME=${VERSION}-${DATE}-${TARGET_PRODUCT}.img
IMGSIZE=7 IMGSIZE=7
OUTDIR=$(pwd | sed 's/\/device\/brcm\/rpi4$//')/out/target/product/rpi4
echo "Creating image file ${OUTDIR}/${IMGNAME}..." echo "Creating image file ${ANDROID_PRODUCT_OUT}/${IMGNAME}..."
sudo dd if=/dev/zero of="${OUTDIR}/${IMGNAME}" bs=1M count=$(echo "${IMGSIZE}*1024" | bc) sudo dd if=/dev/zero of="${ANDROID_PRODUCT_OUT}/${IMGNAME}" bs=1M count=$(echo "${IMGSIZE}*1024" | bc)
sync sync
echo "Creating partitions..." echo "Creating partitions..."
@@ -44,28 +56,27 @@ echo c
echo a echo a
echo 1 echo 1
echo w echo w
) | sudo fdisk "${OUTDIR}/${IMGNAME}" ) | sudo fdisk "${ANDROID_PRODUCT_OUT}/${IMGNAME}"
sync sync
LOOPDEV=$(sudo kpartx -av "${OUTDIR}/${IMGNAME}" | awk 'NR==1{ sub(/p[0-9]$/, "", $3); print $3 }') LOOPDEV=$(sudo kpartx -av "${ANDROID_PRODUCT_OUT}/${IMGNAME}" | awk 'NR==1{ sub(/p[0-9]$/, "", $3); print $3 }')
if [ -z ${LOOPDEV} ]; then if [ -z ${LOOPDEV} ]; then
echo "Unable to find loop device!" exit_with_error "Unable to find loop device!"
exit 1
fi fi
echo "Image mounted as /dev/${LOOPDEV}" echo "Image mounted as /dev/${LOOPDEV}"
sleep 1 sleep 1
echo "Copying boot..." echo "Copying boot..."
sudo dd if=${OUTDIR}/boot.img of=/dev/mapper/${LOOPDEV}p1 bs=1M sudo dd if=${ANDROID_PRODUCT_OUT}/boot.img of=/dev/mapper/${LOOPDEV}p1 bs=1M
echo "Copying system..." echo "Copying system..."
sudo dd if=${OUTDIR}/system.img of=/dev/mapper/${LOOPDEV}p2 bs=1M sudo dd if=${ANDROID_PRODUCT_OUT}/system.img of=/dev/mapper/${LOOPDEV}p2 bs=1M
echo "Copying vendor..." echo "Copying vendor..."
sudo dd if=${OUTDIR}/vendor.img of=/dev/mapper/${LOOPDEV}p3 bs=1M sudo dd if=${ANDROID_PRODUCT_OUT}/vendor.img of=/dev/mapper/${LOOPDEV}p3 bs=1M
echo "Creating userdata..." echo "Creating userdata..."
sudo mkfs.ext4 /dev/mapper/${LOOPDEV}p4 -I 512 -L userdata sudo mkfs.ext4 /dev/mapper/${LOOPDEV}p4 -I 512 -L userdata
sync sync
sudo kpartx -d "/dev/${LOOPDEV}" sudo kpartx -d "/dev/${LOOPDEV}"
echo "Done, created ${OUTDIR}/${IMGNAME}!"
echo "Done, created ${ANDROID_PRODUCT_OUT}/${IMGNAME}!"
exit 0 exit 0