Как я могу включить adbd во время загрузки Cyanogenmod?

Я застрял во время процесса загрузки, сначала перед вводом парольной фразы, /dataа теперь на экране PIN-кода SIM-карты. На данный момент adb недоступен (обычно adbd запускается после разблокировки и т. д /data.).

Как запустить adbdво время загрузки? Это сборка пользовательской отладки CM 10.2 для i9300, содержащая /default.prop(из initrd):

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

Я также пробовал следующее безрезультатно:

  • Отредактируйте /init.rc, закомментируйте disabledстроку для service adbd.
  • Редактировать /init.smdk4x12.usb.rc, добавить start adbdв property:sys.usb.config=mtpтриггер.
  • Добавить persist.sys.usb.config=adbв/default.prop
кто-нибудь заставил это работать? У меня есть Nexus 10, и я пытаюсь поддерживать отладку USB после сброса устройства, но он запрашивает аутентификацию RSA. как я могу удалить это? Я пытаюсь сделать все это, не касаясь устройства. например, запустить скрипт для перезагрузки планшета, после его сброса отладка по usb все еще включена, и нет всплывающей дерьма rsa ... поэтому я могу продолжить выполнение своего скрипта ...

Ответы (2)

Начиная с Android 4.2.2 [отладка по USB требует аутентификации], что невозможно во время загрузки. Чтобы отключить это, установите следующее свойство в default.prop (внутри initrd):

ro.adb.secure=0

В качестве альтернативы скопируйте ~/.android/adbkey.pubна начальный виртуальный диск образа загрузки/восстановления по адресу /adb_keys. Это сохраняет функцию безопасности при предоставлении доступа к вашему ключу.

Это включает adbd на короткое время. Кажется, что какой-то процесс запускается sys.usb.config=mtp. Чтобы обойти это, я применил этот патч (возможно start adbd, нужна только часть, я протестировал только ниже):

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

Вы не сможете получить root ( su) через это. Для этого установите:

ro.secure=0

Обновление блока initramfs, поля заголовка initramfs и идентификатора SHA1 (заголовка) boot.img не входит в объем этого ответа.

В современной линейке это автоматически делается для вас с engвариантными сборками, например brunch lineage_us996-eng.

Используйте эту простую команду, чтобы начать работу без зависаний!

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

Ждем вашего ответа!

Это не будет работать во время загрузки (например, до того, как шифрование диска будет разблокировано), хотя оно может стать активным при запуске Android.