Compare commits

...
6 Commits
Author SHA1 Message Date
Max Lv 3dff421867 Bump version 2018-03-29 19:39:19 -07:00
Mygod 6dadff9736 Use underlying network only since Android P
Fixes #1706.
2018-03-29 19:31:29 -07:00
Mygod 35d3707ff2 Update dependencies 2018-03-29 19:21:39 -07:00
Max Lv 43611850be Merge pull request #1696 from gam2046/master
Fix building with Windows. #1684
2018-03-29 09:19:23 +08:00
forDream 207d76a143 elegant variables 2018-03-22 22:21:26 +08:00
forDream f79471407f Fix building with Windows. #1684
Signed-off-by: forDream <gam2046@users.noreply.github.com>
2018-03-22 15:36:26 +08:00
5 changed files with 37 additions and 17 deletions
+4 -4
View File
@@ -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
View File
@@ -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"
+18 -4
View File
@@ -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
View File
@@ -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"),