it-swarm.dev

Android Emulator'a USB aygıtı bağlayın?

Android 3.1+ ve OTG/Host portuna bağlı USB cihazlarını okuma/yazma yeteneğini araştırıyoruz.

Bir USB HID aygıtını algılamam ve okumama/yazmama izin veren bazı kod örnekleri buldum, ancak şu anda, uzaktan dağıtmak ve uzaktan hata ayıklamak için fiziksel bir 3.1+ uyumlu aygıtım yok.

PC/Eclipse aracılığıyla HID cihazımı emülatöre nasıl bağlayabileceğimi bilen var mı, böylece uygulama cihazdan tespit edip yazabiliyor/okuyabiliyor mu?

Şu anda bağlı olan USB Aygıtlarını listelemeyi denedim, ancak hiçbir şüphe duymayacağınız gibi hiçbiri göstermiyor.

Herhangi bir fikir?

Şerefe

27
Gavin

Android emülatörü, QEMU'ya dayanır. Öykünücüsü sürümü çok eski olsa bile, USB cihazlarını Ana Bilgisayardan geçirme desteği var gibi görünüyor. Öte yandan ARM aygıtlar için uygun görünmüyor, öykünülmüş ARM makinede bir USB denetleyici yok. (Linux 3.4 tabanlı, goldfish_armv7 çekirdeği için tüm USB Ana Bilgisayar denetleyicilerini şanssız olarak etkinleştirmeyi zaten denedim. Varsayılan emulator goldfish_armv7 çekirdeği, Host USB etkin bile değil.)

Eğer ARM ile sınırlı değilseniz ve x86 kullanabilirseniz, o zaman kontrol etmenizi öneririm http://www.Android-x86.org/ , görüntüleri ile kullanılabilir. standart bir QEMU i386 (veya x86_64) bir makinedir. Bu, Linux üzerindeki KVM uzantısını kullanarak da daha iyi performans sağlar.

Satıcı kimliğine 1234 ve aygıt kimliğine abcd sahip bir USB aygıtı atlamak için, emulator komutunu çalıştırabilirsiniz:

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

Veya, QEMU kullanırken:

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

/dev/bus/usb/XXX/YYY için okuma/yazma izinlerine ihtiyacınız olacak, çünkü aşağıdaki gibi bir udev kuralı oluşturabilirsiniz:

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

Şimdi, USB cihazını taktıktan sonra, emülatörünüz bir USB cihazını tanımalıdır. Bu, Android x86 4.3 resimli bir Linux kurulumunda test edilmiştir.

12
Lekensteyn

AFAIK bu mümkün değil. Android emülatörleri gerçek cihazlarda bulunan pek çok şeyi taklit etmiyor ... ama bu bana bir Bluetooth üzerinden ADB çalıştırma denemesi ı hatırlatıyor.

Bu, sorunuza doğrudan olumlu bir cevap değildir, ancak belki de benim yaptığım gibi bir geçici çözüm bulmanıza yardımcı olabilir: Fiziksel bir x86 netbook'una (çift önyükleme) bir "emülatör" yükleyin ve mesajlarım WiFi veya Bluetooth ile yapmaya çalıştığınız şeyi yapmak için.

Bu yardımcı olur umarım.

8
an00b

VirtualBox'da Android Sanal Makine oluşturun veya bu görüntü ile vm oynatıcıda.

USB'yi bağlayın ve ADB connect'i (cihazınızın IP'si) kullanarak Eclipse ile bağlanın.

enter image description here

2
Akilan

Windows 7 Host ile sanal kutuya Android konuğu yüklendi Görüntüyü kullanarak Android-x86-4.0-r1-eeepc.iso, here konumundan (çünkü şirketimin bilgisayarı bios'ları kilitledi ve vt-x öykünmesini etkinleştiremedim. 4.4'ten önceki bir sürüm). Ardından bir usb sürücüye bağlandı, VM 'i açtı - Ayarlar - Virtualbox Manager'da USB, sağdaki ikinci simgeye tıkladı, üzerinde bir artı işareti vardı, usb sürücüyü seçti. Virtualbox daha sonra USB sürücüsü için sürücü kurdu. Tamamlandıktan sonra Android VM'yi başlattı. OpenManager başlatıldı, mnt/USB'ye gitti ve usb sürücünün dosyaları oradaydı!

0