Обмен файлами между Galaxy Tab и Ubuntu

Обмен файлами между Galaxy Tab и Ubuntu

Не так давно стал обладателем сего девайса — Samsung Galaxy Tab 10.1. Рассказывать про впечатления от приобретения, плюсы и минусы планшета я не буду, скажу лишь, что доволен.

Все бы хорошо, но надоумился Google в Android 3.0+ убрать возможность подключения устройства как USB накопителя (USB Mass Storage). Да и Samsung показал себя не с лучшей стороны, не допилив USB Mass Storage, как это делают другие производители, например Acer. Вместо этого в операционную систему всунули гнусный майкрософтовский MTP (Media Transfer Protocol). У которого помимо прочих минусов, есть очень большой недостаток — сырая реализация под Linux. Ну по крайней мере подружить свою убунту и планшет через него мне так и не удалось. Поэтому я расскажу об альтернативном способе обмена файлами между Android устройством и устройством с ОС Linux. В данном случае Samsung Galaxy Tab 10.1 с Android 3.2 на борту и моя любимая Ubuntu 11.10 🙂
Кстати, этот способ также подойдет и для Mac OS юзеров.

Сразу после обнаружения этой «фичи» я полез искать способ подключения к ПК. Пытался сначала все же задействовать этот MTP, но все безуспешно.
После этого начал искать альтернативу. Нашел очень интересный способ — использовать стандартную утилиту ADB из Android SDK. Она представляет собой отладочный протокол (мост) для обмена данными между ПК и Андроид устройством. Помимо этого имеется возможность обмениваться файлами, просматривать дерево каталогов и файлов, создавать директории, что нам как раз и требуется.

Так как утилита консольная, то для удобства использования нам потребуется графический интерфейс. Хоть выбор и не велик, но для себя я выбрал программку на Python — AAFM (Android ADB File Manager). Описание, установка и способ использования есть на официальной страничке, но я все же напишу краткий мануал на русском языке.

 Требования

— Python с библиотеками PyGTK
— GTK
— git
— Android SDK

Для Ubuntu нам понадобится только git и Android SDK.

 Устанавливаем git и копируем репозиторий

sudo apt-get install git
git clone git://github.com/sole/aafm.git ~/Applications/aafm

 Устанавливаем Android SDK

sudo apt-get install ia32-libs

Скачиваем SDK отсюда — http://developer.android.com/sdk/index.html. Распаковываем в директорию ~/Applications/android-sdk и выполняем следующие команды в консоли:

sudo cp ~/Applications/android-sdk/platform-tools/adb /usr/bin/adb
sudo cp ~/Applications/android-sdk/platform-tools/aapt /usr/bin/aapt

 Настраиваем udev

sudo gedit /etc/udev/rules.d/51-android.rules
# Samsung
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0777"

Чтобы узнать idVendor нужно выполнить в консоле команду lsusb и найти там свое устройство. Список будет примерно такой:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 064e:a103 Suyin Corp. Acer/HP Integrated Webcam [CN0314]
Bus 002 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Bus 006 Device 002: ID 147e:1000 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
Bus 001 Device 005: ID 04e8:6860 Samsung Electronics Co., Ltd 

По последней строчке можно понять, откуда берется idVendor:
Bus 001 Device 005: ID 04e8:6860 Samsung Electronics Co., Ltd
Редактируем idVendor, если требуется и сохраняем файл.
Выставляем права и перезапускаем udev:

chmod a+r /etc/udev/rules.d/51-android.rules
sudo /etc/init.d/udev restart

 Настраиваем устройство

Теперь нужно включить на Android устройстве режим отладки:
Настройки -> Приложения -> Разработка -> Отладка по USB
.

 Запускаем AAFM

Подключаем телефон/планшет через USB шнур и выполняем следующие команды:

cd ~/Applications/aafm/src
chmod +x ./aafm-gui.py
python ./aafm-gui.py

После этого должно открыться окно такого вида:

Для себя я сделал кнопку запуска, привязал к ней иконку и добавил на панель Unity.
Процесс настройки конечно кропотливый, но на самом деле не такой сложный как кажется и займет не больше получаса вашего свободного времени. Зато результат будет оправдан 🙂

P.S. Графический интерфейс программы подвисает при передаче больших файлов. На самом деле это не значит, что файл не перадается. Это как раз показатель обратного — передача идет успешно, поэтому не спешите закрывать окно, дождитесь пока она отвиснет. Видимо это связано с тем, что разработчик решил не выносить передачу файлов в отдельный поток. Надеюсь в следующей версии они это исправят.

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

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