2013-10-10 13 views
8

Voglio trovare nella mia applicazione se il telefono Android è rootato. Ho trovato molti collegamenti come: Determine if running on a rooted device Effective way to programatically check if I'm rooted on Android? discutendo sullo stesso argomento. Tuttavia, come menzionato in questi collegamenti, non esiste un modo sicuro per scoprirlo. Questi post sono piuttosto vecchi e mi chiedevo se c'è qualcosa di meglio per ottenerlo ora nelle ultime versioni?Come verificare se il telefono Android è rootato?

Grazie in anticipo!

+0

Non si ottiene risposta su questo forum con questa domanda. Dovresti provare alcune delle tue idee/raccolte e chiedere informazioni su un problema che hai incontrato durante l'implementazione. D'altra parte, l'idea sarebbe di avere un paio di metodi che provano ogni scenario (chiama 'su', richiedi il permesso di superutente, prova a scrivere su una cartella privilegiata ...) e se c'è qualche successo allora sei su un dispositivo rooted. – JScoobyCed

+1

La mia intenzione principale di pubblicare la domanda era di scoprire se c'è qualcosa di recente aggiunto nel framework di Android per verificare la presenza di root. Apparentemente no! Sto ottenendo le stesse risposte dei vecchi post. Grazie comunque! – Keya

risposta

5

È possibile utilizzare la libreria roottools. Offrono un metodo per verificare l'accesso root. https://code.google.com/p/roottools/

+0

Grazie. Sono a conoscenza della libreria dei roottools. Risolve lo scopo. Stava cercando una soluzione indipendente di terze parti. – Keya

+0

@Keya hai avuto qualche soluzione indipendente da terzi o qualche API per rilevare il rooting nei telefoni Android – Learner

+0

Hey Learner, scusa se non ho trovato nessuna soluzione. Stavo cercando un POC ma poi abbiamo cambiato la nostra tecnica. Quindi non ha perseguito ulteriormente. Aggiorna se trovi qualcosa. Grazie! – Keya

20

ho avvolto questo codice (lavorando ok senza nessun altro vaso esterno/lib) dal RootTools

private static boolean isRooted() { 
    return findBinary("su"); 
} 



public static boolean findBinary(String binaryName) { 
    boolean found = false; 
    if (!found) { 
     String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/", 
       "/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"}; 
     for (String where : places) { 
      if (new File(where + binaryName).exists()) { 
       found = true; 
       break; 
      } 
     } 
    } 
    return found; 
} 
+0

Fornisce una lunga lista di possibili luoghi in cui può esistere su. Grazie! – Keya

+0

Bene, questo è fondamentalmente lo stesso metodo utilizzato da roottools: https://code.google.com/p/roottools/source/browse/trunk/Stable/RootTools-sdk3-generic/src/com/stericson/RootTools/ internal/RootToolsInternalMethods.java # 597 Anche il contenuto dell'array è nello stesso ordine;) – MatF

+9

@MatF come potete vedere ho già detto nella mia risposta. Ho avvolto quel codice da RootTools ... – StErMi

Problemi correlati