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:
35
mkimg.sh
35
mkimg.sh
@@ -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
|
||||||
|
Reference in New Issue
Block a user