Como posso ativar o adbd durante a inicialização no Cyanogenmod?

8

Estou paralisado durante o processo de inicialização, primeiro antes de inserir a senha /datae agora na tela do PIN do SIM. Neste ponto, o adb está inacessível (normalmente o adbd seria iniciado após o desbloqueio /data, etc.).

Como posso iniciar adbddurante a inicialização? Esta é uma compilação de depuração do usuário do CM 10.2 para i9300 com /default.prop(do initrd) contendo:

ro.adb.secure=1
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=1
persist.sys.usb.config=mtp,adb

Eu também tentei o seguinte sem sucesso:

  • Edite /init.rc, comente a disabledlinha para service adbd.
  • Edite /init.smdk4x12.usb.rc, adicione start adbdao property:sys.usb.config=mtpgatilho.
  • Adicionar persist.sys.usb.config=adba/default.prop
Lekensteyn
fonte
alguém fez isso funcionar? Eu tenho um nexus 10 e estou tentando manter a depuração USB após o dispositivo ser redefinido, mas ele pede autenticação RSA. como posso remover isso? estou tentando fazer tudo isso sem tocar no dispositivo. como executar um script para repor o tablet, após a sua redefinição usb depuração ainda está ativado e nenhuma RSA aparecer crap..so eu possa continuar minha execução script ...
dave

Respostas:

5

Desde o Android 4.2.2, [a depuração USB requer autenticação], algo que não é possível durante a inicialização. Para desativar isso, defina a seguinte propriedade em default.prop (dentro do initrd):

ro.adb.secure=0

Como alternativa, copie ~/.android/adbkey.pubno ramdisk inicial da imagem de inicialização / recuperação em /adb_keys. Isso preserva o recurso seguro enquanto concede seu acesso à chave.

Isso permite adbd por um curto período de tempo. Parece que algum processo está se pondo sys.usb.config=mtp. Para contornar isso, apliquei este patch (talvez apenas a start adbdparte seja necessária, testei apenas o abaixo):

--- init.smdk4x12.usb.rc        2013-10-24 18:47:34.894857300 +0200
+++ init.smdk4x12.usb.rc        2013-10-24 18:47:40.775493943 +0200
@@ -12,10 +12,11 @@
 on property:sys.usb.config=mtp
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 04e8
-    write /sys/class/android_usb/android0/idProduct 685c
-    write /sys/class/android_usb/android0/functions ${sys.usb.config}
+    write /sys/class/android_usb/android0/idProduct 6860
+    write /sys/class/android_usb/android0/functions ${sys.usb.config},adb
     write /sys/class/android_usb/android0/enable 1
-    setprop sys.usb.state ${sys.usb.config}
+    start adbd
+    setprop sys.usb.state ${sys.usb.config},adb

 on property:sys.usb.config=mtp,adb
     write /sys/class/android_usb/android0/enable 0

Você não será capaz de obter root ( su) através disso. Para isso, defina:

ro.secure=0

A atualização do bloco initramfs, o campo do cabeçalho initramfs e o ID SHA1 (cabeçalho) do boot.img não estão no escopo desta resposta.

Lekensteyn
fonte
Na linhagem moderna, isso é feito automaticamente para você com engversões variantes, por exemplo brunch lineage_us996-eng.
Phs2
0

Use este comando simples para continuar sem parar!

# setprop persist.sys.usb.config mtp,adb

Aguardando sua resposta!

Maahi
fonte
11
Isso não funcionará durante a inicialização (por exemplo, antes do desbloqueio da criptografia de disco), embora possa se tornar ativo assim que o Android iniciar.
Lekensteyn 03/02