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에서 실행된다는 것을 알고 있습니다. 프로그램을 이해할 수는 있지만 한 줄에 문제가 있습니다.
${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
이 줄에서 무슨 일이 일어나고 있는지 설명해 줄 수 있는 사람이 있나요? 리눅스 명령어가 없는데 어떻게 오류 없이 실행될 수 있나요?
또 다른 질문은 다음과 같습니다.
이 코드 parted
DRIVE
에는 부팅, 시스템, 캐시, 사용자 데이터, 미디어 등 5개의 파티션이 있습니다. 그런데 왜 부팅이 생성되지 않습니까? 즉, {DRIVE}1
설정이 그것을 알고 있는가? 그렇다면 모두 어디에 저장되어 있나요 xloader.bin, bootloader.bin and boot.img
?
답변1
이 줄은 스크립트를 실행하는 셸에 simg2img
디렉터리에 있는 이름의 바이너리 파일을 시작하도록 지시하고 ${ANDROID_ROOT_DIR}/out/host/linux-x86/bin/
여기에 두 개의 인수와 .${ANDROID_ROOT_DIR}/out/target/product/panda/system.img
${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img
실제로 스크립트의 거의 모든 줄은 이와 유사하며 유일한 차이점은 sudo
바이너리가 시작된다는 것입니다.
답변2
명령은 입니다 simg2img
. 나머지는 실행 파일의 경로입니다.