Ok, hier ist genau das, was ich getan habe, kein Rooten von HTC gewünscht:
Setup bind9 und NAT etc ...
Hinweis: 1: Wenn Sie nur sudo echo 1> / proc / sys / net / ipv4 / ip_forward ausführen, erhalten Sie einen Berechtigungsfehler. Hier ist ein Skript für den Prozess 2: Sie können iptables genauer definieren, wie es die Dinge durchführt Hinzufügen von Parametern für bestimmte Geräte.
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
Schließen Sie jetzt Ihr Telefon an und wählen Sie "Internet-Durchgang".
Warten Sie, bis das Gerät in: angezeigt wird.
ifconfig
Überprüfen Sie, ob es sich auch in: befindet.
arp
Ich musste das Gerät ausstecken und wieder einstecken, damit es in arp angezeigt wird. Wenn arp das Gerät nicht anzeigt, funktionieren die Dinge nicht richtig.
Das Gerät wartet darauf, dass HTC Sync ihm eine Nachricht sendet, damit Sie die HTC Syncs-Nachricht verspotten können:
#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
Ich kann eine Version davon mit D-Bus schreiben, so dass der letztere Teil automatisch ausgeführt wird, wenn das Gerät eingesteckt wird usw.
Ok, hier ist meine Arbeit im Gange. Ich konnte auf d-bus nichts 'generisches' finden, also habe ich mich für eine Hack-Lösung mit udev entschieden. Das ist nicht perfekt, zum Beispiel wird der Befehl zweimal ausgeführt, also habe ich mich entschieden Ich muss sehen, ob ich die passenden Parameter ein bisschen besser filtern kann, außerdem eine Zeitüberschreitung für das letzte Skript hinzufügen, einfach einschleichen und sehen, ob ich arp durch etwas Besseres ersetzen kann, z. B. in / proc suchen
Hier ist meine .rules-Datei aus /etc/udev/rules.d, die ich erstellt habe
cat /etc/udev/rules.d/htc-desire.rules
Sie können es so nennen, wie Sie möchten, aber NICHT MIT EINER ZAHL BEGINNEN, damit es als letztes ausgeführt wird.
Fügen Sie der Datei Folgendes als sudo hinzu, indem Sie einen Editor Ihrer Wahl usw. verwenden.
#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
Grundsätzlich, wenn Sie diese 3 'rs nicht sehen,
sudo chmod a+r /etc/udev/rules.d/htc-desire.rules
Dann brauchen Sie zwei weitere Dateien, eine zum Verketten der anderen, da RUN von udev alles andere blockiert (obwohl es zuletzt ausgeführt wird !!) ... hmm ... jedenfalls:
Ich habe die Dateien zunächst in meinem Ausgangsverzeichnis "/ home / olli /" erstellt. Vergessen Sie also nicht, das Bit "/ home / olli /" zu ersetzen, wenn Sie die Dateien erstellen:
also für mich cd in mein heimatverzeichnis.
cd ~
Erstellen Sie eine Datei mit dem Namen
chain_mock_htc_sync.sh
mit folgenden Bestandteilen:
#!/bin/bash
/home/olli/mock_htc_sync.sh "$1" &
exit
mach es ausführbar
chmod +x chain_mock_htc_sync.sh
Erstellen Sie eine andere Datei mit dem Namen
mock_htc_sync.sh
wie folgt
#!/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
Mach es ausführbar:
chmod +x mock_htc_sync.sh
Hoffentlich sollte ich bald eine schön aufgeräumte Version als pos haben. (wahrscheinlich morgen).