2013-08-03 23 views
7

Mi piacerebbe scrivere/utilizzare uno script open source in grado di accedere al filesystem iOS (non jailbroken). Su un dispositivo Jailbroken, io uso ssh/scp per accedere, trasferimento dati dal dispositivo. Intento è quello di copiare una parte del iOS filesystem (dire /var/mobile/Applications/xxx-xxxx/Documents) a un Mac, da un dispositivo non Jailbroken, utilizzando alcuni sceneggiatura. Vedo che strumenti come iFunBox è in grado di farlo. Vorrei sapere che riesce a farlo.Accedi al filesystem iOS senza jailbreak?

Mi sono imbattuto in mobiledevice.h ma non riuscivo davvero a capire come usarlo.

Inoltre, preferirei ottenere questo fatto tramite USB .. per un dispositivo jailbroken, io uso tcprelay.py per fare il tunneling . C'è qualcosa che posso usare per un dispositivo non jailbroken?

risposta

5

The MobileDeviceManager library ci porta operazioni di filesystem semplici (è un wrapper di Objective-C facile da usare attorno al framework MobileDevice che hai trovato).

Il fatto è che non supporta la copia dei file dal dispositivo al computer, solo viceversa. Quindi, per ovviare a questo problema, ho creato una patch (GitHub gist) che è possibile unire nel programma di esempio incluso per far capire il comando copyFrom.

+0

Grazie per la soluzione e frammento in così breve tempo \ m/La preoccupazione che ho è su licenza di MobileDeveiceManager. Uno strumento di conformità lo ha segnalato e non sarò in grado di utilizzare questa soluzione. Tuttavia, ho trovato un altro wrapper per dispositivo mobile.h .. mobiledevice di imkira (https://github.com/imkira/mobiledevice) Questo è un MIT con licenza e non avrò alcun problema. Sarebbe bello se fosse possibile per te aiutarmi con un frammento simile che posso collegare a mobiledevice. Farò in modo di dare crediti adeguati a te e imkira, in tutte le documentazioni riguardanti lo stesso. – Ocelot

+0

@Ocelot Scusami ma qual è esattamente il problema con ** questa ** soluzione? –

+0

La tua soluzione funziona perfettamente. Risolve la domanda al punto. Il problema è con la ridistribuzione di MobileDeviceManager. Lo strumento di conformità lo identifica come licenza GPL. Quindi, non sarei in grado di utilizzare MobileDeviceManager.Questo è il motivo per cui ti ho chiesto di darmi una mano con l'utilizzo di mobiledevice per lo stesso. – Ocelot

6

È possibile installare lo strumento iFuse, che è ospitato qui: https://github.com/libimobiledevice/ifuse

Per compilare questo strumento, sarà necessario l'un working set di Gnu-tools (marca, libtool, ecc).

#Don't worry - clang is still default 
sudo port install gcc48 

NB: Aggiorna il tuo.bash_profile (o simile) per sono i seguenti:

#Important - this is where your compiled libs will get installed to, so we need this 
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/** 

Il resto di questo processo dovrebbe richiedere alcuni minuti

Installare fuse4x

sudo port install fuse4x 

costruire il Dipendenze:

Partenza: https://github.com/libimobiledevice/libplist, cd nella cassa, ed eseguire:

./autogen.sh 
./configure 
make 
sudo make install 

Partenza: https://github.com/libimobiledevice/libusbmuxd, cd nella cassa, ed eseguire:

./autogen.sh 
./configure 
make 
sudo make install 

Partenza: https://github.com/libimobiledevice/libimobiledevice, cd in il checkout, ed esegui:

./autogen.sh 
./configure 
make 
sudo make install 

(Se sei su Linux, devi anche installare usbmuxd, dopo aver costruito libusbmuxd e libimobiledevice. . in caso contrario, per Windows e OSX. . .)

Ora costruire iFuse:

Partenza: https://github.com/libimobiledevice/ifuse

./autogen.sh 
./configure 
make 
sudo make install 

Per utilizzare iFuse per accedere ai documenti directory del app:

Creare una directory di montaggio:

sudo mkdir -p /Volumes/myapp.app 

Ora montare dir dell'app:

ifuse --container <appid> /Volumes/abced.app 

Dove App ID è il nome ciò che è visualizzato nella identificatore bundle. . esempio:

ifuse --container mycompany.ABCED.com /Volumes/abced.app/ 

(fare riferimento alla foto allegata)

enter image description here

+0

Ho provato ifuse con la guida sopra, ma il mio macbook si è schiantato, os x yosemite 10.10.2 con iPhone 5c 8.1, hai mai riscontrato questo? Grazie! – Dickeylth

+0

Non ce l'ho attualmente installato ma sono riuscito a compilare con MacPorts su Yosemite –

+0

Ho avuto successo con l'argomento '--documents', per montare la cartella documenti di un'app. Qual è il vantaggio dell'argomento '--container'? – NoBugs