1. /***********************************************************************
  2. * I.MX6 mkuserimg.sh hacking
  3. * 说明:
  4. * 上次发现Android源码使用mkuserimg.sh来打包Android文件系统,现在来
  5. * 跟踪一下其内部的工作机制。
  6. *
  7. * 2016-6-28 深圳 南山平山村 曾剑锋
  8. **********************************************************************/
  9.  
  10. #!/bin/bash -x
  11. #
  12. # To call this script, make sure make_ext4fs is somewhere in PATH
  13.  
  14. function usage() {
  15. cat<<EOT
  16. Usage:
  17. mkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE [FILE_CONTEXTS]
  18. EOT
  19. }
  20.  
  21. # 显示环境变量
  22. echo "in mkuserimg.sh PATH=$PATH"
  23.  
  24. # 获取第一个命令行参数,用完之后移除第一个命令行参数
  25. ENABLE_SPARSE_IMAGE=
  26. if [ "$1" = "-s" ]; then
  27. ENABLE_SPARSE_IMAGE="-s"
  28. shift
  29. fi
  30.  
  31. # 这里是检查除了-s第一参数以外,还剩下的参数个数
  32. if [ $# -ne -a $# -ne -a $# -ne ]; then
  33. usage
  34. exit
  35. fi
  36.  
  37. # 获取并检查源目录
  38. SRC_DIR=$
  39. if [ ! -d $SRC_DIR ]; then
  40. echo "Can not find directory $SRC_DIR!"
  41. exit
  42. fi
  43.  
  44. # 获取相应的数据
  45. OUTPUT_FILE=$
  46. EXT_VARIANT=$
  47. MOUNT_POINT=$
  48. SIZE=$
  49. FC=$
  50.  
  51. # 目前仅仅支持ext4的制作,其他类型的文件都会直接退出
  52. case $EXT_VARIANT in
  53. ext4) ;;
  54. *) echo "Only ext4 is supported!"; exit ;;
  55. esac
  56.  
  57. # 接下来也是检查各个参数的正确性
  58. if [ -z $MOUNT_POINT ]; then
  59. echo "Mount point is required"
  60. exit
  61. fi
  62.  
  63. if [ -z $SIZE ]; then
  64. SIZE=128M
  65. fi
  66.  
  67. if [ -n "$FC" ]; then
  68. FCOPT="-S $FC"
  69. fi
  70.  
  71. # 生成命令,显示命令,执行命令,检查命令执行结果
  72. MAKE_EXT4FS_CMD="make_ext4fs $ENABLE_SPARSE_IMAGE $FCOPT -l $SIZE -a $MOUNT_POINT $OUTPUT_FILE $SRC_DIR"
  73. echo $MAKE_EXT4FS_CMD
  74. $MAKE_EXT4FS_CMD
  75. if [ $? -ne ]; then
  76. exit
  77. fi
  78.  
  79. # mkuserimg.sh out/target/product/sabresd_6dq/system out/target/product/sabresd_6dq/obj/PACKAGING/systemimage_intermediates/system.img ext4 system

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

  1. I.MX6 mkuserimg.sh 使用

    /*********************************************************************** * I.MX6 mkuserimg.sh 使用 * 说 ...

  2. I.MX6 android mkuserimg.sh

    /************************************************************************** * I.MX6 android mkuserim ...

  3. post-image.sh hacking

    #********************************************************************************* #* post-image.sh ...

  4. I.MX6 U-Boot mkconfig hacking

    /**************************************************************************** * I.MX6 U-Boot mkconfi ...

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

    /******************************************************************** * I.MX6 mfgtool2-android-mx6q- ...

  6. Woobuntu woobuntu_build.sh hacking

    # Woobuntu woobuntu_build.sh hacking # 说明: # 有时候因为一些需求,我们需要定制一些系统,包括Ubuntu系统,于是 # 我们自然需要知道如何去解包一个Ubu ...

  7. OK335xS psplash make-image-header.sh hacking

    /***************************************************************************** * OK335xS psplash mak ...

  8. ti processor sdk linux am335x evm setup.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm setup.sh hacking # 说明: # 本文主要对TI的sdk中的setup.sh脚本进行解读 ...

  9. ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking # 说明: # 本文主要对TI的sdk ...

随机推荐

  1. 【java】基础语法

    集合   单线程 并发 Lists ArrayList——基于泛型数组 LinkedList——不推荐使用 Vector——已废弃(deprecated) CopyOnWriteArrayList—— ...

  2. [codeforces538D]Weird Chess

    [codeforces538D]Weird Chess 试题描述 Igor has been into chess for a long time and now he is sick of the ...

  3. 【二分+交互】codeforces B. Glad to see you!

    codeforces.com/contest/809/problem/B 只需要找到2个被选中的,首先,注意到将区间二等分时左侧区间为[l,mid],右侧区间为[mid+1,r],dui(mid,mi ...

  4. VirtualBox - 虚拟机下主机与虚拟机、虚拟机与虚拟机之间通信配置

    看了一下网上别人写的文章:http://www.it165.net/os/html/201401/7063.html 文章里面使用的是Debian,我这里配置的虚拟机系统一个是Ubuntu 14.10 ...

  5. 使用HttpWebRequest post数据时要注意UrlEncode

    今天在用HttpWebResponse类向一个远程页面post数据时,遇到了一个怪问题:通过对比自己post的参数和服务器接收到的值,发现参数中的一个+号被替换成了空格. 造成这个错误的原因在于+号在 ...

  6. 外星联络(bzoj 2251)

    Description 小 P 在看过电影<超时空接触>(Contact)之后被深深的打动,决心致力于寻找外星人的事业.于是,他每天晚上都爬在屋顶上试图用自己的收音机收听外星人发来的信息. ...

  7. CodeForces - 356A Knight Tournament

    http://codeforces.com/problemset/problem/356/A 首先理解题意 每次给出l 和r  在l - r之间还有资格的选手中得出一个胜者 暴力思路: 首先维护还有资 ...

  8. Multiply Strings(字符串乘法模拟,包含了加法模拟)

    Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...

  9. codeforces 892E(离散化+可撤销并查集)

    题意 给出一个n个点m条边的无向联通图(n,m<=5e5),有q(q<=5e5)个询问 每个询问询问一个边集{Ei},回答这些边能否在同一个最小生成树中 分析 要知道一个性质,就是权值不同 ...

  10. 【转载】《Unix网络编程》思维导图

    参考这篇文章,很不错: http://www.cnblogs.com/qiaoconglovelife/p/5734768.html