[tor-commits] [orbot/master] Updated TorServiceUtils.checkRootAccess()

n8fr8 at torproject.org n8fr8 at torproject.org
Fri Oct 28 15:28:27 UTC 2011


commit e63c745808ac9020983e872c5deac190d4f884de
Author: Sathyanarayanan Gunasekaran <gsathya.ceg at gmail.com>
Date:   Tue Jun 28 09:12:52 2011 +0530

    Updated TorServiceUtils.checkRootAccess()
    
    checkRootAccess() now checks if 'su' binary and
    Superuser.apk exist to check if the phone has
    root access
---
 .../android/service/TorServiceUtils.java           |   37 +++++++++++++++++++-
 1 files changed, 36 insertions(+), 1 deletions(-)

diff --git a/src/org/torproject/android/service/TorServiceUtils.java b/src/org/torproject/android/service/TorServiceUtils.java
index 2aa58e6..657d525 100644
--- a/src/org/torproject/android/service/TorServiceUtils.java
+++ b/src/org/torproject/android/service/TorServiceUtils.java
@@ -17,7 +17,9 @@ public class TorServiceUtils implements TorServiceConstants {
 	 * Check if we have root access
 	 * @return boolean true if we have root
 	 */
-	public static boolean checkRootAccess() {
+	/*
+	  public static boolean checkRootAccess() {
+	 
 	
 
 		StringBuilder log = new StringBuilder();
@@ -45,7 +47,40 @@ public class TorServiceUtils implements TorServiceConstants {
 		TorService.logMessage("Could not acquire root permissions");
 		return false;
 	}
+	*/
 	
+	public static boolean checkRootAccess(){
+		
+		StringBuilder log = new StringBuilder();
+		
+		try {
+			
+			// Check if Superuser.apk exists
+			File file = new File("/system/app/Superuser.apk");
+			
+			//Check for 'su' binary 
+			String[] cmd = {"which su"};
+			int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true);
+			
+			if (file.exists() && exitCode == 0) {
+				TorService.logMessage("Can acquire root permissions");
+		    	 return true;
+		     
+		    }
+		      
+		} catch (IOException e) {
+			//this means that there is no root to be had (normally) so we won't log anything
+			TorService.logException("Error checking for root access",e);
+			
+		}
+		catch (Exception e) {
+			TorService.logException("Error checking for root access",e);
+			//this means that there is no root to be had (normally)
+		}
+		
+		TorService.logMessage("Could not acquire root permissions");
+		return false;
+	}
 	
 	
 	public static int findProcessId(String command) 





More information about the tor-commits mailing list