Migrate to Android 6.0 (1)
This commit is contained in:
@@ -1,15 +1,17 @@
|
||||
import android.Keys._
|
||||
|
||||
import android.Dependencies.{apklib,aar}
|
||||
|
||||
android.Plugin.androidBuild
|
||||
|
||||
platformTarget in Android := "android-21"
|
||||
platformTarget in Android := "android-22"
|
||||
|
||||
name := "shadowsocks"
|
||||
|
||||
compileOrder in Compile := CompileOrder.JavaThenScala
|
||||
|
||||
javacOptions ++= Seq("-source", "1.6", "-target", "1.6")
|
||||
|
||||
scalacOptions += "-target:jvm-1.6"
|
||||
|
||||
ndkJavah in Android := List()
|
||||
|
||||
ndkBuild in Android := List()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="16"
|
||||
android:targetSdkVersion="21"/>
|
||||
android:targetSdkVersion="22"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
||||
@@ -41,6 +41,7 @@ package com.github.shadowsocks
|
||||
|
||||
import java.io.File
|
||||
import java.lang.reflect.{InvocationTargetException, Method}
|
||||
import java.net.{Inet6Address, InetAddress}
|
||||
import java.util.Locale
|
||||
|
||||
import android.app._
|
||||
@@ -54,7 +55,6 @@ import android.widget.Toast
|
||||
import com.github.shadowsocks.aidl.Config
|
||||
import com.github.shadowsocks.utils._
|
||||
import com.google.android.gms.analytics.HitBuilders
|
||||
import org.apache.http.conn.util.InetAddressUtils
|
||||
|
||||
import scala.collection._
|
||||
import scala.collection.mutable.ArrayBuffer
|
||||
@@ -430,7 +430,7 @@ class ShadowsocksNatService extends Service with BaseService {
|
||||
init_sb.append(Utils.getIptables + " -t nat -F OUTPUT")
|
||||
|
||||
val cmd_bypass = Utils.getIptables + CMD_IPTABLES_RETURN
|
||||
if (!InetAddressUtils.isIPv6Address(config.proxy.toUpperCase)) {
|
||||
if (!InetAddress.getByName(config.proxy.toUpperCase).isInstanceOf[Inet6Address]) {
|
||||
init_sb.append(cmd_bypass.replace("-p tcp -d 0.0.0.0", "-d " + config.proxy))
|
||||
}
|
||||
init_sb.append(cmd_bypass.replace("-p tcp -d 0.0.0.0", "-d 127.0.0.1"))
|
||||
@@ -576,8 +576,7 @@ class ShadowsocksNatService extends Service with BaseService {
|
||||
killProcesses()
|
||||
|
||||
var resolved: Boolean = false
|
||||
if (!InetAddressUtils.isIPv4Address(config.proxy) &&
|
||||
!InetAddressUtils.isIPv6Address(config.proxy)) {
|
||||
if (!Utils.isNumeric(config.proxy)) {
|
||||
Utils.resolve(config.proxy, enableIPv6 = true) match {
|
||||
case Some(a) =>
|
||||
config.proxy = a
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
package com.github.shadowsocks
|
||||
|
||||
import java.io.File
|
||||
import java.net.InetAddress
|
||||
import java.util.Locale
|
||||
|
||||
import android.app._
|
||||
@@ -53,7 +54,6 @@ import com.github.shadowsocks.aidl.Config
|
||||
import com.github.shadowsocks.utils._
|
||||
import com.google.android.gms.analytics.HitBuilders
|
||||
import org.apache.commons.net.util.SubnetUtils
|
||||
import org.apache.http.conn.util.InetAddressUtils
|
||||
|
||||
import scala.collection.mutable
|
||||
import scala.collection.mutable.ArrayBuffer
|
||||
@@ -238,8 +238,7 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
|
||||
// Resolve the server address
|
||||
var resolved: Boolean = false
|
||||
if (!InetAddressUtils.isIPv4Address(config.proxy) &&
|
||||
!InetAddressUtils.isIPv6Address(config.proxy)) {
|
||||
if (!Utils.isNumeric(config.proxy)) {
|
||||
Utils.resolve(config.proxy, enableIPv6 = true) match {
|
||||
case Some(addr) =>
|
||||
config.proxy = addr
|
||||
|
||||
@@ -44,8 +44,7 @@ import android.content.pm.PackageManager
|
||||
import android.graphics.drawable.{BitmapDrawable, Drawable}
|
||||
import android.util.{Base64, Log}
|
||||
import java.io._
|
||||
import java.net.{UnknownHostException, InetAddress, NetworkInterface}
|
||||
import org.apache.http.conn.util.InetAddressUtils
|
||||
import java.net._
|
||||
import org.xbill.DNS._
|
||||
import android.graphics._
|
||||
import android.app.ActivityManager
|
||||
@@ -233,6 +232,9 @@ object Utils {
|
||||
None
|
||||
}
|
||||
|
||||
lazy val isNumericMethod = classOf[InetAddress].getMethod("isNumeric", classOf[String])
|
||||
def isNumeric(address: String): Boolean = isNumericMethod.invoke(null, address).asInstanceOf[Boolean]
|
||||
|
||||
/**
|
||||
* Get local IPv4 address
|
||||
*/
|
||||
@@ -245,9 +247,8 @@ object Utils {
|
||||
while (addrs.hasMoreElements) {
|
||||
val addr = addrs.nextElement()
|
||||
if (!addr.isLoopbackAddress && !addr.isLinkLocalAddress) {
|
||||
val sAddr = addr.getHostAddress.toUpperCase
|
||||
if (InetAddressUtils.isIPv4Address(sAddr)) {
|
||||
return Some(sAddr)
|
||||
if (addr.isInstanceOf[Inet4Address]) {
|
||||
return Some(addr.getHostAddress.toUpperCase)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -271,8 +272,7 @@ object Utils {
|
||||
while (addrs.hasMoreElements) {
|
||||
val addr = addrs.nextElement()
|
||||
if (!addr.isLoopbackAddress && !addr.isLinkLocalAddress) {
|
||||
val sAddr = addr.getHostAddress.toUpperCase
|
||||
if (InetAddressUtils.isIPv6Address(sAddr)) {
|
||||
if (addr.isInstanceOf[Inet6Address]) {
|
||||
if (BuildConfig.DEBUG) Log.d(TAG, "IPv6 address detected")
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user