Ошибка «Недостаточные разрешения» в команде «adb push» на 12.04

Когда я пытался вытащить свой файл apk в планшет, я получил эту ошибку, пожалуйста, помогите мне.

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

Заранее спасибо за помощь.

1
задан 29 January 2013 в 05:47

9 ответов

Я столкнулся с этой же проблемой. Добавление правила udev, как указано здесь, выполнило трюк:

Войдите в систему как пользователь root, создайте файл /etc/udev/rules.d/51-android.rules и добавьте такую ​​строку, чтобы дать разрешения кому-либо из группы plugdev: [!d2 ]

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

В этом примере идентификатор поставщика - это HTC. Вам необходимо использовать идентификатор поставщика для вашего устройства, который можно получить, запустив lsusb и выполнив поиск строки, такой как

Bus 002 Device 009: ID 2a47:9e18

. В этом примере ваш идентификатор поставщика будет 2a47, поэтому вы заменить 0bb4 на 2a47. Таким образом, правильная строка читается:

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

Теперь назначьте разрешения на чтение файлов, перезагрузите udev и перезагрузите демона adb:

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

Возможно, вам придется отключиться и подключиться снова ваше устройство к порту USB.

50
ответ дан 25 May 2018 в 02:09
  • 1
    Вы можете получить идентификатор поставщика USB командой lsusb. Это первая часть разделенной двоеточиями пары. Например, 18d1: 4e22 означает, что идентификатор поставщика равен 18d1. – Peter Lamberg 11 September 2014 в 00:14
  • 2
    Возможно, вам понадобится «триггер». udev после добавления нового файла правила (хотя я не уверен). Вот способ «триггера». askubuntu.com/questions/82470/… . – user29020 23 January 2015 в 04:47
  • 3
    и / или вам может потребоваться отсоединить и снова подключить устройство? Но этот ответ действительно сработал для меня и намного лучше, чем запустить adb как root. Пользователь Ubuntu также должен быть частью группы plugdev. Запустите id, чтобы узнать. – nealmcb 2 February 2015 в 20:58
  • 4
    Это репо чрезвычайно полезно, если вам нужно работать с большим количеством устройств github.com/M0Rf30/android-udev-rules – zamber 8 April 2016 в 20:00
  • 5

Ответ Jorch914 на StackOverflow решил эту проблему для меня:

Хорошо Итак, я, наконец, нашел проблему, видимо, на этом устройстве вам нужно установить соединение как с камерой (даже после того, как отладка USB уже включена). эта ссылка описывает процесс настройки
13
ответ дан 25 May 2018 в 02:09
  • 1
    Да, это было! Мне пришлось «Выбрать конфигурацию USB». на Android N, который по умолчанию установлен на «Зарядка». – Dan Dascalescu 13 May 2017 в 03:28
  • 2
    это работало только для меня. благодаря – Nishant Bhakta 2 October 2017 в 09:26
  • 3
    по какой-то причине я всегда мог подключить свой пиксель к mac и начать работать, но когда я перешел на рабочую станцию ​​CentOS, мне пришлось это сделать, чтобы заставить его запрашивать разрешение на отладку. благодаря – bsautner 21 November 2017 в 22:34
  • 4
    Работал для меня. Трюк, похоже, заключается в том, чтобы изменить его из «Зарядка». что-то другое, почему. – Bim 1 February 2018 в 14:27

Я просто просматриваю одну и ту же проблему, но вот как я смог ее пройти:

вы должны убить существующий сервер adb, выпустив следующую команду: adb kill-server (возможно, это неправильно , но я выпустил его с AND и без sudo запустил сервер adb с надлежащими разрешениями, выпустив: sudo adb start-server voila. Вы можете знать, что выдаете любые команды, которые вам нужны

Не знаете, знаете ли вы, но есть пакет который включает adb.Я упоминаю об этом, потому что я заметил, что вы получаете ссылку на более старую версию adb. Вы можете установить, выпустив в командной строке следующее: sudo apt-get install android-tools-adb

Надеюсь, это поможет.

10
ответ дан 25 May 2018 в 02:09
  • 1
    АБР инструментов платформы может быть более новым; эти инструменты даже доступны как отдельная загрузка, между тем. – Martin Zeitler 10 January 2017 в 04:37
  • 2
    Это сработало для меня. Благодаря! – Teekin 28 November 2017 в 19:12

Эти две простые команды решили проблему для меня:

adb kill-server
adb start-server

Обратите внимание, что в отличие от ответа полу-новичка мне не нужно sudo.

10
ответ дан 25 May 2018 в 02:09
  • 1
    это сработало для меня – Sudip Bhandari 21 December 2016 в 21:09
  • 2
    Не работает для Nexus 5X, подключенного к Ubuntu 16.04, когда я пытался запустить adb shell ls. – Dan Dascalescu 13 May 2017 в 03:22

Сегодня я столкнулся с ошибкой insufficient permissions for device, хотя adb работал как ожидалось всего несколько минут назад. Теперь я получаю:

$ adb devices
List of devices attached 
????????????    no permissions

$ adb shell
error: insufficient permissions for device

Незадолго до столкновения с ошибкой я отключил Media device (MTP), так как решил, что мне не нужно будет использовать MTP. Однако, кажется, что отладка USB или, по крайней мере, некоторые команды adb, требуют, чтобы Media device (MTP) был включен.

Чтобы включить Media device (MTP) на Android 4.4, перейдите к:

Settings
Storage
The "..." menu (in the upper right corner)
USB computer connection
Media device (MTP)
]

Когда MTP отключен, lsusb показывает следующее:

Bus 002 Device 071: ID [idVendor1]:[idProduct1] Google Inc.

После включения MTP lsusb показывает следующее:

Bus 002 Device 072: ID [idVendor2]:[idProduct2] [idVendor string]

idVendor и idProduct меняются в зависимости от того, включен или нет MTP.

Я не специалист по Android, поэтому возможно, что описанное выше поведение специфично для моей конкретной модели телефона.

1
ответ дан 25 May 2018 в 02:09

Это может быть по другой причине. Я просто получаю эту ошибку, пытаясь установить apk на устройство:

$ 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 -

Это произошло потому, что устройство не было готово в правильном режиме. Устройство делилось своей связью 4G через USB.

Это можно так сказать:

$ 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

Таким образом, этого было достаточно, чтобы отключить обмен соединениями на телефоне и начать снова.

Это произошло потому, что устройство не было готово в правильном режиме.

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

В этих случаях нет необходимости убивать или перезапускать сервер adb.

Вероятно, это будет такая же ситуация, если вы установили устройство для передачи данных через USB

0
ответ дан 25 May 2018 в 02:09

У меня была такая же проблема и я получил недостаточные разрешения. То, что я сделал, было отменой полномочий USB для моего ноутбука. Затем остановилась и началась отладка USB. Подключите его обратно к ноутбуку и предоставили полномочия отладки usb.

0
ответ дан 25 May 2018 в 02:09
  • 1
    Можете ли вы предоставить дополнительную информацию об этом процессе? Шаг за шагом был бы идеальным, поэтому OP может следовать вашему примеру. :) – ThatGuy 18 November 2016 в 04:34

У меня одна и та же проблема, и я решил это, добавив путь к вашему_android_sdk_path к переменной среды, подобной

sudo export $PATH:/your_android_sdk_path/platform-tools/adb

, вашему желанию, как вы хотите добавить это в свою учетную запись или в систему отредактировав файл ~/.bashrc или ~/.profile или /etc/profile, /etc/bash.bashrc, or /etc/environment, если вы хотите добавить к системному доступу.

, а затем создайте ссылку на это в bin

sudo ln -s /your_android_sdk_path/platform-tools/adb /bin/adb

, если вы использовали устройства adb или любую команду, а затем сначала запустите сервер, например

adb kill-server

, затем запустите сервер, например

adb start-server
adb devices

, теперь вы можете видеть, что ваши устройства перечислены правильно без проблем

0
ответ дан 25 May 2018 в 02:09

Ответ на эту проблему можно найти здесь: https://github.com/snowdream/51-android

Как разработчик Android, я предлагаю вам НЕ использовать «sudo» для принудительного использования adb в любом месте. Это не то, что мы должны делать. Правила, политика и ограничения существуют для нашей собственной безопасности.

0
ответ дан 25 May 2018 в 02:09

Другие вопросы по тегам:

Похожие вопросы: