Commit 250e4171 authored by Max Lv's avatar Max Lv

reduce the apk size

parent 8923c93b
...@@ -4,10 +4,13 @@ ...@@ -4,10 +4,13 @@
cp jni/Application.mk.9 jni/Application.mk cp jni/Application.mk.9 jni/Application.mk
ndk-build clean ndk-build clean
ndk-build ndk-build
rm -rf src/main/assets/armeabi
rm -rf src/main/assets/armeabi-v7a
rm -rf src/main/assets/x86
mkdir -p src/main/assets/armeabi mkdir -p src/main/assets/armeabi
mkdir -p src/main/assets/armeabi-v7a mkdir -p src/main/assets/armeabi-v7a
mkdir -p src/main/assets/x86 mkdir -p src/main/assets/x86
for app in ip6tables iptables pdnsd redsocks ss-tunnel for app in pdnsd redsocks
do do
mv libs/armeabi/$app src/main/assets/armeabi/ mv libs/armeabi/$app src/main/assets/armeabi/
mv libs/armeabi-v7a/$app src/main/assets/armeabi-v7a/ mv libs/armeabi-v7a/$app src/main/assets/armeabi-v7a/
...@@ -20,10 +23,13 @@ mv libs src/main/jni ...@@ -20,10 +23,13 @@ mv libs src/main/jni
cp jni/Application.mk.16 jni/Application.mk cp jni/Application.mk.16 jni/Application.mk
ndk-build clean ndk-build clean
ndk-build ndk-build
rm -rf src/main/assets/api-16/armeabi
rm -rf src/main/assets/api-16/armeabi-v7a
rm -rf src/main/assets/api-16/x86
mkdir -p src/main/assets/api-16/armeabi mkdir -p src/main/assets/api-16/armeabi
mkdir -p src/main/assets/api-16/armeabi-v7a mkdir -p src/main/assets/api-16/armeabi-v7a
mkdir -p src/main/assets/api-16/x86 mkdir -p src/main/assets/api-16/x86
for app in pdnsd redsocks ss-tunnel for app in pdnsd redsocks
do do
mv libs/armeabi/$app src/main/assets/api-16/armeabi/ mv libs/armeabi/$app src/main/assets/api-16/armeabi/
mv libs/armeabi-v7a/$app src/main/assets/api-16/armeabi-v7a/ mv libs/armeabi-v7a/$app src/main/assets/api-16/armeabi-v7a/
......
...@@ -200,6 +200,27 @@ LOCAL_LDLIBS := -llog ...@@ -200,6 +200,27 @@ LOCAL_LDLIBS := -llog
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
########################################################
## shadowsocks tunnel library
########################################################
include $(CLEAR_VARS)
SHADOWSOCKS_SOURCES := tunnel.c cache.c udprelay.c encrypt.c utils.c json.c jconf.c
LOCAL_MODULE := ss-tunnel-jni
LOCAL_SRC_FILES := $(addprefix shadowsocks/src/, $(SHADOWSOCKS_SOURCES)) main-jni.cpp
LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL \
-DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H -DSSTUNNEL_JNI \
-I$(LOCAL_PATH)/libev/ \
-I$(LOCAL_PATH)/openssl/include
LOCAL_STATIC_LIBRARIES := libev libcrypto
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
######################################################## ########################################################
## system ## system
######################################################## ########################################################
...@@ -314,13 +335,13 @@ openssl_subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \ ...@@ -314,13 +335,13 @@ openssl_subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \
include $(openssl_subdirs) include $(openssl_subdirs)
# Iptables # Iptables
LOCAL_PATH := $(ROOT_PATH) # LOCAL_PATH := $(ROOT_PATH)
iptables_subdirs := $(addprefix $(LOCAL_PATH)/iptables/,$(addsuffix /Android.mk, \ # iptables_subdirs := $(addprefix $(LOCAL_PATH)/iptables/,$(addsuffix /Android.mk, \
iptables \ # iptables \
extensions \ # extensions \
libiptc \ # libiptc \
)) # ))
include $(iptables_subdirs) # include $(iptables_subdirs)
# Import cpufeatures # Import cpufeatures
$(call import-module,android/cpufeatures) $(call import-module,android/cpufeatures)
...@@ -41,11 +41,13 @@ package com.github.shadowsocks; ...@@ -41,11 +41,13 @@ package com.github.shadowsocks;
public class Core { public class Core {
static { static {
java.lang.System.loadLibrary("ss-local-jni"); java.lang.System.loadLibrary("ss-local-jni");
java.lang.System.loadLibrary("ss-tunnel-jni");
java.lang.System.loadLibrary("tun2socks-jni"); java.lang.System.loadLibrary("tun2socks-jni");
java.lang.System.loadLibrary("pdnsd-jni"); java.lang.System.loadLibrary("pdnsd-jni");
} }
public static native void sslocal(String[] cmd); public static native void sslocal(String[] cmd);
public static native void sstunnel(String[] cmd);
public static native void tun2socks(String[] cmd); public static native void tun2socks(String[] cmd);
public static native void pdnsd(String[] cmd); public static native void pdnsd(String[] cmd);
} }
...@@ -124,8 +124,7 @@ object Shadowsocks { ...@@ -124,8 +124,7 @@ object Shadowsocks {
val FEATRUE_PREFS = Array(Key.isGFWList, Key.isGlobalProxy, Key.proxyedApps, Key.isTrafficStat, val FEATRUE_PREFS = Array(Key.isGFWList, Key.isGlobalProxy, Key.proxyedApps, Key.isTrafficStat,
Key.isUdpDns, Key.isAutoConnect) Key.isUdpDns, Key.isAutoConnect)
val SYSTEM_EXECUTABLES = Array(Executable.PDNSD, Executable.REDSOCKS,Executable.SS_TUNNEL) val EXECUTABLES = Array(Executable.PDNSD, Executable.REDSOCKS)
val EXECUTABLES = Array(Executable.IPTABLES) ++ SYSTEM_EXECUTABLES
// Helper functions // Helper functions
def updateListPreference(pref: Preference, value: String) { def updateListPreference(pref: Preference, value: String) {
...@@ -329,8 +328,6 @@ class Shadowsocks ...@@ -329,8 +328,6 @@ class Shadowsocks
ab.append("kill -9 `cat /data/data/com.github.shadowsocks/ss-tunnel.pid`") ab.append("kill -9 `cat /data/data/com.github.shadowsocks/ss-tunnel.pid`")
ab.append("kill -9 `cat /data/data/com.github.shadowsocks/tun2socks.pid`") ab.append("kill -9 `cat /data/data/com.github.shadowsocks/tun2socks.pid`")
ab.append("killall -9 pdnsd") ab.append("killall -9 pdnsd")
ab.append("killall -9 ss-local")
ab.append("killall -9 ss-tunnel")
ab.append("killall -9 tun2socks") ab.append("killall -9 tun2socks")
ab.append("rm /data/data/com.github.shadowsocks/pdnsd.conf") ab.append("rm /data/data/com.github.shadowsocks/pdnsd.conf")
ab.append("rm /data/data/com.github.shadowsocks/pdnsd.cache") ab.append("rm /data/data/com.github.shadowsocks/pdnsd.cache")
...@@ -802,7 +799,7 @@ class Shadowsocks ...@@ -802,7 +799,7 @@ class Shadowsocks
def copyToSystem() { def copyToSystem() {
val ab = new ArrayBuffer[String] val ab = new ArrayBuffer[String]
ab.append("mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system") ab.append("mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system")
for (executable <- Shadowsocks.SYSTEM_EXECUTABLES) { for (executable <- Shadowsocks.EXECUTABLES) {
ab.append("cp %s%s /system/bin/".format(Path.BASE, executable)) ab.append("cp %s%s /system/bin/".format(Path.BASE, executable))
} }
ab.append("mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system") ab.append("mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system")
......
...@@ -134,7 +134,7 @@ class ShadowsocksNatService extends Service with BaseService { ...@@ -134,7 +134,7 @@ class ShadowsocksNatService extends Service with BaseService {
def startDnsDaemon() { def startDnsDaemon() {
val args = if (config.isUdpDns) { val args = if (config.isUdpDns) {
("ss-tunnel -b 127.0.0.1 -s '%s' -p '%d' -l '%d' -k '%s' -m '%s' -L 8.8.8.8:53 -u -f " + ("ss-tunnel -b 127.0.0.1 -s %s -p %d -l %d -k %s -m %s -L 8.8.8.8:53 -u -f " +
Path.BASE + "ss-tunnel.pid") Path.BASE + "ss-tunnel.pid")
.format(config.proxy, config.remotePort, 8153, config.sitekey, config.encMethod) .format(config.proxy, config.remotePort, 8153, config.sitekey, config.encMethod)
} else { } else {
...@@ -155,8 +155,14 @@ class ShadowsocksNatService extends Service with BaseService { ...@@ -155,8 +155,14 @@ class ShadowsocksNatService extends Service with BaseService {
} else { } else {
Path.BASE + args Path.BASE + args
} }
if (BuildConfig.DEBUG) Log.d(TAG, cmd) if (BuildConfig.DEBUG) Log.d(TAG, cmd)
Console.runRootCommand(cmd)
if (config.isUdpDns) {
Core.sstunnel(cmd.split(" "))
} else {
Console.runRootCommand(cmd)
}
} }
def getVersionName: String = { def getVersionName: String = {
...@@ -308,10 +314,11 @@ class ShadowsocksNatService extends Service with BaseService { ...@@ -308,10 +314,11 @@ class ShadowsocksNatService extends Service with BaseService {
val ab = new ArrayBuffer[String] val ab = new ArrayBuffer[String]
ab.append("kill -9 `cat " + Path.BASE + "ss-tunnel.pid`")
ab.append("kill -9 `cat " + Path.BASE +"redsocks.pid`") ab.append("kill -9 `cat " + Path.BASE +"redsocks.pid`")
ab.append("killall -9 redsocks") ab.append("killall -9 redsocks")
ab.append("kill -9 `cat " + Path.BASE + "ss-tunnel.pid`")
ab.append("killall -9 ss-tunnel")
ab.append("kill -15 `cat " + Path.BASE + "pdnsd.pid`") ab.append("kill -15 `cat " + Path.BASE + "pdnsd.pid`")
ab.append("killall -15 pdnsd") ab.append("killall -15 pdnsd")
...@@ -319,7 +326,6 @@ class ShadowsocksNatService extends Service with BaseService { ...@@ -319,7 +326,6 @@ class ShadowsocksNatService extends Service with BaseService {
ab.clear() ab.clear()
ab.append("kill -9 `cat " + Path.BASE + "ss-local.pid`") ab.append("kill -9 `cat " + Path.BASE + "ss-local.pid`")
ab.append("killall -9 ss-local")
Console.runCommand(ab.toArray) Console.runCommand(ab.toArray)
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment