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 |