¿Cómo puedo habilitar adbd durante el arranque en Cyanogenmod?

8

Estoy atascado durante el proceso de arranque, al principio antes de ingresar la frase de contraseña /datay ahora en la pantalla PIN de SIM. En este punto, adb es inaccesible (normalmente adbd se iniciaría después de desbloquear /data, etc.).

¿Cómo puedo comenzar adbddurante el arranque? Esta es una compilación de depuración de usuario de CM 10.2 para i9300 con /default.prop(desde initrd) que contiene:

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

También he intentado lo siguiente en vano:

  • Editar /init.rc, comentar la disabledlínea para service adbd.
  • Editar /init.smdk4x12.usb.rc, agregar start adbdal property:sys.usb.config=mtpdisparador.
  • Añadir persist.sys.usb.config=adba/default.prop
Lekensteyn
fuente
¿Alguien consiguió que esto funcione? Tengo un nexus 10, y estoy tratando de mantener la depuración de usb después de reiniciar el dispositivo, pero solicita la autenticación RSA. ¿Cómo puedo eliminar eso? Estoy tratando de hacer todo esto sin tocar el dispositivo. como ejecutar un script para reiniciar la tableta, después de su depuración reinicio USB todavía está activado y hay RSA pop-up crap..so puedo continuar mi ejecución del script ...
Dave

Respuestas:

5

Desde Android 4.2.2, [la depuración de USB requiere autenticación], algo que no es posible durante el arranque. Para deshabilitar esto, establezca la siguiente propiedad en default.prop (dentro de initrd):

ro.adb.secure=0

Alternativamente, copie ~/.android/adbkey.puben el disco RAM inicial de la imagen de arranque / recuperación en /adb_keys. Esto preserva la característica segura mientras le otorga acceso clave.

Esto habilita adbd por un corto tiempo. Parece que se está configurando algún proceso sys.usb.config=mtp. Para evitar eso, apliqué este parche (quizás solo la start adbdparte es necesaria, solo he probado lo siguiente):

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

No podrá obtener root ( su) a través de esto. Para eso, establezca:

ro.secure=0

La actualización del bloque initramfs, el campo de encabezado initramfs y la ID SHA1 (encabezado) de boot.img no están en el alcance de esta respuesta.

Lekensteyn
fuente
En el linaje moderno, esto se hace automáticamente con engvariantes de construcción, por ejemplo brunch lineage_us996-eng.
phs
0

¡Usa este simple comando para ponerte en marcha sin atascarte!

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

¡En espera de su respuesta!

Maahi
fuente
1
Esto no funcionará durante el arranque (por ejemplo, antes de que se desbloquee el cifrado del disco), aunque puede activarse una vez que Android comience a iniciarse.
Lekensteyn