Come compilare libSandy

libSandy è una libreria per sviluppatori progettata per migliorare in modo sicuro le funzionalità di sandboxing di app, processi di sistema e modifiche personalizzate su dispositivi iOS jailbroken. Grazie all'utilizzo di API sandbox (vedere sandbox.h), qualsiasi processo acquisisce la capacità di generare token di estensione, ognuno dei quali identifica in modo univoco i privilegi specifici che concede. Questi token, rappresentati come stringhe, possono quindi essere utilizzati senza problemi da altri processi per applicare le estensioni corrispondenti alle proprie operazioni.
Questa libreria funge da base per diverse eccezionali modifiche open source di theos, come Flora, SafariPlus, Shadow, Kayoko, LetMeBlock e AlbumManager. Queste modifiche per il jailbreak richiedono l'inclusione di libSandy durante la compilazione, con alcuni file che devono essere spostati nella cartella theos per coloro che sono interessati a compilarli dal codice sorgente.
Sebbene la compilazione di libSandy sia un processo relativamente semplice, chi è alle prime armi con la compilazione di tweak theos per iOS potrebbe riscontrare errori durante l'esecuzione del comando "make". La semplice ricerca di soluzioni online potrebbe non produrre i risultati desiderati. Tuttavia, questo articolo è pensato per guidarvi attraverso ogni passaggio, fornendo un tutorial completo sulla compilazione di libSandy, specificamente pensato per i moderni jailbreak senza root, tra cui Dopamine e Palera1n.

Come compilare libSandy per Theos
Per compilare correttamente libSandy, è necessario utilizzare l'SDK per iOS 16.2 fornito da Xcode 14.2. Il tentativo di compilare libSandy con una versione successiva di Xcode non andrà a buon fine.
Per compilare una libSandy per theos, seguire i passaggi:
Passaggio 1. Installa theos sul tuo PC, Mac o dispositivo iOS seguendo la nostra guida.
Passaggio 2. Installa iPhoneOS16.2.sdk scaricando Xcode 14.2 direttamente dai server Apple. Dovrai autenticarti con il tuo ID Apple per effettuare il download.
Passaggio 3. Apri l'app terminale ed estrai Xcode_14.2.xip con il seguente comando. Dopo l'estrazione, rinomina l'app per evitare conflitti con l'installazione principale di Xcode.
xip -x Xcode_14.2.xip
Passaggio 4. Spostare Xcode_14.2.app nella cartella Applicazioni.
Passaggio 5. Modifica la versione degli strumenti da riga di comando di Xcode selezionata. Il seguente comando modificherà temporaneamente la versione degli strumenti da riga di comando solo per questa sessione del terminale.
export DEVELOPER_DIR=/Applications/Xcode_14.2.app/Contents/Developer
o permanente
sudo xcode-select -switch /Applications/Xcode_14.2.app/Contents/Developer
Se devi utilizzare la toolchain Xcode più recente dalla riga di comando, usa --reset:
sudo xcode-select --reset
Passaggio 6. Scarica mac-headers e copia la cartella xpc in theos/include.
git clone https://github.com/realthunder/mac-headers/ cd mac-headers cp -r "/usr/include/xpc" "$THEOS/include"
Passaggio 7. Clona il repository libSandy da GitHub sul tuo computer.
git clone https://github.com/opa334/libSandy
Passaggio 8. Aprire la cartella libSandy.
cd libSandy
Passaggio 9. Compilare libSandy seguendo il comando 'make' e installarlo su theos.
chmod +x ./install_to_theos.sh && chmod +x ./install_to_theos.sh
o manualmente...
make clean make FINALPACKAGE=1
Passaggio 10. Copiare il file libsandy.dylib generato nella cartella lib di theos.
cp -Rv "./.theos/obj/libsandy.dylib" "$THEOS/lib"
Passaggio 11. Compilare la libSandy per modifiche senza root.
make clean make FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=rootless
Passaggio 12. Copiare il file libsandy.dylib rootless generato nella cartella theos.
cp -Rv "./.theos/obj/libsandy.dylib" "$THEOS/lib/iphone/rootless"
Passaggio 13. Copiare libSandy.h nella cartella include situata all'interno della cartella theos.
cp -v "./libSandy.h" "$THEOS/include"
Errori comuni di compilazione di libSandy
Uno dei principali ostacoli nella compilazione di libSandy per theos deriva dall'utilizzo di una versione incompatibile di Xcode. Ad esempio, Xcode 15 in genere include l'ultima versione dell'iPhone iOS SDK, come iPhoneOS17.2.sdk. Tuttavia, libSandy richiede la compilazione con iPhoneOS16.2.sdk. Se si utilizza la versione errata dell'iOS SDK, potrebbero verificarsi degli errori.

- libSandy.m:3:9: errore fatale: file 'xpc/xpc.h' non trovato.
- /libSandy/.theos/obj/armv7/libSandy.m.50b5a432.o] Errore 1.
- In fase di sviluppo per iOS 8.0, ma la toolchain attuale non è in grado di produrre binari arm64e per iOS precedenti alla versione 14.0.
- Errore: l'SDK scelto, "iPhoneOS16.2.sdk", sembra non esistere.