commit b4fa943fe924d669abd3d5a043eb702905ea1da4 Author: Nathan Freitas nathan@freitas.net Date: Wed Jun 11 07:51:22 2014 -0400
improve process id finding using android 'toolbox' --- src/org/torproject/android/service/TorService.java | 8 ++++++-- src/org/torproject/android/service/TorServiceConstants.java | 2 +- src/org/torproject/android/service/TorServiceUtils.java | 11 +++++++---- 3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index ce2d075..b43e5a2 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -966,9 +966,13 @@ public class TorService extends Service implements TorServiceConstants, TorConst } - catch (Exception e) + catch (FileNotFoundException e) + { + logNotice("unable to get control port: no file yet"); + } + catch (IOException e) { - logException("unable to get control port",e); + logNotice("unable to get control port IOException"); }
diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java index 74b2ef7..449e535 100644 --- a/src/org/torproject/android/service/TorServiceConstants.java +++ b/src/org/torproject/android/service/TorServiceConstants.java @@ -35,7 +35,7 @@ public interface TorServiceConstants { 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_PS = "toolbox ps"; //public final static String SHELL_CMD_PIDOF = "pidof"; public final static String SHELL_CMD_LINK = "ln -s"; public final static String SHELL_CMD_CP = "cp"; diff --git a/src/org/torproject/android/service/TorServiceUtils.java b/src/org/torproject/android/service/TorServiceUtils.java index 70c5746..16a9a17 100644 --- a/src/org/torproject/android/service/TorServiceUtils.java +++ b/src/org/torproject/android/service/TorServiceUtils.java @@ -78,16 +78,19 @@ public class TorServiceUtils implements TorServiceConstants { Process procPs = null; - //String processKey = new File(command).getName(); + String processKey = new File(command).getName(); - procPs = r.exec(SHELL_CMD_PS); // this is the android ps <name> command + procPs = r.exec(SHELL_CMD_PS + ' ' + processKey); // this is the android ps <name> command
BufferedReader reader = new BufferedReader(new InputStreamReader(procPs.getInputStream())); - String line = reader.readLine(); //read first line "headers" USER PID PPID etc + String line = null;
while ((line = reader.readLine())!=null) { - if (line.contains(command)) + if (line.contains("PID")) + continue; + + if (line.contains(processKey)) { String[] lineParts = line.split("\s+");