Compare commits
No commits in common. "master" and "0.2.3.11-alpha-1.0.7.2-OBFS-FINAL" have entirely different histories.
master
...
0.2.3.11-a
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
|
<classpathentry kind="lib" path="libs/jtorctrl.jar"/>
|
||||||
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
|
</classpath>
|
|
@ -1,68 +0,0 @@
|
||||||
# auto-generated files from Android builds
|
|
||||||
build.xml
|
|
||||||
ant.properties
|
|
||||||
default.properties
|
|
||||||
proguard.cfg
|
|
||||||
proguard-project.txt
|
|
||||||
#
|
|
||||||
releases
|
|
||||||
docs
|
|
||||||
doc
|
|
||||||
.directory
|
|
||||||
|
|
||||||
#built application files
|
|
||||||
*.apk
|
|
||||||
*.ap_
|
|
||||||
|
|
||||||
# files for the dex VM
|
|
||||||
*.dex
|
|
||||||
|
|
||||||
# Java class files
|
|
||||||
*.class
|
|
||||||
|
|
||||||
# subdirs for generated files
|
|
||||||
bin/
|
|
||||||
gen/
|
|
||||||
|
|
||||||
# Local configuration file (sdk path, etc)
|
|
||||||
local.properties
|
|
||||||
|
|
||||||
# Windows thumbnail db
|
|
||||||
Thumbs.db
|
|
||||||
|
|
||||||
# OSX files
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Android Studio
|
|
||||||
*.iml
|
|
||||||
.idea/
|
|
||||||
.gradle/
|
|
||||||
build/
|
|
||||||
|
|
||||||
#tfx
|
|
||||||
.transifexrc
|
|
||||||
|
|
||||||
/external/appcompat/bin/
|
|
||||||
/external/appcompat/gen/
|
|
||||||
/external/bin/
|
|
||||||
/external/include/
|
|
||||||
/external/*-build-stamp
|
|
||||||
/external/lib/
|
|
||||||
/external/privoxy/
|
|
||||||
/external/test.c
|
|
||||||
/external/test.h.gch
|
|
||||||
/external/translation/
|
|
||||||
bin
|
|
||||||
gen
|
|
||||||
native
|
|
||||||
libs/jtorctl.jar
|
|
||||||
local.properties
|
|
||||||
builds
|
|
||||||
external/patches/*
|
|
||||||
obj
|
|
||||||
|
|
||||||
|
|
||||||
app/src/main/jniLibs/
|
|
||||||
app/src/main/libs/
|
|
||||||
orbotservice/src/main/libs/
|
|
||||||
orbotservice/src/main/jniLibs/
|
|
|
@ -1,20 +0,0 @@
|
||||||
[submodule "external/tor"]
|
|
||||||
path = external/tor
|
|
||||||
url = https://git.torproject.org/git/tor.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "external/libevent"]
|
|
||||||
path = external/libevent
|
|
||||||
url = https://github.com/libevent/libevent.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "external/openssl"]
|
|
||||||
path = external/openssl
|
|
||||||
url = https://github.com/openssl/openssl.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "external/zstd"]
|
|
||||||
path = external/zstd
|
|
||||||
url = https://github.com/facebook/zstd.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "external/xz"]
|
|
||||||
path = external/xz
|
|
||||||
url = https://git.tukaani.org/xz.git
|
|
||||||
ignore = dirty
|
|
40
.project
|
@ -5,16 +5,6 @@
|
||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<buildSpec>
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
|
|
||||||
<triggers>full,incremental,</triggers>
|
|
||||||
<arguments>
|
|
||||||
<dictionary>
|
|
||||||
<key>LaunchConfigHandle</key>
|
|
||||||
<value><project>/.externalToolBuilders/org.eclipse.cdt.managedbuilder.core.genmakebuilder.launch</value>
|
|
||||||
</dictionary>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
<buildCommand>
|
||||||
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
||||||
<arguments>
|
<arguments>
|
||||||
|
@ -40,40 +30,10 @@
|
||||||
<arguments>
|
<arguments>
|
||||||
</arguments>
|
</arguments>
|
||||||
</buildCommand>
|
</buildCommand>
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
|
||||||
<triggers>full,incremental,</triggers>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
</buildSpec>
|
||||||
<natures>
|
<natures>
|
||||||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
|
||||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
|
||||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
|
||||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
|
||||||
</natures>
|
</natures>
|
||||||
<filteredResources>
|
|
||||||
<filter>
|
|
||||||
<id>1451443416388</id>
|
|
||||||
<name></name>
|
|
||||||
<type>30</type>
|
|
||||||
<matcher>
|
|
||||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
|
||||||
<arguments>1.0-name-matches-false-false-external</arguments>
|
|
||||||
</matcher>
|
|
||||||
</filter>
|
|
||||||
<filter>
|
|
||||||
<id>1451443416398</id>
|
|
||||||
<name></name>
|
|
||||||
<type>26</type>
|
|
||||||
<matcher>
|
|
||||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
|
||||||
<arguments>1.0-name-matches-false-false-jni</arguments>
|
|
||||||
</matcher>
|
|
||||||
</filter>
|
|
||||||
</filteredResources>
|
|
||||||
</projectDescription>
|
</projectDescription>
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="hide" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
||||||
|
<classpathentry kind="output" path=""/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1 @@
|
||||||
|
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
@ -0,0 +1 @@
|
||||||
|
Window
|
6
AUTHORS
|
@ -36,9 +36,3 @@ in TorTransProxy for handling the "transproxy all" mode of operation. Before
|
||||||
certain system processes were leaking traffic, and this was also detected
|
certain system processes were leaking traffic, and this was also detected
|
||||||
by his excellent auditing.
|
by his excellent auditing.
|
||||||
|
|
||||||
Amogh Pradeep <amoghbl1@gmail.com> submitted a patch to address an issue
|
|
||||||
with the ongoing data transfer notification dying now and then, and is
|
|
||||||
working on improving the notification display in general
|
|
||||||
|
|
||||||
We found a nice new power button vector set here under the CC license:
|
|
||||||
http://vector4free.com/vector/free-vector-power-buttons/
|
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="org.torproject.android"
|
||||||
|
android:versionName="0.2.3.11-alpha-1.0.7.1-OBFS-FA"
|
||||||
|
android:versionCode="33"
|
||||||
|
android:installLocation="auto"
|
||||||
|
>
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||||
|
|
||||||
|
<uses-sdk android:minSdkVersion="4"/>
|
||||||
|
<application android:name=".OrbotApp" android:theme="@style/DefaultTheme" android:icon="@drawable/icon"
|
||||||
|
android:label="@string/app_name" android:debuggable="false">
|
||||||
|
|
||||||
|
<activity android:name=".Orbot"
|
||||||
|
android:theme="@android:style/Theme.NoTitleBar">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<data android:scheme="bridge" />
|
||||||
|
<data android:scheme="bridge+obfs" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<action android:name="org.torproject.android.REQUEST_HS_PORT" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<action android:name="org.torproject.android.START_TOR" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<activity android:name=".wizard.LotsaText"/>
|
||||||
|
<activity android:name=".wizard.Permissions"/>
|
||||||
|
<activity android:name=".wizard.TipsAndTricks"/>
|
||||||
|
<activity android:name=".wizard.ConfigureTransProxy"/>
|
||||||
|
|
||||||
|
<activity android:name=".settings.SettingsPreferences" android:label="@string/app_name"/>
|
||||||
|
<activity android:name=".settings.AppManager" android:label="@string/app_name"/>
|
||||||
|
|
||||||
|
<service android:enabled="true"
|
||||||
|
android:name=".service.TorService"
|
||||||
|
android:exported="false"
|
||||||
|
>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="org.torproject.android.service.ITorService" />
|
||||||
|
<action android:name="org.torproject.android.service.TOR_SERVICE" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
|
||||||
|
<receiver android:name=".OnBootReceiver">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||||
|
<category android:name="android.intent.category.HOME" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
|
</application>
|
||||||
|
|
||||||
|
|
||||||
|
</manifest>
|
174
BUILD
|
@ -1,45 +1,169 @@
|
||||||
|
|
||||||
|
// 2011/04/15 this document is a bit out of date. We will be updating to use
|
||||||
|
// the standalone cross-compiler that is offered by the Android NDK soon
|
||||||
|
|
||||||
This document explains how to properly build an Android package of Orbot from
|
This document explains how to properly build an Android package of Orbot from
|
||||||
source.
|
source. It covers building on Debian Lenny (5.0.3).
|
||||||
|
|
||||||
Orbot includes, in the external directory, git repo submodules of:
|
|
||||||
- Tor
|
|
||||||
- OpenSSL (statically built and patched for Android)
|
|
||||||
- LibEvent
|
|
||||||
- JTorControl: The Tor Control Library for Java
|
|
||||||
|
|
||||||
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 OS SDK: http://source.android.com/download
|
||||||
http://developer.android.com/sdk/ndk/index.html
|
droid-wrapper: http://github.com/tmurakam/droid-wrapper
|
||||||
Android Software Dev Kit or SDK (for Java code):
|
libevent source (1.4.12-stable from svn)
|
||||||
http://developer.android.com/sdk/index.html
|
Tor source (most recent git master branch)
|
||||||
AutoMake and AutoConf tool
|
Privoxy source (http://sourceforge.net/projects/ijbswa/)
|
||||||
sudo apt-get install autotools-dev
|
|
||||||
sudo apt-get install automake
|
|
||||||
sudo apt-get install autogen autoconf libtool gettext-base autopoint
|
|
||||||
|
|
||||||
You will need to run the 'android' command in the SDK to install the necessary
|
Install and prepare the Android OS SDK ( http://source.android.com/download )
|
||||||
Android platform supports (ICS 4.x or android-15)
|
on Debian Lenny:
|
||||||
|
|
||||||
Be sure that you have all of the git submodules up-to-date:
|
sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf \
|
||||||
|
libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip \
|
||||||
|
curl libncurses5-dev zlib1g-dev valgrind libtool automake \
|
||||||
|
ruby subversion
|
||||||
|
update-java-alternatives -s java-1.5.0-sun
|
||||||
|
|
||||||
./tor-droid-make.sh fetch
|
mkdir ~/bin
|
||||||
|
PATH=~/bin:$PATH
|
||||||
|
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
|
||||||
|
chmod a+x ~/bin/repo
|
||||||
|
|
||||||
To begin building, from the Orbot root directory, it builds all submodules and
|
mkdir ~/mydroid
|
||||||
the project.
|
cd ~/mydroid
|
||||||
|
|
||||||
./tor-droid-make.sh build
|
repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1
|
||||||
|
repo sync
|
||||||
|
|
||||||
|
# Paste in key from http://source.android.com/download next...
|
||||||
|
gpg --import
|
||||||
|
|
||||||
|
cd ~/mydroid
|
||||||
|
|
||||||
|
# This takes a long while...
|
||||||
|
make
|
||||||
|
|
||||||
|
Install droid-wrapper:
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
git clone git://github.com/tmurakam/droid-wrapper.git
|
||||||
|
cd droid-wrapper
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
zlib and OpenSSL are included with the Android OS SDK. You'll need to build
|
||||||
|
libevent, Privoxy and finally Tor. We'll create an externals directory for this code:
|
||||||
|
|
||||||
|
mkdir -p ~/mydroid/external/{libevent,tor,privoxy}
|
||||||
|
|
||||||
|
We need to set to environment variables for droid-gcc:
|
||||||
|
export DROID_ROOT=~/mydroid/
|
||||||
|
export DROID_TARGET=generic
|
||||||
|
|
||||||
|
Fetch and build Privoxy:c
|
||||||
|
cd ~/mydroid/external/privoxy
|
||||||
|
wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz/download
|
||||||
|
tar xzvf privoxy-3.0.12-stable-src.tar.gz
|
||||||
|
cd privoxy-3.0.12-stable
|
||||||
|
autoheader
|
||||||
|
autoconf
|
||||||
|
#need to disable setpgrp check in configure
|
||||||
|
export ac_cv_func_setpgrp_void=yes
|
||||||
|
CC=droid-gcc LD=droid-ld CPPFLAGS="-I$DROID_ROOT/external/zlib/" ./configure --host=arm-none-linux-gnueabi
|
||||||
|
#don't mind the "unrecognized option '-pthread'" error message that you'll see when you run make
|
||||||
|
make
|
||||||
|
|
||||||
|
Fetch and build libevent:
|
||||||
|
|
||||||
|
cd ~/mydroid/external/libevent
|
||||||
|
svn co https://levent.svn.sourceforge.net/svnroot/levent/tags/release-1.4.13-stable/libevent/ .
|
||||||
|
export LIBEVENTDIR=`cd $DROID_ROOT/external/libevent && pwd`
|
||||||
|
./autogen.sh
|
||||||
|
# Put the contents of http://pastebin.ca/1577207 in /tmp/libevent-patch
|
||||||
|
# path no longer needed: patch < /tmp/libevent-patch
|
||||||
|
CC=droid-gcc LD=droid-ld ./configure --host=arm-none-linux-gnueabi
|
||||||
|
make
|
||||||
|
|
||||||
|
Copy over the libevent library:
|
||||||
|
cp .libs/libevent.a $DROID_ROOT/out/target/product/generic/obj/lib
|
||||||
|
|
||||||
|
Fetch and build Tor:
|
||||||
|
|
||||||
|
export OPENSSLDIR=`cd $DROID_ROOT/external/openssl/include/ && pwd`
|
||||||
|
export ZLIBDIR=`cd $DROID_ROOT/external/zlib && pwd`
|
||||||
|
|
||||||
|
cd $DROID_ROOT/external/tor
|
||||||
|
git clone git://git.torproject.org/git/tor.git
|
||||||
|
cd tor/
|
||||||
|
./autogen.sh
|
||||||
|
CC=droid-gcc LD=droid-ld ./configure --host=arm-none-linux-gnueabi \
|
||||||
|
--with-libevent-dir=$LIBEVENTDIR --with-openssl-dir=$OPENSSLDIR \
|
||||||
|
--with-zlib-dir=$ZLIBDIR --disable-asciidoc
|
||||||
|
make
|
||||||
|
|
||||||
|
At this point, you'll have a Tor binary that can be run on an Android handset.
|
||||||
|
You can verify the ARM binary was properly built using the following command:
|
||||||
|
|
||||||
|
file src/or/tor
|
||||||
|
|
||||||
|
You should see something like:
|
||||||
|
src/or/tor: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
|
||||||
|
|
||||||
|
This isn't enough though and we'll now sew up the binary into a small package
|
||||||
|
that will handle basic Tor controlling features.
|
||||||
|
|
||||||
|
We need to get the TorControl library for Java:
|
||||||
|
(see also https://svn.torproject.org/svn/torctl/trunk/doc/howto.txt)
|
||||||
|
|
||||||
|
git clone git://git.torproject.org/git/jtorctl
|
||||||
|
cd jtorctl
|
||||||
|
mkdir bin
|
||||||
|
javac net/freehaven/tor/control/TorControlConnection.java -d bin
|
||||||
|
cd bin
|
||||||
|
jar cvf jtorctrl.jar *
|
||||||
|
cp jtorctrl.jar {Orbot Home}/libs
|
||||||
|
|
||||||
|
Finally, we'll make a proper Android package with ant and the Android App SDK:
|
||||||
|
|
||||||
|
export APP_SDK=~/Documents/projects/android/android-sdk-linux_x86-1.5_r3/tools
|
||||||
|
cd ../Orbot/
|
||||||
|
cp $DROID_ROOT/external/privoxy/privoxy-3.0.12-stable/privoxy assets/privoxy
|
||||||
|
|
||||||
|
Now you need to split and copy the tor binary into res/raw. We split it into < 1M chunks
|
||||||
|
because some Android devices don't like resources larger than 1M.
|
||||||
|
|
||||||
|
split --bytes=1m $DROID_ROOT/external/tor/tor/src/or/tor res/raw/tor
|
||||||
|
|
||||||
Now build the Android app
|
Now build the Android app
|
||||||
|
$APP_SDK/android update project --name Orbot --target 3 --path .
|
||||||
|
ant release
|
||||||
|
|
||||||
(gradle / android studio instructions here)
|
This will produce an unsigned Tor package in ./bin/Orbot-unsigned.apk!
|
||||||
|
|
||||||
This will produce an unsigned Tor package APK.
|
|
||||||
|
|
||||||
To produce a usable package, you'll need to sign the .apk. The basics on
|
To produce a usable package, you'll need to sign the .apk. The basics on
|
||||||
signing can be found on the Android developer site:
|
signing can be found on the Android developer site:
|
||||||
|
|
||||||
http://developer.android.com/guide/publishing/app-signing.html
|
http://developer.android.com/guide/publishing/app-signing.html
|
||||||
|
|
||||||
|
The three steps are quite simple. First, you'll generate a key. Secondly,
|
||||||
|
you'll sign the application. Thirdly, you'll verify the the apk.
|
||||||
|
|
||||||
|
Generating a signing key:
|
||||||
|
|
||||||
|
keytool -genkey -v -keystore my-release-key.keystore \
|
||||||
|
-alias orbots_key -keyalg RSA -validity 10000
|
||||||
|
|
||||||
|
Sign the apk:
|
||||||
|
|
||||||
|
jarsigner -verbose -keystore my-release-key.keystore \
|
||||||
|
bin/Orbot-unsigned.apk orbots_key
|
||||||
|
|
||||||
|
Verify the signature for the apk:
|
||||||
|
|
||||||
|
jarsigner -verify bin/Orbot-unsigned.apk
|
||||||
|
mv bin/Orbot-unsigned.apk bin/Orbot-signed-alpha.apk
|
||||||
|
|
||||||
|
You can also GPG sign the apk and generate an .asc:
|
||||||
|
|
||||||
|
gpg -ab Orbot-signed-alpha.apk
|
||||||
|
|
||||||
|
Now you should have a fully signed and production ready alpha release of Orbot!
|
||||||
|
Give bin/Orbot-signed-alpha.apk an install and send us bug reports!
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,141 @@
|
||||||
|
NOTE: Specific #s below correspond to Trac tickets logged and maintained at https://trac.torproject.org/projects/tor/
|
||||||
|
|
||||||
|
1.0.7
|
||||||
|
- reduced data folder size by making geoip file only installed on demand
|
||||||
|
- added options for turning of persistent notification
|
||||||
|
- enabled access to localhost ports for SOCKS, HTTP, etc even when transproxy is on
|
||||||
|
- improved handling of tor and privoxy binary upgrades
|
||||||
|
- updated openssl to 1.0.0f to address recent SSLv3 threat
|
||||||
|
- check for root mode uses "which su" command and does not look for Superuser.apk
|
||||||
|
- changed tor binary res/raw storage mechanism to use the "mp3" file ext trick
|
||||||
|
|
||||||
|
1.0.6.1
|
||||||
|
- small fixes to wizard UI
|
||||||
|
- fixed "exit" problem, after running wizard
|
||||||
|
|
||||||
|
1.0.6
|
||||||
|
- updated tablet layout graphic sizing
|
||||||
|
- stopped Orweb from being transparent proxied (not needed)
|
||||||
|
- updated to Tor 0.2.3.7-alpha binary
|
||||||
|
- geoip database now included for exit/entrace node control
|
||||||
|
- stopped iptables rule purging if transproxy is not enabled (conflicted with DroidWall and others)
|
||||||
|
|
||||||
|
1.0.5.3
|
||||||
|
- added auto-tor of wireless and usb tethering
|
||||||
|
- integrated new setup wizard
|
||||||
|
- moved large tor binary into split multiple 1M segments to fix for devices with 1M resource limit
|
||||||
|
|
||||||
|
1.0.5.1/.2
|
||||||
|
- small updates to layout of main screen to fit smaller screens
|
||||||
|
- fixed preference setting of EntryNode torrc value
|
||||||
|
|
||||||
|
1.0.5
|
||||||
|
- added exit node and "StrictExitNode" preference
|
||||||
|
- fixed tor binary installation issue related to max resource size and compression
|
||||||
|
- updated "start on boot" code to test for proper launch event
|
||||||
|
- updated to Tor 0.2.2.25-alpha binary
|
||||||
|
- moved back to single notification bar id to avoid double entries
|
||||||
|
- cleaned up progress dialog and alert handling to avoid leaky windows
|
||||||
|
- Merged __sporkbomb's patch for how transproxy all works; now does "everything but Tor"
|
||||||
|
- Added new toolbar notifications and alerts for displaying notifications and Tor messages
|
||||||
|
- Removed unused Socks client code from android.net package
|
||||||
|
- Updated wizard to show link to Gibberbot (formerly OTRchat) chat app
|
||||||
|
- Bundled iptables 1.4.7 for ARM instead of relying on installed version
|
||||||
|
- Fixed various issues related to iptables, transproxying for CyanogenMod7/Android 2.3.*
|
||||||
|
- Changed how settings changed are processed through the control port (batched instead of one by one)
|
||||||
|
- Stopped app by app flushing of iptables rules, in favor of complete flush of 'nat' and 'filter' type
|
||||||
|
- removed useless log screen (logs can be viewed/retrieved using 'alogcat' 3rd party app)
|
||||||
|
|
||||||
|
1.0.4
|
||||||
|
- Added Russian, Persian, Arabic and other .po translations (see res/values-* folders)
|
||||||
|
- Fixed incorrect try to clear iptables rules for non-root devices
|
||||||
|
- Fixed bug that stopped wizard helper from showing first time
|
||||||
|
- Added new green notification icon when Tor is connected
|
||||||
|
- Fixed app selector layout in settings
|
||||||
|
- Moved minSDK to 4 (Android 1.6); discontinued 1.5 support
|
||||||
|
- Fixed log screen touch disable tor bug
|
||||||
|
- Debugged issues around network status change causing FC/crash
|
||||||
|
- Added "Start on Boot" option
|
||||||
|
|
||||||
|
1.0.3
|
||||||
|
- Fixed spanish language issues with settings screen
|
||||||
|
- Cleaned up logging, and moved most of it to debug output only
|
||||||
|
- Small changes to iptables, transproxy settings to handle iptables 1.3 and 1.4 variations
|
||||||
|
- Added compile time variable/flag for turning on/off detailed control port output to Android stdout
|
||||||
|
- Hidden services now support through option in settings
|
||||||
|
- removed double apostrophes from value/strings.xml files
|
||||||
|
|
||||||
|
1.0.2
|
||||||
|
- Added "check" yes/no dialog prompt
|
||||||
|
- Debugged iptables/transprox settings on Android 1.6 and 2.2
|
||||||
|
- Added proxy settings help screen and fixed processSettings() NPE
|
||||||
|
|
||||||
|
1.0.1
|
||||||
|
- Found and fixed major bug in per-app trans proxying; list of apps was being cached and iptables rules were not properly updated as the user changed the selection in the list
|
||||||
|
|
||||||
|
1.0.0 - 2010-08-10
|
||||||
|
- Added "Proxy Settings" help screen
|
||||||
|
- Handle potential null pointers on process settings where service not yet active
|
||||||
|
|
||||||
|
0.0.9x - 2010-08-03
|
||||||
|
- Revised Orbot install wizard
|
||||||
|
- Integrated Tor 0.2.2.14 and iptables 4.x binary
|
||||||
|
- Fixed "got root" detection method
|
||||||
|
- Fixed Per App Torification handling so it updates on exit from Settings screen
|
||||||
|
|
||||||
|
0.0.8x - 2010-07-15
|
||||||
|
- Updated Settings & App configuration screens
|
||||||
|
- Changed progress dialog display
|
||||||
|
- Significant application re-arch
|
||||||
|
- Fixed force stop crash on install
|
||||||
|
- Integrated Tor 0.2.2.13-alpha-dev binary
|
||||||
|
- Fixed su shell cmd error handling & root perms issue
|
||||||
|
- #1570: Added new setup wizard on install to clarify root / non-root capabilities
|
||||||
|
- #1716: Per-app traffic routing prefs not persisted
|
||||||
|
- #1509: Help window is too big for the screen on android 1.6
|
||||||
|
- #1513: Orbot can't be told to exit <-- added 'Exit' menu option
|
||||||
|
- #1530: Capture sh cmd stout for debugging errors <-- updated debug log screen
|
||||||
|
- #1531: Don't loop ad infinitum in Orbot fails <-- only retries 3 times now
|
||||||
|
- #1272: Orbot should store Tor files in the cache
|
||||||
|
- #1273: Info should mention anonymity problems with ProxySurf
|
||||||
|
|
||||||
|
0.0.5x
|
||||||
|
- #1388: Error parsing PID from output of "ps"
|
||||||
|
- #1277, #1278: Enabling bridges issues
|
||||||
|
- #1279: Misleading message when initialization is finished
|
||||||
|
- #1292: Tor version in About screen is wrong
|
||||||
|
|
||||||
|
0.0.3x - 2010-03-15
|
||||||
|
- Added Start/Stop menu item for non-touch activation
|
||||||
|
- Improved parsing and validation of settings screen
|
||||||
|
- UI now compatible with landscape mode (#1276)
|
||||||
|
- Added relay support for static/publicly accessible IP devices
|
||||||
|
|
||||||
|
0.0.3a - 2010-02-07
|
||||||
|
- Integrated iptables support for transparent proxying of outbound port
|
||||||
|
80 and DNS
|
||||||
|
- Privoxy is now used as HTTP Proxy server (cross-compiled to ARM)
|
||||||
|
- New UI layout and graphics
|
||||||
|
- Android settings screen for generated torrc file
|
||||||
|
- Improved performance and error handling
|
||||||
|
|
||||||
|
0.0.2a - 2009-11-30
|
||||||
|
- Update user interface layout and graphics
|
||||||
|
- Modified service launch, shutdown and handling
|
||||||
|
- Improved event handler on Tor Control port callbacks
|
||||||
|
- Added Help page
|
||||||
|
|
||||||
|
0.0.2 - 2009-11-27
|
||||||
|
- Major improvement to the user interface including relative layout for
|
||||||
|
different screens
|
||||||
|
- New graphics resources
|
||||||
|
- Implemented Tor Control Port using official Java library
|
||||||
|
- Added 'clear' button to the log screen
|
||||||
|
- Added 'save' and editable textbox for the settings screen
|
||||||
|
- Moved screen navigation to a pop-up menu
|
||||||
|
|
||||||
|
0.0.1-alpha - 2009-10-21
|
||||||
|
- First code release
|
||||||
|
- Major Features: Tor binary application is fully operational, UI:
|
||||||
|
Start/Stop Tor, View Message Log, View Settings (torrc)
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
GSoC Plan
|
||||||
|
=========
|
||||||
|
|
||||||
|
A tl;dr version
|
||||||
|
---------------
|
||||||
|
I will be improving the Orbot UI/UX, and adding several features such as data statistics and also
|
||||||
|
implementing the TorCheck API. I plan on extending the ORLib library and also creating an ORLib enabled
|
||||||
|
app as a sort of primer for other third party apps to follow
|
||||||
|
|
||||||
|
The full version
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Orbot UI/UX
|
||||||
|
===========
|
||||||
|
At the moment, the Orbot UI/UX is clustered and not very intuitive. I plan on improving the existing
|
||||||
|
elements of the UI and also add a variety of new features such as
|
||||||
|
|
||||||
|
* A new Set – up Wizard ( which checks for iptables )
|
||||||
|
* Changes to the preferences ( should be made to follow the Android guidelines)
|
||||||
|
|
||||||
|
Orbot Core app work
|
||||||
|
===================
|
||||||
|
At the moment, Orbot displays a successful connection without actually checking the connection. This is a
|
||||||
|
pressing issue, because the user is not notified if the set-up has failed, unless he/she manually checks
|
||||||
|
the torcheck web service. This should be made automatic by making using of the TorCheck API. Also, Orbot
|
||||||
|
should be configured to show more information about the data being transmitted such as -
|
||||||
|
|
||||||
|
* Amount of data transferred
|
||||||
|
* Quality of the connection
|
||||||
|
* Number of circuits connected
|
||||||
|
|
||||||
|
ORLib
|
||||||
|
=====
|
||||||
|
Currently, ORLib is very minimal at the moment, both in term of features and support/documentation. ORLib
|
||||||
|
is very critical to the use of Orbot as it provides transparent proxying on non-rooted devices ( A major
|
||||||
|
chunk of android phones are un-rooted). I intend to -
|
||||||
|
|
||||||
|
* Improve the existing library by adding additional features
|
||||||
|
* Check for existing of Orbot
|
||||||
|
* Check status of connection to Tor
|
||||||
|
* Provide option to start Orbot via intent
|
||||||
|
* Request hidden service by port, and get return hidden service .onion address
|
||||||
|
* Create an ORLib enabled “Twitter, Status.net or other micro blogging Client” – A sort of primer for
|
||||||
|
third-party apps
|
||||||
|
* Improve the documentation
|
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
Orbot: Android Onion Routing Robot
|
||||||
|
***********************************************
|
||||||
|
Android is a freely licensed open-source application developed for the
|
||||||
|
Android platform. It acts as a front-end to the Tor binary application,
|
||||||
|
and also provides an HTTP Proxy for connecting web browsers and other
|
||||||
|
HTTP client applications into the Tor SOCKS interface.
|
||||||
|
|
||||||
|
*** PreReqs ***
|
||||||
|
You need the Android Developer SDK to compile and build the APK file:
|
||||||
|
http://developer.android.com/
|
||||||
|
The project files including in this distribution are meant to be used
|
||||||
|
with Eclipse: http://eclipse.org/
|
||||||
|
|
||||||
|
*** How to use ***
|
||||||
|
Currently, Orbot will work with any application that supports using
|
||||||
|
an HTTP or SOCKS Proxy. Once you start Tor using Orbot, you can then
|
||||||
|
point your application to HTTP port 8118 or SOCKS port 9050 on localhost
|
||||||
|
IP 127.0.0.1.
|
||||||
|
|
||||||
|
If you have root access, and a version of Android with iptables that
|
||||||
|
supports the netfilter owner module, then Orbot can setup transparent
|
||||||
|
proxying for any application.
|
||||||
|
|
||||||
|
Finally, Firefox on Android is available, and we have released an
|
||||||
|
add-on named ProxyMob for configuring SOCKS proxy settings for use
|
||||||
|
with the local Tor socks proxy.
|
||||||
|
|
||||||
|
** A Few Notes **
|
||||||
|
|
||||||
|
To ensure you are connected to the Tor network, you should browse to
|
||||||
|
https://check.torproject.org/
|
||||||
|
|
||||||
|
The first time you activate Orbot, it may take a while to connect to
|
||||||
|
Tor. Check the message log to ensure you are "100% Bootstrapped".
|
||||||
|
|
||||||
|
***********************************************
|
||||||
|
|
||||||
|
/* Copyright (c) 2009,2010,2011, Nathan Freitas, The Guardian Project
|
||||||
|
* http://guardianproject.info/ */
|
64
LICENSE
|
@ -41,41 +41,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
*****
|
|
||||||
|
|
||||||
===============================================================================
|
|
||||||
Orbot includes the Obfs4 pluggable transport:
|
|
||||||
https://gitweb.torproject.org/pluggable-transports/obfs4.git
|
|
||||||
|
|
||||||
Copyright (c) 2014, Yawning Angel <yawning at torproject dot org>
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
===============================================================================
|
|
||||||
|
|
||||||
|
|
||||||
*****
|
|
||||||
|
|
||||||
*****
|
*****
|
||||||
Orbot contains a binary distribution of Privoxy (http://www.privoxy.org/)
|
Orbot contains a binary distribution of Privoxy (http://www.privoxy.org/)
|
||||||
Copyright © 2001-2010 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
Copyright © 2001-2010 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
||||||
|
@ -193,32 +158,3 @@ is explicitely stated in the header of every file.
|
||||||
The GPL also contains some obligations. If you distribute netfilter/iptables code
|
The GPL also contains some obligations. If you distribute netfilter/iptables code
|
||||||
in binary form, you have to offer the source code, too.
|
in binary form, you have to offer the source code, too.
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
||||||
===============================================================================
|
|
||||||
Orbot also includes BadVPN tun2socks: https://github.com/ambrop72/badvpn
|
|
||||||
|
|
||||||
Copyright (c) 2009, Ambroz Bizjak <ambrop7@gmail.com>
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
* Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
* Neither the name of the author nor the
|
|
||||||
names of its contributors may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
===============================================================================
|
|
||||||
|
|
33
README
|
@ -1,28 +1,15 @@
|
||||||
|
|
||||||
Tor Android
|
Orbot: Android Onion Routing Robot
|
||||||
***********************************************
|
***********************************************
|
||||||
This is a project forked from Orbot for building the tor binary for Android
|
Orbot is a freely licensed open-source application developed for the
|
||||||
|
Android platform. It acts as a front-end to the Tor binary application,
|
||||||
|
and also provides an HTTP Proxy for connecting web browsers and other
|
||||||
|
HTTP client applications into the Tor SOCKS interface.
|
||||||
|
|
||||||
How to Build
|
|
||||||
***********************************************
|
***********************************************
|
||||||
Please see: https://raw.githubusercontent.com/n8fr8/tor-android/master/BUILD
|
Orbot is a component of the Guardian Project, an effort to develop
|
||||||
|
a secure, anonymous smartphone for use by human rights activists, journalists
|
||||||
How to Use via Gradle
|
and others around the world. Learn more: http://guardianproject.info/
|
||||||
***********************************************
|
|
||||||
|
|
||||||
Add the repository your list as shown:
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven { url "https://raw.githubusercontent.com/guardianproject/gpmaven/master" }
|
|
||||||
}
|
|
||||||
|
|
||||||
and then add the dependency, setting it to the latest version (or any version) we have made available, as a release:
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile 'org.torproject:tor-android-binary:0.3.1.9'
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
***********************************************
|
***********************************************
|
||||||
Tor protects your privacy on the internet by hiding the connection
|
Tor protects your privacy on the internet by hiding the connection
|
||||||
|
@ -34,3 +21,7 @@ Tor Frequently Asked Questions:
|
||||||
https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ
|
https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ
|
||||||
https://www.torproject.org/faq.html.en
|
https://www.torproject.org/faq.html.en
|
||||||
|
|
||||||
|
***********************************************
|
||||||
|
|
||||||
|
/* Copyright (c) 2009-2010, Nathan Freitas, The Guardian Project
|
||||||
|
* http://guardianproject.info/ */
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
|
||||||
|
.
|
||||||
|
└── org
|
||||||
|
└── torproject
|
||||||
|
└── android
|
||||||
|
├── AppManager.java
|
||||||
|
//this is what helps us track the app-by-app torification
|
||||||
|
//and gets the app name, icon, etc for display - we have some problems here
|
||||||
|
//in normalizing the icon on the list label
|
||||||
|
//some of this code came originally from DroidWall project (yay open source)
|
||||||
|
|
||||||
|
├── boot
|
||||||
|
│ └── OnbootBroadcastReceiver.java
|
||||||
|
//i think this is a dup now and should be removed
|
||||||
|
|
||||||
|
├── HiddenServiceManager.java
|
||||||
|
//empty! but at some point i thought it would be good to aggregate HS functions here
|
||||||
|
|
||||||
|
├── OnBootReceiver.java
|
||||||
|
//this is the class registered in AndroidManifest.xml to handle Onboot events
|
||||||
|
//to start Orbot/Tor when the device boots if the user has elected to do so - what kind of permissions does this require?
|
||||||
|
// <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||||
|
// BTW, this shows up as a fairly unintrusive type perm request now in Android / in older versions (1.6 and earlier)
|
||||||
|
// it was reported "as read / monitor phone state" and paranoid Tor-types didn't like the idea of it
|
||||||
|
// in 1.6+ it has a much better UX in terms of having a more granular permisions around boot since it is a very
|
||||||
|
// common request - ah , that's awesome, i think i remember seeing sth of this sorts when i was going through the guardianproject mailing list. iirc this is something ioerror wanted
|
||||||
|
|
||||||
|
|
||||||
|
├── Orbot.java
|
||||||
|
//our wonderful main activity!
|
||||||
|
|
||||||
|
├── ProcessSettingsAsyncTask.java
|
||||||
|
//this was just added in 1.0.5.x, but it was meant to help stop the UI blocking while processing settings and prefs
|
||||||
|
//it uses the AsyncTask feature of Android, which seems to work pretty well
|
||||||
|
//for this type of non-time critical function you just want to happen in the background at some point soon-ish
|
||||||
|
|
||||||
|
├── SettingsPreferences.java
|
||||||
|
// Settings activity that loads the res/xml/preferences.xml resource up
|
||||||
|
// has some custom event handlng, onActivityResult callback result code's as well
|
||||||
|
// basically meant to tell Orbot activity if critical settings have been modified and whether
|
||||||
|
// those new settings should be applied (like iptables/transproxy changes)
|
||||||
|
|
||||||
|
├── TorConstants.java
|
||||||
|
// globals! well, constants! but yeah, just a place to put values we use a lot
|
||||||
|
|
||||||
|
├── TorifiedApp.java
|
||||||
|
// object to store a single app's metadata for display in UI and for transproxy process
|
||||||
|
|
||||||
|
├── Utils.java
|
||||||
|
// random methods that can be useful, a.k.a. another place to put stuff
|
||||||
|
|
||||||
|
├── WizardActivity.java
|
||||||
|
// our original attempt at wizard activity that didn't get far
|
||||||
|
|
||||||
|
└── WizardHelper.java
|
||||||
|
// the helper class that manages the dialog based wizard
|
||||||
|
|
||||||
|
├── service //okay the Service subpackage!
|
||||||
|
|
||||||
|
│ ├── Api.java
|
||||||
|
//this is more code taken from DroidWall, that needs to be cleaned up and paired down to just what we need it for
|
||||||
|
//this is related to 1.0.5.x changes with how we bundle and install our C binaries (tor, privoxy and iptables)
|
||||||
|
|
||||||
|
│ ├── ITorService.aidl
|
||||||
|
// the android remote interface definition file;
|
||||||
|
// this is the remote interface which the Orbot activity gets a reference to
|
||||||
|
// and that in the TorService is instantiated as the "binder"
|
||||||
|
|
||||||
|
│ ├── ITorServiceCallback.aidl
|
||||||
|
// this is the callback interface that the Orbot activity instantiates, and passes
|
||||||
|
// to the ITorService; reverse of ITorService in a sense
|
||||||
|
|
||||||
|
│ ├── TorBinaryInstaller.java
|
||||||
|
// this handles installation of binaries; uses Api.java; // tied into Wizard as well
|
||||||
|
|
||||||
|
│ ├── TorServiceConstants.java
|
||||||
|
// reusable constants for just the Service package
|
||||||
|
|
||||||
|
│ ├── TorService.java
|
||||||
|
// the main might powerful service class; Orbot and TorService are the front and backends of this whole app
|
||||||
|
// should run as a remote service, but the manifest doesn't seem to indicate that at the moment
|
||||||
|
|
||||||
|
│ ├── TorServiceUtils.java
|
||||||
|
//utility methods for the service; specificaly check for root and tools for finding processID of background binaries
|
||||||
|
|
||||||
|
│ └── TorTransProxy.java
|
||||||
|
// all the code for iptables transproxying management
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
<!-- Proguard Properties -->
|
||||||
|
<property name="obfuscate.dir" value="obf" />
|
||||||
|
<property name="obfuscate.absolute.dir" location="${obfuscate.dir}" />
|
||||||
|
<property name="android-jar-preobfuscate" value="${obfuscate.absolute.dir}/original.jar" />
|
||||||
|
<property name="android-jar-postobfuscate" value="${obfuscate.absolute.dir}/postobf.jar" />
|
||||||
|
<property name="out.dex.input.absolute.dir" value="${android-jar-postobfuscate}" />
|
||||||
|
|
||||||
|
<!-- replaces the post-compile step from ant_rules_r3 -->
|
||||||
|
<target name="-post-compile" depends="-dex-obfuscate,-dex-no-obfuscate">
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="-dex-no-obfuscate" unless="build.mode.release">
|
||||||
|
<mkdir dir="${obfuscate.absolute.dir}" />
|
||||||
|
<jar basedir="${out.dir}/classes" destfile="${android-jar-postobfuscate}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<!-- Converts this project's .class files into .dex files -->
|
||||||
|
<target name="-dex-obfuscate" if="build.mode.release">
|
||||||
|
<property name="proguard-jar" value="${proguard.dir}/proguard.jar" />
|
||||||
|
<property name="proguard-conf.dir" value="" />
|
||||||
|
<property name="proguard-conf.absolute.dir" location="${proguard-conf.dir}" />
|
||||||
|
<property name="proguard-conf" value="${proguard-conf.absolute.dir}/procfg.txt" />
|
||||||
|
<path id="fullclasspath">
|
||||||
|
<path refid="android.target.classpath"/>
|
||||||
|
<pathelement path="${external.libs.dir}"/>
|
||||||
|
</path>
|
||||||
|
<property name="libraryjarpath" refid="fullclasspath"/>
|
||||||
|
<!-- Add Proguard Task -->
|
||||||
|
<taskdef resource="proguard/ant/task.properties" classpath="${proguard-jar}" />
|
||||||
|
|
||||||
|
<mkdir dir="${obfuscate.absolute.dir}" />
|
||||||
|
<delete file="${android-jar-preobfuscate}"/>
|
||||||
|
<delete file="${android-jar-postobfuscate}"/>
|
||||||
|
<jar basedir="${out.classes.dir}" destfile="${android-jar-preobfuscate}" />
|
||||||
|
<proguard>
|
||||||
|
@${proguard-conf}
|
||||||
|
-injars ${android-jar-preobfuscate}
|
||||||
|
-outjars ${android-jar-postobfuscate}
|
||||||
|
-libraryjars ${libraryjarpath}
|
||||||
|
-dump ${obfuscate.absolute.dir}/dump.txt
|
||||||
|
-printseeds ${obfuscate.absolute.dir}/seeds.txt
|
||||||
|
-printusage ${obfuscate.absolute.dir}/usage.txt
|
||||||
|
-printmapping ${obfuscate.absolute.dir}/mapping.txt
|
||||||
|
</proguard>
|
||||||
|
</target>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Manifest-Version: 1.0
|
||||||
|
Sealed: true
|
||||||
|
|
17
build.gradle
|
@ -1,17 +0,0 @@
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:3.2.0'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE project [
|
||||||
|
<!ENTITY add-proguard-release SYSTEM "add-proguard-release.xml">
|
||||||
|
]>
|
||||||
|
<project name="Orbot" default="help">
|
||||||
|
<!-- The local.properties file is created and updated by the 'android' tool.
|
||||||
|
It contains the path to the SDK. It should *NOT* be checked into
|
||||||
|
Version Control Systems. -->
|
||||||
|
<loadproperties srcFile="local.properties" />
|
||||||
|
|
||||||
|
<!-- The ant.properties file can be created by you. It is only edited by the
|
||||||
|
'android' tool to add properties to it.
|
||||||
|
This is the place to change some Ant specific build properties.
|
||||||
|
Here are some properties you may want to change/update:
|
||||||
|
|
||||||
|
source.dir
|
||||||
|
The name of the source directory. Default is 'src'.
|
||||||
|
out.dir
|
||||||
|
The name of the output directory. Default is 'bin'.
|
||||||
|
|
||||||
|
For other overridable properties, look at the beginning of the rules
|
||||||
|
files in the SDK, at tools/ant/build.xml
|
||||||
|
|
||||||
|
Properties related to the SDK location or the project target should
|
||||||
|
be updated using the 'android' tool with the 'update' action.
|
||||||
|
|
||||||
|
This file is an integral part of the build system for your
|
||||||
|
application and should be checked into Version Control Systems.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<property file="ant.properties" />
|
||||||
|
|
||||||
|
<!-- The project.properties file is created and updated by the 'android'
|
||||||
|
tool, as well as ADT.
|
||||||
|
|
||||||
|
This contains project specific properties such as project target, and library
|
||||||
|
dependencies. Lower level build properties are stored in ant.properties
|
||||||
|
(or in .classpath for Eclipse projects).
|
||||||
|
|
||||||
|
This file is an integral part of the build system for your
|
||||||
|
application and should be checked into Version Control Systems. -->
|
||||||
|
<loadproperties srcFile="project.properties" />
|
||||||
|
|
||||||
|
<!-- quick check on sdk.dir -->
|
||||||
|
<fail
|
||||||
|
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
|
||||||
|
unless="sdk.dir"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- extension targets. Uncomment the ones where you want to do custom work
|
||||||
|
in between standard targets -->
|
||||||
|
<!--
|
||||||
|
<target name="-pre-build">
|
||||||
|
</target>
|
||||||
|
<target name="-pre-compile">
|
||||||
|
</target>
|
||||||
|
|
||||||
|
/* This is typically used for code obfuscation.
|
||||||
|
Compiled code location: ${out.classes.absolute.dir}
|
||||||
|
If this is not done in place, override ${out.dex.input.absolute.dir} */
|
||||||
|
<target name="-post-compile">
|
||||||
|
</target>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Import the actual build file.
|
||||||
|
|
||||||
|
To customize existing targets, there are two options:
|
||||||
|
- Customize only one target:
|
||||||
|
- copy/paste the target into this file, *before* the
|
||||||
|
<import> task.
|
||||||
|
- customize it to your needs.
|
||||||
|
- Customize the whole content of build.xml
|
||||||
|
- copy/paste the content of the rules files (minus the top node)
|
||||||
|
into this file, replacing the <import> task.
|
||||||
|
- customize to your needs.
|
||||||
|
|
||||||
|
***********************
|
||||||
|
****** IMPORTANT ******
|
||||||
|
***********************
|
||||||
|
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
|
||||||
|
in order to avoid having your file be overridden by tools such as "android update project"
|
||||||
|
-->
|
||||||
|
<!-- version-tag: 1 -->
|
||||||
|
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||||
|
|
||||||
|
&add-proguard-release;
|
||||||
|
</project>
|
|
@ -0,0 +1 @@
|
||||||
|
proguard.config=proguard.cfg
|
|
@ -1,314 +0,0 @@
|
||||||
# Please install the following prerequisites (instructions for each follows):
|
|
||||||
# Android OS SDK: http://source.android.com/download
|
|
||||||
#
|
|
||||||
# Install and prepare the Android OS SDK ( http://source.android.com/download )
|
|
||||||
# on Debian or Ubuntu
|
|
||||||
|
|
||||||
### these modify the calling shell
|
|
||||||
# workaround for cross-compiling bug in autoconf
|
|
||||||
export ac_cv_func_malloc_0_nonnull=yes
|
|
||||||
export ac_cv_func_setpgrp_void=yes
|
|
||||||
|
|
||||||
EXTERNAL_ROOT := $(shell pwd)
|
|
||||||
|
|
||||||
DEBUG ?= 0
|
|
||||||
|
|
||||||
# No-op command.
|
|
||||||
NOOP = true
|
|
||||||
|
|
||||||
# Android now has 64-bit and 32-bit versions of the NDK for GNU/Linux. We
|
|
||||||
# assume that the build platform uses the appropriate version, otherwise the
|
|
||||||
# user building this will have to manually set NDK_PROCESSOR or NDK_TOOLCHAIN.
|
|
||||||
CPU := $(shell uname -m)
|
|
||||||
ifeq ($(CPU),x86_64)
|
|
||||||
NDK_PROCESSOR=x86_64
|
|
||||||
else
|
|
||||||
NDK_PROCESSOR=x86
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Android NDK setup
|
|
||||||
ANDROID_NDK_HOME ?= /opt/android-ndk
|
|
||||||
ANDROID_NDK ?= $(ANDROID_NDK_HOME)
|
|
||||||
NDK_PLATFORM_LEVEL ?= 16
|
|
||||||
NDK_TOOLCHAIN_VERSION=4.9
|
|
||||||
APP_ABI ?= armeabi
|
|
||||||
NDK_ABI ?= $(APP_ABI)
|
|
||||||
|
|
||||||
# PIEFLAGS for SDK 16/Android L must be set to -fPIE -pie, but can override for earlier targets
|
|
||||||
PIEFLAGS ?= -fPIE -pie
|
|
||||||
|
|
||||||
ifneq ($(filter arm%, $(APP_ABI)),)
|
|
||||||
NDK_ABI := arm
|
|
||||||
endif
|
|
||||||
ifneq ($(filter arm64%, $(APP_ABI)),)
|
|
||||||
NDK_ABI := arm64
|
|
||||||
endif
|
|
||||||
|
|
||||||
NDK_SYSROOT=$(ANDROID_NDK_HOME)/platforms/android-$(NDK_PLATFORM_LEVEL)/arch-$(NDK_ABI)
|
|
||||||
NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]')
|
|
||||||
ifneq ($(filter mips%, $(NDK_ABI)),)
|
|
||||||
HOST := $(NDK_ABI)el-linux-android
|
|
||||||
endif
|
|
||||||
ifneq ($(filter arm64, $(NDK_ABI)),)
|
|
||||||
HOST := aarch64-linux-android
|
|
||||||
endif
|
|
||||||
ifneq ($(filter arm, $(NDK_ABI)),)
|
|
||||||
HOST := arm-linux-androideabi
|
|
||||||
endif
|
|
||||||
ifneq ($(filter x86, $(NDK_ABI)),)
|
|
||||||
HOST := i686-linux-android
|
|
||||||
endif
|
|
||||||
ifneq ($(filter x86_64, $(NDK_ABI)),)
|
|
||||||
HOST := x86_64-linux-android
|
|
||||||
endif
|
|
||||||
|
|
||||||
NDK_TOOLCHAIN := $(HOST)-$(NDK_TOOLCHAIN_VERSION)
|
|
||||||
ifneq ($(filter x86%, $(NDK_ABI)),)
|
|
||||||
NDK_TOOLCHAIN := $(NDK_ABI)-$(NDK_TOOLCHAIN_VERSION)
|
|
||||||
endif
|
|
||||||
NDK_TOOLCHAIN_BASE=$(ANDROID_NDK_HOME)/toolchains/$(NDK_TOOLCHAIN)/prebuilt/$(NDK_UNAME)-$(NDK_PROCESSOR)
|
|
||||||
|
|
||||||
# include Android's build flags
|
|
||||||
TARGET_ARCH_ABI = $(APP_ABI)
|
|
||||||
#include $(ANDROID_NDK_HOME)/toolchains/$(NDK_TOOLCHAIN)/setup.mk
|
|
||||||
|
|
||||||
CC := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-gcc --sysroot=$(NDK_SYSROOT)
|
|
||||||
CXX := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-g++ --sysroot=$(NDK_SYSROOT)
|
|
||||||
CPP := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-cpp --sysroot=$(NDK_SYSROOT)
|
|
||||||
LD := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ld
|
|
||||||
AR := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ar
|
|
||||||
RANLIB := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ranlib
|
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
|
||||||
STRIP := $(NOOP)
|
|
||||||
else
|
|
||||||
STRIP := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-strip --strip-unneeded -R .note -R .comment --strip-debug
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
CFLAGS = -DANDROID $(TARGET_CFLAGS) $(PIEFLAGS)
|
|
||||||
LDFLAGS = -llog $(TARGET_LDFLAGS) $(PIEFLAGS)
|
|
||||||
|
|
||||||
# change 'release' to 'debug' for unoptimized debug builds
|
|
||||||
ifeq ($(APP_ABI),armeabi-v7a)
|
|
||||||
CFLAGS += $(TARGET_arm_release_CFLAGS)
|
|
||||||
endif
|
|
||||||
ifeq ($(APP_ABI),armeabi)
|
|
||||||
CFLAGS += $(TARGET_thumb_release_CFLAGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY = clean showsetup \
|
|
||||||
assets assets-clean \
|
|
||||||
openssl-static openssl-static-clean \
|
|
||||||
libevent libevent-clean \
|
|
||||||
lzma lzma-clean \
|
|
||||||
zstd zstd-clean \
|
|
||||||
tor tor-clean
|
|
||||||
|
|
||||||
all: assets
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# openssl
|
|
||||||
|
|
||||||
# Disable rc4 cipher for 64-bit archs, to avoid this link error for tor:
|
|
||||||
# external/lib/libcrypto.a(e_rc4_hmac_md5.o):e_rc4_hmac_md5.c:function rc4_hmac_md5_cipher: error: undefined reference to 'rc4_md5_enc'
|
|
||||||
OPENSSL_CONF_FLAG=
|
|
||||||
ifneq ($(findstring 64, $(NDK_ABI)),)
|
|
||||||
OPENSSL_CONF_FLAG+=no-rc4
|
|
||||||
endif
|
|
||||||
|
|
||||||
# OpenSSL's 'make depend' fails if _MIPS_SZLONG is not set:
|
|
||||||
ifneq ($(filter mips%, $(NDK_ABI)),)
|
|
||||||
ifneq ($(findstring 64, $(NDK_ABI)),)
|
|
||||||
OPENSSL_CONF_FLAG+=-D_MIPS_SZLONG=64
|
|
||||||
else
|
|
||||||
OPENSSL_CONF_FLAG+=-D_MIPS_SZLONG=32 -D__MIPSEL__
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
lib/libcrypto.a:
|
|
||||||
cd openssl && \
|
|
||||||
./Configure android -D__ANDROID_API__=$(NDK_PLATFORM_LEVEL) -DL_ENDIAN $(OPENSSL_CONF_FLAG) && \
|
|
||||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr depend && \
|
|
||||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr build_libs
|
|
||||||
|
|
||||||
lib/libssl.a:
|
|
||||||
cp config.sub openssl
|
|
||||||
cp config.guess openssl
|
|
||||||
cd openssl && \
|
|
||||||
./Configure android -D__ANDROID_API__=$(NDK_PLATFORM_LEVEL) -DL_ENDIAN $(OPENSSL_CONF_FLAG) && \
|
|
||||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr depend && \
|
|
||||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr build_libs
|
|
||||||
|
|
||||||
openssl-build-stamp: lib/libcrypto.a lib/libssl.a
|
|
||||||
touch openssl-build-stamp
|
|
||||||
|
|
||||||
openssl: openssl-build-stamp
|
|
||||||
test -d lib || mkdir lib
|
|
||||||
test -d include || mkdir include
|
|
||||||
test -d include/openssl || mkdir include/openssl
|
|
||||||
cp openssl/libcrypto.a lib/libcrypto.a
|
|
||||||
cp openssl/libssl.a lib/libssl.a
|
|
||||||
cp openssl/include/openssl/* include/openssl
|
|
||||||
|
|
||||||
openssl-clean:
|
|
||||||
-rm openssl-build-stamp
|
|
||||||
-rm lib/libcrypto.a
|
|
||||||
-rm lib/libssl.a
|
|
||||||
-cd openssl && \
|
|
||||||
git clean -fdx
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# libevent
|
|
||||||
|
|
||||||
libevent/Makefile:
|
|
||||||
sed -i 's@\(SUBDIRS = . include\) sample test@\1@' libevent/Makefile.am
|
|
||||||
cp libevent-patch-1 libevent
|
|
||||||
-cd libevent && \
|
|
||||||
patch -N -p1 --reject-file=- < libevent-patch-1
|
|
||||||
##sed -i 's@\(AC_OUTPUT(Makefile include/Makefile\) test/Makefile sample/Makefile)@\1)@' libevent/configure.in
|
|
||||||
cd libevent && ./autogen.sh
|
|
||||||
cp config.sub libevent
|
|
||||||
cp config.guess libevent
|
|
||||||
cd libevent && \
|
|
||||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) -I$(EXTERNAL_ROOT)/include" LDFLAGS="$(LDFLAGS)" \
|
|
||||||
./configure \
|
|
||||||
--host=$(HOST) \
|
|
||||||
--disable-shared
|
|
||||||
|
|
||||||
libevent-build-stamp: libevent/Makefile
|
|
||||||
$(MAKE) -C libevent ./include/event2/event-config.h all-am
|
|
||||||
touch libevent-build-stamp
|
|
||||||
|
|
||||||
libevent: openssl libevent-build-stamp
|
|
||||||
test -d lib || mkdir lib
|
|
||||||
test -d include || mkdir include
|
|
||||||
cp libevent/.libs/libevent.a lib
|
|
||||||
cp -R libevent/include/event2 include
|
|
||||||
|
|
||||||
libevent-clean:
|
|
||||||
-rm -f include/event2
|
|
||||||
-rm -f lib/libevent.a
|
|
||||||
-rm -f libevent-build-stamp
|
|
||||||
-cd libevent && \
|
|
||||||
git clean -fdx
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# lzma
|
|
||||||
|
|
||||||
xz/Makefile:
|
|
||||||
cd xz && ./autogen.sh
|
|
||||||
cp config.sub xz
|
|
||||||
cp config.guess xz
|
|
||||||
cd xz && \
|
|
||||||
CC="$(CC)" CXX="$(CXX)" PKG_CONFIG_PATH="$(EXTERNAL_ROOT)/lib/pkgconfig" AR="$(AR)" RANLIB="$(RANLIB)" CFLAGS="$(CFLAGS) -std=c99" LDFLAGS="$(LDFLAGS)" \
|
|
||||||
./configure --host=$(HOST) --disable-shared --enable-static --disable-doc --disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-scripts --prefix=$(EXTERNAL_ROOT)
|
|
||||||
|
|
||||||
lzma: lzma-build-stamp
|
|
||||||
$(MAKE) -C xz install
|
|
||||||
|
|
||||||
lzma-build-stamp: xz/Makefile
|
|
||||||
touch lzma-build-stamp
|
|
||||||
|
|
||||||
lzma-clean:
|
|
||||||
-rm -rf include/lzma
|
|
||||||
-rm -f include/lzma.h
|
|
||||||
-rm -f lib/liblzma.a
|
|
||||||
-rm -f lib/liblzma.la
|
|
||||||
-rm -f lzma-build-stamp
|
|
||||||
-cd xz && \
|
|
||||||
git clean -fdx
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# zstd
|
|
||||||
|
|
||||||
zstd: zstd-build-stamp
|
|
||||||
$(MAKE) -C zstd/lib CC="$(CC)" CXX="$(CXX)" AR="$(AR)" RANLIB="$(RANLIB)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" PREFIX="$(EXTERNAL_ROOT)" libzstd.a-mt
|
|
||||||
$(MAKE) -C zstd/lib CC="$(CC)" CXX="$(CXX)" AR="$(AR)" RANLIB="$(RANLIB)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" PREFIX="$(EXTERNAL_ROOT)" libzstd.pc
|
|
||||||
test -d lib || mkdir lib
|
|
||||||
test -d lib/pkgconfig || mkdir lib/pkgconfig
|
|
||||||
test -d include || mkdir include
|
|
||||||
cp zstd/lib/libzstd.a lib
|
|
||||||
cp zstd/lib/libzstd.pc lib/pkgconfig
|
|
||||||
cp zstd/lib/zstd.h include
|
|
||||||
cp zstd/lib/common/zstd_errors.h include
|
|
||||||
cp zstd/lib/deprecated/zbuff.h include
|
|
||||||
cp zstd/lib/dictBuilder/zdict.h include
|
|
||||||
|
|
||||||
zstd-build-stamp:
|
|
||||||
touch zstd-build-stamp
|
|
||||||
|
|
||||||
zstd-clean:
|
|
||||||
-rm -f include/zstd.h include/zstd_errors.h include/zbuff.h include/zdict.h
|
|
||||||
-rm -f lib/libzstd.a
|
|
||||||
-rm -f lib/pkgconfig/libzstd.pc
|
|
||||||
-rm -f zstd-build-stamp
|
|
||||||
-cd zstd && \
|
|
||||||
git clean -fdx
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# tor
|
|
||||||
|
|
||||||
tor/configure:
|
|
||||||
cd tor && \
|
|
||||||
./autogen.sh
|
|
||||||
|
|
||||||
tor/Makefile: tor/configure
|
|
||||||
cp config.sub tor
|
|
||||||
cp config.guess tor
|
|
||||||
cd tor && \
|
|
||||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) PKG_CONFIG_PATH="$(EXTERNAL_ROOT)/lib/pkgconfig" CFLAGS="$(CFLAGS) -D_FORTIFY_SOURCE=2 -fwrapv -fno-strict-aliasing -fno-strict-overflow" LDFLAGS="$(LDFLAGS)" \
|
|
||||||
LIBS="-L$(EXTERNAL_ROOT)/lib" CFLAGS="-I$(EXTERNAL_ROOT)/include -I$(EXTERNAL_ROOT)/include/event2" \
|
|
||||||
./configure \
|
|
||||||
--host=$(HOST) \
|
|
||||||
--disable-asciidoc \
|
|
||||||
--enable-static-libevent --with-libevent-dir=$(EXTERNAL_ROOT) \
|
|
||||||
--enable-static-openssl --with-openssl-dir=$(EXTERNAL_ROOT) \
|
|
||||||
--disable-linker-hardening --disable-gcc-hardening --disable-tool-name-check --disable-systemd --disable-module-dirauth
|
|
||||||
|
|
||||||
tor-build-stamp: tor/Makefile
|
|
||||||
$(MAKE) -C tor all-am
|
|
||||||
touch tor-build-stamp
|
|
||||||
|
|
||||||
tor: lzma zstd libevent openssl tor-build-stamp
|
|
||||||
test -d bin || mkdir bin
|
|
||||||
cp tor/src/or/tor bin
|
|
||||||
|
|
||||||
tor-clean:
|
|
||||||
-rm -f bin/tor
|
|
||||||
-rm -f tor-build-stamp
|
|
||||||
-cd tor && \
|
|
||||||
git clean -fdx
|
|
||||||
-cd tor && \
|
|
||||||
git reset HEAD --hard
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
#create and clean assets: FYI - tor is stored as a ZIP file with an so extension
|
|
||||||
#in the libs directly, so it is handled like a shared library for local installation
|
|
||||||
|
|
||||||
assets: tor
|
|
||||||
install -d ../tor-android-binary/src/main/libs/$(APP_ABI)
|
|
||||||
-$(STRIP) bin/tor
|
|
||||||
-zip ../tor-android-binary/src/main/libs/$(APP_ABI)/tor.so bin/tor
|
|
||||||
|
|
||||||
assets-clean:
|
|
||||||
-rm ../tor-android-binary/src/main/libs/$(APP_ABI)/tor.so
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# cleanup, cleanup, put the toys away
|
|
||||||
|
|
||||||
##clean: openssl-clean libevent-clean tor-clean polipo-clean assets-clean
|
|
||||||
clean: openssl-clean libevent-clean lzma-clean zstd-clean tor-clean
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
|
||||||
# debugging stuff
|
|
||||||
|
|
||||||
showsetup:
|
|
||||||
@echo "NDK_TOOLCHAIN_VERSION: $(NDK_TOOLCHAIN_VERSION)"
|
|
||||||
@echo "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)"
|
|
||||||
@echo "NDK_PLATFORM_LEVEL: $(NDK_PLATFORM_LEVEL)"
|
|
||||||
@echo "NDK_SYSROOT: $(NDK_SYSROOT)"
|
|
||||||
@echo "APP_ABI: $(APP_ABI)"
|
|
||||||
@echo "HOST: $(HOST)"
|
|
||||||
@echo "CC: $(CC)"
|
|
||||||
@echo "LD: $(LD)"
|
|
||||||
@echo "CFLAGS: $(CFLAGS)"
|
|
||||||
@echo "LDFLAGS: $(LDFLAGS)"
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 90ae4c5013032158bafad41279823d90eec4d206
|
|
|
@ -1,29 +0,0 @@
|
||||||
For some reason arc4random_addrandom isn't present in 64-bit android archs. !
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index d42edd8..c511be7 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -290,7 +290,7 @@ AC_HEADER_TIME
|
|
||||||
|
|
||||||
dnl Checks for library functions.
|
|
||||||
AC_CHECK_FUNCS([gettimeofday vasprintf fcntl clock_gettime strtok_r strsep])
|
|
||||||
-AC_CHECK_FUNCS([getnameinfo strlcpy inet_ntop inet_pton signal sigaction strtoll inet_aton pipe eventfd sendfile mmap splice arc4random arc4random_buf issetugid geteuid getegid getprotobynumber setenv unsetenv putenv sysctl])
|
|
||||||
+AC_CHECK_FUNCS([getnameinfo strlcpy inet_ntop inet_pton signal sigaction strtoll inet_aton pipe eventfd sendfile mmap splice arc4random arc4random_buf arc4random_addrandom issetugid geteuid getegid getprotobynumber setenv unsetenv putenv sysctl])
|
|
||||||
AC_CHECK_FUNCS([umask])
|
|
||||||
|
|
||||||
AC_CACHE_CHECK(
|
|
||||||
diff --git a/evutil_rand.c b/evutil_rand.c
|
|
||||||
index 284341c..97161e4 100644
|
|
||||||
--- a/evutil_rand.c
|
|
||||||
+++ b/evutil_rand.c
|
|
||||||
@@ -174,7 +174,9 @@ evutil_secure_rng_get_bytes(void *buf, size_t n)
|
|
||||||
void
|
|
||||||
evutil_secure_rng_add_bytes(const char *buf, size_t n)
|
|
||||||
{
|
|
||||||
+#ifdef _EVENT_HAVE_ARC4RANDOM_ADDRANDOM
|
|
||||||
arc4random_addrandom((unsigned char*)buf,
|
|
||||||
n>(size_t)INT_MAX ? INT_MAX : (int)n);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit e71ebf275da66dfd601c92e0e80a35114c32f6f8
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit da95b91355248ad8f3a6aa6733cc6d24915f59ce
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 3d566cd519017eee1a400e7961ff14058dfaf33c
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit f4340f46b2387bc8de7d5320c0b83bb1499933ad
|
|
|
@ -1,17 +0,0 @@
|
||||||
## Project-wide Gradle settings.
|
|
||||||
#
|
|
||||||
# For more details on how to configure your build environment visit
|
|
||||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
|
||||||
#
|
|
||||||
# Specifies the JVM arguments used for the daemon process.
|
|
||||||
# The setting is particularly useful for tweaking memory settings.
|
|
||||||
# Default value: -Xmx10248m -XX:MaxPermSize=256m
|
|
||||||
#
|
|
||||||
# When configured, Gradle will run in incubating parallel mode.
|
|
||||||
# This option should only be used with decoupled projects. More details, visit
|
|
||||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
|
||||||
# org.gradle.parallel=true
|
|
||||||
#Mon Jun 20 21:44:59 EDT 2016
|
|
||||||
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
|
||||||
android.useDeprecatedNdk=true
|
|
||||||
aar.deployPath=/media/n8fr8/nate128/dev/repos/gpmaven
|
|
|
@ -1,6 +0,0 @@
|
||||||
#Thu Oct 11 16:49:15 EDT 2018
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
|
|
@ -1,172 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## Gradle start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS=""
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
|
||||||
if $cygwin ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=$((i+1))
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
(0) set -- ;;
|
|
||||||
(1) set -- "$args0" ;;
|
|
||||||
(2) set -- "$args0" "$args1" ;;
|
|
||||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Escape application args
|
|
||||||
save () {
|
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
APP_ARGS=$(save "$@")
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
|
||||||
|
|
||||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
|
||||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
|
@ -1,84 +0,0 @@
|
||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS=
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windows variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
_______________________________________________
|
||||||
|
Guardian-dev mailing list
|
||||||
|
|
||||||
|
Post: Guardian-dev@lists.mayfirst.org
|
||||||
|
List info: https://lists.mayfirst.org/mailman/listinfo/guardian-dev
|
||||||
|
|
||||||
|
To Unsubscribe
|
||||||
|
Send email to: Guardian-dev-unsubscribe@lists.mayfirst.org
|
||||||
|
Or visit: https://lists.mayfirst.org/mailman/options/guardian-dev/nathan%40guardianproject.info
|
||||||
|
|
||||||
|
You are subscribed as: nathan@guardianproject.info
|
|
@ -0,0 +1,390 @@
|
||||||
|
Index: src/org/torproject/android/service/TorService.java
|
||||||
|
===================================================================
|
||||||
|
--- src/org/torproject/android/service/TorService.java (revision 24697)
|
||||||
|
+++ src/org/torproject/android/service/TorService.java (working copy)
|
||||||
|
@@ -710,10 +710,36 @@
|
||||||
|
|
||||||
|
if (enableTransparentProxy)
|
||||||
|
{
|
||||||
|
- showAlert("Status", "Setting up transparent proxying...");
|
||||||
|
-
|
||||||
|
- //TorTransProxy.setDNSProxying();
|
||||||
|
- int code = TorTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this),transProxyAll);
|
||||||
|
+ //TODO: Find a nice place for the next (commented) line
|
||||||
|
+ //TorTransProxy.setDNSProxying();
|
||||||
|
+
|
||||||
|
+ int code = 0; // Default state is "okay"
|
||||||
|
+
|
||||||
|
+ if(transProxyPortFallback)
|
||||||
|
+ {
|
||||||
|
+ showAlert("Status", "Setting up port-based transparent proxying...");
|
||||||
|
+ StringTokenizer st = new StringTokenizer(portProxyList, ",");
|
||||||
|
+ int status = code;
|
||||||
|
+ while (st.hasMoreTokens())
|
||||||
|
+ {
|
||||||
|
+ status = TorTransProxy.setTransparentProxyingByPort(this, Integer.parseInt(st.nextToken()));
|
||||||
|
+ if(status != 0)
|
||||||
|
+ code = status;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ if(transProxyAll)
|
||||||
|
+ {
|
||||||
|
+ showAlert("Status", "Setting up full transparent proxying...");
|
||||||
|
+ code = TorTransProxy.setTransparentProxyingAll(this);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ showAlert("Status", "Setting up app-based transparent proxying...");
|
||||||
|
+ code = TorTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this),transProxyAll);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
TorService.logMessage ("TorTransProxy resp code: " + code);
|
||||||
|
|
||||||
|
@@ -725,17 +751,7 @@
|
||||||
|
{
|
||||||
|
showAlert("Status", "WARNING: error starting transparent proxying!");
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- //this is for Androids w/o owner module support as a circumvention only fallback
|
||||||
|
- if (transProxyPortFallback)
|
||||||
|
- {
|
||||||
|
- StringTokenizer st = new StringTokenizer(portProxyList, ",");
|
||||||
|
-
|
||||||
|
- while (st.hasMoreTokens())
|
||||||
|
- TorTransProxy.setTransparentProxyingByPort(this, Integer.parseInt(st.nextToken()));
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
+
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
Index: src/org/torproject/android/service/TorTransProxy.java
|
||||||
|
===================================================================
|
||||||
|
--- src/org/torproject/android/service/TorTransProxy.java (revision 24697)
|
||||||
|
+++ src/org/torproject/android/service/TorTransProxy.java (working copy)
|
||||||
|
@@ -136,8 +136,6 @@
|
||||||
|
//redirectDNSResolvConf(); //not working yet
|
||||||
|
|
||||||
|
String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
|
||||||
|
-
|
||||||
|
- boolean ipTablesOld = false;
|
||||||
|
|
||||||
|
StringBuilder script = new StringBuilder();
|
||||||
|
|
||||||
|
@@ -145,14 +143,12 @@
|
||||||
|
int code = -1;
|
||||||
|
|
||||||
|
purgeIptables(context);
|
||||||
|
-
|
||||||
|
- script = new StringBuilder();
|
||||||
|
-
|
||||||
|
+
|
||||||
|
//build up array of shell cmds to execute under one root context
|
||||||
|
for (int i = 0; i < apps.length; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
- if (forceAll || apps[i].isTorified()) //if "Tor Everything" on or app is set to true
|
||||||
|
+ if (apps[i].isTorified()) //if app is set to true
|
||||||
|
{
|
||||||
|
|
||||||
|
if (apps[i].getUsername().equals(TorServiceConstants.TOR_APP_USERNAME))
|
||||||
|
@@ -170,14 +166,8 @@
|
||||||
|
script.append(" -m owner --uid-owner ");
|
||||||
|
script.append(apps[i].getUid());
|
||||||
|
script.append(" -m tcp --syn");
|
||||||
|
-
|
||||||
|
- if (ipTablesOld)
|
||||||
|
- script.append(" -j DNAT --to 127.0.0.1:");
|
||||||
|
- else
|
||||||
|
- script.append(" -j REDIRECT --to-ports ");
|
||||||
|
-
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
script.append(TOR_TRANSPROXY_PORT);
|
||||||
|
-
|
||||||
|
script.append(" || exit\n");
|
||||||
|
|
||||||
|
//DNS
|
||||||
|
@@ -187,57 +177,37 @@
|
||||||
|
script.append(apps[i].getUid());
|
||||||
|
script.append(" -m udp --dport ");
|
||||||
|
script.append(STANDARD_DNS_PORT);
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
+ script.append(TOR_DNS_PORT);
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
|
||||||
|
- if (ipTablesOld)
|
||||||
|
- script.append(" -j DNAT --to 127.0.0.1:");
|
||||||
|
- else
|
||||||
|
- script.append(" -j REDIRECT --to-ports ");
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT -p tcp");
|
||||||
|
+ script.append(" -m owner --uid-owner ");
|
||||||
|
+ script.append(apps[i].getUid());
|
||||||
|
+ script.append(" -m tcp --dport ");
|
||||||
|
+ script.append(TOR_TRANSPROXY_PORT);
|
||||||
|
+ script.append(" -j ACCEPT");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT -p udp");
|
||||||
|
+ script.append(" -m owner --uid-owner ");
|
||||||
|
+ script.append(apps[i].getUid());
|
||||||
|
+ script.append(" -m udp --dport ");
|
||||||
|
script.append(TOR_DNS_PORT);
|
||||||
|
-
|
||||||
|
+ script.append(" -j ACCEPT");
|
||||||
|
script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter -A OUTPUT -m owner --uid-owner ");
|
||||||
|
+ script.append(apps[i].getUid());
|
||||||
|
+ script.append(" -j DROP"); //drop all other packets as Tor won't handle them
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
|
||||||
|
|
||||||
|
- if (ipTablesOld) //for some reason this doesn't work on iptables 1.3.7
|
||||||
|
- {
|
||||||
|
- script.append(ipTablesPath);
|
||||||
|
- script.append(" -t nat");
|
||||||
|
- script.append(" -A OUTPUT -m owner --uid-owner ");
|
||||||
|
- script.append(apps[i].getUid());
|
||||||
|
- script.append(" -j DROP");
|
||||||
|
- script.append(" || exit\n");
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- script.append(ipTablesPath);
|
||||||
|
- script.append(" -t filter");
|
||||||
|
- script.append(" -A OUTPUT -p tcp");
|
||||||
|
- script.append(" -m owner --uid-owner ");
|
||||||
|
- script.append(apps[i].getUid());
|
||||||
|
- script.append(" -m tcp --dport ");
|
||||||
|
- script.append(TOR_TRANSPROXY_PORT);
|
||||||
|
- script.append(" -j ACCEPT");
|
||||||
|
- script.append(" || exit\n");
|
||||||
|
-
|
||||||
|
- script.append(ipTablesPath);
|
||||||
|
- script.append(" -t filter");
|
||||||
|
- script.append(" -A OUTPUT -p udp");
|
||||||
|
- script.append(" -m owner --uid-owner ");
|
||||||
|
- script.append(apps[i].getUid());
|
||||||
|
- script.append(" -m udp --dport ");
|
||||||
|
- script.append(TOR_DNS_PORT);
|
||||||
|
- script.append(" -j ACCEPT");
|
||||||
|
- script.append(" || exit\n");
|
||||||
|
-
|
||||||
|
- script.append(ipTablesPath);
|
||||||
|
- script.append(" -t filter -A OUTPUT -m owner --uid-owner ");
|
||||||
|
- script.append(apps[i].getUid());
|
||||||
|
- script.append(" -j DROP"); //drop all other packets as Tor won't handle them
|
||||||
|
- script.append(" || exit\n");
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
-
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -260,20 +230,13 @@
|
||||||
|
|
||||||
|
//String baseDir = context.getDir("bin",0).getAbsolutePath() + '/';
|
||||||
|
String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
|
||||||
|
-
|
||||||
|
- boolean ipTablesOld = false;
|
||||||
|
|
||||||
|
StringBuilder script = new StringBuilder();
|
||||||
|
|
||||||
|
StringBuilder res = new StringBuilder();
|
||||||
|
int code = -1;
|
||||||
|
-
|
||||||
|
- String[] cmdFlush = {script.toString()};
|
||||||
|
- code = TorServiceUtils.doShellCommand(cmdFlush, res, true, true);
|
||||||
|
- //String msg = res.toString(); //get stdout from command
|
||||||
|
+ purgeIptables(context);
|
||||||
|
|
||||||
|
- script = new StringBuilder();
|
||||||
|
-
|
||||||
|
//TCP
|
||||||
|
//iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $srcPortNumber -j REDIRECT --to-port $dstPortNumbe
|
||||||
|
|
||||||
|
@@ -283,14 +246,8 @@
|
||||||
|
script.append(" --dport ");
|
||||||
|
script.append(port);
|
||||||
|
//script.append(" -m tcp --syn");
|
||||||
|
-
|
||||||
|
- if (ipTablesOld)
|
||||||
|
- script.append(" -j DNAT --to 127.0.0.1:");
|
||||||
|
- else
|
||||||
|
- script.append(" -j REDIRECT --to-ports ");
|
||||||
|
-
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
script.append(TOR_TRANSPROXY_PORT);
|
||||||
|
-
|
||||||
|
script.append(" || exit\n");
|
||||||
|
|
||||||
|
script.append(ipTablesPath);
|
||||||
|
@@ -298,14 +255,8 @@
|
||||||
|
script.append(" -A OUTPUT -p udp");
|
||||||
|
script.append(" --dport ");
|
||||||
|
script.append(port);
|
||||||
|
-
|
||||||
|
- if (ipTablesOld)
|
||||||
|
- script.append(" -j DNAT --to 127.0.0.1:");
|
||||||
|
- else
|
||||||
|
- script.append(" -j REDIRECT --to-ports ");
|
||||||
|
-
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
script.append(TOR_TRANSPROXY_PORT);
|
||||||
|
-
|
||||||
|
script.append(" || exit\n");
|
||||||
|
|
||||||
|
//DNS
|
||||||
|
@@ -314,24 +265,134 @@
|
||||||
|
script.append(" -A OUTPUT -p udp ");
|
||||||
|
script.append(" -m udp --dport ");
|
||||||
|
script.append(STANDARD_DNS_PORT);
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
+ script.append(TOR_DNS_PORT);
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
|
||||||
|
- if (ipTablesOld)
|
||||||
|
- script.append(" -j DNAT --to 127.0.0.1:");
|
||||||
|
- else
|
||||||
|
- script.append(" -j REDIRECT --to-ports ");
|
||||||
|
+
|
||||||
|
+ String[] cmdAdd = {script.toString()};
|
||||||
|
+ code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
|
||||||
|
+ String msg = res.toString();
|
||||||
|
+ TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
|
||||||
|
|
||||||
|
+ return code;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static int setTransparentProxyingAll(Context context) throws Exception {
|
||||||
|
+ boolean runRoot = true;
|
||||||
|
+ boolean waitFor = true;
|
||||||
|
+
|
||||||
|
+ //android.os.Debug.waitForDebugger();
|
||||||
|
+
|
||||||
|
+ //redirectDNSResolvConf(); //not working yet
|
||||||
|
+
|
||||||
|
+ String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
|
||||||
|
+
|
||||||
|
+ StringBuilder script = new StringBuilder();
|
||||||
|
+
|
||||||
|
+ StringBuilder res = new StringBuilder();
|
||||||
|
+ int code = -1;
|
||||||
|
+
|
||||||
|
+ purgeIptables(context);
|
||||||
|
+
|
||||||
|
+ int torUid = context.getApplicationInfo().uid;
|
||||||
|
+
|
||||||
|
+ // Set up port redirection
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t nat");
|
||||||
|
+ script.append(" -A OUTPUT -p tcp");
|
||||||
|
+ script.append(" -m owner ! --uid-owner ");
|
||||||
|
+ script.append(torUid);
|
||||||
|
+ script.append(" -m tcp --syn");
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
+ script.append(TOR_TRANSPROXY_PORT);
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+ // Same for DNS
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t nat");
|
||||||
|
+ script.append(" -A OUTPUT -p udp -m owner ! --uid-owner ");
|
||||||
|
+ script.append(torUid);
|
||||||
|
+ script.append(" -m udp --dport ");
|
||||||
|
+ script.append(STANDARD_DNS_PORT);
|
||||||
|
+ script.append(" -j REDIRECT --to-ports ");
|
||||||
|
script.append(TOR_DNS_PORT);
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
|
||||||
|
+ // Allow packets to localhost (contains all the port-redirected ones)
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -p tcp");
|
||||||
|
+ script.append(" -d 127.0.0.1");
|
||||||
|
+ script.append(" -j ACCEPT");
|
||||||
|
script.append(" || exit\n");
|
||||||
|
|
||||||
|
+ // Allow loopback
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -p tcp");
|
||||||
|
+ script.append(" -o lo");
|
||||||
|
+ script.append(" -j ACCEPT");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+ // Allow everything for Tor
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -m owner --uid-owner ");
|
||||||
|
+ script.append(torUid);
|
||||||
|
+ script.append(" -j ACCEPT");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+ //XXX: Comment the following rules for non-debug builds
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -p udp");
|
||||||
|
+ script.append(" --dport ");
|
||||||
|
+ script.append(STANDARD_DNS_PORT);
|
||||||
|
+ script.append(" -j LOG");
|
||||||
|
+ script.append(" --log-prefix='ORBOT_DNSLEAK_PROTECTION'");
|
||||||
|
+ script.append(" --log-uid");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -p tcp");
|
||||||
|
+ script.append(" -j LOG");
|
||||||
|
+ script.append(" --log-prefix='ORBOT_TCPLEAK_PROTECTION'");
|
||||||
|
+ script.append(" --log-uid");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ // Reject DNS that is not from Tor (order is important - first matched rule counts!)
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -p udp");
|
||||||
|
+ script.append(" --dport ");
|
||||||
|
+ script.append(STANDARD_DNS_PORT);
|
||||||
|
+ script.append(" -j REJECT");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+ // Reject all other outbound TCP packets
|
||||||
|
+ script.append(ipTablesPath);
|
||||||
|
+ script.append(" -t filter");
|
||||||
|
+ script.append(" -A OUTPUT");
|
||||||
|
+ script.append(" -p tcp");
|
||||||
|
+ script.append(" -j REJECT");
|
||||||
|
+ script.append(" || exit\n");
|
||||||
|
+
|
||||||
|
+ String[] cmdAdd = {script.toString()};
|
||||||
|
|
||||||
|
- String[] cmdAdd = {script.toString()};
|
||||||
|
- code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
|
||||||
|
+ code = TorServiceUtils.doShellCommand(cmdAdd, res, runRoot, waitFor);
|
||||||
|
String msg = res.toString();
|
||||||
|
TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
|
||||||
|
|
||||||
|
- return code;
|
||||||
|
- }
|
||||||
|
+ return code;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,110 @@
|
||||||
|
<4>[ 115.319671] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=9997 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK URGP=0 UID=10035 GID=10035
|
||||||
|
<4>[ 115.482788] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=9998 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK URGP=0 UID=10035 GID=10035
|
||||||
|
<4>[ 116.037658] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=9999 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK URGP=0 UID=10035 GID=10035
|
||||||
|
<4>[ 116.699127] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10000 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10035 GID=10035
|
||||||
|
<4>[ 116.724517] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10001 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0 UID=10035 GID=10035
|
||||||
|
<4>[ 116.922515] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10002 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 117.330810] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10003 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 118.150726] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10004 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 118.903320] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10005 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 119.310729] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10006 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 120.130737] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10007 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 121.770690] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10008 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 122.695465] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10009 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 123.100708] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10010 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 123.920684] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10011 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 125.565673] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10012 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 128.840789] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10013 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 130.366333] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10014 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 130.785339] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10015 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 131.600799] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10016 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 132.835144] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50247 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 133.240753] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10017 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 133.410705] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50248 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 133.443481] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50249 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 134.031341] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50250 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 134.782196] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50251 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 135.360778] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50252 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 136.520782] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10018 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 136.526306] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50253 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 137.334716] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50254 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 137.915832] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50255 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 139.075378] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50256 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 140.435913] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10019 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 140.850799] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10020 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 141.395019] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50257 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 141.675140] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10021 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 142.455352] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50258 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 143.030792] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50259 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 143.310852] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10022 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 144.190734] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50260 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 146.510803] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50261 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 146.590789] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10023 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 151.150726] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50262 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 151.166290] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10024 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 151.570739] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10025 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 152.390686] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10026 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 152.694427] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50263 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 153.270721] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50264 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 154.030731] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10027 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 154.430694] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50265 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 156.750701] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50266 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 157.310699] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10028 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 160.383117] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10029 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 160.790832] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10030 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 161.390716] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50267 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 161.610717] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10031 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 163.250701] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10032 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 166.531494] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10033 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 170.670715] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50268 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 170.842285] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10034 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 171.250732] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10035 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 172.070800] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10036 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 173.309783] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50269 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 173.710784] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10037 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 173.880828] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50270 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 175.040710] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50271 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 176.990692] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10038 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 177.360687] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50272 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 181.682952] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10039 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 182.000701] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50273 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 182.090698] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10040 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 182.910797] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10041 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 184.550689] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10042 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 187.830749] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10043 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 191.280700] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50274 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 193.917053] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10044 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 194.330749] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10045 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 195.150695] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10046 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 196.790679] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10047 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 200.070709] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10048 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 201.567718] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10049 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 201.970703] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10050 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 202.790771] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10051 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 204.430816] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10052 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 207.710693] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10053 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 209.840789] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50275 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 212.362884] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10054 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 212.770812] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10055 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 213.590698] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10056 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 215.235809] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10057 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 217.285766] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50276 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 217.860687] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50277 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 218.510803] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10058 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 219.020721] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50278 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 220.840667] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
|
||||||
|
<4>[ 220.842559] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
|
||||||
|
<4>[ 220.844512] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
|
||||||
|
<4>[ 221.340820] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50279 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 221.478881] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10059 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 221.890777] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10060 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 221.898010] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
|
||||||
|
<4>[ 222.710754] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10061 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 224.350677] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10062 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 225.617523] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
|
||||||
|
<4>[ 225.980743] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50280 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
|
||||||
|
<4>[ 227.630798] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10063 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
|
||||||
|
<4>[ 241.522155] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=20341 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
|
||||||
|
<4>[ 241.792358] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
|
||||||
|
<4>[ 242.362335] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
|
||||||
|
<4>[ 243.452331] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
|
After Width: | Height: | Size: 7.4 KiB |
|
@ -0,0 +1,285 @@
|
||||||
|
Index: res/values-ca/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-ca/strings.xml (revision 24406)
|
||||||
|
+++ res/values-ca/strings.xml (working copy)
|
||||||
|
@@ -97,7 +97,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Aplicacions per a usar-se amb Orbot</string>
|
||||||
|
<string name="wizard_tips_msg">T\'animem a descarregar-te & utilitza aplicacions que sàpiguen com connectar-se directament a Orbot. Fes clic als botons de sota per instal·lar.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Client de missatgeria instantània segura per a Android</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Client de missatgeria instantània segura per a Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (Només Android 1.x) - Navegador dissenyat per la privacitat & per a Orbot</string>
|
||||||
|
<string name="wizard_tips_proxy">Coniguració de Proxy - Aprèn a configurar aplicacions per a què funcionin amb Orbot</string>
|
||||||
|
|
||||||
|
@@ -115,7 +115,7 @@
|
||||||
|
<string name="wizard_final">Orbot és a punt!</string>
|
||||||
|
<string name="wizard_final_msg">Centenars de milers de persones arreu del món utilitzen Tor per un gran ventall de raons: periodistes i blocaires, treballadors pels drets humans, agents de l\'autoritat, soldats, corporacions, ciutadans de règims opressors, i ciutadans qualssevol... I ara tu també ho pots fer!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/drawable/icon_otrchat.png
|
||||||
|
===================================================================
|
||||||
|
Cannot display: file marked as a binary type.
|
||||||
|
svn:mime-type = application/octet-stream
|
||||||
|
Index: res/drawable/ic_launcher_gibberbot.png
|
||||||
|
===================================================================
|
||||||
|
Cannot display: file marked as a binary type.
|
||||||
|
svn:mime-type = application/octet-stream
|
||||||
|
|
||||||
|
Property changes on: res/drawable/ic_launcher_gibberbot.png
|
||||||
|
___________________________________________________________________
|
||||||
|
Added: svn:mime-type
|
||||||
|
+ application/octet-stream
|
||||||
|
|
||||||
|
Index: res/values-fa/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-fa/strings.xml (revision 24406)
|
||||||
|
+++ res/values-fa/strings.xml (working copy)
|
||||||
|
@@ -95,7 +95,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">اپلیکیشن هایی که برای اوربات تنظیم شده اند</string>
|
||||||
|
<string name="wizard_tips_msg">توصیه می کنیم داون لود و فعال کنید؛ اپلیکیشن هایی را استفاده کنید که مستقیم به اوربات وصل می شوند. دکمه های زیر را فشار دهید تا نصب شود. </string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - کاربر ایمن انتقال پیام فوری برای آندروید</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - کاربر ایمن انتقال پیام فوری برای آندروید</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (فقط آندروید 1.x) - مرورگر طراحی شده برای حفظ حریم خصوصی و افزونساز اوربات</string>
|
||||||
|
<string name="wizard_tips_proxy">تنظیمات پروکسی - یادگیری تنظیم اپلیکیشن ها برای کار با اوربات</string>
|
||||||
|
|
||||||
|
@@ -105,7 +105,7 @@
|
||||||
|
<string name="wizard_final">اوربات آماده استفاده میباشد!</string>
|
||||||
|
<string name="wizard_final_msg">صدها هزار نفر در سراسر جهان به دلایل گوناگون از Tor استفاده می کنند: روزنامه نویسها و بلاگرها، کارکنان حقوق بشر، ماموران انتظامی، سربازان، شرکتها، شهروندان دولتهای سرکوبگر، و شهروندان عادی، و حالا شما نیز آماده استفاده از آن هستید!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-ru/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-ru/strings.xml (revision 24406)
|
||||||
|
+++ res/values-ru/strings.xml (working copy)
|
||||||
|
@@ -95,7 +95,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Orbot-задействованные приложения</string>
|
||||||
|
<string name="wizard_tips_msg">Мы советуем вам скачать и использовать приложения, которые умеют работать напрямую через Orbot. Нажмите на кнопки ниже, чтобы запустить процесс установки.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Обезопасте обмен мгновенными сообщениями для клиентов в Android</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Обезопасте обмен мгновенными сообщениями для клиентов в Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (Только для версии Android 1.x) - Браузер, разработанный для обеспечения безопасности и для Orbot</string>
|
||||||
|
<string name="wizard_tips_proxy">Настройки прокси - узнайте как настроить приложения для работы с Orbot</string>
|
||||||
|
|
||||||
|
@@ -109,7 +109,7 @@
|
||||||
|
<string name="wizard_final">Программа Orbot готова к использованию!</string>
|
||||||
|
<string name="wizard_final_msg">Сотни тысяч людей по всему миру используют Tor по различным причинам: журналисты и блоггеры, активисты организаций, выступающих в защиту прав человека, судебные исполнители, солдаты, корпорации, граждане стран с репрессивным режимом, и простые люди... а теперь готовы и вы!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-de/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-de/strings.xml (revision 24406)
|
||||||
|
+++ res/values-de/strings.xml (working copy)
|
||||||
|
@@ -97,7 +97,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Programme, für die Orbot aktiviert ist</string>
|
||||||
|
<string name="wizard_tips_msg">Wir raten Ihnen Programme herunterzuladen & zu nutzen, die wissen, wie sie sich direkt mit Orbot verbinden. Klicken Sie zum Installieren auf den Knopf unten.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Ein sicheres Instant-Messaging-Programm für Android</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Ein sicheres Instant-Messaging-Programm für Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (Nur Android 1.x) - Ein für Privatsphäre & Orbot entworfener Browser</string>
|
||||||
|
<string name="wizard_tips_proxy">Proxy-Einstellungen - Lernen Sie Anwendungen so zu konfigurieren, dass sie mit Orbot zusammenarbeiten.</string>
|
||||||
|
|
||||||
|
@@ -115,7 +115,7 @@
|
||||||
|
<string name="wizard_final">Orbot ist bereit!</string>
|
||||||
|
<string name="wizard_final_msg">Hunderttausende Menschen auf der ganzen Welt nutzen Tor aus einer Vielzahl von Gründen: Journalisten und Blogger, Menschenrechtsaktivisten, Strafverfolgungsbehörden, Soldaten, Unternehmen, Bürger repressiver Regime und ganz normale Menschen... und sind Sie ebenfalls bereit!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values/strings.xml (revision 24406)
|
||||||
|
+++ res/values/strings.xml (working copy)
|
||||||
|
@@ -94,7 +94,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Orbot-enabled Apps</string>
|
||||||
|
<string name="wizard_tips_msg">We encourage you to download & use apps that know how to connect directly to Orbot. Click on the buttons below to install.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Secure instant messaging client for Android</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">Gibberbot - Secure instant messaging client for Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (Android 1.x Only) - Browser designed for privacy & for Orbot</string>
|
||||||
|
<string name="wizard_tips_proxy">Proxy Settings - Learn how to configure apps to work with Orbot</string>
|
||||||
|
|
||||||
|
@@ -108,7 +108,7 @@
|
||||||
|
<string name="wizard_final">Orbot is ready!</string>
|
||||||
|
<string name="wizard_final_msg">Hundreds of thousands of people around the world use Tor for a wide variety of reasons: journalists and bloggers, human rights workers, law enforcement officers, soldiers, corporations, citizens of repressive regimes, and just ordinary citizens... and now you are ready to, as well!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-ar/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-ar/strings.xml (revision 24406)
|
||||||
|
+++ res/values-ar/strings.xml (working copy)
|
||||||
|
@@ -97,7 +97,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">تطبيقات مهيئة لأوربوت</string>
|
||||||
|
<string name="wizard_tips_msg">نشجعكم على تحميل واستخدام التطبيقات التي تعرف كيفية الاتصال مباشرة بأوربوت. اضغط على الأزرار في الأسفل للتثبيت.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - عميل التراسل الفوري الآمن للأندرويد</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - عميل التراسل الفوري الآمن للأندرويد</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (أندرويد 1.x فقط) - متصفح مصمّم للخصوصية لأوربوت </string>
|
||||||
|
<string name="wizard_tips_proxy">إعدادات الوكيل - تعلم كيفية تكوين التطبيقات لتعمل مع أوربوت</string>
|
||||||
|
|
||||||
|
@@ -115,7 +115,7 @@
|
||||||
|
<string name="wizard_final">أوربوت جاهز!</string>
|
||||||
|
<string name="wizard_final_msg">مئات الآلاف من الناس في جميع أنحاء العالم يستخدمون تور لأسباب عديدة: الصحفيين والمدونين، والعاملين في مجال حقوق الإنسان، والجنود والشركات والمواطنين من الأنظمة القمعية، والمواطنين العاديين ... والآن أنت مستعد لأن تستخدمه كذلك!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-es/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-es/strings.xml (revision 24406)
|
||||||
|
+++ res/values-es/strings.xml (working copy)
|
||||||
|
@@ -97,7 +97,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Aplicaciones activas en Orbot</string>
|
||||||
|
<string name="wizard_tips_msg">Le invitamos a descargar y utilizar aplicaciones que saben cómo conectarse directamente a Orbot. Haga clic en los botones a continuación para Instalar.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Cliente de mensajería instantánea seguro para Android</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Cliente de mensajería instantánea seguro para Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (Sólo Android 1.x) - Navegador diseñado para la privacidad y para Orbot</string>
|
||||||
|
<string name="wizard_tips_proxy">Configuraciones Proxy - Aprenda cómo configurar aplicaciones para que trabajen con Orbot</string>
|
||||||
|
|
||||||
|
@@ -115,7 +115,7 @@
|
||||||
|
<string name="wizard_final">¡Orbot está listo!</string>
|
||||||
|
<string name="wizard_final_msg">Cientos de miles de personas alrededor del mundo usan Tor por una amplia variedad de razones: periodistas y bloggers, trabajadores de los derechos humanos, oficiales de policía, soldados, corporaciones, ciudadanos de regímenes represivos y ciudadanos ordinarios... ¡y ahora también lo estás!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-mk/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-mk/strings.xml (revision 24406)
|
||||||
|
+++ res/values-mk/strings.xml (working copy)
|
||||||
|
@@ -95,7 +95,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Орбот-вклучени апликации</string>
|
||||||
|
<string name="wizard_tips_msg">Ви препорачуваме да презимате и користите апликации кои што знаат како директно да се поврзат со Орбот. Притиснете на копчињата подолу за инсталирање.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Безбеден клиент за инстант-пораки за Андроид</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Безбеден клиент за инстант-пораки за Андроид</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (само Андроид 1.x) - Браусер дизајниран за приватност и за Орбот</string>
|
||||||
|
<string name="wizard_tips_proxy">Подесувања на прокси - Научете како да ги конфигурирате апликациите да работат со Орбот</string>
|
||||||
|
|
||||||
|
@@ -109,7 +109,7 @@
|
||||||
|
<string name="wizard_final">Орбот е спремен!</string>
|
||||||
|
<string name="wizard_final_msg">Стотици илјади луѓе низ целиот Свет го користат Тор од многу различни причини: новинари и блогери, борци за човекови права, полицајци, војници, корпорации, граѓани на репресивни режими, и обични граѓани... а сега и Вие сте спремин да го користите!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-nl/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-nl/strings.xml (revision 24406)
|
||||||
|
+++ res/values-nl/strings.xml (working copy)
|
||||||
|
@@ -97,7 +97,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Orbot-beschikbare Apps</string>
|
||||||
|
<string name="wizard_tips_msg">We raden u aan om te apps te downloaden welke zich zich automatisch verbinden met Orbot. Klik op de buttons hier beneden om te installeren.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Veilige instant message programma voor Android</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Veilige instant message programma voor Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (Alleen Android 1.x) - Browser gemaakt voor privacy & voor Orbot</string>
|
||||||
|
<string name="wizard_tips_proxy">Proxy Instellingen - Leer hoe u uw apps kunt configureren voor Orbot</string>
|
||||||
|
|
||||||
|
@@ -114,7 +114,7 @@
|
||||||
|
<string name="wizard_final">Orbot is klaar!</string>
|
||||||
|
<string name="wizard_final_msg">Honderdduizenden verschillende mensen over de wereld gebruiken Tor, zoals: journalisten, bloggers, mensen rechten medewerkers, soldaten, bedrijven, burgers met onderdrukte religies, en natuurlijk normale mensen... En nu bent u ook klaar om te gaan!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/values-pl/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-pl/strings.xml (revision 24406)
|
||||||
|
+++ res/values-pl/strings.xml (working copy)
|
||||||
|
@@ -95,7 +95,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">Aplikacje skonfigurowane dla Orbota</string>
|
||||||
|
<string name="wizard_tips_msg">Zachęcamy do pobierania i używania aplikacji, które wiedzą, jak łączyć się bezpośrednio z Orbotem. Kliknij na poniższe przyciski, by zainstalować.</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Bezpieczny klieny rozmów dla Androida</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Bezpieczny klieny rozmów dla Androida</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (tylko Android 1.x) - Przeglądarka zaprojektowana do prywatności i dla Orbota</string>
|
||||||
|
<string name="wizard_tips_proxy">Ustawienia Proxy - NDowiedz się, jak konfiguroać aplikacje do współpracy z Orbotem</string>
|
||||||
|
|
||||||
|
@@ -109,7 +109,7 @@
|
||||||
|
<string name="wizard_final">Orbot jest gotowy!</string>
|
||||||
|
<string name="wizard_final_msg">Setki tysięcy ludzi na całym świecie używają Tora z różnych powodów: dziennikarze i blogerzy, działacze na rzecz praw człowieka, stróże prawa, żołnierze, korporacje, obywatele represyjnych reżimów i zwykli obywatele... teraz Ty też możesz!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: res/layout/layout_wizard_tips.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/layout/layout_wizard_tips.xml (revision 24406)
|
||||||
|
+++ res/layout/layout_wizard_tips.xml (working copy)
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
|
||||||
|
<TextView android:text="@string/wizard_tips_msg" android:layout_gravity="left" android:textColor="#ffffff" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
-<Button android:text="@string/wizard_tips_otrchat" android:layout_gravity="left" android:drawableLeft="@drawable/icon_otrchat" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOtrchat" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
+<Button android:text="@string/wizard_tips_otrchat" android:layout_gravity="left" android:drawableLeft="@drawable/ic_launcher_gibberbot" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOtrchat" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<Button android:text="@string/wizard_tips_orweb" android:drawableLeft="@drawable/icon_orweb" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOrweb" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
Index: res/values-zh/strings.xml
|
||||||
|
===================================================================
|
||||||
|
--- res/values-zh/strings.xml (revision 24406)
|
||||||
|
+++ res/values-zh/strings.xml (working copy)
|
||||||
|
@@ -95,7 +95,7 @@
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">可用 Orbot 的应用程序</string>
|
||||||
|
<string name="wizard_tips_msg">我们建议您下载和使用能直接连接到 Orbot 的应用程序。点击以下按钮安装。</string>
|
||||||
|
- <string name="wizard_tips_otrchat">OTRCHAT - Android 上的安全即时消息客户端</string>
|
||||||
|
+ <string name="wizard_tips_otrchat">GibberBot - Android 上的安全即时消息客户端</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (仅 Android 1.x) - 着重隐私设计的浏览器</string>
|
||||||
|
<string name="wizard_tips_proxy">代理设置 - 学习如何配置应用程序使用 Orbot</string>
|
||||||
|
|
||||||
|
@@ -108,7 +108,7 @@
|
||||||
|
<string name="wizard_final">Orbot 已就绪!</string>
|
||||||
|
<string name="wizard_final_msg">数以万计的各国人们因为各种原因使用 Tor:记者、人权工作者、法律工作者、士兵、公司、迫于实际情况使用的市民,当然也有普通的市民。现在你也即将成为其中的一员!</string>
|
||||||
|
|
||||||
|
- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
|
||||||
|
+ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
Index: .classpath
|
||||||
|
===================================================================
|
||||||
|
--- .classpath (revision 24406)
|
||||||
|
+++ .classpath (working copy)
|
||||||
|
@@ -1,9 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
- <classpathentry kind="src" path="src"/>
|
||||||
|
- <classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
|
<classpathentry kind="lib" path="libs/asocks.jar"/>
|
||||||
|
<classpathentry kind="lib" path="libs/jtorctrl.jar"/>
|
||||||
|
+ <classpathentry kind="src" path="src"/>
|
||||||
|
+ <classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1,78 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Author: Runa A. Sandvik, <runa.sandvik@gmail.com>
|
||||||
|
# For The Tor Project, Inc.
|
||||||
|
#
|
||||||
|
# This is Free Software (GPLv3)
|
||||||
|
# http://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
|
#
|
||||||
|
# This script will convert translated po files back to xml. Before
|
||||||
|
# running the script, checkout the translation directory from
|
||||||
|
# https://svn.torproject.org.
|
||||||
|
#
|
||||||
|
|
||||||
|
### Start config ###
|
||||||
|
|
||||||
|
# Location of the translated files, i.e. the path to the orbot
|
||||||
|
# directory in the translation module. Do not add the trailing slash.
|
||||||
|
translated="/home/runa/tor/translation/projects/orbot"
|
||||||
|
|
||||||
|
# Location of the orbot directory, i.e. the original English xml file.
|
||||||
|
# In svn, this should be svn/projects/android/trunk/Orbot/res. Do not add the
|
||||||
|
# trailing slash.
|
||||||
|
xml="/home/runa/tor/orbot/res"
|
||||||
|
|
||||||
|
### End config ###
|
||||||
|
|
||||||
|
# Find po files to convert.
|
||||||
|
po=`find $translated -type f -name \*.po`
|
||||||
|
|
||||||
|
# For every po found, create and/or update the translated manpage.
|
||||||
|
for file in $po ; do
|
||||||
|
|
||||||
|
# Validate input and write results to a log file
|
||||||
|
validate_script="/home/runa/tor/translation/tools/validate.py"
|
||||||
|
validate_log="/home/runa/tor/validate/orbot-validate.log"
|
||||||
|
python "$validate_script" -i "$file" -l "$validate_log"
|
||||||
|
|
||||||
|
# Get the basename of the file we are dealing with.
|
||||||
|
pofile=`basename $file`
|
||||||
|
|
||||||
|
# Strip the file for its original extension and add .xml.
|
||||||
|
xmlfile="${pofile%.*}.xml"
|
||||||
|
|
||||||
|
# Figure out which language we are dealing with.
|
||||||
|
dir=`dirname $file | sed "s#$translated/##"`
|
||||||
|
lang=`basename $dir`
|
||||||
|
|
||||||
|
# The translated document is written if 80% or more of the po
|
||||||
|
# file has been translated. Also, po4a-translate will only write
|
||||||
|
# the translated document if 80% or more has been translated.
|
||||||
|
# However, it will delete the translated txt if less than 80%
|
||||||
|
# has been translated. To avoid having our current, translated
|
||||||
|
# xml files deleted, convert the po to a temp xml first. If this
|
||||||
|
# file was actually written, rename it to xml.
|
||||||
|
|
||||||
|
# Convert translated po to xml.
|
||||||
|
function convert {
|
||||||
|
po4a-translate -f xml -m "$xml/values/$xmlfile" -p "$file" -l "$xml/values-$lang/tmp-$xmlfile" --master-charset utf-8 -L utf-8
|
||||||
|
|
||||||
|
# Check to see if the file was written. If yes, rename it.
|
||||||
|
if [ -e "$xml/values-$lang/tmp-$xmlfile" ]
|
||||||
|
then
|
||||||
|
mv "$xml/values-$lang/tmp-$xmlfile" "$xml/values-$lang/$xmlfile"
|
||||||
|
|
||||||
|
# We need to escape apostrophe's
|
||||||
|
sed -i "s/\([^\\]\)'/\1\\\\'/g" "$xml/values-$lang/$xmlfile"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# If the current directory is zh_CN use zh, else convert everything.
|
||||||
|
if [ $lang = "zh_CN" ]
|
||||||
|
then
|
||||||
|
lang="zh"
|
||||||
|
convert
|
||||||
|
else
|
||||||
|
convert
|
||||||
|
fi
|
||||||
|
done
|
|
@ -0,0 +1,31 @@
|
||||||
|
-optimizationpasses 5
|
||||||
|
-dontusemixedcaseclassnames
|
||||||
|
-dontskipnonpubliclibraryclasses
|
||||||
|
-dontpreverify
|
||||||
|
-verbose
|
||||||
|
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
|
||||||
|
|
||||||
|
-keep public class * extends android.app.Activity
|
||||||
|
-keep public class * extends android.app.Application
|
||||||
|
-keep public class * extends android.app.Service
|
||||||
|
-keep public class * extends android.content.BroadcastReceiver
|
||||||
|
-keep public class * extends android.content.ContentProvider
|
||||||
|
-keep public class com.android.vending.licensing.ILicensingService
|
||||||
|
|
||||||
|
-keepclasseswithmembernames class * {
|
||||||
|
native <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembernames class * {
|
||||||
|
public <init>(android.content.Context, android.util.AttributeSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembernames class * {
|
||||||
|
public <init>(android.content.Context, android.util.AttributeSet, int);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclassmembers enum * {
|
||||||
|
public static **[] values();
|
||||||
|
public static ** valueOf(java.lang.String);
|
||||||
|
}
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
# To customize properties used by the Ant build system use,
|
# To customize properties used by the Ant build system use,
|
||||||
# "ant.properties", and override values to adapt the script to your
|
# "ant.properties", and override values to adapt the script to your
|
||||||
# project structure.
|
# project structure.
|
||||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
|
|
||||||
|
|
||||||
# Project target.
|
# Project target.
|
||||||
target=android-16
|
target=android-8
|
||||||
aar.deployPath=/media/n8fr8/nate128/dev/repos/gpmaven/
|
|
||||||
|
|
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 779 B |
After Width: | Height: | Size: 751 B |
After Width: | Height: | Size: 828 B |
After Width: | Height: | Size: 826 B |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.7 KiB |
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:background="@drawable/bgtitanium" android:orientation="vertical">
|
||||||
|
|
||||||
|
<RelativeLayout android:id="@+id/layoutHeaderMain"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:background="#A0909090">
|
||||||
|
<ImageView android:id="@+id/radioModeImage"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="3px"
|
||||||
|
android:layout_marginRight="3px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toRightOf="@+id/radioModeLabel"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:src="@drawable/tor25"
|
||||||
|
/>
|
||||||
|
<TextView android:id="@+id/radioModeText"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="powered by The Tor Project "
|
||||||
|
android:layout_marginTop="8px"
|
||||||
|
android:layout_marginRight="0px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toLeftOf="@+id/radioModeImage"
|
||||||
|
android:textColor="#cccccc" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imgStatus"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_margin="5dip"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:src="@drawable/toroff" android:layout_weight=".5"/>
|
||||||
|
|
||||||
|
<TextView android:id="@+id/lblStatus"
|
||||||
|
android:text="@string/press_to_start"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
|
android:textColor="#ffffff"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:background="@drawable/bgtitanium" android:orientation="vertical">
|
||||||
|
|
||||||
|
<RelativeLayout android:id="@+id/layoutHeaderMain"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:background="#A0909090">
|
||||||
|
<ImageView android:id="@+id/radioModeImage"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="3px"
|
||||||
|
android:layout_marginRight="3px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toRightOf="@+id/radioModeLabel"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:src="@drawable/tor25"
|
||||||
|
/>
|
||||||
|
<TextView android:id="@+id/radioModeText"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="powered by The Tor Project "
|
||||||
|
android:layout_marginTop="8px"
|
||||||
|
android:layout_marginRight="0px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toLeftOf="@+id/radioModeImage"
|
||||||
|
android:textColor="#cccccc" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imgStatus"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_margin="15dip"
|
||||||
|
android:layout_height="400dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:src="@drawable/toroff" android:layout_weight="1"/>
|
||||||
|
|
||||||
|
<TextView android:id="@+id/lblStatus"
|
||||||
|
android:text="@string/press_to_start"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
|
android:textColor="#ffffff"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<ScrollView android:id="@+id/aboutscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<TextView android:text="@string/wizard_details"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="15px"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="#00ff00" />
|
||||||
|
<TextView android:text="@string/wizard_details_msg"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
|
||||||
|
<TextView android:text="Version: "
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="15px"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="#00ff00" />
|
||||||
|
<TextView android:text="- Unknown -"
|
||||||
|
android:id="@+id/versionName"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="@string/project_home"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="15px"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="#00ff00" />
|
||||||
|
<TextView android:text="@string/project_urls"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="License: "
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="15px"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="#00ff00" />
|
||||||
|
<TextView android:text="@string/the_tor_license"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="@string/https_torproject_org"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="@string/third_party_software"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="15px"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="#00ff00" />
|
||||||
|
<TextView android:text="@string/tor_version"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="@string/libevent_version"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="@string/privoxy_version"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="@string/iptables_version"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff"/>
|
||||||
|
<TextView android:text="@string/openssl_version"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:textColorLink="#ffffff"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:duplicateParentState="false">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<TextView android:text="Select apps to use with Tor:"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:padding="3px"
|
||||||
|
android:layout_above="@+id/applistview"
|
||||||
|
/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Button android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content" android:id="@+id/btnsave"
|
||||||
|
android:text="@string/button_close" android:layout_alignParentBottom="true" />
|
||||||
|
|
||||||
|
<ListView android:layout_above="@id/btnsave" android:layout_alignParentTop="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/applistview"></ListView>
|
||||||
|
</RelativeLayout>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:stretchColumns="1">
|
||||||
|
<TableRow>
|
||||||
|
<ImageView android:id="@+id/itemicon" android:layout_width="50dip" android:layout_height="50dip" android:padding="3dip"></ImageView>
|
||||||
|
|
||||||
|
<TextView android:layout_height="wrap_content" android:id="@+id/itemtext" android:text="uid:packages" android:textSize="18sp" android:padding="3dip"></TextView>
|
||||||
|
|
||||||
|
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/itemcheck" ></CheckBox>
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
</TableLayout>
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<TextView android:text=""
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:background="@drawable/bgtitanium">
|
||||||
|
|
||||||
|
<RelativeLayout android:id="@+id/layoutHeaderMain"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:background="#A0909090">
|
||||||
|
<ImageView android:id="@+id/radioModeImage"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="0px"
|
||||||
|
android:layout_marginRight="3px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toRightOf="@+id/radioModeLabel"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:src="@drawable/tor25"
|
||||||
|
/>
|
||||||
|
<TextView android:id="@+id/radioModeText"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/powered_by"
|
||||||
|
android:layout_marginTop="9px"
|
||||||
|
android:layout_marginRight="0px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toLeftOf="@+id/radioModeImage"
|
||||||
|
android:textColor="#333333" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<ScrollView android:orientation="vertical"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="fill_parent" android:id="@+id/logScrollView"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<TextView android:id="@+id/messageLog"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_x="2px"
|
||||||
|
android:layout_y="2px"
|
||||||
|
android:textSize="14px"
|
||||||
|
android:background="#A0222222"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:background="@drawable/bgtitanium"
|
||||||
|
android:id="@+id/viewMain"
|
||||||
|
>
|
||||||
|
|
||||||
|
<RelativeLayout android:id="@+id/layoutHeaderMain"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:background="#A0909090">
|
||||||
|
<ImageView android:id="@+id/radioModeImage"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="3px"
|
||||||
|
android:layout_marginRight="3px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toRightOf="@+id/radioModeLabel"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:src="@drawable/tor25"
|
||||||
|
/>
|
||||||
|
<TextView android:id="@+id/radioModeText"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="powered by The Tor Project "
|
||||||
|
android:layout_marginTop="8px"
|
||||||
|
android:layout_marginRight="0px"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_toLeftOf="@+id/radioModeImage"
|
||||||
|
android:textColor="#cccccc" />
|
||||||
|
</RelativeLayout>
|
||||||
|
<RelativeLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
|
||||||
|
>
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imgStatus"
|
||||||
|
android:layout_margin="15dip"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="320dip"
|
||||||
|
android:src="@drawable/toroff"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextView android:id="@+id/lblStatus"
|
||||||
|
android:text="@string/press_to_start"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="60dip"
|
||||||
|
android:textColor="#ffffff"
|
||||||
|
android:layout_below="@id/imgStatus"
|
||||||
|
/>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView android:layout_height="380px"
|
||||||
|
android:layout_width="fill_parent">
|
||||||
|
|
||||||
|
<EditText android:id="@+id/textSettings"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_weight="1.0"
|
||||||
|
android:singleLine="false"
|
||||||
|
android:textSize="11px"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
<Button android:id="@+id/btnSettingsSave"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="40px"
|
||||||
|
android:text="Save Settings"
|
||||||
|
android:layout_margin="0sp"
|
||||||
|
|
||||||
|
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<TextView android:text=""
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="70sp"
|
||||||
|
android:id="@+id/relativeLayout1"
|
||||||
|
android:layout_gravity="center_vertical|center_horizontal"
|
||||||
|
android:background="#000000"
|
||||||
|
>
|
||||||
|
<ImageView
|
||||||
|
android:src="@drawable/icon"
|
||||||
|
android:id="@+id/orbot_image"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:paddingLeft="20sp" >
|
||||||
|
</ImageView>
|
||||||
|
<TextView
|
||||||
|
android:textColor="#FFFFFF"
|
||||||
|
android:textSize="10pt"
|
||||||
|
android:layout_toRightOf="@id/orbot_image"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:id="@+id/WizardTextTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:fadingEdge="vertical"
|
||||||
|
android:text="TITLE"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
android:paddingLeft="5sp"
|
||||||
|
>
|
||||||
|
</TextView>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<TableLayout android:id="@+id/TableLayout01" android:stretchColumns="*" android:layout_height="fill_parent" android:layout_width="wrap_content">
|
||||||
|
|
||||||
|
<TableRow android:layout_margin="10dip" android:id="@+id/TableRow01" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_span="3"
|
||||||
|
>
|
||||||
|
<LinearLayout android:background="#575757" android:layout_width="wrap_content" android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:orientation="vertical">
|
||||||
|
<TextView android:layout_width="wrap_content" android:textColor="#ffffff" android:layout_height="wrap_content" android:textSize="8pt" android:id="@+id/WizardTextBody1" android:text="this is sample text this is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample text" android:padding="20dip"></TextView>
|
||||||
|
<Button android:layout_width="wrap_content" android:visibility="gone" android:layout_height="wrap_content" android:gravity="center" android:text="@string/button_grant_superuser" android:id="@+id/grantPermissions" android:layout_gravity="center"></Button>
|
||||||
|
<TextView android:layout_width="wrap_content" android:layout_gravity="left" android:visibility="gone" android:textColor="#ffffff" android:layout_height="wrap_content" android:textSize="8pt" android:id="@+id/WizardTextBody2" android:text="this is sample text this is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample text" android:padding="20dip"></TextView>
|
||||||
|
<CheckBox android:id="@+id/checkBox" android:layout_gravity="left" android:text="@string/wizard_permissions_consent" android:layout_height="wrap_content" android:layout_width="wrap_content" android:gravity="center" android:visibility="visible"></CheckBox>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
<TableRow android:background="#000000" android:layout_marginTop="10dip" android:paddingTop="10dip" android:id="@+id/TableRow01" android:textColor="#00ff00" android:layout_width="fill_parent" android:layout_height="30px">
|
||||||
|
<Button android:text="Back" android:id="@+id/btnWizard1" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
<Button android:text="Next" android:id="@+id/btnWizard2" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
</TableRow>
|
||||||
|
</TableLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:padding="3px">
|
||||||
|
<TextView android:text="@string/wizard_proxy_help_msg" android:textColor="#ffffff" android:id="@+id/WizardRootTextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/relativeLayout1"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:background="#000000">
|
||||||
|
<TextView android:textSize="10pt"
|
||||||
|
android:textColor="#FFFFFF"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/WizardTextTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:fadingEdge="vertical"
|
||||||
|
android:text="TITLE"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:padding="20px" android:layout_centerInParent="true">
|
||||||
|
</TextView>
|
||||||
|
</RelativeLayout>
|
||||||
|
<TableLayout android:id="@+id/TableLayout01" android:stretchColumns="*" android:layout_height="fill_parent" android:layout_width="wrap_content">
|
||||||
|
|
||||||
|
<TableRow android:layout_margin="10dip" android:id="@+id/TableRow01" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_span="3">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:background="#575757"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:padding="3px">
|
||||||
|
<TextView android:text="@string/wizard_transproxy_msg" android:layout_width="wrap_content" android:textColor="#ffffff" android:layout_height="wrap_content" android:textSize="8pt" android:id="@+id/WizardTextBody1" android:padding="20dip"></TextView>
|
||||||
|
<RadioGroup android:id="@+id/radioGroup" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="15dip">
|
||||||
|
<RadioButton android:text="@string/wizard_configure_all" android:id="@+id/radio0" android:layout_height="wrap_content" android:layout_width="wrap_content"></RadioButton>
|
||||||
|
<TextView android:layout_height="wrap_content"
|
||||||
|
android:text="@string/wizard_transproxy_hint"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:paddingBottom="10dip" android:paddingRight="20dip">
|
||||||
|
</TextView>
|
||||||
|
<RadioButton android:text="@string/wizard_configure_select_apps" android:id="@+id/radio1" android:layout_height="wrap_content" android:layout_width="wrap_content"></RadioButton>
|
||||||
|
<RadioButton android:text="@string/wizard_transproxy_none" android:id="@+id/radio2" android:layout_height="wrap_content" android:layout_width="wrap_content"></RadioButton>
|
||||||
|
</RadioGroup>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
<TableRow android:background="#000000" android:layout_marginTop="10dip" android:paddingTop="10dip" android:id="@+id/TableRow01" android:textColor="#00ff00" android:layout_width="fill_parent" android:layout_height="30px">
|
||||||
|
<Button android:text="Back" android:id="@+id/btnWizard1" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
<Button android:text="Next" android:id="@+id/btnWizard2" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
</TableRow>
|
||||||
|
</TableLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:padding="3px">
|
||||||
|
|
||||||
|
|
||||||
|
<TextView android:text="@string/wizard_permissions_msg_stock" android:textColor="#ffffff" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
<Button android:text="@string/wizard_permission_enable_root" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonEnable" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<TextView android:text="@string/wizard_permissions_no_root" android:layout_marginTop="10px" android:textColor="#ffffff" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
<CheckBox android:text="@string/wizard_permissions_consent" android:id="@+id/CheckBoxConsent" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="70sp"
|
||||||
|
android:id="@+id/relativeLayout1"
|
||||||
|
android:layout_gravity="center_vertical|center_horizontal"
|
||||||
|
android:background="#000000"
|
||||||
|
>
|
||||||
|
<ImageView
|
||||||
|
android:src="@drawable/warning"
|
||||||
|
android:id="@+id/orbot_image"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:paddingLeft="20sp" >
|
||||||
|
</ImageView>
|
||||||
|
<TextView
|
||||||
|
android:textColor="#FFFFFF"
|
||||||
|
android:textSize="10pt"
|
||||||
|
android:layout_toRightOf="@id/orbot_image"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:id="@+id/WizardTextTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:fadingEdge="vertical"
|
||||||
|
android:text="TITLE"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
android:paddingLeft="5sp"
|
||||||
|
>
|
||||||
|
</TextView>
|
||||||
|
</RelativeLayout>
|
||||||
|
<TableLayout android:id="@+id/TableLayout01" android:stretchColumns="*" android:layout_height="fill_parent" android:layout_width="wrap_content">
|
||||||
|
|
||||||
|
<TableRow android:layout_margin="10dip" android:id="@+id/TableRow01" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_span="3">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:background="#575757"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:paddingRight="20dip"
|
||||||
|
>
|
||||||
|
|
||||||
|
<TextView android:text="@string/wizard_tips_msg" android:layout_width="wrap_content" android:textColor="#ffffff" android:layout_height="wrap_content" android:textSize="8pt" android:id="@+id/WizardTextBody1" android:padding="20dip"></TextView>
|
||||||
|
<Button android:text="@string/wizard_tips_orweb" android:layout_gravity="left" android:drawableLeft="@drawable/icon_orweb" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOrweb" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<Button android:text="@string/wizard_tips_gibberbot" android:layout_gravity="left" android:drawableLeft="@drawable/ic_launcher_gibberbot" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallGibberbot" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<Button android:text="@string/wizard_tips_firefox" android:layout_gravity="left" android:drawableLeft="@drawable/icon_firefox" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallFirefox" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<Button android:text="@string/wizard_tips_proxymob" android:layout_marginTop="10px" android:drawableLeft="@drawable/proxymob" android:id="@+id/WizardRootButtonInstallProxyMob" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
-->
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
<TableRow android:background="#000000" android:layout_marginTop="10dip" android:paddingTop="10dip" android:id="@+id/TableRow01" android:textColor="#00ff00" android:layout_width="fill_parent" android:layout_height="30px">
|
||||||
|
<Button android:text="Back" android:id="@+id/btnWizard1" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
<Button android:text="Next" android:id="@+id/btnWizard2" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
</TableRow>
|
||||||
|
</TableLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:padding="3px">
|
||||||
|
<TextView android:text="@string/wizard_welcome_msg" android:textColor="#ffffff" android:id="@+id/WizardRootTextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/relativeLayout1"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="70sp"
|
||||||
|
android:layout_gravity="center_vertical|center_horizontal"
|
||||||
|
android:background="#000000" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/orbot_image"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:paddingLeft="20sp"
|
||||||
|
android:src="@drawable/warning"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
</ImageView>
|
||||||
|
<TextView
|
||||||
|
android:textColor="#FFFFFF"
|
||||||
|
android:textSize="20dp"
|
||||||
|
android:layout_toRightOf="@id/orbot_image"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:id="@+id/WizardTextTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:fadingEdge="vertical"
|
||||||
|
android:text="TITLE"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
android:paddingLeft="5sp"
|
||||||
|
>
|
||||||
|
</TextView>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<TableLayout android:id="@+id/TableLayout01" android:stretchColumns="*" android:layout_height="fill_parent" android:layout_width="wrap_content" >
|
||||||
|
|
||||||
|
<TableRow android:id="@+id/TableRow01" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="10dip">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView android:id="@+id/helpscrollview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:layout_span="3">
|
||||||
|
|
||||||
|
<TextView android:background="#575757" android:text="this is sample text this is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample textthis is sample text" android:textColor="#ffffff" android:id="@+id/WizardTextBody" android:textSize="8pt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="20dip"></TextView>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
<TableRow android:background="#000000" android:id="@+id/TableRow01" android:textColor="#00ff00" android:layout_width="fill_parent" android:layout_height="30px" android:layout_marginTop="10dip" android:paddingTop="10dip">
|
||||||
|
<Button android:text="Back" android:id="@+id/btnWizard1" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
<Button android:text="Next" android:id="@+id/btnWizard2" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
|
||||||
|
</TableRow>
|
||||||
|
</TableLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Generally, this file goes in /etc/privoxy/config
|
||||||
|
#
|
||||||
|
# Tor listens as a SOCKS4a proxy here:
|
||||||
|
forward-socks4a / 127.0.0.1:9050 .
|
||||||
|
confdir /data/data/org.torproject.android
|
||||||
|
logdir /data/data/org.torproject.android
|
||||||
|
# actionsfile standard # Internal purpose, recommended
|
||||||
|
#actionsfile default.action # Main actions file
|
||||||
|
#actionsfile user.action # User customizations
|
||||||
|
#filterfile default.filter
|
||||||
|
|
||||||
|
# Don't log interesting things, only startup messages, warnings and errors
|
||||||
|
#logfile logfile
|
||||||
|
#jarfile jarfile
|
||||||
|
#debug 1
|
||||||
|
#debug 0 # show each GET/POST/CONNECT request
|
||||||
|
#debug 4096 # Startup banner and warnings
|
||||||
|
#debug 8192 # Errors - *we highly recommended enabling this*
|
||||||
|
|
||||||
|
#user-manual /usr/share/doc/privoxy/user-manual
|
||||||
|
listen-address 127.0.0.1:8118
|
||||||
|
toggle 1
|
||||||
|
accept-intercepted-requests 1
|
||||||
|
enable-remote-toggle 0
|
||||||
|
enable-edit-actions 0
|
||||||
|
enable-remote-http-toggle 0
|
||||||
|
buffer-limit 4096
|
|
@ -0,0 +1,13 @@
|
||||||
|
SocksPort 9050
|
||||||
|
SafeSocks 1
|
||||||
|
Log notice stdout
|
||||||
|
ControlListenAddress 127.0.0.1
|
||||||
|
ControlPort 9051
|
||||||
|
CookieAuthentication 1
|
||||||
|
RelayBandwidthRate 20 KBytes
|
||||||
|
RelayBandwidthBurst 20 KBytes
|
||||||
|
AutomapHostsOnResolve 1
|
||||||
|
TransListenAddress 127.0.0.1
|
||||||
|
TransPort 9040
|
||||||
|
DNSListenAddress 127.0.0.1
|
||||||
|
DNSPort 5400
|
|
@ -0,0 +1,14 @@
|
||||||
|
SocksPort 9050
|
||||||
|
SafeSocks 1
|
||||||
|
Log notice stdout
|
||||||
|
ControlListenAddress 127.0.0.1
|
||||||
|
ControlPort 9051
|
||||||
|
CookieAuthentication 1
|
||||||
|
RelayBandwidthRate 20 KBytes
|
||||||
|
RelayBandwidthBurst 20 KBytes
|
||||||
|
UseBridges 0
|
||||||
|
AutomapHostsOnResolve 1
|
||||||
|
TransListenAddress 0.0.0.0
|
||||||
|
TransPort 9040
|
||||||
|
DNSListenAddress 0.0.0.0
|
||||||
|
DNSPort 5400
|
|
@ -0,0 +1,137 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">اوربوت (Orbot)</string>
|
||||||
|
|
||||||
|
<string name="internal_web_url">http://orbot/</string>
|
||||||
|
<string name="default_web_url">http://check.torproject.org</string>
|
||||||
|
<string name="secure_default_web_url">https://check.torproject.org</string>
|
||||||
|
<string name="tor_check_api_url">https://check.torproject.org/?TorButton=true</string>
|
||||||
|
<string name="control_permission_label">بدء وإيقاف تور</string>
|
||||||
|
<string name="tor_proxy_service_process">خدمة وكيل تور</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">اوربوت يبدأ...</string>
|
||||||
|
<string name="status_activated">أنا متصل بشبكة تور</string>
|
||||||
|
<string name="status_disabled">"تم إيقاف اوربوت</string>
|
||||||
|
<string name="status_shutting_down">جاري إغلاق اوربوت</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">تحذير: حركة مرورك ليست خفية الى الآن! من فضلك قم بتكوين التطبيقات الخاصة بك لإستخدام HTTP proxy 127.0.0.1:8118 أو SOCK4A أو SOKS5 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">الصفحة الرئيسية</string>
|
||||||
|
<string name="menu_browse">تصفّح</string>
|
||||||
|
<string name="menu_settings">إعدادات</string>
|
||||||
|
<string name="menu_log">السجل</string>
|
||||||
|
<string name="menu_info">مساعدة</string>
|
||||||
|
<string name="menu_apps">تطبيقات</string>
|
||||||
|
<string name="menu_start">بدء</string>
|
||||||
|
<string name="menu_stop">إيقاف</string>
|
||||||
|
|
||||||
|
<string name="menu_about">حول</string>
|
||||||
|
<string name="menu_wizard">Wizard</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">مساعدة</string>
|
||||||
|
<string name="button_close">إغلاق</string>
|
||||||
|
<string name="button_about">حول</string>
|
||||||
|
|
||||||
|
<string name="button_clear_log">مسح السجل</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">فحص</string>
|
||||||
|
<string name="menu_exit">خروج</string>
|
||||||
|
<string name="powered_by">بدعم من مشروع تور</string>
|
||||||
|
<string name="press_to_start">- long press to start -</string>
|
||||||
|
|
||||||
|
<string name="pref_trans_proxy_group">عملية توكيل غير مرئية أو ضمنية (يتطلب حقوق المسؤول- Root-)</string>
|
||||||
|
<string name="pref_trans_proxy_title">عملية توكيل غير مرئية أو ضمنية</string>
|
||||||
|
<string name="pref_trans_proxy_summary">عملية توريفاي أوتوماتيكية للتطبيقات</string>
|
||||||
|
|
||||||
|
<string name="pref_transparent_all_title">تور كل شيء</string>
|
||||||
|
<string name="pref_transparent_all_summary">حركة مرور الوكيل لجميع التطبيقات عبر تور</string>
|
||||||
|
|
||||||
|
<string name="pref_transparent_port_fallback_title">Port Proxy Fallback</string>
|
||||||
|
<string name="pref_transparent_port_fallback_summary">WARNING: Circumvents common ports (80, 443, etc). *USE ONLY* if \'All\' or \'App\' mode doesn\'t work.</string>
|
||||||
|
|
||||||
|
<string name="pref_transparent_port_title">Port List</string>
|
||||||
|
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
|
||||||
|
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
|
||||||
|
|
||||||
|
<string name="pref_has_root">Request Root Access</string>
|
||||||
|
<string name="pref_has_root_summary">Request root access for transparent proxying</string>
|
||||||
|
|
||||||
|
<string name="status_install_success">تم تثبيت ثنائيات تور بنجاح!</string>
|
||||||
|
<string name="status_install_fail">غير قادر على تثبيت ملفات ثنائيات تور. يرجى التحقق من السجل وإعلامنا على البريد الإلكتروني tor-assistants@torproject.org</string>
|
||||||
|
|
||||||
|
<string name="title_error">خطأ في التطبيق</string>
|
||||||
|
|
||||||
|
<string name="wizard_title">مرحبا بك في أوربوت</string>
|
||||||
|
|
||||||
|
<string name="wizard_btn_tell_me_more">عن أوربوت</string>
|
||||||
|
<string name="btn_next">التالي</string>
|
||||||
|
<string name="btn_back">رجوع</string>
|
||||||
|
<string name="btn_finish">إنهاء</string>
|
||||||
|
|
||||||
|
<string name="btn_okay">موافق</string>
|
||||||
|
<string name="btn_cancel">إلغاء</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Welcome Wizard strings (DJH) -->
|
||||||
|
|
||||||
|
<string name="wizard_welcome_msg">بفضل أوربوت، صار ممكنا استعمال تور في أندرويد. تور هو برنامج مجاني وشبكة مفتوحة تساعد على حمايتك من مراقبة الشبكات التي تهدد الخصوصية والحرية الشخصية والعلاقات والأنشطة التجارية السرية ورقابة الدول المعروفة بإسم تحليل حركة المرور.
|
||||||
|
|
||||||
|
*تحذير: *تثبيت أوربوت على جهازك_لن_يقوم بإخفاء تحركات حركة مرورك بشكل سحري! سوف يساعدك هذا المعالج على البدء.</string>
|
||||||
|
<string name="wizard_details">بعض التفاصيل عن أوربوت</string>
|
||||||
|
<string name="wizard_details_msg">أوربوت هو تطبيق مفتوح المصدر والذي يضم تور, LibEvent وPrixovy. يعمل على توفير وكيل HTTP محلي (8118) ووكيل SOCKS (9050) إلى شبكة تور. يتوفر لدى أوربوت القدرة على إرسال جميع حركات مرور الانترنت من خلال تور على الجهاز ذات حقوق المسؤول (root). </string>
|
||||||
|
<string name="wizard_permissions_root">تم منح الإذن</string>
|
||||||
|
<string name="wizard_permissions_stock">أذونات أوربوت</string>
|
||||||
|
<string name="wizard_premissions_msg_root">ممتاز! لقد وجدنا بأنه لديك أذونات حقوق المسؤول (root) لتمكين أوربوت. سوف نستخدم هذه السلطة بحكمة.</string>
|
||||||
|
<string name="wizard_permissions_msg_stock">رغم أنه ليس ضروريا، يمكن ان يصبح أوربوت أداة قوية إذا كان لدى جهازك صلاحية حقوق المسؤول (root). استخدم الزر بالأسفل لمنح أوربوت قوة أكبر!</string>
|
||||||
|
|
||||||
|
<string name="wizard_permissions_no_root">إذا لم يكن لديك صلاحية حقوق المسؤول (root) أو ليست لديك أدنى فكرة عما نتحدث عنه، تأكد فقط من استخدام تطبيقات تعمل مع أوربوت.</string>
|
||||||
|
<string name="wizard_permissions_consent">أفهم ذلك وأود أن أستمر بدون حقوق المسؤول (root)</string>
|
||||||
|
|
||||||
|
<string name="wizard_permission_enable_root">منح أوربوت حقوق المسؤول (root)</string>
|
||||||
|
<string name="wizard_configure">تكوين توريفاي</string>
|
||||||
|
<string name="wizard_configure_msg">أوربوت يعطيك الخيار لتوجيه جميع حركات مرور التطبيقات عبر تور OR لإختيار تطبيقاتك بشكل فردي.</string>
|
||||||
|
<string name="wizard_configure_all">توكيل جميع التطبيقات عبر تور</string>
|
||||||
|
<string name="wizard_configure_select_apps">اختر التطبيقات الفردية لتور</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="wizard_tips_tricks">تطبيقات مهيئة لأوربوت</string>
|
||||||
|
<string name="wizard_tips_msg">نشجعكم على تحميل واستخدام التطبيقات التي تعرف كيفية الاتصال مباشرة بأوربوت. اضغط على الأزرار في الأسفل للتثبيت.</string>
|
||||||
|
<string name="wizard_tips_otrchat">Gibberbot - Secure instant messaging client for Android</string>
|
||||||
|
<string name="wizard_tips_orweb">ORWEB (أندرويد 1.x فقط) - متصفح مصمّم للخصوصية لأوربوت </string>
|
||||||
|
<string name="wizard_tips_proxy">إعدادات الوكيل - تعلم كيفية تكوين التطبيقات لتعمل مع أوربوت</string>
|
||||||
|
|
||||||
|
<string name="wizard_proxy_help_info">إعدادات الوكيل</string>
|
||||||
|
<string name="wizard_proxy_help_msg">اذا كان تطبيق أندرويد الذي تستخدمه يمكن ان يدعم استخدام وكيل HTTP او SOCKS , عندها يمكنك تكوينه للإتصال بأوربوت واستخدام تور.
|
||||||
|
|
||||||
|
|
||||||
|
اعدادات المستضيف هي 127.0.0.1 او "المستضيف المحلي". بالنسبة الى HTTP, فإن ضبط المنفذ هو 8118. بالنسبة الى SOCKS, فإن الوكيل هو 9050. يجب عليك استخدام SOCKS4A او SOCKS5 اذا امكن.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
يمكنك معرفة المزيد عن عملية توكيل غير مرئية للأندرويد عن طريق الأسئلة المتداولة (FAQ) في: http://tinyurl.com/proxyandroid
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<string name="wizard_final">أوربوت جاهز!</string>
|
||||||
|
<string name="wizard_final_msg">مئات الآلاف من الناس في جميع أنحاء العالم يستخدمون تور لأسباب عديدة: الصحفيين والمدونين، والعاملين في مجال حقوق الإنسان، والجنود والشركات والمواطنين من الأنظمة القمعية، والمواطنين العاديين ... والآن أنت مستعد لأن تستخدمه كذلك!</string>
|
||||||
|
|
||||||
|
<string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
|
||||||
|
<string name="orweb_apk_url">market://search?q=pname:nfo.guardianproject.browser</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
|
||||||
|
|
||||||
|
<string name="connect_first_time"> لقد قمت بإتصال ناجح الى شبكة تور - لكن هذا لا يعني بأن جهازك في مأمن. يمكنك استخدام خيار \'تحقق\' من القائمة لإختبار المتصفح الخاص بك.
|
||||||
|
|
||||||
|
قم بزيارتنا على https://guardianproject.info/apps/orbot او ارسل رسالة الكترونية الى help@guardianproject.info لمعرفة المزيد.</string>
|
||||||
|
|
||||||
|
<string name="tor_check">سيؤدي هذا إلى فتح المتصفح الافتراضي الخاص بك على العنوان https://check.torproject.org من اجل التحقق من تكوين أوربوت بشكل صحيح وبأنك متصل بتور.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="pref_hs_group">خدمات خفية</string>
|
||||||
|
|
||||||
|
<string name="pref_general_group">General</string>
|
||||||
|
<string name="pref_start_boot_title">Start Orbot on Boot</string>
|
||||||
|
<string name="pref_start_boot_summary">Automatically start Orbot and connect Tor when your Android device boots</string>
|
||||||
|
|
||||||
|
</resources>
|