commit
9897c1208e
|
@ -10,10 +10,6 @@
|
||||||
path = external/openssl
|
path = external/openssl
|
||||||
url = https://github.com/openssl/openssl.git
|
url = https://github.com/openssl/openssl.git
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "external/polipo"]
|
|
||||||
path = external/polipo
|
|
||||||
url = https://github.com/jech/polipo.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "external/zstd"]
|
[submodule "external/zstd"]
|
||||||
path = external/zstd
|
path = external/zstd
|
||||||
url = https://github.com/facebook/zstd.git
|
url = https://github.com/facebook/zstd.git
|
||||||
|
|
2
BUILD
2
BUILD
|
@ -8,8 +8,6 @@ Orbot includes, in the external directory, git repo submodules of:
|
||||||
- LibEvent
|
- LibEvent
|
||||||
- JTorControl: The Tor Control Library for Java
|
- JTorControl: The Tor Control Library for Java
|
||||||
|
|
||||||
The Orbot repo also includes the Polipo source code of a recent stable release.
|
|
||||||
|
|
||||||
Please install the following prerequisites (instructions for each follows):
|
Please install the following prerequisites (instructions for each follows):
|
||||||
ant: http://ant.apache.org/
|
ant: http://ant.apache.org/
|
||||||
Android Native Dev Kit or NDK (for C/C++ code):
|
Android Native Dev Kit or NDK (for C/C++ code):
|
||||||
|
|
|
@ -103,8 +103,7 @@ endif
|
||||||
libevent libevent-clean \
|
libevent libevent-clean \
|
||||||
lzma lzma-clean \
|
lzma lzma-clean \
|
||||||
zstd zstd-clean \
|
zstd zstd-clean \
|
||||||
tor tor-clean \
|
tor tor-clean
|
||||||
polipo polipo-clean
|
|
||||||
|
|
||||||
all: assets
|
all: assets
|
||||||
|
|
||||||
|
@ -280,38 +279,17 @@ tor-clean:
|
||||||
-cd tor && \
|
-cd tor && \
|
||||||
git reset HEAD --hard
|
git reset HEAD --hard
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# polipo
|
|
||||||
|
|
||||||
polipo-build-stamp:
|
|
||||||
CC="$(CC)" CFLAGS="$(PIEFLAGS)" LDFLAGS="$(PIEFLAGS)" $(MAKE) -C polipo
|
|
||||||
touch polipo-build-stamp
|
|
||||||
|
|
||||||
polipo: polipo-build-stamp
|
|
||||||
test -d bin || mkdir bin
|
|
||||||
cp polipo/polipo bin
|
|
||||||
|
|
||||||
polipo-clean:
|
|
||||||
$(MAKE) -C polipo clean
|
|
||||||
-rm -f polipo/polipo
|
|
||||||
-rm -f bin/polipo
|
|
||||||
-rm -f polipo-build-stamp
|
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
#create and clean assets: FYI - tor is stored as a ZIP file with an mp3 extension
|
#create and clean assets: FYI - tor is stored as a ZIP file with an mp3 extension
|
||||||
#in order to stop Android OS (older devices) from trying to compress/decompress it
|
#in order to stop Android OS (older devices) from trying to compress/decompress it
|
||||||
#this is related to a bug in compression of assets and resources > 1MB
|
#this is related to a bug in compression of assets and resources > 1MB
|
||||||
|
|
||||||
assets: tor polipo
|
assets: tor
|
||||||
install -d ../tor-android-binary/src/main/assets/$(APP_ABI)
|
install -d ../tor-android-binary/src/main/assets/$(APP_ABI)
|
||||||
-$(STRIP) bin/polipo
|
|
||||||
-zip ../tor-android-binary/src/main/assets/$(APP_ABI)/polipo.mp3 bin/polipo
|
|
||||||
-$(STRIP) bin/tor
|
-$(STRIP) bin/tor
|
||||||
-zip ../tor-android-binary/src/main/assets/$(APP_ABI)/tor.mp3 bin/tor
|
-zip ../tor-android-binary/src/main/assets/$(APP_ABI)/tor.mp3 bin/tor
|
||||||
|
|
||||||
assets-clean:
|
assets-clean:
|
||||||
-rm ../tor-android-binary/src/main/assets/$(APP_ABI)/polipo.mp3
|
|
||||||
-rm ../tor-android-binary/src/main/assets/$(APP_ABI)/tor.mp3
|
-rm ../tor-android-binary/src/main/assets/$(APP_ABI)/tor.mp3
|
||||||
|
|
||||||
|
|
||||||
|
@ -319,7 +297,7 @@ assets-clean:
|
||||||
# cleanup, cleanup, put the toys away
|
# cleanup, cleanup, put the toys away
|
||||||
|
|
||||||
##clean: openssl-clean libevent-clean tor-clean polipo-clean assets-clean
|
##clean: openssl-clean libevent-clean tor-clean polipo-clean assets-clean
|
||||||
clean: openssl-clean libevent-clean lzma-clean zstd-clean tor-clean polipo-clean
|
clean: openssl-clean libevent-clean lzma-clean zstd-clean tor-clean
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
# debugging stuff
|
# debugging stuff
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit bdbc1603d05801205dcf47898c9f07dbcfc6febf
|
|
Binary file not shown.
|
@ -1,23 +0,0 @@
|
||||||
proxyAddress = "127.0.0.1"
|
|
||||||
proxyPort = 8118
|
|
||||||
allowedClients = 127.0.0.1
|
|
||||||
allowedPorts = 1-65535
|
|
||||||
proxyName = "127.0.0.1"
|
|
||||||
cacheIsShared = false
|
|
||||||
socksParentProxy = "127.0.0.1:9050"
|
|
||||||
socksProxyType = socks5
|
|
||||||
diskCacheRoot = ""
|
|
||||||
localDocumentRoot = ""
|
|
||||||
disableLocalInterface = true
|
|
||||||
disableConfiguration = true
|
|
||||||
dnsUseGethostbyname = yes
|
|
||||||
disableVia = true
|
|
||||||
censoredHeaders = from,accept-language,x-pad,link
|
|
||||||
censorReferer = maybe
|
|
||||||
maxConnectionAge = 5m
|
|
||||||
maxConnectionRequests = 120
|
|
||||||
serverMaxSlots = 8
|
|
||||||
serverSlots = 2
|
|
||||||
tunnelAllowedPorts = 1-65535
|
|
||||||
chunkHighMark = 512000
|
|
||||||
objectHighMark = 128
|
|
Binary file not shown.
|
@ -3,8 +3,6 @@
|
||||||
|
|
||||||
package org.torproject.android.binary;
|
package org.torproject.android.binary;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
|
||||||
import java.io.DataOutputStream;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
@ -12,7 +10,6 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.io.StringBufferInputStream;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipInputStream;
|
import java.util.zip.ZipInputStream;
|
||||||
|
@ -61,9 +58,6 @@ public class TorResourceInstaller implements TorServiceConstants {
|
||||||
public boolean installResources () throws IOException, TimeoutException
|
public boolean installResources () throws IOException, TimeoutException
|
||||||
{
|
{
|
||||||
|
|
||||||
InputStream is;
|
|
||||||
File outFile;
|
|
||||||
|
|
||||||
String cpuPath = "armeabi";
|
String cpuPath = "armeabi";
|
||||||
|
|
||||||
if (Build.CPU_ABI.contains("x86"))
|
if (Build.CPU_ABI.contains("x86"))
|
||||||
|
@ -73,23 +67,9 @@ public class TorResourceInstaller implements TorServiceConstants {
|
||||||
|
|
||||||
installFolder.mkdirs();
|
installFolder.mkdirs();
|
||||||
|
|
||||||
is = context.getAssets().open(COMMON_ASSET_KEY + TORRC_ASSET_KEY);
|
assetToFile(COMMON_ASSET_KEY + TORRC_ASSET_KEY, TORRC_ASSET_KEY, false, false);
|
||||||
outFile = new File(installFolder, TORRC_ASSET_KEY);
|
|
||||||
streamToFile(is,outFile, false, false);
|
|
||||||
|
|
||||||
is = context.getAssets().open(COMMON_ASSET_KEY + POLIPOCONFIG_ASSET_KEY);
|
assetToFile(cpuPath + '/' + TOR_ASSET_KEY + MP3_EXT, TOR_ASSET_KEY, true, true);
|
||||||
outFile = new File(installFolder, POLIPOCONFIG_ASSET_KEY);
|
|
||||||
streamToFile(is,outFile, false, false);
|
|
||||||
|
|
||||||
is = context.getAssets().open(cpuPath + '/' + TOR_ASSET_KEY + MP3_EXT);
|
|
||||||
outFile = new File(installFolder, TOR_ASSET_KEY);
|
|
||||||
streamToFile(is,outFile, false, true);
|
|
||||||
setExecutable(outFile);
|
|
||||||
|
|
||||||
is = context.getAssets().open(cpuPath + '/' + POLIPO_ASSET_KEY + MP3_EXT);
|
|
||||||
outFile = new File(installFolder, POLIPO_ASSET_KEY);
|
|
||||||
streamToFile(is,outFile, false, true);
|
|
||||||
setExecutable(outFile);
|
|
||||||
|
|
||||||
installGeoIP();
|
installGeoIP();
|
||||||
|
|
||||||
|
@ -114,37 +94,6 @@ public class TorResourceInstaller implements TorServiceConstants {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean updatePolipoConfig (File filePolipo, String extraLines) throws IOException, FileNotFoundException, TimeoutException
|
|
||||||
{
|
|
||||||
|
|
||||||
InputStream is;
|
|
||||||
|
|
||||||
is = context.getAssets().open(COMMON_ASSET_KEY + POLIPOCONFIG_ASSET_KEY);
|
|
||||||
streamToFile(is,filePolipo, false, false);
|
|
||||||
|
|
||||||
if (extraLines != null && extraLines.length() > 0)
|
|
||||||
{
|
|
||||||
StringBufferInputStream sbis = new StringBufferInputStream('\n' + extraLines + '\n');
|
|
||||||
streamToFile(sbis,filePolipo,true,false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean installPolipoConf () throws IOException, FileNotFoundException, TimeoutException
|
|
||||||
{
|
|
||||||
|
|
||||||
InputStream is;
|
|
||||||
File outFile;
|
|
||||||
|
|
||||||
is = context.getAssets().open(COMMON_ASSET_KEY + POLIPOCONFIG_ASSET_KEY);
|
|
||||||
outFile = new File(installFolder, POLIPOCONFIG_ASSET_KEY);
|
|
||||||
streamToFile(is,outFile, false, false);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extract the Tor binary from the APK file using ZIP
|
* Extract the Tor binary from the APK file using ZIP
|
||||||
*/
|
*/
|
||||||
|
@ -152,20 +101,25 @@ public class TorResourceInstaller implements TorServiceConstants {
|
||||||
private boolean installGeoIP () throws IOException
|
private boolean installGeoIP () throws IOException
|
||||||
{
|
{
|
||||||
|
|
||||||
InputStream is;
|
assetToFile(COMMON_ASSET_KEY + GEOIP_ASSET_KEY, GEOIP_ASSET_KEY, false, false);
|
||||||
File outFile;
|
|
||||||
|
|
||||||
outFile = new File(installFolder, GEOIP_ASSET_KEY);
|
assetToFile(COMMON_ASSET_KEY + GEOIP6_ASSET_KEY, GEOIP6_ASSET_KEY, false, false);
|
||||||
is = context.getAssets().open(COMMON_ASSET_KEY + GEOIP_ASSET_KEY);
|
|
||||||
streamToFile(is, outFile, false, false);
|
|
||||||
|
|
||||||
is = context.getAssets().open(COMMON_ASSET_KEY + GEOIP6_ASSET_KEY);
|
|
||||||
outFile = new File(installFolder, GEOIP6_ASSET_KEY);
|
|
||||||
streamToFile(is, outFile, false, false);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reads file from assetPath/assetKey writes it to the install folder
|
||||||
|
*/
|
||||||
|
private void assetToFile(String assetPath, String assetKey, boolean isZipped, boolean isExecutable) throws IOException {
|
||||||
|
InputStream is = context.getAssets().open(assetPath);
|
||||||
|
File outFile = new File(installFolder, assetKey);
|
||||||
|
streamToFile(is, outFile, false, isZipped);
|
||||||
|
if (isExecutable) {
|
||||||
|
setExecutable(outFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write the inputstream contents to the file
|
* Write the inputstream contents to the file
|
||||||
|
|
|
@ -14,12 +14,6 @@ public interface TorServiceConstants {
|
||||||
|
|
||||||
String COMMON_ASSET_KEY = "common/";
|
String COMMON_ASSET_KEY = "common/";
|
||||||
|
|
||||||
//privoxy
|
|
||||||
String POLIPO_ASSET_KEY = "polipo";
|
|
||||||
|
|
||||||
//privoxy.config
|
|
||||||
String POLIPOCONFIG_ASSET_KEY = "torpolipo.conf";
|
|
||||||
|
|
||||||
//geoip data file asset key
|
//geoip data file asset key
|
||||||
String GEOIP_ASSET_KEY = "geoip";
|
String GEOIP_ASSET_KEY = "geoip";
|
||||||
String GEOIP6_ASSET_KEY = "geoip6";
|
String GEOIP6_ASSET_KEY = "geoip6";
|
||||||
|
|
Loading…
Reference in New Issue