Raspberry Pi上的iOS


13

现在,我知道这样做可能不切实际,但是出于“因为我可以”的原因,我想尝试在Raspberry Pi上安装iOS。(当它最终出现时..)

我到处都是关于此事的帖子,他们似乎暗示由于硬件限制,可能可以运行iOS 3,但这真的有多难?几年前,我安装了几台OS X86机器,尽管最终还是很痛苦。(明显)

所以我的总体问题是,我应该如何做/学习才能在Raspberry Pi上安装iOS?


我通常会回答“不,在最近的这段时间里,您无法安装Windows或其他linux发行版,因为它们仅是x86”,但然后我就像……iOS……ARM……好主意: P
亚历山大–恢复莫妮卡2012年

1
我认为idevice硬件过于专业,以至于在RPI上运行iOS的任何希望……图形接口,USB支持,基于usbm的以太网等。–
Alexander-Reinstate Monica

@XAleXOwnZX看,现在我不确定。尽管有时会变得很困难,但您始终可以编写驱动程序!我预计最有问题的部分将是UI端。
米克麦卡勒姆

您将如何与之交互?自iPad 5上的iOS 5开始,iOS并未引入对键盘和鼠标的支持。我的意思是,将不会像当前的iPad那样使用蓝牙鼠标来支持鼠标光标
Alexander-Reinstate Monica

1
@XAleXOwnZX我可以肯定,几乎所有现有的Linux发行版都可以让您编译自己的内核,甚至可以预编译ARM软件包,因此我认为告诉人们“您无法安装Windows或其他Linux发行版”是错误的
彼得

Answers:


19

尽管Apple的iOS对用户有吸引力,但如果您是发烧友(因为您必须拥有Raspberry Pi)或开发人员,那么iOS对您来说最不友好。

iOS是为Apple的iPad或iPhone的每种型号专门编译的,并为此平台专门集成了硬件和软件。本质上,所有软件都是一个巨大的二进制blob。有人在评论中提到,Raspberry Pi和某些型号的iPhone之间在硬件上有很多相似之处。要使iOS在Raspberry Pi上运行,您最大的希望是为硬件与Raspberry Pi最相似的手机查找固件映像,然后尝试使其运行。但是,像大多数特定于平台的编译映像一样,即使正在运行的环境与预期的环境发生微小的差异,也可能会导致系统无法启动。如果这样的话 那么最有可能的是,您将不得不进行逆向工程,并使用不同的硬件驱动程序或配置来入侵二进制Blob。这可能是非常不平凡的,甚至对于一支有能力且经验丰富的工程师团队也将证明具有挑战性。

因此,对于Raspberry Pi和iOS的使用,必须非常了解iPhone不同型号的特定硬件,以及非常了解低级启动过程。此外,了解一下iOS的体系结构,据我所知,该体系结构模糊地基于达尔文系统。为此,您可以研究不同的越狱方法及其工作方式。

同样值得注意的是,此类行为的合法性值得怀疑,因为可能会多次违反EULA,最明显的是规定Apple的操作系统只能在Apple硬件上运行。越狱在技术上是合法的,但是逆向工程有时仅受到法律的保护,而且从未真正应用过。Cydia项目及其上的许多应用程序都可以对iOS进行一些微调的自定义。有关如何执行此操作的知识可能与使其在Raspberry Pi上运行的知识重叠。

就是说,我看到了一些惊人而艰巨的项目,因为一群敬业的开发人员和黑客聚集在一起实现了一个共同的目标,例如Xbox-Linux项目或您所指出的OSx86项目。在Raspberry Pi上运行iOS当然不是不可能的,但是可行的做法并不总是可行的。Android是开源的,您可能会获得更多的乐趣,而麻烦更少。就是说,有坚强的意志就有办法。


0

我会说最好的选择是对整个启动映像进行反编译,然后从下至上对其进行重构,以使其适应pi规范。这样做的问题是,您将需要非常广泛的多种语言编码知识(设计此语言的人需要多年的工作以及特定的培训)。这几乎是不可能的,但是有机会...


0

我不确定,但是iOS的第一个版本是为Armv6之类的产品制作的,因此硬件可能很相似,并且您需要为系统制作一些图形扩展程序((我不知道您是否能够移植复杂的图形加速器)和所有硬件,例如端口,控制器和内存。我发现了这个,但是还处于初始状态。 http://winocm.com/projects/research/2013/11/22/milestone-one/, 因此尝试为RPi定制Mach / xnu内核并启动它,然后看看会发生什么

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.