A rule-based tunnel for Android.
Go to file
Steve Johnson ecf03507e6 Squashed commit of the following:
commit 574fba87ab733332efa17733a6602a1649e62379
Author: Steve Johnson <stevejohnson1438@proton.me>
Date:   Sun Oct 29 21:31:23 2023 +0800

    support importing local geofile

commit ec410293f3abe29835645233349d026d3a55acc0
Author: Steve Johnson <stevejohnson1438@proton.me>
Date:   Sun Oct 29 17:18:52 2023 +0800

    release assets at runtime

commit 2dfb95bab98ba661a28efe255e2965c35c6580c4
Author: Steve Johnson <stevejohnson1438@proton.me>
Date:   Sun Oct 29 16:43:41 2023 +0800

    remove embedded country.mmdb

commit fb245ed4a3c257284685f3b1bee5d9f7333833ce
Author: Steve Johnson <stevejohnson1438@proton.me>
Date:   Sun Oct 29 16:35:14 2023 +0800

    simplity gradle

commit 2fb75c87a13dea7e5c8f8f4126cc53d2d6926b99
Author: Steve Johnson <stevejohnson1438@proton.me>
Date:   Sun Oct 29 16:06:17 2023 +0800

    add geofiles download
2023-10-29 21:38:36 +08:00
.github action: revert signing process as PR cannot access secrets 2023-10-27 00:56:33 +08:00
.idea/codeStyles feat: show subscription 2022-12-10 10:17:58 +08:00
app Squashed commit of the following: 2023-10-29 21:38:36 +08:00
common Add Russian translation (#118) 2023-08-31 19:59:04 -05:00
core Update Dependencies 2023-10-27 16:38:23 +00:00
design Squashed commit of the following: 2023-10-29 21:38:36 +08:00
fastlane/metadata/android fastlane: fix a typo 2022-07-06 19:39:07 +08:00
gradle/wrapper Chore: update dependencies 2022-05-12 20:15:21 +08:00
hideapi Refactor: refactor project structure & update clash core (#1174) 2021-09-11 14:53:09 +08:00
service chore: add http proxy block list 2023-10-24 16:32:31 +08:00
.gitattributes Chore: add .gitattributes (#1191) 2021-09-13 18:34:34 +08:00
.gitignore Squashed commit of the following: 2023-10-29 21:38:36 +08:00
.gitmodules chore: change upstream to android-real 2023-10-23 10:05:41 +08:00
build.gradle.kts Update Meta Core to v1.16.0 and add actions to help maintain the project (#147) 2023-10-22 15:57:35 +08:00
CONTRIBUTING.md Chore: update CONTRIBUTING.md 2021-05-15 02:01:38 +08:00
gradle.properties Chore: remove unused dependencies & improve gradle properties & code style (#1189) 2021-09-13 17:49:23 +08:00
gradlew Chore: update dependencies 2021-11-14 19:17:06 +08:00
gradlew.bat Chore: update gradle wrapper & append sha256sum 2021-05-15 19:15:43 +08:00
LICENSE Initial: initial commit 2021-05-15 00:51:08 +08:00
NOTICE Initial: initial commit 2021-05-15 00:51:08 +08:00
PRIVACY_POLICY.md Initial: initial commit 2021-05-15 00:51:08 +08:00
README.md docs: add maintainance documentation 2023-10-23 18:22:35 +08:00
release.keystore Add files via upload 2022-06-18 07:22:07 +07:00
settings.gradle.kts chore: root Project name 2022-12-10 00:27:55 +08:00

Clash Meta for Android

A Graphical user interface of Clash.Meta for Android

Feature

Feature of Clash.Meta

Get it on F-Droid

Requirement

  • Android 5.0+ (minimum)
  • Android 7.0+ (recommend)
  • armeabi-v7a , arm64-v8a, x86 or x86_64 Architecture

Build

  1. Update submodules

    git submodule update --init --recursive
    
  2. Install OpenJDK 11, Android SDK, CMake and Golang

  3. Create local.properties in project root with

    sdk.dir=/path/to/android-sdk
    
  4. Create signing.properties in project root with

    keystore.path=/path/to/keystore/file
    keystore.password=<key store password>
    key.alias=<key alias>
    key.password=<key password>
    
  5. Build

    ./gradlew app:assembleMeta-AlphaRelease
    

Kernel Contribution

  • CMFA uses the kernel from android-real branch under MetaCubeX/Clash.Meta, which is a merge of the main Alpha branch and android-open.
    • If you want to contribute to the kernel, make PRs to Alpha branch of the Meta kernel repository.
    • If you want to contribute Android-specific patches to the kernel, make PRs to android-open branch of the Meta kernel repository.

Project Maintainance

  • When MetaCubeX/Clash.Meta kernel is updated to a new version, the Update Dependencies actions in this repo will be triggered automatically.
    • It will pull the new version of the meta kernel, update all the golang dependencies, and create a PR without manual intervention.
    • If there is any compile error in PR, you need to fix it before merging. Alternatively, you may merge the PR directly.
  • Manually triggering Build Pre-Release actions will automatically compile and publish a PreRelease version.
  • Manually triggering Build Release actions will automatically compile, tag and publish a Release version.
    • There is an option Auto bump project version in trigger widget. If this option is checked and triggered, the versionName and versionCode in build.gradle.kts will be bumped first, then do the common build release process.
    • This option is intended for quickly update and release a new version online, without pulling the repository locally and work around by manual.