2015-01-11 5 views
5

मैं यह पता लगाने की कोशिश कर रहा हूं कि adb server मेरे मुक्त गेम के लिए एंटी-धोखाधड़ी के कार्यान्वयन के हिस्से के लिए एंड्रॉइड डिवाइस पर चल रहा है या नहीं।पता लगाएं कि एंड्रॉइड पर एडीबी सर्वर चल रहा है या नहीं?

विशेष रूप से, मैं adb shell input tap x,y का उपयोग करना बंद करना चाहता हूं, क्योंकि गेम प्रतिस्पर्धी मल्टीप्लेयर पहेली गेम है।

बातें मैं कोशिश की है:

  1. बैटरी की जानकारी है, तो यूएसबी प्लग किया गया है मैं पता लगा सकते हैं का उपयोग करना ठीक है, कि यह भी एक कानूनी इस्तेमाल होता है।।

  2. Settings.Secure या Settings.Global का उपयोग करना, मैं ADB_ENABLED क्वेरी कर सकता है, लेकिन वह हमेशा 1 लौटाता है यदि एडीबी सक्षम है। यह खाते में संलग्न नहीं है या नहीं!

  3. सभी सिस्टम सेवाओं की क्वेरी करना, लेकिन मुझे कुछ भी नहीं दिख रहा है जो एक एडीबी सेवा की तरह दिखता है।

इस बिंदु पर, मैं विचारों से बाहर हूं। उम्मीद है कि कोई और जानता है कि यह कैसे करें?

उत्तर

6

आप adbd चल रही प्रक्रिया को या क्वेरी init.svc.adbd प्रणाली संपत्ति के लिए जाँच कर सकते हैं:

$ ps adbd 
USER  PID PPID VSIZE RSS  WCHAN PC   NAME 
root  14947 1  4596 208 ffffffff 00019358 S /sbin/adbd 

$ getprop init.svc.adbd 
running 

Android में adb ड्राइवर सार्वभौमिक usb चालक के एक समारोह के रूप में कार्यान्वित किया जाता है। आप को देखने के लिए अगर यह "adb" भी शामिल है (अल्पविराम से अलग) वर्तमान में सक्षम usb कार्यों की सूची की जांच कर सकते हैं:

$ cat /sys/devices/virtual/android_usb/android0/functions 
mtp,adb 

लेकिन आप में सक्षम रोक धोखाधड़ी नहीं होगा, जबकि अपनी ऐप्लिकेशन उपयोगकर्ता नियंत्रित डिवाइस पर पूरी तरह से चल रहा है।

+0

बहुत बढ़िया ... धन्यवाद! इस मामले में धोखाधड़ी रोकना आसान है ... अगर विज्ञापन चल रहा है तो बस सर्वर को स्कोर सबमिट न करें :) – Richard

+1

अनुवर्ती: आप मोशनइवेंट.getDeviceId() की जांच कर सकते हैं ... यह adb द्वारा इनपुट के लिए शून्य देता है! – Richard

-1

'सिंथेटिक/कृत्रिम/बंदर' के रूप में चिह्नित इनपुट टैप ईवेंट नहीं हैं?

स्थैतिक बूलियन isUseramonkey() "सत्य" देता है यदि उपयोगकर्ता इंटरफ़ेस वर्तमान में एक बंदर द्वारा गड़बड़ कर रहा है।

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