cfd314ffa27cf31321fddbf28b292ece6b237961
Безопасность: - Сервер bind на loopback (127.0.0.1) вместо 0.0.0.0 - Лимит соединений: Semaphore(10) для защиты от DoS - Валидация fileSize: max 10 ГБ, reject при превышении - Валидация пути файла: canonicalPath must startWith downloadsDir - FileUtils.resolveUniqueFile: max counter 1000 - FileUtils.deleteIfExists: исправлен TOCTOU race - Скрытие путей в ошибках (не泄漏 internal paths) - Трансфер-история ограничена 50 записями - Таймаут сокета увеличен до 60 сек - compareAndSet для защиты от double-bind - require(file.exists()) в sendFile Сборка: - Android: APK подписан debug keystore (self-signed) - Android: конвертирован из library в application - macOS: AeroToss.app (113 МБ) + JAR (28 МБ) - LICENSE: GPLv3 Тесты: все 71+ проходят
AeroToss
Кроссплатформенное приложение для передачи файлов между Android устройствами и компьютерами (Mac/Linux/Windows), а также между самими Android устройствами. Работает как удобный аналог AirDrop.
Возможности
- Передача файлов в обе стороны: телефон ↔ компьютер, телефон ↔ телефон
- Автоматическое обнаружение устройств в Wi-Fi сети (mDNS/Bonjour)
- Автономный режим через Wi-Fi Direct (без роутера)
- Передача файлов любого размера (стриминг чанками по 64 КБ)
- Прогресс передачи, скорость, проверка целостности (SHA-256)
Поддерживаемые платформы
| Платформа | Статус |
|---|---|
| Android | ✅ Поддерживается (Wi-Fi + Wi-Fi Direct) |
| macOS | ✅ Поддерживается (Wi-Fi) |
| Linux | ✅ Поддерживается (Wi-Fi) |
| Windows | ✅ Поддерживается (Wi-Fi) |
Стек технологий
- Язык: Kotlin 2.3.21
- UI: Compose Multiplatform 1.11.1
- Обнаружение: mDNS — JMDNS 3.6.3 (desktop) / Android NSD API + Wi-Fi Direct P2P (Android)
- Передача файлов: Java Socket + DataInputStream/DataOutputStream
- Сборка: Gradle 8.13 + AGP 8.13.2
Лицензия
GNU General Public License v3.0 (GPLv3)
Description
Languages
Kotlin
100%