sem permissões fastboot - fastboot e adb não funcionam

31

Estou tentando desbloquear meu telefone Moto usando o ADB, mas quando faço fastboot devicesisso, continuo recebendo

no permissions   fastboot

Mesmo sudo fastbootdispositivos não está ajudando

com sudo eu entendo isso sudo: fastboot: command not found

SOCORRO!!

Rupali
fonte

Respostas:

57

Tente usar sudo $(which fastboot)

por exemplo sudo $(which fastboot) devices

Além disso sudo $(which fastboot) oem unlock

Srinivas Gowda
fonte
Isso funcionou!! Obrigado Srinivas ..
Rupali
feliz que pude ajudar :)
Srinivas Gowda
6
Deve haver uma solução melhor, não é seguro e não é uma boa prática apenas executar tudo com permissões de root.
elichai2
O fastboot requer sudo?
IgorGanapolsky
25

Encontre uma solução melhor aqui:
https://stackoverflow.com/a/28127944/1621927

Aqui está o comentário:

Em vez de forçar permissões a sudocada vez que você precisa executar fastboot, você pode corrigir permanentemente o problema:

  1. use lsusbpara identificar o seu dispositivo USB VendorID
  2. configure udevpara definir permissões apropriadas quando o dispositivo estiver conectado
  3. lucro!

Como um bônus - será corrigido adbtambém.

Por exemplo, no meu caso (para 'Megafon SP-A20i'):

$ fastboot devices
no permissions  fastboot
$ sudo fastboot devices
[sudo] password for kaa: 
MedfieldA9055F28    fastboot
$ 

Vamos consertar:

Primeiro, precisamos identificar o dispositivo:

a) procure o número do barramento usb (hack: eu sei que o dispositivo é baseado na Intel)

$ fastboot -l devices
no permissions         fastboot usb:1-1.2
$ lsusb |grep 001 |grep -i intel
Bus 001 Device 044: ID 8087:09ef Intel Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$ 

b) procure outros dispositivos Intel:

$ lsusb |grep 8087
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 044: ID 8087:09ef Intel Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$ 

Os hubs não são definitivamente smartphones, então o USB vendorID de que precisamos é "8087".

Segundo, configure udev(você deve substituir o valor "idVendor" pelo seu):

$ sudo sh -c "echo '# Megafon SP-A20i' >> /etc/udev/rules.d/51-android.rules"
$ sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-android.rules"
$ sudo service udev restart
udev stop/waiting
udev  start/running, process 1821
$ 

Terceiro, reconecte seu dispositivo para permitir udevque ele seja mágico.

Checagem final:

$ fastboot -l devices
MedfieldA9055F28       fastboot usb:1-1.2
$ adb devices
List of devices attached 

$ fastboot reboot
rebooting...

finished. total time: 0.253s
$ sleep 90
$ adb devices
List of devices attached 
MedfieldA9055F28    device

$ 

Voila!

elichai2
fonte
2
Há uma boa lista de IDs de fornecedores Android em wiki.cyanogenmod.org/w/UDEV
Ehtesh Choudhury
3
Há uma lista oficial aqui: developer.android.com/studio/run/device.html
elichai2 19/16
2
Você precisará sudo udevadm triggertambém.
Jonas G. Drange
Considere o modo "0664".
NaXa
11
Essa é a resposta correta. Na verdade, esta é a única resposta. Usar sudonão é uma solução.
Gaurav Gandhi
5

Minha solução

Graças a elichai2 e este link e lista , consegui resolver meu problema de permissão do fastboot.

Eu tenho o Google Nexus 6P, então usei o seguinte para meu ID de fornecedor:

Google - 18d1


51-android.rules

Se você usar o seguinte comando:

sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\" ..."

copie exatamente. Eu já era root e tentei copiar apenas a parte do eco que me deu resultados indesejáveis. Basicamente, ele coloca o \ "no arquivo .rules em vez de interpretar a barra como o caractere de escape.

Sugiro que você use o seguinte se você já criou o arquivo .rules (use sua ID de fornecedor).

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules


Recarregar e disparar Udev

Recarreguei as regras do udev e, em seguida, emiti o comando trigger. Também desconectei e conectei o usb por uma boa medida.

udevadm control --reload
udevadm trigger


Fastboot

Como usuário não privilegiado, executei:

fastboot devices

e funcionou como desejado. Espero que isso possa ser útil ou ajudar qualquer pessoa que tenha problemas com o problema de permissões.

Brandon Authier
fonte
Bom, eu dei o link para a lista em resposta ao meu comentário.
elichai2
udevadmin: comando não encontrado
IgorGanapolsky
11
@IgorG. Peço desculpas por uma resposta tão tardia. Corrigi o erro de digitação acima. Deveria ter sido "udevadm".
precisa
1

Quando preciso enviar alguns comandos usando o fastboot (firmware piscando no dispositivo htc, por exemplo), instalo o fastboot usando o apt

sudo apt install android-tools-fastboot

então quando eu começar a usá-lo primeiro comando é

sudo -s

todos os comandos neste terminal serão executados como comandos de envio raiz, como

fastboot devices
fastboot reboot-bootloader 
fastboot oem rebootRUU 
fastboot flash zip xxxx.zip

não há necessidade de correção ou algo que seja simples, um comando extra antes de iniciá-lo

ahmed.ismael
fonte
-1

Primeiro instale o fastboot no apt:

sudo apt install android-tools-fastboot

Em seguida, execute o fastboot com o sudo:

sudo fastboot

Funciona para mim.

mrroot5
fonte
Fastboot também pode ser obtido a partir SDK, e apenas definir um caminho alias no bashrc
IgorGanapolsky