2013-08-03 168 views
7

Tôi muốn viết/sử dụng tập lệnh nguồn mở có thể truy cập hệ thống tệp iOS (không phải là bẻ khóa). Trên thiết bị Jailbroken, tôi sử dụng ssh/scp để truy cập, truyền dữ liệu từ thiết bị. Mục đích là để sao chép một số phần của iOS hệ thống tập tin (nói /var/mobile/Applications/xxx-xxxx/Documents) sang một máy Mac, từ một thiết bị phi Jailbroken, sử dụng một số kịch bản. Tôi thấy rằng các công cụ như iFunBox có thể làm điều đó. Muốn biết nó quản lý để làm như vậy.Truy cập hệ thống tệp iOS mà không cần bẻ khóa?

Tôi đã xem qua số mobiledevice.h nhưng thực sự không thể hiểu cách sử dụng.

Ngoài ra, muốn thực hiện việc này qua USB .. đối với thiết bị đã bẻ khóa, tôi sử dụng tcprelay.py để thực hiện đường hầm USB. Có cái gì tôi có thể sử dụng cho một thiết bị không jailbroken?

Trả lời

5

The MobileDeviceManager library mang đến cho chúng tôi các thao tác hệ thống tệp đơn giản (đó là trình bao bọc Objective-C dễ sử dụng xung quanh khung MobileDevice mà bạn đã gặp phải).

Điều này không hỗ trợ sao chép các tệp từ thiết bị sang máy tính, chỉ theo cách khác. Vì vậy, để giải quyết vấn đề này, tôi đã tạo một bản vá (GitHub gist) mà bạn có thể hợp nhất vào chương trình mẫu được bao gồm để hiểu được lệnh copyFrom.

+0

Cảm ơn cho các giải pháp và đoạn trích trong đó thời gian ngắn \ m/Mối quan tâm tôi có là khoảng Giấy phép MobileDeveiceManager của. Một công cụ tuân thủ đã gắn cờ điều này và tôi sẽ không thể sử dụng giải pháp này. Tuy nhiên, tôi tìm thấy một wrapper cho device.h điện thoại di động .. mobiledevice bởi imkira (https://github.com/imkira/mobiledevice) Đây là một MIT cấp phép và tôi sẽ không phải đối mặt với bất kỳ vấn đề. Sẽ tuyệt vời nếu bạn có thể giúp tôi với một đoạn mã tương tự mà tôi có thể cắm vào mobiledevice. Tôi sẽ đảm bảo cung cấp tín dụng phù hợp cho bạn và imkira, trong tất cả các tài liệu liên quan đến nhau. – Ocelot

+0

@Ocelot Xin lỗi nhưng chính xác thì vấn đề với ** giải pháp ** này là gì? –

+0

Giải pháp của bạn hoạt động hoàn toàn tốt. Nó giải quyết vấn đề cho vấn đề. Vấn đề là với việc phân phối lại MobileDeviceManager. Công cụ tuân thủ đã xác định nó là Giấy phép GPL. Vì vậy, tôi sẽ không thể sử dụng MobileDeviceManager.Đó là lý do tại sao tôi đã yêu cầu bạn giúp tôi với việc sử dụng mobiledevice cho cùng một. – Ocelot

6

Bạn có thể cài đặt các công cụ ifuse, mà được lưu trữ ở đây: https://github.com/libimobiledevice/ifuse

Để biên dịch công cụ này, bạn sẽ cần một thiết lập làm việc của Gnu-công cụ (chắc, libtool, vv).

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

NB: Cập nhật.bash_profile (hoặc tương tự) để bao gồm:

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

Phần còn lại của quá trình này nên dành vài phút

Install fuse4x

sudo port install fuse4x 

Xây dựng phụ thuộc:

Kiểm tra: https://github.com/libimobiledevice/libplist, cd vào checkout, và chạy:

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

Check-out: https://github.com/libimobiledevice/libusbmuxd, cd vào checkout, và chạy:

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

Check-out: https://github.com/libimobiledevice/libimobiledevice, cd vào thanh toán và chạy:

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

(Nếu bạn đang sử dụng Linux, bạn cũng cần phải cài đặt usbmuxd, sau khi xây dựng libusbmuxd và libimobiledevice. . nếu không, đối với Windows và OSX. . .)

Bây giờ xây dựng iFuse:

Check-out: https://github.com/libimobiledevice/ifuse

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

Để sử dụng ifuse để truy cập ứng dụng của bạn tài liệu thư mục:

Tạo một thư mục gắn kết:

sudo mkdir -p /Volumes/myapp.app 

Bây giờ, hãy gắn thư mục của ứng dụng:

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

Nơi id ứng dụng là tên được hiển thị trong định danh gói. . dụ:

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

(Tham khảo các pic kèm theo)

enter image description here

+0

Tôi đã thử sử dụng với hướng dẫn ở trên, nhưng macbook của tôi bị lỗi, os x yosemite 10.10.2 với iPhone 5c 8.1, bạn đã bao giờ gặp phải điều này chưa? Cảm ơn bạn! – Dickeylth

+0

Tôi chưa cài đặt nó nhưng được quản lý để biên dịch với MacPorts trên Yosemite –

+0

Tôi đã thành công với đối số '--documents', để gắn kết thư mục tài liệu của ứng dụng. Lợi thế của đối số '--container' là gì? – NoBugs