안드로이드 기기의 USB 메모리 마운트 위치

안드로이드 기기를 제조하는 많은(공식 넥서스를 제외, 루팅 하면 가능) 제조사에서 기기에 USB를 사용할 수 있도록 제공하고 있다. 이것은 USB OTG라는 USB 확장지원을 안드로이드에서 지원하게 되었고, 이제 OTG 케이블을 안드로이드 기기에 연결하면 USB 메모리, 마우스 등을 사용할 수 있게 된다.

이게 편리하기는 하지만, 막상 USB를 외부 메모리로 사용하려고 하면, 연결한 USB가 어디에 마운트(mount)되어 있는지 명확하지가 않다. /mnt 나 /storage에 마운트 하는 것이 일반적이다. 그래서 USB를 연결한 안드로이드 기기별로 USB 마운트 위치를 찾아보니, 스택오버플로에 테스트해서 정리한 것이 있다. 정리된 내용은 아래와 같다.

/storage/UsbDriveA (all Samsung devices)
/storage/USBstorage1 (LG G4, V10, G3, G2, other LG devices)
/storage/usbdisk (Moto Maxx, Turbo 2, Moto X Pure, other Motorola devices)
/storage/usbotg (Sony Xperia devices, Lenovo Tabs)
/storage/UDiskA (Oppo devices)
/storage/usb-storage (Acer Iconia Tabs)
/storage/usbcard (Dell Venue — Vanilla Android 4.3 tablet)
/storage/usb (HTC One M7, and some Vanilla Android devices)

삼성과 LG를 확인해보니, 삼성은 UsbDriveA, B… F와 같은 형태로 마운트 위치를 제공하고, LG는 USBstorage1, 2… 의 형태로 여러 개의 USB를 대응하고 있다.

혹시, 더 자세한 정보를 가지고 있는 분이 있다면 알려주시면 매우 감사합니다.

4 thoughts on “안드로이드 기기의 USB 메모리 마운트 위치

  1. 자동으로 usb 경로를 얻을 순 없을까요? usb 가 꽂혔을때 이벤트에서 해당 usb 경로의

    파일을 복사해오는걸 구현해야 하는데 경로 구하는데서 막혀버렸습니다 ㅠㅠ

    1. 안녕하세요.
      UsbManager.ACTION_USB_DEVICE_ATTACHED, UsbManager.ACTION_USB_DEVICE_DETACHED 이벤트를 리스닝 하시면 됩니다.
      OTG 라이브러리: https://github.com/magnusja/libaums, 예제: https://github.com/restart365/Android_USB_OTG_Example/blob/master/app/src/main/java/com/zb/usbtest/MainActivity.java, 그리고, USB 기기 확인하는 방법: https://github.com/ShaunZia/Android-USB-DeviceCheck/blob/master/Android-USB-DeviceCheck/src/com/example/androidusbhost/MainActivity.java 정도를 레퍼런스로 개발하시면 원하시는 형태로 개발하실 수 있을 것 같습니다. ^^

      1. 답변 너무 감사드립니다. 결국… proc/mount 정보를 파싱해서 경로를 구했습니다.
        그런데 경로가 /mnt/media_rw/xxxx 처럼 나오는데
        해당 경로의 파일 목록을 읽어오지를 못하네요. 권한 설정도 다 해줬는데 무슨 문제일까요..?? ㅠㅠ

        1. USB OTG의 경우에는 퍼미션이 External Storage와 다릅니다. 제가 코드를 볼 수 없으니.. 답변 드린대로 USB OTG의 라이브러리와 예제를 참고하시면 원하시는 형태로 구현하실 수 있을 겁니다. ^^ 그리고, 일반적인 경우에는 /mnt/media_rw/xxxx 에 read 권한을 가지고 있어서 File로 읽으면 읽어올 건데요.. adb shell로 권한 확인해 보세요 ^^

Leave a Comment

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다