5 votes

Comment permettre à adbd d'écouter un port au démarrage sous Android ?

J'ai un HTC Hero enraciné, et ce que je veux faire, c'est activer la fonction adbd. d'écouter un port au démarrage.

J'ai essayé un code que j'ai trouvé aquí :

setprop service.adb.tcp.port 5555
stop adbd
start adbd

dans un shell Android et ça marche très bien.

J'ai essayé de changer le init.rc fichier. J'ai ajouté le code ci-dessus dans init.rc et je l'ai remplacé par le fichier original, grâce à ces commandes :

adb push init.rc sdcard

adb shell
adb su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /
adb cp sdcard/init.rc /

Le fichier est remplacé avec succès, mais lorsque je redémarre mon téléphone et que j'essaie de me connecter à travers :

adb connect <IP>:5555

la connexion n'est pas établie.

Des idées ?

(PS. Je ne veux pas utiliser l'option remoteADB et une commande shell comme am start -n ... )

4voto

Nick Pierpoint Points 7976

La raison pour laquelle il ne fonctionne pas correctement est la suivante :

En init.rc réside dans le RAMDisk attaché à l'image de démarrage.

D'où la init.rc qui a été modifié et poussé à travers est maintenant écrasé par le script de l'image de démarrage lors du redémarrage - les changements sont effectivement perdus !

Vous devez extraire l'image de démarrage, en utilisant chaque image de démarrage a le noyau et le RAMDisk. Les outils disponibles pour faire cela peuvent être trouvés aquí .

Extraction de

En invoquant le script split_bootimg.pl sur une image de démarrage, il recréera ce qui suit :

  • boot.kernel
  • boot.ramdisk.gz

Les deux fichiers sont évidemment explicites. Pour extraire le ramdisk, créez un répertoire appelé RAMDisk et à partir de ce répertoire, invoquez ceci : gzip -dc | cpio -i pour recréer la structure de répertoire utilisée dans le RAMDisk qui est basculé sur le système de fichier actif au démarrage. Le fichier qui contient les informations pertinentes est le suivant init.rc . Vous pouvez maintenant le modifier à votre guise.

Remettre les choses en place

Remontez d'un niveau de répertoire, et faites ceci - mkbootfs ***RAMDisk*** | gzip > my_custom_ramdisk.gz .

Ensuite, pour "attacher" le noyau d'origine à l'image de démarrage, procédez comme suit : mkbootimg -base 0x.... -kernel boot.kernel -ramdisk my_custom_ramdisk.gz -o my_custom_boot.img .

A ce stade, une image d'amorçage a été construite, et cette image d'amorçage doit maintenant être flashée par l'intermédiaire de fastboot flash boot my_custom_boot.img .

TL;DR

Les modifications sont perdues au redémarrage car le script n'est pas correctement édité, ce qui a nécessité d'extraire l'image de démarrage, de la modifier et de la ré-emballer. Une fois le paquetage refait et l'image de démarrage réinitialisée, les changements seront permanents.

Cette opération est effectuée chaque fois que des modifications sont nécessaires.

4voto

J.Jacobs-VP Points 131

Remplacez "service" par "persister" pour le conserver lors du redémarrage :

    setprop persist.adb.tcp.port 5555

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X