Подготовка
Что из пакетов есть:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | usbmuxd-devel.x86_64 : Development package for usbmuxd usbmuxd.x86_64 : Daemon for communicating with Apple's iOS devices afpfs-ng-devel.x86_64 : Development files for afpfs-ng fuse-afp.x86_64 : FUSE driver for AFP filesystem gvfs-afp.x86_64 : AFP support for gvfs afpfs-ng.x86_64 : Apple Filing Protocol client dmg2img.x86_64 : Uncompress the Apple compressed disk image files libgpod.x86_64 : Library to access the contents of an iPod libgpod-sharp.x86_64 : C#/.NET library to access iPod content python-gpod.x86_64 : Python module to access iPod content libimobiledevice-devel.x86_64 : Development package for libimobiledevice libimobiledevice-python.x86_64 : Python bindings for libimobiledevice libimobiledevice.x86_64 : Library for connecting to mobile devices libplist.x86_64 : Library for manipulating Apple Binary and XML Property Lists |
Устанавливаем только необходимое:
1 | sudo yum install -y libgpod libimobiledevice libplist usbmuxd |
!Если собирать из свежего среза заявлена совместимость up to iOS 10!
Работа
Собственно, уже этого достаточно для базовой работы с iДевайсом из GUI: доступны фото, записи с диктофона, есть возможность перетаскивать документы из/в песочницы программ, использования айфона в качестве GSM/3G/LTE-модема (не надо ничего настраивать!), etc.. Чтобы при каждом подключении к хосту iДевайс не спрашивал, доверять ли этому хосту, то делаем upair-pair:
1 2 3 4 5 6 | $ idevicepair unpair $ idevicepair pair SUCCESS: Paired with device 13e1...8846 $ idevicepair validate SUCCESS: Validated pairing with device 13e10...8846 |
Если что-то пошло не так, иногда помогает переподключение iДевайса к хосту.
Команды в CLI
Список доступных утилит текущей* версии libimobiledevice
:
1 2 3 4 5 6 7 8 9 10 11 12 13 | idevicebackup idevicebackup2 idevicedate idevicedebugserverproxy idevicediagnostics ideviceenterrecovery idevice_id ideviceimagemounter ideviceinfo idevicepair ideviceprovision idevicescreenshot idevicesyslog |
Выясняем какие девайсы подключены:
1 2 3 4 | $ idevice_id --list 13e1...8846 dead...beef 6a1d...4d7c |
Выясняем что за устройство подключено по его уникальному ID:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ ideviceinfo --simple --udid 13e10...8846 BuildVersion: 13G36 ChipID: 35138 DeviceClass: iPod DeviceColor: white DeviceName: Doka's iPod touch DieID: 2815351804636929824 HardwareModel: N78AP ProductName: iPhone OS ProductType: iPod5,1 ProductVersion: 9.3.5 ProductionSOC: true ProtocolVersion: 2 TelephonyCapability: false UniqueChipID: 497747092424 UniqueDeviceID: 13e10...8846 WiFiAddress: xc:zd:ya:7w:7v:8s |
Делаем бэкап с помощью idevicebackup2
(idevicebackup является устаревшей ибо подерживает iOS до версии 4 включительно):
1 2 3 4 5 | $ idevicebackup2 --udid 13e10...8846 backup /work/iPod-backup Backup directory is "/work/iPod-backup" Started "com.apple.mobilebackup2" service on port 50744 Starting backup... Requesting backup from device... |
Рингтоны
С помощью ffmpeg можно самому изготавливать рингтоны для айДевайсов (по сути: перекодировать в ААС). По какой-то непонятной причине длительность мелодии ограничена ~40 секундами, поэтому дополнительно надо будет в ffmpeg обрезать мелодию. Также полезным будет снизить битрейт и перевести в моно — памяти в телефоне никогда не бывает много:
1 | ffmpeg -i Cafe.mp3 -ss 75 -t 30 -ac 1 -ab 96k -f mp4 -acodec libfaac -metadata title="Cafe De Flor" -metadata genre="Ringtone" -y Cafe.m4r |
Итак, разберем этот простой пример:
- -i Cafe.mp3 — имя входного файла
- -ss 75 — Start since 1:15
- -t 30 — продолжительность отрывка 30 секунд
- -ac 1 — моно
- -ab 96k — битрейт 96kbps
- -f mp4 -acodec libfaac — кодировать в ААС-формат M4A
- -y Cafe.m4r — перезаписать файл, если такой уже существует
- В списке рингтонов на АйДевайсе мелодия будет отображена под именем «Cafe De Flor»
Ссылки
http://www.libimobiledevice.org/ — libimobiledevice is a cross-platform library that talks the protocols to support iPhone, iPod Touch, iPad and Apple TV devices. Unlike other projects, it does not depend on using any existing proprietary libraries and does not require jailbreaking. http://www.gtkpod.org/libgpod.html — Libgpod is a library to access the contents of an iPod. It supports playlists, smart playlists, playcounts, ratings, podcasts, album artwork, photos, etc.