Install Shadowrocket on Android in this order: open our download page in your system browser, save the arm64 APK, allow the app you’ll use to open it to install unknown apps, then complete installation. If a download won’t start in WeChat, switch to a browser instead of tapping repeatedly. This guide is for users who already have a subscription from their own provider and are installing or updating the app. After installation, import your configuration and approve the VPN connection request.
1. Check the Android APK and download source
Get the Android version from our download page, select Android, and download the arm64 APK. APK is the Android installation package format; arm64 refers to the processor architecture, not the app version. Don’t change the file extension or try to open a desktop installer on your phone.
The iPhone and iPad version costs $2.99 as a one-time App Store purchase. The Mac version (Apple silicon and Intel), Windows, Android, and Linux versions are free. Check the App Store listing for iPhone and iPad system requirements. The product page lists Shadow Launch Technology Limited as the developer and has app ID 932747118. Find download links for all platforms on our download page; this guide does not link directly to installation packages.
Devices with arm64 processors are often identified by system information tools as arm64-v8a. A 64-bit-capable processor does not necessarily mean the device is running a 64-bit version of Android. If the system reports an incompatibility, check the device and OS architecture rather than repeatedly renaming the APK. Older devices and managed work devices may have additional restrictions.
2. Download the APK and allow installation from this source
On recent Android versions, installation permission is usually managed separately for each source app. “Allow from this source” lets a browser or file manager start an installation; it does not authorize Shadowrocket to connect to the network. The steps below use common Android menu names. Depending on the manufacturer, “Special app access” may be called “Special permissions.” Search Settings for “Install unknown apps” if needed.
-
Open the download page
In your system browser, open our download page, find the Android option, and download the arm64 APK. Wait until the browser’s download list shows that the file is complete before opening it. A partially downloaded file can’t be installed.
-
Check the permission prompt
Tap the APK in the browser’s download list. If Android says this source isn’t allowed to install apps, open “Settings” from the prompt. Check the name of the source app shown before granting permission.
-
Allow installation from this source
A common path is Settings → Apps → Special app access → Install unknown apps → current browser → Allow from this source. If you open the APK from a file manager, select that file manager instead of the browser.
-
Return to finish installation
Return to the installer and tap “Install.” If the installer closed, open the completed file again from your downloads list. There’s no need to download it again.
-
Revoke source permission
After installation, you can turn off the source app’s install permission using the same steps. This won’t uninstall Shadowrocket or prevent it from opening. You may need to grant permission again when updating.
System security checks, parental controls, and organization device policies are separate restrictions. If your device is managed by your employer or school, the setting may be unavailable; contact your administrator. Don’t disable device-wide security just to install the app. First make sure the package came from our download page and read the specific error shown by Android.
3. WeChat download not working? Open the page in a browser
If tapping Download in WeChat doesn’t create a download task, that doesn’t mean the APK is damaged. WeChat’s built-in browser may handle downloads and app installers differently from your system browser. First check whether a file was actually downloaded, then switch browsers. This is more useful than repeatedly tapping the same button.
Steps for each browsing environment
Page opened in WeChat
- Tap the menu in the upper-right corner and look for “Open in Browser.”
- If that option isn’t available, copy the link to our page and paste it into your system browser’s address bar.
- Open the download page and select Android again. Don’t copy the temporary download URL behind the button.
Page opened in a system browser
- After tapping Download, open “Downloads” or “Download history” from the browser menu.
- Make sure the download is complete, then open the APK.
- If there’s no download task, check the browser prompt, available storage, and network connection, then try once more.
In short: if the download fails, switch browsers. If installation is blocked, check source permission. These are separate issues with separate settings.
If the saved file opens as a web page, text, or an error message, you may have downloaded an error page instead of a valid installer. Delete the file and download it again from our download page. Renaming the extension to .apk won’t turn a web page into an installation package.
- Nothing happens when you tap: Check the download list for an existing task before trying again, to avoid creating duplicate files.
- Download stuck for a long time: Check available storage and your network connection. Cancel a failed task and start the download again.
- Download finished, but the file won’t open: Note the exact system message, then check whether the source isn’t allowed, the file is incomplete, or the device is incompatible.
4. First launch: add a subscription and connect
Successful installation only means the app is on your device; it doesn’t mean you have a working connection. Get a subscription link from your provider. It usually contains an access token, so treat it like a password and don’t share it in public screenshots or chats when asking for help. If entering a server manually, use the protocol, server address, port, and authentication details provided by your service provider.
- Add a subscription: Open Home and choose the add option. Select Subscribe under Type, enter your subscription link, and save. The layout may vary by platform; use the option shown in your installed Android app.
- Load subscription details: Update the subscription and check that server entries appear in Home. If the list is still empty after saving the link, check the update error first rather than assuming there’s a VPN permission problem.
- Check your configuration: In Config, select the configuration you want to use, then check the current mode under Global Routing. Configuration files, server entries, and Android installation permissions each address different issues.
- Connect: Select your server and start the connection. When Android first asks to set up a VPN connection, make sure the requesting app is Shadowrocket, then approve the system prompt.
- Check the connection: Open a website you want to access. If the connection is established but the site won’t load, check your subscription, server settings, and rule matches instead of repeatedly reinstalling the app.
The options below describe different uses of Global Routing, not different installation packages. The actual route used by Config depends on the active rules. Proxy mode can’t restore an unavailable server. Switching modes is a troubleshooting step; restore your preferred setting after checking.
Config
RecommendedRoutes connections according to the rules in the current configuration. Check the configuration to see which requests use a proxy and which connect directly. Requests that don’t match a rule are typically handled by FINAL.
Best for: using a known traffic-routing configuration for everyday connections.
Proxy
Handles connections managed by the app in proxy mode. Use this temporarily to check whether a connection issue is related to routing rules. It won’t bypass provider authentication, an expired subscription, or a server outage.
Best for: checking rule-based routing briefly after confirming the server works.
Direct
Handles connections managed by the app in direct mode. Turning on the connection doesn’t mean requests will use a proxy; check this selection too.
Best for: temporarily checking whether the device’s regular network can reach a destination.
5. Common installation, update, and permission issues
When troubleshooting, keep the exact error message and note the steps that triggered it. “Installation failed” can mean a download is incomplete, the architecture doesn’t match, storage is low, or an existing app can’t be updated. One result message alone may not identify the cause. Follow the steps for the issue you’re actually seeing.
Why does Android still say I don’t have permission after I allowed installation?
Check which source app is named in the installation prompt. If you downloaded the APK in a browser but opened it later in a file manager, Android may check the file manager’s permission. Go to Settings → Apps → Special app access → Install unknown apps, allow the app that actually starts the installation, then open the APK again.
Android says there’s a problem parsing the package. Should I rename the file?
No. Delete the failed file, return to our download page, download it again, and wait for the download to finish before opening it. If the error persists, check that your system supports arm64 APKs and note your Android version and the exact error. Changing the extension or repeatedly tapping Install won’t fix an incomplete file.
Should I uninstall the app first if an update won’t install?
Don’t uninstall it yet. Check where the existing app came from, whether the package is complete, and whether there’s enough storage. Android may reject an update if the signatures don’t match or the package isn’t compatible. Uninstalling could put local configuration at risk. Back up or export your data using the app’s available features before taking action based on the specific error.
The app installed, but why don’t I see any available servers?
Open Home and check whether you added a Subscribe link and updated it successfully. Get the subscription link from your provider. If the update reports an authentication failure, expiration, or empty content, contact that provider. Installing the APK and importing a subscription are separate steps; reinstalling won’t fix a subscription issue on the provider’s end.
Will turning off installation permission disconnect the VPN?
Revoking a browser’s permission to install apps won’t uninstall Shadowrocket or revoke VPN permission you’ve already granted. If the connection drops, check Android’s VPN status, the app’s connection toggle, and any network changes instead of allowing installations from all sources again.
6. After installation: checks and data backup
Once you’ve confirmed that a connection works, you can review settings such as battery management for longer sessions. If the connection drops only when the app goes to the background or the screen locks, check background restrictions under Settings → Apps → Shadowrocket → Battery. Menu names vary by manufacturer. Adjust settings based on what’s happening; you don’t need to disable every system restriction during installation.
- Installation source: Remember that the package came from our download page and return to the same place for updates. Don’t install unknown files forwarded in chats.
- Local data: Keep a copy of your configurations and provider details. Before uninstalling the app, clearing its data, or switching devices, make sure your backup can be opened.
- Permissions: You can revoke installation permission for the source app after installation. Check VPN permission and connection status separately.
- Troubleshooting notes: Record exactly which step failed: tapping Download, opening the file, installing over an existing app, or connecting. Before sharing a screenshot, hide subscription links, UUIDs, passwords, and account details.
If the download and installation both succeed but websites still don’t load, troubleshoot the connection and configuration rather than changing “Install unknown apps” settings. Checking each stage separately avoids unnecessary permission changes, repeated downloads or imports, and accidental loss of configuration.