Android 禁止使用ipv6 测试

在可以root的系统中输入以下命令禁止ipv6

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6

设备连接wifi或网络,测试:

通过 ADB shell 执行 ip addr show wlan0,查看输出中是否还有 inet6 开头的行。

sss:/ # ip addr show wlan0

28: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 40:45:da:dd:ef:37 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.131/24 brd 192.168.1.255 scope global wlan0

valid_lft forever preferred_lft forever

inet6 fe80::9b0c:5a6e:cd4e:7821/64 scope link stable-privacy

valid_lft forever preferred_lft forever

成功后应该是如下:

sss:/ #ip addr show wlan0

28: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 40:45:da:ba:ca:86 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.107/24 brd 192.168.1.255 scope global wlan0

valid_lft forever preferred_lft forever

使用 ping 命令测试,确保网络访问正常。

使用 adb logcat | grep -i ipv6adb logcat | grep -i reachability 查看是否有相关错误或事件 。

其他方式,可以同时使用

system/core/rootditr/init.rc

#on boot

on property:sys.boot_completed=1

start networkshell

write /proc/sys/net/ipv6/conf/all/disable_ipv6 1

write /proc/sys/net/ipv6/conf/default/disable_ipv6 1

write /proc/sys/net/ipv6/conf/lo/disable_ipv6 1

write /proc/sys/net/ipv6/conf/wlan0/disable_ipv6 1

添加系统属性

PRODUCT_PROPERTY_OVERRIDES += \

net.ipv6.conf.all.disable_ipv6=true \

net.ipv6.conf.default.disable_ipv6=true \

net.ipv6.conf.wlan0.disable_ipv6=true \

ro.product.ethernet.ipv6.default_enable=false \

persist.sys.ethernet.ipv6.enable= false

bionic/libc/dns/net/getaddrinfo.c

query_ipv6 设置为false或者关闭

+++ b/bionic/libc/dns/net/getaddrinfo.c

@@ -1936,7 +1936,7 @@ _dns_getaddrinfo(void *rv, void *cb_data, va_list ap)

query_ipv6 = _have_ipv6(netcontext->app_mark, netcontext->uid);

query_ipv4 = _have_ipv4(netcontext->app_mark, netcontext->uid);

}

  • if (query_ipv6) {
  • /*if (query_ipv6) {

q.qtype = T_AAAA;

if (query_ipv4) {

q.next = &q2;

@@ -1946,7 +1946,8 @@ _dns_getaddrinfo(void *rv, void *cb_data, va_list ap)

q2.answer = buf2->buf;

q2.anslen = sizeof(buf2->buf);

}

  • } else if (query_ipv4) {
  • } else */

  • if (query_ipv4) {

q.qtype = T_A;

} else {

free(buf);

相关推荐
Mr数据杨8 小时前
【Codex】用学生入学评估模块建立新生能力画像
android·java·javascript·django·codex·项目开发
●VON8 小时前
谁小时候不想要一个游戏修改器?我把电脑 Skill 做成了 Android 小助手
android·游戏·电脑
刃神太酷啦9 小时前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb
里欧跑得慢9 小时前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
IT毕设实战小研9 小时前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
雨声不在11 小时前
docker-android Android 16 支持与编译修改
android
天空之城--17 小时前
【无标题】
android
mmsx18 小时前
osmdroid 接入谷歌影像底图:瓦片 URL 拼接与多域名轮询实战
android·osmdroid
ZYJCSZKJ18 小时前
基于大语言模型的地域实体语义增强:生成式引擎优化(GEO)中的多模态内容生成实践
android·人工智能·语言模型
ssshooter18 小时前
Tauri + GitHub Actions 自动化发布 Android APK 技术总结
android·github·android studio