在Android虚拟设备(仿真器)上将所有内容移动到SD卡

时间:2014-04-26 12:13:48

标签: android android-emulator sd-card android-sdcard

我需要做一个奇怪的任务。我想将整个Android系统移动到Android虚拟设备上的外部SD卡。我需要这样做,因为android模拟器,模拟SD命令,仅用于外部卡图像。我想在Android虚拟设备使用期间获取SD命令跟踪。

更确切地说:我想将至少/ system和/ data文件夹移动到外部存储。这样,该系统仍可正常工作=)

谢谢!

1 个答案:

答案 0 :(得分:0)

要将某些系统文件夹(/ system或/ data)移动到外部模拟SD卡,您需要执行以下操作:

  1. 首先,/数据内容(例如)应该放在SD卡上。最初,它们由模拟器从userdata.img文件加载。 因此,您需要将userdata.img ($EMUPATH/system-images/android-19/armeabi-v7a/userdata.img)内容复制到sdcard.iso。 $> dd if=userdata.img of=sdcard.iso
  2. 我假设,创建了android虚拟设备。要更改引导配置,您需要在ramdisk.img上更改fstab.goldfish文件。如果是Android 4.4 AVD,那么ramdisk.img也可以在$EMUPATH/system-images/android-19/armeabi-v7a/找到
    • 创建一个临时文件夹,例如ramdisk-ext $ mkdir ramdisk-ext
    • 将目录更改为ramdisk-ext $ cd ramdisk-ext
    • 解压缩ramdisk-ext文件夹中的ramdisk.cpio $ gunzip -dcv ../ramdisk.img | cpio -idm
    • 以这种方式修改fstab.goldfish $ gedit fstab.goldfish
      • "/dev/block/mtdblock1 /data ...""/dev/block/mmcblk0 /data ..."
      • 的字符串#6
    • 创建新的ramdisk $ find . | cpio -H newc -o | gzip -9 >../ramdisk_new.img
  3. 一切都已完成,现在您需要使用新的ramdisk和自定义SD卡启动模拟器:$ ./emulator -avd $AVDNAME -sdcard sdcard.iso -ramdisk $EMUPATH/system-images/android-19/armeabi-v7a/ramdisk_new.img
  4. P.S。请注意,在此示例中,您只能移动其中一个此类文件夹(/ system或/ data)。也许可以通过创建带有多个分区的SD卡图像来改变它。