Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I tried to push my apk file into a tablet, I got this error, please help me out.

adb server is out of date.  killing... 
* daemon started successfully * 
error: insufficient permissions for device.

Thanks in advance for the help.

share|improve this question
The answer by user84207, which is supported by the reference to the official Android developer documentation, is much better than the accepted answer by Anwar Shah, since we should avoid running daemons as root whenever possible. Running adb as root makes the computer vulnerable to more attacks. – nealmcb Feb 2 '15 at 17:00
up vote 7 down vote accepted

I've seen this same error sometimes on Ubuntu. A working workaround for this is running adb with sudo command. For example, if you're pushing app.apk on sdcard the command would be

sudo adb push app.apk /mnt/sdcard

Also, be sure you selected "USB debugging" mode in the Application settings (in GingerBread) or in Development section ( in IceCream Sandwich and above). If adb is already running, you should first kill it with the command sudo adb kill-server

Hope this will help.

share|improve this answer
I got it but still ll try this method too... thanks for the help – Neha Sharad Umachigi Jan 24 '13 at 10:53
"I got it"... Please have the courtesy to share if you found a solution, so that others may benefit (as you sought to benefit yourself when you asked the question). For example, I now have this problem, but I am forced to look elsewhere even though it is the same exact problem that you describe. – user84207 Sep 23 '13 at 18:27
This answer is risky since bugs in adb can take over the whole computer. The answer using udev rules by user84207, which is supported by the reference to the official Android developer documentation, avoids that problem. – nealmcb Feb 2 '15 at 17:03
This is the simplest and easiest and at least working workaround for the problem. – Anwar Shah Feb 2 '15 at 17:10

I ran into this same problem. Adding a udev rule as indicated here did the trick:

Log in as root, create a file /etc/udev/rules.d/51-android.rules and add a line like this to give permissions to anyone in the plugdev group:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

In this example, the vendor ID is HTC. You need to use the vendor ID for your device, which can be obtained by running lsusb and searching for a line like

Bus 002 Device 009: ID 2a47:9e18

In this example your vendor ID would be 2a47.

Now assign read permissions on the files, reload udev and reload the adb daemon:

sudo chmod a+r /etc/udev/rules.d/51-android.rules sudo udevadm control --reload-rules adb kill-server adb start-server

You may have to disconnect and connect again your device to the USB port.

share|improve this answer
You can get the USB vendor id by lsusb command. It is the first part of the colon separated pair. For example 18d1:4e22 would mean the vendor id is 18d1. – Peter Lamberg Sep 10 '14 at 19:14
You may need to "trigger" udev after adding the new rule file (though I'm not sure). Here's a way to "trigger"… . – user29020 Jan 23 '15 at 0:47
and/or you may need to disconnect and reconnect the device? But this answer did work for me, and is much better than running adb as root. Your Ubuntu user must also be part of the plugdev group. Run id to find out. – nealmcb Feb 2 '15 at 16:58
This repo is extremely helpful if you have to work with a lot of devices – zamber Apr 8 at 17:00

These two simple commands solved the problem for me:

adb kill-server
adb start-server

Note that unlike semi-newbie's answer I don't need sudo.

share|improve this answer

I just run through the same issue but here is how i was able to go through it:

  • you must kill the existing adb server by issuing the following command: adb kill-server (it may be wrong, but i issued it with AND without sudo
  • start the adb server with proper permissions by issuing: sudo adb start-server
  • voila. you may know issue any commands you need

Not sure if you know, but there is a package that includes adb. I mention this because i noticed that you are getting a reference to an older version of adb. You may install by issuing the following in your command line: sudo apt-get install android-tools-adb

I hope this helps.

share|improve this answer

It could be from another reason. I just get this error trying to install an apk on device:

$ adb install platforms/android/build/outputs/apk/android-armv7-release.apk 
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: insufficient permissions for device
- waiting for device -

It happened because the device was not ready on the correct mode. The device was sharing its 4G connexion via USB.

It can be known like that :

$ adb devices -l
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

33332EF19F3D00EC       no permissions usb:1-1.2

So it was enough to disable the connexion sharing on the phone and start again.

In general, make sure having the following result via the adb device command before trying to push files on the device

$ adb devices -l
List of devices attached
33332EF19F3D00EC       device usb:1-1.2

In these cases, no need to kill or restart the adb server.

It probably would be the same situation if you've mounted the device for data transfer via USB

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.