Is husi not in your language, or the translation is incorrect or incomplete? Get involved in the translations on our Weblate.
In Linux, you can build husi reproducibly for release version.
For this, you should use the same version of JDK, NDK as below. And Go version should as same as version.sh.
git clone https://github.com/xchacha20-poly1305/husi.git --depth=1
cd husi/
./run lib source # Will help you to get submodules
Environment:
-
In some version need to apply patch.
Unfold
1.23.5: Apply this patch to
${GOROOT}/src/runtime/cgocall.go
1.23.0-1.23.3: Apply this patch to
${GOROOT}
.make patch_go1230
1.23.4+: Apply this patch to
$(GOROOT)
.make patch_go1234
-
Openjdk-21 (Later may OK, too.)
Run:
make libcore
This will generate app/libs/libcore.aar
.
If gomobile is not in the GOPATH, it will be automatically downloaded and compiled.
If you don't want to build it, you can download then in actions
Environment:
- jdk-21
- ndk 27.2.12479018
If the environment variables $ANDROID_HOME
and $ANDROID_NDK_HOME
are not set, you can run the script
buildScript/init/env_ndk.sh
:
echo "sdk.dir=${ANDROID_HOME}" > local.properties
Signing preparation (optional, it is recommended to sign after compilation): Replace release.keystore
with your own
keystore.
echo "KEYSTORE_PASS=" >> local.properties
echo "ALIAS_NAME=" >> local.properties
echo "ALIAS_PASS=" >> local.properties
Download geo resource files:
make assets
Compile the release version:
make apk
The APK file will be located in app/build/outputs/apk
.
make plugin PLUGIN=<Plugin name>
Plugin name list:
hysteria2
juicity
naive
mieru
Core:
Android GUI: