Предисловие
Не так давно я полностью перевел домашний компьютер и ноутбук на Ubuntu. И все было бы хорошо если бы не возникло желание поставить на телефон (L320) своей невесты новую игру.
«Интересная» особенность телефонов Samsung, это весьма своеобразное программное обеспечение, как у самого телефона, так и для компьютера. Не для кого не секрет, что ПО для компьютера существует только для Windows.
Цель: Установить в телефон Samsung java-приложение
Преграды: Нет Windows для PC Studio (PCS). Как и нет PCS для Linux
Что есть: Есть шнур, PC Studio для Windows, ноутбук со встроенным bluetooth, руки и голова программиста
Еще со времен Windows, я проверил — через bluetooth или подключив телефон шнуром как флешку, приложение в телефон не установить. Единственные способ, кроме скачивания через WAP (что нам в принципе не интересно), это передать её в телефон используя ПО от производителя — Samsung PC Studio. Об этом способе детально рассказано в руководстве и на сайте производителя.
Началось все с попытки установить PCS используя Wine. Приложение без проблем было установлено и запущено.
Samsung PC Studio под вином
USB
Оказалось, что wine стандартной сборки не умеет нативно работать с USB. Не долго порывшись в гугле было найдено решение. Это патч на исходный код wine, причем весьма старых версий. Что-что, а вот патчить серьезное приложение патчем для более старых версий и потом собирать его мне ужасно не хотелось, ведь у меня установлен последний стабильный релиз 1.2, а последний релиз патча датирован 31 августа прошлого года и направлен на версию 1.1.28.Этот вариант отпал.
Bluetooth
Еще в 2008 году в сообществе разработчиков wine прошла идея о необходимости поддержки bluetooth, но насколько я понял, дальше идеи это не двинулось. Причиной этому послужило, якобы то, что 2/3 приложений используют свои обвязки для работы с bluetooth и почти не реально реализовать API всех драйверов на все адаптеры, т.е. отсутствует какой-то общий интерфейс который использовали бы все приложения. Если я что-то не правильно понял, прошу меня поправить в комментариях.COM-порт
На ноутбуке у меня нет COM-порта, но зная про особенности *nix систем, что каждое устройство это файл (в папке /dev/), я начал копать. Мысль была проста — переопределить один из доступных интерфейсов, usb или bluetooth, на виртуальный COM-порт и научить wine его использовать.Правильный запрос в поисковик привел меня в топик на англоязычном форуме, где описывался не совсем удачный способ такого подключения.
Но «не совсем удачный», ведь, не значит плохой, правильно?
Я начал вдумчиво повторять шаги ища возможные ошибки или возможные альтернативы. Все действия были произведены, но я так и не нашел способа, заставить wine увидеть dos-устройство — COM-порт созданный мной. Да, и еще, возникла проблема — я не нашел у себя файла-устройства описанного в инструкции с загадочным именем rfcomm0. Чуть позже, выйдя на финишную прямую, я нашел как его создать, но об этом чуть ниже.
Если кто-то подскажет, как подключить такой порт к wine, то все манипуляции будут упрощены до нормально использования PCS под wine с эмуляцией связи через COM-порт.
У меня и эта попытка провалилась.
Linux-way или Выигранный бой
Осознав, что родной софт мне не поможет, я начал экспериментировать.Открыв Synaptic я начал пристально рассматривать названия и описания пакетов связанных с bluetooth и посматривать на пакеты показываемые по поиску «wine».
Пакет который меня спас называется blueman.
sudo apt-get install blueman
Пакет ставит замечательное приложение — Blueman — GTK+ Bluetooth Manager. Это приложение дает возможность весьма тонко работать с bluetooth-адаптером и устройствами к которым он подключается. Скриншоты программы есть на сайте проекта.
Итак, первым делом, облазив меню программы были найдены интересные возможности, например «Служба последовательного порта». Именно эта служба позволила создать выше упомянутое устройство /dev/rfcomm0. Но как ясно из вышеизложенного, этот метод не принес действенных результатов.
Все оказалось намного проще — в контекстном меню устройства (после того как телефон с включенным bluetooth был найден ноутбуком) нашелся весьма интересный пункт «Просмотреть устройство». После его выбора, телефон появился в списке носителей информации в Nautilus. При этом, при стандартных настройках безопасности в телефоне, на каждую операцию на компьютере, телефон отзывался
Дополнение
Спасительное приложение оказалось, так же, весьма полезным для работы с bluetooth-мышкой. В частности, позволила на много быстрее установить связь с нею, если «вовремя не включил при загрузке» или «унес ноут далеко, а мышку забыл» — мелочь, а приятно.Послесловие — Выигран бой, но не война
Говоря терминологией военных — Выигран только этот бой, но не война. По прежнему нет способа полноценно взаимодействовать с телефоном из «не Windows» систем. А ведь взаимодействие не заканчивается на передаче картинок, музыки или игр на телефон или с телефона. Многим еще нужен функционал синхронизации контактов или возможность рассылки СМС используя компьютер. Конечно, для конкретных задач следует пользоваться подходящими устройствами. Упомянутый в начале телефон, L320, не является чем-то большим, чем просто средством общения и примитивным плеером музыки или радио. Но это не означает, что у его владельца не возникнет желания держать в актуальном состоянии телефонную книгу, синхронизируя её с другими устройствами. И не редко, в качестве буферного устройства (или в качестве резервного хранилища) используется именно компьютер, который совсем не обязан использовать Windows. Я не думаю, что все дело в каком-то маркетинговом заговоре или в чем-то похожем, нет. Для меня это говорит, лишь о том, на кого нацелен продукт, о том, как относится производитель к своим клиентам. Я не думаю, что производитель не смог реализовать ПО для других ОС или хотя бы предоставить более человечные возможности в своих устройствах.Вероятно все дело в странной уверенности, что «пользователю будет удобно именно вот так, а не иначе».
Upd: Пользователь asm0dey, подсказал, что есть приложение Wammu для работы с данными телефона (список поддерживаемых телефонов здесь). Но для моего случая — установка приложения на Samsung L320 — программа не подошла. Но судя по описаниям, кому-то может помочь подружить Linux с мобильным любимцем.
Данный пост стал билетом на хабр для меня. За что отдельное спасибо jenyay. Если этот пост после песочницы не потерялся, а я его просто не нашел...