Clash for Android Discontinued: Config Backup and Alternative Clients

What to do when your current client stops receiving updates: export your subscription and overrides, choose a maintained alternative for your device and needs, then verify rules and DNS for a smooth switch.

Back Up First, Then Migrate: Keep the Old Client for Now

Clash for Android (CFA) is no longer maintained, but that doesn't mean your saved config will stop working right away. The issues to plan for are future Android compatibility, core fixes, and changes to subscription formats. Keep the old app and its data during migration. Test the new client with network access, the screen locked, and a subscription update before deciding whether to uninstall the old one.

A client is the app that manages configs and provides the interface; the core handles proxy connections, DNS, and rules. A config understood by the old app may not behave exactly the same in a new one, and a new subscription may use fields the old core doesn't support. Migration involves more than pasting a link—you also need to restore local settings.

  1. Note the config currently enabled in the old client, its operating mode, and selected proxy groups.
  2. Save the subscription URL, local YAML config, and in-app overrides separately.
  3. Install a candidate client and import one config first. Don't switch subscription providers at the same time.
  4. Stop the old client before starting the new one, then check network behavior item by item.

Config Backup Checklist: Save Subscriptions, YAML, and Overrides Separately

A Subscription URL Isn't a Full Backup

A subscription is the link a client uses to fetch remote config, and its URL often contains an account token. It can restore the nodes and rules provided by the server, but it may not include custom direct-connection domains, selected proxies, battery settings, or bypass-app lists you've added. If the subscription expires, the link alone can't retrieve the original content.

Using the common CFA 2.5.x interface as a reference, open Config, find the config in use, then open its edit or management options and check the source URL. If the interface offers an export or file-sharing option, save the YAML locally. Button names vary across builds. If you can't find an export option, at least keep the original subscription URL and a record of manual changes; don't mistake a share link for an exported file.

ItemDetails to recordWhy it matters for migration
Subscription sourceFull URL, config name, update intervalRe-create the remote config in the new client
Local YAMLCurrent file, custom rules, proxy group namesCompare local changes and troubleshoot parsing errors
OverridesDNS, ports, IPv6, operating modePrevent app settings from overriding the imported file
App listApps to bypass or proxy, and list modeRestore behavior for banking, work, and local network apps
Proxy selectionsCurrently selected proxy in each manually managed groupAvoid routing traffic through a different proxy after import

Screenshot settings, but hide credentials

In CFA, check Settings → Override for separately enabled overrides, then go to Settings → Network and review per-app proxy options. Exact sections depend on your installed version. Record more than whether a toggle is on: note whether the list means “proxy only these apps” or “bypass these apps.” The same list with the opposite mode can completely reverse how traffic is routed after migration.

Store backups somewhere protected by your device lock, and keep another copy in encrypted storage you control. Subscription URLs, proxy passwords, UUIDs, and controller keys are sensitive. Remove them before sharing logs or config, and never upload a full config to a public online converter.

Choosing an Alternative Client: Start with the Core and Your Device

When choosing a maintained alternative, focus on its current release—not whether its name includes Clash. Browse the client selection guide on this site for options, then check the project's release page, changelog, minimum Android version, and core version shown in the app. This article doesn't label any historical release as “the latest version” indefinitely.

Clash.Meta continued development under the name mihomo, so the two are part of the same evolution. But using mihomo doesn't mean every client exposes the same settings. A graphical interface may support only some overrides, while subscription updates, background services, and config merging are handled by the client. If you rely on a specific protocol or rule field, check the docs for the relevant core version instead of comparing interfaces alone.

  • Mostly use subscriptions: Consider Android options such as Clash Plus and FlClashs from the download page. Check how they handle remote config updates, switching configs, logs, and background operation.
  • Maintain hand-written configs: Test local YAML import, config overrides, rule-set loading, and whether errors include line numbers. Don't assume the client will preserve every unknown field.
  • Using an older phone: Check the minimum OS version and CPU architecture. ARM 64-bit devices generally use the arm64 package; a 32-bit OS can't install an arm64 package just because the processor is relatively new.
  • Rely on per-app proxying: Confirm the client supports the required include or exclude mode, then test special cases such as work profiles and cloned apps.

Import the Config and Set Up the VPN: Change One Thing at a Time

Start with the Same Subscription

  1. In the new client's config manager, choose URL import or add a remote config, then enter the full subscription URL you backed up.
  2. Wait for the download and parsing to finish. Confirm the expected proxy groups appear, not just a config name.
  3. Switch to Rule mode and select the same manual proxy groups and nodes as in the old client.
  4. Stop CFA's proxy service, start the new client, and approve Android's VPN connection prompt.

Android clients often use VpnService to create a local VPN interface that passes device traffic to the core; this is separate from the subscription server. In most user environments, only one VPN can be active at a time. If the device is running a corporate VPN, another proxy, or a VPN-based filtering app, resolve the conflict first. Starting two apps at once isn't a reliable way to compare speeds.

Restore Local Ports Only If Needed

If phone apps access the internet through the system VPN, local HTTP or SOCKS ports usually aren't the first place to troubleshoot. If a terminal tool used to connect to 127.0.0.1:7890, enable the corresponding local listener in the new client. The example below covers only the listener and mode; it doesn't include proxies, proxy groups, or complete rules, so it can't be used as a subscription on its own.

mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
log-level: info

mixed-port accepts both HTTP and SOCKS proxy connections on the same port. The app may override this listener setting, so check the runtime logs and test an actual connection. If the original config includes external-controller, also check its listen address and access key. Don't expose the controller directly to your local network just to restore an old dashboard.

Check Rules and DNS: A Connection Doesn't Mean Migration Is Complete

Check Rule Names, Order, and Mode Together

Rules are evaluated in order, and typically the first match determines which proxy group handles the traffic. Every policy name referenced by rules in the subscription must exist in the new config. Renaming the old “auto select” group without updating the rules can cause parsing errors or unexpected behavior. The client may also regenerate proxy groups during import, so check the config that's actually running.

  • Make sure Rule mode is your everyday setting. Global mode can't verify that traffic is being routed correctly.
  • Check that your custom domain rules still appear before broader rules.
  • Check the download status of rule-providers. A successful subscription update doesn't mean external rule sets downloaded successfully.
  • Open the connection log and check the destination domain, matched rule, selected policy, and actual proxy. Don't rely on latency shown on the main screen alone.

Match DNS Overrides Before Making Changes

DNS resolves domain names to IP addresses. During migration, first compare dns.enable, enhanced-mode, nameserver, fake-ip-filter, and IPv6-related settings, and preserve their original intent. Don't change the DNS provider, Fake-IP mode, and rules at the same time as the client; if something breaks, it will be hard to tell which change caused it.

Fake-IP returns virtual addresses to apps and maps them back to real domain names in the core. A common config uses the 198.18.0.1/16 address range, but the actual range depends on your config. Seeing an address in this range doesn't immediately mean DNS is broken. If local network discovery or a particular app stops working, first check filters, LAN bypass settings, and app lists rather than changing the entire address range.

Android's Settings → Network & internet → Private DNS can also affect how DNS requests are routed. Some manufacturers put it under Connection & sharing. Note the original value before testing one setting at a time; don't assume it needs to stay off. If the proxy starts but domain lookups time out, use the logs to determine whether upstream DNS is unreachable, DNS traffic is taking the wrong route, or the system setting conflicts with how the client takes over traffic.

Verify the Migration: Test Connectivity, Updates, and Screen Lock Separately

Use the same Wi-Fi, proxy, and config for each test so mobile network fluctuations aren't mistaken for client differences. The times below are suggested test windows, not results measured by this site or performance targets for every device.

  1. Basic connectivity, about 5 minutes: Visit one service expected to connect directly and one expected to use the proxy. Check the matched rule and route for each in the connection log.
  2. Local network test: Open your home router's admin page or connect to a local device you know. If it fails, check address bypass, routing, and per-app settings.
  3. Run one subscription update: Trigger an update manually, then confirm the config still parses, proxy groups are still present, and local overrides still apply.
  4. Lock the screen for about 15 minutes: Unlock the phone and check the service status, then open an app that needs internet access. A notification icon alone doesn't prove the connection is working.
  5. Switch networks once: Switch from Wi-Fi to mobile data and back. Check that the connection recovers and the logs don't repeatedly show timeouts.

If the service stops after the screen locks, open Settings → Apps → the client → Battery and check whether background activity is allowed. Some manufacturers also require autostart or removing background restrictions. If CFA was set as the “Always-on VPN” in Android's VPN settings, switch that setting to the new client. If “Block connections without VPN” is enabled, the device will lose internet access while the VPN is down, so check this before switching apps.

After all tests pass, keep the old config backup and monitor the new client for a day or two before uninstalling CFA. To roll back, stop the new client, check the system's VPN binding, then start the old app. If the subscription has changed, the old app may no longer be able to parse it, which is another reason to keep a local backup.

Common Migration Questions

The new client reports a YAML parsing error. Do I need to buy a new subscription?

Not yet. Check the reported line number, indentation, duplicate keys, and unsupported fields. Then verify that the subscription returned a Clash-compatible config—not a login page, error page, or node list in another format. If the core doesn't support a field, choose a compatible output or a core version that supports it instead of deleting an entire DNS or rules section.

Can I copy the old app's data directory directly into the new app?

Usually, no. Apps can use different databases, paths, permissions, and encryption, and the Android sandbox restricts access. Prefer the client's own config import and export tools, and restore app-level settings manually from your backup notes. Use a full-app restore only when both apps explicitly support the same backup format.

Latency tests look fine, but my browser won't load pages. What should I check first?

A latency test reports results for one specific test target; it doesn't confirm that traffic from every app is working. First check that the VPN is connected, the browser isn't excluded, the current mode is correct, and the connection log looks right. Then check DNS logs. Narrowing it down to one domain and one request is more useful than repeatedly switching proxies.

Download Clash