#!/bin/bash # # Copyright (c) 2021 Rockchip Electronics Co., Ltd # # SPDX-License-Identifier: GPL-2.0 # set -e function usage() { echo echo "usage:" echo " $0 -f [Android boot.img] -o [Distro(ext2) boot.img]" echo } function args_process() { if [ $# -ne 4 ]; then usage exit 1 fi while [ $# -gt 0 ]; do case $1 in -f) BOOT_IMG=$2 shift 2 ;; -o) DISTRO_IMG=$2 shift 2 ;; *) usage exit 1 ;; esac done if [ ! -f ${BOOT_IMG} ]; then echo "ERROR: No ${ITB}" exit 1 fi } function android2distro() { rm distro/ boot/ ${DISTRO_IMG} -rf mkdir -p boot ./scripts/unpack_bootimg --boot_img ${BOOT_IMG} --out distro/ ./scripts/unpack_resource.sh distro/second distro/ BOOTARGS=`fdtget -ts distro/rk-kernel.dtb /chosen bootargs` cp distro/rk-kernel.dtb boot/rk-kernel.dtb cp distro/kernel boot/kernel cp distro/ramdisk boot/ramdisk mkdir -p boot/extlinux touch boot/extlinux/extlinux.conf echo "label rockchip-linux-kernel" >> boot/extlinux/extlinux.conf echo " kernel /kernel" >> boot/extlinux/extlinux.conf echo " fdt /rk-kernel.dtb" >> boot/extlinux/extlinux.conf echo " initrd /ramdisk" >> boot/extlinux/extlinux.conf echo " append ${BOOTARGS}" >> boot/extlinux/extlinux.conf SIZE_KB=`ls -lh ${BOOT_IMG} | awk '{ print $5 }' | tr -d 'M'` SIZE_KB=`echo "scale=0;$SIZE_KB/1"|bc -l` # for align down integer SIZE_KB=`expr ${SIZE_KB} + 2 + 1` SIZE_BYTE=$((${SIZE_KB}*1024)) genext2fs -b ${SIZE_BYTE} -B 1024 -d boot/ -i 8192 -U ${DISTRO_IMG} echo echo "Successful: ${DISTRO_IMG} is ready." echo } args_process $* android2distro