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

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 28.2.13676358

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.

About

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

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 31