问题描述
对Android设备进行root的过程产生了一些疑问。他认为如果设备出现了问题,可以使用类似于在PC上使用Live CD或直接将磁盘映像写入/dev/sda
的方式来修复。然而,他想知道为什么Android设备不能像外部硬盘那样直接挂载。他是否存在一些真正的技术限制,与闪存等硬件有关,这与PC或笔记本电脑有何不同?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
Android设备不能直接挂载的原因在于制造商试图阻止在手机平台上选择软件的可能性。PC设计在很长一段时间内一直具有选择软件平台的特点,虽然随着Windows 8设备上的安全启动功能的推出,这种特点可能正在逐渐消失。
方案2
Android设备无法直接挂载是因为需要一些软件来在手机和计算机之间进行通信。手机需要涉及整个软件堆栈,因为它需要考虑在运行时挂载设备时发生的情况。此外,手机上通常有多个分区,原始挂载将在计算机的文件管理器中显示所有原始系统文件,这将是不好的,而且像Windows之类的操作系统可能会尝试格式化Linux分区,因为它无法理解这些分区。在新型设备上,甚至无法进行普通的USB存储挂载,而必须使用MTP,因为它们使用的是内部存储,仍然需要在挂载时可访问。从技术上讲,他们可以制作一种某种故障安全的原始挂载模式,当设备关机时(或在按下某个按钮启动时)插入电源时,但他们没有这样做,他们提供了其他恢复方法。此外,通常需要以某种方式安装固件,有一些脚本等在运行以设置事物。如果您完全砖化了手机,那么您无法做太多事情。
尽管如此,现代Android手机的刷机并不太有风险,实际上很难完全砖化它。首先,实际上有几个图像可以刷:
- Boot loader(HBOOT)
- Radio firmware
- Recovery Firmware
- ROM Firmware
在刷机较老的设备时确实存在一些问题。具体来说,如果您以错误的顺序刷入它们,并且版本不匹配,则可能会完全砖化手机。但我相信这主要是第一/第二代Android手机的问题,我在新手机上没有看到这个问题(而且您可能不应该刷入不同地区的无线电,因为您可能会失去特殊功能,比如“澳大利亚的高清语音”)。现在,要完全砖化设备,您需要完全无法进入HBOOT、Recovery和主要ROM。如果您可以进入其中任何一个,那么应该可以从中刷入固件(虽然在某些情况下,它们可能已启用安全功能,这意味着您只能刷入官方的官方固件,但通常可以打破限制,刷入任何您想要的固件)。HBOOT允许快速刷机。恢复和主要ROM都有刷机二进制文件。最后,如果您确实成功砖化了它,您可以考虑使用JTAG进行逆向修复。这可能需要将一根电缆焊接到手机的主板上,以及一根(便宜的)电缆。以及一些专业知识。
方案3
典型Android设备的根文件系统无法挂载,因为没有办法与其进行接口,以便挂载它。根文件系统通常存储在焊接到手机主板的闪存芯片中。当手机启动时,它会运行一个引导加载程序(也在闪存中),该加载程序不提供任何运行用户提供的软件的选项。闪存被软件锁定,引导加载程序不提供“解锁”选项。USB端口连接到CPU,没有办法让CPU运行代码来挂载根文件系统。由引导加载程序加载的代码只会给您提供有限的访问权限,不包括对闪存设备的原始读/写。因此,有必要找到某种方法来打破此安全链以修改根文件系统。这种疯狂的做法有两个原因。主要原因是允许销售与单个载体绑定的补贴手机。次要原因是为了使Android设备更加可靠,因为用户无法(无论是故意还是通过无意中触发的恶意软件)将设备损坏到无法恢复的程度。