Je voudrais activer le "partage de connexion USB" à partir d'un script bash, est-il donc possible d'exécuter une ligne de commande avec adb shell
pour modifier certains paramètres Android?
Edit1 :
La commande suivante ouvre les paramètres nécessaires mais ne modifie rien seul:
am start -n com.android.settings/.TetherSettings
J'ai trouvé le nom de l'action TetherSettings dans
aapt dump xmltree com.android.settings.apk AndroidManifest.xml | less +/ether
aapt dump xmltree com.android.settings.apk AndroidManifest.xml
mais cela n'a pas fonctionné sur mon téléphone (aapt introuvable). Comment puis-je voir une liste des paramètres disponibles?find / -name 'com.android.settings.apk'
au téléphone, mais rien ne s'est produit :( Pouvez-vous s'il vous plaît me faire savoir où je peux trouver com.android.settings.apk?Réponses:
L'exécution de la commande suivante en tant que root devrait permettre le partage de connexion USB:
service call connectivity 32 i32 1
sur Ice Cream Sandwich (4.0)service call connectivity 33 i32 1
sur Jelly Bean (4.1 à 4.3)service call connectivity 34 i32 1
sur KitKat (4.4)service call connectivity 30 i32 1
sur Lollipop (5.0)service call connectivity 31 i32 1
sur Lollipop (5.1) selon une réponse de Firelordservice call connectivity 30 i32 1
sur Marshmallow (6.0), non testéservice call connectivity 41 i32 1
sur Samsung Marshmallow (6.0)service call connectivity 33 i32 1
sur Nougat (7.0)service call connectivity 39 i32 1
sur Samsung Nougat (7.0)Le premier nombre que vous voyez dans les commandes est le
setUsbTethering()
numéro de la méthodeIConnectivityManager.aidl
(cela dépend de la version d'Android et n'existe pas sur Gingerbread).(Astuce: pour vérifier ce fichier pour une version Android particulière, sélectionnez la branche appropriée.)
Donc, cette commande fait appel
setUsbTethering()
et passe soit 1 (activer le partage de connexion USB) soit 0 (pour le désactiver).Pour plus d'informations, consultez cette question connexe sur le débordement de pile .
Si vous activez le partage de connexion USB dans le cadre d'une configuration de partage de connexion inversée USB, cela
setprop sys.usb.config rndis,adb
devrait être plus que suffisant pourrndis0
configurer l' interface.la source
Il y a une assez mauvaise méthode à l'aide de
adb shell input tap
, obtenir les coordonnées pour activer le partage de connexion et le remplacerOu naviguez pour activer la radio en utilisant
adb shell input keyevent
. Jetez un oeil à,Encore une fois, cela se limite à un appareil particulier.
la source
adb shell "am start -n com.android.settings/.TetherSettings; input keyevent KEYCODE_DPAD_UP; input keyevent KEYCODE_ENTER"
. J'ai trouvé une liste d'événements clés sur SO.Essayez la
setprop
commande ci-dessous:la source
Modifié pour utiliser la commande de délai d'expiration de Windows au lieu de dormir, réveiller d'abord l'écran et n'appuyer qu'une seule fois. Deux fois le partage de connexion Wi-Fi activé sur mon téléphone.
la source
La
service
méthode n'a pas fonctionné pour moi sur mon appareil Samsung. Cependant, j'ai compris comment le faire en configurant directement l'interface réseau. Voici un script qui configure une machine Linux et un appareil Android rooté connecté par USB pour le partage de connexion USB. Cela ne configure pas le masquage DNS ou NAT, mais est suffisant pour rendre le périphérique accessible au 192.168.42.129:Pour activer le transfert (c'est-à-dire se connecter à Internet à partir du PC via le périphérique Android), voir ma question et réponse ici .
la source
ceci est indépendant de l'appareil (bascule le partage de connexion USB)
la source