galeforce

by marcosscriven

marcosscriven / galeforce

GaleForce is a project to customise the Google Wifi router

482 Stars 64 Forks Last release: Not found MIT License 92 Commits 5 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

GaleForce

Build Status

GaleForce is a project to customise the Google Wifi router. This enables you to:

  • Obtain root SSH access
  • Setup any extra features you want, such as a VPN server, or dynamic DNS client
  • Customize settings such as the gateway IP address

Pre-built images

GaleForce uses Travis and produces tagged binaries available from here.

How to build an image

Firstly - you must ensure you've checked out a tagged version of the code. Not every commit has been tested on the router. If you're on a reasonably modern Linux system, you can simply run:

./bin/build-all.sh

If however you're on Windows or macOS, you'll need to use Vagrant (unfortunately Docker for these systems don't have the necessary functions in their xhyve kernels to map loop devices properly):

vagrant up
vagrant ssh -c 'cd /vagrant; ./bin/build-all.sh'

Once completed (by either method), you can copy this image to a USB stick:

sudo dd if=output/gale.bin of=/dev/ bs=1m

How to apply an image

You'll have to put the Google Wifi into developer mode:

Alt text

  1. Unscrew the single screw on the bottom
  2. Insert a very slim blade or screwdriver to ease out the base cover
  3. Insert a USB-C adapter with Power Delivery
  4. Press the reset button on the back until light blinks orange (>16 seconds)
  5. Once blinking orange, hit the tiny bubble switch (SW7 on the board - see image)
  6. Device will start blinking purple and restart
  7. Wait until device restarts and starts blinking purple again
  8. Plug in USB stick
  9. Hit bubble switch again
  10. Wait about five minutes until device pulsing purple (device shows no lights while updating from USB)

Once installed you can then:

ssh [email protected] (password changeme)
localhost ~ # uname -a
Linux localhost 3.18.0-14565-g46be31c1033f #1 SMP PREEMPT Fri Jun 2 14:42:21 PDT 2017 armv7l ARMv7 Processor rev 5 (v7l) Qualcomm (Flattened Device Tree) GNU/Linux

localhost ~ # cat /etc/lsb-release CHROMEOS_AUSERVER=https://tools.google.com/service/update2 CHROMEOS_BOARD_APPID={9BC3D9F3-D113-8EA2-42D6-F2CDB8189814} CHROMEOS_CANARY_APPID={90F229CE-83E2-4FAF-8479-E368A34938B1} CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_APPID={9BC3D9F3-D113-8EA2-42D6-F2CDB8189814} CHROMEOS_RELEASE_BOARD=gale-signed-mpkeys CHROMEOS_RELEASE_BRANCH_NUMBER=40 CHROMEOS_RELEASE_BUILDER_PATH=gale-release/R59-9460.40.5 CHROMEOS_RELEASE_BUILD_NUMBER=9460 CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_CHROME_MILESTONE=59 CHROMEOS_RELEASE_DESCRIPTION=9460.40.5 (Official Build) stable-channel gale CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_PATCH_NUMBER=5 CHROMEOS_RELEASE_TRACK=stable-channel CHROMEOS_RELEASE_VERSION=9460.40.5 DEVICETYPE=OTHER GOOGLE_RELEASE=9460.40.5 HWID_OVERRIDE=GALE DOGFOOD

Busybox

Busybox is also installed, and all extra commands it provides are on the path:

localhost ~ # ls -altr /usr/local/bin/wc
lrwxrwxrwx 1 root root /usr/local/bin/wc -> /usr/local/galeforce/bin/busybox
localhost ~ # wc --help
BusyBox v1.26.2 (2017-01-11 08:43:16 UTC) multi-call binary.

Usage: wc [-cmlwL] [FILE]...

Shell

The default shell seems to be dash, but you can change it easily enough. I prefer bash as it has tab completion and history navigation:

[email protected] $ chsh
Changing the login shell for root
Enter the new value, or press ENTER for the default
    Login Shell [/bin/dash]: /bin/bash

Change the password (really)

localhost ~ # passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Updates

You will only need to setup GaleForce with the recovery image once. Whenever an official Google automatic update is applied, GaleForce will ensure it sets itself up in the new install. There is a separate

galeforce.tar.gz
artifact in the releases section that enables you to update just GaleForce itself - it's planned to also make this automatic.

Why not just build Chromium OS from source

I tried - it's fairly easy to do and well documented. However, with the Google Wifi (codename

gale
), you'll find the board overlays are not there. This means much of the config and blobs are closed source and proprietary.

Thanks

Thanks to these kind folk who helped me out on the Chromium OS dev Google Group:

  • Mike Frysinger
  • Bill Richardson
  • Bernie Thompson
  • Julius Werner

Patching images

Auto updates

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.