
Недавно столкнулся с самой обычной задачей: нужно было перенести файлы с Android-телефона на ноутбук. Телефон подключили по USB, перебрали кабели, проверили режим передачи файлов — Windows упорно делала вид, что ничего не произошло. Ладно, есть же Wi-Fi и программы вроде LocalSend. Только там довольно быстро выяснилось, что простая операция «забрать с телефона эту папку целиком» превращается в отдельный квест.
В какой-то момент я подумал: а почему бы не сделать нормальный файловый менеджер, в котором одна панель показывает компьютер, а вторая — телефон? Примерно как в старом добром Total Commander. Открываешь каталоги, выделяешь нужное, копируешь. Без обязательной учётной записи, облака и танцев с проводами.
Так появился FerryPane. Изначально идея была совсем небольшой, но быстро выросла в полноценное приложение для Windows, Linux и Android. Сейчас уже доступна рабочая версия 0.1.5 Preview с готовыми установщиками, шифрованной передачей, резервным копированием контактов и SMS. Пожалуй, пора показать, что получилось.
Важно не просто отправить пару файлов, а работать с каталогами
Главная особенность FerryPane — две файловые панели. В каждой можно выбрать локальное или удалённое устройство, перейти в папку, подняться на уровень выше через привычное .., отметить несколько объектов или выделить всё содержимое каталога. Копирование папок рекурсивное: не нужно открывать каждую и вручную отмечать файлы.
Причём «компьютер — телефон» здесь не жёстко закреплённая схема. Оба устройства равноправны. Можно передавать файлы между двумя ПК, между ПК и Android или между двумя Android-устройствами. На компьютере видны сразу две панели, на телефоне между ними можно переключаться.
Без облака, но с нормальной проверкой подключения
FerryPane работает напрямую по локальной сети: обычный Wi-Fi, Ethernet, точка доступа телефона. Интернет для передачи не требуется. Устройства обнаруживают друг друга в доступных частных сетях; если автоматический поиск мешает роутер, брандмауэр или VPN, можно подключиться по IP.
При первом сопряжении на обоих устройствах появляется шестизначный код — нужно убедиться, что он совпадает. После подтверждения запоминается ключ доверенного устройства. Сами файлы передаются по зашифрованному соединению, а содержимое проверяется контрольной суммой. Доступ к удалённым файлам ограничен каталогом, который пользователь открыл для обмена.
Здесь важно уточнить: протокол новый и пока не проходил независимый аудит безопасности. Для домашней сети и повседневного обмена это уже полезный инструмент, но объявлять его проверенным решением для недоверенных сетей я бы не стал.
Попутно появилась ещё одна функция: спасение данных с телефона
Когда уже появилась возможность забирать файлы с Android без USB, возник закономерный вопрос: а что делать, если у телефона вообще перестал работать экран? В такой ситуации хочется хотя бы сохранить фотографии, документы, контакты и важные SMS, а не выяснять, куда ещё можно нажать на разбитом дисплее.
В FerryPane можно заранее сопрячь телефон с доверенным компьютером и отдельно разрешить ему резервное копирование контактов и SMS. После этого ПК сможет запросить бэкап без повторного подтверждения каждой выгрузки на телефоне. Контакты сохраняются в стандартный .vcf, SMS — в JSON и отдельный автономный HTML-файл. Последний можно открыть в браузере без Интернета и найти нужную переписку по контакту, номеру или тексту.
Контакты можно и восстановить обратно — на исправном Android-телефоне. FerryPane показывает предварительный анализ и просит подтвердить изменения, затем добавляет отсутствующие записи и дополняет существующие по совпадающим номерам и адресам электронной почты. Восстановления SMS пока нет: для старых сообщений я предпочёл удобный читаемый архив, а не вмешательство в системную базу. Да и не припомню случая чтобы хоть раз мне понадобилось восстанавливать SMS-переписку. Там скорее больше всякие уведомления и подтверждения теперь, чем реальное общение с людьми.
При этом чудес не обещаю. Для восстановления данных с разбитого экрана всё нужно разрешить заранее, и FerryPane на телефоне должен оставаться запущенным. Полноценная фоновая служба Android ещё в планах. Ограничения самой системы, в том числе на чтение SMS, программа не обходит.
Что вошло в 0.1.5 Preview
- Единый файловый менеджер для Windows, Linux и Android.
- Копирование файлов и целых каталогов в обе стороны, выделение всех объектов и привычная навигация.
- Поиск устройств в локальных сетях, включая сценарии с активным VPN, и подключение по IP.
- Сопряжение с проверочным кодом, запоминаемые доверенные устройства и зашифрованная передача.
- Резервные копии Android-контактов и SMS; HTML-архив переписок; восстановление контактов.
- Интерфейс на русском и английском, с выбором языка в настройках.
- Для Windows — установщик EXE или портативный ZIP; для Debian/Ubuntu — DEB или TAR.GZ; для Android — подписанный APK.
С версией 0.1.5 программа уже прошла практическую проверку передачи файлов между Windows и Android. Есть автоматические тесты и проверка сборки и установки пакетов в GitHub Actions. Тем не менее это всё ещё Preview: синхронизация каталогов, докачка прерванной передачи, работа Android в фоне и обмен через интернет-хаб (над его необходимостью я пока еще думаю, а надо ли?) пока не реализованы.
Исходники, скачивание и планы
FerryPane — открытое приложение под GPL-3.0. Исходники, README на русском и английском, список изменений и готовые сборки лежат на GitHub. Для установки своего сервера ничего не нужно: программа общается напрямую с другим устройством в локальной сети.
Страница проекта FerryPane на mirv.top — описание, возможности и ссылки (будет доступна после публикации карточки проекта).
Исходный код на GitHub — репозиторий и документация.
Скачать FerryPane 0.1.5 Preview — EXE, ZIP, DEB, TAR.GZ и APK.
Сообщить об ошибке — если что-то не заработало или есть предложение.
В дальнейшем хочу заняться надёжной фоновой работой на Android, восстановлением прерванных передач, улучшением файловых операций и полноценным тестированием на разных устройствах. А пока программа уже решает ту самую задачу, с которой всё началось: открыть телефон как удалённую файловую панель и спокойно забрать нужную папку.