Skip to content
ovironPublic
forked from chen08209/FlClash

About

A multi-platform proxy client based on ClashMeta,simple and easy to use, open-source and ad-free.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

FlClash (oviron fork)

License Last Version

Android mihomo client. Open source, no ads, no telemetry.

A maintained fork of chen08209/FlClash. Android-only, metacubex/mihomo v1.19.32 direct via 100% JNI, no REST controller. The mihomo bridge lives in oviron/libmihomo-android. FlClash consumes it as a SHA-256 + GPG-pinned .aar download, no C/C++/Go code in this repo.

mobile

What's in this fork

  • Onboarding, paste-and-go: paste a share link, base64 blob, subscription URL, or QR; the app builds a leak-hardened full-tunnel profile and proves it with a functional HTTP-204 probe before it shows "Connected."
  • Routing constructor: a plain-language per-profile editor (Lists, Scenarios, Apps, exit) over a lossless YAML round-trip; the raw proxy-group / rule / provider / DNS editors stay under Advanced for power users.
  • Per-profile app routing: All / Selected / Except tunnel modes via tun.include-package / tun.exclude-package, honored by VpnService.Builder so bank/gov apps stay out of the tunnel, with an automatic re-establish when the set changes.
  • Configurable tunnel MTU (default 1400).
  • Bundled GeoSite baseline + background auto-update, so a first connect on a GitHub-blocked network never stalls on a geo-DB download.
  • Subscription support: xray/v2ray subscription ingest with per-remark grouping and per-provider quota (used / total / expiry).
  • Network Rules: automatic VPN on/off based on the current network (WifiNamed / AnyWifi / AnyCellular).
  • Diagnostics: a history of the DNS queries the core resolved, and an on-demand IP quality check against five HTTPS services.
  • Targets Android 17 (API 37): asks for local network access at VPN start so LAN traffic keeps working.
  • Backend: metacubex/mihomo v1.19.32 direct, with CMfA-style patterns: type-explicit providers API, async-callback path, push subscription for connections/log, INNER-bypass via Dart pre-process.
  • Dashboard checkIp probe: JNI WithSpecialProxy bypasses user rules so the real exit-IP shows even on whitelist profiles with MATCH,REJECT.
  • Stability stack: wake/Wi-Fi locks, idempotent module loader, defensive Go type-assertions, MATCH-rule guard for upstream #1959, Global proxy watchdog.

Install

./gradlew is not used directly; APKs are produced by the GitHub Actions workflow in this repo.

adb install -r FlClash-<version>-android-arm64-v8a.apk

Releases are published under Releases and signed with this fork's own debug keystore. Reinstalling on top of upstream-signed FlClash requires a clean reinstall once (signatures differ).

Build

git clone https://github.com/oviron/FlClash.git
cd FlClash
dart setup.dart android

Requires Flutter, Android SDK platform 37 and NDK 28. The build script downloads libmihomo-android-<version>.aar from GitHub Releases into android/core/libs/, checks it against the pinned SHA-256 and its GPG signature, and produces split APKs for arm, arm64, and x86_64 in dist/ (--arch builds one).

Development

Pre-commit hook runs dart format --set-exit-if-changed and flutter analyze --fatal-infos on staged Dart files. Install once after cloning:

ln -s ../../scripts/pre-commit.sh .git/hooks/pre-commit

CI runs the same checks plus flutter test, DCM dead-code, detekt on Kotlin sources, locale parity, shellcheck and a gitleaks secret scan on every push and PR to main. Pushes to main also build the APKs; v* tags add an emulator smoke test and publish signed APKs to Releases.

License

GPL-3.0, inherited from chen08209/FlClash. See LICENSE.

Acknowledgements

About

A multi-platform proxy client based on ClashMeta,simple and easy to use, open-source and ad-free.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages