macOS 基于 Android Studio 修改模拟器 Hosts

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

本文介绍了在 macOS 上使用 M 系列芯片的安卓模拟器的方法,包括安装和创建模拟器,修改 Hosts 文件以获取 Root 权限,以及检查和启用 ADB。

🔎

延伸解读

为何要避开 Google Play 镜像

文章强调,若需修改 Hosts 文件,模拟器必须支持 Root 权限。选择 Google Play 的 System Image 会导致模拟器只能以 Readonly 模式启动,无法获取 Root 权限。因此,在创建模拟器时应选择普通镜像,这是后续所有操作的前提。

命令行启动与权限控制

从 Android Studio 启动的模拟器仅有 Readonly 权限,无法修改系统文件。文章指出,必须通过命令行以 Writable 模式启动模拟器,并保持命令行窗口不关闭,否则模拟器会退出。这确保了模拟器具有可写系统分区,为修改 Hosts 奠定基础。

ADB 环境配置要点

文章提醒,ADB 通常随 Android Studio 安装,但需正确配置环境变量。由于作者使用 ZSH,配置文件为 ~/.zshrc,而非 Bash 的 ~/.bash_profile。配置后需重启终端,并通过 adb version 验证。读者应根据自身 Shell 类型调整配置文件。

修改 Hosts 的具体流程

修改 Hosts 需先确认模拟器端口号(如 5554),然后依次执行 adb root、adb -s emulator-5554 remount 和 adb pull 将 hosts 文件拉取到本地。编辑完成后,再通过 adb push 推回模拟器。整个过程需确保模拟器以 Writable 模式运行,且 ADB 连接正常。

❓

Q&A

在 macOS 上使用 M 系列芯片的安卓模拟器,为什么不能选择 Google Play 的 System Image?

因为选择 Google Play 的 System Image 会导致模拟器只能以 Readonly 模式启动,无法获取 Root 权限,从而无法修改 Hosts 文件。

如何以 Writable 模式启动 Android 模拟器?

需要通过命令行启动,命令为:cd ~/Library/Android/sdk/emulator/,然后使用 ./emulator -avd <模拟器名称> -writable-system。注意命令行窗口不能关闭,否则模拟器会退出。

在 macOS 上如何检查 ADB 是否已启用?

在终端中运行 adb version 命令,如果显示版本信息则说明 ADB 已启用。如果未启用,需要配置环境变量,将 Android SDK 的 platform-tools 和 tools 目录添加到 PATH 中。

修改 Android 模拟器 Hosts 文件的具体步骤是什么?

首先通过 adb root 获取 Root 权限,然后使用 adb -s emulator-5554 remount 重新挂载系统分区,接着用 adb pull /system/etc/hosts ~/Desktop/hosts 将 Hosts 文件拉取到本地,修改后再用 adb push 推回模拟器。

如何确认 Android 模拟器的端口号?

通过命令行启动模拟器后,在模拟器的设置界面可以看到端口号(如 5554);或者通过 Android Studio 启动模拟器,也能看到端口号。

在 macOS 上配置 ADB 环境变量时需要注意什么?

需要注意自己使用的 Shell 类型,例如使用 Oh My Zsh 的 ZSH Shell 时,配置文件是 ~/.zshrc,而不是 .bash_profile。配置后需要重启终端或执行 source ~/.zshrc 使配置生效。

🏷️

标签

➡️

继续阅读