A shadowsocks client for Android, written in Scala.
- JDK 1.8
- SBT 0.13.0+
- Go 1.4+
- Android SDK
- Build Tools 25+
- Android Support Repository and Google Repository (see
build.sbt
for version)
- Android NDK r12b+
- Set environment variable
ANDROID_HOME
to/path/to/android-sdk
- Set environment variable
ANDROID_NDK_HOME
to/path/to/android-ndk
- Set environment variable
GOROOT_BOOTSTRAP
to/path/to/go
- Create your key following the instructions at https://developer.android.com/studio/publish/app-signing.html
- Create
local.properties
fromlocal.properties.example
with your own key information - Invoke the building like this
git submodule update --init
# Build the App
sbt native-build clean android:package-release
Translators can go to POEditor to help translate shadowsocks-android. Guidelines:
- It's okay to leave some strings untranslated if you think it should use the same string as English (US).
faq_url
should not be changed. If you'd like to translate FAQ, submit a pull request with the translatedfaq.md
(it should be named properly, e.g..github/faq.zh-CN.md
). Administrators will take care of the rest.- Do not add/edit/remove comments.
- clean and install:
sbt clean android:install
- list database tables:
adb -e shell "run-as com.github.rallets ls /data/data/com.github.rallets/databases/"
- redsocks: APL 2.0
- mbed TLS: APL 2.0
- libevent: BSD
- tun2socks: BSD
- pcre: BSD
- libancillary: BSD
- shadowsocks-libev: GPLv3
- pdnsd: GPLv3
- libev: GPLv2
- kcptun: MIT
- libsodium: ISC
keytool -genkey -v -keystore .keystore -alias rallets -keyalg RSA -keysize 2048 -validity 10000
zipalign -p 4 my.apk ~/Desktop/Rallets-VERSION.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore .keystore ~/Desktop/Rallets-VERSION.apk rallets