path: root/README.md
blob: 53f360401642b94ca273ea520ebb53e118f990c4 (plain) (tree)

## Android WireGuard Module Builder

This builds [WireGuard](https://www.wireguard.com/) modules for various Android kernels.

### Adding your phone's kernel

1. Create a directory in `kernels/` if it doesn't already exist.

2. Add a corresponding `manifest.xml`, with versions based on stable non-moving tags and refs.

3. Add a `do.bash` with minimal commands for conducting the build.

4. Add a `version-hashes.txt` containing the output of `printf '%s|%s\n' "$(sha256sum < /proc/version | cut -d ' ' -f 1)" "$(cat /proc/version)"` from your phone.

Note that if a kernel directory already exists that is compatible (i.e. the module loads and works) with your phone's kernel, simply skip to step 4 and append the line.

### Building

Build all kernels:

$ ./build-all.bash

Build just one:

$ ./build-one.bash crosshatch

### Downloading

These are built, signed, and uploaded to [the WireGuard download server](https://download.wireguard.com/android-module/). They can automatically be used by the [WireGuard app](https://play.google.com/store/apps/details?id=com.wireguard.android):

![Early debug alpha of WireGuard app downloading and inserting kernel module](https://data.zx2c4.com/wireguard-android-download-load-module-oct-13-2019.gif)