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)