Remote Android Support with Rustdesk – Part 1

‘Mobile First’ has definitely arrived which made me wonder a bit how I could remotely support people on their mobile devices in the future as some will probably drop their notebook entirely. One option that looks particularly appealing to me is the open source RustDesk app. It can either be used via the project’s server on the net to connect a device to be supported with the notebook of a supporter, or it can be used with a self hosted server if one fancies to control the full transmission chain. Let’s have a look how this works in practice.

Not in the Google Play Store – F-Droid is Required

In case the open source and free version in combination with the project’s server is used, no configuration is required on either the supported Android device or on the device of the remote supporter. In my case, I downloaded the RustDesk app from the F-Droid store for Android, and RustDesk for the desktop from their Github presence. While no parameters have to be configured in the app, the first installation hurdle is that RustDesk is not available in the Google Play store. The main reason for this seems to be that it has been used by too many scammers in the past for fraud. Pity.

Alternative App Store Permissions

While installing the app from the F-Droid store is no problem for me, it would be somewhat of a challenge for people not familiar with alternative app stores, i.e. pretty much everyone. The F-Droid app can be installed via a browser on Android, but one must grant installation permission for the browser to install F-Droid and later the same permission to install apps via the F-Droid app. Again, not a problem for me, but for a lot of people that have never done this before, this process is rather strange. Potentially, this approach can be shortened by one step by installing the RustDesk Android app directly via the F-Droid store web page in the web browser, but this has the disadvantage that no updates are installed later. Therefore, not really an option. Also, Android warns during this step that the app might be ‘potentially harmful’ and refuses to install it unless the user clicks on a tiny link at the bottom of the message and overrides this. It’s good that this is in place, but it further complicates installation.

Installation with 5000 Permission Grants – Or Close To

Once RustDesk is installed on Android, the permission grant orgy continues. First, RustDesk warns you again about scammers and you have to tap on an ‘I agree’ button to continue. Then, in addition to the permissions that can be granted directly in the app, there are permissions that have to be granted in the Android settings app. RustDesk forwards the user to these configuration options, but one has to recognize which one to activate and then return to RustDesk manually.

To also give the remote RustDesk app the possibility to interact, i.e. to tap on icons, enter text, etc., it is necessary to go the the Android setting ‘Accessibility‘ menu on the first level of the settings app, click on ‘Installed Apps‘ and set ‘RustDesk Input‘ to ‘On‘.

If the ‘RustDesk Input’ is is greyed out, it can be activated by giving RustDesk ‘restricted permissions‘. This is done by long-tapping on the RustDesk App icon, tapping on ‘info’ and then selecting ‘granted restricted permissions‘ in the hamburger menu at the top right. This only works if there is a lock screen protection in place, i.e. PIN, fingerprints, etc. This should be in place in most scenarios, but I thought I’d mention it anyway, because I initially didn’t have a lock screen protection method configured when I tested RustDesk on a test device and went on an almost endless search for the option. Once done, go back to the ‘Accessibility’ menu and give it another try.

On the one hand it’s really good to have so many barriers in place before a device can be controlled remotely to prevent scammers to do damage. On the other hand, I think the chances of success to get someone to do all of this on his own for ‘real’ support purposes and just give hints remotely are rather slim. So in order to give remote support, being on-site first and installing the app is probably the way to go.

But once this is done… Everything is pretty much ready and remote control works like a charm. After entering the RustDesk ID of the device and a one-time or permanent password, access is granted. And if you only see a part of the smartphone’s screen on your notebook, it’s because it has a really high screen resolution. The fix: Click on RustDesk’s icon that looks like a computer (4th icon on the left) and select “Scale Adaptive“. When I tried RustDesk on two different devices via the project’s bridge server, the delay between action and reaction was refreshingly small and I could nicely interact remotely with the remote Android device from my notebook.

So what are the limitations? The main limitation for me is that it’s not possible to return from the lock screen, as keyboard input to type in the unlock code on the lock-screen is blocked. Also, the user has to unlock the device first after a reboot before RustDesk can be used. That’s of course not a problem for remote support, but makes RustDesk and, I suppose, pretty much all app based remote support options unusable to control unattended remote devices. For such scenarios, scrcpy via USB remains my option of choice.

Summary

I very much liked what I saw and experienced when trying RustDesk. The app is open source, maintained on Github, and together with a public server, end-to-end encryption and fast reaction time to remote input, it’s definitely my number one for remote support.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.