aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java
diff options
context:
space:
mode:
authorAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-11 01:34:35 +0530
committerAdithya Abraham Philip <adithyaphilip@gmail.com>2015-07-03 20:46:15 +0530
commit65ca77c3cbb5b8bece96e16ff4cd5040ad7884a3 (patch)
treef709caf08e096366d1ebc5ca5674bf7fc7b1728f /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java
parent31fac3080e13ef1bd0cf380b3d04c13293259e5f (diff)
downloadopen-keychain-65ca77c3cbb5b8bece96e16ff4cd5040ad7884a3.tar.gz
open-keychain-65ca77c3cbb5b8bece96e16ff4cd5040ad7884a3.tar.bz2
open-keychain-65ca77c3cbb5b8bece96e16ff4cd5040ad7884a3.zip
orbot dialog fragments added
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java175
1 files changed, 53 insertions, 122 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java
index 80a812344..127e9d43f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/orbot/TorServiceUtils.java
@@ -1,85 +1,72 @@
-/* Copyright (c) 2009, Nathan Freitas, Orbot / The Guardian Project - http://openideals.com/guardian */
-/* See LICENSE for licensing information */
+/* This is the license for Orlib, a free software project to
+ provide anonymity on the Internet from a Google Android smartphone.
-package info.guardianproject.onionkit.ui;
+ For more information about Orlib, see https://guardianproject.info/
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.net.URLEncoder;
-import java.util.StringTokenizer;
+ If you got this file as a part of a larger bundle, there may be other
+ license terms that you should be aware of.
+ ===============================================================================
+ Orlib is distributed under this license (aka the 3-clause BSD license)
-import android.util.Log;
+ Copyright (c) 2009-2010, Nathan Freitas, The Guardian Project
-public class TorServiceUtils {
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
- private final static String TAG = "TorUtils";
- // various console cmds
- public final static String SHELL_CMD_CHMOD = "chmod";
- public final static String SHELL_CMD_KILL = "kill -9";
- public final static String SHELL_CMD_RM = "rm";
- public final static String SHELL_CMD_PS = "ps";
- public final static String SHELL_CMD_PIDOF = "pidof";
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
- public final static String CHMOD_EXE_VALUE = "700";
+ * 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.
- public static boolean isRootPossible()
- {
+ * Neither the names of the copyright owners nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
- StringBuilder log = new StringBuilder();
+ 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
+ OWNER 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.
- try {
+ *****
+ Orlib contains a binary distribution of the JSocks library:
+ http://code.google.com/p/jsocks-mirror/
+ which is licensed under the GNU Lesser General Public License:
+ http://www.gnu.org/licenses/lgpl.html
- // Check if Superuser.apk exists
- File fileSU = new File("/system/app/Superuser.apk");
- if (fileSU.exists())
- return true;
+ *****
+*/
- fileSU = new File("/system/app/superuser.apk");
- if (fileSU.exists())
- return true;
+package org.sufficientlysecure.keychain.util.orbot;
- fileSU = new File("/system/bin/su");
- if (fileSU.exists())
- {
- String[] cmd = {
- "su"
- };
- int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true);
- if (exitCode != 0)
- return false;
- else
- return true;
- }
-
- // Check for 'su' binary
- String[] cmd = {
- "which su"
- };
- int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true);
-
- if (exitCode == 0) {
- Log.d(TAG, "root exists, but not sure about permissions");
- return true;
-
- }
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStreamReader;
+import java.net.URLEncoder;
+import java.util.StringTokenizer;
- } catch (IOException e) {
- // this means that there is no root to be had (normally) so we won't
- // log anything
- Log.e(TAG, "Error checking for root access", e);
+import android.util.Log;
- } catch (Exception e) {
- Log.e(TAG, "Error checking for root access", e);
- // this means that there is no root to be had (normally)
- }
+/**
+ * This class is taken from the NetCipher library: https://github.com/guardianproject/NetCipher/
+ */
- Log.e(TAG, "Could not acquire root permissions");
+public class TorServiceUtils {
- return false;
- }
+ private final static String TAG = "TorUtils";
+ // various console cmds
+ public final static String SHELL_CMD_PS = "ps";
+ public final static String SHELL_CMD_PIDOF = "pidof";
public static int findProcessId(String command)
{
@@ -175,60 +162,4 @@ public class TorServiceUtils {
return procId;
}
-
- public static int doShellCommand(String[] cmds, StringBuilder log, boolean runAsRoot,
- boolean waitFor) throws Exception
- {
-
- Process proc = null;
- int exitCode = -1;
-
- if (runAsRoot)
- proc = Runtime.getRuntime().exec("su");
- else
- proc = Runtime.getRuntime().exec("sh");
-
- OutputStreamWriter out = new OutputStreamWriter(proc.getOutputStream());
-
- for (int i = 0; i < cmds.length; i++)
- {
- // TorService.logMessage("executing shell cmd: " + cmds[i] +
- // "; runAsRoot=" + runAsRoot + ";waitFor=" + waitFor);
-
- out.write(cmds[i]);
- out.write("\n");
- }
-
- out.flush();
- out.write("exit\n");
- out.flush();
-
- if (waitFor)
- {
-
- final char buf[] = new char[10];
-
- // Consume the "stdout"
- InputStreamReader reader = new InputStreamReader(proc.getInputStream());
- int read = 0;
- while ((read = reader.read(buf)) != -1) {
- if (log != null)
- log.append(buf, 0, read);
- }
-
- // Consume the "stderr"
- reader = new InputStreamReader(proc.getErrorStream());
- read = 0;
- while ((read = reader.read(buf)) != -1) {
- if (log != null)
- log.append(buf, 0, read);
- }
-
- exitCode = proc.waitFor();
-
- }
-
- return exitCode;
-
- }
}