Existem portas Linux para vários dispositivos iOS agora obsoletos, sendo o mais recente a geração baseada no Apple SoC A4 (iPhone 4, iPad 1, iPod 4G). De acordo com o agora extinto projeto iDroid (o grupo por trás essas portas), a razão pela qual o Linux (ou, mais precisamente, o bootloader que pode carregar o Linux) não foi portado para dispositivos posteriores, é que não há vulnerabilidades conhecidas do bootrom ou do iBoot (carregador de inicialização do iOS).
Certamente, porém, uma exploração de inicialização não é a única maneira de obter um kernel personalizado em execução em um dispositivo iOS. Todo console de videogame moderno, tradicional e bloqueado tem uma porta Linux; e, até onde eu sei, o Nintendo Switch é o único que faz isso através de um exploit de boot (o BIOS / bootrom neste caso). Todos os outros usaram uma implementação kexec
ou algo mais que carrega o kernel após a inicialização. (No Nintendo GameCube e no Wii, por exemplo, os executáveis, sejam eles para jogos ou homebrew, recebem acesso total ao hardware, de modo que não é realmente kexec
, já que o kernel do Linux executado não é ' substituindo 'um kernel em execução existente.)
Com tantos jailbreaks iOS quanto para executar código não assinado no espaço do usuário, certamente um gera permissões suficientes para o usuário inserir um comando kexec
no kernel XNU (o kernel que o iOS usa) e usar isso para executar um kernel Linux. Por que ninguém desenvolveu isso? Falta de interesse ou há algo de técnico impedindo isso? E o que a Apple está fazendo que todos esses fabricantes de consoles de videogame não conseguem descobrir?