2013-10-10 19 views
8

Android telefon köklü ise benim uygulamada programlı bulmak istiyorum. Aynı konuda birçok bağlantı buldum: Determine if running on a rooted device Effective way to programatically check if I'm rooted on Android?. Ancak, bu bağlantılarda da belirtildiği gibi, öğrenmenin kesin bir yolu yoktur. Bu mesajlar oldukça eski ve şimdi son sürümlerde bunu başarmak için daha iyi bir şey olup olmadığını merak ediyordum?Android telefon köklü olup olmadığını nasıl kontrol edilir?

Şimdiden teşekkürler!

+0

den (diğer herhangi bir harici kavanoz/lib olmadan Tamam çalışma) bu kodu sarılmış ettik. Bazı/toplanmış fikirlerinizi denemeli ve uygularken karşılaştığınız bir problem hakkında soru sormalısınız. Öte yandan, her bir senaryoyu deneyen birkaç metodun olması ('su' çağrısı yap, süper kullanıcı izni isteme, ayrıcalıklı bir klasöre yazmayı dene ...) ve eğer başarılı olursa o zaman köklü aygıt. – JScoobyCed

+1

Benim asıl amacım, kökeni kontrol etmek için android çerçevesinde eklenmiş herhangi bir şey olup olmadığını bulmaktı. Görünüşe göre öyle değil! Aynı yanıtları eski yayınlarda olduğu gibi alıyorum. Yine de teşekkürler! – Keya

cevap

5

Kök dosya kitaplığı kullanabilirsiniz. Kök erişimini kontrol etmek için bir yöntem sunarlar. https://code.google.com/p/roottools/

+0

Teşekkürler. Roottools kütüphanesinin farkındayım. Amacı çözüyor. Yine de üçüncü taraf bağımsız bir çözüm arıyordu. – Keya

+0

@Keya Android telefonlarda köklenme tespit etmek için herhangi bir üçüncü taraf bağımsız çözümler veya bazı API var mı – Learner

+0

Hey Learner, üzgünüm Herhangi bir çözüm bulamadım. Onu bir POC için arıyordum ama sonra tekniğimizi değiştirdik. Bu yüzden daha fazla takip etmedi. Bir şey bulursanız güncelleme yapın. Teşekkürler! – Keya

20

Ben Böyle soruyla bu forumda cevabını almazsınız 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

Bu, su'nın mevcut olabileceği uygun yerlerde uzun bir liste sağlar. Teşekkürler! – Keya

+0

Peki, temel olarak roottools'un kullandığı yöntem şu şekildedir: https://code.google.com/p/roottools/source/browse/trunk/Stable/RootTools-sdk3-generic/src/com/stericson/RootTools/ internal/RootToolsInternalMethods.java # 597 Dizi içeriği bile aynı sırada;) – MatF

+9

@MatF Gördüğünüz gibi ben zaten cevabımda söyledim. Bu kodu RootTools'tan kopyaladım ... – StErMi

İlgili konular