有时候我们需要使用 Android 模拟器绑定一下 hosts 来实现功能的开发与验证,刚好最近遇到了这样的需求,处理完成,简单记录一下。
替换m1 实现(针对 苹果 M1 芯片才需要处理)
解压,然后将 emulator
和 emulator-check
替换掉这里面的文件 ~/Library/Android/sdk/tools/
(原有的可以备份为 xxx_backup)
查看 avd_id
~/Library/Android/sdk/tools/emulator -list-avds
Pixel6ProAPI33
Pixel_3a_API_33_arm64-v8a
Pixel_6_API_22
Pixel_6_API_28
Pixel_6_Pro_API_23
Pixel_6_Pro_API_30_X86
启动 avd,可写入状态
~/Library/Android/sdk/tools/emulator -avd Pixel_3a_API_33_arm64-v8a -writable-system
新起终端tab 执行
- adb root
- adb remount
- adb push your_hosts_on_mac /etc/hosts
验证ping
假设上面的 hosts 我们新增了 127.0.0.1 www.02405.com
adb shell
ping www.02405.com
PING www.02405.com (127.0.0.1) 56(84) bytes of data.
64 bytes from www.02405.com (127.0.0.1): icmp_seq=1 ttl=64 time=1.55 ms
64 bytes from www.02405.com (127.0.0.1): icmp_seq=2 ttl=64 time=0.180 ms
注意: hosts 修改建议在 mac 上进行处理,然后使用adb push your_hosts_on_mac /etc/hosts
替换手机内的hosts。手机内置的 vi 很弱,可能无法编辑。