Android on Chrome OS: adb Access
The Android-on-Chrome OS documentation
was updated recently to include instructions on connecting to your Chrome
OS device through
adb from your development machine. This will allow
you to run apps on the Chrome OS device from Android Studio, for example.
Unfortunately, the instructions have bugs, and I don’t know where to report those bugs. So, here is what worked for me, using their instructions as a starting point.
Get the Basics Working
Configure the Chrome OS Device
The official instructions ask you to use “virtual terminal 2” and log
root to make changes to Chrome OS. I could not get this to work;
even their supplied default
root password was not recognized.
Instead, I used
Ctrl-Alt-T to open
crosh. From there, I executed
shell command to get to
bash. And, for their documented root
commands, I used
So, if you get to
bash using those steps, execute the following
sudo /usr/libexec/debugd/helpers/dev_features_rootfs_verification sudo reboot
This will reboot your Chrome OS device, requiring you to go through the whole Play Store acceptance/login process again.
Then, go back into
bash, and execute:
This enables an SSH daemon and presumably makes corresponding adjustments
Find Your Chrome OS IP Address
The official instructions tell you to do this “from ChromeOS settings”, without actually explaining how that is done.
Go into Settings (e.g., tap on the time/WiFi/battery/account bar in the lower-right, then tap the gear icon). Towards the top of the Settings page, there will be an “Internet connection” section. If you are using WiFi, tap on the “Wi-Fi network” item, then tap on the WiFi network that you are using. That should bring up a three-tab dialog with details about this network connection. The middle tab — Network — will show your IP address. Make note of this.
Configure Your Development Machine
UPDATE 2016-07-19: The process described in this section is no longer needed.
On your computer that you use for Android development, switch to some likely directory, then run the following command from a terminal window:
curl -s "https://chromium.googlesource.com/chromiumos/chromite/+/master/contrib/setup_adb?format=TEXT" | base64 --decode > chrome-adb.sh
This will download a
bash script named
chrome-adb.sh. Open it in your
favorite text editor and confirm that you are comfortable with what it is
doing. Or, Windows users might use the script as the basis for working
out how to configure their SSH client and perform similar steps.
If you are comfortable with the script,
ping your Chrome OS device
(to confirm that you can reach it), then run the script:
ping <IP> bash chrome-adb.sh <IP> <HOST>
<IP> with the IP address of your Chrome OS machine that you
determined previously. Replace
<HOST> with the name that you want to use
to identify this Chrome OS device in the future. This value only appears
to be used inside of your SSH client configuration (
is not used elsewhere.
If everything works, this should emit the following output, or something like it:
INFO: SSH connectivity established. SELinux: Loaded file_contexts contexts from /file_contexts. INFO: ADB set up complete.
Connect to Chrome OS for Development
When you want to develop using the Chrome OS device as the target, execute the following command:
adb connect <IP>:22
<IP> is the same IP address that you used previously. Note that
the official docs drop off the
connect part, which does not work.
At this point, you should get the standard Android debugging
authorization dialog, after which
adb devices should show your connection, and you should
be able to run apps on the Chrome OS device akin to how you do so for
locally-connected devices, emulators, etc.
UPDATE 2016-07-19: If you used the instructions shown earlier
in the previous section,
adb access to your device may no
longer work. If so, try turning off, then on, the Developer Options,
via the switch in the action bar of the Developer Options screen.
Then, try reconnecting via
Need an extra hand with your Android app development project? CommonsWare can help — reach out for details!