Ok, voici exactement ce que j'ai fait, aucun enracinement de HTC souhaité:
Configurer bind9 et NAT etc ...
note: 1: si vous faites simplement sudo echo 1> / proc / sys / net / ipv4 / ip_forward, vous obtiendrez une erreur d'autorisation, voici donc un script pour le processus 2: vous pouvez rendre iptables plus spécifique sur la façon dont il fait les choses en ajout de paramètres pour des appareils spécifiques.
cd ~
echo '!/bin/bash
apt-get install bind9
iptables -A POSTROUTING -t nat -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward' > setup_bind9_nat.sh
chmod +x setup_bind9_nat.sh
sudo ./setup_bind9_nat.sh
branchez maintenant votre téléphone et sélectionnez «Internet pass through»
attendez que l'appareil apparaisse dans:
ifconfig
vérifiez qu'il est également dans:
arp
J'ai trouvé que je devais débrancher l'appareil puis le rebrancher pour qu'il apparaisse dans arp, les choses ne fonctionnent pas correctement si arp n'affiche pas l'appareil.
L'appareil attendra alors que HTC Sync lui envoie un message, vous devez donc vous moquer du message HTC Sync:
#change this line to be more specific if you have more than one usb network device
phone_usb_device="usb"
get_ip ()
{
arp -n | grep $phone_usb_device | awk '{print $1}'
}
#TODO: This needs a timeout and loop needs cleaning up, but works fine and borrowed from another post.
echo "waiting for IP on computer usb"
while [[ `get_ip` < 192 ]];do sleep 2; done
phoneip=`get_ip`
echo "IP adress is $phoneip "
echo -n -e "\x00\x02\x00\x00" | nc -q 2 $phoneip 6000 > /dev/null
Je peux écrire une version de ceci en utilisant D-Bus pour que cette dernière partie s'exécute automatiquement lorsque l'appareil est branché, etc.
Ok, voici mon travail en cours, je n'ai rien trouvé de générique sur d-bus donc j'ai opté pour une solution de piratage en utilisant udev .. Ce n'est pas parfait, par exemple la commande est exécutée deux fois, donc j'ai Je vais devoir voir si je peux filtrer un peu mieux les paramètres correspondants, ajouter également un délai d'attente sur le dernier script, juste en cas et voir si je peux remplacer arp par quelque chose de mieux, disons en regardant dans / proc
here.s mon fichier .rules de /etc/udev/rules.d j'ai créé
cat /etc/udev/rules.d/htc-desire.rules
Vous pouvez l'appeler comme vous voulez, mais NE LA COMMENCEZ PAS AVEC UN NUMÉRO, de cette façon, elle s'exécute en dernier.
Ajoutez ce qui suit au fichier en tant que sudo en utilisant un éditeur de votre choix, etc.
#KERNEL=="usb?" or DRIVERS=="usb" not sure which is best, may need extra mode information too from usb device.
SUBSYSTEM=="net", DRIVERS=="usb", ATTRS{manufacturer}=="HTC", ATTRS{idProduct}=="0ffe", RUN+="/home/olli/chain_mock_htc_sync.sh $kernel"
Ubuntu is setup to create the file with the correct permissions already
ls -lrt /etc/udev/rules.d/htc-desire.rules
-rw-r--r-- 1 root root 248 Jun 26 22:09 htc-desire.rules
En gros, si vous ne voyez pas ces 3 'r,
sudo chmod a+r /etc/udev/rules.d/htc-desire.rules
Ensuite, vous aurez besoin de deux autres fichiers, l'un pour enchaîner l'autre, car RUN de udev bloquera tout le reste (même s'il est exécuté en dernier !!) ... hmm ... de toute façon:
J'ai créé les fichiers dans mon répertoire personnel pour l'instant "/ home / olli /" ... alors n'oubliez pas de remplacer le bit '/ home / olli /' par où vous créez les fichiers:
donc pour moi, cd dans mon répertoire personnel.
cd ~
créer un fichier appelé
chain_mock_htc_sync.sh
contenant les éléments suivants:
#!/bin/bash
/home/olli/mock_htc_sync.sh "$1" &
exit
le rendre exécutable
chmod +x chain_mock_htc_sync.sh
créer un autre fichier appelé
mock_htc_sync.sh
contenant les éléments suivants
#!/bin/bash
#change this line to be more specific if you have more than one usb network device
phone_usb_device="$1"
get_ip ()
{
arp -n | grep $phone_usb_device | awk '{print $1}'
}
#TODO: This needs a timeout and loop needs cleaning up, but works fine and borrowed from another post.
echo "waiting for IP on computer $phone_usb_device"
while [[ `get_ip` /dev/null
Rendez-le exécutable:
chmod +x mock_htc_sync.sh
J'espère que je devrais avoir une belle version rangée dès que pos. (probablement demain).