Подтвердить что ты не робот

Недостаточно разрешений для устройства в Android Studio Workspace, работающем в openSUSE 13.2

У меня есть встроенная Motorola Defy +, работающая с Cyanogenmod v11 custom ROM (ночная сборка), созданная Quarx. Используя Android Studio Workspace, (ASW) v.1.1.0, когда я пытаюсь отлаживать это устройство, я получаю

????????????[null]

указанном в окне "Выбор устройства", с окном "Logcat", отображающим

insufficient permissions for device

Я бы очень хотел использовать это устройство и ПЗУ для целей отладки.

Когда я ввожу lsusb из командной строки, я получаю

Bus 002 Device 002: ID 22b8:431d Motorola PCS

Это правильный идентификатор устройства для блоков Motorola. Я установил 51-android.rules и 71-android.rules в /etc/udev/rules.d/ с правильными идентификаторами Motorola в этих файлах.

Я также попробовал отмену полномочий отладки USB, от параметров разработчика на устройстве, без везения.

Я не пробовал использовать ASW как root, надеясь, что может быть другой вариант; есть?

Обновление: Я смог войти и получить доступ к ADB с помощью

uvachem-gsmith2:/home/greg/Android/Sdk/platform-tools # ./adb

Затем я сделал сервер kill, сделал SU для пользователя root и перезапустил сервер. Затем я попытался подключиться к устройству из Android Studio. Получил сообщение на устройстве о приеме ключа RSA с ПК, сказал "Да", а затем смог развернуть приложение на устройстве. Итак, вернемся к моему первоначальному вопросу. Есть ли другой способ доступа к этому устройству без входа в систему под root? Кажется, что есть проблема с правами на файловую систему телефона, которая предотвращает это...

Обновление # 2 Основная проблема здесь была правкой. Несмотря на то, что запуск ADB с правами root позволит получить доступ к корневому устройству Android, лучшим решением является изменение разрешений в файле udev для этого устройства... сброс 664 на 666 (см. Ответ ниже). Это позволяет ПК получить доступ к файловой системе на устройстве.

4b9b3361

Ответ 1

Изменение разрешений в этой строке из /etc/udev/rules.d/51-android.rules,

#Motorola 
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="plugdev"

в

#Motorola 
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"

разрешает эту проблему таким образом, что НЕ требуется запускать adb как root.

Ответ 2

У меня было это при использовании Linux-машины с Nexus 4 с Android 5.1

Исправить было включение "debug over USB" и "connect as MTP". Противоположное верно при использовании того же устройства и Android Studio и adb на OSX, хотя - чтобы Android Studio распознала телефон, мне нужно отключить "connect as MTP".

Ответ 3

Я нашел простой ответ, который работал для меня:

adb kill-server
sudo adb start-server
sudo adb devices

Тогда вы найдете свое устройство. Надеюсь это поможет.

Ссылка: http://itsfoss.com/fix-error-insufficient-permissions-device/

Ответ 4

Это просто. Просто измените свой режим USB на режим передачи файлов, и он заработает.

Ответ 5

MTP больше не доступен. На моем андроиде 8 опция "Передача файлов" не работала.

"Передача фотографий PTP" работает, и Studio показала имя устройства.

Шаги на вашем мобильном телефоне

  1. Откройте параметры разработчика
  2. Включить отладку по USB.
  3. изменить USB-соединение на PTP

Шаги в Linux

  1. на консоли запустить sudo usermod -aG plugdev $LOGNAME

Ответ 6

В моем телефоне Symphony W75, в опции USB-подключение к компьютеру → выбор Подключить как медиа-устройство (MTP) решил проблему.

Ответ 7

Я обновил свое устройство (Nvidia Shield), которое ранее нормально подключалось, поэтому я знал, что настройка ПК уже выполнена правильно. Настройки разработчика, кажется, имеют новый макет на Android 7.0.

Он находится в разделе "Настройки"> "Установки"> "Параметры разработчика"> "Сеть"> "Выбор конфигурации USB".

Здесь мне нужно было выбрать PTP, и все снова работает нормально:

Selecting USB configuration mode

Ответ 8

Долго, У меня была та же проблема с планшетом Prestigio PMP5570C,

все, что вам нужно сделать, это подтвердить на планшете, что вы хотите скопировать данные на ваш компьютер (что я забыл), и добавить 2 строки, которые написал @portsample.

Вы можете найти idVendor вашего устройства, набрав

lsusb

в UBUNTU 12.04, вы получите:

Шина 001 Устройство 011: идентификатор 2207: 0010,

где 2207 - ваш идентификатор поставщика. Подвели вопрос и ответ...

Ответ 9

Эта процедура решает проблему для меня:

- On the Android device, drag the top menu and select "USB for file transfer"
- Press "Run" again

Ответ 10

Что за... :) Примечание: я видел это на Android 8.1 на One + 5t...

Даже если мы делаем все вышеперечисленное, необходимо сделать что-то на вашем устройстве Android. Кроме того, чтобы перейти в меню параметров разработчика (отладка usb) (не стесняйтесь сбросить "отменить авторизацию" или что-то вроде этого (я в французская версия ;) )

Если некоторые люди сталкиваются с той же проблемой, что и я, возможно, это может быть полезно и для вас: не забудьте авторизовать устройства в вашем телефоне (каждый раз, когда usb подключается к устройству Android, если вы не устанавливаете флажок всегда). Кроме того, вы можете отключить старые авторизованные устройства на вашем телефоне и начать с правильного параметра, чтобы четко авторизовать ваш компьютер на вашем устройстве Android

Когда вы подключаете устройство Android, всплывающее окно или уведомление запрашивают авторизацию mac-адреса или эквивалентного ему устройства: авторизуйте его, если вы хотите авторизовать соединение между вашим Linux-ПК и вашим устройством Android.

Необходимо получить авторизацию на вашем устройстве Android, когда вы используете подключение USB-кабеля (если вы не принимаете все время, но если это будет впервые, это окно появится на ваших устройствах), если вы этого не сделаете это, устройства adb показывают неавторизованные даже все права хороши (666, UDEV и т.д.)

Примечание: спасибо за вашу драгоценную помощь. Последнее, извините за мой английский

Ответ 11

Для меня и, возможно, для многих других проблема связана с правами доступа к устройствам на машине. Теперь, когда это хорошо документировано в документации по Android, я считаю, что лучшим решением является здесь

В системах на базе Debian вы можете запускать lsusb или dmesg, чтобы получить идентификатор поставщика, если ваш поставщик не существует в указанном списке

Ответ 12

У меня одна и та же проблема, и я решил это Добавление пути к вашему_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

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

Ответ 13

Как сказано в сообщении об ошибке, это проблема с недостаточным разрешением. По моему опыту, это произошло только на моей Linux-машине и хорошо работает на MacOS и Windows. Запуск вашей Android-студии с правами root мог бы избежать этой проблемы.

$sudo /your_android_studio_path/bin/studio.sh

Ответ 14

Я сделал скрипт для этой ошибки. Для меня это нормально работает в Fedora 28, но должно работать во многих дистрибутивах Linux. Просто создайте файл с содержимым самораспакованного скрипта. Я назвал это usbDebbugingAndroidStudio.sh
Дайте ему разрешение на выполнение с помощью: chmod +x usbDebbugingAndroidStudio.sh

И запустите его: sudo./usbDebbugingAndroidStudio.sh

После этого проверьте список, отображаемый командой lsusb, и введите Id вашего устройства. Например: Мой вывод был: Bus 006 Device 002: ID 05c6:9091 Qualcomm, Inc. Поэтому я 05c6 и 05c6 ввод.

Сценарий:

#!/usr/bin/env bash


#This script configure Android Debug Bridge permissions to solve the following
#error: com.android.ddmlib.AdbCommandRejectedException: insufficient permissions for device
#This error is produced when you try to install an APK from Android Studio in your device.
#You can check the vendorId here:
#https://developer.android.com/studio/run/device#setting-up
#If your device brand isn't listed check the info displayed by the command lsusb

lsusb
#My output was:
#Bus 006 Device 002: ID 05c6:9091 Qualcomm, Inc.
#The id for this line is 05c6
echo -n "Enter the id of your mobile device: "
read usbProviderId
cd /etc/udev/rules.d/
sudo touch 51-android.rules
(
sudo cat << _EOF_
SUBSYSTEM=="usb", ATTR{idVendor}=="$usbProviderId", MODE="0666", GROUP="plugdev"
_EOF_
) | sudo tee 51-android.rules

#Give read and write permissions to the file
sudo chmod a+r /etc/udev/rules.d/51-android.rules

#Kill the Android Debug Bridge server to restart it
cd $HOME/Android/Sdk/platform-tools
sudo ./adb kill-server

#If this still doesn't work unplug the usb cable and connect again.
#And repeat the last step Kill the ADB server.

Ответ 15

В моей ситуации:

cd /etc/udev/rules.d/
sudo chmod a+r ./*.rules  #the name of your rules files.

Тогда я могу использовать ADB без этой ошибки.

Ответ 16

Если принятый ответ не сработал, просто выполните следующие шаги: Просто откройте свой Android Studio Terminal: -

adb kill-server

adb start-server

это сработало для меня.

Ответ 17

я получил эту ошибку в Ubuntu 18.6

com.android.ddmlib.AdbCommandRejectedException: недостаточно разрешений для устройства: пользователь в группе plugdev; ваш udev правил неправильно?

просто добавьте android-udev-rules из M0Rf30/android-udev-rules

Ответ 18

  • Включить USB debugging
  • Используйте USB для transer file