mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2024-11-16 05:22:17 +08:00
A rule-based tunnel for Android.
.github | ||
.idea/codeStyles | ||
app | ||
common | ||
core | ||
design | ||
fastlane/metadata/android | ||
gradle/wrapper | ||
hideapi | ||
service | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
build.gradle.kts | ||
CONTRIBUTING.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
NOTICE | ||
PRIVACY_POLICY.md | ||
README.md | ||
release.keystore | ||
renovate.json | ||
settings.gradle.kts |
Clash Meta for Android
A Graphical user interface of Clash.Meta for Android
Feature
Feature of Clash.Meta
Requirement
- Android 5.0+ (minimum)
- Android 7.0+ (recommend)
armeabi-v7a
,arm64-v8a
,x86
orx86_64
Architecture
Build
-
Update submodules
git submodule update --init --recursive
-
Install OpenJDK 11, Android SDK, CMake and Golang
-
Create
local.properties
in project root withsdk.dir=/path/to/android-sdk
-
Create
signing.properties
in project root withkeystore.path=/path/to/keystore/file keystore.password=<key store password> key.alias=<key alias> key.password=<key password>
-
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 actioncom.github.metacubex.clash.meta.action.TOGGLE_CLASH
- Send intent to activity
- Start Clash.Meta service
- Send intent to activity
com.github.kr328.clash.ExternalControlActivity
with actioncom.github.metacubex.clash.meta.action.START_CLASH
- Send intent to activity
- Stop Clash.Meta service
- Send intent to activity
com.github.kr328.clash.ExternalControlActivity
with actioncom.github.metacubex.clash.meta.action.STOP_CLASH
- Send intent to activity
- Import a profile
- URL Scheme
clash://install-config?url=<encoded URI>
orclashmeta://install-config?url=<encoded URI>
- URL Scheme
Contribution and Project Maintenance
Meta Kernel
- CMFA uses the kernel from
android-real
branch underMetaCubeX/Clash.Meta
, which is a merge of the mainAlpha
branch andandroid-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.
- If you want to contribute to the kernel, make PRs to
Maintenance
- When
MetaCubeX/Clash.Meta
kernel is updated to a new version, theUpdate 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 aPreRelease
version. - Manually triggering
Build Release
actions will compile, tag and publish aRelease
version.- You must fill the blank
Release Tag
with the tag you want to release in the format ofv1.2.3
. versionName
andversionCode
inbuild.gradle.kts
will be automatically bumped to the tag you filled above.
- You must fill the blank