Chromoting, also known as
Chrome Remote Desktop,
allows one to remotely control a distant machine, all from within the Chromium
browser. Its source code is located in the remoting/
folder in the Chromium
codebase. For the sake of brevity, we'll assume that you already have a
pre-built copy of Chromium (or Chrome) installed on your development computer.
[TOC]
Before you can compile the code, you must obtain an API key to allow it to access the federated Chrome Remote Desktop API.
API Project
dropdown to create a new project with a name of
your choice.APIs & Auth > APIs
.Chrome Remote Desktop API
.Chrome Remote Desktop API
search result.Enable API
.APIs & Auth > Credentials
.Add Credentials
.OAuth 2.0 client ID
.Chrome App
.ljacajndfccfgnfohlgkdphmbnpkjflk
.If you've already checked out a copy of the browser's codebase, you can skip
this section, although you'll still need to run gclient runhooks
to ensure you
build using the API keys you just generated.
$ fetch chromium --nosvn=True
If you want to remote into a (Debian-based) GNU/Linux host, follow these steps to compile and install the host service on that system. As of the time of writing, you must compile from source because no official binary package is being distributed.
src/
directory that contains your checkout of the Chromium
code.Build the Chromoting host binaries:
$ ninja -C out/Release remoting_me2me_host remoting_start_host \
remoting_native_messaging_host remoting_native_messaging_manifests
When the build finishes, move into the installer directory:
$ cd remoting/host/installer/
$ linux/build-deb.sh
$ sudo dpkg -i *.deb
Enable remote connections
.$ sudo ln -s /etc/opt/chrome /etc/chromium
(NB: If you compile the host service from source and expect to configure it using the browser extension, you must also compile the latter from source. Otherwise, the package signing keys will not match and the Web app's OAuth2 token will not be valid within the host process.)
The Web app is the Chromoting system's main user interface, and allows you to connect to existing hosts as well as set up the host process on the machine you're currently sitting at. Once built, it must be installed into your browser as an extension.
src/
directory that contains your checkout of the Chromium
code.Build the browser extension (Be sure to replace the substitutions denoted by angled braces.):
$ GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API= \
ninja -C out/Release remoting_webapp
Install the extension into your Chromium (or Chrome) browser:
Developer mode
box.Load unpacked extension...
, then navigate to
out/Release/remoting/remoting.webapp.v2/
within your code checkout.If you want to use your Android device to connect to your Chromoting hosts, follow these steps to install the client app on it. Note that this is in the very early stages of development. At the time of writing, you must compile from source because no official version is being distributed.
Getting the code
and
Install prerequisites
sections of:
https://www.chromium.org/developers/how-tos/android-build-instructionssrc/
directory that contains your checkout of the Chromium
code.$ ninja -C out/Release remoting_apk
Developer options
choice.About phone
, tap Build number
7 times, and look again.Developer options
, toggle the main switch to ON
and enable
USB debugging
.src/
directory, run:
$ build/android/adb_install_apk.py --apk=out/Release/apks/Chromoting.apk
See the [chromoting_android_hacking.md] guide for instructions on viewing the Android app's log and attaching a debugger.