How anton7444/osharepc works
OShare PC is an unofficial Windows client for exchanging files with compatible phones. The user turns sharing on, discovers a phone, and sends files; the reverse flow accepts a phone-initiated transfer and saves received files. The backend coordinates BLE discovery and links with LAN transfer services, while the desktop GUI communicates with it through an authenticated bridge. The README documents the GUI/backend relationship; source excerpts and the SOURCE INDEX establish many backend dependencies, but do not expose the bridge protocol or all transfer call paths.
Main entry points: SenderEngine.cs Sender engine · ReceiveGattServer.cs Receive GATT server · drag_drop_bridge.cpp Desktop GUI · Program.cs Backend entry
Components 24
Desktop control
- Desktop GUI
oshare_gui/windows/runner/drag_drop_bridge.cpp - Backend entry
Program.cs - Authenticated bridge
OShareBridgeServer.cs
Transfer coordination
- Sender engine
SenderEngine.cs - Settings
SettingsStore.cs
Phone discovery
- Phone scanner
PhoneScanner.cs - BLE advertiser
AllianceAdvertiser.cs - Fallback advertiser
GattServiceFallbackAdvertiser.cs - BLE link
GattLink.cs
Send and networking
- LAN discovery
LanDiscovery.cs - LAN interface
LanInfo.cs - Mobile hotspot
HotspotManager.cs - Wi-Fi join
WifiJoiner.cs - Send server
TransferServer.cs - Transfer task
TransferTask.cs
Receive and storage
- Receive GATT server
ReceiveGattServer.cs - Receive session
ReceiveSession.cs - Download location
DownloadsFolder.cs
Account support
- Account login
OppoAccount/OppoAccountLoginSession.cs - Account service client
OppoAccount/OppoAccountClient.cs - BLE account hash
OppoAccount/OppoAccountBleHash.cs
Other components
- PC user
- Compatible phone
- OPPO account service
Connections 25
- PC user → Desktop GUI: controls
README.md - Desktop GUI → Backend entry: starts beside
README.md - Desktop GUI → Authenticated bridge: uses bridge
README.md - Backend entry → Sender engine: starts engine
Program.cs - Sender engine → Phone scanner: starts scan
SenderEngine.cs - Sender engine → BLE advertiser: coordinates
SenderEngine.cs - Sender engine → Fallback advertiser: coordinates
SenderEngine.cs - Sender engine → BLE link: connects
SenderEngine.cs - Sender engine → Send server: uses
SenderEngine.cs - Sender engine → Receive GATT server: starts receiver
SenderEngine.cs - Sender engine → Mobile hotspot: manages hotspot
SenderEngine.cs - Sender engine → LAN discovery: uses discovery
SenderEngine.cs - Sender engine → LAN interface: detects LAN
SenderEngine.cs - Sender engine → Wi-Fi join: joins Wi-Fi
SenderEngine.cs - Sender engine → Settings: reads settings
SenderEngine.cs - Compatible phone → Phone scanner: broadcasts to
- Compatible phone → Receive GATT server: initiates receive
- Send server → Transfer task: creates task
TransferServer.cs - Receive GATT server → Receive session: starts session
ReceiveGattServer.cs - Receive GATT server → Download location: selects save path
ReceiveGattServer.cs - Receive session → Compatible phone: receives files
- Sender engine → BLE account hash: checks account
SenderEngine.cs - Account login → Account service client: calls
OppoAccount/OppoAccountLoginSession.cs - Account service client → OPPO account service: sends requests
OppoAccount/OppoAccountClient.cs - BLE account hash → Settings: uses account ID