martedì 23 agosto 2011

Archlinux: gestire il proprio iDevice (iPad/iPhone/iPod) senza bisogno di iTunes!

Oggi vi presenterò quella che spero sarà la più completa guida sulla gestione del vostro iDevice (sia esso un iPad, iPhone, iPod o chissà quale altra diavoleria della famiglia Apple) sotto Linux.
Se siete possessori di un Desktop Gnome le cose saranno decisamente più semplici (visto l'automount gestito da Nautilus) ma io vi illustrerò come fare le cose "manualmente", in modo da potersi adattare a qualsiasi Desktop e non dover per forza installare un Desktop che magari non vi aggrada.

Innanzitutto vediamo cosa ci serve:
  • libimobiledevice-git <- la libreria principale, quella che installerà il supporto vero proprio per il nostro iDevice su Linux
  • ideviceinstaller-git <- utile per gestire le applicazioni del nostro iDevice, ci permetterà non solo di elencarle, ma anche di backupparle e in futuro reinstallarle ad esempio dopo una formattazione.
  • ifuse <- necessario per "montare" il nostro iDevice su una delle cartelle del nostro PC in modo da poterlo esplorare come una normale periferica USB.
Installiamo il tutto quindi, digitando da un terminale:
yaourt -S libimobiledevice-git ideviceinstaller-git ifuse
Grazie a questa semplice mossa avremo adesso a disposizione un miriade di utilissimi programmi per gestire al meglio il nostro iDevice. Analizziamoli uno ad uno:

idevicebackup e idevicebackup2 Questi due programmi sono identici tra loro solo che la versione col 2 finale è diciamo più avanzata (e forse sperimentale?) in quanto possiede delle opzioni in più. Per quanta riguarda idevicebackup, questo comando ci permette di effettuare un backup del nostro iDevice per poi ripristinarlo in futuro. Al contrario del comando col 2 finale qui abbiamo solo due opzioni disponibili, ossia fare il backup o ripristinarlo. L'utilizzo è banale, collegate il vostro iDevice al PC e poi digitate in un terminale:
idevicebackup backup CARTELLA
Per creare un backup del vostro iDevice nella cartella CARTELLA (ovviamente nel comando sopra sostituite CARTELLA con il percorso della cartella in cui volete salvare il backup del vostro iDevice!). Oppure:
idevicebackup restore CARTELLA
Per ripristinare un backup creato in precedenza nella cartella CARTELLA. Il comando col 2 finale, ossia idevicebackup2, invece presenta oltre a backup e restore altri comandi, nello specifico:
  • restore --system <- ripristina anche i file di sistema.
  • restore --reboot <- riavvia l'iDevice quando ha finito il ripristino.
  • restore --copy <- crea una copia della cartella di backup prima di effettuare il ripristino.
  • restore --settings <- ripristina le impostazioni dell'iDevice dal backup.
  • info <- mostra i dettagli riguardo l'ultimo backup completato dell'iDevice.
  • list <- elenca (in formato CSV) tutti i file dell'ultimo backup fatto.
  • unback <- scompatta un backup completato in precedenza nella cartella _unback_
L'utilizzo nel terminale è identico al precedente programma.

Passiamo ora ad un nuovo tool che avremo a disposizione, ossia idevicedate. Questo programma ci permetterà di ottenere la data e l'ora dal nostro iDevice oppure di impostarle. L'utilizzo è il seguente:
idevicedate
E ci verrà stampato a terminale la data/ora corrente impostata nell'iDevice. Se vogliamo modificarla basta dare:
idevicedate -c
E la data/ora verrà reimpostata usando quella attuale del vostro PC. Volendo potete anche specificare un timestamp diverso da quello in uso sul vostro PC, dando come comando:
idevicedate -s TIMESTAMP
dove al posto di TIMESTAMP ovviamente dovete inserire un timestamp valido (leggete qui se non sapete cos'è un timestamp: http://en.wikipedia.org/wiki/Timestamp).

Un altro tool che avremo a disposizione è ideviceenterrecovery. Questo programma vi permetterà semplicemente di far andare immediatamente in Recovery Mode il vostro iDevice. Fate molta attenzione ad usarlo! Non presenta opzioni da poter usare e l'utilizzo è banale:
ideviceenterrecovery UUID
dove al posto di UUID ci deve andare l'ID univoco del vostro iDevice (è una stringa di 40 caratteri che identifica il vostro iDevice, leggete più avanti per sapere come ottenerlo!).

Un altro tool molto utile che avremo a disposizione è idevice_id. Questo programma vi permetterà di ottenere l'UUID del vostro iDevice di cui parlavamo sopra. Per elencare gli UUID di tutti gli iDevice collegati via USB date da terminale:
idevice_id -l

Un mini-appunto ora su ideviceimagemounter. Purtroppo non ho ben capito a cosa serve questo tool, comunque la descrizione ufficiale dice che:
Mounts the specified disk image on the device.
quindi tradotto letteralmente serve a "montare" sull'iDevice l'immagine disco specificata. Non so però a quale immagine disco si riferisca, se ne sapete più di me fatemelo sapere così aggiorno le info su questo programma ;)

Saltiamo quindi a ideviceinfo. Questo è il tool che ci darà tutte le informazioni che vogliamo sul nostro iDevice. Usando il semplice comando:
ideviceinfo -s
otterremo le informazioni basilari sul nostro iDevice. Aggiungendo un -x otterremo le stesse informazioni ma visualizzate in formato XML. Se però volessimo avere delle informazioni specifiche possiamo usare i cosiddetti "domini". Ad esempio se vogliamo sapere lo spazio occupato/rimanente sul nostro iDevice possiamo dare da terminale:
ideviceinfo -q com.apple.disk_usage
Se vogliamo altre informazioni possiamo sostituire nella stringa sopra a com.apple.disk_usage il "dominio" che ci interessa. Quelli disponibili sono:

    com.apple.disk_usage com.apple.mobile.battery com.apple.xcode.developerdomain com.apple.international com.apple.mobile.data_sync com.apple.mobile.tethered_sync com.apple.mobile.mobile_application_usage com.apple.mobile.backup com.apple.mobile.nikita com.apple.mobile.restriction com.apple.mobile.user_preferences com.apple.mobile.sync_data_class com.apple.mobile.software_behavior com.apple.mobile.iTunes.SQLMusicLibraryPostProcessCommands com.apple.mobile.iTunes.accessories com.apple.mobile.internal com.apple.mobile.wireless_lockdown com.apple.fairplay com.apple.iTunes com.apple.mobile.iTunes.store com.apple.mobile.iTunes
Anche qui mettendo un -x prima di -q possiamo visualizzare le info risultanti in XML.

Passiamo ora a idevicepair. Tramite questo tool possiamo effettuare o gestire il pairing tra il nostro PC e l'iDevice. L'utilizzo è:
idevicepair COMANDO
dove al posto di COMANDO potete usare uno dei seguenti comandi:
  • hostid <- visualizza l'ID host del computer in uso
  • pair <- effettua il pair dell'iDevice col computer in uso
  • validate <- controlla se l'iDevice è correttamente in pair col computer in uso
  • unpair <- annulla il pair tra l'iDevice e il computer in uso
  • list <- elenca tutte le iDevice in pair col computer in uso

Un altro tool che avremo a disposizione è idevicescreenshot. Tramite questo programma potremo fare uno screenshot dell'attuale schermata sull'iDevice e salvarlo sul PC in formato TIFF. Però attenzione: per funzionare questo comando richiede che un'immagine disco da sviluppatore sia stata installata sull'iDevice in precedenza (tramite il suddetto comando ideviceimagemounter). L'utilizzo è semplice, basta digitare in un terminale:
idevicescreenshot
tutto qui, l'immagine TIFF verrà salvata nella directory attuale.

Adesso vediamo idevicesyslog. Questo tool vi permetterà di visualizzare il log di sistema del vostro iDevice, dove vengono salvati tutti i messaggi di debug o di errore che si verificano durante l'utilizzo del vostro iDevice. Anche qui non c'è alcuna opzione da aggiungere, basta dare da terminale:
idevicesyslog
Per interrompere la visualizzazione del log basta dare un CTRL+C nel terminale stesso.

E con questo abbiamo concluso i tool disponibili grazie a libimobiledevice. Vediamo ora gli altri 2 tool, ossia ifuse e ideviceinstaller. Per quanto riguarda ideviceinstaller, grazie ad esso avremo un completo tool per analizzare, backuppare o ripristinare le app installate nel nostro iDevice. L'utilizzo è banale, basta digitare in un terminale dopo aver collegato il vostro iDevice:
ideviceinstaller OPZIONE
Dove al posto di OPZIONE potete inserire una delle opzioni disponibili per questo comando, che sono:
-l -o list_user <- elenca solamente le applicazioni dell'utente (è l'opzione di default)
-l -o list_system <- elenca solamente le applicazioni di sistema
-l -o list_all <- elenca tutti i tipi di applicazioni installate sull'iDevice
-l -o xml <- elenca le app e visualizza il risultato in formato XML
-i ARCHIVE <- installa l'applicazione specificata al posto di ARCHIVE nella stringa
-u APPID <- disinstalla l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-g APPID <- aggiorna l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-L <- elenca tutte le applicazioni backuppate in precedenza
-a APPID <- backuppa l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-a APPID -o uninstall <- disinstalla dall'iDevice, dopo averla backuppata, l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-a APPID -o app_only <- backuppa soltanto i dati dell'applicazione
-a APPID -o copy=PATH <- copia il backup dell'applicazione (dopo averlo fatto) nella cartella specificata al posto di PATH nella stringa.
-a APPID -o copy=PATH -o remove <- rimuove il backup dell'iDevice dopo averlo copiato nella cartella specificata al posto di PATH nella stringa
-r APPID <- ripristina il backup (fatto precedentemente) dell'applicazione di cui avete specificato l'ID al posto di APPID nella stringa
-R APPID <- rimuove il backup dell'applicazione di cui avete specificato l'ID al posto di APPID nella stringa
Per ottenere gli APPID che vi servono basta usare l'opzione -l per elencarle, visto che vi verranno elencate proprio per APPID ;)

E infine dedichiamoci ad ifuse, il comando principale che vi permetterà di montare il vostro iDevice sul PC come fosse una normalissima periferica USB. Come già detto in precedenza se usate Gnome questo comando non vi troverete ad usarlo spesso perché Nautilus monta in automatico il vostro iDevice. Detto questo però vediamo come si usa ifuse:
ifuse mount_point OPZIONE
dove al posto di mount_point va inserita una qualsiasi cartella ESISTENTE sul vostro Hard Disk e in cui volete montare il vostro iDevice (in pratica, una volta montato, entrando in quella cartella specificata potrete navigare all'interno del vostro iDevice!).
Al posto di OPZIONE potete inserire invece una delle seguenti opzioni:
--appid APPID <- Monterà la cartella "Documents" (quella in cui l'applicazione salva e carica tutti i suoi file!) dell'applicazione identificata dall'APPID inserito.
--root <- Monta il file system di root del vostro iDevice, permettendovi di navigare in davvero QUALSIASI cartella (anche le più nascoste!) del vostro iDevice. Richiede però il Jailbreak sul vostro iDevice, non funziona senza!
Per fare un esempio pratico, io per montare il mio iPad sotto Xfce digito in un terminale:
ifuse ~/iPad
e mi ritrovo l'iPad navigabile dalla cartella iPad nella mia home. Per "smontare" in modo sicuro l'iDevice caricato tramite ifuse basta dare da terminale un:
sudo umount mount_point
dove al posto di mount_point va inserita la cartella in cui avete montato l'iDevice con il comando ifuse di prima.

Adesso che abbiamo visto come "gestire" in toto il nostro iDevice, vediamo l'ultima cosa, ossia come gestire la multimedialità. In particolare vediamo come sincronizzare i contenuti (musica, video, libri, podcast...) col nostro iDevice. Esistono vari tool che sono compatibili con le periferiche di casa Apple ma io qui ve ne presento solo uno che fa tutto, se volete potete cercare con Google altri programmi compatibili e/o specifici ;) Io quindi vi parlerò di GtkPod, un semplicissimo programmino che vi permetterà di sincronizzare musica, video, podcast, ecc... col vostro iDevice. Per installarlo su Archlinux diamo in un terminale:
yaourt -S gtkpod
Una volta installato ricordiamoci che, a meno che non c'è l'automount per il nostro iDevice, prima di avviare GtkPod dobbiamo montare il nostro iDevice manualmente con il suddetto comando di ifuse. Una volta montanto avviamo GtkPod e vedremo che il nostro iDevice verrà automaticamente caricato.
A questo punto, tramite questo programmino davvero banale e facile da usare, potremo facilmente sincronizzare musica, video, podcast, libri, contatti, note, ecc... tra il nostro PC e il nostro iDevice!!!

Adesso un piccolo tip per la gestione immagini: non vi serve alcun programma specializzato! Infatti una volta montato il vostro iDevice con ifuse potrete accedere al suo interno dove troverete una cartella chiamata DCIM al cui interno ci saranno tutte le immagini presenti nella libreria del vostro iDevice. Potrete quindi visionarle, copiarle o cancellarle come normalissimi file.

Infine, prima di chiudere, voglio segnalarvi un ottimo programma per la conversione di video in formato compatibile con il vostro iDevice: sto parlando di Handbrake, un editor video facilissimo da usare grazie ai template preimpostati che troverete nella parte destra della finestra principale.
Una volta caricato un video quindi vi basterà cliccare sul template a destra relativo al vostro iDevice e avviare la conversione, il risultato sarà un video perfettamente compatibile con il vostro iDevice e pronto da essere inserito su di esso grazie al già citato GtkPod ;) Per installarlo su Archlinux basta dare:
yaourt -S handbrake

Aggiornamento: mi è stato segnalato un altro programma utile per attivare o disattivare il vostro iDevice (se mai vi dovesse servire!). Si tratta di ideviceactivate. Per installarlo date in un terminale:
yaourt -S ideviceactivate-git
L'utilizzo è il seguente:
ideviceactivate OPZIONE
dove al posto di OPZIONE dovete inserire una delle seguenti opzioni:
-x <- disattiva (o meglio, "toglie l'attivazione") l'iDevice
-e IMEI <- quando invia la richiesta di attivazione utilizza l'IMEI specificato al posto di "IMEI" nella stringa
-s IMSI <- quando invia la richiesta di attivazione utilizza l'IMSI specificato al posto di "IMSI" nella stringa
-i ICCID <- quando invia la richiesta di attivazione utilizza l'ICCID specificato al posto di "ICCID" nella stringa
-n SERIALNUMBER <- quando invia la richiesta di attivazione utilizza il serial number specificato al posto di "SERIALNUMBER" nella stringa
-f FILE <- attiva l'iDevice usando il file di attivazione posizionato nel percorso specificato al posto di "FILE" nella stringa
-c DIR <- salva i dati di attivazione nella cartella specificata al posto di "DIR" nella stringa (utile per riattivazioni future!)
-r DIR <- attiva l'iDevice usando i dati di attivazione salvati precedentemente nella cartella specificata al posto di "DIR" nella stringa.

Ed eccoci quindi ai commenti finali. Tramite questa guida avete avuto una panoramica completa su tutti i programmi e le opzioni che vi permetteranno di gestire il vostro iDevice con Archlinux senza sentire troppo la mancanza di iTunes.
Ovviamente se avete delle correzioni o delle aggiunte da segnalare fatelo attraverso i commenti di questo topic che provvederò a fare le giuste modifiche al più presto ;D

Nessun commento:

Posta un commento