Why Use Clash on Android?
If you are searching for how to use Clash proxy on an Android phone, you probably already have a subscription from a proxy provider (often called an "airport") and need a reliable mobile client to connect. Clash is an open-source rule-based proxy framework built on the Mihomo kernel (formerly Clash Meta). On Android, it routes your app traffic intelligently—domestic services go direct, overseas traffic passes through your chosen node—without configuring every app individually.
The Android landscape has shifted since the original Clash for Android (CFA) client stopped receiving updates in 2023. Many users still search for "ClashForAndroid" or "CFA," but that app runs an outdated kernel that lacks support for newer protocols like Hysteria2, TUIC, and VLESS with Reality. The community's successor is ClashMeta for Android (also known as ClashMetaForAndroid), a native Android client that wraps Mihomo with VPN mode, one-tap subscription import, latency testing, policy groups, and rule-based routing. For most Android users in 2025, ClashMeta is the recommended starting point.
This guide walks you through the entire Android setup from scratch: checking compatibility with your phone brand, downloading the right APK, installing it safely, importing your subscription, turning on VPN mode, and tuning battery settings so the connection stays alive. Whether you are migrating from the old Clash for Android app or setting up Clash for the first time on a Samsung Galaxy, Xiaomi Redmi, Google Pixel, OPPO, or Huawei device, you should have a working connection within about ten minutes.
System Requirements & Choosing a Client
Before downloading anything, confirm your device meets the minimum requirements. ClashMeta for Android runs on Android 6.0 (Marshmallow) and above. You need roughly 50 MB of free storage for the APK and config cache. An active internet connection is required for the initial download and subscription sync. Most mainstream phones from Samsung, Xiaomi, OPPO, vivo, OnePlus, Google Pixel, and Huawei (with Google services) are fully supported.
Android CPU architecture matters when picking an APK. Phones released after 2016 almost always use ARM64 (arm64-v8a). Older budget devices may still run ARMv7 (armeabi-v7a). If you are unsure, download the Universal build—it works on every architecture at the cost of a slightly larger file size. Tablets, TV boxes, and foldable phones follow the same rules.
ClashMeta vs. Legacy Clash for Android
| Client | Status | Kernel | Best For |
|---|---|---|---|
| ClashMeta for Android | Actively maintained | Mihomo (latest) | Most Android users (recommended) |
| Clash for Android (CFA) | Discontinued (2023) | Outdated Clash | Not recommended — migrate to ClashMeta |
| FlClash | Actively maintained | Mihomo | Beginners who want a simpler UI |
| Surfboard | Archived | Legacy | Legacy users only |
We recommend ClashMeta for Android because it offers the most complete feature set on mobile: full VPN mode that captures all app traffic, rule-based split routing, policy groups with auto-select, subscription auto-refresh, and support for every protocol your provider offers. Beginners can import a subscription and tap one button to connect; advanced users can still edit YAML configs and inspect live connection logs. The rest of this tutorial uses ClashMeta as the reference client.
Step 1: Download ClashMeta for Android
Always download Clash APKs from trusted official channels. Third-party repacks on forums or Telegram channels may bundle malware or outdated kernels. Visit our Client Download Page, scroll to the Android section, and choose ClashMeta for Android.
- Open the official download page in your phone's browser (Chrome, Samsung Internet, or any browser you trust).
- Under Android clients, tap Download Universal (Recommended) if you are unsure about your CPU architecture.
- If you know your phone is ARM64 (virtually all phones since 2017), tap the ARM64 button for a smaller file.
- Wait for the download to finish. The file is typically named something like
cmfa-universal-release.apk. - Optionally check the file size against what the download page lists—unexpectedly small files may indicate a failed download.
clashmain.com. Never enter subscription credentials on unknown pages or sideloaded apps from untrusted sources.
If your network blocks the download page, try switching to mobile data temporarily, or download the APK on a PC and transfer it via USB, cloud storage, or a messaging app. Once ClashMeta is installed and running, future updates can be fetched from the same download page or from within the app if your build supports in-app updates.
Step 2: Install the APK on Your Phone
Because ClashMeta is not distributed through Google Play, Android will ask you to approve installation from an unknown source. The exact steps vary by manufacturer, but the general flow is the same across Samsung, Xiaomi, OPPO, vivo, and Pixel devices.
Generic Installation Steps
- Open your phone's Files or Downloads app and tap the downloaded APK.
- Android shows a security warning. Tap Settings on the dialog to enable installation for your browser or file manager.
- Toggle Allow from this source (or "Install unknown apps") to ON, then go back.
- Tap Install and wait for the progress bar to complete.
- Tap Open to launch ClashMeta, or find the app icon in your app drawer.
Brand-Specific Notes
Samsung (One UI): Settings → Biometrics and security → Install unknown apps → select your browser → allow. Some builds also show a "Install blocked" banner—tap Details, then Install anyway.
Xiaomi / Redmi / POCO (MIUI / HyperOS): Settings → Privacy protection → Special permissions → Install unknown apps → enable for your browser. MIUI may also show a "Security risk" dialog—tap "I understand the risks and want to continue."
OPPO / Realme (ColorOS): Settings → Security → Install apps from external sources → enable for Chrome or your file manager.
Google Pixel (stock Android): Settings → Apps → Special app access → Install unknown apps → enable for your download source. Pixel devices tend to have the fewest extra security dialogs.
Step 3: First Launch & Permissions
On first launch, ClashMeta for Android requests several permissions. Understanding what each one does helps you avoid accidentally blocking the client.
- Network access: Allow ClashMeta to access Wi-Fi and mobile data. Without this, the app cannot download configs or connect to proxy nodes.
- Storage (optional): Some builds request storage access to import local YAML files. Grant it if you plan to use offline configs; otherwise you can skip it.
- Notification permission (Android 13+): Allow notifications so you can see VPN status and quick-toggle controls in the notification shade.
- The home screen shows a large Stopped button in the center, with tabs for Proxies, Profiles, Logs, and Settings at the bottom.
ClashMeta stores configuration files in its private app directory. You rarely need to touch these files directly, but they are useful when backing up subscriptions or troubleshooting corrupt configs. If the app crashes on launch, try clearing only the cache (not data) in system app settings, then reopen.
Step 4: Import Your Subscription
A subscription URL is provided by your proxy service provider. It contains your node list, routing rules, and policy groups in Clash-compatible YAML format. Importing this link is the most important step after installation—the app cannot connect without a valid config.
Import via URL (Recommended)
- Open ClashMeta and tap the Profiles tab (labeled Config in some builds).
- Tap the + button in the top-right corner and select Import from URL (or "New Profile → URL").
- Paste your full subscription link into the URL field. Make sure there are no leading or trailing spaces.
- Give the profile a recognizable name, such as "Main Provider" or "Backup Nodes."
- Tap Save or Import and wait for the download and parsing to finish. A success indicator confirms the config loaded.
- Tap the profile card in the list to activate it—the active profile is highlighted or shows a checkmark.
Import via QR Code or Local File
Some providers offer a QR code instead of a plain URL. In that case, choose Scan QR Code during import and point your camera at the code. If your provider gives you a .yaml file, choose Import from File and select the document from your downloads folder.
Step 5: Start VPN Mode & Select a Node
With an active subscription loaded, you are ready to start routing traffic. ClashMeta uses Android's built-in VPN API to capture all app traffic—this is more reliable than a simple HTTP proxy and works with every app on your phone.
- Rule mode — Traffic is matched against your config's
ruleslist. Domestic IPs and domains go direct; overseas traffic uses the proxy. This is the recommended daily mode. - Global mode — All traffic exits through the proxy. Useful for troubleshooting or accessing sites not covered by rule lists.
- Direct mode — Equivalent to disabling the proxy entirely. Handy for speed comparisons or temporary bypass.
To start proxying all app traffic, follow these steps:
- Confirm the outbound mode is set to Rule in Settings (this is usually the default).
- Return to the home screen and tap the large Stopped button. It changes to Running when active.
- Android shows a VPN connection request dialog. Tap OK to allow ClashMeta to set up a VPN. This is required for the proxy to work.
- Switch to the Proxies tab. You will see policy groups such as "Auto Select," "Manual Select," or "Proxy."
- Tap a group and choose a node with low latency, or let an
url-testgroup pick the fastest node automatically. - Open a browser and visit a test site. Check the Logs tab in ClashMeta to confirm traffic is flowing through the proxy chain.
| Feature | What It Does | VPN Permission |
|---|---|---|
| VPN Mode (TUN) | Captures all TCP/UDP traffic from every app | Required |
| Rule Mode | Smart split routing by domain, IP, and GEOIP | Required |
| Per-App Proxy | Include or exclude specific apps from the tunnel | Required |
Step 6: Battery & Background Settings
The single most common reason Clash disconnects on Android is aggressive battery optimization by the manufacturer. Samsung, Xiaomi, OPPO, and Huawei are especially notorious for killing background VPN services to save power. You must whitelist ClashMeta to keep the connection stable.
- Go to your phone's Settings → Apps → ClashMeta (or Clash Meta).
- Tap Battery and set it to Unrestricted (Pixel), No restrictions (Xiaomi), or Don't optimize (Samsung).
- On Xiaomi devices, also enable Autostart in Security app → Manage apps → ClashMeta → Autostart → ON.
- On Samsung, add ClashMeta to Sleeping apps → Never sleeping apps list.
- Disable any "auto-clean" or "memory boost" features that force-stop background apps.
After adjusting these settings, lock ClashMeta in your recent apps screen (tap the app icon and select "Lock" on Xiaomi, or swipe down to pin on Samsung). This prevents the system from swiping it away during memory cleanup. If you use a third-party "cleaner" app, exclude ClashMeta from its kill list.
Step 7: Per-App Proxy & Split Tunneling
Sometimes you want only specific apps to use the proxy—for example, routing a browser and messaging app through Clash while keeping banking apps on a direct connection. ClashMeta supports per-app include/exclude lists in its settings.
- Open Settings and find Access Control Mode or Per-App Proxy.
- Choose Allow selected apps (whitelist) or Deny selected apps (blacklist) depending on your preference.
- Tap the app list and check the apps you want to include or exclude from the VPN tunnel.
- Restart the VPN connection for changes to take effect.
Per-app proxy is especially useful on dual-SIM phones where one SIM is for domestic use and you only want certain apps to route internationally. It also helps when a local app breaks because it detects a foreign IP—add that app to the bypass list and it will connect directly.
Step 8: Quick Settings Tile & Notification Controls
Once everything works, set up shortcuts so you do not have to open the full app every time you want to toggle the proxy.
- Pull down the notification shade while ClashMeta is running. You should see a persistent VPN notification with a quick disconnect button.
- On Android 7+, add a Quick Settings tile by editing your quick settings panel and dragging the ClashMeta tile into place.
- In ClashMeta Settings, enable Start on boot if you want the app to launch automatically when the phone restarts (you still need to tap Running to activate the VPN).
- Pin the app to your home screen for one-tap access to the main toggle.
For users who only need the proxy occasionally, leave auto-start disabled and toggle manually when needed. Mihomo consumes minimal resources in idle state, but an active VPN adds a small battery overhead during long sessions—acceptable for most users, but worth noting if you are on a low-battery day.
FAQs & Troubleshooting
Play Protect or Security App Blocks the APK
This is the most common hurdle for new Android users. Tap Install anyway on the Play Protect dialog, or temporarily pause scanning. If a manufacturer security app (MIUI Security, Samsung Device Care) blocks the install, add an exception. Always re-download from the official page if you are unsure about file integrity.
Subscription Import Fails with HTTP Error
Verify the URL is complete and has no extra spaces. Open the link in an incognito browser tab—it should download a YAML file. Some providers restrict access by IP or require a specific User-Agent header; contact your provider for a fresh link. Corporate or campus Wi-Fi may block subscription domains; test with mobile data to isolate the issue.
All Nodes Show Timeout
Run a latency test on your policy groups. If every node times out, your subscription may have expired or run out of bandwidth. Also check that your phone's date and time are set to automatic—large time drift causes TLS handshake failures. Try switching between Wi-Fi and mobile data to rule out network-level blocking.
VPN On but Apps Won't Connect
Confirm outbound mode is Rule, not Direct. Switch temporarily to Global mode—if Global works but Rule does not, the target domain is missing from your rule list. Add it via a provider update or contact your airport for an updated config. For deeper routing concepts, see our rule-based routing guide.
Connection Drops After Screen Off
This is almost always a battery optimization issue. Revisit Step 6 and ensure ClashMeta is set to unrestricted battery usage. Lock the app in recents, disable auto-clean features, and on Xiaomi specifically enable Autostart. If the problem persists, try enabling "Keep VPN alive" or similar options in ClashMeta Settings.
How Is ClashMeta Different from Clash for Android?
Clash for Android (CFA) was built on the original Clash core, which is no longer maintained. ClashMeta uses the Mihomo kernel with ongoing protocol support (VLESS, Hysteria2, TUIC, etc.), a refreshed UI, and active bug fixes. Migrating is straightforward: copy your subscription URL from CFA (or get a fresh link from your provider) and import it into ClashMeta following Step 4 above. Your nodes and rules transfer automatically.
Compared to one-click commercial "VPN apps" that hide their routing logic behind a paywall and offer no visibility into node quality, or abandoned clients like Clash for Android that leave you on outdated protocols without security patches, ClashMeta for Android with the Mihomo kernel gives you full transparency. You can inspect every rule, test node latency in real time, and customize behavior through YAML configs—all while receiving regular community updates. If you prefer an even simpler interface, FlClash on our download page offers a streamlined workflow with the same Mihomo engine under the hood.
Download Clash for Android free — get connected in minutes →