Монтируем iOS под OSX с помощью ifuse

от автора

На днях столкнулся с задачей примонтировать в OSX 10.14 iPad в качестве внешнего диска, с возможностью осуществлять файловые операции из консоли. В интернете я нашел довольно много инструкций как это сделать с помощью файловой системы ifuse. К сожалению с iOS 12 ничего не вышло. Устройство было разблокировано, доступ к данным разрешен, но несмотря на это возникала ошибка:

Failed to connect to lockdownd service on the device. Try again. If it still fails try rebooting your device.

Данная статья написана чтобы сэкономить время тем у кого возникнет та же задача.

На github есть инструкция по сборке ifuse и основных зависимостей прямо из исходников в репозитории, но это довольно кропотливый путь так как у основных зависимостей есть еще множество зависимостей, а у них еще и т. д. Поэтому воспользуемся системой управления пакетов Homebrew.

Устанавливается она с помощью скрипта на оффсайте:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Скрипт сам скачает все что необходимо homebrew, включая Xcode Command Line Tools. Для работы ifuse необходим OSXFuse, который можно скачать с оффсайта или установить с помощью команды:

brew cask install osxfuse

Теперь необходимо установить основные зависимости:

brew uninstall --ignore-dependencies libimobiledevice brew uninstall --ignore-dependencies usbmuxd #Если libimobiledevice и usbmuxd еще не устанавливались #можно сразу выполнить эти команды brew install --HEAD usbmuxd brew unlink usbmuxd brew link usbmuxd brew install --HEAD libimobiledevice

ВАЖНО: Если у вас уже установлены стабильные версии libimobiledevice и usbmuxd их обязательно необходимо удалить и установить dev версии с ключем —HEAD иначе при подключении устройств с iOS 12 возникнет ошибка.

И наконец устанавливаем iFuse:

brew install ifuse

Все готово, если подключено одно устройство то примонтировать его можно командой:

ifuse ~/_ifuse_mount_point

где ~/_ifuse_mount_point путь к точке монтирования.

Ifuse умеет монтировать общедоступную файловую систему (или всю если есть root), а так же директории приложений которые поддерживают API расшаривания файлов.

Если подключено несколько устройств то для того чтобы выбрать какое из них примонтировать необходимо использовать ключ -u

ifuse ~/ifuse_mnt -u <UniqueDeviceID> 

Для того чтобы узнать UniqueDeviceID можно воспользоваться командой:

ideviceinfo

Для запуска из Spotlight можно создать AppleScript и сохранить его как приложение:

try 	do shell script "/usr/local/bin/ifuse ~/_ifuse_mount_point" on error errMsg 	display dialog "ERROR: " & errMsg end try


ссылка на оригинал статьи https://habr.com/ru/post/459888/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *