eMMC binaries
This is the efi partition table as exists on the emmcSector# 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
Creating the GPT table
- On Target
- Connect a USB cable to the OTG port on your platform
- Boot your platform up with a stock u-boot and MLO
- Once you platform is booted you will see the following:
Fastboot entered...
- On Host Machine
cd $mydroid/out/host/linux-x86/bin/fastbootSearch for fastboot devices
fastboot devicesCreate GPT table on eMMC/SD card
fastboot oem formatFrom 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
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.imgTo "just" boot boot.img (before flashing) you can use:
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
%fastboot boot boot.imgRAMDISK.IMG
%mkdir rootRECOVERY.IMG
%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
Is just like boot.img.SYSTEM.IMG
recovery.img = zImage + ramdisk-recovery.img
*Follow the same steps as boot.img for packing/unpacking
#uncompressInstead of having to reflash the whole big system.img, one can selective update any binary in /system folder on running target
%./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
%adb remountUSERDATA.IMG
%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
#uncompressCACHE.IMG
%./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/
%sudo umount mnt-point/
Output: userdata.img.new
#This is empty ext4 fs image
%mkdir mnt-point/
%sudo ./make_ext4fs -s -l 256M -a cache cache.img mnt-point/
Output: cache.img
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_emuNext start standard android build and all img files are generated in:
or
%mv MLO MLO_es2.2_gp
(based on your board being GP or EMU)
out/target/product/blaze/*.imgA script is introduced in TI Android release to make this flashing process easier: device/ti/blaze/boot/fastboot.sh
Usage:Running this script will flash whole android system on your board.
cd device/ti/blaze/boot/
%fastboot.sh --emu
or
%fastboot.sh --gp
0 nhận xét:
Đăng nhận xét