1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Copyright (c) 2021 Rockchip Electronics Co., Ltd 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunset -e 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunfunction usage() 11*4882a593Smuzhiyun{ 12*4882a593Smuzhiyun echo 13*4882a593Smuzhiyun echo "usage:" 14*4882a593Smuzhiyun echo " $0 -f [Android boot.img] -o [Distro(ext2) boot.img]" 15*4882a593Smuzhiyun echo 16*4882a593Smuzhiyun} 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunfunction args_process() 19*4882a593Smuzhiyun{ 20*4882a593Smuzhiyun if [ $# -ne 4 ]; then 21*4882a593Smuzhiyun usage 22*4882a593Smuzhiyun exit 1 23*4882a593Smuzhiyun fi 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun while [ $# -gt 0 ]; do 26*4882a593Smuzhiyun case $1 in 27*4882a593Smuzhiyun -f) 28*4882a593Smuzhiyun BOOT_IMG=$2 29*4882a593Smuzhiyun shift 2 30*4882a593Smuzhiyun ;; 31*4882a593Smuzhiyun -o) 32*4882a593Smuzhiyun DISTRO_IMG=$2 33*4882a593Smuzhiyun shift 2 34*4882a593Smuzhiyun ;; 35*4882a593Smuzhiyun *) 36*4882a593Smuzhiyun usage 37*4882a593Smuzhiyun exit 1 38*4882a593Smuzhiyun ;; 39*4882a593Smuzhiyun esac 40*4882a593Smuzhiyun done 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun if [ ! -f ${BOOT_IMG} ]; then 43*4882a593Smuzhiyun echo "ERROR: No ${ITB}" 44*4882a593Smuzhiyun exit 1 45*4882a593Smuzhiyun fi 46*4882a593Smuzhiyun} 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunfunction android2distro() 49*4882a593Smuzhiyun{ 50*4882a593Smuzhiyun rm distro/ boot/ ${DISTRO_IMG} -rf 51*4882a593Smuzhiyun mkdir -p boot 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun ./scripts/unpack_bootimg --boot_img ${BOOT_IMG} --out distro/ 54*4882a593Smuzhiyun ./scripts/unpack_resource.sh distro/second distro/ 55*4882a593Smuzhiyun BOOTARGS=`fdtget -ts distro/rk-kernel.dtb /chosen bootargs` 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun cp distro/rk-kernel.dtb boot/rk-kernel.dtb 58*4882a593Smuzhiyun cp distro/kernel boot/kernel 59*4882a593Smuzhiyun cp distro/ramdisk boot/ramdisk 60*4882a593Smuzhiyun mkdir -p boot/extlinux 61*4882a593Smuzhiyun touch boot/extlinux/extlinux.conf 62*4882a593Smuzhiyun echo "label rockchip-linux-kernel" >> boot/extlinux/extlinux.conf 63*4882a593Smuzhiyun echo " kernel /kernel" >> boot/extlinux/extlinux.conf 64*4882a593Smuzhiyun echo " fdt /rk-kernel.dtb" >> boot/extlinux/extlinux.conf 65*4882a593Smuzhiyun echo " initrd /ramdisk" >> boot/extlinux/extlinux.conf 66*4882a593Smuzhiyun echo " append ${BOOTARGS}" >> boot/extlinux/extlinux.conf 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun SIZE_KB=`ls -lh ${BOOT_IMG} | awk '{ print $5 }' | tr -d 'M'` 69*4882a593Smuzhiyun SIZE_KB=`echo "scale=0;$SIZE_KB/1"|bc -l` # for align down integer 70*4882a593Smuzhiyun SIZE_KB=`expr ${SIZE_KB} + 2 + 1` 71*4882a593Smuzhiyun SIZE_BYTE=$((${SIZE_KB}*1024)) 72*4882a593Smuzhiyun genext2fs -b ${SIZE_BYTE} -B 1024 -d boot/ -i 8192 -U ${DISTRO_IMG} 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun echo 75*4882a593Smuzhiyun echo "Successful: ${DISTRO_IMG} is ready." 76*4882a593Smuzhiyun echo 77*4882a593Smuzhiyun} 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunargs_process $* 80*4882a593Smuzhiyunandroid2distro 81