i.mx6 Mfgtool Emmc mksdcard-android.sh hacking
Last Update:2015-10-10
Source: Internet
Author: User
<span id="Label3"></p><pre>#!/bin/<span style="color: #000000;"><span style="color: #000000;">bash# Reference Article: #</span></span><span style="color: #800080;"><span style="color: #800080;">1</span></span>. Shell Special Variables: Shell $<span style="color: #800080;"><span style="color: #800080;">0</span></span>, $#, $*, [email protected], $?<span style="color: #000000;"><span style="color: #000000;">, $$ and command line arguments # http:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">c.biancheng.net/cpp/view/2739.html</span></span><span style="color: #000000;"><span style="color: #000000;"># </span></span><cmd state=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Updater</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>Type=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Push</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>body=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Send</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">file</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Mksdcard-android.sh.tar</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>>sending Partition shell</cmd><span style="color: #000000;"><span style="color: #000000;"># </span></span><cmd state=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Updater</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>Type=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Push</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>body=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">$ tar XF $FILE</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>> partitioning...</cmd><span style="color: #000000;"><span style="color: #000000;"># </span></span><cmd state=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Updater</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>Type=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Push</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>body=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">$ sh mksdcard-android.sh/dev/mmcblk0</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>> partitioning...</cmd><span style="color: #000000;"><span style="color: #000000;"># </span></span><cmd state=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Updater</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>Type=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Push</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>body=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">$ ls-l/dev/mmc*</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>>formatting SD partition</cmd><span style="color: #000000;"><span style="color: #000000;"># partition Size</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">inch</span></span><span style="color: #000000;"><span style="color: #000000;">Mbbootload_reserve</span></span>=<span style="color: #800080;"><span style="color: #800080;">8</span></span><span style="color: #000000;"><span style="color: #000000;"># bootload 8MB boot_rom_size</span></span>=<span style="color: #800080;"><span style="color: #800080;">8</span></span><span style="color: #000000;"><span style="color: #000000;"># boot ROM 8mbsystem_rom_size</span></span>=<span style="color: #800080;"><span style="color: #800080;"></span> +</span><span style="color: #000000;"><span style="color: #000000;"># system ROM 512mbcache_size</span></span>=<span style="color: #800080;"><span style="color: #800080;"></span> +</span><span style="color: #000000;"><span style="color: #000000;"># cache 512mbrecovery_rom_size</span></span>=<span style="color: #800080;"><span style="color: #800080;">8</span></span><span style="color: #000000;"><span style="color: #000000;"># recovery ROM 8mbvender_size</span></span>=<span style="color: #800080;"><span style="color: #800080;">8</span></span><span style="color: #000000;"><span style="color: #000000;"># supplier 8mbmisc_size</span></span>=<span style="color: #800080;"><span style="color: #800080;">8</span></span><span style="color: #000000;"><span style="color: #000000;"># Miscellaneous 8MBhelp () {#</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">basename</span></span><span style="color: #000000;"><span style="color: #000000;">String [Suffix]#</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">basename</span></span>command to read the String parameter and delete the<span style="color: #000000;"><span style="color: #000000;">(slash) at the end of the prefix and any specified Suffix parameters, # and write the remaining base file names to the standard Output. Bn</span></span>=`<span style="color: #0000ff;"><span style="color: #0000ff;">basename</span></span>$<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">`</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Cat</span></span><<<span style="color: #000000;"><span style="color: #000000;">eofusage $bn</span></span><option><span style="color: #000000;"><span style="color: #000000;">device_nodeoptions:</span></span>-<span style="color: #000000;"><span style="color: #000000;">h displays</span> this help message</span>-<span style="color: #000000;"><span style="color: #000000;">s only get partition size</span></span>-<span style="color: #000000;"><span style="color: #000000;">NP not Partition. </span></span>-<span style="color: #000000;"><span style="color: #000000;">F Flash Android Image. eof}# Check</span> the</span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>Root?<span style="color: #000000;"><span style="color: #000000;"># Check whether you currently have root permissions userid</span></span>=`<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span>-<span style="color: #000000;"><span style="color: #000000;">u '</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>[$userid-ne<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">0</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>];<span style="color: #0000ff;"><span style="color: #0000ff;"></span> then</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Echo</span></span> <span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;">you <span style="color: #800000;">' re not root?</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">Exit</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">fi</span></span><span style="color: #000000;"><span style="color: #000000;"># Parse Command line# parse the commands line arguments moreoptions</span></span>=<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;">node</span></span>=<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">na</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">cal_only</span></span>=<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">flash_images</span></span>=<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">not_partition</span></span>=<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">Not_format_fs</span></span>=<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;"># $#: The number of arguments passed to the script or Function. ## $ </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span>Mksdcard-android.<span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span>/dev/<span style="color: #000000;"><span style="color: #000000;">mmcblk0# $</span></span><span style="color: #800080;"><span style="color: #800080;">1</span></span>:/dev/<span style="color: #000000;"><span style="color: #000000;">mmcblk0## moreoptions:</span></span><span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;"># node:</span></span>/dev/<span style="color: #000000;"><span style="color: #000000;">mmcblk0</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> while</span>[<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">$moreoptions</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>=<span style="color: #800080;"><span style="color: #800080;">1</span></span>-a $#-GT<span style="color: #800080;"><span style="color: #800080;">0</span></span>];<span style="color: #0000ff;"><span style="color: #0000ff;"></span> do</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span>$<span style="color: #800080;"><span style="color: #800080;">1</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">inch</span></span>-<span style="color: #000000;"><span style="color: #000000;">H) help; exit;; </span></span>-s) cal_only=<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;"> ;; </span></span>-f) flash_images=<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;"> ;; </span></span>-np) not_partition=<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;"> ;; </span></span>-nf) not_format_fs=<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;"> ;; </span></span>*) moreoptions=<span style="color: #800080;"><span style="color: #800080;">0</span></span>; node=$<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;"> ;; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Esac</span></span><span style="color: #000000;"><span style="color: #000000;"> [ </span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">$moreoptions</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>=<span style="color: #800080;"><span style="color: #800080;">0</span></span>] && [$#-GT<span style="color: #800080;"><span style="color: #800080;">1</span></span>] && help &&<span style="color: #000000;"><span style="color: #000000;">Exit [</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">$moreoptions</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>=<span style="color: #800080;"><span style="color: #800080;">1</span></span>] &&<span style="color: #0000ff;"><span style="color: #0000ff;">Shift</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> done</span><span style="color: #000000;"><span style="color: #000000;"># If node device nodes do not exist, then exit the program</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>[!-e ${node}];<span style="color: #0000ff;"><span style="color: #0000ff;"></span> then</span><span style="color: #000000;">help <span style="color: #000000;">Exit</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">fi</span></span><span style="color: #000000;"><span style="color: #000000;"># call Sfdisk to create partition table# calls Sfdisk for creating partition Table # Get Total card size# Extend_size adds this component, while data_size reduces this component, The total amount of disk is unchanged seprate</span></span>=<span style="color: #800080;"><span style="color: #800080;"></span> +</span><span style="color: #000000;"><span style="color: #000000;"> # </span></span>-s [or--show-<span style="color: #000000;">size <span style="color: #000000;">]: Displays the sizes of a partition in Kilobytes. Total_size</span></span>= ' sfdisk-<span style="color: #000000;"><span style="color: #000000;">s ${node} ' total_size</span></span>=`<span style="color: #0000ff;"><span style="color: #0000ff;">Expr</span></span>${total_size}/<span style="color: #800080;"><span style="color: #800080;">1024x768</span></span><span style="color: #000000;"><span style="color: #000000;">' # recalculate, convert units to Mbboot_rom_sizeb</span></span>=`<span style="color: #0000ff;"><span style="color: #0000ff;">Expr</span></span>${boot_rom_size} +<span style="color: #000000;"><span style="color: #000000;">${bootload_reserve} ' Extend_size</span></span>=`<span style="color: #0000ff;"><span style="color: #0000ff;">Expr</span></span>${system_rom_size} + ${cache_size} + ${vender_size} + ${misc_size} +<span style="color: #000000;"><span style="color: #000000;">${seprate} ' Data_size</span></span>=`<span style="color: #0000ff;"><span style="color: #0000ff;">Expr</span></span>${total_size}-${boot_rom_sizeb}-${recovery_rom_size}-${extend_size} +<span style="color: #000000;"><span style="color: #000000;">${seprate} ' # Create partitions</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>[<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">${cal_only}</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>-eq<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">1</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>];<span style="color: #0000ff;"><span style="color: #0000ff;"></span> then</span><span style="color: #0000ff;"><span style="color: #0000ff;">Cat</span></span><<<span style="color: #000000;"><span style="color: #000000;">eofboot: ${boot_rom_sizeb}mbrecovery: ${recovery_rom_size}mbsystem: ${system_rom_size}mbcache: ${CACHE_SIZE}MB DATA: ${data_size}mbmisc: ${misc_size}mbeofexit</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">fi</span></span><span style="color: #000000;"><span style="color: #000000;"># Destroy the partition table# delete the previous partition table, as can be seen from here, the size of the partition table seems to be 1024 bytes</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">DD</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>=/dev/zero of=${node} bs=<span style="color: #800080;"><span style="color: #800080;">1024x768</span></span>Count=<span style="color: #800080;"><span style="color: #800080;">1</span></span><span style="color: #000000;"><span style="color: #000000;">Sfdisk</span></span>--force-um ${node} <<<span style="color: #000000;"><span style="color: #000000;">eof,${boot_rom_sizeb},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">, ${recovery_rom_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">, ${extend_size},</span></span><span style="color: #800080;"><span style="color: #800080;">5</span></span><span style="color: #000000;"><span style="color: #000000;">, ${data_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">, ${system_rom_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">, ${cache_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">, ${vender_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">, ${misc_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">eof# Adjust the partition</span> reserve</span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span><span style="color: #000000;"><span style="color: #000000;">bootloader.#</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>You don<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">T put the uboot on same device, you can remove the Bootloader_erserve</span></span><span style="color: #000000;"><span style="color: #000000;"># to has 8M space.# the minimal sylinder</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span><span style="color: #000000;"><span style="color: #000000;">Some card is 4M, maybe some was 8m# just 8M</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span>Some big EMMC<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">s Sylinder</span></span># -<span style="color: #000000;"><span style="color: #000000;">n#: Change only the number of the partition #sfdisk</span></span>--force-um ${node}-n1 <<<span style="color: #000000;"><span style="color: #000000;">eof${bootload_reserve},${boot_rom_size},</span></span><span style="color: #800080;"><span style="color: #800080;"></span> the</span><span style="color: #000000;"><span style="color: #000000;">eof# for Mfgtool notes:# mfgtool use Mksdcard</span></span>-android.<span style="color: #0000ff;"><span style="color: #0000ff;">Tar</span></span><span style="color: #000000;"><span style="color: #000000;">Store this script#</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span><span style="color: #000000;">you <span style="color: #000000;">want change it.#</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> do</span><span style="color: #000000;"><span style="color: #000000;">following:#</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Tar</span></span>XF Mksdcard-android.<span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span>.<span style="color: #0000ff;"><span style="color: #0000ff;">Tar</span></span><span style="color: #000000;"><span style="color: #000000;"># </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">VI</span></span>Mksdcard-android.<span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span><span style="color: #000000;"><span style="color: #000000;"># [edit want want</span> to change]#</span><span style="color: #0000ff;"><span style="color: #0000ff;">RM</span></span>Mksdcard-android.<span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span>.<span style="color: #0000ff;"><span style="color: #0000ff;">Tar</span></span>;<span style="color: #0000ff;"><span style="color: #0000ff;">Tar</span></span>CF MKSDCARD-ANDROID.<span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span>.<span style="color: #0000ff;"><span style="color: #0000ff;">Tar</span></span>Mksdcard-android.<span style="color: #0000ff;"><span style="color: #0000ff;">SH</span></span></pre><p><p></p></p><p><p>i.mx6 Mfgtool Emmc mksdcard-android.sh hacking</p></p></span>