Skip to content

MetaCubeX/ClashMetaForAndroid

This branch is 308 commits ahead of, 14 commits behind xuhaoyang/ClashForAndroid:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f444075 · Feb 19, 2025
Feb 19, 2025
Dec 10, 2022
Feb 5, 2025
Jan 21, 2025
Feb 19, 2025
Feb 19, 2025
Jul 6, 2022
Jan 21, 2025
Jan 21, 2025
Jan 21, 2025
Sep 13, 2021
Oct 29, 2023
Jan 17, 2024
May 14, 2021
May 14, 2021
May 14, 2021
May 14, 2021
Apr 30, 2024
Feb 10, 2025
Sep 12, 2024
Feb 14, 2024
Feb 14, 2024
Jun 18, 2022
Jan 18, 2024
Jan 21, 2025

Repository files navigation

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

Automation

APP package name is com.github.metacubex.clash.meta

  • Toggle Clash.Meta service status
    • Send intent to activity com.github.kr328.clash.ExternalControlActivity with action com.github.metacubex.clash.meta.action.TOGGLE_CLASH
  • Start Clash.Meta service
    • Send intent to activity com.github.kr328.clash.ExternalControlActivity with action com.github.metacubex.clash.meta.action.START_CLASH
  • Stop Clash.Meta service
    • Send intent to activity com.github.kr328.clash.ExternalControlActivity with action com.github.metacubex.clash.meta.action.STOP_CLASH
  • Import a profile
    • URL Scheme clash://install-config?url=<encoded URI> or clashmeta://install-config?url=<encoded URI>

Contribution and Project Maintenance

Meta Kernel

  • 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.

Maintenance

  • 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 compile and publish a PreRelease version.
  • Manually triggering Build Release actions will compile, tag and publish a Release version.
    • You must fill the blank Release Tag with the tag you want to release in the format of v1.2.3.
    • versionName and versionCode in build.gradle.kts will be automatically bumped to the tag you filled above.

About

A rule-based tunnel for Android.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 87.3%
  • Go 7.6%
  • C 4.7%
  • Other 0.4%