2013-10-10 6 views
8

यदि एंड्रॉइड फोन रूट है तो मैं अपने आवेदन में प्रोग्रामिक रूप से खोजना चाहता हूं। मुझे कई लिंक मिलते हैं जैसे: Determine if running on a rooted device Effective way to programatically check if I'm rooted on Android? एक ही विषय पर चर्चा करते हुए। हालांकि, जैसा कि उन लिंक में उल्लिखित है, वहां कोई भी और निश्चित तरीका नहीं है। ये पोस्ट बहुत पुरानी हैं और मैं सोच रहा था कि हाल ही में रिलीज में इसे हासिल करने के लिए कुछ बेहतर है या नहीं?कैसे जांचें कि एंड्रॉइड फोन रूट है या नहीं?

अग्रिम धन्यवाद!

+0

(किसी अन्य बाहरी जार/lib बिना ठीक काम कर) आप इस तरह के सवाल के साथ इस मंच पर इस सवाल का जवाब नहीं मिलेगा इस कोड को लपेटा है। आपको अपने कुछ एकत्रित विचारों को आजमाएं और इसे लागू करते समय मिलने वाली किसी समस्या के बारे में पूछें। दूसरी तरफ कुछ विचारों में कुछ विधियां होंगी जो प्रत्येक परिदृश्य को आज़माएं (कॉल 'su', अनुरोध सुपरसियर अनुमति, विशेषाधिकार प्राप्त फ़ोल्डर पर लिखने का प्रयास करें ...) और यदि कोई सफल है तो आप जड़ डिवाइस – JScoobyCed

+1

प्रश्न पोस्ट करके मेरा मुख्य इरादा यह पता लगाना था कि रूट की जांच के लिए एंड्रॉइड फ्रेमवर्क में हाल ही में कोई चीज जोड़ा गया है या नहीं। जाहिरा तौर पर नहीं! मुझे पुरानी पोस्ट के समान जवाब मिल रहे हैं। फिर भी धन्यवाद! – Keya

उत्तर

5

आप रूटtools लाइब्रेरी का उपयोग कर सकते हैं। वे रूट पहुंच की जांच करने के लिए एक विधि प्रदान करते हैं। https://code.google.com/p/roottools/

+0

धन्यवाद। मैं roottools पुस्तकालय के बारे में पता हूँ। यह उद्देश्य हल करता है। हालांकि कुछ तीसरे पक्ष के स्वतंत्र समाधान की तलाश में था। – Keya

+0

@ केया ने आपको एंड्रॉइड फोन – Learner

+0

में रूटिंग का पता लगाने के लिए कोई तीसरा पक्ष इंडिपेंट समाधान या कुछ एपीआई प्राप्त किया है, मुझे खेद है कि मुझे कोई समाधान नहीं मिला। मैं इसे पीओसी के लिए देख रहा था लेकिन फिर हमने अपनी तकनीक को स्थानांतरित कर दिया। इसलिए आगे नहीं बढ़े। यदि आपको कुछ मिलता है तो अपडेट करें। धन्यवाद! – Keya

20

मैं से 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

यह संभव स्थानों की एक अच्छी लंबी सूची प्रदान करता है जहां सु मौजूद हो सकता है। धन्यवाद! – Keya

+0

ठीक है, यह मूल रूप से रूट पद्धतियों का उपयोग कर एक ही विधि है: https://code.google.com/p/roottools/source/browse/trunk/Stable/RootTools-sdk3-generic/src/com/stericson/RootTools/ आंतरिक/रूटटूलस इंटरमीमेंट्स। जावा # 597 यहां तक ​​कि सरणी सामग्री एक ही क्रम में है;) – MatF

+9

@MatF जैसा कि आप देख सकते हैं कि मैंने पहले ही अपने उत्तर में कहा है। मैंने रूट कोड से कोड को लपेट लिया ... – StErMi

संबंधित मुद्दे