Run tun2socks in seprate process for now
This commit is contained in:
@@ -23,6 +23,7 @@ local.sbt
|
||||
out/
|
||||
|
||||
#NDK
|
||||
src/main/obj
|
||||
src/main/libs
|
||||
src/main/assets/armeabi
|
||||
src/main/assets/armeabi-v7a
|
||||
|
||||
@@ -18,5 +18,6 @@ install:
|
||||
- echo "y" | android update sdk --filter extra-android-m2repository --no-ui --no-https -a
|
||||
script:
|
||||
- cp local.properties.travis local.properties
|
||||
- ./build.sh
|
||||
- sbt android:package-release
|
||||
- exit 0
|
||||
|
||||
@@ -28,6 +28,9 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
|
||||
|
||||
```bash
|
||||
git submodule update --init
|
||||
|
||||
# Build native binaries
|
||||
./build.sh
|
||||
|
||||
# Build the App
|
||||
sbt clean android:package-release
|
||||
@@ -47,6 +50,9 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
|
||||
```bash
|
||||
git submodule update --init
|
||||
|
||||
# Build native binaries
|
||||
./build.sh
|
||||
|
||||
# Build the apk
|
||||
sbt clean android:package-release
|
||||
```
|
||||
|
||||
@@ -15,7 +15,7 @@ rm -rf assets/armeabi-v7a
|
||||
rm -rf assets/x86
|
||||
mkdir -p assets/armeabi-v7a
|
||||
mkdir -p assets/x86
|
||||
for app in pdnsd redsocks ss-local ss-tunnel tun2socks
|
||||
for app in pdnsd redsocks ss-local ss-tunnel
|
||||
do
|
||||
try mv libs/armeabi-v7a/$app assets/armeabi-v7a/
|
||||
try mv libs/x86/$app assets/x86/
|
||||
|
||||
+3
-1
@@ -2,4 +2,6 @@ resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifact
|
||||
|
||||
addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.3.10")
|
||||
|
||||
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")
|
||||
resolvers += Resolver.sbtPluginRepo("snapshots")
|
||||
|
||||
addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.7.0-SNAPSHOT")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.github.shadowsocks"
|
||||
android:versionCode="84"
|
||||
android:versionName="2.4.4">
|
||||
android:versionCode="85"
|
||||
android:versionName="2.4.5">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:debuggable="true"
|
||||
android:name=".ShadowsocksApplication"
|
||||
android:hardwareAccelerated="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
|
||||
@@ -40,7 +40,7 @@ package com.github.shadowsocks;
|
||||
|
||||
public class Tun2Socks {
|
||||
static {
|
||||
java.lang.System.loadLibrary("tun2socks-jni");
|
||||
java.lang.System.loadLibrary("tun2socks");
|
||||
}
|
||||
|
||||
public static native void start(String[] cmd);
|
||||
|
||||
@@ -214,7 +214,7 @@ LOCAL_CFLAGS += -DBADVPN_THREADWORK_USE_PTHREAD -DBADVPN_LINUX -DBADVPN_BREACTOR
|
||||
LOCAL_CFLAGS += -DBADVPN_USE_SELFPIPE -DBADVPN_USE_EPOLL
|
||||
LOCAL_CFLAGS += -DBADVPN_LITTLE_ENDIAN -DBADVPN_THREAD_SAFE
|
||||
LOCAL_CFLAGS += -DNDEBUG -DANDROID
|
||||
#LOCAL_CFLAGS += -DTUN2SOCKS_JNI
|
||||
LOCAL_CFLAGS += -DTUN2SOCKS_JNI
|
||||
|
||||
LOCAL_C_INCLUDES:= \
|
||||
$(LOCAL_PATH)/badvpn/lwip/src/include/ipv4 \
|
||||
@@ -288,9 +288,9 @@ LOCAL_MODULE := tun2socks
|
||||
|
||||
LOCAL_LDLIBS := -ldl -llog
|
||||
|
||||
LOCAL_SRC_FILES := $(addprefix badvpn/, $(TUN2SOCKS_SOURCES))
|
||||
LOCAL_SRC_FILES := $(addprefix badvpn/, $(TUN2SOCKS_SOURCES)) tun2socks-jni.cpp
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
# OpenSSL
|
||||
openssl_subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -123,7 +123,7 @@ object Shadowsocks {
|
||||
val FEATRUE_PREFS = Array(Key.route, Key.isGlobalProxy, Key.proxyedApps,
|
||||
Key.isUdpDns, Key.isAutoConnect)
|
||||
|
||||
val EXECUTABLES = Array(Executable.PDNSD, Executable.REDSOCKS, Executable.SS_TUNNEL, Executable.SS_LOCAL, Executable.TUN2SOCKS)
|
||||
val EXECUTABLES = Array(Executable.PDNSD, Executable.REDSOCKS, Executable.SS_TUNNEL, Executable.SS_LOCAL)
|
||||
|
||||
// Helper functions
|
||||
def updateListPreference(pref: Preference, value: String) {
|
||||
|
||||
@@ -45,7 +45,7 @@ import java.net.InetAddress
|
||||
import android.app._
|
||||
import android.content._
|
||||
import android.content.pm.{PackageInfo, PackageManager}
|
||||
import android.net.{VpnService, LocalSocket, LocalSocketAddress}
|
||||
import android.net.{LocalServerSocket, VpnService, LocalSocket, LocalSocketAddress}
|
||||
import android.os._
|
||||
import android.support.v4.app.NotificationCompat
|
||||
import android.util.Log
|
||||
@@ -322,23 +322,25 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
|
||||
if (BuildConfig.DEBUG) Log.d(TAG, cmd)
|
||||
|
||||
Console.runCommand(cmd)
|
||||
Tun2Socks.start(cmd.split(" "))
|
||||
}
|
||||
|
||||
Thread.sleep(300)
|
||||
|
||||
// try {
|
||||
val localSocket = new LocalSocket()
|
||||
localSocket.setFileDescriptorsForSend(Array(conn.getFileDescriptor))
|
||||
val localAddr = new LocalSocketAddress("tun2socks")
|
||||
localSocket.connect(localAddr)
|
||||
val output = localSocket.getOutputStream
|
||||
output.write(1)
|
||||
output.flush()
|
||||
output.close()
|
||||
localSocket.close()
|
||||
// } catch {
|
||||
// case ex: Exception => // Ignored
|
||||
// }
|
||||
def startTunFdServer() {
|
||||
spawn {
|
||||
val fdServer = new LocalServerSocket("tun2socks")
|
||||
try {
|
||||
val localSocket = fdServer.accept()
|
||||
localSocket.setFileDescriptorsForSend(Array(conn.getFileDescriptor))
|
||||
val output = localSocket.getOutputStream
|
||||
output.write(1)
|
||||
output.flush()
|
||||
output.close()
|
||||
localSocket.close()
|
||||
fdServer.close()
|
||||
} catch {
|
||||
case ex: Exception => Log.e(TAG, "Exception", ex) // Ignored
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Called when the activity is first created. */
|
||||
|
||||
Reference in New Issue
Block a user