如何在API 30(Android R)安卓模拟器中编辑hosts文件 解决重启离线黑屏问题
安卓API 30(Android R)模拟器修改hosts文件解决方案
前置要求
- 使用不带Google Play服务的系统镜像,选择Google APIs或纯AOSP类型的API 30镜像即可,Google Play版镜像默认锁定system分区无法修改
- 操作前关闭所有该AVD的运行实例,清除该AVD的现有快照数据
操作步骤
- 进入Android SDK的
emulator目录,执行命令启动模拟器:
emulator -avd [你的模拟器名称] -writable-system -no-snapshot-load
参数说明:-no-snapshot-load用于避免加载过往快照继承只读分区状态
2. 等待模拟器完全加载进入系统桌面后,新开一个命令行窗口,进入Android SDK的platform-tools目录,依次执行如下命令:
adb root adb disable-verity
adb disable-verity是API 28及以上版本修改系统分区的必要操作,用于关闭系统校验,执行后出现重启提示无需理会,不要直接重启设备
3. 再次执行remount操作:
adb remount
- 此时无需重启设备,直接推送本地准备好的hosts文件到系统目录:
adb push [本地hosts文件完整路径] /system/etc/hosts
验证操作
执行以下命令查看hosts文件内容,确认自定义的映射规则已写入即可:
adb shell cat /system/etc/hosts
原操作失败原因说明
- 未执行
adb disable-verity关闭系统分区校验,remount后重启触发校验失败,导致设备黑屏离线 - 方法2中挂载路径错误,
/sys是系统虚拟文件目录,需要挂载的是/system目录 - 未关闭校验的状态下执行remount,实际未获得system分区写入权限,跳过重启推送文件也会失败
内容的提问来源于stack exchange,提问作者Pari Prakash
相关产品推荐
相关产品推荐

