Saat menghubungkan PC saya ke hotspot Wi-Fi Android, itu menetapkan 192.168.42.x
alamat ke PC saya. Saya benar-benar perlu mengubah ini karena bertentangan dengan salah satu subnet kerja kami - apakah ini mungkin?
27
Saat menghubungkan PC saya ke hotspot Wi-Fi Android, itu menetapkan 192.168.42.x
alamat ke PC saya. Saya benar-benar perlu mengubah ini karena bertentangan dengan salah satu subnet kerja kami - apakah ini mungkin?
Jawaban:
Sayangnya, tidak ada cara untuk mengubah kisaran alamat IP untuk dukungan tethering bawaan, bahkan di CyanogenMod. IP hotspot Wi-Fi hardcoded di android.net.wifi.WifiStateMachine.startTethering () ; USB tethering IP di-hardcode dalam com.android.server.connectivity.Tethering .
Namun, jika ponsel Anda di-rooting, Anda dapat mencoba menggunakan aplikasi pihak ketiga untuk penarikan yang memiliki opsi untuk mengubah rentang alamat IP. Misalnya, ketika tethering USB bawaan rusak di alfa CyanogenMod untuk Samsung Galaxy W, saya menggunakan Wired Tether untuk Pengguna Root , yang memiliki opsi tersebut. Untuk tethering Wi-Fi Anda dapat mencoba aplikasi Wireless Tether for Root Users dari penulis yang sama, yang juga memiliki opsi untuk mengubah kisaran alamat IP.
Karena Google Code dimatikan, tautan di atas tidak lagi berfungsi. Beberapa orang mengekspor kode sumber dari repositori tersebut ke GitHub:
Namun, tidak ada aktivitas pengembangan lebih lanjut, dan aplikasi mungkin tidak lagi berfungsi pada versi Android terbaru.
Untuk berjaga-jaga jika seseorang ingin mencoba aplikasi yang sudah usang itu, saya dapat menemukan beberapa file APK di Google Code Archive :
sumber
Android builtin wifi tethering dirancang untuk menggunakan 192.168.43.1/24 sebagai server, dengan
netd
menangani tethering, menggunakandnsmasq
. Rentang DNS pertama adalah192.168.42.1-254
dan dan rentang DNS kedua adalah192.168.43.1-254
.Netd tidak mudah diubah. Ini membutuhkan soket untuk berkomunikasi dengannya, dan soket itu diambil ketika Android mulai menambatkan. Tetapi melalui file sumber untuk
Tethering.java
(saya menggunakan Froyo) kita melihat:Dan nanti kita melihat rentang yang digunakan, SEBAGAI BACKUPS .
Sumber utama untuk rentang dhcp bukan hardcoded 42 dan 43, tetapi baca dari array.config_tether_dhcp_range, array string internal. Tetapi saat ini kosong.
Anda dapat mengedit kerangka kerja android. Di ponsel saya, itu
/system/framework/framework-res.apk
. Ada banyak tutorial online untuk mengedit framework-res.apk, dari string sederhana hingga tema penuh. Temukan satu untuk ponsel Anda dan versi android.Hal utama yang ingin Anda ubah adalah
/res/values/arrays.xml
Mencari
<array name="config_tether_dhcp_range" />
Mengubah:
kompilasi / zip / tandatangani sesuai kebutuhan (ikuti tutorial), lalu instal ulang.
Jika Anda ingin lebih dari satu rentang, cukup salin dua item berulang-ulang. Anda selalu perlu memberikan awal dan berhenti untuk setiap rentang. Usahakan untuk tetap di / 24 yang sama, yaitu
192.168.50.
5 dan192.168.50.99
atau apa pun. Anda dapat mengonfirmasi bahwa itu berfungsi baikbusybox ps | grep dnsmasq
atau jika Anda tidak memiliki busyboxps dnsmasq
maka gunakan pid dicat /proc/pid/cmdline
. Anda harus mendapatkan (atau serupa):FWIW, tethering WIFI saya menggunakan
dnsmasq
rentang default , namun komputer saya ditugaskan192.168.43.147/24
dan gateway192.168.43.1/24
. Tidak yakin mengapa alamat Anda default ke42.x
alamat.sumber
Saya tahu ini adalah posting lama, tetapi saya pikir saya akan memberikan pembaruan. Tampaknya beberapa produsen dan versi Android sekarang DO memungkinkan untuk perubahan rentang subnet IP untuk server DHCP melalui UI saat menggunakan fitur hotspot WiFi. Di sinilah tempat menemukannya pada HTC One M8 yang menjalankan Android 6.0. YMMV.
Dari layar Hotspot Seluler, klik ikon 3 titik (selengkapnya), pergi ke Tingkat Lanjut, lalu pengaturan LAN. Di bawah "IP Lokal", ubah alamat IP ke IP yang Anda inginkan. Di bawah "DHCP Lokal" ubah IP awal agar cocok dengan subnet alamat IP Anda.
Trent
sumber
CATATAN: Diperlukan root.
Rentang alamat DHCP DHCP adalah hard-coded ( 1 ) , Anda tidak dapat mengubahnya tanpa membangun kembali ROM dengan kode sumber yang dimodifikasi. Atau gunakan sedikit retasan.
Ketika Anda mengaktifkan tethering, apa yang terjadi (setidaknya):
hostapd
- daemon yang mengelola titik akses - dimulai.dnsmasq
- DHCP / DNS server (hingga Pie) - dimulai dengan argumen baris perintah yang dikodekan dengan keras ( 7 ) (yang dapat diatur melalui/etc/dnsmasq.conf
( 8 ) jika tidak).Jadi kita bisa mengganti
/system/bin/dnsmasq
dengan skrip shell khusus, mengendalikan proses di antaranya. Ganti nama biner asli dengan yang lain:Buat skrip
/system/bin/dnsmasq
:Konfirmasikan nama antarmuka Wi-Fi Anda (
wlan0
biasanya). Periksa denganip link
atauls /sys/class/net/
.Juga pastikan tabel routing jaringan lokal Anda adalah
97
:grep local_network /data/misc/net/rt_tables
. Perutean Android berantakan, semakin kompleks dengan setiap rilis baru. Jadi saya tidak yakin apakah ini persisten atau tidak. Juga sebelum melakukan perubahan, periksa kebijakan perutean dan tabel untuk mencari tahu apa yang harus Anda masukkan ke dalam skrip Anda:Aturan SELinux juga perlu didefinisikan jika (semua atau beberapa) belum ditetapkan dan jika statusnya
enforcing
. Gunakan Magisksuploicy
atau alat serupa lainnya sepertisepolicy-inject
:* Tidak terus-menerus di reboot, menggunakan beberapa
init.d
naskah atau mengganti/sepolicy
diramdisk
Tetapkan izin pada file:
Nikmati!
Atau Anda dapat mengatur tethering lengkap dari commandline, menjalankan proses Anda sendiri. Jawaban ini mencakup instruksi, meskipun pertanyaannya berbeda.
TERKAIT:
sumber