Android Ethernet et Wi-Fi en même temps
J'ai une petite boîte de TV appareil fonctionnant sous Android. Chaque fois que j'évoque l'interface Wi-Fi, l'interface Ethernet est débranché. Si je puis apporter le périphérique Ethernet, l'interface Wi-Fi.
J'ai essayé diverses méthodes, y compris à l'aide de la ligne de commande manuellement afficher les interfaces et le même problème survient.
Je veux être en mesure de se connecter à la connexion Wi-Fi gratuite et d'avoir comme ma passerelle par défaut mais également être connecté au port Ethernet à l'itinéraire certain trafic sur cette interface.
Évidemment, cela est possible de le faire sous Linux, donc il doit y avoir un moyen... quelqu'un sait ce qu'il est c'est-à démolir les interfaces lorsque l'autre est lancé...
OriginalL'auteur user2492861 | 2013-08-09
Vous devez vous connecter pour publier un commentaire.
C'est une restriction dans Android. Il volontairement ne permet qu'une seule connexion à la fois un gestionnaire dans la 'ConnectivityServices.java' fichier qui arrache un "non-choix" réseau lorsqu'un réseau avec une priorité est activée. C'est aussi ce qui apporte de wifi et de larmes vers le bas les connexions de données cellulaires lorsque dans un reconnu hotspot...
Juste au cas où personne n'a jamais besoin de ça, voici ce que j'ai fait :
Télécharger le PSBA code source de la version d'Android sur l'appareil.
Modifier le 'ConnectivityServices.java fichier en conséquence. En gros, j'ai juste commenté de la commande dans la commande de basculement dans le changement de connexion gestionnaire. Je n'ai pas le code source en face de moi, donc moi un message si vous avez besoin de savoir ce que j'ai fait ici...
De toute façon, puis construire le PSBA code source sur votre machine.
Une fois terminé, prenez le 'services.jar' fichier dans le /dexclasses/répertoire qui a été créé.
Extraire à l'aide de WinRAR puis copiez le cours.dex' fichier de la .jar fichier dans un répertoire séparé.
L'utiliser pour extraire les classes.dex : https://code.google.com/p/smali/
Prenez le " ConnectivityServices.smali fichier et de le garder en sécurité.
De l'appareil
Aller sur le périphérique que vous souhaitez activer à la fois les interfaces réseau et copier /system/framework/services.jar fichier sur un PC. Extraire à l'aide de WinRAR puis copiez le cours.dex' fichier de la .jar fichier dans un répertoire séparé.
Utiliser le Java Smali commande pour extraire les classes.dex.
Prendre la ConnectivityServices.smali fichier à partir de l'AFST et le mettre dans le directement vous venez d'extraire à l'aide des classes.dex sur l'appareil. Pourrait être une bonne idée de faire une sauvegarde de l'original ConnectivityServices.smali fichier avant de l'écraser.
Alors simple reconditionner les classes.dex fichier à l'aide de la baksmali de commande.
Copiez les classes.dex fichier dans l'original services.jar fichier à l'aide de winRAR. Encore une fois, faire une sauvegarde de l'original, mais ensuite l'écraser dans le .fichier jar.
Puis il suffit de mettre le nouveau services.jar sauvegarde de fichiers sur le périphérique dans /system/framework/annuaire.
Puis redémarrez - il faudra plus de temps que la normale pour démarrer la première fois.
OriginalL'auteur user2492861
Il y a un moyen plus simple, qui ne vous obligent pas à construire PSBA correspondant à votre appareil. Vous pouvez simplement modifier smali-décompilé le code et le recompiler. Utilisation https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/ConnectivityService.java pour comparizon.
Quelque chose le long de ces lignes:
Modifier/com/android/serveur/ConnectivityService.smali dans handleConnect(), de sorte que ce sera le résultat:
J'ai apporté la modification suivante:
Recompiler, repack, pousser. Puis reboot et test.
une idée de comment faire cela pour Android 5.1?
est-ce possible ici? github.com/CyanogenMod/android_frameworks_base/blob/...
pour Android 6 il semble que services.jar est vide 🙁 toutes les idées où trouver le correctif dans Android 6?
Tant pis, c'était juste un non-ROM deodexed. l'installation de CM13 fixe pour moi.
OriginalL'auteur Jeremitu
Donc, j'ai aussi trouvé comment faire sur CM12.1
Il suffit de changer cette ligne ici
https://github.com/CyanogenMod/android_frameworks_base/blob/e49d5ea0858a765c22d8aa96cc660d4708a413fb/services/core/java/com/android/server/ConnectivityService.java#L4264
ou dans smali remplacer la ligne avant .ligne 4266
avec goto :cond_1b1
OriginalL'auteur Qiong Wu