Est-il possible d'USB tether un appareil android à l'aide de la bad à travers le terminal?
Je suis la mise en place des tests et il aura besoin d'un nombre décent de téléphones usb captif et configuré. J'ai réussi à configurer la façon dont je veux pour une fois qu'ils ont été attachés, cependant il serait assez fastidieux pour attacher les téléphones à travers navigation dans les menus, chaque fois que je les (re)démarrage de mon ordinateur ou de déplacer le test de la banque. Je suis actuellement en utilisant Nexus S téléphones fonctionnant sous cyanogenmod v10.1.0, mais la banque d'essai sera probablement le Samsung Galaxy S4 est peut être mélangé avec les quelques Nexus S téléphones que j'ai sur la main.
Je veux faire un script bash, mais je vais essayer de le faire fonctionner sur la ligne de commande (Ubuntu 13.04) d'abord, afin de supprimer les problèmes qui pourraient venir de l'écriture de scripts. Je devrais être en mesure de gérer de le faire dans un script moi-même, mais si c'est simple de donner une réponse comme script bash, s'il vous plaît. J'ai essayé les bombardements dans l'appareil (adb -s $deviceID shell
) et en cours d'exécution:
setprop sys.usb.config rndis,adb
Vite des coups de pied à me sortir de l'appareil shell et l'appareil n'est plus accessible. Si je lance un adb devices
je voir le téléphone "?????????? Aucune autorisation", à quel point je dois prendre le câble USB, puis branchez-le à nouveau et redémarrez aussi la bad serveur avec adb kill-server
adb start-server
. Cela ne fonctionnera pas parce que je ne peut pas accéder au téléphone pour effectuer les changements de configuration que j'ai besoin.
J'ai googlé autour, mais ont été incapables de trouver quelque chose de fécond. Des suggestions?
OriginalL'auteur turbo | 2013-11-26
Vous devez vous connecter pour publier un commentaire.
Doit avoir root pour modifier les valeurs avec
setprop
, et je suis sur un Mac OS, sans un pilote rndis donc je ne pourrais pas tester votre méthode de partage de connexion USB. Une autre façon, si vous avez le service de connectivité (adb shell service list
):Les commandes suivantes appeler
ConnectivityManager.setUsbTethering(boolean enable)
dans Android 4.3:adb shell su -c service call connectivity 34 i32 1
tourne sur partage de connexion USB.adb shell su -c service call connectivity 34 i32 0
désactive le partage de connexion USB.Pour les autres versions d'Android remplacer
34
avec le suivantsetUsbTethering
codes d'appel par version d'Android:IConnectivityManager.aidl
Pour référence, RNDIS semble être le même que l'USB, mais cela dépend de ce périphérique que vous utilisez. Il a été RNDIS pour le nexus s et USB pour la galaxie s4. Malheureusement je n'ai plus de travail sur ce projet, donc je ne peux pas tester votre solution, mais il semble que cela marcherait si j'ai accepté votre réponse.
Cela ne fonctionne que sur Android 4.3 et 4.4.
OriginalL'auteur PRNDL Development Studios
Pour Android 5.0+ (Sucette Guimauve) utilisation:
adb shell su -c service call connectivity 30 i32 1
pour activer le partage de connexion USB SURadb shell su -c service call connectivity 30 i32 0
pour activer le partage de connexion USB HORSGarder à l'esprit que cela nécessite de la racine.
Utiliser la "liste de services" et "dumpsys de l'activité des services" à la bad pour obtenir une vue d'ensemble des services de votre appareil est conscient. À partir de là, de sa soit Google ou de la navigation par le biais de l' (PSBA) code source, non de ce qui est "officiellement" documenté autant que je sache.
lire stackoverflow.com/q/20227326/1778421
OriginalL'auteur user1972814
Commandes accepté de répondre fonctionne pas sur les biscuits Oreo, parce que maintenant devrait être paramètre supplémentaire
callerPkg
et de s'y mettre certains de texte aléatoire, il fonctionne.int setUsbTethering(boolean enable, String callerPkg);
Donc, pour 8.0 /8.1 Oreo:
service call connectivity 34 i32 1 s16 text
- activer le partage de connexion USB SURservice call connectivity 34 i32 0 s16 text
- activer le partage de connexion USB HORSOriginalL'auteur James Hunt
La
service
méthode n'a pas fonctionné pour moi sur mon appareil Samsung. J'ai compris comment le faire par la configuration de l'interface réseau directement. Voici un script qui met en place une machine Linux et relié par un câble USB enracinée appareil Android pour le partage de connexion USB. Ce n'est pas configurer le DNS ou NAT la mascarade, mais est suffisante pour rendre l'appareil accessible à 192.168.42.129:OriginalL'auteur Vladimir Panteleev
Vous pouvez également écrire un script entrées pour démarrer l'application Paramètres, puis cochez la case, comme dans https://github.com/medvid/android-tether/blob/master/tether#L83.
Voici mon script (à peu près la même que dans le lien, mais légèrement adapté):
Pour Windows, il suffit de remplacer
sleep
avectimeout -t
.Fonctionne très bien pour mon OnePlus 3T fonctionnant sous Android Tarte (9) (avec Google Paramètres de l'application (exécution du Pixel de l'Expérience ROM); ne peut pas vérifier si cela fonctionne avec d'autres Paramètres apps ou pas)
OriginalL'auteur 22samuelk
Pour Fairphone 2 avec Fairphone système Ouvert (la "Android sans Google" version, qui n'est pas installé par défaut), vous devez:
adb shell su -c "service call connectivity 31 i32 1"
adb shell su -c "service call connectivity 31 i32 0"
OriginalL'auteur Jack Miller