将 Android 手机模拟器重新路由至本地主机

将 Android 手机模拟器重新路由至本地主机

我需要强制 Android 手机模拟器映射,就像我在/etc/hosts笔记本电脑上配置的那样。因此,我希望每次它尝试访问时my.great-website.local,它都会以我的本地主机为目标,而不是访问互联网。我的笔记本电脑上有一个配置,如果我写入,https://my.great-website.local我就会被重定向到localhost环境。我希望在模拟器上也能有同样的效果,但我发现这很难做到。/etc/hosts模拟器上是否有可访问的文件,我可以尝试将请求重新路由到10.0.2.2IP(开发机器上我的主机环回接口的特殊别名 127.0.0.1)?

编辑:我发现很好的指导关于如何在模拟器中编辑/etc/hosts如下内容(MacOS 特定手册):

Start Emulator
While on${ANDROID_HOME}/emulator:

./emulator -list-avds
./emulator -avd <emulator-name> -writable-system

Define Emulator hosts
While on${ANDROID_HOME}/tools:

adb root
adb remount
adb pull /system/etc/hosts Downloads/hosts
echo ‘10.0.0.1 pretty.url.of.yours\n’ >> Downloads/hosts
adb push Downloads/hosts /system/etc/hosts
adb reboot

不幸的是,我刚刚adb remount收到一个错误Device must be bootloader unlocked

编辑 2:第二个选项是使用已完成此映射的 DNS 运行模拟器:

emulator @Nexus_5X_API_23 -dns-server 192.0.2.0,
192.0.2.255

但不幸的是,当我尝试时dnsmasq,我不断收到一些权限错误:

dnsmasq: failed to create listening socket for 192.168.224.5: Permission denied

如果有人找到一种简单的方法来实现这一点,我将非常感激我的帮助。

相关内容