Compare commits

..
63 Commits
Author SHA1 Message Date
Max Lv bf207eb9b8 fix an issue on 64bit 2014-11-26 13:13:11 +08:00
Max Lv 7e8dad5c76 Revert "fake proc name failed on LRX21R"
This reverts commit 185e7608ae.
2014-11-26 09:12:01 +08:00
Max Lv 185e7608ae fake proc name failed on LRX21R 2014-11-25 21:43:12 +08:00
Max Lv d844fc2457 refine fake proc name 2014-11-25 19:11:18 +08:00
Max Lv a1bdfa5bd9 fix #161 2014-11-25 16:52:04 +08:00
Max Lv 6c7f62c237 pass the tun fd directly to tun2socks 2014-11-25 08:59:30 +08:00
Max Lv 383e9404ec Run tun2socks in seprate process for now 2014-11-24 21:22:42 +08:00
Max Lv 16d2cd9a29 Merge branch 'master' of github.com:shadowsocks/shadowsocks-android 2014-11-24 18:08:31 +08:00
Max Lv 9ee2345fd6 add unix socket 2014-11-24 18:08:15 +08:00
Max Lv 567543d00e Call tun2socks in main process 2014-11-24 10:39:45 +08:00
Max Lv 7c2b717141 update gitignore 2014-11-21 21:08:06 +08:00
Max Lv 08d5d56e46 fix #158 and #155 2014-11-21 16:20:15 +08:00
Max Lv e22b145023 fix #158 2014-11-21 14:51:16 +08:00
Max Lv a10889bb5b fix a bug 2014-11-21 12:15:59 +08:00
Max Lv 800e85dc0d fix #146 2014-11-20 15:37:37 +08:00
Max Lv e778a313ba bump version 2014-11-20 09:22:12 +08:00
Max Lv a3519fbdc8 enable aarch64 and x86_64 build 2014-11-19 10:12:49 +08:00
Max Lv 486288a513 Merge pull request #152 from CzBiX/patch-1
Update pref_all.xml
2014-11-18 17:15:53 +08:00
Liu VRan 0111bd5471 Update pref_all.xml
set input type for port
2014-11-18 17:08:22 +08:00
Max Lv 66fe67ae21 fix build error 2014-11-18 10:24:15 +08:00
Max Lv 04a8b49abc update submodule 2014-11-18 09:16:10 +08:00
Max Lv 3561c7f317 update sdk plugin 2014-11-18 09:14:29 +08:00
Max Lv 694534be58 add missing file 2014-11-17 21:24:51 +08:00
Max Lv efb614030f disable NAT mode again 2014-11-17 20:56:17 +08:00
Max Lv 8f41ea291f bump version 2014-11-17 20:23:10 +08:00
Max Lv 27ba7d64f4 fix a very old bug in redsocks 2014-11-17 19:51:08 +08:00
Max Lv 8fb5d7f8c6 fix a bug in autostart 2014-11-17 14:48:57 +08:00
Max Lv 014692cb84 udpate default settings 2014-11-17 09:44:11 +08:00
Max Lv 948db260b6 bump version 2014-11-17 09:39:34 +08:00
Max Lv b7c3c7d269 enable NAT mode again 2014-11-17 09:15:01 +08:00
Max Lv 897b222aa8 refine some strings 2014-11-17 08:46:12 +08:00
Max Lv 9a724cd063 fix #148 2014-11-16 21:35:54 +08:00
Max Lv b15a4604f2 fix chn list 2014-11-15 12:28:17 +08:00
Max Lv 2e3a2c9544 bypass private IP on Lollipop 2014-11-13 20:33:02 +08:00
Max Lv d6ed052338 clean up 2014-11-13 18:15:39 +08:00
Max Lv 4b99f8e3d6 Fix a bug 2014-11-13 18:04:19 +08:00
Max Lv 475cfe3269 update shadowsocks-libev 2014-11-11 18:00:38 +08:00
Max Lv 102387077f refine DNS resolver on Lollipop 2014-11-05 15:52:57 +08:00
Max Lv 72824eb8f4 remove traffic stat 2014-10-31 12:39:24 +08:00
Max Lv 1f40be1ad3 update some strings 2014-10-30 12:28:52 +08:00
Max Lv c12ec62d8b update shadowsocks-libev 2014-10-28 13:19:05 +08:00
Max Lv e38ed2d069 bump version 2014-10-27 20:43:14 +08:00
Max Lv 2e05e3cda8 bypass private ipv4 addresses 2014-10-27 20:17:42 +08:00
Max Lv 92ffb357a6 Merge pull request #134 from zhaofengli/master
Fix NDK build
2014-10-26 13:44:29 +08:00
Zhaofeng Li 4beff01a3f .travis.yml: Minor clean-up 2014-10-26 13:03:14 +08:00
Zhaofeng Li 7627952234 README.md: Fix typo
[ci skip]
2014-10-26 12:55:37 +08:00
Zhaofeng Li 425d4a42e8 .travis.yml: Fix typo
ANDROID_NDK -> ANDROID_NDK_HOME
2014-10-26 12:31:02 +08:00
Zhaofeng Li 194d978143 build-ndk.sh: Don't assume NDK is in $PATH 2014-10-26 12:29:48 +08:00
Max Lv f6841848a3 chnroute works perfectly without root on lollipop 2014-10-21 20:37:04 +08:00
Max Lv 52cb15069c update travis 2014-10-21 12:28:40 +08:00
Max Lv 70ed2189b1 add iptables back 2014-10-21 12:06:12 +08:00
Max Lv aeee9c2fac fix an issue for autostart 2014-10-19 20:38:16 +08:00
Max Lv 70dc8e9995 bypass IPv6 instead 2014-10-19 19:47:59 +08:00
Max Lv 558a39ec14 refine per-app VPN 2014-10-19 18:33:04 +08:00
Max Lv 5f95cccce4 implement per-app VPN for Android 5.0 2014-10-19 18:23:27 +08:00
Max Lv 55f25d3272 disable NAT mode on lollipop for now 2014-10-19 14:09:27 +08:00
Max Lv 93273cbc44 fix an issue on lollipop 2014-10-19 13:58:19 +08:00
Max Lv c0514ee169 disable bypass feature of pdnsd 2014-10-18 10:46:54 +08:00
Max Lv 06d736b22d fix all issues for lollipop 2014-10-18 09:58:40 +08:00
Max Lv e34d5675eb update shadowsocks-libev 2014-10-14 12:58:09 +08:00
Max Lv 94c7ffb788 remove large icon 2014-09-30 12:59:15 +08:00
Max Lv 0647ef4c6d fix #121 2014-09-19 14:17:45 +08:00
Max Lv 97c6ff95cd fix an issue in the build scripts 2014-09-18 08:24:39 +08:00
3954 changed files with 1936 additions and 2323 deletions
+1 -4
View File
@@ -1,7 +1,6 @@
classes classes
bin bin
gen gen
obj
target target
local.properties local.properties
.classpath .classpath
@@ -24,12 +23,10 @@ local.sbt
out/ out/
#NDK #NDK
src/main/obj
src/main/libs src/main/libs
src/main/assets/armeabi src/main/assets/armeabi
src/main/assets/armeabi-v7a src/main/assets/armeabi-v7a
src/main/assets/x86 src/main/assets/x86
src/main/assets/api-16/ src/main/assets/api-16/
src/main/jni
jni/Application.mk jni/Application.mk
obj
libs
+3 -3
View File
@@ -1,3 +1,3 @@
[submodule "jni/shadowsocks"] [submodule "src/main/jni/shadowsocks"]
path = jni/shadowsocks path = src/main/jni/shadowsocks
url = https://github.com/madeye/shadowsocks-libev.git url = https://github.com/madeye/shadowsocks-libev
+7 -11
View File
@@ -3,25 +3,21 @@ scala:
- 2.10.4 - 2.10.4
before_install: before_install:
- sudo apt-get update - sudo apt-get update
- sudo apt-get install libc6-dev-i386 install:
- sudo apt-get install lib32ncurses5-dev - sudo apt-get install -y libc6-dev-i386 lib32ncurses5-dev libx11-dev g++-multilib lib32z1-dev ccache
- sudo apt-get install libx11-dev
- sudo apt-get install g++-multilib
- sudo apt-get install lib32z1-dev
- sudo apt-get install ccache
- export NDK_CCACHE=ccache - export NDK_CCACHE=ccache
- export ARCH=`uname -m` - export ARCH=`uname -m`
- wget http://dl.google.com/android/android-sdk_r23-linux.tgz - wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz
- tar xf android-sdk_r23-linux.tgz - tar xf android-sdk_r23.0.2-linux.tgz
- wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-${ARCH}.tar.bz2 - wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-${ARCH}.tar.bz2
- tar xf android-ndk-r9d-linux-${ARCH}.tar.bz2 - tar xf android-ndk-r9d-linux-${ARCH}.tar.bz2
- export ANDROID_NDK=`pwd`/android-ndk-r9d - export ANDROID_NDK_HOME=`pwd`/android-ndk-r9d
- export ANDROID_HOME=`pwd`/android-sdk-linux - export ANDROID_HOME=`pwd`/android-sdk-linux
- export PATH=${PATH}:${ANDROID_NDK_HOME}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools - export PATH=${PATH}:${ANDROID_NDK_HOME}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
- echo "y" | android update sdk --filter tools,platform-tools,build-tools-20.0.0,android-19,extra-google-m2repository --no-ui --no-https -a - echo "y" | android update sdk --filter tools,platform-tools,build-tools-21.0.1,android-21,extra-google-m2repository --no-ui --no-https -a
- echo "y" | android update sdk --filter extra-android-m2repository --no-ui --no-https -a - echo "y" | android update sdk --filter extra-android-m2repository --no-ui --no-https -a
script: script:
- ./build-ndk.sh
- cp local.properties.travis local.properties - cp local.properties.travis local.properties
- ./build.sh
- sbt android:package-release - sbt android:package-release
- exit 0 - exit 0
+8 -7
View File
@@ -28,10 +28,10 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
```bash ```bash
git submodule update --init git submodule update --init
# Build native binaries
./build-ndk.sh
# Build native binaries
./build.sh
# Build the App # Build the App
sbt clean android:package-release sbt clean android:package-release
``` ```
@@ -39,8 +39,9 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
#### BUILD on Mac OS X (with HomeBrew) #### BUILD on Mac OS X (with HomeBrew)
* Install Android SDK and NDK by run `brew install android-ndk android-sdk` * Install Android SDK and NDK by run `brew install android-ndk android-sdk`
* Add `export ANDROID_HOME=/usr/local/Cellar/android-sdk/$version` to your .bashrc , then reopen the shell to loat it. * Add `export ANDROID_HOME=/usr/local/Cellar/android-sdk/$version` to your .bashrc , then reopen the shell to load it.
* Run `echo "y" | android update sdk --filter tools,platform-tools,build-tools-19.0.3,android-19,extra-google-m2repository,extra-android-m2repository --no-ui --no-https -a` * echo "y" | android update sdk --filter tools,platform-tools,build-tools-21.0.1,android-21,extra-google-m2repository --no-ui --no-https -a
* echo "y" | android update sdk --filter extra-android-m2repository --no-ui --no-https -a
* Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert * Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert
* Put your key in ~/.keystore * Put your key in ~/.keystore
* Create `local.properties` from `local.properties.example` with your own key information . * Create `local.properties` from `local.properties.example` with your own key information .
@@ -50,8 +51,8 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
git submodule update --init git submodule update --init
# Build native binaries # Build native binaries
./build-ndk.sh ./build.sh
# Build the apk # Build the apk
sbt clean android:package-release sbt clean android:package-release
``` ```
-14
View File
@@ -1,14 +0,0 @@
#!/bin/bash
ndk-build clean
ndk-build
rm -rf src/main/assets/armeabi-v7a
rm -rf src/main/assets/x86
mkdir -p src/main/assets/armeabi-v7a
mkdir -p src/main/assets/x86
for app in pdnsd redsocks
do
mv libs/armeabi-v7a/$app src/main/assets/armeabi-v7a/
mv libs/x86/$app src/main/assets/x86/
done
+5 -1
View File
@@ -4,12 +4,16 @@ import android.Dependencies.{apklib,aar}
android.Plugin.androidBuild android.Plugin.androidBuild
platformTarget in Android := "android-19" platformTarget in Android := "android-21"
name := "shadowsocks" name := "shadowsocks"
compileOrder in Compile := CompileOrder.JavaThenScala compileOrder in Compile := CompileOrder.JavaThenScala
ndkJavah in Android := List()
ndkBuild in Android := List()
resolvers += "JRAF" at "http://JRAF.org/static/maven/2" resolvers += "JRAF" at "http://JRAF.org/static/maven/2"
resolvers += "madeye private releases" at "http://madeye-maven-repository.googlecode.com/git/" resolvers += "madeye private releases" at "http://madeye-maven-repository.googlecode.com/git/"
Executable
+24
View File
@@ -0,0 +1,24 @@
#!/bin/bash
function try () {
"$@" || exit -1
}
try pushd src/main
# Build
try $ANDROID_NDK_HOME/ndk-build clean
try $ANDROID_NDK_HOME/ndk-build
# copy executables
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
do
try mv libs/armeabi-v7a/$app assets/armeabi-v7a/
try mv libs/x86/$app assets/x86/
done
try popd
-84
View File
@@ -1,84 +0,0 @@
#include <jni.h>
#include <string.h>
#include <unistd.h>
typedef unsigned short char16_t;
class String8 {
public:
String8() {
mString = 0;
}
~String8() {
if (mString) {
free(mString);
}
}
void set(const char16_t* o, size_t numChars) {
if (mString) {
free(mString);
}
mString = (char*) malloc(numChars + 1);
if (!mString) {
return;
}
for (size_t i = 0; i < numChars; i++) {
mString[i] = (char) o[i];
}
mString[numChars] = '\0';
}
const char* string() {
return mString;
}
private:
char* mString;
};
extern "C" {
int main(int argc, char* args[]);
#if defined(PDNSD_JNI)
jint Java_com_github_shadowsocks_Core_pdnsd(JNIEnv *env, jobject thiz, jobjectArray argv) {
#elif defined(SSLOCAL_JNI)
jint Java_com_github_shadowsocks_Core_sslocal(JNIEnv *env, jobject thiz, jobjectArray argv) {
#elif defined(SSTUNNEL_JNI)
jint Java_com_github_shadowsocks_Core_sstunnel(JNIEnv *env, jobject thiz, jobjectArray argv) {
#elif defined(TUN2SOCKS_JNI)
jint Java_com_github_shadowsocks_Core_tun2socks(JNIEnv *env, jobject thiz, jobjectArray argv) {
#else
#error "invalid header"
#endif
int argc = argv ? env->GetArrayLength(argv) : 0;
char **args = NULL;
String8 tmp_8;
if (argc > 0) {
args = (char **)malloc((argc+1)*sizeof(char *));
for (int i = 0; i < argc; ++i) {
jstring arg = reinterpret_cast<jstring>(env->GetObjectArrayElement(argv, i));
const jchar *str = env->GetStringCritical(arg, 0);
tmp_8.set(str, env->GetStringLength(arg));
env->ReleaseStringCritical(arg, str);
args[i] = strdup(tmp_8.string());
}
args[argc] = NULL;
pid_t pid;
pid = fork();
if (pid == 0) {
int ret = main(argc, args);
return ret;
}
if (args != NULL) free(args);
}
return 0;
}
}
Submodule jni/shadowsocks deleted from 06f1a57c9b
+4 -2
View File
@@ -1,5 +1,7 @@
resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-snapshots"))(Resolver.ivyStylePatterns) resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-snapshots"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.2.20") 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")
+3 -5
View File
@@ -1,14 +1,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.github.shadowsocks" package="com.github.shadowsocks"
android:versionCode="71" android:versionCode="86"
android:versionName="2.2.3"> android:versionName="2.4.6">
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/> <uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-feature <uses-feature
android:name="android.hardware.touchscreen" android:name="android.hardware.touchscreen"
@@ -16,7 +14,7 @@
<uses-sdk <uses-sdk
android:minSdkVersion="16" android:minSdkVersion="16"
android:targetSdkVersion="19"/> android:targetSdkVersion="21"/>
<application <application
android:allowBackup="true" android:allowBackup="true"
@@ -14,6 +14,7 @@ public class Config implements Parcelable {
public String profileName = "Untitled"; public String profileName = "Untitled";
public String proxy = "127.0.0.1"; public String proxy = "127.0.0.1";
public String sitekey = "null"; public String sitekey = "null";
public String route = "all";
public String encMethod = "rc4"; public String encMethod = "rc4";
public String proxiedAppString = ""; public String proxiedAppString = "";
@@ -33,7 +34,7 @@ public class Config implements Parcelable {
public Config(boolean isGlobalProxy, boolean isGFWList, boolean isBypassApps, public Config(boolean isGlobalProxy, boolean isGFWList, boolean isBypassApps,
boolean isTrafficStat, boolean isUdpDns, String profileName, String proxy, String sitekey, boolean isTrafficStat, boolean isUdpDns, String profileName, String proxy, String sitekey,
String encMethod, String proxiedAppString, int remotePort, int localPort) { String encMethod, String proxiedAppString, String route, int remotePort, int localPort) {
this.isGlobalProxy = isGlobalProxy; this.isGlobalProxy = isGlobalProxy;
this.isGFWList = isGFWList; this.isGFWList = isGFWList;
this.isBypassApps = isBypassApps; this.isBypassApps = isBypassApps;
@@ -44,6 +45,7 @@ public class Config implements Parcelable {
this.sitekey = sitekey; this.sitekey = sitekey;
this.encMethod = encMethod; this.encMethod = encMethod;
this.proxiedAppString = proxiedAppString; this.proxiedAppString = proxiedAppString;
this.route = route;
this.remotePort = remotePort; this.remotePort = remotePort;
this.localPort = localPort; this.localPort = localPort;
} }
@@ -63,6 +65,7 @@ public class Config implements Parcelable {
sitekey = in.readString(); sitekey = in.readString();
encMethod = in.readString(); encMethod = in.readString();
proxiedAppString = in.readString(); proxiedAppString = in.readString();
route = in.readString();
remotePort = in.readInt(); remotePort = in.readInt();
localPort = in.readInt(); localPort = in.readInt();
} }
@@ -82,6 +85,7 @@ public class Config implements Parcelable {
out.writeString(sitekey); out.writeString(sitekey);
out.writeString(encMethod); out.writeString(encMethod);
out.writeString(proxiedAppString); out.writeString(proxiedAppString);
out.writeString(route);
out.writeInt(remotePort); out.writeInt(remotePort);
out.writeInt(localPort); out.writeInt(localPort);
} }
@@ -1,53 +0,0 @@
/* Shadowsocks - A shadowsocks client for Android
* Copyright (C) 2012 <max.c.lv@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*
* ___====-_ _-====___
* _--^^^#####// \\#####^^^--_
* _-^##########// ( ) \\##########^-_
* -############// |\^^/| \\############-
* _/############// (@::@) \\############\_
* /#############(( \\// ))#############\
* -###############\\ (oo) //###############-
* -#################\\ / VV \ //#################-
* -###################\\/ \//###################-
* _#/|##########/\######( /\ )######/\##########|\#_
* |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
* ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
* ` ` ` ` / | | | | \ ' ' ' '
* ( | | | | )
* __\ | | | | /__
* (vvv(VVV)(VVV)vvv)
*
* HERE BE DRAGONS
*
*/
package com.github.shadowsocks;
public class Core {
static {
java.lang.System.loadLibrary("ss-local-jni");
java.lang.System.loadLibrary("ss-tunnel-jni");
java.lang.System.loadLibrary("tun2socks-jni");
java.lang.System.loadLibrary("pdnsd-jni");
}
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 pdnsd(String[] cmd);
}
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2012-2013 Jorrit "Chainfire" Jongma * Copyright (C) 2012-2014 Jorrit "Chainfire" Jongma
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2012-2013 Jorrit "Chainfire" Jongma * Copyright (C) 2012-2014 Jorrit "Chainfire" Jongma
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@ package eu.chainfire.libsuperuser;
import android.os.Looper; import android.os.Looper;
import android.util.Log; import android.util.Log;
import com.github.shadowsocks.BuildConfig; import com.github.shadowsocks.BuildConfig;
/** /**
@@ -0,0 +1,59 @@
/*
* Copyright (C) 2012-2014 Jorrit "Chainfire" Jongma
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package eu.chainfire.libsuperuser;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* <p>
* Base receiver to extend to catch notifications when overlays should be
* hidden.
* </p>
* <p>
* Tapjacking protection in SuperSU prevents some dialogs from receiving user
* input when overlays are present. For security reasons this notification is
* only sent to apps that have previously been granted root access, so even if
* your app does not <em>require</em> root, you still need to <em>request</em>
* it, and the user must grant it.
* </p>
* <p>
* Note that the word overlay as used here should be interpreted as "any view or
* window possibly obscuring SuperSU dialogs".
* </p>
*/
public abstract class HideOverlaysReceiver extends BroadcastReceiver {
public static final String ACTION_HIDE_OVERLAYS = "eu.chainfire.supersu.action.HIDE_OVERLAYS";
public static final String CATEGORY_HIDE_OVERLAYS = Intent.CATEGORY_INFO;
public static final String EXTRA_HIDE_OVERLAYS = "eu.chainfire.supersu.extra.HIDE";
@Override
public final void onReceive(Context context, Intent intent) {
if (intent.hasExtra(EXTRA_HIDE_OVERLAYS)) {
onHideOverlays(intent.getBooleanExtra(EXTRA_HIDE_OVERLAYS, false));
}
}
/**
* Called when overlays <em>should</em> be hidden or <em>may</em> be shown
* again.
*
* @param hide Should overlays be hidden?
*/
public abstract void onHideOverlays(boolean hide);
}
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2012-2013 Jorrit "Chainfire" Jongma * Copyright (C) 2012-2014 Jorrit "Chainfire" Jongma
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2012-2013 Jorrit "Chainfire" Jongma * Copyright (C) 2012-2014 Jorrit "Chainfire" Jongma
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2012-2013 Jorrit "Chainfire" Jongma * Copyright (C) 2012-2014 Jorrit "Chainfire" Jongma
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
+16 -51
View File
@@ -37,7 +37,7 @@ LIBEVENT_SOURCES := \
LOCAL_MODULE := event LOCAL_MODULE := event
LOCAL_SRC_FILES := $(addprefix libevent/, $(LIBEVENT_SOURCES)) LOCAL_SRC_FILES := $(addprefix libevent/, $(LIBEVENT_SOURCES))
LOCAL_CFLAGS := -O2 -g -I$(LOCAL_PATH)/libevent \ LOCAL_CFLAGS := -O2 -I$(LOCAL_PATH)/libevent \
-I$(LOCAL_PATH)/libevent/include \ -I$(LOCAL_PATH)/libevent/include \
-I$(LOCAL_PATH)/openssl/include -I$(LOCAL_PATH)/openssl/include
@@ -121,15 +121,15 @@ REDSOCKS_SOURCES := base.c dnstc.c http-connect.c \
LOCAL_STATIC_LIBRARIES := libevent LOCAL_STATIC_LIBRARIES := libevent
LOCAL_MODULE := redsocks LOCAL_MODULE := redsocks
LOCAL_SRC_FILES := $(addprefix redsocks/, $(REDSOCKS_SOURCES)) LOCAL_SRC_FILES := $(addprefix redsocks/, $(REDSOCKS_SOURCES))
LOCAL_CFLAGS := -O2 -std=gnu99 -g -I$(LOCAL_PATH)/redsocks \ LOCAL_CFLAGS := -O2 -std=gnu99 -I$(LOCAL_PATH)/redsocks \
-I$(LOCAL_PATH)/libevent/include \ -I$(LOCAL_PATH)/libevent/include \
-I$(LOCAL_PATH)/libevent -I$(LOCAL_PATH)/libevent
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
######################################################## ########################################################
## pdnsd ## pdnsd library
######################################################## ########################################################
include $(CLEAR_VARS) include $(CLEAR_VARS)
@@ -142,20 +142,6 @@ LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH)/pdnsd
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
########################################################
## pdnsd library
########################################################
include $(CLEAR_VARS)
PDNSD_SOURCES := $(wildcard $(LOCAL_PATH)/pdnsd/src/*.c) main-jni.cpp
LOCAL_MODULE := pdnsd-jni
LOCAL_SRC_FILES := $(PDNSD_SOURCES:$(LOCAL_PATH)/%=%)
LOCAL_CFLAGS := -Wall -O2 -DPDNSD_JNI -I$(LOCAL_PATH)/pdnsd
include $(BUILD_SHARED_LIBRARY)
######################################################## ########################################################
## shadowsocks local library ## shadowsocks local library
######################################################## ########################################################
@@ -164,9 +150,9 @@ include $(CLEAR_VARS)
SHADOWSOCKS_SOURCES := local.c cache.c udprelay.c encrypt.c utils.c json.c jconf.c acl.c SHADOWSOCKS_SOURCES := local.c cache.c udprelay.c encrypt.c utils.c json.c jconf.c acl.c
LOCAL_MODULE := ss-local-jni LOCAL_MODULE := ss-local
LOCAL_SRC_FILES := $(addprefix shadowsocks/src/, $(SHADOWSOCKS_SOURCES)) main-jni.cpp LOCAL_SRC_FILES := $(addprefix shadowsocks/src/, $(SHADOWSOCKS_SOURCES))
LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DSSLOCAL_JNI \ LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL \
-DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H \ -DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H \
-I$(LOCAL_PATH)/libev/ \ -I$(LOCAL_PATH)/libev/ \
-I$(LOCAL_PATH)/openssl/include \ -I$(LOCAL_PATH)/openssl/include \
@@ -177,39 +163,18 @@ LOCAL_STATIC_LIBRARIES := libev libcrypto libipset libcork
LOCAL_LDLIBS := -llog LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY) include $(BUILD_EXECUTABLE)
######################################################## ########################################################
## shadowsocks tunnel ## shadowsocks tunnel
######################################################## ########################################################
# include $(CLEAR_VARS)
#
# SHADOWSOCKS_SOURCES := tunnel.c cache.c udprelay.c encrypt.c utils.c json.c jconf.c
#
# LOCAL_MODULE := ss-tunnel
# LOCAL_SRC_FILES := $(addprefix shadowsocks/src/, $(SHADOWSOCKS_SOURCES))
# LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL \
# -DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H \
# -I$(LOCAL_PATH)/libev/ \
# -I$(LOCAL_PATH)/openssl/include
#
# LOCAL_STATIC_LIBRARIES := libev libcrypto
#
# LOCAL_LDLIBS := -llog
#
# include $(BUILD_EXECUTABLE)
########################################################
## shadowsocks tunnel library
########################################################
include $(CLEAR_VARS) include $(CLEAR_VARS)
SHADOWSOCKS_SOURCES := tunnel.c cache.c udprelay.c encrypt.c utils.c json.c jconf.c SHADOWSOCKS_SOURCES := tunnel.c cache.c udprelay.c encrypt.c utils.c json.c jconf.c
LOCAL_MODULE := ss-tunnel-jni LOCAL_MODULE := ss-tunnel
LOCAL_SRC_FILES := $(addprefix shadowsocks/src/, $(SHADOWSOCKS_SOURCES)) main-jni.cpp LOCAL_SRC_FILES := $(addprefix shadowsocks/src/, $(SHADOWSOCKS_SOURCES))
LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL \ LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL \
-DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H -DSSTUNNEL_JNI \ -DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H -DSSTUNNEL_JNI \
-I$(LOCAL_PATH)/libev/ \ -I$(LOCAL_PATH)/libev/ \
@@ -219,7 +184,7 @@ LOCAL_STATIC_LIBRARIES := libev libcrypto
LOCAL_LDLIBS := -llog LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY) include $(BUILD_EXECUTABLE)
######################################################## ########################################################
## system ## system
@@ -239,7 +204,7 @@ LOCAL_STATIC_LIBRARIES := cpufeatures
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)
######################################################## ########################################################
## tun2socks-library ## tun2socks
######################################################## ########################################################
include $(CLEAR_VARS) include $(CLEAR_VARS)
@@ -249,7 +214,7 @@ LOCAL_CFLAGS += -DBADVPN_THREADWORK_USE_PTHREAD -DBADVPN_LINUX -DBADVPN_BREACTOR
LOCAL_CFLAGS += -DBADVPN_USE_SELFPIPE -DBADVPN_USE_EPOLL LOCAL_CFLAGS += -DBADVPN_USE_SELFPIPE -DBADVPN_USE_EPOLL
LOCAL_CFLAGS += -DBADVPN_LITTLE_ENDIAN -DBADVPN_THREAD_SAFE LOCAL_CFLAGS += -DBADVPN_LITTLE_ENDIAN -DBADVPN_THREAD_SAFE
LOCAL_CFLAGS += -DNDEBUG -DANDROID LOCAL_CFLAGS += -DNDEBUG -DANDROID
LOCAL_CFLAGS += -DTUN2SOCKS_JNI # LOCAL_CFLAGS += -DTUN2SOCKS_JNI
LOCAL_C_INCLUDES:= \ LOCAL_C_INCLUDES:= \
$(LOCAL_PATH)/badvpn/lwip/src/include/ipv4 \ $(LOCAL_PATH)/badvpn/lwip/src/include/ipv4 \
@@ -319,13 +284,13 @@ TUN2SOCKS_SOURCES := \
tun2socks/SocksUdpGwClient.c \ tun2socks/SocksUdpGwClient.c \
udpgw_client/UdpGwClient.c udpgw_client/UdpGwClient.c
LOCAL_MODULE := tun2socks-jni LOCAL_MODULE := tun2socks
LOCAL_LDLIBS := -ldl -llog LOCAL_LDLIBS := -ldl -llog
LOCAL_SRC_FILES := $(addprefix badvpn/, $(TUN2SOCKS_SOURCES)) main-jni.cpp LOCAL_SRC_FILES := $(addprefix badvpn/, $(TUN2SOCKS_SOURCES))
include $(BUILD_SHARED_LIBRARY) include $(BUILD_EXECUTABLE)
# OpenSSL # OpenSSL
openssl_subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \ openssl_subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \
@@ -1,4 +1,4 @@
APP_ABI := armeabi-v7a x86 APP_ABI := armeabi-v7a x86
APP_PLATFORM := android-16 APP_PLATFORM := android-16
APP_STL := stlport_static APP_STL := stlport_static
NDK_TOOLCHAIN_VERSION := 4.8 NDK_TOOLCHAIN_VERSION := 4.9

Some files were not shown because too many files have changed in this diff Show More