mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2024-11-16 06:32:18 +08:00
65 lines
2.5 KiB
Markdown
65 lines
2.5 KiB
Markdown
## Clash Meta for Android
|
|
|
|
A Graphical user interface of [Clash.Meta](https://github.com/MetaCubeX/Clash.Meta) for Android
|
|
|
|
### Feature
|
|
|
|
Feature of [Clash.Meta](https://github.com/MetaCubeX/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
|
|
|
|
```bash
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
2. Install **OpenJDK 11**, **Android SDK**, **CMake** and **Golang**
|
|
|
|
3. Create `local.properties` in project root with
|
|
|
|
```properties
|
|
sdk.dir=/path/to/android-sdk
|
|
```
|
|
|
|
4. Create `signing.properties` in project root with
|
|
|
|
```properties
|
|
keystore.path=/path/to/keystore/file
|
|
keystore.password=<key store password>
|
|
key.alias=<key alias>
|
|
key.password=<key password>
|
|
```
|
|
|
|
5. Build
|
|
|
|
```bash
|
|
./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.
|