/SagerNet

The universal proxy toolchain for Android

Primary LanguageKotlinOtherNOASSERTION

SagerNet for Android

The universal proxy toolchain for Android, written in Kotlin.

Download

License

Copyright (C) 2021 by nekohasekai <contact-sagernet@sekai.icu>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Build

  • Install and configure JDK, Android SDK, Android NDK, Go and Go Mobile.
  • git clone this project and at least submodule library/core.
  • Replace release.keystore (can be generated by Java keytool) with your own.
  • Append these to your local.properties
KEYSTORE_PASS=your_keystore_pass
ALIAS_NAME=your_alias_name
ALIAS_PASS=your_alias_pass
  • Build app:
    • Build libcore:
      ./run lib core
      
    • Download assets:
      ./gradlew :app:downloadAssets
      
    • Build app:
      ./gradlew :app:assembleOssRelease
      
    • APK files will be located in app/build/outputs/apk/.
  • Build a plugin:
    • Build plugin binaries (the next command already includes this command):
      ./run plugin [plugin_name]
      
    • Build plugin:
      ./gradlew :plugin:[plugin_name]:assembleOssRelease
      
    • Plugin APK files will be located in plugin/[plugin_name]/build/outputs/apk/.