I.MX6 mkuserimg.sh hacking
生活随笔
收集整理的這篇文章主要介紹了
I.MX6 mkuserimg.sh hacking
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/************************************************************************ I.MX6 mkuserimg.sh hacking* 說明:* 上次發現Android源碼使用mkuserimg.sh來打包Android文件系統,現在來* 跟蹤一下其內部的工作機制。** 2016-6-28 深圳 南山平山村 曾劍鋒**********************************************************************/#!/bin/bash -x
#
# To call this script, make sure make_ext4fs is somewhere in PATHfunction usage() {
cat<<EOT
Usage:
mkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE [FILE_CONTEXTS]
EOT
}# 顯示環境變量
echo "in mkuserimg.sh PATH=$PATH"# 獲取第一個命令行參數,用完之后移除第一個命令行參數
ENABLE_SPARSE_IMAGE=
if [ "$1" = "-s" ]; thenENABLE_SPARSE_IMAGE="-s"shift
fi# 這里是檢查除了-s第一參數以外,還剩下的參數個數
if [ $# -ne 4 -a $# -ne 5 -a $# -ne 6 ]; thenusageexit 1
fi# 獲取并檢查源目錄
SRC_DIR=$1
if [ ! -d $SRC_DIR ]; thenecho "Can not find directory $SRC_DIR!"exit 2
fi# 獲取相應的數據
OUTPUT_FILE=$2
EXT_VARIANT=$3
MOUNT_POINT=$4
SIZE=$5
FC=$6# 目前僅僅支持ext4的制作,其他類型的文件都會直接退出
case $EXT_VARIANT inext4) ;;*) echo "Only ext4 is supported!"; exit 3 ;;
esac# 接下來也是檢查各個參數的正確性
if [ -z $MOUNT_POINT ]; thenecho "Mount point is required"exit 2
fiif [ -z $SIZE ]; thenSIZE=128M
fiif [ -n "$FC" ]; thenFCOPT="-S $FC"
fi# 生成命令,顯示命令,執行命令,檢查命令執行結果
MAKE_EXT4FS_CMD="make_ext4fs $ENABLE_SPARSE_IMAGE $FCOPT -l $SIZE -a $MOUNT_POINT $OUTPUT_FILE $SRC_DIR"
echo $MAKE_EXT4FS_CMD
$MAKE_EXT4FS_CMD
if [ $? -ne 0 ]; thenexit 4
fi# mkuserimg.sh out/target/product/sabresd_6dq/system out/target/product/sabresd_6dq/obj/PACKAGING/systemimage_intermediates/system.img ext4 system 293601280
?
轉載于:https://www.cnblogs.com/zengjfgit/p/5623118.html
總結
以上是生活随笔為你收集整理的I.MX6 mkuserimg.sh hacking的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何高效管理我的时间?——时间会给你最好
- 下一篇: 为什么要重写toString()方法和h