[关闭]
@oro-oro 2016-01-13T08:17:38.000000Z 字数 2607 阅读 2237

Android 分区介绍

Flash


手机分区介绍

  1. 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 分区

  2. logo

    开机画面,fastboot flash logo logo.bin

  3. boot

    system/core/mkbootimg/bootimg.h:

    1. struct boot_img_hdr
    2. {
    3. unsigned char magic[BOOT_MAGIC_SIZE];
    4. unsigned kernel_size; // kernel
    5. unsigned kernel_addr;
    6. unsigned ramdisk_size; // ramdisk
    7. unsigned ramdisk_addr;
    8. unsigned second_size; // second stage loader
    9. unsigned second_addr;
    10. unsigned tags_addr;
    11. unsigned page_size;
    12. unsigned unused[2];
    13. unsigned char name[BOOT_NAME_SIZE]
    14. unsigned char cmdline[BOOT_ARGS_SIZE]
    15. unsigned id[8]; //存放时间戳,校验和,SHA加密等内容
    16. }

    /system/core/mkbootimg/mkbootimg.c:

    1. int usage(void)
    2. {
    3. fprintf(stderr,"usage: mkbootimg\n"
    4. " --kernel <filename>\n"
    5. " --ramdisk <filename>\n"
    6. " [ --second <2ndbootloader-filename> ]\n"
    7. " [ --cmdline <kernel-commandline> ]\n"
    8. " [ --board <boardname> ]\n"
    9. " [ --base <address> ]\n"
    10. " [ --pagesize <pagesize> ]\n"
    11. " -o|--output <filename>\n"
    12. );
    13. return 1;
    14. }

    boot.img 的结构主要包含了 kernel 和 ramdisk。

    ramdisk 是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,以下是一个典型的ramdisk中包含的文件列表:

    • ./init.trout.rc
    • ./default.prop
    • ./proc
    • ./dev
    • ./init.rc
    • ./init
    • ./sys
    • ./init.goldfish.rc
    • ./sbin
    • ./sbin/adbd
    • ./system
    • ./data

    将 boot.img 刷入 boot 分区的命令:
    fastboot flash boot boot.img

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

  5. system
    fastboot flash system system.img
    系统更新主要是这个。

  6. modem
    fastboot flash modem NON-HLOS.bin

    modem(网络)相关的东西,wifi、sim卡信号问题,都可能跟这个有关。

Flash Script

XT1085刷VICTARA_USC_XT1093_5.1_LPE23.32-21.3_cid9_CFC完整的刷机脚本如下:

  1. fastboot getvar max-sparse-size
  2. fastboot oem fb_mode_set
  3. fastboot flash partition gpt.bin
  4. fastboot flash motoboot motoboot.img
  5. fastboot flash logo logo.bin
  6. fastboot flash boot boot.img
  7. fastboot flash recovery recovery.img
  8. fastboot flash system system.img_sparsechunk.0
  9. fastboot flash system system.img_sparsechunk.1
  10. fastboot flash system system.img_sparsechunk.2
  11. fastboot flash system system.img_sparsechunk.3
  12. fastboot flash system system.img_sparsechunk.4
  13. fastboot flash system system.img_sparsechunk.5
  14. fastboot flash system system.img_sparsechunk.6
  15. fastboot flash system system.img_sparsechunk.7
  16. fastboot flash system system.img_sparsechunk.8
  17. fastboot flash modem NON-HLOS.bin
  18. fastboot erase modemst1
  19. fastboot erase modemst2
  20. fastboot flash fsg fsg.mbn
  21. fastboot erase customize
  22. fastboot erase clogo
  23. fastboot oem fb_mode_clear
  24. fastboot -w
  25. fastboot reboot
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注