Android 10已root设备通过ADB Shell修改WiFi静态IP的方法求助
Android 10 Root设备通过ADB修改指定WiFi静态IP的有效方法
推荐方法:使用系统cmd wifi命令(与系统设置效果一致)
该方法直接调用系统WiFi服务API修改配置,无需手动编辑文件,可靠性高。
步骤1:获取目标WiFi的networkId
- 确保设备已获取ADB root权限:
adb root adb shell - 执行命令查找目标WiFi的网络ID:
在输出结果中找到dumpsys wifi | grep -A 30 "SSID: \"你的WiFi名称\""networkId字段(例如networkId=5),记录该数值。
步骤2:设置静态IP配置
替换命令中的参数为你的实际配置:
cmd wifi set-network-properties <networkId> ip_config static <IP地址>/<子网前缀> <网关> <DNS1> <DNS2>
示例(networkId=5,IP为192.168.1.100,子网前缀24对应255.255.255.0):
cmd wifi set-network-properties 5 ip_config static 192.168.1.100/24 192.168.1.1 114.114.114.114 8.8.8.8
步骤3:重新连接WiFi使配置生效
cmd wifi disconnect cmd wifi connect "你的WiFi名称"
备选方法:修改WifiConfigStore.xml并重启WiFi服务
若cmd wifi命令不可用,可通过修改系统配置文件实现,需严格遵循格式:
步骤1:停止WiFi服务并挂载/data为可读写
adb root adb shell svc wifi disable mount -o remount,rw /data
步骤2:编辑WifiConfigStore.xml
用文本编辑器打开配置文件:
vi /data/misc/wifi/WifiConfigStore.xml
找到目标WiFi的配置节点,修改<IpAssignment>为STATIC,并添加静态IP配置节点:
<IpAssignment>STATIC</IpAssignment> <StaticIpConfiguration> <IpAddress> <Address>192.168.1.100</Address> <PrefixLength>24</PrefixLength> </IpAddress> <Gateway>192.168.1.1</Gateway> <DnsAddresses> <Address>114.114.114.114</Address> <Address>8.8.8.8</Address> </DnsAddresses> </StaticIpConfiguration>
保存并退出编辑器(vi中按Esc,输入:wq回车)。
步骤3:重启WiFi服务
svc wifi enable
之前方法失效的原因
ifconfig wlan0 [ip]:Android 10已默认弃用ifconfig,且直接修改接口IP会被WiFi服务的自动配置覆盖,无实际效果。ip address add [ip] dev wlan0:仅为网卡添加了额外IP,系统WiFi服务仍使用原DHCP分配的主IP,因此实际网络未切换到新IP。- 修改
WifiConfigStore.xml后未重启WiFi服务:系统内存中仍保留旧配置,重新开启WiFi时会将内存配置写回文件,导致修改被覆盖。
内容的提问来源于stack exchange,提问作者Ux Ou
相关产品推荐
相关产品推荐

