@oro-oro
2016-01-13T16:17:38.000000Z
字数 2607
阅读 2324
Flash
partition
类似Linux,每台手机都会有自己的分区,不同的ROM的分区可能不一样,如果ROM的分区表跟手机上的分区不一样的话,肯定刷不进去的。所以,要刷CM的话,得确保其分区跟手机上的分区是否一致。
譬如,motorola moto XT1085国行 要刷CM12的话,那么就需要先刷国外的基带VICTARA_USC_XT1093_5.1_LPE23.32-21.3_cid9_CFC
,因为国行跟国外的ROM的分区不一样,而CM则是基于国外的ROM做出来的。
fastboot flash partition gpt.bin
分区
logo
开机画面,fastboot flash logo logo.bin
。
boot
system/core/mkbootimg/bootimg.h
:
struct boot_img_hdr
{
unsigned char magic[BOOT_MAGIC_SIZE];
unsigned kernel_size; // kernel
unsigned kernel_addr;
unsigned ramdisk_size; // ramdisk
unsigned ramdisk_addr;
unsigned second_size; // second stage loader
unsigned second_addr;
unsigned tags_addr;
unsigned page_size;
unsigned unused[2];
unsigned char name[BOOT_NAME_SIZE]
unsigned char cmdline[BOOT_ARGS_SIZE]
unsigned id[8]; //存放时间戳,校验和,SHA加密等内容
}
/system/core/mkbootimg/mkbootimg.c
:
int usage(void)
{
fprintf(stderr,"usage: mkbootimg\n"
" --kernel <filename>\n"
" --ramdisk <filename>\n"
" [ --second <2ndbootloader-filename> ]\n"
" [ --cmdline <kernel-commandline> ]\n"
" [ --board <boardname> ]\n"
" [ --base <address> ]\n"
" [ --pagesize <pagesize> ]\n"
" -o|--output <filename>\n"
);
return 1;
}
boot.img 的结构主要包含了 kernel 和 ramdisk。
ramdisk 是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,以下是一个典型的ramdisk中包含的文件列表:
将 boot.img 刷入 boot 分区的命令:
fastboot flash boot boot.img
recovery
要刷CM ROM,必须先刷CM的Recovery,再通过这个去更新boot.img和system.img。
fastboot flash recovery recovery.img
进 Recovery 的方法,不同的厂商的手机,可能会不一样,具体的话,需要上网查。
通常进Factory模式的方式都一样,【电源键】+【音量-】,如果里面有Recovery选项,则可以考虑从里面进入;否则,需要开机后,使用特定组合的按键才可以进入。
譬如:
XT1085,在Factory模式中,【音量-】移动,【音量+】确认。
【音量-】移动到Recovery,【音量+】确认,黑屏,看到一个倒地机器人。
按住【音量增大键】 再按【开关机键】一下,松开【开关机键】,最后才进入Recovery模式。
刷入新ROM的方法有2:
1、SDCARD
2、adb sideload
system
fastboot flash system system.img
系统更新主要是这个。
modem
fastboot flash modem NON-HLOS.bin
modem(网络)相关的东西,wifi、sim卡信号问题,都可能跟这个有关。
XT1085刷VICTARA_USC_XT1093_5.1_LPE23.32-21.3_cid9_CFC
完整的刷机脚本如下:
fastboot getvar max-sparse-size
fastboot oem fb_mode_set
fastboot flash partition gpt.bin
fastboot flash motoboot motoboot.img
fastboot flash logo logo.bin
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img_sparsechunk.0
fastboot flash system system.img_sparsechunk.1
fastboot flash system system.img_sparsechunk.2
fastboot flash system system.img_sparsechunk.3
fastboot flash system system.img_sparsechunk.4
fastboot flash system system.img_sparsechunk.5
fastboot flash system system.img_sparsechunk.6
fastboot flash system system.img_sparsechunk.7
fastboot flash system system.img_sparsechunk.8
fastboot flash modem NON-HLOS.bin
fastboot erase modemst1
fastboot erase modemst2
fastboot flash fsg fsg.mbn
fastboot erase customize
fastboot erase clogo
fastboot oem fb_mode_clear
fastboot -w
fastboot reboot