#                   AM335x Android eMMC mkmmc-android.sh hacking
#
# . 有空解读一下android的分区文件。
# . 代码来源:https://github.com/hendersa/bbbandroid-external-ti_android_utilities/blob/master/am335x/mk-mmc/mkmmc-android.sh
#
# -- 深圳 南山平山村 曾剑锋 #!/bin/bash # 如果参数只有一个,这里就会使用默认文件夹下的程序,mkmmc-android.sh会重新调用,执行完再退出
EXPECTED_ARGS=
if [ $# == $EXPECTED_ARGS ]
then
echo "Assuming Default Locations for Prebuilt Images"
$ $ Boot_Images/MLO Boot_Images/u-boot.img Boot_Images/zImage Boot_Images/uEnv.txt Boot_Images/dtbs/am335x-boneblack.dtb Filesystem/rootfs* Media_Clips START_HERE
exit
fi # 六个参数,一个都不能少
if [[ -z $ || -z $ || -z $ || -z $ || -z $ || -z $ ]]
then
echo "mkmmc-android Usage:"
echo " mkmmc-android <device> <MLO> <u-boot.img> <zImage> <uEnv.txt> <am335x-boneblack.dtb> <rootfs tar.bz2> <Optional Media_Clips> <Optional START_HERE folder>"
echo " Example: mkmmc-android /dev/sdc MLO u-boot.img zImage uEnv.txt am335x-boneblack.dtb rootfs.tar.bz2 Media_Clips START_HERE"
exit
fi # 判断文件是否存在
if ! [[ -e $ ]]
then
echo "Incorrect MLO location!"
exit
fi if ! [[ -e $ ]]
then
echo "Incorrect u-boot.img location!"
exit
fi if ! [[ -e $ ]]
then
echo "Incorrect zImage location!"
exit
fi if ! [[ -e $ ]]
then
echo "Incorrect uEnv.txt location!"
exit
fi if ! [[ -e $ ]]
then
echo "Incorrect am335x-boneblack.dtb!"
exit
fi if ! [[ -e $ ]]
then
echo "Incorrect rootfs location!"
exit
fi # 提示信息
echo "All data on "$" now will be destroyed! Continue? [y/n]"
read ans
if ! [ $ans == 'y' ]
then
exit
fi # 卸载所有$1分区挂载
echo "[Unmounting all existing partitions on the device ]" umount $* echo "[Partitioning $1...]" # 擦除分区表
DRIVE=$
dd if=/dev/zero of=$DRIVE bs= count= &>/dev/null # 获取eMMC相关信息
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'` echo DISK SIZE - $SIZE bytes CYLINDERS=`echo $SIZE/// | bc` # 分区,并设置boot分区
echo CYLINDERS - $CYLINDERS
{
echo ,,0x0C,*
echo ,$(expr $CYLINDERS / ),,-
echo ,$(expr $CYLINDERS / ),,-
echo ,,0x0C,-
} | sfdisk -D -H -S -C $CYLINDERS $DRIVE &> /dev/null echo "[Making filesystems...]" if [[ ${DRIVE} == /dev/*mmcblk* ]]
then
DRIVE=${DRIVE}p
fi # 格式化分区
mkfs.vfat -F 32 -n boot ${DRIVE}1 &> /dev/null
mkfs.ext4 -L rootfs ${DRIVE}2 &> /dev/null
mkfs.ext4 -L usrdata ${DRIVE}3 &> /dev/null
mkfs.vfat -F 32 -n data ${DRIVE}4 &> /dev/null echo "[Copying files...]" # 挂载并拷贝文件到分区1
mount ${DRIVE}1 /mnt
cp $2 /mnt/MLO
cp $3 /mnt/u-boot.img
cp $4 /mnt/zImage
cp $5 /mnt/uEnv.txt
mkdir /mnt/dtbs
cp $6 /mnt/dtbs/am335x-boneblack.dtb if [ "$9" ]
then
echo "[Copying START_HERE folder to boot partition]"
cp -r $9 /mnt/START_HERE
fi # 卸载分区
umount ${DRIVE}1 # 拷贝文件系统内容到分区2
mount ${DRIVE}2 /mnt
tar jxvf $7 -C /mnt &> /dev/null
chmod 755 /mnt
umount ${DRIVE}2 # 拷贝data到数据分区
if [ "$8" ]
then
echo "[Copying all clips to data partition]"
mount ${DRIVE}4 /mnt
cp -r $8/* /mnt/
umount ${DRIVE}4
fi echo "[Done]"

AM335x Android eMMC mkmmc-android.sh hacking的更多相关文章

  1. Android eMMC Booting

    Android eMMC Booting Contents [hide] 1 eMMC binaries 1.1 Creating the GPT table 1.2 Modifying .IMG F ...

  2. Android Mokoid Open Source Project hacking

    /***************************************************************************** * Android Mokoid Open ...

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

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

  4. 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 ...

  5. 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中 ...

  6. ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking # 说明: # 本文主 ...

  7. 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 # 说明: # 本文主要对T ...

  8. ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking

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

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

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

随机推荐

  1. disruptor 核心链路应用场景

    核心链路一般比较复杂并且需要考虑:服务之间相互依赖性.流程能够走完.人员的变动等情况 要考虑:兜底.补偿. 常见解决方案是:1)完全解耦 2)模板模式 其他解决方案:1)有限状态机框架:spring- ...

  2. java学习笔记总略

    二.正文(一)Java1.接口和抽象类的区别①抽象类里可以有构造方法,而接口内不能有构造方法.②抽象类中可以有普通成员变量,而接口中不能有普通成员变量.③抽象类中可以包含非抽象的普通方法,而接口中所有 ...

  3. Ubuntu 16.04安装IntelliJ IDEA时快捷键冲突设置

    解决快捷键冲突可以有如下方法: 1.直接修改IDEA的,但是不建议这么干,因为多平台时,或者去到另外一台电脑时,统一的快捷键能更快的适应新的开发环境. 2.通过修改系统默认的快捷键. 3.就这两种方式 ...

  4. lib无法访问另外lib中的头文件

    工程中app已经有设置User Header Search Paths来包含了需要的头文件,但是个别的lib依然找不到头文件.解决方法: 选择这个lib,在Build Settings中查找选项Use ...

  5. Python爬虫简单实现之Q乐园图片下载

    根据需求写代码实现.然而跟我并没有什么关系,我只是打开电脑望着屏幕想着去干点什么,于是有了这个所谓的“需求”. 终于,我发现了Q乐园——到底是我老了还是我小了,这是什么神奇的网站,没听过啊,就是下面酱 ...

  6. 一个能自己主动搜索源文件并自己主动推导的Makefile

    今天看了一天的makefile的写法.东拼西凑.好不easy写出了一个makefile.颇有成就感,记录下来,以备温习之用. 如果有两个头文件文件夹 header1,header2;两个cpp文件文件 ...

  7. poj(1011)——Sticks(经典的dfs+剪枝)

    题目的大致意思是: 如今有n根木棍,然后须要把它们拼成相同长度的木棍,问满足这个条件的最短的长度是多少? 想法嘛:那肯定是dfs把长度搜一遍就好,但问题的关键是这里会超时.那么就要用到剪枝的原理了. ...

  8. weexapp 开发流程(一)开发环境配置

    1.创建项目 weexpack create weexapp 2.安装必要插件 npm i jwt-simple vue-resource vue-router vuex vuex-router-sy ...

  9. UI标签库专题二:JEECG智能开发平台Column(列) 子标签

    UI标签库专题二:JEECG智能开发平台Column(列) 子标签  1.1. Column(列) 子标签 1.1.1. 演示样例 <t:dgCol title="年龄" ...

  10. hdu 1250 Hat&#39;s Fibonacci

    pid=1250">点击此处就可以传送hdu 1250 Problem Description A Fibonacci sequence is calculated by adding ...