Remote Assistance - ToDesk for Domestic Use and RustDesk for International Use

Remote assistance, remote control of various platform devices such as mobile phones and computers.

Purpose

When seeking to remotely assist clients, family, or friends with their mobile phones or computers, finding the best user experience for solving problems, such as providing on-site instructions, demonstrating operations, and assisting with software system navigation in place of friends.

How to Use

The rationale behind using ToDesk domestically and RustDesk internationally is due to the fact that ToDesk has a domestic relay server set up, providing a better user experience than RustDesk (open-source). Even if we set up our own RustDesk server nodes, we still need to compile the RustDesk mobile and desktop apps to avoid the assisted party from having to interact with the interface to input server addresses and ports, among other details (because if the person requiring assistance is knowledgeable in IT, they may likely not require assistance at all).

Perfect assistance process:

  1. Send the controlled-end (assisted party) app to family, friends, or clients in need of assistance, prompting them to install it on their mobile phone, computer, or any other platform (such as Windows, MAC, Ubuntu, and more).
  2. Communicate and obtain the controlled-end’s remote assistance ID.
  3. On the controlling end, input the remote assistance ID and click connect.
    1. Sometimes, the controlled end needs to confirm acceptance of the remote assistance by clicking a confirmation prompt.

Related Content

Implementation Methods

Remote control apps for mobile phones,

Implementing Remote Operation of Android Phones, Perhaps Requiring Rooting?

  1. TeamViewer

    https://www.youtube.com/watch?v=UXRvw49jH3s

  2. Rilian Anywhere Remote Assistance https://remobax.top/

    Can’t remember the name of the previous app, look in the phone’s memory
    How to use AirMirror App for remote control of phones? AirDroid
    https://github.com/bk138/droidVNC-NG
    https://f-droid.org/packages/net.christianbeier.droidvnc_ng/

  3. ToDesk or choose AnyDesk, following the same principle, also free, but experiences significant lag without using a VPN in mainland China.

  4. rustdesk

    How to modify the client default server address in the code
    Setting up your own server, but needing to change the server address and modify the code every time you send it to others, can the server IP be set as default and not require adding the server address in the future?
    https://github.com/rustdesk/rustdesk/discussions/2236
    Sciter.JS - HTML/CSS/JS embeddable engine.

    http://aizuda.com/article/1088975
    deploying restdesk server with docker-compose

4.1 Docker build

1
#8 83.01 Environmental variable VCPKG_FORCE_SYSTEM_BINARIES must be set on arm, s390x, ppc64le, and riscv platforms.

Solution: Split into three independent commands

1
2
3
4
    RUN git clone --branch 2023.04.15 --depth=1 https://github.com/microsoft/vcpkg --single-branch
RUN /vcpkg/bootstrap-vcpkg.sh -disableMetrics
RUN /vcpkg/vcpkg --disable-metrics install libvpx libyuv opus aom
It's pointless to compile the client for Windows and Mac; I need to compile the APK

4.2 rustdesk/flutter/

https://github.com/rustdesk/rustdesk/tree/master/flutter
85 mins remaining

TODO Docker-compose self-built ID server

Tested using the default server in mainland China; the button presses and confirmations on the Android end are too numerous, resulting in significant delays.
The Solution: To use ToDesk domestically and RustDesk internationally

  1. frp solution

Impressive (discovered from an unattended RustDesk site)
https://zsxwz.com/
https://shop.zsxwz.shop

How to configure domain access? Reverse proxy?

  1. VNC server for mobile phones can be started on F-Droid by downloading droidvnc-ng

https://www.bilibili.com/read/cv21492779/
Assisted party B: After frpc penetration, use droidvnc-ng to start the VNC service

The awkward aspect of this solution is that as Android versions increase and security is enhanced, starting VNC services increases the system-level barriers to overcome.

Various apps are therefore trying to enable non-root remote desktop services: VNC server app for Android that does not require root privileges.

Implement screen capture without root on Android 5.0+ by using MediaProjectionManager, VirtualDisplay, AudioRecord, MediaCodec, and MediaMuxer APIs

  1. Use scrcpy to connect to Android’s debugging feature to achieve remote control

Details: Screen Mirroring from an Android phone to a computer, displaying and controlling an Android phone, Scrcpy-CarlZeng