Comment puis-je activer adbd pendant le démarrage sur Cyanogenmod?

8

Je suis bloqué pendant le processus de démarrage, d'abord avant d'entrer la phrase secrète pour /dataet maintenant sur l'écran PIN SIM. À ce stade, adb est inaccessible (normalement, adbd démarre après le déverrouillage /data, etc.).

Comment puis-je commencer adbdpendant le démarrage? Il s'agit d'une version de CM 10.2 userdebug pour i9300 avec /default.prop(de initrd) contenant:

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

J'ai également essayé ce qui suit en vain:

  • Modifier /init.rc, commenter la disabledligne pour service adbd.
  • Modifier /init.smdk4x12.usb.rc, ajouter start adbdau property:sys.usb.config=mtpdéclencheur.
  • Ajouter persist.sys.usb.config=adbà/default.prop
Lekensteyn
la source
Quelqu'un a-t-il réussi à le faire fonctionner? J'ai un Nexus 10, et j'essaie de maintenir le débogage USB après la réinitialisation de l'appareil, mais il demande l'authentification RSA. comment puis-je supprimer cela? im essayant de faire tout cela sans toucher l'appareil. comme exécuter un script pour réinitialiser la tablette, après sa réinitialisation, le débogage USB est toujours activé et aucune rsa pop up crap..so je peux continuer mon exécution de script ...
dave

Réponses:

5

Depuis Android 4.2.2, [le débogage USB nécessite une authentification], ce qui n'est pas possible au démarrage. Pour désactiver cela, définissez la propriété suivante dans default.prop (à l'intérieur de initrd):

ro.adb.secure=0

Vous pouvez également copier ~/.android/adbkey.pubdans le ramdisk initial de l'image de démarrage / récupération à /adb_keys. Cela préserve la fonctionnalité sécurisée tout en accordant l'accès à votre clé.

Cela active adbd pendant une courte période. Il semble qu'un processus soit en train de se mettre en place sys.usb.config=mtp. Pour contourner cela, j'ai appliqué ce patch (peut-être que seule la start adbdpartie est nécessaire, je n'ai testé que le ci-dessous):

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

Vous ne pourrez pas obtenir root ( su) à travers cela. Pour cela, définissez:

ro.secure=0

La mise à jour du bloc initramfs, du champ d'en-tête initramfs et de l'ID SHA1 (en-tête) du boot.img n'est pas dans la portée de cette réponse.

Lekensteyn
la source
Sur la lignée moderne, cela se fait automatiquement pour vous avec des engversions variantes, par exemple brunch lineage_us996-eng.
phs
0

Utilisez cette simple commande pour démarrer sans vous coincer!

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

En attendant votre réponse!

Maahi
la source
1
Cela ne fonctionnera pas pendant le démarrage (par exemple avant le déverrouillage du cryptage du disque), bien qu'il puisse devenir actif une fois qu'Android commence à démarrer.
Lekensteyn