Repository navigation
Releases
Releases · zumuvik/phonect
v0.4.11
v0.4.10
v0.4.9
v0.4.8
Phonect v0.4.7.1
Что исправлено
- Исправлен lifecycle теста Android attempt registry, который оставлял незавершённую coroutine.
- Проверена корректная отмена владельца attempt’а и освобождение ключа после завершения cleanup.
- Сохранены исправления discovery
in-flight, сетевого lifecycle и timeout биометрии из 0.4.7.
Проверки
- Android unit tests пройдены.
- Debug APK успешно собран в GitHub Actions.
- Python: 69 тестов пройдено.
- Nix flake check пройден.
Phonect Android 0.4.6.1 — handshake diagnostics
This is a debug-signed diagnostic Android build, not a production release.
It adds temporary PairHello/frame logging to diagnose the Expected 'pair_hello', got 'None' handshake failure.
You may need to uninstall the previous APK before installing this build because signing keys may differ.
APK SHA-256: d63a00335c7f1fd36e8d849b88c98165e71b368f0f2bee55713f04f33c5ae5ad
v0.4.6
Changes
- Revert transport from Bluetooth RFCOMM back to Wi-Fi/LAN TCP with UDP discovery.
- Android listens for UDP discovery and connects back to the PC daemon TCP listener.
- Add bounded auth windows so arbitrary TCP connections cannot unlock outside wake/manual/start authentication.
- Harden TOFU: first pairing stores keys only after proof-of-possession and never unlocks on the first TOFU connection.
- Reject trusted-key mismatches without overwriting pinned keys.
- Add dynamic TCP port discovery, Android connection debounce, PEM fingerprint validation, and key-based trust with IP/port refresh after verification.
- Update NixOS module firewall/settings, docs, and version metadata to 0.4.6.
Validation
python -m py_compile src/phonect/*.py tests/*.pynix-instantiate --parse phonect-service.nix
Note: full pytest and Android Gradle build were not run in this environment because pytest/pip and Java/JDK are unavailable.
v0.4.5-easy-bt — one-command Bluetooth pairing
v0.4.5-easy-bt — лёгкое сопряжение по Bluetooth
Что нового
phonect pair— одна команда для Bluetooth-сканирования, сопряжения и TOFU-обмена ключами. Больше не нужно вручную запускать bluetoothctl и править конфиг NixOS.state.json— MAC-адрес телефона теперь хранится в mutable-файле состояния (~/.config/phonect/state.json), а не в декларативном NixOS-конфиге.- Убран
device.bluetooth_macизphonect-service.nix.
Как использовать
phonect gen-keys # если ещё не сгенерированы
phonect pair # BT scan → select → pair → TOFU → save state
phonect daemon --foregroundAPK
Не подписан — требуется локальная подпись для установки на телефон, либо adb install на dev-устройстве.
Полный список изменений
src/phonect/state.py— новый модуль для хранения состояния устройстваsrc/phonect/cli.py— добавлена командаphonect pairsrc/phonect/config.py— удалёнbluetooth_macизDaemonConfigsrc/phonect/daemon.py— BT MAC читается изstate.jsonphonect-service.nix— удалёнdevice.bluetooth_mactests/test_state.py— 5 новых тестов (roundtrip, corruption, partial JSON)- Версия обновлена до 0.4.5
v0.4.0-bluetooth
v0.4.0 — Bluetooth RFCOMM Transport
Breaking change: Replaced Wi-Fi (UDP discovery + TCP sockets) with Bluetooth RFCOMM. Fixes AP isolation issues on routers.
What changed
- Python daemon: Now connects to phone via Bluetooth RFCOMM (PC = BT client)
- Android service: Now listens for Bluetooth connections (phone = BT server)
- Config: Removed IP/port/poll settings, added
device.bluetooth_mac - Mutual auth PSS fix: Cross-platform salt length match between Python cryptography and Android KeyStore
- NixOS module: Removed firewall rule, added
bluetooth_macoption
Migration
- Pair phone with PC at OS level (Bluetooth settings)
- Set
bluetooth_macin config - Install new APK
- Rebuild NixOS config
Files changed
M android/app/src/main/AndroidManifest.xml
M android/app/src/main/java/.../CryptoManager.kt
M android/app/src/main/java/.../HandshakeModels.kt
M android/app/src/main/java/.../PhonectNetworkService.kt
M android/app/src/main/java/.../ProtocolHandler.kt
M phonect-service.nix
M src/phonect/config.py
M src/phonect/crypto.py
M src/phonect/daemon.py
M tests/test_daemon.py
v0.3.1
v0.3.1 — Bugfix: firewall + connection flood
- Firewall rule: NixOS module now opens TCP port 9876 automatically
- Connection flood fix: Android debounces duplicate TCP connection attempts (was launching one per UDP broadcast every 300ms, causing EHOSTUNREACH storms)
- Version bump: phonect-service.nix → 0.3.1