2011-10-24 11 views
26

हम एंड्रॉइड 3.1+ और ओटीजी/होस्ट पोर्ट से जुड़े यूएसबी उपकरणों को पढ़ने/लिखने की क्षमता में देख रहे हैं।एंड्रॉइड एमुलेटर से यूएसबी डिवाइस कनेक्ट करें?

मुझे कुछ कोड उदाहरण मिल गए हैं जो मुझे यूएसबी छिपा डिवाइस को पहचानने और पढ़ने/लिखने की अनुमति देते हैं, लेकिन फिलहाल, मेरे पास तैनाती और दूरस्थ रूप से डीबग करने के लिए भौतिक 3.1+ संगत डिवाइस नहीं है।

क्या कोई जानता है कि मैं अपने एचआईडी डिवाइस को पीसी/ग्रहण के माध्यम से एमुलेटर में कैसे संलग्न कर सकता हूं ताकि ऐप डिवाइस से पता लगा सके और पढ़ सके/लिख सके?

मैंने वर्तमान में जुड़े यूएसबी डिवाइसों को सूचीबद्ध करने का प्रयास किया है लेकिन यह कोई भी नहीं दिखाता है, क्योंकि आपको कोई संदेह नहीं होगा।

कोई विचार?

चीयर्स

उत्तर

6

AFAIK यह संभव नहीं है। एंड्रॉइड अनुकरणकर्ता वास्तविक उपकरणों में मौजूद कई चीजों का अनुकरण नहीं करते हैं ... लेकिन यह मुझे attempt to run ADB over Bluetooth की याद दिलाता है।

यह आपके प्रश्न का सीधा सकारात्मक जवाब नहीं है, लेकिन शायद यह आपके द्वारा किए गए तरीके से काम करने में मदद कर सकता है: भौतिक x86 नेटबुक (दोहरी बूट) पर "एमुलेटर" स्थापित करें और निर्दिष्ट लिंक का उपयोग करें वाईफाई या ब्लूटूथ के माध्यम से आप जो करने की कोशिश कर रहे हैं उसे पूरा करने के लिए my posts में।

उम्मीद है कि इससे मदद मिलती है।

+0

बेशक यह संभव है। – rolls

1

VirtualBox या इस image

कनेक्ट USB के साथ वी एम प्लेयर पर एंड्रॉयड वर्चुअल मशीन बनाएँ और (उर डिवाइस आईपी)

enter image description here

7

एडीबी कनेक्ट का उपयोग कर ग्रहण के साथ कनेक्ट एंड्रॉयड एमुलेटर QEMU पर आधारित है । भले ही एमुलेटर संस्करण इतना प्राचीन है, मेजबान से यूएसबी डिवाइस को पारित करने के लिए समर्थन प्रतीत होता है। यह एआरएम उपकरणों के लिए उपलब्ध प्रतीत नहीं होता है, हालांकि नकली एआरएम मशीन में यूएसबी नियंत्रक नहीं है। (मैंने पहले से ही सभी यूएसबी होस्ट नियंत्रकों को लिनक्स 3.4 के आधार पर गोल्डफिश_armv7 कर्नेल के लिए सक्षम करने की कोशिश की है, बिना किस्मत के। लिनक्स 3.4 के पास डिफ़ॉल्ट एमुलेटर गोल्डफिश_र्मव 7 कर्नेल में होस्ट यूएसबी सक्षम भी नहीं है।)

यदि आप एआरएम तक सीमित नहीं हैं और उपयोग कर सकते हैं x86, तो मैं http://www.android-x86.org/ को देखने का सुझाव देता हूं, इसकी छवियों का उपयोग मानक QEMU i386 (या x86_64) मशीन के साथ किया जा सकता है। यह लिनक्स पर KVM एक्सटेंशन का उपयोग करके बेहतर प्रदर्शन भी प्रदान करता है। ,

emulator -avd x86-machine -qemu -usb -usbdevice host:1234:abcd 

या जब QEMU का उपयोग कर:

ABCD के विक्रेता ID और डिवाइस आईडी के साथ एक USB डिवाइस पासथ्रू के लिए, आपको एमुलेटर आदेश चला सकते हैं

qemu-system-i386 -m 1G -cdrom android-x86.iso -usb -usbdevice host:1234:abcd 

आपको /dev/bus/usb/XXX/YYY के लिए पढ़ने/लिखने की अनुमतियों की आवश्यकता होगी, इसके लिए आप एक udev नियम बना सकते हैं जैसे:

SUBSYSTEM!="usb", GOTO="end_skip_usb" 
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess" 
LABEL="end_skip_usb" 

अब यूएसबी डिवाइस को सम्मिलित करने पर, आपके एमुलेटर को यूएसबी डिवाइस को पहचानना चाहिए। यह एक एंड्रॉइड x86 4 के साथ एक लिनक्स स्थापना के लिए परीक्षण किया जाता है।3 छवि।

+0

कमांड 'qemu-system-x86_64 -device help' सभी संभावित आभासी उपकरणों के नाम सूचीबद्ध करता है; जबकि मैं उन्हें समान रूप से लोड करता हूं '-usb -readconfig .android/avd/intel-pch-xhci.cfg'। –

+1

मुझे लगता है कि यह स्पष्ट करना अच्छा होगा कि -usbdevice होस्ट विकल्प केवल लिनक्स है। स्रोत: - https://qemu.weilnetz.de/doc/qemu-doc.html - 2.3.3 यूएसबी विकल्प – Tom

+0

@ टॉम यूएसबी होस्ट कार्यक्षमता [libusb] (http://libusb.info/) पर निर्भर करता है जो कि है विंडोज पर भी समर्थित है। पिछले क्यूईएमयू में एक लिनक्स निर्भरता थी, लेकिन यह क्यूईएमयू 1.5 में [इस प्रतिबद्धता] के साथ बदल दिया गया था (https://git.qemu.org/?p=qemu.git;a=commit;h=2b2325ff6491224a42e1fec99b1c39fbc521c95c) ([changelog ] (https://wiki.qemu.org/index.php/ChangeLog/1.5#USB))। मुझे लगता है कि दस्तावेज सिर्फ पुराना है। – Lekensteyn

0

here से छवि एंड्रॉइड-x86-4.0-r1-eeepc.iso का उपयोग कर विंडोज 7 होस्ट के साथ वर्चुअलबॉक्स में एंड्रॉइड अतिथि स्थापित किया गया (क्योंकि मेरी कंपनी के कंप्यूटर ने बायोस लॉक किया है और मैं vt-x emulation को स्थापित नहीं कर सका 4.4 से पहले एक संस्करण)। फिर एक यूएसबी ड्राइव में प्लग किया गया, वर्चुअलबॉक्स मैनेजर में वीएम - सेटिंग्स - यूएसबी खोला गया, दाईं ओर दूसरे आइकन पर क्लिक करके प्लस साइन के साथ, यूएसबी ड्राइव चुना। वर्चुअलबॉक्स ने यूएसबी ड्राइव के लिए ड्राइवर स्थापित किया। समाप्त होने के बाद, एंड्रॉइड वीएम बूट किया। OpenManager प्रारंभ किया गया, mnt/USB पर गया, और यूएसबी ड्राइव की फ़ाइलें वहां थीं!