(重新)在 Android 模拟器上安装 SD 卡

发布于 2024-08-29 10:34:31 字数 702 浏览 7 评论 0原文

在模拟器上,我可以从“设置”中卸载 SD 卡。

然后我可以将其安装到我的操作系统上,然后正常卸载它。

我无法弄清楚如何在模拟器上重新安装它(无需重新启动它)。

提示:

  • adb 命令 remount 无关:它与 /system 无关;
  • emulator 命令无关:它仅与启动模拟器
  • 在两个地方安装 SD 卡,当然会搞乱一切(我尝试过)

更多:

  • mount 输出以下内容:

    /dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020, codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

  • 在卸载 shell 后,使用与上面相同的选项再次尝试从 shell 挂载,会出现段错误

  • 不知道为什么 block//vold 中的双斜杠,我猜这只是一个拼写错误

On the emulator, I can unmount the SD card from the Settings.

I can then mount it on my OS, then unmount it normally.

I haven't been able to figure out how to re-mount it then on the emulator (without rebooting it).

hints:

  • the adb command remount is unrelated: it's about /system
  • the emulator command is unrelated: it's only about starting the emulator
  • mounting the SD card in two places of course messing everything up (I tried)

more:

  • mount outputs the following:

    /dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

  • trying to mount again from the shell after unmounting it, using the same options as above, gives a segfault

  • no idea why the double slash in block//vold, I guess it's just a typo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一片旧的回忆 2024-09-05 10:34:31

开发人员指南表明这是不可能的:

SD卡模拟

您可以创建一个磁盘映像,然后
在启动时将其加载到模拟器中,以
模拟用户 SD 的存在
设备中的卡。为此,您
可以使用android工具创建一个
带有新 AVD 的新 SD 卡映像,或
您可以使用 mksdcard 实用程序
包含在 SDK 中。

以下部分描述了如何
创建SD卡磁盘镜像,如何
将文件复制到其中,以及如何加载它
启动时在模拟器中。

请注意,您只能加载磁盘映像
在模拟器启动时。同样,你
无法移除模拟 SD 卡
来自正在运行的模拟器。
但是,您
可以浏览、发送文件以及
从模拟 SD 复制/删除文件
使用 adb 或模拟器卡。

模拟器支持模拟SDHC
卡,这样您就可以创建 SD 卡
任何大小的图像,最大可达 128 GB。

虽然 Android 将卸载 SD 卡,但模拟器进程会保持备份文件打开。

$ ls -go /proc/`pidof emulator`/fd | grep sdcard.img
lrwx------ 1 64 2010-05-13 01:50 10 -> /home/x/.android/avd/WithSD.avd/sdcard.img

更熟悉 QEMU 的人可能能够提供进一步的见解,但如果我是你,我会尝试使用 NFS 来解决这个问题。

The developers guide suggests that this isn't possible:

SD Card Emulation

You can create a disk image and then
load it to the emulator at startup, to
simulate the presence of a user's SD
card in the device. To do this, you
can use the android tool to create a
new SD card image with a new AVD, or
you can use the mksdcard utility
included in the SDK.

The sections below describe how to
create an SD card disk image, how to
copy files to it, and how to load it
in the emulator at startup.

Note that you can only load disk image
at emulator startup. Similarly, you
can not remove a simulated SD card
from a running emulator.
However, you
can browse, send files to, and
copy/remove files from a simulated SD
card either with adb or the emulator.

The emulator supports emulated SDHC
cards, so you can create an SD card
image of any size up to 128 gigabytes.

While Android will unmount the SD card, the emulator process keeps the backing file open.

$ ls -go /proc/`pidof emulator`/fd | grep sdcard.img
lrwx------ 1 64 2010-05-13 01:50 10 -> /home/x/.android/avd/WithSD.avd/sdcard.img

Someone more familiar with QEMU may be able to provide further insight but, if I were you, I would just try to use NFS to solve this problem.

荒路情人 2024-09-05 10:34:31

我尝试进入“设置”并卸载 SD 卡,效果很好。尝试一下;重新安装它非常简单。

不过,这似乎不能通过 adb/cli 来完成。

I tried going to Settings and unmounting the SD card and this worked fine. Give it a try; remounting it is quite simple.

Doesn't seem like this can be done via adb/cli though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文