Sandcastle, un proyecto para poder instalar Android y Linux en dispositivos de Apple
Hace algunas semanas compartir aquí en el blog la noticia sobre la noticia de la llegada de Checkr1an a Linux, con el cual podremos realizar Jailbreak en dispositivos de Apple de una forma muy sencilla. Ahora, se dio a conocer la iniciativa de un proyecto que pretende aprovechar el fallo que utiliza Checkra1n para poder instalar Android o Linux sobre iPhone, iPod e ipad.
Este proyecto tiene como nombre Sandcastle y fue dado a conocer hace algunos días. Este proyecto apenas va iniciando pero aun así ya cuenta con un avance bastante importante pues ya es posible poder instalar Android sobre algunos dispositivos de Apple, del cual el iPhone 7 es él cuenta con “más estabilidad” en teoría ya que aún tiene bastantes aspectos por pulir.
El proyecto también proporciona soporte limitado para iPod Touch 7G y la transferencia a varios modelos de iPhone 6, 8, X, 11 e iPod Touch 6G está en curso.
Sobre Sandcastle
El desarrollo lo lleva a cabo un equipo que desarrolló el proyecto iPhone Linux hace diez años y ahora trabaja en Corellium, un servicio en la nube con un entorno virtual con iOS para desarrolladores. El año pasado, Apple presentó una demanda contra Corellium por eludir la protección de iOS y el enlace del dispositivo (jailbreak).
El objetivo del desarrollo es proporcionar a los usuarios de iPhone la libertad de elegir una plataforma y deshacerse de las restricciones y ataduras impuestas por Apple en los equipos. Según los desarrolladores del proyecto, el propietario del equipo es el usuario que compró el teléfono, no Apple, por lo que puede instalar cualquier sistema operativo en el dispositivo.
Las compilaciones están en fase de pruebas y como mencionamos, no cubren algunas características, por ejemplo, sonido, cámara, aceleración de GPU, no se admiten llamadas a través de operadores móviles, entre otras cosas.
Por ejemplo, en el iPhone 7 ya se pueden utilizar las siguientes características: Wi-Fi, Bluetooth, salida a la pantalla, multitáctil, administración de energía, I2C, SPI, USB, AIC, NAND Flash, APCIe, DART y el chip de administración de carga Tristar. En comparación con el iPhone 7, Wi-Fi, Bluetooth y multitáctil no están disponibles en Sandcastle en iPod Touch 7G.
Para poder eliminar la protección que une el dispositivo al firmware de Apple, se utiliza checkra1n para poder realizar el jailbreak.
Posteriormente el firmware se descarga directamente desde el dispositivo Flash y se almacena utilizando el sistema de archivos APFS estándar (se crea una nueva partición), lo que permite que Sandcastle coexista con iOS.
El firmware original de iOS se guarda y en cualquier momento el usuario puede reiniciar el dispositivo de su elección en un entorno con iOS o Android.
Para acceder al sistema de archivos APFS, se utiliza un controlador linux-apfs modificado, mejorado con soporte para el montaje paralelo de subsecciones y la capacidad de trabajar con archivos comprimidos.
A pesar de que la implementación APFS utilizada admite el modo de grabación, este modo sigue siendo experimental y de forma predeterminada, las particiones se montan en modo de solo lectura (los datos en el entorno Android no se guardan y se pierden después de un reinicio).
El proyecto utiliza un kernel modificado de Linux para construir un entorno de sistema Linux, ademas de que se usa buildroot.
El entorno de Android se basa en la plataforma Android 10. De forma predeterminada, la pantalla de inicio de OpenLauncher y Signal Messenger están preinstalados.
Para instalar aplicaciones de Android, se propone utilizar la utilidad adb, ademas de que se admiten APK de Java. Los paquetes APK con código ejecutable para ARMv8 requieren reconstrucción (los paquetes para ARMv7 no son compatibles).
Descarga
Finalmente para quienes estén interesados en poder probar esta propuesta, pueden encontrar las instrucciones de instalación de Sandcastle en el siguiente enlace.
Se proporcionan un archivo “README.txt” ubicado dentro de los archivos zip que se ofrecen para descargar. (después de instalar checkra1n, se debe copiar los archivos setup.sh, loadlinux.c y Android.lzma en el equipo y posteriormente ejecutar setup.sh, construir loadlinux y ejecutar “loadlinux Android.lzma dtbpack”).