Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be168c77f6 | ||
|
|
f9b29acd82 | ||
|
|
4e943bc782 | ||
|
|
b3a818b03a | ||
|
|
982845e877 | ||
|
|
4e35fe19c8 | ||
|
|
45d8e827c1 | ||
|
|
90dd0ab300 | ||
|
|
dee540b83a | ||
|
|
f3b3507c0f | ||
|
|
402710841b |
+5
-3
@@ -34,10 +34,10 @@
|
||||
3. Если вы используете фреймворк Xposed и/или приложения для энергосбережения, вероятно наше приложение не будет нормально работать с ними.
|
||||
|
||||
* Иправления для MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
|
||||
* Иправления для Huawei: [#1091 (comment)](https://github.com/shadowsocks/shadowsocks-android/issues/1091#issuecomment-276949836)
|
||||
* Иправления для Huawei: [#1091 (комментарий)](https://github.com/shadowsocks/shadowsocks-android/issues/1091#issuecomment-276949836)
|
||||
* Вызванные из-за Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
|
||||
* Samsung и/или Brevent: [#1410](https://github.com/shadowsocks/shadowsocks-android/issues/1410)
|
||||
* Не устанавливайте это приложение на SD карту, из-за проблем с разрешениями: [#1124 (comment)](https://github.com/shadowsocks/shadowsocks-android/issues/1124#issuecomment-307556453)
|
||||
* Не устанавливайте это приложение на SD карту, из-за проблем с разрешениями: [#1124 (комментарий)](https://github.com/shadowsocks/shadowsocks-android/issues/1124#issuecomment-307556453)
|
||||
|
||||
### Как приостановить службу Shadowsocks?
|
||||
|
||||
@@ -55,7 +55,9 @@
|
||||
|
||||
### Оно прекрасно работает при Wi-Fi но не может подключиться через сотовую связь?
|
||||
|
||||
Разрешите этому app to consume background data in app settings.
|
||||
Разрешите этому приложению передачу данных в фоновом режиме в настройках приложения.
|
||||
|
||||
Если у вас оперератор Yota, то измените точку доступа APN с `yota.ru` на `client.yota.ru`
|
||||
|
||||
### Почему требуется разрешение камере на устройствах младше Android 6.0?
|
||||
|
||||
|
||||
+15
-6
@@ -36,19 +36,28 @@ android {
|
||||
}
|
||||
|
||||
task goBuild(type: Exec) {
|
||||
executable "sh"
|
||||
args "-c", "src/overture/make.bash " + minSdkVersion
|
||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||
executable "cmd.exe"
|
||||
args "/c", "src/overture/make.bat " + minSdkVersion
|
||||
} else {
|
||||
executable "sh"
|
||||
args "-c", "src/overture/make.bash " + minSdkVersion
|
||||
}
|
||||
}
|
||||
|
||||
task goClean(type: Exec) {
|
||||
executable "sh"
|
||||
args "-c", "src/overture/clean.bash"
|
||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||
executable "cmd.exe"
|
||||
args "/c", "src/overture/clean.bat"
|
||||
} else {
|
||||
executable "sh"
|
||||
args "-c", "src/overture/clean.bash"
|
||||
}
|
||||
}
|
||||
|
||||
tasks.whenTaskAdded { task ->
|
||||
if ((task.name == 'generateJsonModelDebug' ||
|
||||
task.name == 'generateJsonModelRelease') &&
|
||||
!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||
task.name == 'generateJsonModelRelease')) {
|
||||
task.dependsOn(goBuild)
|
||||
}
|
||||
}
|
||||
|
||||
Submodule core/src/main/jni/shadowsocks-libev updated: cba94db423...6040be9d0a
@@ -0,0 +1,10 @@
|
||||
@ECHO OFF
|
||||
|
||||
SET DIR=%CD%
|
||||
SET DEPS=%DIR%\.deps
|
||||
|
||||
RD /SQ %DEPS%
|
||||
RD /SQ %DIR%\go\bin
|
||||
RD /SQ %DIR%\bin
|
||||
|
||||
ECHO "Successfully clean overture"
|
||||
@@ -0,0 +1,121 @@
|
||||
@ECHO OFF
|
||||
SETLOCAL
|
||||
|
||||
IF NOT DEFINED ANDROID_NDK_HOME (
|
||||
SET ANDROID_NDK_HOME=%ANDROID_HOME%\ndk-bundle
|
||||
)
|
||||
|
||||
SET DIR=%CD%
|
||||
SET MIN_API=%1%
|
||||
SET TARGET=%DIR%\bin
|
||||
SET DEPS=%DIR%\.deps
|
||||
|
||||
SET ANDROID_ARM_TOOLCHAIN=%DEPS%\android-toolchain-%MIN_API%-arm
|
||||
SET ANDROID_ARM64_TOOLCHAIN=%DEPS%\android-toolchain-21-arm64
|
||||
SET ANDROID_X86_TOOLCHAIN=%DEPS%\android-toolchain-%MIN_API%-x86
|
||||
|
||||
SET ANDROID_ARM_CC=%ANDROID_ARM_TOOLCHAIN%\bin\arm-linux-androideabi-clang
|
||||
SET ANDROID_ARM_STRIP=%ANDROID_ARM_TOOLCHAIN%\bin\arm-linux-androideabi-strip
|
||||
|
||||
SET ANDROID_ARM64_CC=%ANDROID_ARM64_TOOLCHAIN%\bin\aarch64-linux-android-clang
|
||||
SET ANDROID_ARM64_STRIP=%ANDROID_ARM64_TOOLCHAIN%\bin\aarch64-linux-android-strip
|
||||
|
||||
SET ANDROID_X86_CC=%ANDROID_X86_TOOLCHAIN%\bin\i686-linux-android-clang
|
||||
SET ANDROID_X86_STRIP=%ANDROID_X86_TOOLCHAIN%\bin\i686-linux-android-strip
|
||||
|
||||
MKDIR %DEPS%>nul 2>nul
|
||||
MKDIR %TARGET%\armeabi-v7a>nul 2>nul
|
||||
MKDIR %TARGET%\x86>nul 2>nul
|
||||
MKDIR %TARGET%\arm64-v8a>nul 2>nul
|
||||
|
||||
IF NOT EXIST %ANDROID_ARM_CC% (
|
||||
ECHO "Make standalone toolchain for ARM arch"
|
||||
%ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch arm ^
|
||||
--api %MIN_API% --install-dir %ANDROID_ARM_TOOLCHAIN%
|
||||
)
|
||||
|
||||
IF NOT EXIST %ANDROID_ARM64_CC% (
|
||||
ECHO "Make standalone toolchain for ARM64 arch"
|
||||
%ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch arm64 ^
|
||||
--api 21 --install-dir %ANDROID_ARM64_TOOLCHAIN%
|
||||
)
|
||||
|
||||
IF NOT EXIST %ANDROID_X86_CC% (
|
||||
ECHO "Make standalone toolchain for X86 arch"
|
||||
%ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch x86 ^
|
||||
--api %MIN_API% --install-dir %ANDROID_X86_TOOLCHAIN%
|
||||
)
|
||||
|
||||
IF NOT EXIST %DIR%\go\bin\go (
|
||||
ECHO "Build the custom go"
|
||||
|
||||
PUSHD %DIR%\go\src
|
||||
CALL make.bat
|
||||
POPD
|
||||
)
|
||||
|
||||
SET GOROOT=%DIR%\go
|
||||
SET GOPATH=%DIR%
|
||||
SET PATH=%GOROOT%\bin;%GOPATH%\bin;%PATH%
|
||||
|
||||
SET BUILD=1
|
||||
IF EXIST "%TARGET%\armeabi-v7a\liboverture.so" (
|
||||
IF EXIST "%TARGET%\arm64-v8a\liboverture.so" (
|
||||
IF EXIST "%TARGET%\x86\liboverture.so" (
|
||||
SET BUILD=0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
IF %BUILD% == 1 (
|
||||
ECHO "Get dependences for overture"
|
||||
go.exe get -u github.com\tools\godep
|
||||
|
||||
PUSHD %GOPATH%\src\github.com\shadowsocks\overture\main
|
||||
godep.exe restore
|
||||
|
||||
ECHO "Cross compile overture for arm"
|
||||
IF NOT EXIST "%TARGET%\armeabi-v7a\liboverture.so" (
|
||||
SETLOCAL
|
||||
SET CGO_ENABLED=1
|
||||
SET CC=%ANDROID_ARM_CC%
|
||||
SET GOOS=android
|
||||
SET GOARCH=arm
|
||||
SET GOARM=7
|
||||
go.exe build -ldflags="-s -w"
|
||||
%ANDROID_ARM_STRIP% main
|
||||
MOVE main %TARGET%\armeabi-v7a\liboverture.so>nul 2>nul
|
||||
ENDLOCAL
|
||||
)
|
||||
|
||||
ECHO "Cross compile overture for arm64"
|
||||
IF NOT EXIST "%TARGET%\arm64-v8a\liboverture.so" (
|
||||
SETLOCAL
|
||||
SET CGO_ENABLED=1
|
||||
SET CC=%ANDROID_ARM64_CC%
|
||||
SET GOOS=android
|
||||
SET GOARCH=arm64
|
||||
go.exe build -ldflags="-s -w"
|
||||
%ANDROID_ARM64_STRIP% main
|
||||
MOVE main %TARGET%\arm64-v8a\liboverture.so>nul 2>nul
|
||||
ENDLOCAL
|
||||
)
|
||||
|
||||
ECHO "Cross compile overture for x86"
|
||||
IF NOT EXIST "%TARGET%\x86\liboverture.so" (
|
||||
SETLOCAL
|
||||
SET CGO_ENABLED=1
|
||||
SET CC=%ANDROID_X86_CC%
|
||||
SET GOOS=android
|
||||
SET GOARCH=386
|
||||
go.exe build -ldflags="-s -w"
|
||||
%ANDROID_X86_STRIP% main
|
||||
MOVE main %TARGET%\x86\liboverture.so>nul 2>nul
|
||||
ENDLOCAL
|
||||
)
|
||||
|
||||
POPD
|
||||
)
|
||||
|
||||
ECHO "Successfully build overture"
|
||||
ENDLOCAL
|
||||
Submodule core/src/overture/src/github.com/shadowsocks/overture updated: fae912215d...445ca9003e
Vendored
BIN
Binary file not shown.
+1
-2
@@ -1,6 +1,5 @@
|
||||
#Fri Dec 01 17:03:17 PST 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
@@ -6,42 +6,6 @@
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
@@ -60,6 +24,46 @@ cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
@@ -85,7 +89,7 @@ location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
@@ -150,11 +154,19 @@ if $cygwin ; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
APP_ARGS=$(save "$@")
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
fi
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
|
||||
Vendored
+4
-10
@@ -8,14 +8,14 @@
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
@@ -46,10 +46,9 @@ echo location of your Java installation.
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
@@ -60,11 +59,6 @@ set _SKIP=2
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ android {
|
||||
applicationId "com.github.shadowsocks"
|
||||
minSdkVersion rootProject.minSdkVersion
|
||||
targetSdkVersion rootProject.sdkVersion
|
||||
versionCode 204
|
||||
versionName "4.4.4"
|
||||
versionCode 205
|
||||
versionName "4.4.5"
|
||||
testApplicationId "com.github.shadowsocks.test"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables.useSupportLibrary true
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,10 +4,13 @@
|
||||
|
||||
[proxy_list]
|
||||
# Telegram IPs$
|
||||
91.108.4.0/22
|
||||
91.108.56.0/23
|
||||
91.108.56.0/22
|
||||
91.108.4.0/22
|
||||
149.154.172.0/22
|
||||
149.154.168.0/22
|
||||
149.154.164.0/22
|
||||
109.239.140.0/24
|
||||
149.154.160.0/20
|
||||
(^|\.)4tern\.com$
|
||||
(^|\.)adorama\.com$
|
||||
(^|\.)akiba-web\.com$
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -203,6 +203,16 @@ class App : Application() {
|
||||
DataStore.publicStore.putLong(Key.assetUpdateTime, info.lastUpdateTime)
|
||||
}
|
||||
|
||||
updateNotificationChannels()
|
||||
}
|
||||
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
checkChineseLocale(newConfig)
|
||||
updateNotificationChannels()
|
||||
}
|
||||
|
||||
private fun updateNotificationChannels() {
|
||||
if (Build.VERSION.SDK_INT >= 26) @RequiresApi(26) {
|
||||
val nm = getSystemService(NotificationManager::class.java)
|
||||
nm.createNotificationChannels(listOf(
|
||||
@@ -216,11 +226,6 @@ class App : Application() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
checkChineseLocale(newConfig)
|
||||
}
|
||||
|
||||
fun listenForPackageChanges(callback: () -> Unit): BroadcastReceiver {
|
||||
val filter = IntentFilter(Intent.ACTION_PACKAGE_ADDED)
|
||||
filter.addAction(Intent.ACTION_PACKAGE_REMOVED)
|
||||
|
||||
@@ -54,7 +54,7 @@ object LocalDnsService {
|
||||
is Inet6Address -> "[$address]"
|
||||
else -> address
|
||||
}) + ":53")
|
||||
.put("Timeout", 6)
|
||||
.put("Timeout", 3)
|
||||
.put("EDNSClientSubnet", JSONObject().put("Policy", "disable"))
|
||||
if (edns) dns
|
||||
.put("Protocol", "tcp")
|
||||
@@ -70,7 +70,7 @@ object LocalDnsService {
|
||||
.put("RedirectIPv6Record", true)
|
||||
.put("DomainBase64Decode", false)
|
||||
.put("HostsFile", "hosts")
|
||||
.put("MinimumTTL", 3600)
|
||||
.put("MinimumTTL", 120)
|
||||
.put("CacheSize", 4096)
|
||||
val remoteDns = JSONArray(profile.remoteDns.split(",")
|
||||
.mapIndexed { i, dns -> makeDns("UserDef-" + i, dns.trim()) })
|
||||
|
||||
Reference in New Issue
Block a user