Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be168c77f6 | ||
|
|
f9b29acd82 | ||
|
|
4e943bc782 | ||
|
|
b3a818b03a | ||
|
|
982845e877 | ||
|
|
4e35fe19c8 | ||
|
|
45d8e827c1 | ||
|
|
90dd0ab300 | ||
|
|
dee540b83a | ||
|
|
f3b3507c0f | ||
|
|
402710841b |
+5
-3
@@ -34,10 +34,10 @@
|
|||||||
3. Если вы используете фреймворк Xposed и/или приложения для энергосбережения, вероятно наше приложение не будет нормально работать с ними.
|
3. Если вы используете фреймворк Xposed и/или приложения для энергосбережения, вероятно наше приложение не будет нормально работать с ними.
|
||||||
|
|
||||||
* Иправления для MIUI: [#772](https://github.com/shadowsocks/shadowsocks-android/issues/772)
|
* Иправления для 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)
|
* Вызванные из-за Xposed: [#1414](https://github.com/shadowsocks/shadowsocks-android/issues/1414)
|
||||||
* Samsung и/или Brevent: [#1410](https://github.com/shadowsocks/shadowsocks-android/issues/1410)
|
* 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?
|
### Как приостановить службу Shadowsocks?
|
||||||
|
|
||||||
@@ -55,7 +55,9 @@
|
|||||||
|
|
||||||
### Оно прекрасно работает при Wi-Fi но не может подключиться через сотовую связь?
|
### Оно прекрасно работает при Wi-Fi но не может подключиться через сотовую связь?
|
||||||
|
|
||||||
Разрешите этому app to consume background data in app settings.
|
Разрешите этому приложению передачу данных в фоновом режиме в настройках приложения.
|
||||||
|
|
||||||
|
Если у вас оперератор Yota, то измените точку доступа APN с `yota.ru` на `client.yota.ru`
|
||||||
|
|
||||||
### Почему требуется разрешение камере на устройствах младше Android 6.0?
|
### Почему требуется разрешение камере на устройствах младше Android 6.0?
|
||||||
|
|
||||||
|
|||||||
+15
-6
@@ -36,19 +36,28 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
task goBuild(type: Exec) {
|
task goBuild(type: Exec) {
|
||||||
executable "sh"
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
args "-c", "src/overture/make.bash " + minSdkVersion
|
executable "cmd.exe"
|
||||||
|
args "/c", "src/overture/make.bat " + minSdkVersion
|
||||||
|
} else {
|
||||||
|
executable "sh"
|
||||||
|
args "-c", "src/overture/make.bash " + minSdkVersion
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task goClean(type: Exec) {
|
task goClean(type: Exec) {
|
||||||
executable "sh"
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
args "-c", "src/overture/clean.bash"
|
executable "cmd.exe"
|
||||||
|
args "/c", "src/overture/clean.bat"
|
||||||
|
} else {
|
||||||
|
executable "sh"
|
||||||
|
args "-c", "src/overture/clean.bash"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.whenTaskAdded { task ->
|
tasks.whenTaskAdded { task ->
|
||||||
if ((task.name == 'generateJsonModelDebug' ||
|
if ((task.name == 'generateJsonModelDebug' ||
|
||||||
task.name == 'generateJsonModelRelease') &&
|
task.name == 'generateJsonModelRelease')) {
|
||||||
!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
||||||
task.dependsOn(goBuild)
|
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
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
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
|
# Attempt to set APP_HOME
|
||||||
# Resolve links: $0 may be a link
|
# Resolve links: $0 may be a link
|
||||||
PRG="$0"
|
PRG="$0"
|
||||||
@@ -60,6 +24,46 @@ cd "`dirname \"$PRG\"`/" >/dev/null
|
|||||||
APP_HOME="`pwd -P`"
|
APP_HOME="`pwd -P`"
|
||||||
cd "$SAVED" >/dev/null
|
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
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
@@ -85,7 +89,7 @@ location of your Java installation."
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
# 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`
|
MAX_FD_LIMIT=`ulimit -H -n`
|
||||||
if [ $? -eq 0 ] ; then
|
if [ $? -eq 0 ] ; then
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||||
@@ -150,11 +154,19 @@ if $cygwin ; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
# Escape application args
|
||||||
function splitJvmOpts() {
|
save () {
|
||||||
JVM_OPTS=("$@")
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
|
echo " "
|
||||||
}
|
}
|
||||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
APP_ARGS=$(save "$@")
|
||||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
|
||||||
|
|
||||||
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
|
@rem Set local scope for the variables with windows NT shell
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
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
|
set DIRNAME=%~dp0
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
if "%DIRNAME%" == "" set DIRNAME=.
|
||||||
set APP_BASE_NAME=%~n0
|
set APP_BASE_NAME=%~n0
|
||||||
set APP_HOME=%DIRNAME%
|
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
|
@rem Find java.exe
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
@@ -46,10 +46,9 @@ echo location of your Java installation.
|
|||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:init
|
: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 not "%OS%" == "Windows_NT" goto win9xME_args
|
||||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
|
||||||
|
|
||||||
:win9xME_args
|
:win9xME_args
|
||||||
@rem Slurp the command line arguments.
|
@rem Slurp the command line arguments.
|
||||||
@@ -60,11 +59,6 @@ set _SKIP=2
|
|||||||
if "x%~1" == "x" goto execute
|
if "x%~1" == "x" goto execute
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
set CMD_LINE_ARGS=%*
|
||||||
goto execute
|
|
||||||
|
|
||||||
:4NT_args
|
|
||||||
@rem Get arguments from the 4NT Shell from JP Software
|
|
||||||
set CMD_LINE_ARGS=%$
|
|
||||||
|
|
||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|||||||
+2
-2
@@ -20,8 +20,8 @@ android {
|
|||||||
applicationId "com.github.shadowsocks"
|
applicationId "com.github.shadowsocks"
|
||||||
minSdkVersion rootProject.minSdkVersion
|
minSdkVersion rootProject.minSdkVersion
|
||||||
targetSdkVersion rootProject.sdkVersion
|
targetSdkVersion rootProject.sdkVersion
|
||||||
versionCode 204
|
versionCode 205
|
||||||
versionName "4.4.4"
|
versionName "4.4.5"
|
||||||
testApplicationId "com.github.shadowsocks.test"
|
testApplicationId "com.github.shadowsocks.test"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary true
|
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]
|
[proxy_list]
|
||||||
# Telegram IPs$
|
# Telegram IPs$
|
||||||
91.108.4.0/22
|
91.108.56.0/23
|
||||||
91.108.56.0/22
|
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
|
109.239.140.0/24
|
||||||
149.154.160.0/20
|
|
||||||
(^|\.)4tern\.com$
|
(^|\.)4tern\.com$
|
||||||
(^|\.)adorama\.com$
|
(^|\.)adorama\.com$
|
||||||
(^|\.)akiba-web\.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)
|
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) {
|
if (Build.VERSION.SDK_INT >= 26) @RequiresApi(26) {
|
||||||
val nm = getSystemService(NotificationManager::class.java)
|
val nm = getSystemService(NotificationManager::class.java)
|
||||||
nm.createNotificationChannels(listOf(
|
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 {
|
fun listenForPackageChanges(callback: () -> Unit): BroadcastReceiver {
|
||||||
val filter = IntentFilter(Intent.ACTION_PACKAGE_ADDED)
|
val filter = IntentFilter(Intent.ACTION_PACKAGE_ADDED)
|
||||||
filter.addAction(Intent.ACTION_PACKAGE_REMOVED)
|
filter.addAction(Intent.ACTION_PACKAGE_REMOVED)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ object LocalDnsService {
|
|||||||
is Inet6Address -> "[$address]"
|
is Inet6Address -> "[$address]"
|
||||||
else -> address
|
else -> address
|
||||||
}) + ":53")
|
}) + ":53")
|
||||||
.put("Timeout", 6)
|
.put("Timeout", 3)
|
||||||
.put("EDNSClientSubnet", JSONObject().put("Policy", "disable"))
|
.put("EDNSClientSubnet", JSONObject().put("Policy", "disable"))
|
||||||
if (edns) dns
|
if (edns) dns
|
||||||
.put("Protocol", "tcp")
|
.put("Protocol", "tcp")
|
||||||
@@ -70,7 +70,7 @@ object LocalDnsService {
|
|||||||
.put("RedirectIPv6Record", true)
|
.put("RedirectIPv6Record", true)
|
||||||
.put("DomainBase64Decode", false)
|
.put("DomainBase64Decode", false)
|
||||||
.put("HostsFile", "hosts")
|
.put("HostsFile", "hosts")
|
||||||
.put("MinimumTTL", 3600)
|
.put("MinimumTTL", 120)
|
||||||
.put("CacheSize", 4096)
|
.put("CacheSize", 4096)
|
||||||
val remoteDns = JSONArray(profile.remoteDns.split(",")
|
val remoteDns = JSONArray(profile.remoteDns.split(",")
|
||||||
.mapIndexed { i, dns -> makeDns("UserDef-" + i, dns.trim()) })
|
.mapIndexed { i, dns -> makeDns("UserDef-" + i, dns.trim()) })
|
||||||
|
|||||||
Reference in New Issue
Block a user