Ubuntu环境下通过ADB修改Android设备hosts文件失败求助
解决Android生产版无法修改/system/etc/hosts的问题
你的问题核心是生产版Android系统限制了对/system分区的写入权限,且不允许adbd以root身份运行,常规的remount和直接推送方法都无法生效,以下是两个简易解决方法:
方案1:使用无需Root的Hosts代理APP
这是最省心的长期解决方案,不需要折腾ADB命令:
- 选择支持无Root模式的Hosts管理APP(比如「Hosts Go」「AdAway」的无Root版本),这类APP通过系统VPN机制实现DNS拦截,间接应用自定义Hosts规则,不需要修改/system分区。
- 操作步骤:
- 安装APP后,导入你已经修改好的hosts文件
- 授予APP系统VPN权限,启动服务即可生效
方案2:ADB临时绑定Hosts(重启失效)
如果不想用APP,可通过临时挂载的方式让系统读取你修改的hosts文件,重启后会恢复原文件:
- 先把修改好的hosts推送到设备的可写目录:
adb push Documents/hosts /data/local/tmp/hosts - 进入ADB shell,执行绑定命令:
执行完成后,系统会优先读取你绑定的hosts文件,直到手机重启。adb shell mount --bind /data/local/tmp/hosts /system/etc/hosts
注意:Android 10及以上部分设备可能限制
mount --bind操作,此时方案1的APP兼容性更好。
内容的提问来源于stack exchange,提问作者pixis
相关产品推荐
相关产品推荐

