#!/bin/sh # Generate partition table for HiKey eMMC # # tiny: for testing purpose. # aosp: 10 entries (same as linux with userdata). # linux: 9 entries (same as aosp without userdata). set -ex IMG=${IMG:-juno.img} IMAGE_LEN=${IMAGE_LEN:-4096} size_in_mb() { local size_in_bytes size_in_bytes=$(wc -c $1) size_in_bytes=${size_in_bytes%% *} echo $((size_in_bytes / 1024 / 1024 + 1)) } SYSTEM_IMG=${SYSTEM_IMG:-system.img} SYSTEM_SIZE=$(size_in_mb ${SYSTEM_IMG}) USERDATA_IMG=${USERDATA_IMG:-userdata.img} USERDATA_SIZE=$(size_in_mb ${USERDATA_IMG}) CACHE_IMG=${CACHE_IMG:-cache.img} CACHE_SIZE=$(size_in_mb ${CACHE_IMG}) VENDOR_IMG=${VENDOR_IMG:-vendor.img} VENDOR_SIZE=$(size_in_mb ${VENDOR_IMG}) # measured in MBytes PART1_START=1 PART1_END=4 PART2_START=${PART1_END} PART2_END=$((PART2_START + SYSTEM_SIZE)) PART3_START=${PART2_END} PART3_END=$((PART3_START + VENDOR_SIZE)) PART4_START=${PART3_END} PART4_END=$((PART4_START + USERDATA_SIZE)) PART5_START=${PART4_END} PART5_END=$((PART5_START + CACHE_SIZE)) SECTOR_SIZE=512 SECTOR_NUMBER=7634944 dd if=/dev/zero of=${IMG} bs=${SECTOR_SIZE} count=${SECTOR_NUMBER} sgdisk -U 2CB85345-6A91-4043-8203-723F0D28FBE8 -v ${IMG} #[1: boot] sgdisk -n 1:0:+4M -t 1:0700 -u 1:496847AB-56A1-4CD5-A1AD-47F4ACF055C9 -c 1:"boot" ${IMG} #[2: system] sgdisk -n 2:0:+${SYSTEM_SIZE}M -t 2:8300 -u 2:61A36FC1-8EFB-4899-84D8-B61642EFA723 -c 2:"system" ${IMG} #[3: vendor] sgdisk -n 3:0:+${VENDOR_SIZE}M -t 3:8300 -u 3:65007411-962D-4781-9B2C-51DD7DF22CC3 -c 3:"vendor" ${IMG} #[4: userdata] sgdisk -n 4:0:+${USERDATA_SIZE}M -t 4:8300 -u 4:496847AB-56A1-4CD5-A1AD-47F4ACF055C9 -c 4:"userdata" ${IMG} #[5: cache] sgdisk -n 5:0:+${CACHE_SIZE}M -t 5:8300 -u 5:00354BCD-BBCB-4CB3-B5AE-CDEFCB5DAC43 -c 5:"cache" ${IMG} # Create partitions LOOP_DEVICE=$(sudo losetup --partscan --show --find ${IMG}) sudo dd if=$SYSTEM_IMG of=${LOOP_DEVICE}p2 conv=notrunc sudo dd if=$VENDOR_IMG of=${LOOP_DEVICE}p3 conv=notrunc sudo dd if=$USERDATA_IMG of=${LOOP_DEVICE}p4 conv=notrunc sudo dd if=$CACHE_IMG of=${LOOP_DEVICE}p5 conv=notrunc sudo losetup -d ${LOOP_DEVICE} bzip2 -9 $IMG