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 PATH

function 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" ]; then
  ENABLE_SPARSE_IMAGE="-s"
  shift
fi

# 这里是检查除了-s第一参数以外,还剩下的参数个数
if [ $# -ne 4 -a $# -ne 5 -a $# -ne 6 ]; then
  usage
  exit 1
fi

# 获取并检查源目录
SRC_DIR=$1
if [ ! -d $SRC_DIR ]; then
  echo "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 in
  ext4) ;;
  *) echo "Only ext4 is supported!"; exit 3 ;;
esac

# 接下来也是检查各个参数的正确性
if [ -z $MOUNT_POINT ]; then
  echo "Mount point is required"
  exit 2
fi

if [ -z $SIZE ]; then
    SIZE=128M
fi

if [ -n "$FC" ]; then
    FCOPT="-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 ]; then
  exit 4
fi

# mkuserimg.sh out/target/product/sabresd_6dq/system out/target/product/sabresd_6dq/obj/PACKAGING/systemimage_intermediates/system.img ext4 system 293601280

 

时间: 2024-09-28 16:28:06

I.MX6 mkuserimg.sh hacking的相关文章

I.MX6 mkuserimg.sh 使用

/*********************************************************************** * I.MX6 mkuserimg.sh 使用 * 说明: * 每次都要对Android源码进行模块化编译的时候,经常会遇到要重新制作 * system.img的问题,而普通的方式等待时间实在让人难以接受,而通过这个 * mkuserimg.sh来直接完成对system目录的打包正符合要求. * * 2016-6-28 深圳 南山平山村 曾剑锋 ***

I.MX6 android mkuserimg.sh

/************************************************************************** * I.MX6 android mkuserimg.sh * 说明: * 修改了android源代码中的一些内容之后,如果内容过多,不能确定到底修改 * 了system目录下的哪些文件,于是可能要重新make,但这实在是让人难以接受, * 因为等待的时间会很长,于是从make命令最后看到mkuserimg.sh是用来最后对文件 * 系统进行打包的

AM335x Android eMMC mkmmc-android.sh hacking

# AM335x Android eMMC mkmmc-android.sh hacking # # 1. 有空解读一下android的分区文件. # 2. 代码来源:https://github.com/hendersa/bbbandroid-external-ti_android_utilities/blob/master/am335x/mk-mmc/mkmmc-android.sh # # 2016-9-8 深圳 南山平山村 曾剑锋 #!/bin/bash # 如果参数只有一个,这里就会使

ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking

#!/bin/bash # # ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking # 说明: # 本文主要对TI的sdk中的create-sdcard.sh脚本进行解读,该文件只解读 # 前面一部分,后面一部分未解读,主要是因为后面的代码并不能获取到正确 # 的设备节点,于是不打算深入解读.其中学会到了tar中显示解压进度的写法, # 以及拷贝文件夹的显示当前拷贝数据的进度的方法. # # 2016-4-16 深圳 南

ti processor sdk linux am335x evm /bin/commom.sh hacking

#!/bin/sh # # ti processor sdk linux am335x evm /bin/commom.sh hacking # 说明: # 本文主要对TI的sdk中的common.sh脚本进行解读,是为了了解其工作机制. # # 2016-4-16 深圳 南山平山村 曾剑锋 # This distribution contains contributions or derivatives under copyright # as follows: # # Copyright (

I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking

/******************************************************************** * I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking * 说明: * 以前用的mfgtool2是直接执行MfgTool2.exe就行了,现在的NXP将其封 * 装在vbs文件内,这是左栋告诉我的,这里记录一下命令行参数的本质. * * 2016-9-18 深圳 南山平山村 曾剑锋 ***********

OK335xS-Android pack-ubi-256M.sh hacking

1 #/******************************************************************************* 2 # * OK335xS-Android pack-ubi-256M.sh hacking 3 # * 声明: 4 # * 1. 本文解析仅仅是为了知道pack-ubi-256M.sh自动生成ubi文件系统的原理 5 # * 2. 本文在网页上可能不好阅读,最好cp一份在其他文本编辑器中阅读 6 # * 2015-6-4 晴 深

ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking

#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking # 说明: # 本文主要对TI的sdk中的setup-package-install.sh脚本进行解读,是为了了解 # 其工作机制. # # 2016-4-16 深圳 南山平山村 曾剑锋 # This distribution contains contributions or derivatives under copyri

ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking

#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking # 说明: # 本文主要对TI的sdk中的setup-tftp.sh脚本进行解读,是为了了解其工作机制. # # 2016-4-16 深圳 南山平山村 曾剑锋 # This distribution contains contributions or derivatives under copyright # as follows: # # Cop