xxf098
shadowsocksr-v2ray-trojan-android
Scala

A simple client for Android

Last updated Jul 6, 2026
3.2k
Stars
378
Forks
93
Issues
0
Stars/day
Attention Score
75
Language breakdown
Scala 81.8%
Java 7.4%
C 4.8%
Makefile 3.5%
HTML 1.4%
C++ 0.7%
โ–ธ Files click to expand
README

A ShadowsocksR, V2Ray and Trojan Client for Android

A fully featured ShadowsocksR, V2Ray and Trojan client for Android, written in Scala.

build GitHub release GitHub issues

PREREQUISITES

  • A really fast proxy
  • JDK 1.8
sudo apt-get install openjdk-8-jdk
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export PATH=$PATH:$JAVA_HOME/bin
    java -version
- Build Tools 30+ - Android Support Repository and Google Repository (see build.sbt for version)
  • Android NDK r21e+

BUILD with Android Studio

Warnning: Cannot build in windows

  • Download Android Studio
  • Download Android NDK r20b
  • Install Scala plugin for IntelliJ IDEA
  • Set proxy for Android Studio: File | Settings | Appearance & Behavior | System Settings | HTTP Proxy
Set proxy for sbt: File | Settings | Build, Execution, Deployment | Build Tools | sbt, in VM parameters input:

-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8080 -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080

  • Set environment variable ANDROID_HOME to /path/to/Android/Sdk
  • Set environment variable ANDROIDNDKHOME to /path/to/Android/android-ndk-r21e
  • Create your key following the instructions at https://developer.android.com/studio/publish/app-signing.html
  • Put your key in ~/.keystore or any other place
  • Create local.properties from local.properties.example with your own key information
key.alias: abc key.store: /path/to/Android/abc.jks key.store.password: abc

  • if you installed multiple versions of Java, use sudo update-alternatives --config java to select Java 8
  • Before build apk, make sure inside ./project/build.properties, sbt.version=0.13.18
  • Invoke the building like this
export https_proxy=http://127.0.0.1:8080 # !important
    export ANDROID_HOME=/path/to/Android/Sdk
    export ANDROIDNDKHOME=/path/to/Android/android-ndk-r20b
    # install and update all git submodule
    git submodule update --init
    # cd ./src/main/jni/shadowsocks-libev && git checkout Akkariiin/master
    # Build the App and fix the problems as the error messages indicated
    sbt native-build clean android:package-release
    # run app
    sbt android:run
If you use x64 linux like Archlinux x86_64, or your linux have new version ncurses lib, you may need install the 32bit version ncurses and link it as follow (make sure all these *.so files in the right location under your system, otherwise you have to copy them to /usr/lib/ and /usr/lib32/ directory):
# use Archlinux x86_64 as example
    
    # install ncurses x64 and x86 version
    sudo pacman -S lib32-ncurses ncurses
    
    # link the version-6 ncurses to version-5
    sudo ln -s /usr/lib/libncursesw.so /usr/lib/libncurses.so.5
    sudo ln -s /usr/lib32/libncursesw.so /usr/lib32/libncurses.so.5
    
    # link libncurses to libtinfo
    sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5
    sudo ln -s /usr/lib32/libncurses.so.5 /usr/lib32/libtinfo.so.5

Integration with Android Studio

Checkout this link rm -rf ~/.android/sbt/exploded-aars/

  • In Project Settings -> Modules -> shadowsocksr-v2ray-trojan-android, change Structure, Generated Sources to correct file path
  • In Run/Debug Configuration -> Before launch, replace Gradle-aware Make with android:run

BUILD on Mac OS X (with HomeBrew)

  • Install Android SDK and NDK by run brew install android-ndk android-sdk
  • Add export ANDROID_HOME=/usr/local/Cellar/android-sdk/$version to your .bashrc , then reopen the shell to load it.
  • Add export ANDROIDNDKHOME=/usr/local/Cellar/android-ndk/$version to your .bashrc , then reopen the shell to load it.
  • echo "y" | android update sdk --filter tools,platform-tools,build-tools-23.0.2,android-23,extra-google-m2repository --no-ui -a
  • echo "y" | android update sdk --filter extra-android-m2repository --no-ui --no-https -a
  • Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert
  • Put your key in ~/.keystore
  • Create local.properties from local.properties.example with your own key information .
  • Invoke the building like this
git submodule update --init

# Build native binaries ./build.sh

# Build the apk sbt clean android:package-release

OPEN SOURCE LICENSES

LICENSE

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 .

ยฉ 2026 GitRepoTrend ยท xxf098/shadowsocksr-v2ray-trojan-android ยท Updated daily from GitHub