iOS em um Raspberry Pi

13

Agora, eu entendo que provavelmente seria impraticável fazê-lo, mas pelo motivo "porque eu posso" eu gostaria de tentar instalar o iOS no meu Raspberry Pi. (quando eventualmente vier ..)

Procurei posts sobre esse assunto e eles parecem sugerir que a execução do iOS 3 pode ser possível devido a restrições de hardware, mas quão difícil isso pode realmente ser? Anos atrás, montei algumas máquinas OS X86 e, apesar de uma dor ter sido totalmente possível. (obviamente)

Portanto, minha pergunta geral é: o que devo fazer / aprender para tentar instalar o iOS em um Raspberry Pi?

Mick MacCallum
fonte
Eu estava prestes a responder normalmente: "Não, pela última vez, você não pode instalar o Windows ou outras distribuições Linux porque elas são apenas para o x86", mas eu fico tipo ... iOS ... ARM ... boa idéia: P
Alexander - Reinstate Monica
1
Eu acho que o hardware do idevice é especializado demais para haver alguma esperança para o iOS rodar em um RPI ... interfaces gráficas, suporte USB, ethernet sobre usbm etc.
Alexander - Reinstate Monica
@XAleXOwnZX Veja, agora é onde eu não tenho certeza. Embora às vezes possa se tornar difícil, você sempre pode escrever um driver! O que estou prevendo ser a parte mais problemática será o final da interface do usuário.
Mick MacCallum
Como você se relacionaria com isso? O suporte ao teclado e mouse não foi introduzido no iOS desde o iOS 5 nos iPads. Quero dizer, não haveria suporte para o cursor do mouse, como existe em um iPad atual usando um mouse bluetooth
Alexander - Reinstate Monica
1
@XAleXOwnZX Tenho quase certeza de que quase todas as distribuições linux existentes permitem que você compile seu próprio kernel e tenha pacotes pré-compilados para o ARM, então acho que dizer às pessoas "você não pode instalar o Windows ou outras distribuições Linux" está errado em algum momento
Petr

Respostas:

19

Embora o iOS da Apple seja atraente para os usuários, se você é um entusiasta (como você deve ter o Raspberry Pi) ou um desenvolvedor, o iOS é o menos amigável para você.

O iOS é compilado especificamente para cada modelo do iPad ou iPhone da Apple, com integração específica de hardware e software para a plataforma. Essencialmente, todo o software é um blob binário gigante. Alguém mencionou nos comentários que existem muitas semelhanças de hardware entre o Raspberry Pi e alguns modelos do iPhone. Sua maior esperança para que o iOS seja executado no Raspberry Pi seria encontrar uma imagem de firmware para um telefone cujo hardware seja mais semelhante ao Raspberry Pi e tentar executá-lo. Como a maioria das imagens compiladas específicas da plataforma, no entanto, é provável que mesmo pequenos desvios no ambiente de execução do ambiente esperado produzam um sistema não inicializável. Se isso acabar sendo o caso, provavelmente você precisará recorrer à engenharia reversa e invadir o blob binário com diferentes drivers ou configurações de hardware. Isso pode ser muito trivial e seria um desafio até para uma equipe de engenheiros competentes e experientes.

Como um conhecimento muito extenso do hardware específico de diferentes modelos do iPhone, bem como um conhecimento muito bom do processo de inicialização de baixo nível que tanto o Raspberry Pi quanto o iOS usam serão necessários. Além disso, analise a arquitetura do iOS que, pelo que entendi, é vagamente baseada no sistema Darwin. Para isso, você pode examinar os diferentes métodos de jailbreak e como eles funcionam.

Também digno de nota, a legalidade de tais ações é questionável, pois provavelmente existem várias violações do EULA, a mais óbvia das quais é a estipulação de que o sistema operacional da Apple só roda em hardware da Apple. O jailbreak é tecnicamente legal, mas a engenharia reversa às vezes é protegida pela lei e nunca foi realmente aplicada de forma consistente. O projeto Cydia e muitos dos aplicativos nele existentes são capazes de fazer algumas customizações otimizadas para iOS. O conhecimento sobre como fazer isso pode se sobrepor ao conhecimento sobre como fazê-lo funcionar no Raspberry Pi.

Dito isso, vi alguns projetos surpreendentes e difíceis surgirem porque uma comunidade de desenvolvedores e hackers dedicados se uniu em um objetivo comum, por exemplo, o projeto Xbox-Linux ou, como você apontou, o projeto OSx86 . Certamente não é impossível executar o iOS no Raspberry Pi, mas o que é possível nem sempre é prático. Você pode se divertir mais e menos problemas com o Android, sendo que ele é de código aberto. Dito isto, onde há uma vontade forte, há um caminho.

Dougvj
fonte
0

Eu diria que sua melhor aposta é descompilar toda a imagem de inicialização e reconstruí-la de baixo para cima, adaptando-a às especificações do pi. O problema é que você precisaria de um conhecimento extremamente extenso de codificação em vários idiomas (as pessoas que o projetam têm vários anos de trabalho, juntamente com treinamento específico). Seria quase impossível, mas, há uma chance ....

Daniel Corcoran
fonte
0

Não tenho certeza, mas algumas das primeiras versões do iOS foram feitas para algo como um Armv6; portanto, o hardware pode ser semelhante e você precisará criar alguns gráficos para o sistema (não sei se você ' será capaz de portar a aceleração gráfica que é complexa de executar) e todo o hardware, como portas, controladores e memória. Eu encontrei isso, mas está em um estado bastante inicial; http://winocm.com/projects/research/2013/11/22/milestone-one/, então tente um kernel Mach / xnu personalizado para o RPi e inicie-o, depois veja o que acontece

Dian Aleksandrov
fonte