Search code examples
androiddebuggingadb

ZTE V9 not detected by ADB


I've spent over an hour trying to make ADB detect my ZTE V9 on Ubuntu 11.04. It's not a permissions issue, adb devices simply doesn't print anything

List of devices attached

USB debugging is on

This is what my android rules look like

/etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2:0083" SYMLINK+="android_adb", MODE="0666" GROUP="plugdev" TEST=="/var/run/ConsoleKit/database", \ RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"

This is the output of lsusb

Bus 002 Device 008: ID 19d2:0083 ONDA Communication S.p.A. 
Bus 002 Device 004: ID 046d:c01e Logitech, Inc. MX518 Optical Mouse
...

After editing android.rules I've restarted udev and restarted adb.

I've tried several modifications of this udev rule. I've also tried to use 99-android.rules instead of 51, but nothing changes.

Then, I've tried to manually edit ./android/adb_usb.ini, which after my edit looks like this

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x19d2

But still, the device is not detected.

Up to now I have developed for a Samsung Galaxy S, which is detected inmediately

Thanks in advance!

sources used up to now:

XDA-developers

many other web sites


Solution

  • I just went through all these same steps with a ZTE V768 (concord), with the same results as you -- adb just showed nothing. The same udev rules I've used for every other phone just don't work for this one.

    Then I found this thread: http://forum.xda-developers.com/showthread.php?t=1853571&page=8

    Looks like ZTE conveniently leaves a driver install file somewhere on their phones (mine was in /system/data/PCSUITE.ISO, or someone mentioned /dev/PCSUITE.ISO), which has a linux script to set up some udev rules for it. I ran their 'install', then 'adb devices' immediately after, and it was there.

    Their 'driver' consists of copying 2 rules files to /etc/udev/rules.d/, copying adb to /usr/bin, and running 'chmod a+x' on all three of those files. I removed the executable permissions from the rules files and removed their installed adb, and I'm still able to connect to the phone, so I believe only the rules should be necessary.

    So, here they are:


    51-android-hs.rules:

    # for android device
    
    SUBSYSTEM=="usb", SYSFS{idVendor}=="19d2", MODE="0666"
    

    61-usb-cdrom-hs.rules:

    # This file maintains persistent names for CD/DVD reader and writer devices.
    # See udev(7) for syntax.
    
    ############################################################################
    SUBSYSTEM=="block", SYSFS{idVendor}=="19d2", SYSFS{idProduct}=="0358", SYMLINK+="ZTECdrom", \
    RUN+="/usr/bin/eject /dev/ZTECdrom", RUN+="/bin/eject /dev/ZTECdrom"
    ############################################################################
    

    I haven't done any more research into why this works (is the cdrom rule necessary, is the phone being recognized as a cdrom device somehow? Is there a difference between using 'SYSFS' as opposed to 'ATTR'? or does the rule just need to be before the stock rules for this phone?) ... but these are the 'official' ZTE udev rules, and it works.

    In case it matters, this was for a ZTE Concord which shows a product ID of '0355' in lsusb, and I don't have a device with a product ID of '0358' as the cdrom rule lists. Again, not sure if this is relevant, just sharing in case it is.

    And if you want the full driver install, it's probably on your phone in /system/data/PCSUITE.ISO or /dev/PCSUITE.ISO, or there's a link to download it in the XDA thread above.