This guide is for anyone preparing to install Shadowrocket on an Android device. Start from the Android section of the download guide, confirm your device can run arm64 apps, then use a system browser to download and install the app and complete the first VPN connection. A download that does not respond in WeChat, a package parsing error, and a connection that fails after installation are different issues and should be checked separately. After installation, import a subscription or server details you already have.
1. Check arm64 compatibility and download source
The Android installation file uses the APK format. arm64 refers to an app build for 64-bit ARM architecture; it is neither an Android version number nor a phone brand. Many Android phones use this architecture, but a processor advertised as “64-bit” is not enough to confirm compatibility: the device’s operating system must also provide a suitable runtime environment.
Go to the Android section of the download guide, check the architecture and system requirements listed next to the current package, then download it. Do not use the Mac Apple Silicon build as an Android arm64 APK. Both involve ARM architecture, but they use different file formats and operating systems. If you are unsure of your device’s architecture, check the specifications from its manufacturer. If the installer reports that the app is incompatible, check compatibility rather than repeatedly tapping Install.
Before you download
- Download page
- Download Guide → Android
- Target architecture
- arm64; device and system must support it
- File format
- APK; open the downloaded file with the system installer
- Download using
- System browser or another standalone browser
Choose the actual installation package on this site’s download page. Do not construct the file URL manually.
After installation
- Server details
- A subscription or individual server details you already have
- Subscription
- Home → Add Server → Type → Subscribe
- Connection permission
- Approve the system VPN connection request the first time you connect
- For everyday use
- Global Routing → Config; check the active configuration
Installing the app, importing server details, and connecting are three separate steps.
There are two ways to get Shadowrocket: iPhone and iPad users can buy it once on the App Store for $2.99; check the App Store listing for system requirements. The Mac (Apple Silicon and Intel), Windows, Android, and Linux versions are free. This guide covers Android installation; for other platforms, choose the relevant option in this site’s download guide. App purchase costs are separate from the cost of any service you already use.
2. Download and install in a browser
Use the same standalone browser to open the page, download the file, and install it. Once the download starts, check the browser’s downloads rather than tapping repeatedly and creating duplicate files. These steps use Chrome on Android as an example. Depending on the manufacturer, “Special app access” may appear as “Special access”; use the label shown in your system settings.
-
Open the download page
Open this site’s download guide in a browser, go to the Android section, and select the arm64 APK. If the page is open in WeChat, switch to a browser using the steps in the next section.
-
Wait for the download to finish
In Chrome, open Menu → Downloads to check the task. Wait until the download is complete before opening the file; paused, failed, or in-progress downloads cannot be installed.
-
Allow installation from this source
After tapping the file, if the system says that installation from this source is not allowed, open “Settings” from the prompt and enable “Allow from this source” for the browser you used.
-
Return to confirm installation
Return to the installer, confirm the app is named Shadowrocket, then tap “Install.” When installation finishes, tap “Open” or launch the app from your home screen.
-
Revoke source permission
After installation, you can return to system settings and turn off installation permission for that source. Enable it again when needed for future updates. Turning it off does not affect the app’s normal operation.
3. Fix downloads that do nothing in WeChat
WeChat’s built-in browser may handle file downloads and installer launches differently from standalone browsers. If tapping the button leaves you on the same page, that does not necessarily mean the APK is damaged or that your Android version is incompatible. First check whether the browser created a download task, then troubleshoot any installation issue separately.
Troubleshoot based on where the page is open
Still in WeChat
- Open the menu in the top-right corner of the page and look for “Open in Browser” or a similar option.
- If that option is unavailable, copy the page URL and paste it into your system browser.
- Open the Android download section again, tap Download, and check the browser’s downloads list.
Already in a standalone browser
- Open the downloads list and check whether the task was never created, is paused, or has finished.
- If the task is paused, check your connection and available storage, then resume it instead of starting another download.
- If the file has finished downloading but will not install, check source permission and device compatibility.
First open the page in a standalone browser, then troubleshoot the download. Repeatedly refreshing it in WeChat is not a substitute.
Copy the URL of the page on this site; you do not need to copy or guess the APK’s file URL. If the page opens in WeChat again after switching browsers, check whether you tapped the same link in a chat. Pasting the page URL directly into the browser’s address bar makes it clear which app is opening the page. If the browser shows that the download is complete, there is no need to keep troubleshooting WeChat.
4. Troubleshoot source permission, parsing errors, and installation failures separately
Android checks several things at different stages of installation. Source permission determines whether an app can start an installation. Package parsing checks whether the installer can read the file. The installation stage also checks system compatibility, available storage, and how the package relates to an existing app and its update. Passing one check does not guarantee that later checks will pass.
| What you see | Check first | What to do next |
|---|---|---|
| Installation from this source is not allowed | The browser or file manager named in the prompt | System Settings → Apps → Special app access → Install unknown apps → Select the app → Allow from this source. |
| There was a problem parsing the package | Whether the download finished and the file came from this site’s Android download page | Delete the incomplete file and download it again from this site. If the error persists, check the system and architecture requirements. |
| The device is incompatible | arm64 support and the system requirements on the download page | Check the device specifications and system information. Changing the file extension or opening the file another way will not fix incompatibility. |
| Not enough storage space | Available space under System Settings → Storage | Free up space and try again. Installation needs room for the APK as well as unpacked files and app data. |
| The existing app cannot be updated | Where the existing app came from, the full system message, and any device management restrictions | Save your configuration and confirm the source of the update first. Do not clear app data or uninstall the app just to retry. |
Some devices list “Install unknown apps” under System Settings → Security & privacy → More security settings. You can also search for that name in system settings. Company- or school-managed devices may restrict installation; a personal setting cannot override an administrator’s policy. If the system displays a security warning, read the specific reason and confirm the source. Turning off security protections across the device is not a general installation step.
5. Import an existing subscription after opening the app
Installation only means the client can run; Home still needs a server to connect to. These steps assume you already have a service provider and subscription. This site only explains client operations and does not provide or recommend connection services. When importing, preserve the URL’s protocol, path, and query parameters; do not enter it as a search term.
- Open Shadowrocket, go to Add Server from Home, and tap “+” to open the add screen. If the interface already shows a “+” in the top-right corner, tap it.
- Set Type to Subscribe, paste your existing subscription URL into the URL field, enter a name you can recognize, and save.
- Update the subscription, then return to Home and check that server entries appear. If the URL has not changed, update the existing subscription rather than adding it again.
- Select an existing server, check Global Routing and the active Config, then connect and approve the VPN request from Android.
A subscription URL might look like https://example.com/sub?token=xxxx; this is a nonfunctional example. The token in a real URL usually grants access, so do not share it publicly or include it in screenshots. If you have individual server details, choose the appropriate protocol under Type in Add Server and enter the address, port, authentication, and transport settings provided by your service provider. Do not force them into a Subscribe entry.
- Subscription update failed: Check that the URL is complete and has not expired, and that your current network can reach it. Reinstalling the client is usually unnecessary.
- Subscription imported, but connection fails: Check the server status, authentication details, and transport settings. Importing entries successfully does not mean the server connection works.
- VPN request canceled: Start the connection again and read the system prompt. If another VPN connection is active, check whether you need to switch.
- Start troubleshooting: Establish one stable connection manually before setting up automatic connection conditions. This avoids introducing multiple variables at once.
6. Check routing and connection after installation
Global Routing controls how traffic is routed; it does not fix an APK installation or fill in missing server authentication details. Use the comparisons below to verify the connection after installation. “Traffic” here means traffic handled by Shadowrocket. App-specific routing, system restrictions, and local network settings may still affect what is covered.
Config
RecommendedRules in the active Config are matched in order, and traffic follows the policy that matches. The result depends on rule order, policy definitions, and the FINAL setting; unmatched traffic does not necessarily go direct.
Best for: everyday rule-based routing with a correctly configured Config
Proxy
Routes handled traffic through a proxy instead of applying rules from the active Config one by one. This can help test whether a server is reachable, but it cannot fix incorrect authentication or transport settings.
Best for: briefly distinguishing rule issues from proxy connection issues
Direct
Connects handled traffic directly to its destination without using a proxy server. If a website loads after switching, that only confirms the destination is reachable over the current direct connection.
Best for: comparing direct access between your local network and a destination
Scene
Uses the routing setup defined by the configured scene conditions; check those conditions first. This is not a universal test mode that selects a server for you without configuration.
Best for: environments where scene conditions have already been set up and checked
If Proxy connects but only certain destinations fail under Config, first check the relevant domain rules, policy names, and fallback rule in the active Config. For example, the rule snippet below handles domain suffixes, IPs in China, and remaining traffic in that order. It assumes the Config has a working PROXY policy. This is a rules snippet, not a complete configuration file to replace your entire Config.
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY
To connect automatically, go to Settings → On Demand and check the available triggers, then enable those that match your network conditions. On Demand controls when to connect; it is not Android’s “Allow installation of unknown apps” setting or a subscription update switch. If the connection drops when the screen locks or the network changes, check background activity restrictions under System Settings → Apps → Shadowrocket → Battery and adjust them according to the device’s prompts.
- Download failure: Check browser downloads, network access, and storage. Do not change Global Routing.
- Installation failure: Check source permission, whether the file finished downloading, and compatibility. Do not modify the subscription.
- Connection failure: Check VPN permission, existing server details, and the active Config. Do not repeatedly reinstall the APK.