I recently received a Hisense Sero 7 Pro Edition (running android 4.2) for use with development. I am currently on my Linux box trying to get it setup to be used over here since I seem to have better luck with the NDK on this computer.
Aside the point, I have the vendor ID registered in adb_usb.ini and its not seeming to want to play nice with my computer. When I plug the device in it says USB debugging is enabled as well as its connected as a media device. I have heard a few places that connecting as a media device causes some issues with USB debugging. Maybe that is the issue, if so how do I turn that off?
Kinda at a loss here. How do I go about getting this working?
Thanks in advance
I have the same Hisense Sero 7 tablet. The id is 109b, which can be found here in the list of USB Vendor IDs. This must be done in addition to the answer explained by Sumit Jain.
In addition to editing 51-android.rules, you will also need to add third party vendor Id to adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x109b
then in the terminal:
adb kill-server
adb devices
> List of devices attached
> 015d8bed094ffe06 device
P.S: this is the command I used
gedit ~/.android/adb_usb.ini
Well I think I have a method which can help u. Just follow the steps...
Type lsusb in your terminal after plugging in your device to your system. You will see some codes. Now remove the device and again run command. Now you will notice that one of the code is missing.
Note down the missing code because that is the code of your device manufacturer.
This is the code in my case (0bb4)
Bus 002 Device 014: ID 0bb4:0ce6 High Tech Computer Corp.
3.Now go to this path /etc/udev/rules.d
4.You will notice a file named 51-android.rules.
5.Open it and copy and paste the last line but change. The last line looks like the one i pasted above. Now in the copied line replace the code with your device code (0bb4 in my case).
Now type adb kill-server
Now type adb devices and you can see your device listed.
Hope this will help you and ya be careful with permissions your require anywhere.
Goto setting/about/build tap build 8 times. Bazinga developer options open up when you back out
Related
New to Android development, I've made a small app using Eclipse that works perfectly on a virtual Android device. Now, I want to run it on the real device: Moverio, a head-mounted display made by Epson, but my computer just does not recognize it as an Android device.
Being on Windows 7, I understood I need a specific USB driver. Epson sent me instructions to install the driver, but it still doesn't work. How can I do it?
Here are the steps I followed:
Add following two lines in [Google.NTx86] and [Google.NTamd64] sections in
\extras\google\usb_driver\android_winusb.inf:
%SingleAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04
%CompositeAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04&MI_01
Add vendor ID in [username].android\adb_usb.ini]
Enable USB debugging mode on the device
Install USB driver following instructions given here http://developer.android.com/tools/extras/oem-usb.html#InstallingDriver
I ran into a problem in the fourth step: in my device management panel, Moverio is in the "Disk drives" category. When I right click on it to install or update drivers nevertheless, inputting the <sdk>\extras\google\usb_driver\ folder, it says the driver is up to date.
When I try to run the app using Eclipse, it asks me to install a virtual device, because it can't find any real device connected.
I managed to find a blog post walking through the process needed to enable ADB access to the device. The original is in Japanese and the Google translation left something to be desired.
I'm providing my recreation of the process below; this is partially a translation and partially an expansion and combination of the original with the official documentation which failed to cover the problem encountered with the Moverio.
With a few modifications noted at the end, I suspect this should work for installing debug support on other devices that only identify as external data drives by default as well.
The first thing you need to do is to edit the .inf file for the Google USB driver.
The file is located at \android-sdk\extras\google\usb_driver\android_winusb.inf.
By default, the android-sdk folder is located under C:\User\YourUserName\AppData\Local\Android\.
You need to add the following lines to the end of the file:
[Google.NTamd64]
; BT-100
%SingleAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04
%CompositeAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04&MI_01
Next connect the device with developer mode disabled. Windows will identify it as a USB mass storage device (MSC).
You need to go into Device Manager and uninstall it. If you have multiple USB-MSDs listed under USB Serial Bus Controllers, you can identify which one is the Moverio by disconnecting it, right clicking on each one that is still present, selecting properties and noting the location value on the general tab. Then reconnect the Moverio and look for the new entry it adds.
After you've uninstalled the Moverio's USB Mass Storage Device entry, disconnect it and enable Developer mode on the device.
Then reconnect it. Device Manager will update to show a BT1 entry under Other Devices
Right click on the BT1 entry, select Update Driver Software, mrowse My Computer for driver software. Provide the path to the USB driver folder from step one. Click Next.
At this point I get a warning about not being able to verify the publisher of the driver. I believe this is related to my having edited the .inf file. Click install this driver software anyway.
Windows will report that the driver is successfully installed. Close the update dialog. You should now see an Android Composite ADB Interface entry in device manager. On my computer it's appearing under ASUS Android Devices; which I assume is a legacy of the Transformerpad I've connected in the past; in the blog I'm using as a source it appeared under Android Phone.
ADB still needs to be informed that the device is available however. To do this, you need to edit the \.Android\adb_usb.ini file. Default location of C:\User\YourUserName\ by appending the vendor ID as a new line to the end. This is an autogenerated file; but running the update process in the comment will remove the entry we need. If you unexpectedly lose the ability to debug, this would probably be a good spot to recheck.
# ANDROID 3RD PARTY USB VENDOR ID LIST - DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x04B8
The only thing left is to stop and restart ADB. To do this, open a command prompt at \android-sdk\platform-tools. Issue the command adb kill-server followed by the command adb devices.
C:\Users\Neelyd\AppData\Local\Android\android-sdk\platform-tools>adb kill-server
C:\Users\Neelyd\AppData\Local\Android\android-sdk\platform-tools>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
WS000 device
When ADB restarts the device should be listed, and appear in DDMS in Eclipse.
To use this procedure to install the generic Android USB driver on a different device I think all you should need to do is to right click on the device's USB Mass Storage Device entry in device manager (step 3); select details, select the Hardware Ids property, note the values displayed, and use them in place of the Moverio's in the android_winusb.inf file (step 1), and the vendor ID in adb_usb.ini (step 10).
Possible simpler option
After figuring this out, I finally got a reply from Epson support. They said it should be possible to install their driver to the USB-MSD identified in step 2 directly. If that works it would replace steps 3-6. I haven't tested it though, so I'm only leaving this note as a postscript.
Installing drivers for Windows might be much more difficult than it seems. From my experience, you have much better chance for successful development for Android on any Linux platform, be it installed next to your Windows installation on your PC or run in a virtual box. Linux does recognise almost any Android device and allows access without any driver installation.
I tried to connect my Nexus S (Android version 2.3.5) to my macbook pro 10.7 (OSX Lion). However, the notification on android phone was just ON and OFF alternative. I tried this command on my terminal.
adb usb
>>error: device not found
adb devices
>>List of devices attached
>>[ nothing here ]
Please help me with this issue. Thank you!
Make sure you don't have a power-only USB cable. If the phone charges but Mac doesn't think it's there, it's a sure sign.
Also, if that does not work, check to see if the device shows up under USB in the System Profiler (included in OS X). If it is showing up there, but not in ADB, try adding the USB Vendor ID of the phone to ~/.android/adb_usb.ini
This file can be created if it does not already exist. The Vendor ID of the Nexus S is 0x18d1. Please make sure the last line of the file is a Vendor ID, do not leave a blank line at the end.
It seams that there are some problems with debugging an Android device on OS X (most describe this problem after updating to Lion).
There are some threads/discussions which offer a few possible workarounds, see if one of them works for you:
OS X 10.6.6 and "adb devices" fails to list android devices
The Issue on the Google Bug-Tracker
Although, this seams to be a problem on Google / Apples site so you can only check if you can work it around.
I had same problem with my N-06C which is made by NEC and solve by writing code less kext.
http://8kpxen.blogspot.com/2011/08/how-to-adb-to-your-android-device-on.html
Please read this blog and download kext.
Since this kext file is configured for N-06C, please modify for your environment.
This happened to me, checked ADB in Eclipse, and was able to select and push file to device. Pushed APK and installed.
I know, horrible solution but Lion has been a nightmare for most developers. Hopefully the updates keep comin!
I have a similar issue. I can issue commands via ./adb shell like ls, but not push and pull, and when i do ./adb devices, it shows my device id, but when i start an interactive shell, adb devices shows nothing. i can still list files in the interactive shell, but still no push or pull.
I am developing (not end user), on Eclipse and I want to connect to Ouku tablet. I cannot find the drviers for this that work. Anyone know how to get Ouku tablet connected via USB. I cannot even see the device
Have you tried using the android update adb command, or manually putting the VID into your adb_usb.ini file (even though it telss you not to)?
more ~/.android/adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
You may need to use dmesg or lsusb or look in device manager to figure out the VID; also on linux you may need to put it in your udev rule.
Finally, do your know for a fact that this device has an adbd listening on USB? First make sure you have enabled USB debugging in settings. If you can get a shell open from a terminal program or connectbot on the device, you might want to try
getprop | grep adb
and
ps | grep adbd
Maybe this could also help, came accross this driver link
On this page
I had a P801W with VID: 0x05C6
After installing the driver package and updating the devices:
Update Driver
Select option: "Browse My Computer for Driver Software"
Select option: "Lett me pick from the list"
Select Mobile -> Google Inc -> ADB Interface
I had to to this for 4 new devices in my list, but after these steps $adb shell worked on me
Based on what I have learned today, this link could also provide good information in resolving this with the standard USB ADB Drivers from Google, by simply modifying the driver .inf description file.
I'm trying to install my test app on my device, but I does not go there.
I've also prepared my phones as described here: here
1 - In eclipse I see the device with '??????????' as ID.
2 - with adb device, I get:
List of devices attached
???????????? no permissions
I edited the /etc/udev/rules.d/51-android.rules....not sure what else to do?
3 - I copies the app to my SD card and tried to installed it from there ... but at a point the installation stopped and the message was 'Application not installed'
Also! The app gets intalled on my friends phone via eclipse?
Can anybody give me a hand with this???
Thanks!
Ensure your machine is connected to the Phone device correctly..
If the error persists, you can try restarting the adb server, using following commands:
adb kill-server
adb start-server
adb devices
If the error still persists, try restarting both your development machine and phone device.
I've seen that before when the user you are running as did not have permissions. If you're using Ubuntu try running adb via sudo:
sudo adb devices
If you're using another distro either try as root, or use sudo, accordingly. (Assuming you're using Linux, and probably Ubuntu, if you're in that part of the instructions on the page you linked -- but that info in the question would help too.)
Also make sure you're using the correct vendor ID for the device you're trying to use. The instructions show 0bb4 as an example only (that will only work for certain HTC devices). You can use the lsusb command to check to make sure you're device is detected by the OS, and get the correct ID.
lsusb
Bus 002 Device 100: ID 18d1:4e12 Google Inc. Nexus One Phone (Debug)
absolutely beyond my comprehension - the device got found (recognized) after deselecting the Settings > Applications > Development > USB debugging....
:) I signed with relief ...
Thank you very much for the enthusiasm and help!
I made an Android Hello world app and I'm trying to load it onto my HTC Incredible. I believe it has 2.2 (how do I confirm that?)
Anyway, Eclipse gives me this message and then brings up the window in the screenshot below.
Automatic Target Mode: Unable to
detect device compatibility. Please
select a target device.
I'm on Ubuntu 64bit if that matters. I did turn on USB debugging on the phone. I told the phone to connect as a disk drive.
Any ideas how to get my app onto the phone?
Update: Do I need to perform these steps since I'm on Ubuntu? I doesn't mention what to do for Ubuntu 8.10 though.
Ok, it turns out I did have to follow all the instructions from this page. (The sudo stuff mentioned in other answers above didn't help.)
Here are the exact commands I ran for Ubuntu 8.10
You need to run the adb server in superuser mode (i.e. sudo adb start-server).
Try what EboMike said, run sudu adb start-server.
To answer your question "how do I confirm my phone is V2.2?" Press your phone's menu key, then settings, about phone, software information. The Android version is the number you're looking for. This shouldn't be important though for your hello world example.
Also, it's not important that you have the phone connect as a disk drive; this causes the SD card to be dismounted. It will actually cause problems if you run or debug an application that tries to access the SD card. You can just select charge only and use ADB/Eclipse's DDMS perspective to move files to and from the phone.
Here's an update answer in case anyone finds this thread from Google.
http://dimitar.me/how-to-connect-your-android-phone-to-ubuntu-to-do-developmenttestinginstallations-or-tethering/
The easiest way to this: Go to www.dropbox.com and sign up for a free account. Copy your .apk file from your project's /bin directory to your Dropbox. Download and install the free Dropbox app from the Android Market. Navigate to your .apk file on the Dropbox app and click it to download and install on your phone.
These are the steps I took on Arch Linux to resolve the same problem:
As mentioned in some of the other replies you will need a udev rule for the device. In this example I am using an HTC Desire.
(for HTC you'll need to use "0bb4")
Get the correct Vendor and Product IDs
run lsusb with the handset plugged in and you should see something like Bus 001 Device 004: ID 0bb4:0c87 High Tech Computer Corp. Desire (debug)
'0bb4' is the Vender ID: HTC
'0c87' is the Product ID
Make a udev rule using the values you've just retrieved
Now make a udev rule as root using:
$ sudo vim /etc/udev/rules.d/51-android.rules
Add the following (this is for HTC Desire - edit accordingly):
## Rule for an HTC Desire Android Phone
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c87", MODE="0666", GROUP="users", NAME="HTC Desire"
GROUP defines which Unix group owns the device node.
At this point I rebooted and found that my handset was detected. Supposedly you can reload udev rules using the following but if this doesn't work try rebooting.
$ sudo udevadm control --reload-rules
in eclipse: go to Run menu -> Run configuration. Right click on android application on the right side and click new. Fill the corresponding details like project name under the android tab. Then under the target tab. Select launch on all compatible devices and then select active devices from the drop down list. Save the configuration and run it by either clicking run on the run button on the bottom right side of the window or close the window and run again
Cheers !