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?
operating-systems
Mick MacCallum
fonte
fonte
Respostas:
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.
fonte
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 ....
fonte
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
fonte