mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2024-11-16 02:32: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 | ||
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
com.github.kr328.clash.ExternalControlActivity
with actioncom.github.metacubex.clash.meta.action.TOGGLE_CLASH
- Send intent to
- Start Clash.Meta service
- Send intent to
com.github.kr328.clash.ExternalControlActivity
with actioncom.github.metacubex.clash.meta.action.START_CLASH
- Send intent to
- Stop Clash.Meta service
- Send intent to
com.github.kr328.clash.ExternalControlActivity
with actioncom.github.metacubex.clash.meta.action.STOP_CLASH
- Send intent to
- Import a profile
- URL Scheme
clash://install-config?url=<encoded URI>
orclashmeta://install-config?url=<encoded URI>
- URL Scheme
Kernel Contribution
- 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
Project Maintainance
- 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 automatically compile and publish aPreRelease
version. - Manually triggering
Build Release
actions will automatically compile, tag and publish aRelease
version.- There is an option
Auto bump project version
in trigger widget. If this option is checked and triggered, theversionName
andversionCode
inbuild.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.
- There is an option