Compare commits
No commits in common. "master" and "0.2.2.14-alpha-orbot-1.0.2" have entirely different histories.
master
...
0.2.2.14-a
|
@ -0,0 +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="output" path="bin"/>
|
||||||
|
</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
|
23
AUTHORS
|
@ -1,11 +1,12 @@
|
||||||
This file lists the authors for Orbot, a free software project to provide
|
This file lists the authors for Orbot, a free software project to provide
|
||||||
anonymity on the Internet on Android smartphones.
|
anonymity on the Internet on Android smartphones.
|
||||||
|
|
||||||
For more information about Orbot, see https://guardianproject.info/apps/orbot
|
For more information about Orbot, see http://guardianproject.info/
|
||||||
|
|
||||||
If you got this file as a part of a larger bundle, there are probably
|
If you got this file as a part of a larger bundle, there are probably
|
||||||
other authors that you should be aware of.
|
other authors that you should be aware of.
|
||||||
|
|
||||||
|
|
||||||
Main Authors:
|
Main Authors:
|
||||||
-------------
|
-------------
|
||||||
Nathan Freitas <nathan@freitas.net> developed the primary Android
|
Nathan Freitas <nathan@freitas.net> developed the primary Android
|
||||||
|
@ -16,29 +17,11 @@ in the rear to get this done. He has also provided extensive guidance
|
||||||
and review. Most recently he has been promoted to Chief Application
|
and review. Most recently he has been promoted to Chief Application
|
||||||
Resource Editor.
|
Resource Editor.
|
||||||
|
|
||||||
Derek Halliday <derek@guardianproject.info> has designed and implemented
|
|
||||||
new user interface components and layouts since the 1.0.4 release.
|
|
||||||
|
|
||||||
Contributors:
|
Contributors:
|
||||||
-------------
|
-------------
|
||||||
Nick Mathewson <nickm@freehaven.net> wrote some of the patch code to
|
Nick Mathewson <nickm@freehaven.net> wrote some of the patch code to
|
||||||
support the compiling of Tor and Libevent on Android, and generally
|
support the compiling of Tor and Libevent on Android, and generally
|
||||||
provided guidance in the entire effort.
|
provided guidance in the entire effort.
|
||||||
|
|
||||||
Adam Langley made the original valiant effort to port Tor to Android.
|
Adam Langley <> made the original valiant effort to port Tor to Android.
|
||||||
|
|
||||||
Sathyanarayanan <gsathya@torproject.org> created a patch for the wizard
|
|
||||||
which updated the icon and link for the secure chat app info to point
|
|
||||||
to Gibberbot, and hopefully will continue to contribute useful patches.
|
|
||||||
|
|
||||||
__sporkbomb <manuel@acanthephyra.net> implemented an updated set of logic
|
|
||||||
in TorTransProxy for handling the "transproxy all" mode of operation. Before
|
|
||||||
certain system processes were leaking traffic, and this was also detected
|
|
||||||
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,50 @@
|
||||||
|
<?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.2.14-orbot-alpha-1.0.2" android:versionCode="8">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
|
<application 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>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<activity android:name=".SettingsPreferences" android:label="@string/app_name"/>
|
||||||
|
<activity android:name=".AppManager" android:label="@string/app_name"/>
|
||||||
|
<activity android:name=".WizardActivity" android:label="@string/app_name"/>
|
||||||
|
|
||||||
|
<service android:name=".service.TorService" android:process=":remote" android:debuggable="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>
|
||||||
|
|
||||||
|
<uses-sdk android:minSdkVersion="3"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</manifest>
|
168
BUILD
|
@ -1,45 +1,159 @@
|
||||||
|
nThis 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. It covers building on Debian Lenny (5.0.3).
|
||||||
source.
|
|
||||||
|
|
||||||
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
|
curl http://android.git.kernel.org/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 git://android.git.kernel.org/platform/manifest.git
|
||||||
|
repo sync
|
||||||
|
|
||||||
Now build the Android app
|
# Paste in key from http://source.android.com/download next...
|
||||||
|
gpg --import
|
||||||
|
|
||||||
(gradle / android studio instructions here)
|
cd ~/mydroid
|
||||||
|
|
||||||
This will produce an unsigned Tor package APK.
|
# 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:
|
||||||
|
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
|
||||||
|
#replace FOO with your actual username
|
||||||
|
CC=droid-gcc LD=droid-ld CPPFLAGS="-I/home/FOO/mydroid/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.12-stable/libevent/ .
|
||||||
|
export LIBEVENTDIR=`pwd`
|
||||||
|
./autogen.sh
|
||||||
|
# Put the contents of http://pastebin.ca/1577207 in /tmp/libevent-patch
|
||||||
|
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 ~/mydroid/out/target/product/generic/obj/lib
|
||||||
|
|
||||||
|
Fetch and build Tor:
|
||||||
|
|
||||||
|
export OPENSSLDIR=`cd ~/mydroid/external/openssl/include/ && pwd`
|
||||||
|
export ZLIBDIR=`cd ~/mydroid/external/zlib && pwd`
|
||||||
|
|
||||||
|
cd ~/mydroid/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.
|
||||||
|
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 build our Java SOCKS library:
|
||||||
|
|
||||||
|
# If you're in Orbot's directory already...
|
||||||
|
cd ../asocks/
|
||||||
|
ant compile
|
||||||
|
ant jar
|
||||||
|
cp bin/jar/asocks.jar ../Orbot/libs
|
||||||
|
|
||||||
|
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 ~/mydroid/external/privoxy/privoxy-3.0.12-stable/privoxy assets/privoxy
|
||||||
|
cp ~/mydroid/external/tor/tor/src/or/tor assets/tor
|
||||||
|
$APP_SDK/android update project --name Orbot --target 3 --path .
|
||||||
|
ant release
|
||||||
|
|
||||||
|
This will produce an unsigned Tor package in ./bin/Orbot-unsigned.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,68 @@
|
||||||
|
NOTE: Specific #s below correspond to Trac tickets logged and maintained at https://trac.torproject.org/projects/tor/
|
||||||
|
|
||||||
|
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,39 @@
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
You can also set the Android system-wide HTTP proxy using the Mobile
|
||||||
|
Network APN:
|
||||||
|
Settings->Mobile networks->Access Point Names->(select your Carrier APN):
|
||||||
|
|
||||||
|
Proxy: 127.0.0.1
|
||||||
|
Port:8118
|
||||||
|
|
||||||
|
** 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, Nathan Freitas, The Guardian Project
|
||||||
|
* http://guardianproject.info/ */
|
99
LICENSE
|
@ -1,10 +1,9 @@
|
||||||
This file contains the license for Orbot, a free software project to
|
This file contains the license for Orbot, a free software project to
|
||||||
provide anonymity on the Internet from a Google Android smartphone.
|
provide anonymity on the Internet from a Google Android smartphone.
|
||||||
|
|
||||||
It also lists the licenses for other components used by Orbot, including
|
It also lists the licenses for other components used by Orbot.
|
||||||
Tor, Privoxy, and iptables.
|
|
||||||
|
|
||||||
For more information about Orbot, see https://guardianproject.info/apps/orbot
|
For more information about Orbot, see http://guardianproject.info/
|
||||||
|
|
||||||
If you got this file as a part of a larger bundle, there may be other
|
If you got this file as a part of a larger bundle, there may be other
|
||||||
license terms that you should be aware of.
|
license terms that you should be aware of.
|
||||||
|
@ -42,55 +41,14 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
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 contains a binary distribution of the JSocks library:
|
||||||
===============================================================================
|
http://code.google.com/p/jsocks-mirror/
|
||||||
Orbot includes the Obfs4 pluggable transport:
|
which is licensed under the GNU Lesser General Public License:
|
||||||
https://gitweb.torproject.org/pluggable-transports/obfs4.git
|
http://www.gnu.org/licenses/lgpl.html
|
||||||
|
|
||||||
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 the source code for HttpProxy developed and freely licensed
|
||||||
*****
|
by: Julian Robichaux -- http://www.nsftools.com
|
||||||
Orbot contains a binary distribution of Privoxy (http://www.privoxy.org/)
|
|
||||||
Copyright © 2001-2010 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
|
||||||
http://www.privoxy.org/user-manual/copyright.html
|
|
||||||
|
|
||||||
Some source code is based on code Copyright © 1997 by Anonymous Coders and Junkbusters, Inc.
|
|
||||||
and licensed under the GNU General Public License.
|
|
||||||
|
|
||||||
Privoxy is free software; you can redistribute it and/or modify it under the terms of the
|
|
||||||
GNU General Public License, version 2, as published by the Free Software Foundation.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
||||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
See the GNU General Public License for details.
|
|
||||||
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
******
|
******
|
||||||
Orbot contains a binary distribution of Tor:
|
Orbot contains a binary distribution of Tor:
|
||||||
|
@ -105,6 +63,7 @@ Orbot contains a binary distribution of Tor:
|
||||||
If you got this file as a part of a larger bundle,
|
If you got this file as a part of a larger bundle,
|
||||||
there may be other license terms that you should be aware of.
|
there may be other license terms that you should be aware of.
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
Tor is distributed under this license:
|
Tor is distributed under this license:
|
||||||
|
|
||||||
|
@ -182,43 +141,3 @@ http://ip-to-country.webhosting.info."
|
||||||
See the src/config/geoip file in particular.
|
See the src/config/geoip file in particular.
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
||||||
===============================================================================
|
|
||||||
Orbot also uses iptables from the Netfilter.org project
|
|
||||||
|
|
||||||
netfilter/iptables is - like all of the Linux Kernel - Free Software (sometimes
|
|
||||||
referred to as Open Source Software), distributed under the terms of the GNU GPLv2
|
|
||||||
only. Please, note that some source code files might differ, and in that case it
|
|
||||||
is explicitely stated in the header of every file.
|
|
||||||
|
|
||||||
The GPL also contains some obligations. If you distribute netfilter/iptables code
|
|
||||||
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/ */
|
||||||
|
|
16
TODO
|
@ -1,8 +1,14 @@
|
||||||
|
|
||||||
Current tracked tickets for Orbot can be found here:
|
See http://bugs.noreply.org/flyspray/index.php?tasks=all&project=8
|
||||||
https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=new&status=reopened&group=component&component=Orbot&order=priority
|
for the latest active bug and enhancment tickets.
|
||||||
|
|
||||||
If you would like to join the project, we have some ideas for volunteering here:
|
In addition, here are some other big areas that need work:
|
||||||
http://www.torproject.org/getinvolved/volunteer.html.en#project-orbot
|
|
||||||
|
- Android Java UI work: Improved home screen to show better statistics about data transferred (up/down), number of circuits connected, quality of connection and so on. The "Tether Wifi" Android application is a good model to follow in how it shows a realtime count of bytes transferred as well as notifications when wifi client connect. In addition, better display/handling of Tor system/error messages would also be very helpful. Finally, the addition of a wizard or tutorial walkthrough for novice users to explain to them exactly what or what is not anonymized or protected would greatly improve the likelihood they will use Orbot correctly.
|
||||||
|
|
||||||
|
- Android Java OS/Core app work: Better system-wide indicator either via the notification bar, "Toast" pop-up dialogs or some other indicator that an application's traffic is indeed moving through Orbot/Tor. For instance, right now you need to first go to a torcheck web service to ensure your browser is routing via Tor. Orbot should be able to notify you that circuits are being opened, used, etc. The aforementioned data transfer tracker might provide this type of awareness as well.
|
||||||
|
|
||||||
|
- Android Java Library/Community Outreach work: We need to package a simple library for use with third-party application to easily enable them to support "Torification" on non-root devices (aka w/o transparent proxying). This library should include a wrapper for the Apache HTTPClient library, a utility class for detecting the state of Orbot connectivity, and other relevant/useful things an Android app might need to anonymize itself. This work would include the creation of the library, documentation, and sample code. Outreach or effort to implement the library within other open-source apps would follow.
|
||||||
|
|
||||||
|
- Android OS/C/Linux work: The port of Tor to Android is basically a straight cross-compile to Linux ARM. There has been no work done in looking the optimization of Tor within a mobile hardware environment, on the ARM processor or other Android hardware, or on mobile networks. It should be noted, that even without optimization, Tor is handling the mobile network environment very well, automatically detecting change in IP addresses, reconnecting circuits, etc across switching from 2G to 3G to Wifi, and so forth.
|
||||||
|
|
||||||
You can find us in IRC on FREENODE or OFTC in the #guardianproject and #tor-dev channels
|
|
|
@ -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,14 @@
|
||||||
|
SocksPort 9050
|
||||||
|
SocksListenAddress 127.0.0.1
|
||||||
|
SafeSocks 1
|
||||||
|
DNSPort 5400
|
||||||
|
Log notice stdout
|
||||||
|
Log debug syslog
|
||||||
|
DataDirectory /data/data/org.torproject.android/data
|
||||||
|
ControlPort 9051
|
||||||
|
CookieAuthentication 1
|
||||||
|
RelayBandwidthRate 20 KBytes
|
||||||
|
RelayBandwidthBurst 20 KBytes
|
||||||
|
UseBridges 0
|
||||||
|
AutomapHostsOnResolve 1
|
||||||
|
TransPort 9040
|
|
@ -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,67 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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 in in Version
|
||||||
|
Control Systems. -->
|
||||||
|
<property file="local.properties" />
|
||||||
|
|
||||||
|
<!-- The build.properties file can be created by you and is never touched
|
||||||
|
by the 'android' tool. This is the place to change some of the default property values
|
||||||
|
used by the Ant rules.
|
||||||
|
Here are some properties you may want to change/update:
|
||||||
|
|
||||||
|
application.package
|
||||||
|
the name of your application package as defined in the manifest. Used by the
|
||||||
|
'uninstall' rule.
|
||||||
|
source.dir
|
||||||
|
the name of the source directory. Default is 'src'.
|
||||||
|
out.dir
|
||||||
|
the name of the output directory. Default is 'bin'.
|
||||||
|
|
||||||
|
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 in in Version Control Systems.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<property file="build.properties" />
|
||||||
|
|
||||||
|
<!-- The default.properties file is created and updated by the 'android' tool, as well
|
||||||
|
as ADT.
|
||||||
|
This file is an integral part of the build system for your application and
|
||||||
|
should be checked in in Version Control Systems. -->
|
||||||
|
<property file="default.properties" />
|
||||||
|
|
||||||
|
<!-- Custom Android task to deal with the project target, and import the proper rules.
|
||||||
|
This requires ant 1.6.0 or above. -->
|
||||||
|
<path id="android.antlibs">
|
||||||
|
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
|
||||||
|
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
|
||||||
|
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
|
||||||
|
<pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
|
||||||
|
<pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
|
||||||
|
</path>
|
||||||
|
|
||||||
|
<taskdef name="setup"
|
||||||
|
classname="com.android.ant.SetupTask"
|
||||||
|
classpathref="android.antlibs" />
|
||||||
|
|
||||||
|
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
||||||
|
and import the build rules files.
|
||||||
|
|
||||||
|
The rules file is imported from
|
||||||
|
<SDK>/platforms/<target_platform>/templates/android_rules.xml
|
||||||
|
|
||||||
|
To customize some build steps for your project:
|
||||||
|
- copy the content of the main node <project> from android_rules.xml
|
||||||
|
- paste it in this build.xml below the <setup /> task.
|
||||||
|
- disable the import by changing the setup task below to <setup import="false" />
|
||||||
|
|
||||||
|
This will ensure that the properties are setup correctly but that your customized
|
||||||
|
build steps are used.
|
||||||
|
-->
|
||||||
|
<setup />
|
||||||
|
|
||||||
|
</project>
|
|
@ -1,13 +1,14 @@
|
||||||
# This file is automatically generated by Android Tools.
|
# This file is automatically generated by Android Tools.
|
||||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||||
#
|
#
|
||||||
# This file must be checked in Version Control Systems.
|
# This file must be checked in Version Control Systems.
|
||||||
#
|
#
|
||||||
# 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
|
# "build.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
|
|
||||||
|
|
||||||
|
# Indicates whether an apk should be generated for each density.
|
||||||
|
split.density=false
|
||||||
# Project target.
|
# Project target.
|
||||||
target=android-16
|
target=Google Inc.:Google APIs:3
|
||||||
aar.deployPath=/media/n8fr8/nate128/dev/repos/gpmaven/
|
apk-configurations=
|
|
@ -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,72 @@
|
||||||
|
#!/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=""
|
||||||
|
|
||||||
|
# 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=""
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
lang=`dirname $file | sed "s#$translated/##"`
|
||||||
|
|
||||||
|
# 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,',\\\',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
|
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 120 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 459 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
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 |
|
@ -0,0 +1,76 @@
|
||||||
|
<?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="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>
|
||||||
|
|
||||||
|
<ScrollView android:id="@+id/mainview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<TableLayout android:id="@+id/mainLayout"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="wrap_content">
|
||||||
|
<TableRow android:id="@+id/startRow">
|
||||||
|
<TableLayout
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="wrap_content">
|
||||||
|
<TableRow>
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imgStatus"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="175px"
|
||||||
|
android:src="@drawable/toroff"/>
|
||||||
|
</TableRow>
|
||||||
|
<TableRow>
|
||||||
|
<TextView android:id="@+id/lblStatus"
|
||||||
|
android:text="- Press to enable - "
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:width="240px"
|
||||||
|
android:height="50px"
|
||||||
|
android:textColor="#ffffff"
|
||||||
|
/>
|
||||||
|
</TableRow>
|
||||||
|
</TableLayout>
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
</TableLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,100 @@
|
||||||
|
<?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="Project Home(s): "
|
||||||
|
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="https://www.torproject.org/docs/android\nhttps://guardianproject.info/apps/orbot/"
|
||||||
|
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="The Tor License"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="15px"
|
||||||
|
android:textColor="#ffffff" />
|
||||||
|
<TextView android:text="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="3rd-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="Tor v0.2.2.14: https://www.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="LibEvent v1.4.13: http://www.monkey.org/~provos/libevent/"
|
||||||
|
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,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout 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 for Tor:"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:padding="3px" />
|
||||||
|
<ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/applistview"></ListView>
|
||||||
|
</LinearLayout>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ImageView android:id="@+id/itemicon" android:layout_width="48px" android:layout_height="48px"></ImageView>
|
||||||
|
|
||||||
|
<TextView android:layout_height="wrap_content" android:id="@+id/itemtext" android:text="uid:packages"
|
||||||
|
android:layout_width="220px" android:textSize="18sp"></TextView>
|
||||||
|
|
||||||
|
<CheckBox android:layout_width="48px" android:layout_height="48px" android:id="@+id/itemcheck"></CheckBox>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -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,52 @@
|
||||||
|
<?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="fill_parent"
|
||||||
|
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="12px"
|
||||||
|
android:background="#A0222222"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
<?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:id="@+id/mainview"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<TableLayout android:id="@+id/mainLayout"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="wrap_content">
|
||||||
|
<TableRow android:id="@+id/startRow">
|
||||||
|
<TableLayout
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="wrap_content">
|
||||||
|
<TableRow>
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imgStatus"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/toroff"/>
|
||||||
|
</TableRow>
|
||||||
|
<TableRow>
|
||||||
|
<TextView android:id="@+id/lblStatus"
|
||||||
|
android:text="@string/press_to_start"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:width="240px"
|
||||||
|
android:height="50px"
|
||||||
|
android:textColor="#ffffff"
|
||||||
|
/>
|
||||||
|
</TableRow>
|
||||||
|
</TableLayout>
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
</TableLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</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,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,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="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_configure_msg" android:textColor="#ffffff" android:id="@+id/WizardRootTextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
|
||||||
|
<CheckBox android:layout_marginTop="20px" android:text="@string/wizard_configure_all" android:id="@+id/WizardRootCheckBox01" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>
|
||||||
|
<TextView android:text=" or " android:textColor="#ffffff" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||||
|
|
||||||
|
<Button android:text="@string/wizard_configure_select_apps" android:id="@+id/WizardRootButton01" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</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,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="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_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_orweb" 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_proxy" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonProxyHelp" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
</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,51 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">starte und beende Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">Tor Proxydienst</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot startet...</string>
|
||||||
|
<string name="status_activated">Verbunden mit dem Tor-Netzwerk</string>
|
||||||
|
<string name="status_disabled">"Orbot ist deaktiviert</string>
|
||||||
|
<string name="status_shutting_down">Orbot wird beendet</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Starte Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">Authentifiziere Control Connection...</string>
|
||||||
|
<string name="tor_process_connecting_step3">erfolgreich abgeschlossen.</string>
|
||||||
|
<string name="tor_process_connecting_step4">warte.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">WARNUNG: Die Verbindung ist noch nicht anonymisiert! Bitte stellen Sie Ihre Programme so ein, dass sie entwederden HTTP proxy 127.0.0.1:8118, SOCKS4A oder SOCKS proxy 127.0.0.1:9050 nutzen.</string>
|
||||||
|
<string name="menu_home">Home</string>
|
||||||
|
<string name="menu_browse">Durchstöbern</string>
|
||||||
|
<string name="menu_settings">Einstellungen</string>
|
||||||
|
<string name="menu_log">Log</string>
|
||||||
|
<string name="menu_info">Hilfe</string>
|
||||||
|
<string name="menu_apps">Apps</string>
|
||||||
|
<string name="menu_start">Start</string>
|
||||||
|
<string name="menu_stop">Stop</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Hilfe</string>
|
||||||
|
<string name="button_close">Schließen</string>
|
||||||
|
<string name="button_about">Über</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot benötigt eine andere Einstellung, die von der Version des Andriod-Betriebssystems abhängt.Aktuelle Informationen unter https://www.torproject.org/docs/android.html.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">Auf nicht-gerooteten Android 1.x Geräten (G1, MyTouch3G, Hero) verwenden Sie bitte den "ProxySurf" Browser, erhältlich im Android Market, und setzen den HTTP-Proxy auf 127.0.0.1 port 8118. Dies funktioniert lediglich für HTTP, nicht jedoch HTTPS-Datenverkehr.</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">Um Tor für Instant Messaging zu verwenden, probieren Sie die Anwendung "Beem", erhältlich im Android Market, und setzen Sie den SOCKS5 Proxy auf 127.0.0.1 port 9050.</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">Android 2.x Geräte _MÜSSEN_ gerooted sein, damit Orbot transparent funktionieren kann, da hier kein Browser für nicht-gerootete Geräte vorhanden ist. Wahlweise erlaubt die "Beem" Anwendung jedoch, den SOCKS5 Proxy auf 127.0.0.1, Port 9050 einzustellen. Hierbei sollte zudem SSL aktiviert sein, um Benutzername und Passwort zu schützen.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">Auf gerooteten Geräten (egal ob Android 1.x oder 2x) kann Orbot sämtliche Apps und alle DNS-Abfragen anonymisieren. Dies gilt auch für den eingebauten Browser, Gmail, YouTube und Maps, sowie jegliche Anwendung von Drittanbietern.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">iniciar y detener Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxyservice</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot está empezando ...</string>
|
||||||
|
<string name="status_activated">Conectado a la red</string>
|
||||||
|
<string name="status_disabled">"Orbot está Desactivado</string>
|
||||||
|
<string name="status_shutting_down">Orbot está cerrando</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Partir Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">Autenticación de conexión de control...</string>
|
||||||
|
<string name="tor_process_connecting_step3">Completo.</string>
|
||||||
|
<string name="tor_process_connecting_step4">Espera.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">ADVERTENCIA: el tráfico no es anónima todavía! Por favor, configure sus aplicaciones para utilizar HTTP proxy 127.0.0.1:8118 o SOCKS4A o SOCKS5 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Principal</string>
|
||||||
|
<string name="menu_browse">Examinar</string>
|
||||||
|
<string name="menu_settings">Información</string>
|
||||||
|
<string name="menu_log">Entrar</string>
|
||||||
|
<string name="menu_info">Ayuda</string>
|
||||||
|
<string name="menu_apps">Aplicaciones</string>
|
||||||
|
<string name="menu_start">Iniciar</string>
|
||||||
|
<string name="menu_stop">Stop</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Ayuda</string>
|
||||||
|
<string name="button_close">Cerrar</string>
|
||||||
|
<string name="button_about">Acerca de</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot requiere una configuración diferente dependiendo de la versión del sistema operativo Android que se utiliza en.
|
||||||
|
Por favor, visite https://www.torproject.org/docs/android.html la información más reciente.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">Para los que no arraigada Android 1.x dispositivos (G1, MyTouch3G, Hero): Por favor use el "ProxySurf" navegador disponibles en el Android Market,
|
||||||
|
y establecer el proxy HTTP a 127.0.0.1 y puerto 8118, sólo para el tráfico HTTP (HTTP / S no funcionará).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">De mensajería instantánea, pruebe "Beem" en el mercado, y establecer el proxy SOCKS5 a 127.0.0.1 y puerto 9050.</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">Para Android 2.x dispositivos, DEBE raíz de su dispositivo con el fin de trabajar de manera transparente a Orbot, ya que no hay navegador que funcionara para aquellos dispositivos que no sea root. De lo contrario, el "Beem" aplicación permitirá
|
||||||
|
para configurar el proxy SOCKS5 a 127.0.0.1 y el puerto 9050. También debe habilitar SSL para proteger su nombre de usuario y contraseña.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">Si la raíz del dispositivo, ya sea 1.xo 2.x base, puede proxy transparente Orbot cualquier applicatons selecciona y todas las peticiones DNS.
|
||||||
|
Esto incluye el built-in del navegador, Gmail, YouTube y mapas, así como cualquier aplicación de terceros.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">start og stopp Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxyservice</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot starter...</string>
|
||||||
|
<string name="status_activated">Tilkoblet Tor-nettverket</string>
|
||||||
|
<string name="status_disabled">"Orbot er deaktivert</string>
|
||||||
|
<string name="status_shutting_down">Orbot skrur seg av</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Starter Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">autentiserer kontrolltilkobling...</string>
|
||||||
|
<string name="tor_process_connecting_step3">ferdig.</string>
|
||||||
|
<string name="tor_process_connecting_step4">venter.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">ADVARSEL: Trafikken din er ikke anonym helt enda! Vær vennlig og konfigurer applikasjonene dine til å bruke HTTP proxy 127.0.0.1:8118 eller SOCKS4A eller SOCKS5 proxy 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Hjem</string>
|
||||||
|
<string name="menu_browse">Gå til</string>
|
||||||
|
<string name="menu_settings">Innstillinger</string>
|
||||||
|
<string name="menu_log">Logg</string>
|
||||||
|
<string name="menu_info">Hjelp</string>
|
||||||
|
<string name="menu_apps">Applikasjoner</string>
|
||||||
|
<string name="menu_start">Start</string>
|
||||||
|
<string name="menu_stop">Stopp</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Hjelp</string>
|
||||||
|
<string name="button_close">Avslutt</string>
|
||||||
|
<string name="button_about">Om</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot krever forskjellig konfigurasjon avhengig av hvilken versjon av Android du bruker.
|
||||||
|
Se https://www.torproject.org/docs/android.html for oppdatert informasjon.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">For ikke-rootede Android 1.x enheter (G1, MyTouch3G, Hero): Bruk nettleseren "ProxySurf" fra Android Market, og sett
|
||||||
|
HTTP Proxy til 127.0.0.1 og port 8118 for kun HTTP trafikk (HTTP/S vil ikke fungere).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">For IM, prøv "Beem" fra Android Market. Sett SOCKS5 proxy til 127.0.0.1 med port 9050.</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">For Android 2.x enheter MÅ du roote telefonen for at Orbot skal fungere skikkelig. Dette fordi det ikke finnes en nettleser til Android 2.x som fungerer med ikke-rootede enheter. Du kan så bruke "Beem" fra Android Market. Sett SOCKS5 proxy til 127.0.0.1 med port 9050. Du burde også bruke SSL for å beskytte ditt brukernavn og passord.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">Hvis du rooter telefonen, uansett om den er en 1.x eller 2.x enhet, så vil Orbot kunne fungere med alle aplikasjoner du velger, i tillegg til alle DNS-forespørsler. Dette inkluderer den innebyggede nettleseren, Gmail, Youtube og Kart, og mange tredjeparts-applikasjoner.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">start en stop Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxydienst</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot is aan het starten...</string>
|
||||||
|
<string name="status_activated">Aangesloten op het Tor netwerk</string>
|
||||||
|
<string name="status_disabled">Orbot is uitgeschakeld</string>
|
||||||
|
<string name="status_shutting_down">Orbot is aan het afsluiten</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Bezig met opstarten van Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">Bezig met authenticeren van besturings connectie.</string>
|
||||||
|
<string name="tor_process_connecting_step3">klaar.</string>
|
||||||
|
<string name="tor_process_connecting_step4">aan het wachten.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">WAARSCHUWING: Uw verkeer is nog niet anononiem!Stel uw programma\'s alstublieft in dat ze gebruik maken van HTTP proxy 127.0.0.1:8118 of SOCKS4A of SOCKS5 proxy 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Thuis</string>
|
||||||
|
<string name="menu_browse">Bladeren</string>
|
||||||
|
<string name="menu_settings">Instellingen</string>
|
||||||
|
<string name="menu_log">Logboek</string>
|
||||||
|
<string name="menu_info">Hulp</string>
|
||||||
|
<string name="menu_apps">Applicaties</string>
|
||||||
|
<string name="menu_start">Start</string>
|
||||||
|
<string name="menu_stop">Stop</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Hulp</string>
|
||||||
|
<string name="button_close">Afsluiten</string>
|
||||||
|
<string name="button_about">Over</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot heeft een verschillende configuratie nodig afhankelijk van de versie van het Android Operating Systeem waar het op gebruikt wordt.
|
||||||
|
Bezoek alstublieft https://www.torproject.org/docs/android.html voor de nieuwste informatie.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">Voor niet-geroote Android 1.x apparaten (G1, MyTouch3G, Hero): Gebruik alstublieft de "ProxySurf" browser die beschikbaar is op de Android Markt, en zet
|
||||||
|
de HTTP Proxy op 127.0.0.1 en poort 8118, dit werkt alleen voor HTTP verkeer (HTTPS werkt niet).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">Voor Instant Messaging, probeer "Beem" in de Android Markt, en zet de SOCKS5 proxy op 127.0.0.1 / poort 9050</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">Voor Android 2.x apparaten MOET je het apparaten ROOTEN om Orbot transparant te kunnen laten werken, daar er geen brower is die voor ongeroote apparaten werkt. Anders, de "Beem" applicatie laat toe
|
||||||
|
dat je de SOCKS5 proxy op 127.0.0.1 poort 9050 zet. Zet ook SSL aan om je gebruikersnaam en wachtwoord te beveiligen.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">Als je je apparaat root, of het een 1.x of een 2.x gebaseerde versie is, Orbot kan transparant elke applicatie proxien die je selecteert
|
||||||
|
en ook alle DNS aanvragen. Dit omvat ook de ingebouwde browser, Gmail, Youtube en Maps, naast elke andere applicatie van derde partijen.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">włącz i wyłącz Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxyservice</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot startuje...</string>
|
||||||
|
<string name="status_activated">Podłączony do sieci Tor</string>
|
||||||
|
<string name="status_disabled">Orbot wyłączony</string>
|
||||||
|
<string name="status_shutting_down">Orbot wyłącza się</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Tor startuje...</string>
|
||||||
|
<string name="tor_process_connecting_step2">autentykacja kontroli połączenia...</string>
|
||||||
|
<string name="tor_process_connecting_step3">zakończono.</string>
|
||||||
|
<string name="tor_process_connecting_step4">oczekiwanie.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">UWAGA: Twoja komunikacja nie jest jeszcze anonimowa! Proszę skonfiguruj aplikacje aby używały serwera proxy HTTP 127.0.0.1:8118 lub SOCKS4A lub SOCKS5 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Start</string>
|
||||||
|
<string name="menu_browse">Przeglądaj</string>
|
||||||
|
<string name="menu_settings">Ustawienia</string>
|
||||||
|
<string name="menu_log">Logi</string>
|
||||||
|
<string name="menu_info">Pomoc</string>
|
||||||
|
<string name="menu_apps">Aplikacje</string>
|
||||||
|
<string name="menu_start">Start</string>
|
||||||
|
<string name="menu_stop">Stop</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Pomoc</string>
|
||||||
|
<string name="button_close">Zamknij</string>
|
||||||
|
<string name="button_about">O programie</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot wymaga różnych konfiguracji w zależności od wersji systemu operacyjnego Android.
|
||||||
|
Proszę odwiedź stronę https://www.torproject.org/docs/android.html aby uzyskać najnowsze informacje na ten temat.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">Dla urządzeń non-rooted Android 1.x (G1, MyTouch3G, Hero): Użyj przeglądarki "ProxySurf" dostępnej w Android Market i ustaw
|
||||||
|
HTTP Proxy 127.0.0.1 port 8118, dla połączeń HTTP (HTTP/S nie będzie działać).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">Jako komunikatora użyj "Beem" dostępny w Android Market i ustaw proxy SOCKS5 127.0.0.1 port 9050</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">For Android 2.x devices, you MUST ROOT your device in order for Orbot to work transparently, as there is no browser that will work for non-root devices. Otherwise, the "Beem" app will allow
|
||||||
|
you to set the SOCKS5 proxy to 127.0.0.1 and port 9050. You should also enable SSL to protect your username and password.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">If you root your device, whether it is 1.x or 2.x based, Orbot can transparently proxy any applicatons you select
|
||||||
|
and all DNS requests. This includes the built-in Browser, Gmail, YouTube and Maps, as well as any third-party app.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">iniciar e parar Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxyservice</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">O Orbot está a iniciar...</string>
|
||||||
|
<string name="status_activated">Ligação estabelecida à rede Tor</string>
|
||||||
|
<string name="status_disabled">"Orbot está Desactivado</string>
|
||||||
|
<string name="status_shutting_down">Orbot a encerrar</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">A iniciar Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">a autenticar a ligação de controlo...</string>
|
||||||
|
<string name="tor_process_connecting_step3">completo.</string>
|
||||||
|
<string name="tor_process_connecting_step4">a aguardar.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">ATENÇÃO: A sua ligação ainda não é anónima! Por favor configure as suas aplicações para utilizarem o proxy HTTP 127.0.0.1:8118 ou o proxy SOCKS4A ou SOCKS5 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Início</string>
|
||||||
|
<string name="menu_browse">Explorar</string>
|
||||||
|
<string name="menu_settings">Definições</string>
|
||||||
|
<string name="menu_log">Relatório</string>
|
||||||
|
<string name="menu_info">Ajuda</string>
|
||||||
|
<string name="menu_apps">Aplicações</string>
|
||||||
|
<string name="menu_start">Iniciar</string>
|
||||||
|
<string name="menu_stop">Parar</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Ajuda</string>
|
||||||
|
<string name="button_close">Encerrar</string>
|
||||||
|
<string name="button_about">Sobre</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">O Orbot requer diferentes configurações, dependo do sistema operativo Android que estiver a ser utilizado.
|
||||||
|
Por favor visite https://www.torproject.org/docs/android.html para as mais recentes informações.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">Para dispositivos non-rooted Android 1.x (G1, MyTouch3G, Hero): Por favor utilize o navegador "ProxySurf" disponível no Android Market, e defina
|
||||||
|
o Proxy HTTP para 127.0.0.1 e o porto 8118, para tráfego HTTP (HTTP/S não é suportado).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">Para mensagens instantâneas, experimente o "Beem", também disponível no Android Market, e defina o Proxy SOCKS5 para 127.0.0.1 / Porto 9050.</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">Para dispositivos Android 2.x, será necessário ACESSO ROOT para que o Orbot funciona de uma forma transparente, visto que não há nenhum navegador que funciona em equipamentos sem acesso root. No entanto, pode experimentar o "Beem", disponível no Android Market,
|
||||||
|
que o permite definir o Proxy para 127.0.0.1 e porto 9050. Deve também activar SSL para proteger o seu nome de utilizador e password.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">Se tiver acesso root no seu dispositivo, quer seja 1.x ou 2.x, o Orbot pode, de uma forma transparente, funcionar com todas as aplicações
|
||||||
|
e pedidos de DNS. Isto inclui o navegador. Gmail, YouTube e Maps, como também aplicações de terceiros.</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">start and stop Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxyservice</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot startar...</string>
|
||||||
|
<string name="status_activated">Uppkopplad till Tor nätverket</string>
|
||||||
|
<string name="status_disabled">"Orbot är inaktiverad</string>
|
||||||
|
<string name="status_shutting_down">Orbot avslutas</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Startar Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">verifierar kontroll uppkopplingen...</string>
|
||||||
|
<string name="tor_process_connecting_step3">klar.</string>
|
||||||
|
<string name="tor_process_connecting_step4">väntar.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">VARNING: Din trafik är inte anonym än! Vänligen konfigurera dina apps att använda HTTP proxy 127.0.0.1:8118 eller SOCKS4A/5 proxy 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Hem</string>
|
||||||
|
<string name="menu_browse">Browse</string>
|
||||||
|
<string name="menu_settings">Inställningar</string>
|
||||||
|
<string name="menu_log">Logg</string>
|
||||||
|
<string name="menu_info">Hjälp</string>
|
||||||
|
<string name="menu_apps">Apps</string>
|
||||||
|
<string name="menu_start">Start</string>
|
||||||
|
<string name="menu_stop">Stopp</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Hjälp</string>
|
||||||
|
<string name="button_close">Stäng</string>
|
||||||
|
<string name="button_about">Om</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot behöver olika inställningar beroende på vilken Android utgåva det körs på.
|
||||||
|
Besök https://www.torproject.org/docs/android.html för den senaste informationen.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">For non-rooted Android 1.x devices (G1, MyTouch3G, Hero): Please use the "ProxySurf" browser available in the Android Market, and set
|
||||||
|
the HTTP Proxy to 127.0.0.1 and port 8118, for HTTP traffic only (HTTP/S will not work).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">För chatt/IM, pröva "Beem" från Android Market, och ställ in SOCKS5 proxy till 127.0.0.1 / port 9050.</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">For Android 2.x devices, you MUST ROOT your device in order for Orbot to work transparently, as there is no browser that will work for non-root devices. Otherwise, the "Beem" app will allow
|
||||||
|
you to set the SOCKS5 proxy to 127.0.0.1 and port 9050. You should also enable SSL to protect your username and password.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">If you root your device, whether it is 1.x or 2.x based, Orbot can transparently proxy any applicatons you select
|
||||||
|
and all DNS requests. This includes the built-in Browser, Gmail, YouTube and Maps, as well as any third-party app.</string>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">0.0.8</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">启动和停止Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">Tor代理服务</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot正在启动</string>
|
||||||
|
<string name="status_activated">已经连接上了Tor网络</string>
|
||||||
|
<string name="status_disabled">Orbot已停用</string>
|
||||||
|
<string name="status_shutting_down">Orbot正在关闭</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">正在启动Tor....</string>
|
||||||
|
<string name="tor_process_connecting_step2">验证控制连接....</string>
|
||||||
|
<string name="tor_process_connecting_step3">完毕.</string>
|
||||||
|
<string name="tor_process_connecting_step4">请等待...</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">警告: 您的通讯还不是匿名的! 请设置您的应用程序使用代理服务器127.0.0.1:8118或者SOCKS4A或者SOCKS5代理服务器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="button_help">帮助</string>
|
||||||
|
<string name="button_close">关闭</string>
|
||||||
|
<string name="button_about">关于</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot 的设置因 Android 系统版本的不同而异。
|
||||||
|
详情参见:https://www.torproject.org/docs/android.html </string>
|
||||||
|
|
||||||
|
<string name="help_text_2">对于缺乏ROOT权限的Android 1.x 设备(G1, MyTouch3G, Hero): 推荐使用 Android Market 中的 “ProxySurf” 浏览器,
|
||||||
|
并设置HTTP Proxy地址127.0.0.1端口8118进行HTTP浏览(对HTTP/S无效)。</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">即时聊天工具,可以尝试 Android Market 内的 “Beem”,并设置SOCKS5代理为127.0.0.1,端口9050。</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">对于 Android 2.x 设备,您必须获得设备的 ROOT 权限才能使 Orbot 以透明代理的方式工作,因为非ROOT设备上浏览器都无法成功代理(除非浏览器本身支持代理设置)。
|
||||||
|
如果无法获得 ROOT 权限,至少\"Beem\" 程序可以设置SOCKS5(127.0.0.1端口9050),您还可以开启SSL支持来保护用户名与密码。</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">无论是基于1.x还是2.x的设备,如果您曾破解过ROOT权限,Orbot 都能通过透明代理的方式代理您选择的任何程序及所有DNS请求。
|
||||||
|
包括内置的浏览器,Gmail,YouTube,地图及各种三方程序。</string>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,118 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Orbot</string>
|
||||||
|
<string name="app_version">1.0.2</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">start and stop Tor</string>
|
||||||
|
<string name="tor_proxy_service_process">torproxyservice</string>
|
||||||
|
|
||||||
|
<string name="status_starting_up">Orbot is starting...</string>
|
||||||
|
<string name="status_activated">Connected to the Tor network</string>
|
||||||
|
<string name="status_disabled">"Orbot is Deactivated</string>
|
||||||
|
<string name="status_shutting_down">Orbot is shutting down</string>
|
||||||
|
|
||||||
|
<string name="tor_process_connecting">Starting Tor...</string>
|
||||||
|
<string name="tor_process_connecting_step2">Setting up control...</string>
|
||||||
|
<string name="tor_process_connecting_step3">complete.</string>
|
||||||
|
<string name="tor_process_connecting_step4">waiting.</string>
|
||||||
|
|
||||||
|
<string name="not_anonymous_yet">WARNING: Your traffic is not anonymous yet! Please configure your applications to use HTTP proxy 127.0.0.1:8118 or SOCKS4A or SOCKS5 proxy 127.0.0.1:9050</string>
|
||||||
|
<string name="menu_home">Home</string>
|
||||||
|
<string name="menu_browse">Browse</string>
|
||||||
|
<string name="menu_settings">Settings</string>
|
||||||
|
<string name="menu_log">Log</string>
|
||||||
|
<string name="menu_info">Help</string>
|
||||||
|
<string name="menu_apps">Apps</string>
|
||||||
|
<string name="menu_start">Start</string>
|
||||||
|
<string name="menu_stop">Stop</string>
|
||||||
|
|
||||||
|
|
||||||
|
<string name="button_help">Help</string>
|
||||||
|
<string name="button_close">Close</string>
|
||||||
|
<string name="button_about">About</string>
|
||||||
|
|
||||||
|
<string name="help_text_1">Orbot requires different configuration depending on the Android operating system version it is used on.
|
||||||
|
Please visit https://www.torproject.org/docs/android.html for the latest information.</string>
|
||||||
|
|
||||||
|
<string name="help_text_2">For non-rooted Android 1.x devices: Please use the "ProxySurf" browser available in the Android Market, and set
|
||||||
|
the HTTP Proxy to 127.0.0.1 and port 8118, for HTTP traffic only (HTTP/S will not work).</string>
|
||||||
|
|
||||||
|
<string name="help_text_3">For Instant Messaging, try "Beem" in the market, and set the SOCKS5 proxy to 127.0.0.1 / port 9050.</string>
|
||||||
|
|
||||||
|
<string name="help_text_4">For Android 2.x devices, you MUST ROOT your device in order for Orbot to work transparently, as there is no browser that will work for non-root devices. Otherwise, the "Beem" app will allow
|
||||||
|
you to set the SOCKS5 proxy to 127.0.0.1 and port 9050. You should also enable SSL to protect your username and password.</string>
|
||||||
|
|
||||||
|
<string name="help_text_5">If you root your device, whether it is 1.x or 2.x based, Orbot can transparently proxy any applicatons you select
|
||||||
|
and all DNS requests. This includes the built-in Browser, Gmail, YouTube and Maps, as well as any third-party app.</string>
|
||||||
|
|
||||||
|
<string name="menu_verify">Check</string>
|
||||||
|
<string name="menu_exit">Exit</string>
|
||||||
|
<string name="powered_by">powered by the Tor Project</string>
|
||||||
|
<string name="press_to_start">- press to start -</string>
|
||||||
|
|
||||||
|
<string name="pref_trans_proxy_group">Transparent Proxying (Requires Root)</string>
|
||||||
|
<string name="pref_trans_proxy_title">Transparent Proxying</string>
|
||||||
|
<string name="pref_trans_proxy_summary">Automatic Torifying of Apps</string>
|
||||||
|
|
||||||
|
<string name="pref_transparent_all_title">Tor Everything</string>
|
||||||
|
<string name="pref_transparent_all_summary">Proxy traffic for all apps through Tor</string>
|
||||||
|
|
||||||
|
<string name="status_install_success">Tor binaries successfully installed!</string>
|
||||||
|
<string name="status_install_fail">The Tor binary files were unable to be installed. Please check the log and notify tor-assistants@torproject.org</string>
|
||||||
|
|
||||||
|
<string name="title_error">Application Error</string>
|
||||||
|
|
||||||
|
<string name="wizard_title">Welcome to Orbot</string>
|
||||||
|
|
||||||
|
<string name="wizard_btn_tell_me_more">About Orbot</string>
|
||||||
|
<string name="btn_next">Next</string>
|
||||||
|
<string name="btn_back">Back</string>
|
||||||
|
<string name="btn_finish">Finish</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Welcome Wizard strings (DJH) -->
|
||||||
|
<string name="wizard_welcome_msg">Orbot brings Tor to Android. Tor is free software and an open network that helps you defend against a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security known as traffic analysis.\n\n*WARNING:* Simply installing Orbot will _not_ magically anonymize your mobile traffic! This wizard will help you get started.</string>
|
||||||
|
<string name="wizard_details">Some Orbot Details</string>
|
||||||
|
<string name="wizard_details_msg">Orbot is an open-source application that contains Tor, LibEvent and Privoxy. It provides a local HTTP proxy (8118) and a SOCKS proxy (9050) into the Tor network. Orbot also has the ability, on rooted device, to send all internet traffic through Tor.</string>
|
||||||
|
<string name="wizard_permissions_root">Permission Granted</string>
|
||||||
|
<string name="wizard_permissions_stock">Orbot Permissions</string>
|
||||||
|
<string name="wizard_premissions_msg_root">Excellent! We\'ve detected that you have root permissions enabled for Orbot. We will use this power wisely.</string>
|
||||||
|
<string name="wizard_permissions_msg_stock"> While it is not required, Orbot can become a more powerful tool if your device has root access. Use the button below to grant Orbot superpowers! </string>
|
||||||
|
|
||||||
|
<string name="wizard_permissions_no_root">If you don\'t have root access or have no idea what we\'re talking about, just be sure to use apps made to work with Orbot.</string>
|
||||||
|
<string name="wizard_permissions_consent">I understand and would like to continue without root</string>
|
||||||
|
|
||||||
|
<string name="wizard_permission_enable_root">Grant Root for Orbot</string>
|
||||||
|
<string name="wizard_configure">Configure Torification</string>
|
||||||
|
<string name="wizard_configure_msg">Orbot gives you the option to route all application traffic through Tor OR to choose your applications individually.</string>
|
||||||
|
<string name="wizard_configure_all">Proxy All Apps Through Tor</string>
|
||||||
|
<string name="wizard_configure_select_apps">Select Individual Apps for Tor</string>
|
||||||
|
|
||||||
|
|
||||||
|
<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_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>
|
||||||
|
|
||||||
|
<string name="wizard_proxy_help_info">Proxy Settings</string>
|
||||||
|
<string name="wizard_proxy_help_msg">If the Android app you are using can support the use of an HTTP or SOCKS proxy, then you can configure it to connect to Orbot and use Tor.\n\n
|
||||||
|
The host settings is 127.0.0.1 or "localhost". For HTTP, the port setting is 8118. For SOCKS, the proxy is 9050. You should use SOCKS4A or SOCKS5 if possible.
|
||||||
|
\n\n
|
||||||
|
You can learn more about proxying on Android via the FAQ at: http://tinyurl.com/proxyandroid
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<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://github.com/downloads/guardianproject/OtRChat/OtRChat-0.0.1-alpha-build6a.apk</string>
|
||||||
|
<string name="orweb_apk_url">http://github.com/downloads/guardianproject/Orweb/Orweb-0.0.1c.apk.apk</string>
|
||||||
|
|
||||||
|
<!-- END Welcome Wizard strings (DJH) -->
|
||||||
|
|
||||||
|
<string name="connect_first_time"> You\'ve successfully connected to the Tor network - but this does NOT mean your device is secure. You can use the \'Check\' option from the menu to test your browser. \n\nVisit us at https://guardianproject.info/apps/orbot or send an email to help@guardianproject.info to learn more.</string>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,76 @@
|
||||||
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="Transparent Proxying">
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="pref_transparent"
|
||||||
|
android:title="Transparent Proxying"
|
||||||
|
android:summary="Root Devices Only: Per App Torification"
|
||||||
|
android:enabled="true"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="Bridges">
|
||||||
|
|
||||||
|
<CheckBoxPreference android:defaultValue="false"
|
||||||
|
android:title="Use Bridges" android:key="pref_bridges_enabled"
|
||||||
|
android:summary="Enable alternate entrance nodes into the Tor Network"></CheckBoxPreference>
|
||||||
|
|
||||||
|
<!-- 5/8/2010 NF: Arma says this doesn't actually work, so commenting out for now
|
||||||
|
<CheckBoxPreference android:defaultValue="false"
|
||||||
|
android:title="Update from Authority" android:key="pref_bridges_update"
|
||||||
|
android:summary="Modify bridge list automatically"></CheckBoxPreference>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<EditTextPreference android:key="pref_bridges_list"
|
||||||
|
android:title="Bridges"
|
||||||
|
android:summary="IP address and port of bridges"
|
||||||
|
android:dialogTitle="Enter Bridge Addresses"
|
||||||
|
/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="Relays">
|
||||||
|
<CheckBoxPreference android:key="pref_or"
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:title="Relaying"
|
||||||
|
android:summary="Enable your device to be a non-exit relay"
|
||||||
|
android:enabled="true"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<EditTextPreference android:key="pref_or_port"
|
||||||
|
android:defaultValue="9001"
|
||||||
|
android:title="Relay Port"
|
||||||
|
android:summary="Listening port for your Tor relay"
|
||||||
|
android:dialogTitle="Enter OR port"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<EditTextPreference android:key="pref_or_nickname"
|
||||||
|
android:defaultValue="Orbot"
|
||||||
|
android:title="Relay nickname"
|
||||||
|
android:summary="The nickname for your Tor relay"
|
||||||
|
android:dialogTitle="Enter a custom relay nickname"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="ReachableAddresses">
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="pref_reachable_addresses"
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:title="ReachableAddresses"
|
||||||
|
android:summary="Run as a client behind a firewall with restrictive policies"
|
||||||
|
android:enabled="true"></CheckBoxPreference>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="pref_reachable_addresses_ports"
|
||||||
|
android:defaultValue="*:80,*:443"
|
||||||
|
android:title="Reachable ports"
|
||||||
|
android:summary="Ports reachable behind a restrictive firewall"
|
||||||
|
android:dialogTitle="Enter ports"
|
||||||
|
/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
|
@ -0,0 +1,103 @@
|
||||||
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="@string/pref_trans_proxy_group">
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="pref_transparent"
|
||||||
|
android:title="@string/pref_trans_proxy_title"
|
||||||
|
android:summary="@string/pref_trans_proxy_summary"
|
||||||
|
android:enabled="true"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="pref_transparent_all"
|
||||||
|
android:summary="@string/pref_transparent_all_summary"
|
||||||
|
android:enabled="true"
|
||||||
|
android:title="@string/pref_transparent_all_title"/>
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
android:defaultValue=""
|
||||||
|
android:key="pref_transparent_app_list"
|
||||||
|
android:title="Select Apps"
|
||||||
|
android:summary="Choose Apps to Route Through Tor"
|
||||||
|
android:enabled="true"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<PreferenceCategory android:title="Web Proxy">
|
||||||
|
<Preference
|
||||||
|
android:defaultValue=""
|
||||||
|
android:key="pref_web_proxy"
|
||||||
|
android:title="Open Proxy Panel"
|
||||||
|
android:summary="Set HTTP Settings (Android 2.x Experimental)"
|
||||||
|
android:enabled="true"/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="Bridges">
|
||||||
|
|
||||||
|
<CheckBoxPreference android:defaultValue="false"
|
||||||
|
android:title="Use Bridges" android:key="pref_bridges_enabled"
|
||||||
|
android:summary="Enable alternate entrance nodes into the Tor Network"></CheckBoxPreference>
|
||||||
|
|
||||||
|
<!-- 5/8/2010 NF: Arma says this doesn't actually work, so commenting out for now
|
||||||
|
<CheckBoxPreference android:defaultValue="false"
|
||||||
|
android:title="Update from Authority" android:key="pref_bridges_update"
|
||||||
|
android:summary="Modify bridge list automatically"></CheckBoxPreference>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<EditTextPreference android:key="pref_bridges_list"
|
||||||
|
android:title="Bridges"
|
||||||
|
android:summary="IP address and port of bridges"
|
||||||
|
android:dialogTitle="Enter Bridge Addresses"
|
||||||
|
/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="Relays">
|
||||||
|
<CheckBoxPreference android:key="pref_or"
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:title="Relaying"
|
||||||
|
android:summary="Enable your device to be a non-exit relay"
|
||||||
|
android:enabled="true"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<EditTextPreference android:key="pref_or_port"
|
||||||
|
android:defaultValue="9001"
|
||||||
|
android:title="Relay Port"
|
||||||
|
android:summary="Listening port for your Tor relay"
|
||||||
|
android:dialogTitle="Enter OR port"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<EditTextPreference android:key="pref_or_nickname"
|
||||||
|
android:defaultValue="Orbot"
|
||||||
|
android:title="Relay nickname"
|
||||||
|
android:summary="The nickname for your Tor relay"
|
||||||
|
android:dialogTitle="Enter a custom relay nickname"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory android:title="ReachableAddresses">
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="pref_reachable_addresses"
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:title="ReachableAddresses"
|
||||||
|
android:summary="Run as a client behind a firewall with restrictive policies"
|
||||||
|
android:enabled="true"></CheckBoxPreference>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="pref_reachable_addresses_ports"
|
||||||
|
android:defaultValue="*:80,*:443"
|
||||||
|
android:title="Reachable ports"
|
||||||
|
android:summary="Ports reachable behind a restrictive firewall"
|
||||||
|
android:dialogTitle="Enter ports"
|
||||||
|
/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
|
@ -1 +0,0 @@
|
||||||
/build
|
|
|
@ -1,62 +0,0 @@
|
||||||
apply plugin: 'com.android.application'
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdkVersion 27
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
applicationId "org.torproject.android.sample"
|
|
||||||
minSdkVersion 16
|
|
||||||
targetSdkVersion 27
|
|
||||||
versionCode 1
|
|
||||||
versionName "1.0"
|
|
||||||
|
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
release {
|
|
||||||
minifyEnabled false
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
splits {
|
|
||||||
|
|
||||||
// Configures multiple APKs based on ABI. This helps keep the size down, since PT binaries can be large.
|
|
||||||
abi {
|
|
||||||
|
|
||||||
// Enables building multiple APKs per ABI.
|
|
||||||
enable true
|
|
||||||
|
|
||||||
// By default all ABIs are included, so use reset() and include to specify that we only
|
|
||||||
// want APKs for x86 and x86_64.
|
|
||||||
|
|
||||||
// Resets the list of ABIs that Gradle should create APKs for to none.
|
|
||||||
reset()
|
|
||||||
|
|
||||||
// Specifies a list of ABIs that Gradle should create APKs for.
|
|
||||||
include "x86", "armeabi", "armeabi-v7a"
|
|
||||||
|
|
||||||
// Specifies that we do not want to also generate a universal APK that includes all ABIs.
|
|
||||||
universalApk true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
||||||
|
|
||||||
implementation 'com.android.support:appcompat-v7:27.1.1'
|
|
||||||
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
|
|
||||||
testImplementation 'junit:junit:4.12'
|
|
||||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
|
||||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
|
||||||
|
|
||||||
implementation project(':tor-android-binary')
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
# Add project specific ProGuard rules here.
|
|
||||||
# You can control the set of applied configuration files using the
|
|
||||||
# proguardFiles setting in build.gradle.
|
|
||||||
#
|
|
||||||
# For more details, see
|
|
||||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
||||||
|
|
||||||
# If your project uses WebView with JS, uncomment the following
|
|
||||||
# and specify the fully qualified class name to the JavaScript interface
|
|
||||||
# class:
|
|
||||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
||||||
# public *;
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Uncomment this to preserve the line number information for
|
|
||||||
# debugging stack traces.
|
|
||||||
#-keepattributes SourceFile,LineNumberTable
|
|
||||||
|
|
||||||
# If you keep the line number information, uncomment this to
|
|
||||||
# hide the original source file name.
|
|
||||||
#-renamesourcefileattribute SourceFile
|
|
|
@ -1,26 +0,0 @@
|
||||||
package org.torproject.android.sample;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.support.test.InstrumentationRegistry;
|
|
||||||
import android.support.test.runner.AndroidJUnit4;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instrumented test, which will execute on an Android device.
|
|
||||||
*
|
|
||||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
|
||||||
*/
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
|
||||||
public class ExampleInstrumentedTest {
|
|
||||||
@Test
|
|
||||||
public void useAppContext() {
|
|
||||||
// Context of the app under test.
|
|
||||||
Context appContext = InstrumentationRegistry.getTargetContext();
|
|
||||||
|
|
||||||
assertEquals("org.torproject.android.sample", appContext.getPackageName());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="org.torproject.android.sample">
|
|
||||||
|
|
||||||
<application
|
|
||||||
android:allowBackup="true"
|
|
||||||
android:icon="@mipmap/ic_launcher"
|
|
||||||
android:label="@string/app_name"
|
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
|
||||||
android:supportsRtl="true"
|
|
||||||
android:theme="@style/AppTheme">
|
|
||||||
<activity android:name=".sampleTorActivity">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN" />
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
</manifest>
|
|
|
@ -1,41 +0,0 @@
|
||||||
package org.torproject.android.sample;
|
|
||||||
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import org.torproject.android.binary.TorResourceInstaller;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
|
|
||||||
public class sampleTorActivity extends AppCompatActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_sample_tor);
|
|
||||||
|
|
||||||
try {
|
|
||||||
boolean success = new TorResourceInstaller(this,getFilesDir()).installResources();
|
|
||||||
|
|
||||||
String message = "Tor install success? " + success;
|
|
||||||
|
|
||||||
((TextView)findViewById(R.id.lblStatus)).setText(message);
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
((TextView)findViewById(R.id.lblStatus)).setText(e.getMessage());
|
|
||||||
|
|
||||||
} catch (TimeoutException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void doTorThings ()
|
|
||||||
{
|
|
||||||
//please see this project: https://github.com/thaliproject/Tor_Onion_Proxy_Library/
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:aapt="http://schemas.android.com/aapt"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportHeight="108"
|
|
||||||
android:viewportWidth="108">
|
|
||||||
<path
|
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
|
|
||||||
android:strokeColor="#00000000"
|
|
||||||
android:strokeWidth="1">
|
|
||||||
<aapt:attr name="android:fillColor">
|
|
||||||
<gradient
|
|
||||||
android:endX="78.5885"
|
|
||||||
android:endY="90.9159"
|
|
||||||
android:startX="48.7653"
|
|
||||||
android:startY="61.0927"
|
|
||||||
android:type="linear">
|
|
||||||
<item
|
|
||||||
android:color="#44000000"
|
|
||||||
android:offset="0.0" />
|
|
||||||
<item
|
|
||||||
android:color="#00000000"
|
|
||||||
android:offset="1.0" />
|
|
||||||
</gradient>
|
|
||||||
</aapt:attr>
|
|
||||||
</path>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FFFFFF"
|
|
||||||
android:fillType="nonZero"
|
|
||||||
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
|
|
||||||
android:strokeColor="#00000000"
|
|
||||||
android:strokeWidth="1" />
|
|
||||||
</vector>
|
|
|
@ -1,170 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportHeight="108"
|
|
||||||
android:viewportWidth="108">
|
|
||||||
<path
|
|
||||||
android:fillColor="#26A69A"
|
|
||||||
android:pathData="M0,0h108v108h-108z" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M9,0L9,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,0L19,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M29,0L29,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M39,0L39,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M49,0L49,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M59,0L59,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M69,0L69,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M79,0L79,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M89,0L89,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M99,0L99,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,9L108,9"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,19L108,19"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,29L108,29"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,39L108,39"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,49L108,49"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,59L108,59"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,69L108,69"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,79L108,79"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,89L108,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,99L108,99"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,29L89,29"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,39L89,39"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,49L89,49"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,59L89,59"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,69L89,69"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,79L89,79"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M29,19L29,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M39,19L39,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M49,19L49,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M59,19L59,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M69,19L69,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M79,19L79,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
</vector>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
tools:context=".sampleTorActivity">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/lblStatus"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="!"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
|
||||||
app:layout_constraintRight_toRightOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
</android.support.constraint.ConstraintLayout>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<background android:drawable="@drawable/ic_launcher_background" />
|
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
|
||||||
</adaptive-icon>
|
|