fufesou
b0008edcb5
refact: remove linux headless ( #15866 )
...
* refact: remove linux headless
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(linux): probe DRM availability asynchronously on login
Signed-off-by: fufesou <linlong1266@gmail.com >
* revert changes in drm_capturer.rs
Signed-off-by: fufesou <linlong1266@gmail.com >
* Update submodule hbb_common
Signed-off-by: fufesou <linlong1266@gmail.com >
* docs(linux): clarify DRM availability comments
Remove stale headless and unauthenticated-request
wording, and document the Available-only login-screen gate.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(linux): remove unreachable session cleanup branch
Remove the obsolete empty-session path and
clarify the intended use of cached DRM availability.
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-08-18 15:02:50 +08:00
fufesou
d1da05c4db
refact: remove feature plugin-framework ( #15854 )
...
* refact: remove feature plugin-framework
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: remove unused translations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: delete settings tab observable with correct type
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-08-14 14:31:13 +08:00
CHarris
20ab5ab0ad
fix(deploy): don't wipe local id when --deploy gets an empty --id ( #15633 )
...
`rustdesk --deploy --id ""` (e.g. an unset variable in a deployment
script) deploys a blank id, then wipes the local id and unconfirms the
key through the IPC config write. The Android deploy flow already guards
an empty id (#15146 ); apply the same guard to the CLI, and reject an
empty id at the IPC write boundary the same way the read path was fixed
in #15626 .
2026-07-20 10:58:28 +08:00
21pages
5abf4e9724
Fix disabled installation bypass ( #15598 )
...
* Fix disabled installation bypass
Prevent install.exe and --install from opening the install flow when disable-installation is set.
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Refine disabled installation handling for portable clients
Document why --install must be filtered from both Rust and Flutter runner arguments for portable wrappers such as no-install.exe. Remove redundant UI-
layer installation checks because the install entry points are already gated upstream.
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-07-16 16:00:38 +08:00
fufesou
6426269d41
Refact/printer driver default unchecked ( #15191 )
...
* refact: installation, printer driver, default unchecked
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: silent install, get option from the reg values
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: silent install, arg printer=[0|1]
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-06 08:51:08 +08:00
21pages
d99ddf6816
Add Android device deployment flow ( #15146 )
...
* Add Android device deployment flow
Notify the Android Flutter UI when the server requires deployment, add a deploy dialog with API token/custom ID inputs, and reuse shared deploy logic
for CLI and FFI
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Hide Android deploy API token input
Signed-off-by: 21pages <sunboeasy@gmail.com >
* add more translations
Signed-off-by: 21pages <sunboeasy@gmail.com >
* optimize transations
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Hide deploy action for outgoing-only clients
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Fix deployment register throttle state reset
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Move Android deploy dialog out of settings page
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Use async mutex for deploy register throttle
Signed-off-by: 21pages <sunboeasy@gmail.com >
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-06-02 14:28:30 +08:00
21pages
caadd72ab2
Add advanced option to allow CLI settings when custom client toggles Disable settings ( #15138 )
2026-05-28 17:52:55 +08:00
fufesou
bb51c6aa42
fix(ipc): cmdline, unit tests ( #15069 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-05-18 17:03:04 +08:00
fufesou
78e8134ad5
fix(ipc): cmdline, use scope, deploy ( #15068 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-05-18 16:52:22 +08:00
fufesou
bc2c36215d
fix(ipc): scope active-user IPC routing to root CLI main requests ( #15058 )
...
* fix(ipc): scope active-user IPC routing to root CLI main requests
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): cmdline, comments fails close
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): cmdline, better check
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): cmdline, try active uid when no --server processes
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): cmdline, select active uid
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): remove unused import
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-05-18 16:32:46 +08:00
RustDesk and Copilot Autofix powered by AI
472c4fc03a
--deploy, reuse the device token ( #15035 )
...
* --deploy, reuse the device token
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
* fix review
* no id validation in deploy, so to keep the same behavior in udp register
pk
* Fix collapsed toolbar drag preview sizing
* Revert "Fix collapsed toolbar drag preview sizing"
This reverts commit 66e39abb74 .
* remove too many logs
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-16 14:41:34 +08:00
fufesou and RustDesk
9df486a689
fix(ipc): harden local IPC authorization and portable-service bootstrap flow ( #14671 )
...
* fix(ipc): harden ipc access
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): full cmd path, comments, simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): portable service, ipc exit
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): Remove unused logs
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): Use SetEntriesInAclW instead of icacls
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): Comments
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): check is_reparse_point
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): shmem name, no fallback
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): Simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): better exit and clear
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): portable service, better exit
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): comments, id -u
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: comments linux headless, rx desktop ready
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): magic number
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): update deps
Signed-off-by: fufesou <linlong1266@gmail.com >
* Update Cargo.lock
* Update Cargo.lock
* fix(ipc): harden ipc, test `identity_unavailable`
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): portable service, check dir of shmem
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): macos, better check exe allowed
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): update hbb_common
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): update hbb_common
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): harden ipc, better active uid for uinput
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): harden portable service token validation
Compare portable service IPC tokens in constant time and document the
CSPRNG source used for one-time token generation. Clarify Windows IPC
authorization comments around canonical path matching and partial peer
identity lookup.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): harden portable service token handling
Generate the portable service IPC token directly from OsRng, keep token
comparison in the IPC layer as a fixed-length byte-wise check, and document
the malformed-frame behavior for protected service IPC.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(ipc): comments
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com >
2026-05-09 18:15:00 +08:00
rustdesk
96797742f2
fix https://github.com/rustdesk/rustdesk/issues/14520
2026-03-13 10:42:13 +08:00
fufesou
4abdb2e08b
feat: windows, custom client, update ( #13687 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-02-27 21:50:20 +08:00
21pages
c4a9835ae5
change quick support filename detection ( #14050 )
...
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-01-15 13:47:39 +08:00
fufesou
8fe10d61ea
fix(terminal): linux, macOS, win as the controlled ( #13930 )
...
1. `TERM` on linux terminal.
2. `htop` command not found on macOS.
3. `vim` and `claude code cli` hung up on windows.
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-01-07 16:07:14 +08:00
21pages
9dd4fa8646
add options: disable-change-permanent-password, disable-change-id, disable-unlock-pin ( #13929 )
...
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-01-07 13:51:02 +08:00
rustdesk
4f4da20fc0
revert: flatpak command line is_root
2025-12-05 17:26:06 +08:00
rustdesk
eb0174ea53
flatpak command line is_root
2025-12-05 17:15:29 +08:00
fufesou
426a68775f
feat: macos, update dmg ( #13579 )
2025-11-21 10:27:37 +08:00
RustDesk
3c0be4e40e
Revert "feat: macos, update dmg ( #13539 )" ( #13577 )
...
This reverts commit a6571e71e4 .
2025-11-20 23:18:00 +08:00
a6571e71e4
feat: macos, update dmg ( #13539 )
...
* feat: macos, update dmg
Signed-off-by: fufesou <linlong1266@gmail.com >
* Update src/platform/macos.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix: macos update, remove temp update dir
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: macos update, print
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-18 00:30:23 +08:00
fufesou
934d6c3987
refact: rust backtrace logs ( #13467 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-11-10 15:43:46 +08:00
21pages
f7f947beb9
restrict CLI options when settings disabled ( #13400 )
...
Prevent --password, --set-id, and --option command line arguments
from modifying settings when is_disable_settings() returns true.
Signed-off-by: 21pages <sunboeasy@gmail.com >
2025-11-03 09:43:27 +08:00
rustdesk
d55974c352
--terminal command line
2025-10-17 19:22:46 +08:00
21pages
5481c300b2
more assign from cli and devices.py ( #13050 )
...
Signed-off-by: 21pages <sunboeasy@gmail.com >
2025-09-27 16:55:08 +08:00
fufesou
6c949a9602
feat: cursor, linux ( #12822 )
...
* feat: cursor, linux
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: cursor, text, white background
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-09-06 12:11:43 +08:00
fufesou
e2ec6a5be8
feat: whiteboard, macos ( #12780 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-08-30 22:16:35 +08:00
fufesou
d0e9c6dc57
feat: show my cursor ( #12745 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-08-28 15:20:01 +08:00
rustdesk
d187121645
simply remove it in case password log
2025-08-19 00:23:17 +08:00
d6ba063655
fix: win, privacy mode 2 ( #12123 )
...
* fix: win, privacy mode 2
Signed-off-by: fufesou <linlong1266@gmail.com >
* Update src/privacy_mode/win_virtual_display.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-19 18:39:15 +08:00
rustdesk
01146574f2
prepare no-register-device
2025-05-23 22:15:31 +08:00
rustdesk
ae7faea6d5
--address_book_alias
2025-05-14 19:07:39 +08:00
fufesou
4c354ee1ae
refact: install printer ( #11745 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-05-13 14:14:54 +08:00
fufesou
ea106354af
fix: win, only start tray if is installed exe ( #11737 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-05-12 21:46:05 +08:00
fufesou
ca00706a38
feat, update, win, macos ( #11618 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-05-04 07:32:47 +08:00
fufesou
16e9e716b6
fix: check server running on Windows ( #11578 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-04-27 12:04:05 +08:00
rustdesk
5c2538e7af
https://github.com/rustdesk/rustdesk/discussions/9802
2025-04-23 22:24:43 +08:00
fufesou
f4bbf82363
feat: remote printer ( #11231 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-03-27 15:34:27 +08:00
f0f999dc27
view camera ( #11040 )
...
* view camera
Signed-off-by: 21pages <sunboeasy@gmail.com >
* `No cameras` prompt if no cameras available, `peerGetSessionsCount` use
connType as parameter
Signed-off-by: 21pages <sunboeasy@gmail.com >
* fix, use video_service_name rather than display_idx as key in qos,etc
Signed-off-by: 21pages <sunboeasy@gmail.com >
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
Co-authored-by: Adwin White <adwinw01@gmail.com >
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com >
2025-03-10 21:06:53 +08:00
fufesou
055b351164
refact: optimize, loading recent peers ( #10847 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-02-20 11:53:36 +08:00
21pages
cefda0dec1
device group ( #10781 )
...
1. Rename `Group` tab to `Accessible devices`
2. Add accessible device groups at the top of search list
3. option `preset-device-group-name` and command line `--assign --device_group_name`
Signed-off-by: 21pages <sunboeasy@gmail.com >
2025-02-15 12:13:11 +08:00
fufesou
f08cb0412d
fix: windows, dll, pre-loading attack ( #10608 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2025-01-26 19:39:38 +08:00
21pages
88a99211f3
replace pkexec with gtk sudo ( #9383 )
...
* Fix https://github.com/rustdesk/rustdesk/issues/9286 , replace pkexec
with gtk sudo. Tested on gnome (ubuntu 22.04, debian 13), xfce (manjaro, suse), kde (kubuntu 23), lxqt (lubuntu 22), Cinnamon (mint 21.3), Mate (mint 21.2)
* Fix incorrect config of the main window opened by the tray, replace
xdg-open with run_me, replace with dbus + run_me
* Fix `check_if_stop_service`, it causes the problem fixed in
https://github.com/rustdesk/rustdesk/pull/8414 , now revert that fix and fix itself.
Signed-off-by: 21pages <sunboeasy@gmail.com >
2024-09-19 18:47:37 +08:00
rustdesk
1e6944b380
apply --cm-no-ui to non-windows
2024-09-08 12:54:27 +08:00
21pages
993862c103
quit cm process if ipc connection to ipc server closed ( #9292 )
...
Signed-off-by: 21pages <sunboeasy@gmail.com >
2024-09-08 12:37:41 +08:00
21pages
f0ca4b9fee
--no-server parameter to avoid server ipc occupied by ui ( #9272 )
...
Signed-off-by: 21pages <pages21@163.com >
2024-09-06 14:43:38 +08:00
21pages and RustDesk
76d5a8b205
unlock with PIN ( #8977 )
...
* add custom password to unlock settings
* If not set, use admin password; if set, use custom settings password.
* At least 4 characters.
* Set with gui or command line.
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Update cn.rs
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com >
2024-08-07 16:21:38 +08:00
21pages
5a2121501d
fix build ( #8964 )
...
Signed-off-by: 21pages <sunboeasy@gmail.com >
2024-08-06 12:36:39 +08:00
rustdesk
877b3e2ce5
fix ci
2024-08-06 12:19:06 +08:00