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

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

¿Cómo puedo empezar adbddurante el arranque? Esta es una compilación de depuración de usuario CM 10.2 para i9300 con /default.prop(de 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 sin éxito:

  • Editar /init.rc, comentar la disabledlínea para service adbd.
  • Editar /init.smdk4x12.usb.rc, agregar start adbdal property:sys.usb.config=mtpactivador.
  • Agregar persist.sys.usb.config=adba/default.prop
¿alguien consiguió que esto funcione? tengo un nexus 10 y estoy tratando de mantener la depuración usb después de reiniciar el dispositivo, pero solicita la autenticación RSA. como puedo quitar eso Estoy tratando de hacer todo esto sin tocar el dispositivo. como ejecutar una secuencia de comandos para restablecer la tableta, después de su restablecimiento, la depuración de USB aún está habilitada y no aparece ninguna basura emergente de rsa ... así que puedo continuar con la ejecución de mi secuencia de comandos ...

Respuestas (2)

Desde Android 4.2.2, [la depuración 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

Como alternativa, copie ~/.android/adbkey.puben el ramdisk inicial de la imagen de arranque/recuperación en /adb_keys. Esto conserva la característica segura mientras otorga acceso a su 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 (tal vez solo start adbdsea necesaria la parte, solo probé 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, establece:

ro.secure=0

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

En el linaje moderno, esto se hace automáticamente con engversiones variantes, por ejemplo brunch lineage_us996-eng.

¡Use este simple comando para ponerse en marcha sin atascarse!

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

¡En espera de su respuesta!

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.