Android模拟器不挂载外置SD卡

Android emulator does not mount external SD card

我正在尝试在模拟器上 运行 新构建的 Android 图像(使用 Google 源从当前 master 构建的通用 aosp_x86-eng 目标)。模拟器似乎工作正常,除了当 运行 和 -sdcard 选项时它不挂载外部 SD 卡。模拟器版本是来自git的版本。一切都在无头服务器上执行。

我的完整步骤列表:

repo init -u https://android.googlesource.com/platform/manifest
repo sync
. build/envsetup.sh
lunch aosp_x86-eng
make -j16
mksdcard 1G sd.img
emulator -no-window -no-skin -no-audio -sdcard sd.img &
adb shell mount | grep vfat

虚拟设备似乎已正确转发,如 adb shell blkid 的输出所示:

/dev/block/vda1: LABEL="system" UUID="da594c53-9beb-f85c-85c5-cedf76546f7a" TYPE="ext4"
/dev/block/vdb: LABEL="cache" UUID="f73de97f-7017-ca5e-9b47-ca9c8f633e83" TYPE="ext4"
/dev/block/vde1: LABEL="vendor" UUID="6d16bab1-58d9-3c5d-8f14-f608f924affd" TYPE="ext4"
/dev/block/vdf: LABEL="SDCARD" UUID="1CEA-0B06" TYPE="vfat"

但是,它没有被 vold 安装。可能是什么问题?

当我 运行 模拟器使用通过 SDK 管理器下载的 Android 8 个图像时,我也得到了相同的结果。 Android 7, SD卡工作正常

编辑:

解决了 aosp_x86-eng 构建附带的模拟器的问题(参见我自己的回答)。在 Android SDK 的模拟器上,原因可能不同。

事实证明,在我的案例中,无头模式是罪魁祸首。当我使用-no-skin -no-window 选项的运行 模拟器时,未安装SD 卡。如果我删除这些选项(并启用 X11 转发,因为我在无头服务器上工作),一切正常。

我还是想知道为什么我不能在无头模式下使用SD卡,但至少我能够解决所需任务的问题。