android wifi设置dhcp,如何在Android上配置WIFI共享(热点)的DHCP设置?
注意:根是必需的。
默认的DHCP IP地址范围是硬编码的(1),如果不使用修改后的源代码重建ROM,就无法更改它。或使用一点技巧。
开启网络共享时,至少会发生以下情况:
hostapd -管理访问点的守护程序-已启动。
网络接口设置,IP地址被添加到Wi-Fi接口(Android的饼图之前硬编码(2,3),然后随机化(4)),并加入路由表(5)用于本地网络(6)。
dnsmasq-DHCP / DNS服务器(最多Pie)-从硬编码的命令行参数(7)启动(否则可以通过/etc/dnsmasq.conf (8)设置)。
因此,我们可以/system/bin/dnsmasq用一个自定义的shell脚本替换它,从而控制两者之间的过程。将原始二进制文件重命名为其他名称:
# mv /system/bin/dnsmasq /system/bin/dnsmasq.bin
创建脚本/system/bin/dnsmasq:
#!/system/bin/sh
OLD_SUBNET='192.168.43'
NEW_SUBNET='192.168.1'
WIFI_INTERFACE='wlan0'
LOCAL_TABLE='97'
export PATH=/system/bin
# delete old route, add new
ip route del ${OLD_SUBNET}.0/24 dev ${WIFI_INTERFACE} table $LOCAL_TABLE
ip route add ${NEW_SUBNET}.0/24 dev ${WIFI_INTERFACE} table $LOCAL_TABLE
# set new IP address on Wi-Fi interface
ip address add ${NEW_SUBNET}.1/24 dev $WIFI_INTERFACE
# inject new subnet in hard-coded arguments received from netd
set -- $(printf '%s' "$*" | sed 's/'${OLD_SUBNET}'/'${NEW_SUBNET}'/g')
unset OLD_SUBNET NEW_SUBNET WIFI_INTERFACE LOCAL_TABLE
# execute original binary with new arguments
exec dnsmasq.bin $*
确认您的Wi-Fi接口的名称(wlan0通常)。用ip link或检查ls /sys/class/net/。
另外,请确认您的本地网络的路由表是97:grep local_network /data/misc/net/rt_tables。Android的路由非常混乱,每个新版本都变得更加复杂。因此,我不确定这是否一直存在。同样,在进行任何更改之前,请检查您的路由策略和表以弄清楚应在脚本中添加的内容:
~# RULES="$(ip rule | grep -vE 'unreachable|local')"
~# echo "$RULES"
~# for t in $(echo "$RULES" | awk '{print $NF}' | uniq); do ip r s table $t; done
如果(全部或部分)尚未定义并且status为,则还需要定义SELinux规则enforcing。使用Magisk suploicy或其他类似工具sepolicy-inject:
# execute binaries from /system/bin
allow netd system_file dir { read open getattr search }
allow netd system_file file { read gettattr open execute execute_no_trans }
# execute /system/bin/sh
allow netd shell_exec file { read getattr open execute execute_no_trans }
# execute /system/bin/toolbox and its applets
allow netd toolbox_exec file { read gettattr open execute execute_no_trans }
# configure RPDB rules / routing tables
allow netd netd capability { sys_admin }
*重新启动后无法永久使用,使用某些init.d脚本或替换/sepolicy为ramdisk
设置文件权限:
~# chown 0.0 /system/bin/dnsmasq*
~# chmod 0755 /system/bin/dnsmasq*
~# chcon u:object_r:dnsmasq_exec:s0 /system/bin/dnsmasq*
请享用!
或者,您可以从命令行设置完整的网络共享,运行自己的进程。该答案包括说明,尽管问题有所不同。
有关:
android wifi设置dhcp,如何在Android上配置WIFI共享(热点)的DHCP设置?相关推荐
- 如何在Mac上查找WiFi密码并在iPhone上共享它?
MacBooks上的"钥匙串访问"应用程序存储您的个人数据和密码.也可以将其称为macOS密码管理器.每当您在登录网站,电子邮件帐户,网络或任何受密码保护的项目时保存密码时,都可以 ...
- 如何在PyCharm上配置Python解释器,以及解决Windows上PyCharm不能识别C:\Users\Me\AppData路径的问题。
最近遇到这么一个问题.在Windows上安装Python解释器后,我在PyCharm上却不能找到相应的路径.我花了一些时间去解决这个问题,将解决方案记录于此. 1 如何在PyCharm上配置Pytho ...
- 如何在IDEA上配置使用Git
如何在IDEA上配置使用Git 一.IDEA对于Git&GitHub的支持 1.IDEA对GitHub和Git的基本配置 案例演示 首先建立一个演示项目(web项目即可),然后建立一个User ...
- 你们公司还没使用HTTP3?赶紧来补一补,学习一下如何在Nginx上配置HTTP3。
你们公司还没使用HTTP3?赶紧来补一补,学习一下如何在Nginx上配置HTTP3. NGINX最新版本,已提供对 QUIC 和 HTTP/3的支持,本文介绍一下如何安装与配置 很高兴能在一个特殊的开 ...
- 如何在mac上配置Apache服务器
如何在mac上配置Apache服务器 1. 打开终端,开启Apache: //开启apache: sudo apachectl start //重启apache: sudo apachectl r ...
- 阻止android应用调用_如何在Android上设置应用时间限制和阻止应用
阻止android应用调用 Khamosh Pathak Khamosh Pathak Spending way too much time on your Android device? Use a ...
- icloud电脑设置_如何在Android上设置iCloud电子邮件访问
icloud电脑设置 Ben Stockton 本·斯托克顿 If you switch from iPhone to Android, you don't have to ditch iCloud ...
- android studio创建md,如何在Android Studio中设置*md文件打开方式
最近在Android Studio中写一些Demo的时候,会顺便在里面创建一个.md文件用来进行Demo笔记的书写.然而Android Studio不带有markdown预览功能,所以我就琢磨如何在A ...
- android 禁用通知栏_如何在Android上禁用通知
android 禁用通知栏 Notifications are great, and Android's notification system is arguably the best out th ...
最新文章
- Python为图像添加水印(add watermark to an image)
- how fast can we post information from ipad to mac through type c?
- linux键盘设置的文件在哪个文件夹,「正点原子Linux连载」第十五章按键输入试验...
- 【CMS】安装CMS
- 【PAT甲级 排序】1036 Boys vs Girls (25 分) C++
- 【进程】进程通信-信号方式(中断)
- Git 相关使用命令
- java pcm16位_Java – 将16位带符号的pcm音频数据数组转换为双数组
- 1-3-JavaScript技术
- 吃了核辐射食物怎么办_不瞒你说:经常胃酸烧心怎么办?,多吃这些食物,保护胃黏膜远...
- 《Perl语言入门》学习笔记
- 第三方支付3(易宝支付)
- deepin 惠普打印驱动安装
- 漫威女性电影背后所体现出来的性别观念转变
- Java中的一个类怎么调用另一个类中的成员
- SNF开发平台WinForm-EasyQuery统计分析-效果-非常牛逼的报表查询工具
- 基于Android的高校家校互通平台
- Ubuntu 安装 php8.1
- 性能测试中的二八原则
- 【C++】map、set、multimap、multiset的介绍和使用
热门文章
- 乐观锁以及乐观锁的实现
- Nginx正向代理和反向代理详解及其配置
- 公钥加密应用--数字签名
- 汇编 王爽老师实验三,查看psp区
- Macbook 系统偏好设置总喜欢弹出消息气泡数字,尤其是放在苹果Dock栏,有点儿强迫症的小伙伴总想把它消除而避免自己被打搅,然后又无法将其拖走或删除,怎么办呢?【进入终端】
- OPPOA59M_官方线刷包_救砖包_解账户锁
- MSP430F169 Timer_A原理(一)----定时器的四个模式
- 年月日时分秒格式的转换为时间戳。
- mac m2 编译dubbo3.1.x版本报Missing:com.google.protobuf:protoc:exe:osx-aarch_64
- 关于margin: auto及margin: 0 auto的一些见解