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