Skip to content

Husi(虎兕) is a non-professional and recreational proxy tool integration for the weird beliefs and free software spirit!

License

Notifications You must be signed in to change notification settings

xchacha20-poly1305/husi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fd19426 · Feb 2, 2026

History

1,598 Commits
Jan 30, 2026
Nov 2, 2025
Feb 2, 2026
Feb 2, 2026
Jan 18, 2026
Aug 6, 2025
Jan 30, 2026
Feb 2, 2026
Jan 17, 2026
Jan 26, 2026
Oct 5, 2025
Oct 14, 2025
Jan 23, 2026
Aug 9, 2025
Oct 2, 2025
Oct 28, 2025
Oct 2, 2025
Jan 12, 2026
Nov 9, 2025
Jan 12, 2026
Aug 24, 2025
Jan 17, 2026
Sep 23, 2025
Sep 23, 2025
Feb 2, 2026
Mar 15, 2023
Jan 6, 2024
Dec 4, 2025
Mar 15, 2023
Oct 14, 2025
Jan 12, 2026

Repository files navigation

Get it on IzzyOnDroid

Husi (虎兕)

Husi is a non-professional and recreational proxy tool integration, aiming at promoting proxy customization.

🛠️ Contribution

🧭 Guide

CONTRIBUTING

Ask DeepWiki

New here? You can use DeepWiki to known basic structure of husi and ask anything you want.

📚 Localization

Is husi not in your language, or the translation is incorrect or incomplete? Get involved in the translations on our Weblate.

Translation status

🔨 Learn to Compilation

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.

🧰 Get the Source Code

git clone https://github.com/xchacha20-poly1305/husi.git --depth=1
cd husi/
./run lib source # Will help you to get submodules

⚖️ libcore

Environment:

  • These versions need to apply patch.

    Unfold

    1.22.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

🎀 Rename package name (optional)

If you don't want to use the same package name, you can run ./run rename target_name.

🎁 APK

Environment:

  • jdk-21
  • ndk 29.0.14206865

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.

🌈 Plugins

make plugin PLUGIN=<Plugin name>

Plugin name list:

  • hysteria2
  • juicity
  • naive ( Deprecated. Build official repository directly, please. )
  • mieru
  • shadowquic

☠️ End users

Wiki

📖 License

GPL-3.0 or later

🤝 Acknowledgements

Developing

  • JetBrains' powerful IDE.