Android 设备启动过程概述与常见问题解答

7次阅读
没有评论

问题描述

对 Android 设备的启动过程有了部分理解,但对于详细的操作流程及相关术语仍有疑问。以下是对该用户提问的具体内容:

  • 主设备中包含了一块主要闪存,且通常将 microSD 卡作为额外存储使用,不用于启动过程。
  • 处理器集成在 SoC(系统芯片)内,并带有类似 BIOS 的 ROM 或者说是一段固件代码。用户疑问是否这部分ROM与主闪存分离。
  • 主闪存中包含 Linux 内核和根文件系统的一部分。安装新的 ROM 其实是对这个根文件系统的修改操作。
  • 设备启动时,处理器执行 BIOS(实际上更像是一个引导加载程序)的部分来加载内核到内存中再运行它。此时设备进入相对常规的 Linux 状态。
  • 在BIOS执行过程中,可以通过某些按钮访问基本的功能,并可以选择重新刷写主存储器以恢复出厂设置。

那么,如果所有这些正确的话,被砖(bricked)的设备还能通过刷入一个正常 ROM 来修复吗?最糟糕的结果不过是需要再一次进行刷写操作。另外,是否还有其他方式引导这类设备?比如说使用 microSD 卡携带内核和文件系统?这种方案显然依赖于设备对 microSD 的支持。
– 什么是软砖(soft brick)与硬砖(hard brick)的区别?

用户提出了两个关键点的疑问:
1. 软砖与硬砖之间的区别。
2. 是否还有其他方式引导这类设备。

解决方案

正确理解及部分知识确认

您已大致正确地描述了 Android 设备的基本启动过程:

  • 闪存主要用于引导加载程序(类似于 BIOS),用于在设备上电时加载内核。microSD 卡通常作为扩展存储使用,不会干预引导过程。
  • 系统固件与 Linux 内核及文件系统分隔开来,在刷ROM的时候主要涉及修改的是这些文件系统的部分而不是整个系统固件本身。这也就是所谓的“刷机”,用户可以在保持内核不变的情况下更新或定制设备的软件环境。

软砖(soft brick)与硬砖(hard brick)

  • 软砖:通常可以通过重新刷入正确的固件或者更新相关校验码来解决问题,是一种相对简单的修复方式。
  • 用户在论坛中找到了一个很好的资源对这个概念做了详细的解释说明。可以参考:
    http://forums.androidcentral.com/android-4-1-4-2-4-3-jelly-bean/303013-what-difference-between-hard-soft-brick.html

  • 硬砖:通常指的是由于硬件上的严重损坏或固件内的不可逆转错误导致设备无法启动。

  • 单独使用软件手段不能有效解决问题,很多时候需要通过 JTAG 或其他复杂方法来尝试恢复。
  • 用户提到的 JTAG 方案确实比较棘手,并不适用于所有类型的设备。

关于引导其他方式

理论上对于某些支持 microSD 的 Android 设备来说,可以编写自定义启动配置并在 SD 卡中放置一个引导文件来进行替换式引导(即通过 microSD卡加载用户指定内核和根文件系统)。不过由于这个过程较为复杂且高度依赖设备实现细节,通常只有专业人士才会考虑这种做法。
– 不过大多数 Android 设备并不支持从外部存储直接启动。对于那些允许这种操作的特殊型号,则需自行研究具体的硬件兼容性问题并进行相应的技术准备。

如有关于更多深入了解设备底层或刷机具体技术流程的需求,推荐阅读官方或权威社区发布的文档和教程会十分有助于理解这些问题。希望这些信息能够帮助到您。

正文完