I am stuck during the boot process, at first before entering the passphrase for /data and now at the SIM PIN screen. At this point, adb is inaccessible (normally adbd would start up after unlocking /data, etc.).

How can I start adbd during boot? This is a CM 10.2 userdebug build for i9300 with /default.prop (from initrd) containing:


I have also tried the following to no avail:

  • Edit /init.rc, comment out the disabled line for service adbd.
  • Edit /init.smdk4x12.usb.rc, add start adbd to the property:sys.usb.config=mtp trigger.
  • Add persist.sys.usb.config=adb to /default.prop
  • did anyone get this to work? i have a nexus 10, and im trying to maintain usb debugging after device is reset, but it ask for RSA authentication. how can i remove that? im trying to do all this without touching the device. like run a script to reset the tablet, after its reset usb debugging is still enabled and no rsa pop up crap..so i can continue my script execution...
    – dave
    Jun 2 '19 at 16:28

Since Android 4.2.2, [USB debugging requires authentication], something that is not possible during boot. To disable this, set the following property in default.prop (inside initrd):


Alternatively, copy ~/.android/adbkey.pub into the initial ramdisk of the boot/recovery image at /adb_keys. This preserves the secure feature while granting your key access.

This enables adbd for a short time. It seems that some process is setting sys.usb.config=mtp. To work around that, I applied this patch (perhaps only the start adbd part is necessary, I have only tested the below):

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

You won't be able to get root (su) through this. For that, set:


Updating the initramfs block, the initramfs header field and the SHA1 ID (header) of the boot.img is not in the scope of this answer.

  • On modern lineage, this is automatically done for you with eng variant builds e.g. brunch lineage_us996-eng.
    – phs
    Nov 2 '17 at 22:14

Use this simple one command to get going without stuck!

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

Awaiting your response!

  • 1
    This will not work during boot (e.g. before disk encryption is unlocked), though it may become active once Android begins to start.
    – Lekensteyn
    Feb 3 '16 at 19:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.