Wikimedia Apps/Team/Android/App hacking/Chromebook

Setup
Developing and testing an Android app on a Chromebook requires configuring the device to boot into developer mode via a process described here:

https://www.chromium.org/a/chromium.org/dev/chromium-os/developer-information-for-chrome-os-devices/generic

Booting
On boot, you will be presented with a boot screen informing you that OS verification is off, and inviting you to press space to reenable. Ignore this, and press Ctrl+D to launch the OS. You're in developer mode! There won't be any obvious indication of this, but you are.

If you press space as invited on boot, the machine will revert to regular mode.

Play store access
For an educational or enterprise Google account (such as a WMF staff account), Google Play store access must be enabled by WMF's Google accounts administrator in order to access the Android settings and enable loading unverified apps (like Wikipedia Dev). You can find the setting to enable Google Play in the Chrome settings (which essentially act as the device settings), but it might be greyed out, with an icon meaning that it's administrator-managed setting. If you don't have access, Office IT can enable it for you. You might consider sending along a link to the relevant support article, which is here:

https://support.google.com/chrome/a/answer/7131624

Android settings
Once Android is enabled, you can follow the steps here to connect over ADB and launch the app:

https://developer.android.com/topic/arc/index.html

In a nutshell, you can access the familiar Android settings screen from the Google Play section of the Chrome settings. Go to the Android settings, choose 'Security' and enable loading unverified apps, then enable developer mode and ADB debugging by the usual process. Connect to the Chromebook over ADB (on port 22, by default), accept the incoming ADB connection on the Chromebook, and you will be all set!

Update: As of mid-to-late 2017 these instructions no longer seem to work. All of my attempts to connect from another machine time out. Here's a workaround:

You can connect internally to the Android container from a bash shell on the Chromebook itself. Launch  with Ctrl-Alt-T and then invoke a bash shell by entering   at the   prompt. crosh> shell chronos@localhost / $

will report the existence of a  interface with a IPv6 address. This is what we want to connect to. But ADB won't accept an IPv6 address! There's a workaround for this as well. There's a configuration file,, that contains an IPv4 address for the Android container (currently  ).

chronos@localhost / $ cat /etc/containers/android/sslh.conf [...] protocols: ( [...]  { name: "adb"; service: "adb"; host: "100.115.92.2"; port: "5555"; probe: [ "^CNXN" ]; } )

We can connect to this internally via ADB: chronos@localhost / $ adb connect 100.115.92.2 connected to 100.115.92.2:5555 This should now be reflected if you check. For debugging, you can view the logcat with.

APKs can be downloaded from Gmail/Google Drive/etc for installation and testing.