adb a deux mêmes numéros de série lorsqu'il est connecté à deux téléphones intelligents
J'ai deux téléphones intelligents (ZTEV788dsystème Android 2.3.6) connecté à un ordinateur (Unbuntu 11.10) en même temps, l'aide de la commande: adb devices
j'ai obtenu ceci:
List of devices attached
P753A12D device
P753A12D device
Les numéros de série sont les mêmes!
J'ai écrit une application dans le côté de l'ordinateur de communiquer avec ces deux téléphones, par exemple, installer l'application et de pousser les fichiers.
J'ai utilisé ces commandes:
adb -s P753A12D install XXX.apk
adb -s P753A12D push XXX /sdcard
Maintenant ces deux téléphones ont le même n ° de série (P753A12D
), lorsque je lance ces commandes, j'obtiens cette erreur:
error:more than one device
Donc, mes questions sont les suivantes:
- Est-ce normal que les deux téléphones ont le même n ° de série?
- Puis-je changer le n ° de série? si oui, comment?
- Est-il de toute façon d'exécuter ces installer, pousser correctement les commandes, même si le n ° de série sont les mêmes?
BTW, le WiFi/3G, le réseau sera désactivé lorsque je vais exécuter le test.
source d'informationauteur Alen
Vous devez vous connecter pour publier un commentaire.
Aujourd'hui j'ai trouvé une solution facile à ce problème.
Vous obtiendrez la liste des périphériques avec leurs qualificatifs
Ensuite, vous pouvez utiliser des qualificatifs à la place des numéros de série, comme ce
J'ai affronté le même problème. C'est parce que la bad outil utilise les numéros de série pour l'identification des périphériques connectés en usb à la place de leurs chemins d'accès de périphériques (qui sont uniques pour être sûr).
Si vous vous sentez à vous salir les mains, de télécharger de la source Android arbre, aller à
system/core/adb/transport.c
de le changer pour quelque chose comme ça:type
make adb
de haut niveau du chemin d'accès et le tour est joué. Utilisation de dispositifs usb chemins pour l'identification. Maintenant, vous pouvez installer & exécuter tous les appareils à partir d'Eclipse avec un seul clic.si votre appareil est enracinée
essayer de cette façon,
pour modifier le numéro de série de vos appareils , branchez d'abord l'un d'eux à votre pc puis tapez ceci dans cmd
cela montre l'identifiant de votre appareil (numéro de série).
choisir parmi un nouveau nom ,par exemple, NOM1
puis taper cette commande
exit
sortie de la racineexit
la sortie de la coquilleDÉMARRER
maintenant débranchez le câble usb et exécutez ces commandes
connecter votre appareil à nouveau et tapez
maintenant, vous pouvez voir les changements
FIN
remarque : si elle ne fonctionne pas la première fois
débranchez votre téléphone et faire des parties de mon guide de COMMENCER à FIN de nouveau.
1. Est-ce normal que les deux téléphones ont le même numéro de série?
Le but du numéro de série pour identifier de manière unique le dispositif, de sorte qu'ils doivent être différents. Cela étant dit, certains fabricants n'est pas la peine. Il est également possible que le firmware est à rapporter le nombre de manière incorrecte.
https://stackoverflow.com/questions/4636794/strange-output-of-adb-devices?rq=1
Vous pouvez vérifier le numéro de série sur les dispositifs, et de voir si elle correspond à ce
adb
.2. Puis-je modifier le numéro de série? si oui, comment?
Il n'est pas facile, ou méthode cohérente pour cela que je suis au courant. Voici quelques exemples où les autres ont accompli cet exploit (mais je n'ai pas):
xda-developers.com - Changement Wifi , BT , IMEI , le Numéro de Série de tout mtk téléphone android
hugestreet.info - Comment Changer IMEI, ID de l'Appareil de n'Importe quel Appareil Android
3. Est-il possible d'exécuter ces installer, pousser correctement les commandes, même si les numéros de série sont les mêmes?
Il ne devrait pas y avoir de problème d'exécution de commandes si un seul périphérique est connecté à la fois.
La réponse donnée par @mirokropacek fonctionne pour Linux (et probablement aussi en version Mac) mais ne fonctionne pas pour Windows, malheureusement. Cela est dû à la façon dont le
register_usb_transport
fonction est appelée dans Windows. Il s'avère que la devpath paramètre est toujoursNULL
dans Windows. J'avais besoin de gérer la même situation, j'ai donc adapté la solution donnée ci-dessus pour générer aléatoirement un ID de périphérique pour chaque appareil si leserial
paramètre est NULL ou vide (de longueur zéro).Je n'ai pas besoin de vous inquiéter à propos de la différenciation des appareils sur de longues périodes de temps, et de nombreux appareils afin de générer un nombre pseudo-aléatoire pour l'ID de l'appareil avec
rand
puis à l'aidesprintf
pour créer une représentation de chaîne de l'IDENTIFIANT semble être suffisant pour mes besoins, mais YMMV. Il ne génère un code de 4 chiffres hex numéro, mais il fonctionne assez bien pour moi (pour l'instant au moins).Si vous ne souhaitez pas modifier le dispositif lui-même, et/ou qui n'ont pas accès à la racine, et l'appareil a accès au réseau, vous pouvez passer à l'aide de TCP /ip au lieu de l'USB:
adb tcpip 5555
adb connect yourhostname
J'ai fait ce à travers les tunnels SSH où il risquerait de se connecter à localhost, donc tous les périphériques apparaissent comme des 'localhost', ce qui est tout à fait inutile. L'ajout d'hôtes dans /etc/hosts (qui ont tous souligné à localhost) fixe que pour moi.