Tutorial · Estimated reading 14 mins

FlClash on Android:
From download and install to subscription import

FlClash is a lightweight, Flutter-based client built around the Clash Meta core. This guide walks you through installing a trustworthy build, granting Android’s VPN permission once, importing a subscription or local profile, and choosing routing modes so browsers and apps behave the way you expect.

FlClash · Android · Clash Meta · Subscription · VPN

1 Why FlClash on Android

Android leaves you with two broad choices when you need rule-based proxying: lightweight per-app SOCKS clients that never see system DNS, or a VPN-style client that can steer traffic consistently using the same Clash configuration language you already know from desktop. FlClash sits in the second camp. It wraps the Clash Meta stack inside a Flutter shell, keeps the interface readable on small screens, and focuses on subscription workflows instead of forcing you to paste raw YAML on a phone keyboard.

That matters because modern proxies are not just “pick a server.” They are DNS policies, rule providers, automatic failover groups, and occasional exotic transports. FlClash can consume the same remote profiles your provider publishes for Mihomo or Clash Verge, which means you spend less time converting formats and more time verifying that latency and routing look sane. Memory use tends to stay modest compared with bloated storefront clients, and the project ships without ads—an annoyance that plagues many third-party Android wrappers.

This guide assumes you already have a legitimate subscription URL or a converted Clash configuration you trust. FlClash does not magically improve bad nodes, and you remain responsible for compliance with local regulations and the terms of any network you join. Treat the steps below as operational hygiene: verify signatures when possible, isolate test profiles from production credentials, and revoke links that leak in screenshots or chat logs.

2 Download and install safely

The upstream project lives on GitHub under chen08209/FlClash. Releases publish signed Android packages—typically universal APKs plus split variants per ABI. Unless you have a strong reason to sideload an anonymous mirror, download artifacts directly from the maintainer’s release page or another distribution channel you can attribute. After the APK lands on disk, open it with your file manager; Android prompts for install permission the first time you sideload outside a store.

Google Play availability changes over time and region. If you install from an alternative store, read reviews and checksums with the same skepticism you would apply to any network-facing binary. After installation, launch FlClash once while on Wi-Fi so it can fetch any bootstrap resources without burning mobile data. Keep auto-update toggles aligned with your risk tolerance: bleeding-edge builds fix bugs quickly but can also introduce regressions right before travel.

Pick the right package for your device

Most phones ship arm64-v8a. Tablets and dev boards might still run armeabi-v7a. If you install the wrong split, Android refuses the package outright, so when in doubt grab the universal APK from releases—it costs a few extra megabytes but avoids ABI guesswork. Enterprise-managed devices sometimes block sideloading; in that case you need MDM approval rather than a clever workaround.

Supply-chain caution: Never paste subscription tokens into random “online converters” you cannot audit. Malicious sites harvest URLs within minutes. Prefer official provider dashboards and self-hosted tooling when conversion is unavoidable.

3 First launch, VPN permission, and profiles

FlClash registers an Android VPN interface so it can route IP packets according to your Clash rules. The first time you tap connect, the OS shows the standard VPN consent dialog. Approve it only if you understand that all device traffic capable of traversing the VPN profile will be subject to FlClash’s rule engine. If you dismiss the dialog, the tunnel cannot start—there is no secret bypass.

After permission is granted, explore the navigation tabs slowly. You will usually see a dashboard with a master switch, a profile list, and a section for logs or diagnostics. Keep logging at info during setup, then drop to warning once things stabilize to reduce storage churn. If your vendor ships multiple profiles—for example separate domestic and streaming configs—import them as separate entries so you can switch without editing remote YAML on the phone.

Some OEM skins aggressively kill background VPN services to “save battery.” Note whether FlClash offers quick settings tiles or persistent notifications; leaving a low-priority notification enabled often prevents the tunnel from disappearing when you lock the screen. You can revisit power settings later, but establish a working baseline first so you know disconnects are not self-inflicted.

Documentation cross-link: For DNS leak concepts that apply to every Clash core, our docs hub collects terminology that mirrors what you see inside FlClash log panes.

4 Import a subscription or local profile

Providers normally hand you an HTTPS link that returns YAML or a base64 payload. Inside FlClash open the profile manager, choose add, and paste the URL. Give the profile a human-readable name—city, provider tier, or expiry date works well. Set a refresh interval that matches how often your vendor rotates endpoints; overly aggressive polling wastes bandwidth, while never refreshing leaves you on dead nodes.

Clipboard import is convenient when the link arrives in email or chat. QR import helps when you are copying from a desktop screen. If the client reports a parser error, capture the exact message: malformed UTF-8, unsupported cipher keywords, or missing proxy-groups sections each imply different fixes. Sometimes the provider accidentally serves HTML error pages; those fail fast with checksum errors and deserve a ticket to support rather than retries on the phone.

Manual YAML import is possible when you maintain configs yourself. Export from your desktop Mihomo or Clash Verge setup, transfer the file through a channel you control, and load it as a local profile. Remember that phones are easy to lose; scrub secrets before experimenting on shared devices and rotate any token that touched a public computer. When you need advanced automation—merging rule providers or patching outbound names—do that heavy lifting on a workstation, then sync the finished file through encrypted storage.

Validate after the first fetch

Trigger an immediate update, open the proxy group panel, and confirm nodes appear with latency badges. Run a speed test only after rule mode is active; global mode can mask misconfigured domestic rules. If streaming unlock is important, verify the provider’s rule set actually tags the relevant domains—FlClash faithfully executes whatever the profile contains, but it cannot invent missing rules.

5 Modes, nodes, and practical routing

Clash exposes three high-level modes. Rule mode is the default sweet spot: domestic CDNs and banking apps hit DIRECT, while everything else follows your provider’s policy list. Global mode forces all matching traffic through the active outbound, which is useful for debugging but expensive for daily browsing. Direct mode bypasses the upstream entirely—helpful when you need to confirm whether a failure is local ISP versus remote node.

Selector groups let you pin a preferred exit city, while URL-test or fallback groups automate movement when latency spikes. Learn which group your provider labels as default; some configs nest selectors inside other selectors, and tapping the wrong layer leaves you wondering why nothing changes. Policy groups that reference missing proxies simply fail closed—if you see empty lists, re-fetch the subscription or inspect YAML for typos.

DNS deserves equal attention. If the profile enables FakeIP or encrypted DNS upstreams, Android apps may behave differently than on desktop because mobile resolvers cache aggressively. When a site resolves oddly, toggle logging and watch whether queries hit the Clash DNS plugin or leak to the system resolver. Fixing that class of bug is almost always a YAML tweak, not a FlClash bug—though the client surfaces enough diagnostics to prove the point quickly.

Split tunneling per app is OS-dependent. Where Android exposes app-specific VPN exclusions, you can keep mobile banking off the tunnel while browsers stay on rule mode. Document what you exclude; future you will forget why a particular app suddenly sees the raw ISP path.

6 Updates, background behavior, and housekeeping

Check GitHub releases monthly even if auto-update is enabled. Security patches for the embedded core land there first, and release notes spell out breaking YAML changes. Before upgrading ahead of a trip, snapshot your working profile export so you can roll back by reinstalling the previous APK if needed.

Battery optimizers remain the primary enemy of stable VPN clients. In system settings, exempt FlClash from aggressive sleep, allow autostart if your vendor provides the toggle, and disable data-saver blocks for the app when you rely on mobile networks. MIUI, ColorOS, and Samsung One UI each hide these switches in different menus, but the pattern is identical: if the OS can freeze the process, it will—usually right when you switch from Wi-Fi to LTE.

Subscription URLs sometimes embed authentication tokens. When you renew service, providers may issue a new link; update the field instead of duplicating profiles, otherwise stale entries linger in your list and create confusion. If FlClash supports WebDAV or cloud sync in your build, treat the remote folder like a secrets vault: enable encryption, rotate passwords, and never share the folder publicly.

For power users who also run Mihomo on a server, keeping both environments aligned is easier when you version-control sanitized configs. Our Linux Mihomo systemd guide shows how to run the same core on a VPS so phone and server share parallel rule logic even though Android uses the VPN API instead of systemd.

7 Troubleshooting checklist

  • “Start VPN” loops: Clear VPN permission in system settings, reboot once, and reauthorize. Conflicting VPN profiles from work MDM also block user tunnels.
  • Subscription fetch fails: Verify TLS time on the device, disable private DNS temporarily, and try another network to rule out captive portals.
  • Nodes show but traffic is dead: Switch to global mode briefly; if global works, your rule set is dropping flows—inspect GEOIP or domain rules.
  • High battery drain: Lower log verbosity, reduce auto URL-test intervals, and ensure the screen is not stuck on a live traffic graph.
  • Streaming still geo-blocked: Confirm the outbound IP matches expectations using a browser leak test; some providers need dedicated media nodes.

8 Wrap-up

You should now be able to install FlClash from a trustworthy source, grant Android’s VPN permission confidently, import a subscription without exposing tokens, and reason about modes, proxy groups, and DNS behavior well enough to debug the first rough day on a new profile. The workflow mirrors desktop Clash clients: same YAML vocabulary, same respect for rule quality, but wrapped in mobile constraints around battery and OEM background policies.

Compared with one-off SOCKS utilities, a Meta-class client gives you consistent policy enforcement and fewer “works in Chrome but not in this app” mysteries—especially when providers ship thoughtful rule providers alongside bare nodes. Compared with closed-source storefront apps, an open client lets you correlate odd behavior with logs and community issues instead of guessing what closed telemetry is doing under the hood.

When you need the same philosophy on a laptop or workstation—TUN mode, richer editors, and faster iteration on YAML—desktop builds in the Clash ecosystem usually feel more comfortable for heavy editing, while FlClash stays the pocket companion for travel and LTE. Grab a maintained release for each platform from our hub so you are not hunting APK mirrors at the airport.

→ Download Clash for free and experience the difference

Tags: FlClash Android Clash Meta Subscription VPN Flutter
Clash client logo

Clash Verge Rev

Next-gen Clash client · Free and open source

Pair FlClash on your phone with Clash Verge Rev on Windows, macOS, or Linux: same rule language, desktop-grade editing, and optional TUN when you need terminals and IDEs on the full tunnel path.

Android + desktop lineup Mihomo-class core Rule / global / direct modes Subscription-friendly UX TUN on supported desktops

Related reading