| OLD | NEW |
| (Empty) |
| 1 # Chromoting Build Instructions | |
| 2 | |
| 3 Chromoting, also known as | |
| 4 [Chrome Remote Desktop](https://support.google.com/chrome/answer/1649523), | |
| 5 allows one to remotely control a distant machine, all from within the Chromium | |
| 6 browser. Its source code is located in the `remoting/` folder in the Chromium | |
| 7 codebase. For the sake of brevity, we'll assume that you already have a | |
| 8 pre-built copy of Chromium (or Chrome) installed on your development computer. | |
| 9 | |
| 10 [TOC] | |
| 11 | |
| 12 ## Obtain API keys | |
| 13 | |
| 14 Before you can compile the code, you must obtain an API key to allow it to | |
| 15 access the federated Chrome Remote Desktop API. | |
| 16 | |
| 17 1. Join the chromium-dev list, which can be found at | |
| 18 https://groups.google.com/a/chromium.org/forum/#!forum/chromium-dev. (This | |
| 19 step is required in order to gain access to the Chromoting API.) | |
| 20 1. Visit the Google APIs console at https://code.google.com/apis/console. | |
| 21 1. Use the `API Project` dropdown to create a new project with a name of | |
| 22 your choice. | |
| 23 1. Click on `APIs & Auth > APIs`. | |
| 24 1. Search for `Chrome Remote Desktop API`. | |
| 25 1. Click on the `Chrome Remote Desktop API` search result. | |
| 26 1. Click on `Enable API`. | |
| 27 1. Click on `APIs & Auth > Credentials`. | |
| 28 1. Click on `Add Credentials`. | |
| 29 1. Choose `OAuth 2.0 client ID`. | |
| 30 1. Choose `Chrome App`. | |
| 31 1. Under application id, enter `ljacajndfccfgnfohlgkdphmbnpkjflk`. | |
| 32 | |
| 33 ## Obtain Chromium code | |
| 34 | |
| 35 If you've already checked out a copy of the browser's codebase, you can skip | |
| 36 this section, although you'll still need to run `gclient runhooks` to ensure you | |
| 37 build using the API keys you just generated. | |
| 38 | |
| 39 1. [Install the build dependencies](linux_build_instructions_prerequisites.md). | |
| 40 1. Install the depot\_tools utilities, a process that is documented at | |
| 41 http://dev.chromium.org/developers/how-tos/install-depot-tools. | |
| 42 1. Download the Chromium source code by running: | |
| 43 `$ fetch chromium --nosvn=True` | |
| 44 | |
| 45 ## Build and install the Linux host service | |
| 46 | |
| 47 If you want to remote into a (Debian-based) GNU/Linux host, follow these steps | |
| 48 to compile and install the host service on that system. As of the time of | |
| 49 writing, you must compile from source because no official binary package is | |
| 50 being distributed. | |
| 51 | |
| 52 1. Start in the `src/` directory that contains your checkout of the Chromium | |
| 53 code. | |
| 54 1. Build the Chromoting host binaries: | |
| 55 | |
| 56 ```shell | |
| 57 $ ninja -C out/Release remoting_me2me_host remoting_start_host \ | |
| 58 remoting_native_messaging_host remoting_native_messaging_manifests | |
| 59 ``` | |
| 60 | |
| 61 1. When the build finishes, move into the installer directory: | |
| 62 `$ cd remoting/host/installer/` | |
| 63 1. Generate a DEB package for your system's package manager: | |
| 64 `$ linux/build-deb.sh` | |
| 65 1. Install the package on your system: `$ sudo dpkg -i *.deb` | |
| 66 1. The next time you use the Chromoting extension from your browser, it should | |
| 67 detect the presence of the host service and offer you the option to | |
| 68 `Enable remote connections`. | |
| 69 1. If the Web app doesn't properly detect the host process, you may need to | |
| 70 create a symlink to help the plugin find the native messaging host: | |
| 71 `$ sudo ln -s /etc/opt/chrome /etc/chromium` | |
| 72 | |
| 73 (NB: If you compile the host service from source and expect to configure it | |
| 74 using the browser extension, you must also compile the latter from source. | |
| 75 Otherwise, the package signing keys will not match and the Web app's OAuth2 | |
| 76 token will not be valid within the host process.) | |
| 77 | |
| 78 ## Build and install the Chrome packaged app | |
| 79 | |
| 80 The Web app is the Chromoting system's main user interface, and allows you to | |
| 81 connect to existing hosts as well as set up the host process on the machine | |
| 82 you're currently sitting at. Once built, it must be installed into your browser | |
| 83 as an extension. | |
| 84 | |
| 85 1. Start in the `src/` directory that contains your checkout of the Chromium | |
| 86 code. | |
| 87 1. Build the browser extension (Be sure to replace the substitutions denoted by | |
| 88 angled braces.): | |
| 89 | |
| 90 ```shell | |
| 91 $ GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=<client id> \ | |
| 92 ninja -C out/Release remoting_webapp | |
| 93 ``` | |
| 94 | |
| 95 1. Install the extension into your Chromium (or Chrome) browser: | |
| 96 1. Visit the settings page [chrome://extensions]. | |
| 97 1. If it is unchecked, tick the `Developer mode` box. | |
| 98 1. Click `Load unpacked extension...`, then navigate to | |
| 99 `out/Release/remoting/remoting.webapp.v2/` within your code checkout. | |
| 100 1. Confirm the installation, open a new tab, and click the new app's | |
| 101 Chromoting icon. | |
| 102 1. Complete the account authorization step, signing into your Google | |
| 103 account if you weren't already. | |
| 104 | |
| 105 ## Build and install the Android client | |
| 106 | |
| 107 If you want to use your Android device to connect to your Chromoting hosts, | |
| 108 follow these steps to install the client app on it. Note that this is in the | |
| 109 very early stages of development. At the time of writing, you must compile from | |
| 110 source because no official version is being distributed. | |
| 111 | |
| 112 1. Follow all the instructions under the `Getting the code` and | |
| 113 `Install prerequisites` sections of: | |
| 114 https://www.chromium.org/developers/how-tos/android-build-instructions | |
| 115 1. Move into the `src/` directory that contains your checkout of the Chromium | |
| 116 code. | |
| 117 1. Build the Android app: `$ ninja -C out/Release remoting_apk` | |
| 118 1. Connect your device and set up USB debugging: | |
| 119 1. Plug your device in via USB. | |
| 120 1. Open the Settings app and look for the `Developer options` choice. | |
| 121 1. If there is no such entry, open `About phone`, tap `Build number` | |
| 122 7 times, and look again. | |
| 123 1. Under `Developer options`, toggle the main switch to `ON` and enable | |
| 124 `USB debugging`. | |
| 125 1. On your machine and still in the `src/` directory, run: | |
| 126 `$ build/android/adb_install_apk.py --apk=out/Release/apks/Chromoting.apk` | |
| 127 1. If your Android device prompts you to accept the host's key, do so. | |
| 128 1. The app should now be listed as Chromoting in your app drawer. | |
| 129 | |
| 130 See the [chromoting_android_hacking.md] guide for instructions on viewing the | |
| 131 Android app's log and attaching a debugger. | |
| OLD | NEW |