Cannot connect to server:
- Stop battery saver if it's active;
- Check your config;
- Wipe app data.
Crash: Submit an issue with logcat attached, or submit a crash report to Google Play. Then, try wiping app data.
Use Tasker integration.
- Requiring ROOT permission;
- No IPv6 support;
- No UDP relay support.
The exclamation mark in the Wi-Fi/cellular icon appears because the system fails to connect to portal server (defaults to clients3.google.com
) without VPN connection. To remove it, follow the instructions in this article. (in Simplified Chinese)
- Some ROM has broken VPNService implementation, especially for IPv6;
- Some ROM has aggressive (or called broken) background service killing policy;
- Some ROM like Flyme has very broken direct boot support;
- If you have Xposed framework and/or battery saver apps, it's likely that this app wouldn't work well with these either.
- Fixes for MIUI: #772
- Fixes for EMUI: #888
- Fixes for Huawei: #1091 (comment)
- Related to Xposed: #1414
- Samsung and/or Brevent: #1410
- Another Samsung: #1712
- Don't install this app on SD card because of permission issues: #1124 (comment)
INTERACT_ACROSS_USERS
permission missing: #1184
- For Android 7.0+: Use quick switch tile in Quick Settings;
- Use Tasker integration;
- Add a profile with per-app proxy enabled for Shadowsocks only, bypass mode off.
As Shadowsocks takes over the whole device network, any battery used by network activities from other apps are also counted as those from Shadowsocks. So, the battery usage of Shadowsocks equals to the sum of all the network activities of your device. Shadowsocks itself is a totally I/O bound application on modern Android devices, which is expected not to consume any notable battery.
So if you notice a significant increase in battery usage after you use Shadowsocks, it's most likely caused by other apps. For example, Google Play services can consume more battery after being able to connecting to Google, etc.
More details: https://kb.adguard.com/en/android/solving-problems/battery
Allow this app to consume background data in app settings.
To scan the QR code through the integrated QR scanner.
By the way, upgrade your Android system already.
- Install AFWall+;
- Set custom script:
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables
ULIMIT=/system/bin/ulimit
SHADOWSOCKS_UID=`dumpsys package com.github.shadowsocks | grep userId | cut -d= -f2 - | cut -d' ' -f1 -`
PORT_DNS=5450
PORT_TRANSPROXY=8200
$ULIMIT -n 4096
$IP6TABLES -F
$IP6TABLES -A INPUT -j DROP
$IP6TABLES -A OUTPUT -j DROP
$IPTABLES -t nat -F OUTPUT
$IPTABLES -t nat -A OUTPUT -o lo -j RETURN
$IPTABLES -t nat -A OUTPUT -d 127.0.0.1 -j RETURN
$IPTABLES -t nat -A OUTPUT -m owner --uid-owner $SHADOWSOCKS_UID -j RETURN
$IPTABLES -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:$PORT_DNS
$IPTABLES -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:$PORT_DNS
$IPTABLES -t nat -A OUTPUT -p tcp -j DNAT --to-destination 127.0.0.1:$PORT_TRANSPROXY
$IPTABLES -t nat -A OUTPUT -p udp -j DNAT --to-destination 127.0.0.1:$PORT_TRANSPROXY
- Set custom shutdown script:
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables
$IPTABLES -t nat -F OUTPUT
$IP6TABLES -F
- Make sure to allow traffic for Shadowsocks;
- Start Shadowsocks transproxy service and enable firewall.