Нет описания

Steve Johnson cbbcc2a6fe Merge pull request #168 from MetaCubeX/update-dependencies 2 лет назад
.github e0559f8f70 action: revert signing process as PR cannot access secrets 2 лет назад
.idea e06c901bf5 feat: show subscription 3 лет назад
app a58af39fae feat: add some override options about sniffing 2 лет назад
common 021939264f feat: add intent filters for tasker automation (#119) 2 лет назад
core cbbcc2a6fe Merge pull request #168 from MetaCubeX/update-dependencies 2 лет назад
design a58af39fae feat: add some override options about sniffing 2 лет назад
fastlane f5a93057ad fastlane: fix a typo 3 лет назад
gradle 5c3ab5470a Chore: update dependencies 3 лет назад
hideapi 11c4e19e0c Refactor: refactor project structure & update clash core (#1174) 4 лет назад
service b6f4f7ac62 feat: show toast after profile updated 2 лет назад
.gitattributes 8b91b2eeb1 Chore: add .gitattributes (#1191) 4 лет назад
.gitignore ecf03507e6 Squashed commit of the following: 2 лет назад
.gitmodules 191c8bc2dc chore: change upstream to android-real 2 лет назад
CONTRIBUTING.md 75745d89d7 Chore: update CONTRIBUTING.md 4 лет назад
LICENSE 07e8afa69a Initial: initial commit 4 лет назад
NOTICE 07e8afa69a Initial: initial commit 4 лет назад
PRIVACY_POLICY.md 07e8afa69a Initial: initial commit 4 лет назад
README.md ad471f3837 fix: adapt to format-broken logs (#165) 2 лет назад
build.gradle.kts f8a6a6afe2 chore: update version 2 лет назад
gradle.properties 899803739b Chore: remove unused dependencies & improve gradle properties & code style (#1189) 4 лет назад
gradlew 3397cdd95f Chore: update dependencies 4 лет назад
gradlew.bat 2f69985fe1 Chore: update gradle wrapper & append sha256sum 4 лет назад
release.keystore 8b2ef8aaac Add files via upload 3 лет назад
settings.gradle.kts d2f5503330 chore: root Project name 3 лет назад

README.md

Clash Meta for Android

A Graphical user interface of Clash.Meta for Android

Feature

Feature of Clash.Meta

[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"

 alt="Get it on F-Droid"
 height="80">](https://f-droid.org/packages/com.github.metacubex.clash.meta/)

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>

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.