Androidイメージビルドスクリプトのガイドライン

Androidイメージビルドスクリプトのガイドライン

SDカードパーティションプログラムを入手しています。次のスクリプトが提供されます。

#!/bin/sh
if [ $# -lt 2 ]; then
   echo "example usage: $0 /dev/sdc \$ANDROID_ROOT"
   exit 1
fi

DRIVE=$1
ANDROID_ROOT_DIR=$2

sudo umount ${DRIVE}*

sudo dd if=/dev/zero of=$DRIVE bs=1 count=1024
sudo sync
sudo parted $DRIVE mklabel gpt
sudo parted $DRIVE mkpart boot fat32 1MB 9MB
sudo parted $DRIVE mkpart system ext4 9MB 521MB
sudo parted $DRIVE mkpart cache ext4 521MB 1033MB
sudo parted $DRIVE mkpart userdata ext4 1033MB 2033MB
sudo parted $DRIVE mkpart media fat32 2033MB 3033MB
sudo sync

sudo mkfs.ext4 ${DRIVE}2 -L system
sudo mkfs.ext4 ${DRIVE}3 -L cache
sudo mkfs.ext4 ${DRIVE}4 -L userdata
sudo mkfs.vfat -F 32 ${DRIVE}5 -n media
sudo sync

sudo dd if=${ANDROID_ROOT_DIR}/device/ti/panda/xloader.bin of=$DRIVE bs=131072 seek=1
sudo sync
sudo dd if=${ANDROID_ROOT_DIR}/device/ti/panda/bootloader.bin of=$DRIVE bs=262144 seek=1
sudo sync
sudo dd if=${ANDROID_ROOT_DIR}/out/target/product/panda/boot.img of=${DRIVE}1
sudo sync
${ANDROID_ROOT_DIR}/out/host/linux-x86/bin/simg2img ${ANDROID_ROOT_DIR}/out/target/product/panda/system.img ${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img
sudo dd if=${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img of=${DRIVE}2
sudo sync
sudo e2label ${DRIVE}2 system
sudo sync

この.shファイルを実行すると、コンテンツがLinux上で実行されることがわかります。プログラムを理解できますが、1行に問題があります。

 ${ANDROID_ROOT_DIR}/out/host/linux-x86/bin/simg2img ${ANDROID_ROOT_DIR}/out/target/product/panda/system.img ${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img

この行で何が起こっているのかを説明できる人はいますか? Linuxコマンドはありませんが、どのようにエラーなしで実行できますか?

もう一つの質問は次のとおりです。

このコードparted DRIVEには、ブート、システム、キャッシュ、ユーザーデータ、メディアなど5つのパーティションがあります。しかし、なぜブートが生成されないのですか?つまり、{DRIVE}1設定がそれを知っていますか?それでは、すべてどこに保存されていますかxloader.bin, bootloader.bin and boot.img

答え1

この行は、スクリプトを実行しているシェルにsimg2imgディレクトリ内の名前のバイナリファイルを起動するように指示し、ここ${ANDROID_ROOT_DIR}/out/host/linux-x86/bin/に2つの引数を付けます。${ANDROID_ROOT_DIR}/out/target/product/panda/system.img${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img

実際、スクリプトのほぼすべての行はこれに似ており、唯一の違いはsudoバイナリが始まるということです。

答え2

コマンドはですsimg2img。残りは実行可能ファイルへのパスです。

関連情報