Cómo compilar libSandy

libSandy es una biblioteca para desarrolladores diseñada para mejorar las capacidades de sandbox de aplicaciones, procesos del sistema y modificaciones personalizadas en dispositivos iOS con jailbreak de forma segura. Mediante el uso de las API de sandbox (consulte sandbox.h), cualquier proceso puede generar tokens de extensión, cada uno de los cuales identifica de forma única los privilegios específicos que otorga. Estos tokens, representados como cadenas, pueden ser utilizados sin problemas por otros procesos para aplicar las extensiones correspondientes a sus propias operaciones.
Esta biblioteca es la base de varias mejoras destacadas de código abierto para theos, como Flora, SafariPlus, Shadow, Kayoko, LetMeBlock y AlbumManager. Estas mejoras de jailbreak requieren la inclusión de libSandy durante la compilación, y ciertos archivos deben reubicarse en la carpeta theos para quienes estén interesados en compilarlos desde el código fuente.
Aunque compilar libSandy es un proceso relativamente sencillo, quienes se inician en la compilación de ajustes de iOS podrían encontrar errores al ejecutar el comando "make". Buscar soluciones en línea podría no dar los resultados deseados. Sin embargo, este artículo está diseñado para guiarte paso a paso, ofreciendo un tutorial completo sobre la compilación de libSandy, especialmente diseñado para jailbreaks modernos sin root, como Dopamine y Palera1n.

Cómo crear libSandy para Theos
Para compilar libSandy correctamente, necesita usar el SDK de iOS 16.2 proporcionado por Xcode 14.2. Intentar compilar libSandy con una versión posterior de Xcode resultará en un error.
Para compilar una libSandy para theos, siga los pasos:
Paso 1. Instale theos en su PC, Mac o dispositivo iOS siguiendo nuestra guía.
Paso 2. Instala iPhoneOS16.2.sdk descargando Xcode 14.2 directamente desde los servidores de Apple. Necesitarás autenticarte con tu Apple ID para descargarlo.
Paso 3. Abra la aplicación de terminal y extraiga Xcode_14.2.xip con el siguiente comando. Tras la extracción, cambie el nombre de la aplicación para que no entre en conflicto con su instalación principal de Xcode.
xip -x Xcode_14.2.xip
Paso 4. Mueva Xcode_14.2.app a la carpeta Aplicaciones.
Paso 5. Cambia la versión de las herramientas de línea de comandos de Xcode seleccionadas. El siguiente comando cambiará temporalmente la versión de las herramientas de línea de comandos solo para esta sesión de terminal.
export DEVELOPER_DIR=/Applications/Xcode_14.2.app/Contents/Developer
o permanente
sudo xcode-select -switch /Applications/Xcode_14.2.app/Contents/Developer
Si necesita utilizar la última cadena de herramientas de Xcode desde la línea de comandos, use --reset:
sudo xcode-select --reset
Paso 6. Descargue mac-headers y copie la carpeta xpc a theos/include.
git clone https://github.com/realthunder/mac-headers/ cd mac-headers cp -r "/usr/include/xpc" "$THEOS/include"
Paso 7. Clona el repositorio libSandy desde GitHub a tu computadora.
git clone https://github.com/opa334/libSandy
Paso 8. Abra la carpeta libSandy.
cd libSandy
Paso 9. Compila libSandy siguiendo el comando 'make' e instálalo en theos.
chmod +x ./install_to_theos.sh && chmod +x ./install_to_theos.sh
o manualmente...
make clean make FINALPACKAGE=1
Paso 10. Copie el libsandy.dylib generado en la carpeta lib de theos.
cp -Rv "./.theos/obj/libsandy.dylib" "$THEOS/lib"
Paso 11. Compila libSandy para realizar ajustes sin root.
make clean make FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=rootless
Paso 12. Copie el libsandy.dylib generado sin raíz en la carpeta theos.
cp -Rv "./.theos/obj/libsandy.dylib" "$THEOS/lib/iphone/rootless"
Paso 13. Copie libSandy.h a la carpeta de inclusión ubicada dentro de la carpeta theos.
cp -v "./libSandy.h" "$THEOS/include"
Errores comunes de compilación de libSandy
Uno de los principales obstáculos al compilar libSandy para Theos surge al usar una versión incompatible de Xcode. Por ejemplo, Xcode 15 suele incluir la última versión del SDK de iOS para iPhone, como iPhoneOS17.2.sdk. Sin embargo, libSandy requiere compilación con iPhoneOS16.2.sdk. Si se usa una versión incorrecta del SDK de iOS, pueden producirse errores.

- libSandy.m:3:9: error fatal: archivo 'xpc/xpc.h' no encontrado.
- /libSandy/.theos/obj/armv7/libSandy.m.50b5a432.o] Error 1.
- Se está compilando para iOS 8.0, pero la cadena de herramientas actual no puede producir binarios arm64e para iOS anterior a 14.0.
- Error: el SDK elegido, “iPhoneOS16.2.sdk”, no parece existir.