Ok, inilah yang saya lakukan, tidak ada rooting dari HTC yang diinginkan:
Setup bind9 dan NAT dll ...
catatan: 1: jika Anda hanya melakukan sudo echo 1> / proc / sys / net / ipv4 / ip_forward Anda akan mendapatkan kesalahan izin, jadi inilah skrip untuk proses 2: Anda dapat membuat iptables lebih spesifik tentang bagaimana ia mengerjakan sesuatu dengan menambahkan parameter untuk perangkat tertentu.
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
sekarang tancapkan telepon Anda dan pilih 'akses internet'
tunggu hingga perangkat muncul:
ifconfig
periksa juga di:
arp
Saya menemukan saya harus mencabut perangkat kemudian colokkan lagi untuk muncul di arp, hal-hal tidak berfungsi dengan baik jika arp tidak menunjukkan perangkat.
Perangkat kemudian akan duduk menunggu HTC Sync untuk mengirim pesan sehingga Anda harus mengejek pesan HTC Syncs:
#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
Saya dapat menulis versi ini menggunakan D-Bus sehingga bagian terakhir dijalankan secara otomatis ketika perangkat dicolokkan dll ...
Ok inilah pekerjaan saya yang sedang berjalan, saya tidak dapat menemukan apa pun 'generik' di d-bus jadi saya memilih sedikit solusi hack menggunakan udev .. Ini tidak sempurna, misalnya perintah dijalankan dua kali, jadi saya Saya harus melihat apakah saya bisa memfilter parameter pencocokan sedikit lebih baik, juga menambahkan batas waktu pada skrip terakhir, hanya memetikan dan melihat apakah saya dapat mengganti arp dengan sesuatu yang sedikit lebih baik, katakanlah mencari di / proc
here.s file .rules saya dari /etc/udev/rules.d yang saya buat
cat /etc/udev/rules.d/htc-desire.rules
Anda dapat menyebutnya apa pun yang Anda suka, tetapi JANGAN MULAI DENGAN NOMOR, dengan begitu ia akan menjadi yang terakhir.
Tambahkan berikut ini ke file sebagai sudo menggunakan editor pilihan Anda dll ...
#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
Pada dasarnya, jika Anda tidak melihat 3 r,
sudo chmod a+r /etc/udev/rules.d/htc-desire.rules
Maka Anda akan memerlukan dua file lebih lanjut, satu untuk rantai yang lain, karena RUN dari udev akan memblokir semua yang lain (meskipun itu berjalan terakhir !!) ... hmm ... bagaimanapun:
Saya membuat file di direktori home saya untuk saat ini "/ home / olli /" ... jadi ingatlah untuk mengganti bit '/ home / olli /' dengan dimanapun Anda membuat file:
jadi bagi saya, cd ke direktori home saya.
cd ~
buat file bernama
chain_mock_htc_sync.sh
berisi yang berikut ini:
#!/bin/bash
/home/olli/mock_htc_sync.sh "$1" &
exit
membuatnya bisa dieksekusi
chmod +x chain_mock_htc_sync.sh
buat file lain bernama
mock_htc_sync.sh
containg berikut ini
#!/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
Jadikan itu dapat dieksekusi:
chmod +x mock_htc_sync.sh
Mudah-mudahan saya harus memiliki versi merapikan bagus segera sebagai pos. (mungkin besok).