Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3dff421867 | ||
|
|
6dadff9736 | ||
|
|
35d3707ff2 | ||
|
|
43611850be | ||
|
|
207d76a143 | ||
|
|
f79471407f |
+4
-4
@@ -4,13 +4,13 @@ apply plugin: 'com.github.ben-manes.versions'
|
|||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
kotlinVersion = '1.2.30'
|
kotlinVersion = '1.2.31'
|
||||||
minSdkVersion = 21
|
minSdkVersion = 21
|
||||||
sdkVersion = 27
|
sdkVersion = 27
|
||||||
buildToolsVersion = '27.0.3'
|
buildToolsVersion = '27.0.3'
|
||||||
supportLibraryVersion = '27.1.0'
|
supportLibraryVersion = '27.1.0'
|
||||||
takisoftFixVersion = '27.1.0.0'
|
takisoftFixVersion = '27.1.0.0'
|
||||||
playServicesVersion = '11.8.0'
|
playServicesVersion = '12.0.1'
|
||||||
junitVersion = '4.12'
|
junitVersion = '4.12'
|
||||||
androidTestVersion = '1.0.1'
|
androidTestVersion = '1.0.1'
|
||||||
androidEspressoVersion = '3.0.1'
|
androidEspressoVersion = '3.0.1'
|
||||||
@@ -22,9 +22,9 @@ buildscript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.0.1'
|
classpath 'com.android.tools.build:gradle:3.1.0'
|
||||||
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
|
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
|
||||||
classpath 'com.google.gms:google-services:3.2.0'
|
classpath 'com.google.gms:google-services:3.2.1'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@ android {
|
|||||||
task goBuild(type: Exec) {
|
task goBuild(type: Exec) {
|
||||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
executable "cmd.exe"
|
executable "cmd.exe"
|
||||||
args "/c", "src\\overture\\make.bat " + minSdkVersion
|
args "/c", file("src/overture/make.bat").absolutePath , minSdkVersion
|
||||||
} else {
|
} else {
|
||||||
executable "sh"
|
executable "sh"
|
||||||
args "-c", "src/overture/make.bash " + minSdkVersion
|
args "-c", "src/overture/make.bash " + minSdkVersion
|
||||||
@@ -48,7 +48,7 @@ task goBuild(type: Exec) {
|
|||||||
task goClean(type: Exec) {
|
task goClean(type: Exec) {
|
||||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
executable "cmd.exe"
|
executable "cmd.exe"
|
||||||
args "/c", "src\\overture\\clean.bat"
|
args "/c", file("src/overture/clean.bat").absolutePath
|
||||||
} else {
|
} else {
|
||||||
executable "sh"
|
executable "sh"
|
||||||
args "-c", "src/overture/clean.bash"
|
args "-c", "src/overture/clean.bash"
|
||||||
|
|||||||
@@ -28,21 +28,35 @@ MKDIR %TARGET%\armeabi-v7a>nul 2>nul
|
|||||||
MKDIR %TARGET%\x86>nul 2>nul
|
MKDIR %TARGET%\x86>nul 2>nul
|
||||||
MKDIR %TARGET%\arm64-v8a>nul 2>nul
|
MKDIR %TARGET%\arm64-v8a>nul 2>nul
|
||||||
|
|
||||||
|
SET CC=%ANDROID_ARM_TOOLCHAIN%\bin\arm-linux-androideabi-gcc.exe
|
||||||
|
|
||||||
|
REM Check environment availability
|
||||||
|
IF NOT EXIST %CC% (
|
||||||
|
ECHO "gcc not found"
|
||||||
|
EXIT 1
|
||||||
|
)
|
||||||
|
|
||||||
|
WHERE python.exe
|
||||||
|
IF "%ERRORLEVEL%" == 1 (
|
||||||
|
ECHO "python not found"
|
||||||
|
EXIT 1
|
||||||
|
)
|
||||||
|
|
||||||
IF NOT EXIST %ANDROID_ARM_CC% (
|
IF NOT EXIST %ANDROID_ARM_CC% (
|
||||||
ECHO "Make standalone toolchain for ARM arch"
|
ECHO "Make standalone toolchain for ARM arch"
|
||||||
%ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch arm ^
|
python.exe %ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch arm ^
|
||||||
--api %MIN_API% --install-dir %ANDROID_ARM_TOOLCHAIN%
|
--api %MIN_API% --install-dir %ANDROID_ARM_TOOLCHAIN%
|
||||||
)
|
)
|
||||||
|
|
||||||
IF NOT EXIST %ANDROID_ARM64_CC% (
|
IF NOT EXIST %ANDROID_ARM64_CC% (
|
||||||
ECHO "Make standalone toolchain for ARM64 arch"
|
ECHO "Make standalone toolchain for ARM64 arch"
|
||||||
%ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch arm64 ^
|
python.exe %ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch arm64 ^
|
||||||
--api %MIN_API% --install-dir %ANDROID_ARM64_TOOLCHAIN%
|
--api %MIN_API% --install-dir %ANDROID_ARM64_TOOLCHAIN%
|
||||||
)
|
)
|
||||||
|
|
||||||
IF NOT EXIST %ANDROID_X86_CC% (
|
IF NOT EXIST %ANDROID_X86_CC% (
|
||||||
ECHO "Make standalone toolchain for X86 arch"
|
ECHO "Make standalone toolchain for X86 arch"
|
||||||
%ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch x86 ^
|
python.exe %ANDROID_NDK_HOME%\build\tools\make_standalone_toolchain.py --arch x86 ^
|
||||||
--api %MIN_API% --install-dir %ANDROID_X86_TOOLCHAIN%
|
--api %MIN_API% --install-dir %ANDROID_X86_TOOLCHAIN%
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -118,4 +132,4 @@ IF %BUILD% == 1 (
|
|||||||
)
|
)
|
||||||
|
|
||||||
ECHO "Successfully build overture"
|
ECHO "Successfully build overture"
|
||||||
ENDLOCAL
|
ENDLOCAL
|
||||||
|
|||||||
+3
-3
@@ -21,8 +21,8 @@ android {
|
|||||||
applicationId "com.github.shadowsocks"
|
applicationId "com.github.shadowsocks"
|
||||||
minSdkVersion rootProject.minSdkVersion
|
minSdkVersion rootProject.minSdkVersion
|
||||||
targetSdkVersion rootProject.sdkVersion
|
targetSdkVersion rootProject.sdkVersion
|
||||||
versionCode 4050200
|
versionCode 4050300
|
||||||
versionName "4.5.2"
|
versionName "4.5.3"
|
||||||
testApplicationId "com.github.shadowsocks.test"
|
testApplicationId "com.github.shadowsocks.test"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
resConfigs "fa", "fr", "ja", "ko", "ru", "zh-rCN", "zh-rTW"
|
resConfigs "fa", "fr", "ja", "ko", "ru", "zh-rCN", "zh-rTW"
|
||||||
@@ -58,7 +58,7 @@ dependencies {
|
|||||||
implementation "com.android.support:design:$supportLibraryVersion"
|
implementation "com.android.support:design:$supportLibraryVersion"
|
||||||
implementation "com.android.support:gridlayout-v7:$supportLibraryVersion"
|
implementation "com.android.support:gridlayout-v7:$supportLibraryVersion"
|
||||||
implementation 'com.futuremind.recyclerfastscroll:fastscroll:0.2.5'
|
implementation 'com.futuremind.recyclerfastscroll:fastscroll:0.2.5'
|
||||||
implementation 'com.evernote:android-job:1.2.4'
|
implementation 'com.evernote:android-job:1.2.5'
|
||||||
implementation "com.google.android.gms:play-services-ads:$playServicesVersion"
|
implementation "com.google.android.gms:play-services-ads:$playServicesVersion"
|
||||||
implementation "com.google.android.gms:play-services-analytics:$playServicesVersion"
|
implementation "com.google.android.gms:play-services-analytics:$playServicesVersion"
|
||||||
implementation "com.google.android.gms:play-services-vision:$playServicesVersion"
|
implementation "com.google.android.gms:play-services-vision:$playServicesVersion"
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
package com.github.shadowsocks.bg
|
package com.github.shadowsocks.bg
|
||||||
|
|
||||||
|
import android.annotation.TargetApi
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -28,6 +29,7 @@ import android.net.*
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.os.ParcelFileDescriptor
|
import android.os.ParcelFileDescriptor
|
||||||
|
import android.support.v4.os.BuildCompat
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.github.shadowsocks.App.Companion.app
|
import com.github.shadowsocks.App.Companion.app
|
||||||
import com.github.shadowsocks.JniHelper
|
import com.github.shadowsocks.JniHelper
|
||||||
@@ -116,12 +118,14 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface {
|
|||||||
private var worker: ProtectWorker? = null
|
private var worker: ProtectWorker? = null
|
||||||
private var tun2socksProcess: GuardedProcess? = null
|
private var tun2socksProcess: GuardedProcess? = null
|
||||||
private var underlyingNetwork: Network? = null
|
private var underlyingNetwork: Network? = null
|
||||||
|
@TargetApi(28)
|
||||||
set(value) {
|
set(value) {
|
||||||
if (Build.VERSION.SDK_INT >= 22) setUnderlyingNetworks(if (value == null) null else arrayOf(value))
|
setUnderlyingNetworks(if (value == null) null else arrayOf(value))
|
||||||
field = value
|
field = value
|
||||||
}
|
}
|
||||||
|
|
||||||
private val connectivity by lazy { getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager }
|
private val connectivity by lazy { getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager }
|
||||||
|
@TargetApi(28)
|
||||||
private val defaultNetworkCallback = object : ConnectivityManager.NetworkCallback() {
|
private val defaultNetworkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||||
override fun onAvailable(network: Network) {
|
override fun onAvailable(network: Network) {
|
||||||
underlyingNetwork = network
|
underlyingNetwork = network
|
||||||
@@ -229,9 +233,11 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface {
|
|||||||
this.conn = conn
|
this.conn = conn
|
||||||
val fd = conn.fd
|
val fd = conn.fd
|
||||||
|
|
||||||
// we want REQUEST here instead of LISTEN
|
if (BuildCompat.isAtLeastP()) {
|
||||||
connectivity.requestNetwork(defaultNetworkRequest, defaultNetworkCallback)
|
// we want REQUEST here instead of LISTEN
|
||||||
listeningForDefaultNetwork = true
|
connectivity.requestNetwork(defaultNetworkRequest, defaultNetworkCallback)
|
||||||
|
listeningForDefaultNetwork = true
|
||||||
|
}
|
||||||
|
|
||||||
val cmd = arrayListOf(File(applicationInfo.nativeLibraryDir, Executable.TUN2SOCKS).absolutePath,
|
val cmd = arrayListOf(File(applicationInfo.nativeLibraryDir, Executable.TUN2SOCKS).absolutePath,
|
||||||
"--netif-ipaddr", PRIVATE_VLAN.format(Locale.ENGLISH, "2"),
|
"--netif-ipaddr", PRIVATE_VLAN.format(Locale.ENGLISH, "2"),
|
||||||
|
|||||||
Reference in New Issue
Block a user