SoftAp static server IP(v4) for Android P-T (Xposed)
推荐使用LSPosed指定作用域(已配置推荐作用域)
系统框架
系统框架(一般只钩这个就可以了,勾选Tethering是保险起见)
com.google.android.networkstack.tethering.inprocess
com.android.networkstack.tethering.inprocess
com.google.android.networkstack.tethering
com.android.networkstack.tethering
开启热点后,手机端使用ifconfig命令查看ip(或usb连接电脑后,进入adb shell执行)。或使用其他机器连接热点后,ping 192.168.43.1。
如果插件未生效,作用域可尝试勾选更多包名包含networkstack.tethering的应用。
若仍未生效,请上传设备执行ifconfig的结果,以及/apex/com.android.tethering/priv-app/下的apk到Issues。
网络前缀冲突会导致网络连接失败(Android 10及以下)或仍使用随机IP(Android 11及以上,日志提示isConflictPrefix)。
wifi热点为192.168.43.1,同时提供了192.168.1.1版本(使用43.1连不上的先试试这个)。
支持设置WIFI、USB、蓝牙的热点IP(Android 11及以上)。
| Type | IP |
|---|---|
| WIFI | WIFI_HOST_IFACE_ADDR |
| USB | 192.168.42.1 |
| BlueTooth | 192.168.44.1 |
- 自定义ip
- 自定义生效的网络类型
com.android.server.connectivity.tethering.TetherInterfaceStateMachine的getRandomWifiIPv4Address函数。
TetherInterfaceStateMachine.java#259
private String getRandomWifiIPv4Address()android.net.ip.IpServer的getRandomWifiIPv4Address函数。
private String getRandomWifiIPv4Address()android.net.ip.IpServer的requestIpv4Address函数。
private LinkAddress requestIpv4Address()由于该函数还被用于其他方式的网络共享及更换前缀,所以需要判断网络类型(mInterfaceType == TETHERING_WIFI)和调用者(遍历堆栈查找configureIPv4),最后进行替换。
android.net.ip.IpServer的requestIpv4Address函数。
private LinkAddress requestIpv4Address(final boolean useLastAddress)Hook点同安卓12
private LinkAddress requestIpv4Address(final boolean useLastAddress)