Releases: Unknnownnn/DeviceLink
Releases · Unknnownnn/DeviceLink
Release list
v1.6.2
Version 1.6.1
Media Sync & Gallery Management
- Bidirectional Image Clipboard Sync:
- Windows Side: Reads bitmaps from the clipboard, converts them to PNG, and forwards them as Base64 strings.
- Android Side: Saves clipboard images to the cache directory and registers a
content://URI on the system clipboard using aFileProviderwith a high-priority heads-up notification.
- Android Gallery Access & Sync Window:
- Adds a dedicated Photo Gallery window in the PC GUI showing a grid of photos/videos fetched from the Android device.
- Supports dynamic runtime permission checks (
READ_MEDIA_IMAGESandREAD_MEDIA_VIDEOon Android 13+, andREAD_EXTERNAL_STORAGEon older versions). - Loads in customizable paginated batches (e.g. 20 items at a time)
- Allows sorting by Date or Size in ascending or descending orders.
- Provides options to filter/include videos or sync only pictures.
- Allows downloading specific media files to the local PC's
Downloads/DeviceLink_Downloads/folder. - Features a Sync Entire Gallery queue task
- Supports Delete from Phone functionality, asking for PC confirmation, performing deletion via
ContentResolveron Android (with path fallback support), and dynamically removing the deleted card from the grid view. - UX & Stability Bug Fixes:
- Bound all file explorer and messagebox confirmation dialogs to their respective parent windows to prevent them from opening behind topmost screens (such as the main dashboard or gallery window).
- Added safety guards to verify the window remains active and exists before executing widget updates (preventing
_tkinter.TclError/invalid command nameif a topmost window is closed while a blocking popup dialog is open).
Version 1.6.0
Destructive Action Security & Consent Overhaul
Prior to v1.6.0, the AI agent could not perform destructive operations (such as deleting files or altering system states) due to missing execution paths and verification logic. Whenever the AI initiates a destructive or sensitive command, the system prompts for consent.
Local File Deletion (delete_local_file)
- Added a secure file-purging tool to the agent's action schema inside
SanitizationSandbox. - Includes path traversal jailguards to ensure deletions are restricted to safe, authorized user folders
- Prompts the user for absolute permission prior to executing
os.remove.
Automatic Path & Username Resolution
- Adjusted application launchers and file tools to automatically resolve user directory placeholders. Commands targeting paths like
Downloads/Other/or referencing foreign system usernames are dynamically rewritten to match the active PC host's directory format.
Core & Session Updates (Since v1.5.2)
- AI Chat History Persistence: Locally persists the last 15 chats across sessions, preventing context loss when relaunching the client.
- NLP Command Retry: Added a retry option for the last NLP command if execution encounters errors.
- STUN and UDP Hole Punching Fallbacks: Fixed connection deadlocks by introducing WebRTC-inspired fallback routing for remote control sessions.
Version 1.5.3
Fix Scroll on android
Added buttons to directly allow required permission on both android and windows
Version 1.5.2
- Android UI Overhaul
- Minor bug fixes
Version 1.5.1
- Added new UI for mobile deck on windows
- Fixed notification click on Android
- Minor bug fixes
Version 1.5.0
Android Companion App
Added Animations
- Added simple yet smooth animations
Settings Layout and Permissions Restructuring
- Grouped all system-level settings and runtime permissions into the permissions section in settings.
- Combined the check-for-updates view directly into the top App Info card below the version label to eliminate layout clutter.
- Implemented PermissionHelper utility shortcuts to guide users directly to Android settings overlays.
Proactive Permissions and Services
- Added immediate runtime authorization checks on app launch for all core features
- Implemented AppNotificationListenerService (bound to Android's NotificationListenerService) to sync incoming notifications to the desktop application.
- Added LaunchAppActivity to handle launching application processes remotely.
Windows GUI Agent
Desktop Deck Transparent Grid Frame
- Resolved a layout rendering issue where solid color rectangle backgrounds were displayed behind app shortcuts in the Android tab grid.
- Shifted widgets into a transparent grid frame (CTkFrame overlay) so that the synchronized phone wallpaper gradient displays smoothly.
AI Agent Execution Controls
- Added the control_android_device tool to the AI agent, allowing the AI to launch apps, toggle the device's settings, and adjust media/ring volumes on the phone.
- Configured strict privacy guardrails for the AI agent to prevent scanning or storage of private contacts, notifications, and SMS messages.
- Fixed an issue where exiting and returning to the AI Agent tab would not reset or redraw wait animations correctly.
Phone Data Synchronization
- Added new background handlers to request, parse, and synchronize data from the mobile companion app, including:
- Phone status updates (battery level, charging status, network connection type, and Wi-Fi SSID).
- Incoming app notifications.
- Active device contacts list.
- Incoming SMS list.
- Custom desktop deck layout and application shortcuts configuration.
- Simplified dependency structure and import resolution across WebSocket connection and calling handlers.
Version 1.4.1
Robust STUN/UDP Hole Punching (DNS-Free resolution)
- Direct STUN Server IPs: Both the Windows agent and Android app now include direct, hardcoded IPv4 endpoints for Google and Twilio public STUN servers. This completely bypasses DNS resolution delays and prevents lookup timeouts (such as the
timed out waiting for stun_responseerror). - Extended STUN Attributes Support: Added decoding support for the alternative XOR-MAPPED-ADDRESS attribute type (
0x8020) in addition to the standard (0x0020), improving connection mapping success rates across a wider variety of NAT setups. - Handshake Reliability: Fixed the UDP plaintext handshake check so that only a new
HELLOmessage triggers session state and cipher resets. ValidHELLO_CONFIRMmessages (and duplicates) can no longer disrupt active secure sessions.
Smooth, Synchronized File Transfer Progress
- Paced Loop Integration: Restored local progress updates directly within the Windows chunk-sending loop (which pauses for 15ms per chunk). The progress bar on the Windows GUI now updates smoothly and in close alignment with the actual network transmission, resolving the previous issue where it was stuck at 0%.
Power Control Enhancements
- 2x2 Grid Layout: Re-arranged the Power tab buttons ("Lock", "Sleep", "Restart", "Shutdown") on the Android connection screen into a clean 2x2 grid layout (rather than a 4x1 row) for a more intuitive mobile interface.
- System Restart Command: Integrated the system restart action on the Windows host side when requested from the phone.
Windows Agent
- Fixed Background Thread Crash: Fixed a Python syntax error (
SyntaxError: name 'active_udp_session' is assigned to before global declaration) inudp_server.pythat previously caused the agent's background backend thread to crash on start, rendering the PC unresponsive to signaling requests.
Version 1.4
Added Direct File Sharing with Progress Bars
- Removed Directory Polling: Eliminated the legacy, disk-heavy "DropZone watched folder" directory watcher mechanism.
- Direct Button Sharing: Users can now select and send files directly via the Send File button in the Windows GUI or the Android app.
- Unified Channel Routing: Transfers are streamed in encrypted 64KB chunks over the active connection pathway (Local WebSocket, STUN/UDP, or Firebase Fallback).
Smart Connection Auto-Routing
- mDNS Scan Prioritization: When initiating a connection to a device listed under "Cloud Relay" (manually or via Auto-Connect), the Android app now runs a quick 2.5-second local mDNS scan first. If the PC is found on the same network, it automatically routes the connection over the local WebSocket (Stage 1), prioritizing speed and zero-cost local traffic.
VPN & Network Resiliency
- Winsock Address Family Fix: Fixed IPv6/IPv4 lookup failures on Windows hosts behind VPN interfaces. The agent now strictly resolves STUN hostnames to IPv4 endpoints.
- Half-Open Socket Detection: Configured Server-Sent Events listeners on the Windows agent with a
(10, 45)second connect/read timeout threshold, forcing automatic socket reconnection when switching network interfaces or toggling VPNs.
Bug Fixes & Stability Upgrades
Android Application
- Fixed 100% Notification Hang: Resolved a bug where the file-receive notification progress bar would get stuck at "100% ongoing" if the notification drawer was open. Progress updates are now throttled to only fire when the percentage integer changes, and the redundant
100%progress call is skipped to allow the completion notification to cleanly take over. - Mismatched Clock Drift Tolerance: Extended the Firebase PC activity threshold from 2 minutes to 10 minutes, preventing online PCs with minor clock drifts from disappearing from the device discovery list.
- Fixed Connection Overlaps (
EADDRINUSE): Implemented proper coroutine job cancellation (connectJob.cancel()) on subsequent connect requests or disconnections. This prevents concurrent connection loops from running in the background and colliding on socket port bindings.
Windows Agent
- Socket Port Reuse: Enforced
SO_REUSEADDRbindings on the UDP client socket to eliminate address family collisions andBindExceptionissues when cycling connections. - Single Instance Lock: Improved single-instance socket locks to prevent double agent instances from running on the host.
Version 1.3
v1.3 feat: added auto-updating capabilites to the windows application