I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard-android.sh hacking
- #!/bin/bash
- # 参考文章:
- # . Shell特殊变量:Shell $, $#, $*, $@, $?, $$和命令行参数
- # http://c.biancheng.net/cpp/view/2739.html
- # <CMD state="Updater" type="push" body="send" file="mksdcard-android.sh.tar">Sending partition shell</CMD>
- # <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
- # <CMD state="Updater" type="push" body="$ sh mksdcard-android.sh /dev/mmcblk0"> Partitioning...</CMD>
- # <CMD state="Updater" type="push" body="$ ls -l /dev/mmc* ">Formatting sd partition</CMD>
- # partition size in MB
- BOOTLOAD_RESERVE= # bootload 8MB
- BOOT_ROM_SIZE= # 启动rom 8MB
- SYSTEM_ROM_SIZE= # 系统rom 512MB
- CACHE_SIZE= # 缓存 512MB
- RECOVERY_ROM_SIZE= # 恢复rom 8MB
- VENDER_SIZE= # 供货商 8MB
- MISC_SIZE= # 杂项 8MB
- help() {
- # basename String [ Suffix ]
- # basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,
- # 并将剩余的基本文件名称写至标准输出。
- bn=`basename $`
- cat << EOF
- usage $bn <option> device_node
- options:
- -h displays this help message
- -s only get partition size
- -np not partition.
- -f flash android image.
- EOF
- }
- # check the if root?
- # 检查当前是否拥有root权限
- userid=`id -u`
- if [ $userid -ne "" ]; then
- echo "you're not root?"
- exit
- fi
- # parse command line
- # 解析命令行参数
- moreoptions=
- node="na"
- cal_only=
- flash_images=
- not_partition=
- not_format_fs=
- # $#: 传递给脚本或函数的参数个数。
- #
- # $ sh mksdcard-android.sh /dev/mmcblk0
- # $: /dev/mmcblk0
- #
- # moreoptions:
- # node: /dev/mmcblk0
- while [ "$moreoptions" = -a $# -gt ]; do
- case $ in
- -h) help; exit ;;
- -s) cal_only= ;;
- -f) flash_images= ;;
- -np) not_partition= ;;
- -nf) not_format_fs= ;;
- *) moreoptions=; node=$ ;;
- esac
- [ "$moreoptions" = ] && [ $# -gt ] && help && exit
- [ "$moreoptions" = ] && shift
- done
- # 如果node设备节点不存在,那么就退出程序
- if [ ! -e ${node} ]; then
- help
- exit
- fi
- # call sfdisk to create partition table
- # 调用sfdisk来创建分区表
- # get total card size
- # extend_size 增加了这个分量,同时data_size减小了这个分量,所以磁盘总量不变
- seprate=
- # -s [or --show-size]: 显示一个分区的大小,单位是KB。
- total_size=`sfdisk -s ${node}`
- total_size=`expr ${total_size} / ` # 重新计算,将单位换算成MB
- boot_rom_sizeb=`expr ${BOOT_ROM_SIZE} + ${BOOTLOAD_RESERVE}`
- extend_size=`expr ${SYSTEM_ROM_SIZE} + ${CACHE_SIZE} + ${VENDER_SIZE} + ${MISC_SIZE} + ${seprate}`
- data_size=`expr ${total_size} - ${boot_rom_sizeb} - ${RECOVERY_ROM_SIZE} - ${extend_size} + ${seprate}`
- # create partitions
- if [ "${cal_only}" -eq "" ]; then
- cat << EOF
- BOOT : ${boot_rom_sizeb}MB
- RECOVERY: ${RECOVERY_ROM_SIZE}MB
- SYSTEM : ${SYSTEM_ROM_SIZE}MB
- CACHE : ${CACHE_SIZE}MB
- DATA : ${data_size}MB
- MISC : ${MISC_SIZE}MB
- EOF
- exit
- fi
- # destroy the partition table
- # 删除以前的分区表,从这里可以看出,分区表的大小貌似是1024字节
- dd if=/dev/zero of=${node} bs= count=
- sfdisk --force -uM ${node} << EOF
- ,${boot_rom_sizeb},
- ,${RECOVERY_ROM_SIZE},
- ,${extend_size},
- ,${data_size},
- ,${SYSTEM_ROM_SIZE},
- ,${CACHE_SIZE},
- ,${VENDER_SIZE},
- ,${MISC_SIZE},
- EOF
- # adjust the partition reserve for bootloader.
- # if you don't put the uboot on same device, you can remove the BOOTLOADER_ERSERVE
- # to have 8M space.
- # the minimal sylinder for some card is 4M, maybe some was 8M
- # just 8M for some big eMMC 's sylinder
- # -N# : 只改变分区的编号 #
- sfdisk --force -uM ${node} -N1 << EOF
- ${BOOTLOAD_RESERVE},${BOOT_ROM_SIZE},
- EOF
- # For MFGTool Notes:
- # MFGTool use mksdcard-android.tar store this script
- # if you want change it.
- # do following:
- # tar xf mksdcard-android.sh.tar
- # vi mksdcard-android.sh
- # [ edit want you want to change ]
- # rm mksdcard-android.sh.tar; tar cf mksdcard-android.sh.tar mksdcard-android.sh
I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard-android.sh hacking的更多相关文章
- I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard.sh hacking
#!/bin/sh # 参考文章: # . MFGTool Emmc mksdcard.sh MFGTool Emmc mksdcard.sh comment # http://jordonwu.gi ...
- I.MX6 Manufacturing Tool V2 (MFGTool2) Update Command List (UCL) User Guide translate
Manufacturing Tool V2 (MFGTool2) Update Command List (UCL) User Guide Contents(目录) Contents(目录) ...
- I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking
<!-- * Copyright (C) 2010-2013, Freescale Semiconductor, Inc. All Rights Reserved. * The CFG elem ...
- JMeter Nmon Tool V2.0 插件
很早之前宝路已将nmon监控功能集成到了JMeter中,自己在使用旧版本时,也有诸多不满意的地方.趁着五一假期(基本都是晚上,白天要陪孩子),对插件底层代码进行了重构,自己还要反复测试调整,最晚的一次 ...
- AM335x Android eMMC mkmmc-android.sh hacking
# AM335x Android eMMC mkmmc-android.sh hacking # # . 有空解读一下android的分区文件. # . 代码来源:https://github.com ...
- I.MX6 mkuserimg.sh hacking
/*********************************************************************** * I.MX6 mkuserimg.sh hackin ...
- I.MX6 eMMC 中启动U-boot存放的首地址
/************************************************************************************ * I.MX6 eMMC 中 ...
- I.MX6 Linux U-boot 环境变量解析
/********************************************************************************** * I.MX6 Linux U- ...
- I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking
/******************************************************************** * I.MX6 mfgtool2-android-mx6q- ...
随机推荐
- JDBC连接数据库(一)
原文地址http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个步 ...
- [环境配置] 如何为Apache绑定多IP多域名
在Apache服务器上绑定方法比较简单,主要因为Apache是个开源独立的服务器软件,而且支持跨平台安装和配置,支持丰富的API扩展,所以很多人对Apache的好感要甚于IIS,Apache的优点就不 ...
- Linux 基础 —— Linux 进程的管理与监控
这篇文章主要讲 Linux 中进程的概念和进程的管理工具.原文:http://liaoph.com/inux-process-management/ 进程的概念 什么是进程 进程(Process)是计 ...
- INNODB索引与算法
在之前的博文中简单提到了索引的分类与索引的可选择性查看:Click HERE 这片博客主要包含内容:索引组织表,索引算法B+树简单介绍 索引组织表 在innodb存储引擎中,表都是根据主键顺序组织存放 ...
- object类之toString方法
object是所有类的基类 如果没有使用extends关键字指明其基类,则默认基类为object类 public class Person{ ........ } 等价于: public class ...
- Element-UI中Upload上传文件前端缓存处理
Element-UI对于文件上传组件的功能点着重于文件传递到后台处理,所以要求action为必填属性.但是如果需要读取本地文件并在前端直接处理,文件就没有必要传递到后台,比如在本地打开一个JSON文件 ...
- JAVA面试题整理(6)-JVM
JVM 1.详细jvm内存模型 2.讲讲什么情况下回出现内存溢出,内存泄漏? 3.说说Java线程栈 4.JVM 年轻代到年老代的晋升过程的判断条件是什么呢? 5.JVM 出现 fullGC 很频繁, ...
- linux及安全第八周总结——20135227黄晓妍
实验部分 实验环境搭建 -rm menu -rf git clone https://github.com/megnning/menu.git cd menu make rootfs qemu -ke ...
- luogu P1605 迷宫
https://www.luogu.org/problem/show?pid=1605 就很实在的深搜 我就是模拟的地图搜索 没想到竟然1A了 给了我很大的信心 #include<bit ...
- Codeforces Beta Round #57 (Div. 2) A,B,C,D,E
A. Ultra-Fast Mathematician time limit per test 2 seconds memory limit per test 256 megabytes input ...