如何挂载Android为光驱?
How to mount Android as CD-ROM?
我有带有自定义 ROM 和内核的 Galaxy S4。我需要将 ISO 映像从 sdcard 挂载到 Windows/Linux PC 作为 CD-ROM。
有一个 "DriveDroid" 应用程序运行良好,但我需要手动完成(作为一项研究)。 Windows 8 写道 "Device needs to be formatted".
代码(bash 脚本)
# Disable USB
echo 0 > /sys/class/android_usb/android0/enable
# Set Vendor and Product IDs
echo 0x04e8 > /sys/class/android_usb/android0/idVendor
echo 0x6860 > /sys/class/android_usb/android0/idProduct
# Set mass_storage mode
echo mass_storage > /sys/class/android_usb/android0/functions
# Enable CD-ROM and make read-only (ERROR HERE!)
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/cdrom
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/ro
# Set path to ISO
echo /mnt/shell/emulated/0/obraz.iso > /sys/class/android_usb/android0/f_mass_storage/lun0/file
# Enable USB
echo 1 > /sys/class/android_usb/android0/enable
但是,cdrom
和 ro
文件仍然设置为 0。我还应该怎么做才能使它们成为“1”?
在将 1 写入 "cdrom" 和 "ro" 之前,我必须清空 "file" 文件。
感谢@FrozenCOW(DriveDroid 开发者)的帮助!
# Clear path to ISO
echo "" > /sys/class/android_usb/android0/f_mass_storage/lun0/file
# Enable CD-ROM and make read-only (ERROR HERE!)
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/cdrom
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/ro
# Set path to ISO
echo /mnt/shell/emulated/0/obraz.iso > /sys/class/android_usb/android0/f_mass_storage/lun0/file
# Disable USB
echo 0 | tee /sys/class/android_usb/android0/enable
# Set Vendor and Product IDs
echo 0x04e8 | tee /sys/class/android_usb/android0/idVendor
echo 0x6860 | tee /sys/class/android_usb/android0/idProduct
# Set mass_storage mode
echo mass_storage | tee /sys/class/android_usb/android0/functions
# Enable CD-ROM and make read-only
echo 1 | tee /sys/class/android_usb/android0/f_mass_storage/lun*/ro
# Set path to ISO
echo | tee /sys/class/android_usb/android0/f_mass_storage/lun*/file
echo <YOUR-IMAGE-FILE-PATH> | tee /sys/class/android_usb/android0/f_mass_storage/lun*/file
# Enable USB
echo 1 | tee /sys/class/android_usb/android0/enable
这是我的 phone 的作品。 (华硕 T00F - android 7.1.2)
我有带有自定义 ROM 和内核的 Galaxy S4。我需要将 ISO 映像从 sdcard 挂载到 Windows/Linux PC 作为 CD-ROM。
有一个 "DriveDroid" 应用程序运行良好,但我需要手动完成(作为一项研究)。 Windows 8 写道 "Device needs to be formatted".
代码(bash 脚本)
# Disable USB
echo 0 > /sys/class/android_usb/android0/enable
# Set Vendor and Product IDs
echo 0x04e8 > /sys/class/android_usb/android0/idVendor
echo 0x6860 > /sys/class/android_usb/android0/idProduct
# Set mass_storage mode
echo mass_storage > /sys/class/android_usb/android0/functions
# Enable CD-ROM and make read-only (ERROR HERE!)
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/cdrom
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/ro
# Set path to ISO
echo /mnt/shell/emulated/0/obraz.iso > /sys/class/android_usb/android0/f_mass_storage/lun0/file
# Enable USB
echo 1 > /sys/class/android_usb/android0/enable
但是,cdrom
和 ro
文件仍然设置为 0。我还应该怎么做才能使它们成为“1”?
在将 1 写入 "cdrom" 和 "ro" 之前,我必须清空 "file" 文件。 感谢@FrozenCOW(DriveDroid 开发者)的帮助!
# Clear path to ISO
echo "" > /sys/class/android_usb/android0/f_mass_storage/lun0/file
# Enable CD-ROM and make read-only (ERROR HERE!)
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/cdrom
echo 1 > /sys/class/android_usb/android0/f_mass_storage/lun0/ro
# Set path to ISO
echo /mnt/shell/emulated/0/obraz.iso > /sys/class/android_usb/android0/f_mass_storage/lun0/file
# Disable USB
echo 0 | tee /sys/class/android_usb/android0/enable
# Set Vendor and Product IDs
echo 0x04e8 | tee /sys/class/android_usb/android0/idVendor
echo 0x6860 | tee /sys/class/android_usb/android0/idProduct
# Set mass_storage mode
echo mass_storage | tee /sys/class/android_usb/android0/functions
# Enable CD-ROM and make read-only
echo 1 | tee /sys/class/android_usb/android0/f_mass_storage/lun*/ro
# Set path to ISO
echo | tee /sys/class/android_usb/android0/f_mass_storage/lun*/file
echo <YOUR-IMAGE-FILE-PATH> | tee /sys/class/android_usb/android0/f_mass_storage/lun*/file
# Enable USB
echo 1 | tee /sys/class/android_usb/android0/enable
这是我的 phone 的作品。 (华硕 T00F - android 7.1.2)