Skip to content
Snippets Groups Projects

Bitmask Core

This repository contains all golang dependencies currently used in Bitmask Android and custom branded versions of it:

  • obfsvpn: a library containing different obfs4 based censorship circumvention transports
  • IPtProxy: a library wrapping snowflake client and snowflake proxy, forked from https://github.com/tladesignz/IPtProxy and adapted for our purposes
  • pgpverify: a small library for verifying the integrity of downloaded app updates (only used in apks distributed from a website)
  • motd: Message of the day library, shared between Bitmask Desktop and Mobile
  • more shared code between Bitmask Desktop and Mobile clients (tbd.)

Run the follwing command to build Bitmask Core for all Android build flavors (runs currently only on Linux 64-bit distros):

./build_core.sh

Adding new go libraries

  1. In order to add new library we currently add them as git submodules.
git submodule add git://<repository_url.git> <new_lib_directory>
  1. Add the new go module to the go workspace.
go work use <new_lib_directory>
  1. Make sure the bitmask-core-android/golang directory is empty.
# you should be in bitmask-core-android
sudo rm -rf ./golang/*
  1. And let go add any missing modules.
# you should be in bitmask-core-android
go mod tidy
  1. extend the gomobile bind statements with the new module in ./build_core.sh and ./build_core_dev.sh
  2. test the changes with running ./build_core_dev.sh
  3. git add your changes and commit them
  4. run ./build_core.sh and make sure it succeeds