61 lines
3.6 KiB
Plaintext
61 lines
3.6 KiB
Plaintext
USB and upstream transport assessment — 2026-11-12
|
|
|
|
Current candidate: stable jmcorgan/fips v0.5.3 at
|
|
f4a5b4a8e61e340e6be7551608109a5c399f8353. Companion embeds that exact revision;
|
|
upgrading a node's daemon does not upgrade an already-installed APK.
|
|
|
|
Reference snapshots:
|
|
MYCO Origami74/myco 23029ee8c401d26e65faacfa6b4ee71db955d69f
|
|
FIPS master 028432e70faf1983748b84a67d14ad4e8340a43f (0.6.0-dev)
|
|
FIPS feat/usb-transport 7ded9810f85278ee3e4b61a2b8c992a8948e6a4d
|
|
|
|
MYCO's CI selects feat/usb-transport, stacked on multi-path-switchover. Its
|
|
build guide mentioning master does not describe the shipped transport stack.
|
|
Neither the reviewed stable release nor master contains this USB transport.
|
|
Floating master is therefore not a substitute for an explicit dependency update.
|
|
|
|
Relevant implementation references in that MYCO snapshot:
|
|
- android/app/src/main/java/app/myco/usb/: accessory and host attach activities,
|
|
permission watcher, already-attached discovery and detach handling.
|
|
- myco-core/src/usb_bridge.rs: Node.enable_app_owned_usb, attachment queue and
|
|
native descriptor ownership across node lifecycle changes.
|
|
- myco-core/src/usb_bridge_jni.rs: accessory and host descriptor transfer.
|
|
- myco-core/Cargo.toml: usb-host feature for host-side transport.
|
|
- .github/workflows/ci.yml: actual FIPS dependency revision selection.
|
|
|
|
Required implementation work, after core performance/Bump acceptance:
|
|
1. Evaluate a pinned transport revision against stable 0.5.3 node interoperability
|
|
and the preserved stale-LAN reproducer before replacing the dependency.
|
|
Multipath is probed active/standby failover, not bandwidth aggregation.
|
|
2. Implement both Android Open Accessory and USB host roles. Check capabilities,
|
|
request Android USB permissions, and bind permission results to the actual
|
|
attached device and current service generation. No permission loops.
|
|
3. Transfer one owned descriptor through JNI. Close exactly once on rejection,
|
|
cancellation, detach and node shutdown; handle attach-before-native-ready,
|
|
duplicate broadcasts and stale accessory enumeration. Never attach an old
|
|
descriptor to a replacement node instance.
|
|
4. Keep the same FIPS identity, VPN and mesh origin while USB becomes preferred
|
|
or disappears. Do not reload WebView or alter application federation trust.
|
|
5. Validate two real phones with a data cable in both roles: attach, permission
|
|
denial, detach during request, fallback, reattach, background/service restart,
|
|
loss of one peer and sustained authenticated transfers. Record actual bytes,
|
|
duration and CPU/battery behaviour. An AOA switch can interrupt USB debugging;
|
|
use an independent recording path and reconnect after the run.
|
|
|
|
MYCO reports 127 Mbps Pixel-to-Mac, not an Archipelago measurement and not a
|
|
phone-to-phone result. No USB UI, permission request, transport or throughput
|
|
claim ships in this candidate. USB implementation and device acceptance remain
|
|
open; this assessment is not a declaration of completion.
|
|
|
|
Techniques already applied without experimental dependencies: explicit Android
|
|
Network socket binding, owned socket/TUN descriptors, bounded teardown, stable
|
|
browser origins, bounded caches and generation guards. Stable 0.5.3 supplies
|
|
rekey recovery, fresh lookup on route loss and preserved link-quality estimates.
|
|
These do not eliminate the reproduced remote stale-direct-link issue.
|
|
|
|
Sources:
|
|
https://github.com/jmcorgan/fips/releases/tag/v0.5.3
|
|
https://github.com/Origami74/myco/tree/23029ee8c401d26e65faacfa6b4ee71db955d69f
|
|
https://github.com/jmcorgan/fips/tree/7ded9810f85278ee3e4b61a2b8c992a8948e6a4d
|
|
https://developer.android.com/develop/connectivity/usb/accessory
|