Как использовать Galaxy Nexus в качестве внешнего накопителя USB?

Я только что получил Galaxy Nexus и узнал, что он не поддерживает режим USB Mass Storage. Он поддерживает только MTP и PTP. Я регулярно использую мой телефон в качестве флэш-накопителя USB на работе, так что это проблема. Я могу передавать файлы туда и обратно с помощью MTP, но Мне нужно редактировать файлы прямо на моем телефоне .

Я бы хотел найти способ продолжить использование телефона в качестве внешнего диска и иметь возможность напрямую обращаться к файлам на моем телефоне, не передавая файлы туда и обратно, но у меня есть несколько ограничений: сеть на моем работа не подключена к Интернету, у нее нет Wi-Fi, а на компьютерах нет Bluetooth, и это не изменится. В идеале мне не нужно было ничего устанавливать на компьютере, но если нет других вариантов, я бы подумал об этом.

Есть ли какие-либо хаки или обходные пути, которые позволят мне использовать мой Galaxy Nexus в качестве внешнего флеш-накопителя так, как я описал?

Могу ли я создать отдельный монтируемый раздел FAT на хранилище телефонов, к которому я могу получить доступ с компьютера под управлением Windows XP, а также через ОС Android, как это возможно с другими устройствами с внешними картами памяти?

Телефон: Это корневой & разблокирован Galaxy Nexus на VZW и в настоящее время работает CM9.

29 голосов | спросил Matt 23 J000000Monday12 2012, 02:02:05

5 ответов


28

Краткий ответ:

В настоящее время вы не можете использовать свое устройство (любое устройство, которое полагается на MTP) для работы в качестве MSC, из-за спецификаций протокола!

развивавших

Как пояснить, Galaxy Nexus использует один массивный раздел для всего устройства, это похоже на то, что: система, данные и SD-карта все вместе.

MTP был выбран для Galaxy Nexus, поскольку он позволяет использовать эту большую область хранения, которая с системной точки зрения обеспечивает лучшую связь с файлами, обеспечивает более безопасную файловую систему и дает меньше проблем для обслуживания.

Почему вы не можете сделать это так, как хотите:

В Galaxy Nexus нет разделенных разделов, только одна большая область хранения. Даже эмулируя файловую систему fat32, все равно нужно было бы переводить между fat32 и ext4 на низком уровне. Это практически невозможно.

Если у Galaxy Nexus был раздел, вы могли бы иметь доступ на уровне блоков и, следовательно, вы могли бы иметь доступ к большому хранилищу.


Длинная скучная версия:


Короткий фон

Mass Storage Class (MSC), обычно известный как USB Mass Storage (UMS) , что все мы привыкли использовать на наших устройствах, это протокол, который позволяет универсальному устройству последовательной шины (USB) стать доступным для главного вычислительного устройства, чтобы обеспечить передачу файлов между ними. В золотые дни нужно было только подключить телефон, нажать «Режим USB» и начать перемещать файлы, редактировать файлы и т. Д.


Протокол передачи мультимедиа (MTP)

Все сильно изменилось, когда мы говорим о новом методе передачи, который используется на вашем устройстве, протокол передачи мультимедиа (MTP):

  

1 Введение см. стр. 15 zip ниже

     

Протокол передачи мультимедиа или протокол MTP - это протокол, предназначенный для обмена информацией с помощью и управления и хранения временных устройств хранения. Он был разработан как расширение для протокола PTP или протокола передачи изображений и предназначено в первую очередь для цифровых фотокамер, портативных медиаплееров и сотовых телефонов.

Несмотря на то, что введение все еще оставляет почву для сомнений, этот протокол был разработан и реализован с очень конкретной целью: облегчить передачу медиафайлов и связанных метаданных между устройствами:

  

1.1 Цель см. стр. 15 zip ниже

     

Основная цель этого протокола - облегчить связь между медиа-устройствами, имеющими переходные возможности подключения и значительную емкость хранилища. Это включает обмен двоичными объектами и перечисление содержимого этого подключенного устройства.


Поддерживаются типы файлов?

На этом этапе мы уже знаем, что это для медиафайлов и устройств на базе мультимедиа, но остается один вопрос, который я видел в комментариях: Можем ли мы копировать файлы, отличные от медиафайлов (аудио /видео)? Да, мы можем:

  

1.3 Объектная модель MTP см. стр. 15 zip ниже

     

Термин «носитель» в «Протоколе передачи мультимедиа» используется для идентификации любых двоичных данных и не ограничивается форматами аудио /видео, к которым он обычно применяется. Некоторые примеры не аудио /видео объектов включают контакты, программы, запланированные события и текстовые файлы.


Как насчет «живого редактирования»?

Ваш вопрос специально касается использования вашего устройства (Galaxy Nexus) в качестве внешнего USB-накопителя. Почему это невозможно? Протокол MTP ограничивает данные для однонаправленной операции, а также объясняет, что память устройства используется компьютером как локальный файл:

  

4.2 Однонаправленный поток данных см. стр. 29 zip ниже

     

Поток данных в MTP всегда однонаправлен. При инициировании операции данные передаются только от Инициатора кОтветчик. При ответе на запрошенную операцию данные передаются только от ответчика к инициатору. Во время фазы обмена двоичными данными данные могут поступать от ответчика к инициатору или от Инициатора к ответчику, но оба они оба. Двунаправленный обмен двоичными данными должен выполняться несколькими операциями.


Преимущества и недостатки

Преимущества

MTP имеет некоторые преимущества с этим, главным образом в отношении безопасности и целостности пользовательских данных:

 Обзор реализации Microsoft MTP

Когда хост-компьютер USB подключил раздел MSC, он предполагает абсолютный контроль над хранилищем, что позволяет, например, файловую систему получить поврежденную или переформатировать в неподдерживаемый тип.

Между тем, MTP преодолевает это, делая блок управляемого хранилища локальным файлом, который может быть написан или прочитан.

Недостатки

MTP не рассматривается как традиционный съемный диск, поэтому для сохранения дня не могут использоваться средства восстановления.

Поддержка все еще продолжается, некоторые операционные системы по-прежнему требуют стороннего программного обеспечения.

Стандарты MTP (как упоминалось ранее) не допускают прямой модификации объектов. Вместо этого модифицированные объекты должны быть полностью перезагружены.


Литература:

Надеюсь, это пояснит, почему MTP хорош (улучшение) , но OTOH bad (пользователю придется менять привычки) .

Вот материал для чтения, который используется для синтеза ответа:

Вышеуказанный ответ заносится в содержание и авторов этих ссылок.

ответил Zuul 27 J000000Friday12 2012, 06:36:14
7

Возможно, можно экспортировать файл с обратной петлей через USB в качестве UMS /MSC.

Вам определенно потребуется:

  • корень
  • поддержка ядра : loopback (/dev /block /loop0) и UMS (/sys /devices /platform /usb_mass_storage /)
  • , чтобы включить /отключить этот или настраиваемый сценарий инициализации, чтобы всегда экспортировать файл изображения
    Вот пример для легкого взломанного приложения, для которого требуется небольшое развитие ... Нужно изменить блок блокировки по умолчанию (/dev /block /mmcblk0pX) в loop0, а затем сначала запустите loop0, а затем постройте. Кроме того, можно было бы установить его на Android-устройство, если оно не экспортировано, например. at /sdcard /fat

Вот короткий тест на моем Galaxy Nexus (в режиме восстановления):

#create a 10mb image file and format it with FAT, name it testFat:
[email protected]:~$ dd if=/dev/zero of=/tmp/fat.img count=10 bs=1M
10+0 records in
10+0 records out
10485760 Bytes (10 MB) copied, 0,00699535 s, 1,5 GB/s
[email protected]:~$ mkfs.vfat -n fatTest /tmp/fat.img 
mkfs.vfat 3.0.9 (31 Jan 2010)
[email protected]:~$ file /tmp/fat.img
/tmp/fat.img: x86 boot sector, [...], label: "fatTest    ", FAT (16 bit)

#Push it to my phone, create loop0 from it and export it via UMS
[email protected]:~$ adb push /tmp/fat.img /sdcard/fat.img
5215 KB/s (10485760 bytes in 1.963s)
[email protected]:~$ adb shell
[email protected] # ls /sys/devices/platform/usb_mass_storage/lun0
file    power   ro      uevent
[email protected] # losetup /dev/block/loop0 /sdcard/fat.img
[email protected] # losetup
/dev/block/loop0: 0 /sdcard/fat.img
[email protected] # echo /dev/block/loop0 > /sys/devices/platform/usb_mass_storage/lun0/file 
[email protected] # exit

#See that it works. Yay!
[email protected]:~$ 
[email protected]:~$ mount
[...]
/dev/sdg on /media/fatTest type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
[email protected]:~$ dmesg
[137805.009285] sd 27:0:0:0: [sdg] 20480 512-byte logical blocks: (10.4 MB/10.0 MiB)
[137805.010024] sd 27:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[137805.013446]  sdg:
[email protected]:~$
ответил ce4 27 J000000Friday12 2012, 16:22:45
3

Это версия TL; DR.

Извините, USB Mass Storage просто невозможно с Galaxy Nexus.

Причиной этого является то, что USB Mass Storage обеспечивает доступ к файловой системе на уровне блока, а для обеспечения целостности файловой системы должен быть эксклюзивный доступ. Именно поэтому Android-телефоны размонтируют SD-карту, и приложения не могут использовать данные на SD-карте, когда телефон находится в режиме USB Mass Storage.

Galaxy Nexus, однако, не имеет SD-карту. Это объемное внутреннее хранилище телефона, к которому обращаются.

MTP (см. превосходное объяснение @ Zuul) оборачивается этим и позволяет обоим телефонам и ПК получать доступ к файлам без блокировки телефона. Нижние стороны - это то, что вы не получаете эксклюзивный доступ на уровне блоков, а поддержка операционной системы для MTP еще не совсем там.

Если это функция, с которой вы просто не можете жить, тогда лучше всего использовать другой телефон. Не случайно, это одна из причин, по которой я избавился от Galaxy Nexus и получил DROID RAZR MAXX.

ответил Michael Hampton 27 J000000Friday12 2012, 07:08:42
1

Похоже, что AOKP JB build 4 имеет

  

"Эмуляция USB-накопителя для определенных устройств (i9 *)"

Я еще не использовал его сам.

ответил Ηλίας 1 +04002012-10-01T03:48:39+04:00312012bEurope/MoscowMon, 01 Oct 2012 03:48:39 +0400 2012, 03:48:39
0

Вы можете отправить это приложение XDA-Developers :

  

Примечание. Это приложение было разработано в первые дни сэндвич-портов для мороженого. На данный момент ни у одного из портов не было встроенной поддержки USB Mass Storage, и это приложение предназначалось как временное решение для использования UMS тем не менее. Таким образом, это приложение не будет интересно для вас, если только ICS или порт JB, который вы используете, по-прежнему не поддерживают UMS. Если это так, сюда приходит помощь:

     

Приложение запускается автоматически после загрузки устройства и автоматически обнаруживает, когда устройство подключается через USB к компьютеру. Затем в панели уведомлений появляется уведомление, и, нажав на уведомление, вы откроете графический интерфейс для включения /выключения USB Mass Storage; просто /почти как оригинальная функция UMS.

Звучит неплохо до сих пор - только ваш Galaxy Nexus явно не указан в списке известных поддерживаемых устройств. Это не обязательно означает, что это не сработает, но на данный момент это неизвестно. Стоит попробовать.

ответил Izzy 30 J000000Monday12 2012, 23:01:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132