Отправляет email-рассылки с помощью сервиса Sendsay

FreeBSD: полезные заметки

  Все выпуски  

FreeBSD: полезные заметки. Работа с мобильным телефоном


Всем доброго времени суток!

В этом выпуске я расскажу вам, как можно работать с вашим мобильным телефоном, используя операционную систему FreeBSD. В качестве подопытных образцов возьмём телефоны HTC и Apple.

Во-первых, подключим мой телефон HTC Desire HD к FreeBSD 9.0 (обращаю внимание на ошибку Invalid argument после ввода команды монтирования):

# ls /dev/da*
/dev/da0

# ll /dev/da0*
crw-rw---- 1 root operator 0, 152 15 янв 20:12 /dev/da0

# mount /dev/da0 /mnt
mount: /dev/da0 : Invalid argument

# ll /dev/da0*
crw-rw---- 1 root operator 0, 152 15 янв 20:12 /dev/da0
crw-rw---- 1 root operator 0, 163 15 янв 20:12 /dev/da0s1

# mount_msdosfs -L ru_RU.UTF-8 /dev/da0s1 /mnt

# cd /mnt

# ls
Android DCIM LOST.DIR My Documents bugreports tmp
AppInstaller.apk Download Marvin ROMs media yandexmaps
CityGuide HTCSync_3.0.5439.exe Music bSoft rosie_scroll youmicache


В консоли, к слову, я использую UTF-8.

Теперь возьмём, друзья, любимый некоторыми яблочный телефон. Как копировать фото и видео с него, а также использовать айфон в качестве модема, я вам расскажу. Начнём с модема.

Для этого нам понадобятся несколько утилит и модуль if_ipheth.ko. Если лень его подгружать kldstat'ом, надо прописать в /boot/loader.conf:

if_ipheth_load="YES"

2. Устанавливаем прикладные утилиты libplist, libimobiledevice, usbmuxd, ifuse:

# cd /usr/ports/devel/libplist && make install clean
# cd /usr/ports/comms/libimobiledevice && make install clean
# cd /usr/ports/comms/usbmuxd && make install clean
# cd /usr/ports/sysutils/fusefs-ifuse && make install clean

3. Патчим usbmuxd (нужен git):

# git clone git://github.com/dgiagio/ipheth.git
# cd ipheth/ipheth-pair
# cc -Wall -O2 ipheth-pair.c -o ipheth-pair -L/usr/local/lib -I/usr/local/include -limobiledevice

4. Подключаем айфон (см. dmesg). В режиме модема ("Настройки-Основные-Сеть-Режим модема", при запросе выбрать "USB"):

ugen6.2: at usbus6

5. Запускаем usbmuxd в фоне.

# /usr/local/sbin/usbmuxd -U root -f
[22:28:43.564][3] usbmuxd v1.0.7 starting up
[22:28:43.596][3] Connecting to new device on location 0x60002 as ID 1
[22:28:43.597][3] Initialization complete
[22:28:43.597][3] Connected to v1.0 device 1 on location 0x60002 with serial number c42c94bf0b04111ad18300d2f5a188a615bef13e
[22:44:48.711][1] RX transfer stalled for device 6-2
[22:44:48.711][3] Removed device 1 on location 0x60002

6. Смотрим dmesg

ipheth0: on usbus6
ue0: on ipheth0
ue0: Ethernet address: ce:08:e0:df:81:ab

7. ue0 создан - это хорошо. Запускаем.

# ./ipheth-pair
# dhclient ue0

Ещё были некоторые проблемы с таблицей маршрутизации (и собственно default gateway). Вот что пишут по этому поводу специалисты:

"Note : for some reason, DHCP client does not push default gateway to my routing table and DNS server entry into resolv.conf. Default gw is the address you'll get your lease from (in my case 172.10.20.1), but the DNS server isn't, in my case it's 10.48.65.30 (note it's still private scope). I had to connect my phone to Windows machine to see what kind of address USB<->ETH adapter over there gets.

I haven't had time to check stability of this mechanism. "


Теперь перейдём к копированию фотографий. К сожалению, gtkam (графический интерфейс) у меня почему-то определять айфон отказывается, но можно всё сделать и в командной строке:

1. Устанавливаем graphics/gphoto2:

# cd /usr/ports/graphics/gphoto2 && make install clean

2. Просматриваем фотографии:

# gphoto2 --camera 'Apple iPhone (PTP Mode)' -L

- это для 3-го айфона,

# gphoto2 --camera 'Apple iPhone 3G (PTP Mode)' -L

- для 3G и 4-го.

3. Заходим в свою домашнюю директорию, создаём папке photos и копируем туда.
# cd /home/uglev && mkdir photo
# cd photo
# gphoto2 --camera 'Apple iPhone 3G (PTP Mode)' -P

В общем, надеюсь никого не утомил, потому что на очереди — восстановление удалённых файлов с моего телефона HTC Desire HD (Android).

 Рассказали мне жуткую историю о том, как беспредельничают сотрудники ДПС. Помимо всего прочего они выхватили телефон у владельца, когда тот записывал их незаконные действия, и удалили видеофайл.

Ну что же, теперь с владельцами телефонов с ОС Android этот трюк не пройдёт. По крайней мере с теми, у кого под рукой FreeBSD. )

1. Устанавливаем программу Sleuth Kit:

# cd /usr/ports/sysutils/sleuthkit && make install clean

2. Читаем подробные описания программы:
- http://mydebianblog.blogspot.com/2007/01/2-sleuth-kit.html
- http://www.xakep.ru/post/51026/

3. Подключаем телефон к usb-разъёму:

# fls -rd /dev/da0s1
r/r * 65943590: DCIM/.thumbnails/_-E49A~1.JPG
r/r * 65943633: DCIM/.thumbnails/_-E49A~1.JPG
r/r * 117994822: DCIM/.thumbnails/_-418A~1.JPG
r/r * 130945334: DCIM/.thumbnails/10-B66E16DB-3
r/r * 130945729: DCIM/.thumbnails/_0-D2A~1.JPG
r/r * 197860504: DCIM/.thumbnails/_2-1AC~2.JPG
r/r * 190959938: DCIM/.thumbnails/12-1016AD1B-5
r/r * 190960060: DCIM/.thumbnails/10-9CCE777F-1
r/r * 190960112: DCIM/.thumbnails/_0-E80~1.JPG
r/r * 4480072: DCIM/1126MEDIA/IMAG0427.jpg
d/d * 348211: Music/_usic
r/r * 4440069: .data/navigator/_efault.ini
d/d * 4442127: .data/navigator/Data/_OLORS~1
-/r * 101105670: $OrphanFiles/_MAG0335.JPG
-/r * 101105672: $OrphanFiles/_MAG0104.JPG
-/r * 101105674: $OrphanFiles/_MAG0103.JPG
-/r * 101105677: $OrphanFiles/_MAG01~1.JPG
-/r * 101106228: $OrphanFiles/_MAG0393.JPG

Ну и так далее (весь список не привожу).
Первая буква показывает тип файла, т.е. r-egular, d-irectory, l-ink, s-ocket или "не определён" (?). Знак "*" на второй позиции показывает, что файл не распределён (удалён).

4. Попробуем что-нибудь восстановить. Мне понравился этот файл:

# istat /dev/da0s1 130945729
Directory Entry: 130945729
Not Allocated
File Attributes: File, Archive
Size: 4187
Name: _0-D2A~1.JPG

Directory Entry Times:
Written: Sat Jan 14 19:34:18 2012
Accessed: Sun Feb 12 00:00:00 2012
Created: Sat Jan 14 19:34:18 2012

5. Восстанавливаем!

# icat /dev/da0s1 130945729 > /home/uglev/Desktop/bad.jpg

Ну, почти всю картинку удалось выцепить. )

6. Восстанавливаются фотографии по-разному. Указанная фотография за январь, к примеру, восстановилась не полностью. А вот вчерашняя - на все 100%. Вывод: чем быстрее вы начнёте восстановление, тем лучше. )

А про подключение самого HTC к FreeBSD я уже писал.

Всех благ вам!

В избранное