'Insufficient permissions' error on `adb push` command on 12.04

Solution 1:

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, so you would have to replace 0bb4 with 2a47. The correct line would thus read:

SUBSYSTEM=="usb", ATTR{idVendor}=="2a47", MODE="0666", GROUP="plugdev"

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.

Solution 2:

Jorch914's answer on Stack Overflow solved this issue for me:

Ok So I finally found the problem, apparently on this device you have to set to connect as camera(even after usb debugging is already enabled)

enter image description here

Also this link describes the setting up process

Solution 3:

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.

Solution 4:

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.