10

This might sound stupid, but after reading this post (which seem complete) I still dont see how to get the "abd version" of my android, the output I expect is something like this Android Debug Bridge version 1.0.31. I tried (based on this answer)adb shell and then adb version and I get /system/bin/sh: version: not found.

The reason I want to know it is to see if it is compatible with the adb version I have in my desk. Thanks!

UPDATE: Although I could not see the adbd version of my android. At the end I did not matter as I could command my phone from my desk using the last release of adb here. So thanks all anyway for their contributions, cuz although I did not get exactly what I wanted it help me to reach the a solution to my problem.

4 Answers 4

14

First of all, Android since Marshmallow doesn't come with adb binary (client) anymore, but only with adbd (server), for communication with an adb client on Desktop.

In a nutshell, this is how the communication takes place:

  • your Android device has adbd, a daemon, which is started during boot process, and listens on USB by-default for communication from desktop clients;
  • your adb tool in your desktop acts as a client and sends request to adbd on your Android, and you get to run adb commands successfully subjected to fulfilment of certain conditions.

If there are compatibility concerns, they would arise if adbd is depreciated or adb client on your desktop is. To see the versions, run:

adb version                 // to check adb client version in your desktop
adb shell adbd --version    // to check adbd's version in your Android. Please note that some users reported error with this if executed without root access. 

You shouldn't be worried about adbd's version but only with adb client version in your Desktop since official adb client is backward compatible.

Now to the localized issues you ended up with.

You incorrectly executed the commands. Nowhere the linked answer instructed to execute adb shell version. The correct procedure is:

adb version // adb version (client) on your Desktop
adb shell   // launches shell on your Android device through adb client on Desktop
adb version // the version of adb (client) binary that used to come with Android prior to Marshmallow. 

The last two commands have no relevancy to your question since they intend to ascertain the version of the adb client in your Android. As I explained in the beginning, it is adbd (server) alone which communicates from Android device's end, not the adb binary in the Android. That binary in Android can be used, if available, to talk to other Android devices (USB-OTG, WiFi, etc.) or to the same device if adbd (server) is listening on network too.

Also, when you ran adb shell version, it meant: launch a shell on Android and execute the command version. There is nothing named version which is to be executed, hence, you got the error.

11
  • 1
    Thank you very much for the time you took in explain it to me, now I have a better understanding of the issue. I execute adb version and adb shell adbd --version , and I got Android Debug Bridge version 1.0.32 Revision 57224c5cff69-android for the first one, and for the second I got the same error /system/bin/sh: adbd: not found. It is strange cuz then when I execute adb shell getprop I get all the properties of the mobile phone but anyway I dont see the adbd version among them.
    – Bur Nor
    Dec 13, 2017 at 13:39
  • Honestly, I don't know why you are getting that error. It works fine here: i.stack.imgur.com/GuHMe.png
    – Firelord
    Dec 13, 2017 at 14:50
  • I downloaded adb application (to execute from window 10) in this link: dl-ssl.google.com/android/repository/…, after it I run cmd in the file "platform-tools" and I get that error, am I doing something wrong with the executable I am using?
    – Bur Nor
    Dec 13, 2017 at 15:52
  • I do not know. It may be best to try asking it as a separate question. Others might be able to help better if you ask it as a new question.
    – Firelord
    Dec 13, 2017 at 17:11
  • Makes sense that OP sees /system/bin/sh: adbd: not found, because adbd usually resides under /sbin, and that directory is typically accessible only by root.
    – Grimoire
    Dec 14, 2017 at 17:28
2

Correct syntax for checking ADB version of Android SDK is

adb version

When in shell, issuing command

adb

or

adb help

will give output of both version and available combinations of options && parameters.

You can not get ADB version of your device, but only properties for which answers in thread you already found is appropriate.

1
  • Hi, I am new in this, but I understood that shell is to access to your android device (mobile phone) I want to get the abd version of my mobile phone, when I try your suggestion I get the properties of my Desk
    – Bur Nor
    Dec 12, 2017 at 23:00
0

There's often no need to check the adbd client version on your phone as it's tied to the Android version. I.e. you can safely assume you get adbd version 5.1 on an Android 5.1 device. There hasn't been great new feature introduction since very long ago so different versions of ADB client should make little difference.

2
-1

here the script that works for me in both cases regardless if adbd on the phone is default (non-root) or insecure (root):

#!/bin/bash
clear
echo
echo "if adb runs in user (non-root) mode:"
adb shell "su -c adbd --version"
echo
echo "if adb runs in root mode:"
adb shell "adbd --version"
echo

This does NOT work with Chainfire's old & discontinued adb insecure app installed and active on the phone:

adbd: unrecognized option `--version'
cannot bind 'tcp:5037'

most likely because it applies a very outdated insecure adbd (latest in his package is from api/sdk 21 = Android 5) which does not fully communicate with current Desktop adb binaries.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .