![为什么在 Android 手机上安装自定义操作系统那么困难?](https://linux22.com/image/182315/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%20Android%20%E6%89%8B%E6%9C%BA%E4%B8%8A%E5%AE%89%E8%A3%85%E8%87%AA%E5%AE%9A%E4%B9%89%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%82%A3%E4%B9%88%E5%9B%B0%E9%9A%BE%EF%BC%9F.png)
据我了解,一旦引导加载程序解锁,在 Android 设备上安装您选择的(支持 Arm 的)Linux 发行版应该不会有太大问题。
我的想法基本上是:一旦我们解锁了引导加载程序,Android 手机和其他 Arm 计算机有什么区别?
我想到了一些可能的解释:
主线Linux内核不支持硬件;某些设备驱动程序仅在制造商构建的内核上可用。但,我很难想象默认的 Linux 内核对几乎所有类型的设备都没有硬件支持,特别是因为这些内核模块必须存在,因为这些设备都运行 Android。
真正解锁引导加载程序是一种幻觉,当某人认为自己“解锁”引导加载程序时通常获得的控制仍然非常有限。我必须诚实地说,我对引导加载程序的了解非常实用且有限,所以我不确定如何理解这个理论。
请忽略所有关于在智能手机上运行 Debian 之类的东西是否有用的担忧,我真的只是想找出为什么这似乎是一件如此困难的事情。
答案1
手机中的许多设备都带有纯二进制驱动程序(模块),所以您是完全正确的。这就是为什么 Google 希望用自己的稳定 API/ABI 内核 (Zircon) 替换 Linux 内核 - 它将允许您在使用相同的二进制驱动程序的同时使内核保持更长时间的更新。
其次,即使某个设备已知,它也可能需要大量的怪癖才能正常工作,例如智能手机上的音频编解码器处理如此多的输入和输出(模拟/数字/蓝牙/等),它可能根本无法正常工作或者根本无需供应商的配置文件即可工作。
解锁引导加载程序确实允许您覆盖内部存储上的所有数据,但在大多数情况下您无法更改供应商分区方案。
总而言之,在智能手机上安装自定义操作系统并不困难,但要让一切正常运行却极其困难。