{"id":14235672,"url":"https://github.com/xxf098/shadowsocksr-v2ray-trojan-android","last_synced_at":"2025-05-14T19:09:44.376Z","repository":{"id":37036504,"uuid":"226219525","full_name":"xxf098/shadowsocksr-v2ray-trojan-android","owner":"xxf098","description":"A simple client for Android","archived":false,"fork":false,"pushed_at":"2024-02-25T00:32:29.000Z","size":94167,"stargazers_count":3218,"open_issues_count":90,"forks_count":386,"subscribers_count":105,"default_branch":"xxf098/master","last_synced_at":"2025-04-13T13:30:29.391Z","etag":null,"topics":["android","scala","shadowsocksr","ssr","trojan","v2ray","vmess"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xxf098.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-06T01:19:20.000Z","updated_at":"2025-04-11T12:48:15.000Z","dependencies_parsed_at":"2023-02-19T03:30:48.716Z","dependency_job_id":"abe89186-675f-42fe-956d-10e7f546ac6d","html_url":"https://github.com/xxf098/shadowsocksr-v2ray-trojan-android","commit_stats":{"total_commits":2506,"total_committers":48,"mean_commits":"52.208333333333336","dds":0.6268954509177973,"last_synced_commit":"84e5d6704ce0601a9eb34a6282e559a420d71c1a"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2Fshadowsocksr-v2ray-trojan-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2Fshadowsocksr-v2ray-trojan-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2Fshadowsocksr-v2ray-trojan-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2Fshadowsocksr-v2ray-trojan-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xxf098","download_url":"https://codeload.github.com/xxf098/shadowsocksr-v2ray-trojan-android/tar.gz/refs/heads/xxf098/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209859,"owners_count":22032897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","scala","shadowsocksr","ssr","trojan","v2ray","vmess"],"created_at":"2024-08-20T21:02:16.022Z","updated_at":"2025-05-14T19:09:43.613Z","avatar_url":"https://github.com/xxf098.png","language":"Scala","funding_links":[],"categories":["Scala"],"sub_categories":[],"readme":"## A ShadowsocksR, V2Ray and Trojan Client for Android\n\nA fully featured [ShadowsocksR](https://github.com/breakwa11/shadowsocks-rss/), [V2Ray](https://github.com/v2ray/v2ray-core) and [Trojan](https://trojan-gfw.github.io/trojan/protocol) client for Android, written in Scala.\n\n ![build](https://github.com/xxf098/shadowsocksr-v2ray-android/workflows/build/badge.svg?branch=xxf098%2Fmaster\u0026event=push) \n [![GitHub release](https://img.shields.io/github/release/xxf098/shadowsocksr-v2ray-android)](https://github.com/xxf098/shadowsocksr-v2ray-android/releases) \n [![GitHub issues](https://img.shields.io/github/issues/xxf098/shadowsocksr-v2ray-android.svg)](https://GitHub.com/xxf098/shadowsocksr-v2ray-android/issues/) \n\n\n\n### PREREQUISITES\n* A really fast proxy\n* JDK 1.8\n```bash\n    sudo apt-get install openjdk-8-jdk\n    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\n    export PATH=$PATH:$JAVA_HOME/bin\n    java -version\n```\n* SBT [0.13.8](https://www.scala-sbt.org/download.html)\n* Android SDK\n  - Build Tools 30+\n  - Android Support Repository and Google Repository (see `build.sbt` for version)\n* Android NDK r21e+\n\n### BUILD with Android Studio\n\n*Warnning: Cannot build in windows*\n\n* Download [Android Studio](https://developer.android.com/studio)\n* Download [Android NDK r20b](https://developer.android.com/ndk/downloads/older_releases)\n* Install [Scala](https://plugins.jetbrains.com/plugin/1347-scala) plugin for IntelliJ IDEA\n* Set proxy for Android Studio: `File | Settings | Appearance \u0026 Behavior | System Settings | HTTP Proxy`   \nSet proxy for sbt: `File | Settings | Build, Execution, Deployment | Build Tools | sbt`, in `VM parameters` input:\n\n\n        -Dhttps.proxyHost=127.0.0.1\n        -Dhttps.proxyPort=8080\n        -Dhttp.proxyHost=127.0.0.1\n        -Dhttp.proxyPort=8080\n        \n* Set environment variable `ANDROID_HOME` to `/path/to/Android/Sdk`\n* Set environment variable `ANDROID_NDK_HOME` to `/path/to/Android/android-ndk-r21e`\n* Create your key following the instructions at https://developer.android.com/studio/publish/app-signing.html\n* Put your key in ~/.keystore or any other place\n* Create `local.properties` from `local.properties.example` with your own key information\n\n        key.alias: abc\n        key.store: /path/to/Android/abc.jks\n        key.store.password: abc\n\n* if you installed multiple versions of Java, use `sudo update-alternatives --config java` to select Java 8\n* Before build apk, make sure inside `./project/build.properties`, sbt.version=0.13.18 \n* Invoke the building like this\n\n```bash\n    export https_proxy=http://127.0.0.1:8080 # !important\n    export ANDROID_HOME=/path/to/Android/Sdk\n    export ANDROID_NDK_HOME=/path/to/Android/android-ndk-r20b\n    # install and update all git submodule\n    git submodule update --init\n    # cd ./src/main/jni/shadowsocks-libev \u0026\u0026 git checkout Akkariiin/master\n    # Build the App and fix the problems as the error messages indicated\n    sbt native-build clean android:package-release\n    # run app\n    sbt android:run\n```\n\n##### 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):\n\n```bash\n    # use Archlinux x86_64 as example\n    \n    # install ncurses x64 and x86 version\n    sudo pacman -S lib32-ncurses ncurses\n    \n    # link the version-6 ncurses to version-5\n    sudo ln -s /usr/lib/libncursesw.so /usr/lib/libncurses.so.5\n    sudo ln -s /usr/lib32/libncursesw.so /usr/lib32/libncurses.so.5\n    \n    # link libncurses to libtinfo\n    sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5\n    sudo ln -s /usr/lib32/libncurses.so.5 /usr/lib32/libtinfo.so.5\n```\n\n#### Integration with Android Studio\n\nCheckout this [link](http://srodrigo.me/setting-up-scala-on-android/)\n* rm -rf ~/.android/sbt/exploded-aars/*\n* In Project Settings -\u003e Modules -\u003e shadowsocksr-v2ray-trojan-android, change `Structure`, `Generated Sources` to correct file path\n* In Run/Debug Configuration -\u003e Before launch, replace `Gradle-aware Make` with `android:run`\n\n#### BUILD on Mac OS X (with HomeBrew)\n\n* Install Android SDK and NDK by run `brew install android-ndk android-sdk`\n* Add `export ANDROID_HOME=/usr/local/Cellar/android-sdk/$version` to your .bashrc , then reopen the shell to load it.\n* Add `export ANDROID_NDK_HOME=/usr/local/Cellar/android-ndk/$version` to your .bashrc , then reopen the shell to load it.\n* echo \"y\" | android update sdk --filter tools,platform-tools,build-tools-23.0.2,android-23,extra-google-m2repository --no-ui -a\n* echo \"y\" | android update sdk --filter extra-android-m2repository --no-ui --no-https -a\n* Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert\n* Put your key in ~/.keystore\n* Create `local.properties` from `local.properties.example` with your own key information .\n* Invoke the building like this\n\n```bash\n    git submodule update --init\n\n    # Build native binaries\n    ./build.sh\n\n    # Build the apk\n    sbt clean android:package-release\n```\n\n## OPEN SOURCE LICENSES\n\n* shadowsocks-libev: [GPLv3](https://github.com/shadowsocks/shadowsocks-libev/blob/master/LICENSE)\n* tun2socks: [BSD](https://github.com/shadowsocks/badvpn/blob/shadowsocks-android/COPYING)\n* redsocks: [APL 2.0](https://github.com/shadowsocks/redsocks/blob/master/README)\n* OpenSSL: [OpenSSL](https://github.com/shadowsocks/openssl-android/blob/master/NOTICE)\n* pdnsd: [GPLv3](https://github.com/shadowsocks/shadowsocks-android/blob/master/src/main/jni/pdnsd/COPYING)\n* libev: [GPLv2](https://github.com/shadowsocks/shadowsocks-android/blob/master/src/main/jni/libev/LICENSE)\n* libevent: [BSD](https://github.com/shadowsocks/libevent/blob/master/LICENSE)\n* v2ray-core: [BSD](https://github.com/v2fly/v2ray-core/blob/master/LICENSE)\n* go-tun2socks: [BSD](https://github.com/eycorsican/go-tun2socks/blob/master/LICENSE)\n\n### LICENSE\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxxf098%2Fshadowsocksr-v2ray-trojan-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxxf098%2Fshadowsocksr-v2ray-trojan-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxxf098%2Fshadowsocksr-v2ray-trojan-android/lists"}