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

в 9:14, , рубрики: homebrew, ifuse, MacOS, osx, osxfuse, Разработка под MacOS, файловые системы

На днях столкнулся с задачей примонтировать в 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 путь к точке монтирования.
Монтируем iOS под OSX с помощью ifuse - 1
Ifuse умеет монтировать общедоступную файловую систему (или всю если есть root), а так же директории приложений которые поддерживают API расшаривания файлов.

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

ifuse ~/ifuse_mnt -u <UniqueDeviceID> 

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

ideviceinfo

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

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

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

Автор: Савкин Артём

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js