Android eMMC Booting

來源:互聯網
上載者:User
Android eMMC Booting 
Contents

 [hide]

  • 1 eMMC binaries

    • 1.1 Creating the GPT table
    • 1.2 Modifying .IMG Files
    • 1.3 TI Android build setup
[edit]eMMC binaries

This is the efi partition table as exists on the emmc

Sector#    Size Name    256     128K xloader    512     256K bootloader   2048       8M recovery                                                        18432       8M boot                                                            34816     512M system                                                        1083392     256M cache                                                         1607680     512M userdata                                                      2656256    2183M media
[edit]Creating the GPT table
On Target
  1. Connect a USB cable to the OTG port on your platform
  2. Boot your platform up with a stock u-boot and MLO
  3. Once you platform is booted you will see the following:
Fastboot entered...
On Host Machine

locate fastboot in you android filesystem

cd $mydroid/out/host/linux-x86/bin/fastboot

Search for fastboot devices

fastboot devices

Create GPT table on eMMC/SD card

fastboot oem format

From the android build these are the binaries that go into each partition:

 Sector#    Size Name            Binary    256     128K xloader         MLO    512     256K bootloader      u-boot.bin   2048       8M recovery        recovery.img                                                      18432       8M boot            boot.img                                    34816     512M system          system.img                                      1083392     256M cache           cache.img                                    1607680     512M userdata        userdata.img                                     2656256    2183M media           none

 

File locations
  • MLO --> x-loader/MLO
  • u-boot --> u-boot/u-boot.bin
  • boot.img --> need to create using zImage + ramdisk.img
  • recovery.img ---> need to create using zImage + ramdisk-recovery.img
  • system.img --> $mydroid/out/target/product/<platform>/system.img
  • cache.img -->
  • userdata.img --> $mydroid/out/target/product/<platform>/userdata.img

 

All these partitions can be flashed with the given binary using fastboot.

 fastboot flash <name> <binary>

Example flashing of all partitions

 fastboot flash xloader     MLO fastboot flash bootloader  u-boot.bin fastboot flash recovery    recovery.img fastboot flash boot        boot.img fastboot flash system      system.img fastboot flash cache       cache.img fastboot flash userdata    userdata.img
[edit]Modifying .IMG Files

Typically when you want to modify any of the partitions, you would need to unzip-modify-rezip and then fastboot flash.

Following section talks about how to do that for each partition

BOOT.IMG

 boot.img = zImage + ramdisk.img zImage = kernel image ramdisk.img = out/target/product/blaze/root/ %./out/host/linux-x86/bin/mkbootimg  --kernel zImage  --ramdisk ramdisk.img  --base 0x80000000  --cmdline "console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M androidboot.console=ttyO2"  --board omap4  -o boot.img.new Output: boot.img.new **Note: bootarg is passed to kernel via --cmdline option above

To "just" boot boot.img (before flashing) you can use:

%fastboot boot boot.img

RAMDISK.IMG

 %mkdir root %cd root %gunzip -c ../ramdisk.img | cpio -i <make changes to root/ contents...> %./out/host/linux-x86/bin/mkbootfs root/ | ./out/host/linux-x86/bin/minigzip >ramdisk.img.new #output: ramdisk.img.new ** Note: any init.rc changes will need to use this method

RECOVERY.IMG

Is just like boot.img. recovery.img = zImage + ramdisk-recovery.img*Follow the same steps as boot.img for packing/unpacking

SYSTEM.IMG

 #uncompress %./out/host/linux-x86/bin/simg2img system.img system.img.raw #mount to directory mnt-point/ %mkdir mnt-point %sudo mount -t ext4 -o loop system.img.raw mnt-point/ #modify any .so or apk in the mnt-point/ directory #rezip %sudo out/host/linux-x86/bin/make_ext4fs -s -l 512M -a system system.img.new mnt-point/ %sudo umount mnt-point/ Output: system.img.new

Instead of having to reflash the whole big system.img, one can selective update any binary in /system folder on running target

%adb remount%adb push <local> <remote>Eg: %adb remount%adb push out/target/product/blaze/obj/lib/overlay.omap4.so /system/lib/hw/overlay.omap4.so%adb sync

USERDATA.IMG

 #uncompress %./out/host/linux-x86/bin/simg2img userdata.img userdata.img.raw #mount to directory mnt-point/ %mkdir mnt-point %sudo mount -t ext4 -o loop userdata.img.raw mnt-point/ #modify any .so or apk in the mnt-point/ directory #rezip #%sudo ./out/host/linux-x86/bin/make_ext4fs -s -l 512M -a userdata userdata.img.new mnt/ # Above command won't work on GB/HC. For GB/HC, please use the following updated command %sudo ./out/host/linux-x86/bin/make_ext4fs -s -l 512M -a data userdata.img.new mnt/ %sudo umount mnt-point/ Output: userdata.img.new

CACHE.IMG

 #This is empty ext4 fs image %mkdir mnt-point/ %sudo ./make_ext4fs -s -l 256M -a cache cache.img mnt-point/ Output: cache.img
[edit]TI Android build setup

Copy kernel zImage, u-boot.bin and MLO for your board in folder device/ti/blaze/boot/.

Rename as:

 %mv MLO MLO_es2.2_emu  or  %mv MLO MLO_es2.2_gp  (based on your board being GP or EMU)

Next start standard android build and all img files are generated in:

out/target/product/blaze/*.img

A script is introduced in TI Android release to make this flashing process easier: device/ti/blaze/boot/fastboot.sh

Usage:cd device/ti/blaze/boot/%fastboot.sh --emuor%fastboot.sh --gp

Running this script will flash whole android system on your board.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.