Galaxy Nexusを外部USBストレージドライブとして使用するにはどうすればよいですか?


29

Galaxy Nexusを入手したところ、USB大容量ストレージモードをサポートしていないことがわかりました。MTPおよびPTPのみをサポートします。私は定期的に職場でUSBフラッシュドライブとして携帯電話を使用しているため、これは問題です。MTPでファイルをやり取りできますが、電話で直接ファイルを編集する必要があります

電話を引き続き外部ドライブとして使用し、ファイルを前後に転送せずに電話ストレージのファイルに直接アクセスできる方法を見つけたいのですが、いくつかの制約があります:私の職場のネットワークはインターネットに接続され、wifiがなく、コンピューターにBluetoothがないため、これは変更されません。理想的には、コンピューターに何もインストールする必要はありませんが、他にオプションがない場合はこれを検討します。

説明したように、Galaxy Nexusを外部フラッシュドライブとして使用できるようにするハッキングや回避策はありますか?

外部ストレージカードを備えた他のデバイスで可能な方法で、Android OSを介してWindows XPコンピューターからアクセスできる電話ストレージ上に、別個のマウント可能なFATパーティションを作成できますか?

電話: VZW上の根ざしたロック解除されたGalaxy Nexusで、現在CM9を実行しています。


100%確信はありませんが、ストックカーネルではそれができないと思います。そのためにはアフターマーケットカーネルまたはカスタムROMが必要です。G Nexus GSM: Cyanogenmod9の完全な更新ガイド(4.0.4 atm、4.1 CM10はまだ初期段階です)。これも役立つapkです。ルートが必要です。
ce4

おかげで、そのスレッドはこれを除いて有望に見えます。そうでなければ、販売用のGNを手に入れるでしょう。
マット

2
UMSを使用するのに必ずしも別個のSDカード必要とは思わないが、それを動作させるには別個のパーティション(フォーマット済みFAT)必要だと思う。
eldarerathis

1
MTP / PTPが使用に適さない理由を少し拡大する必要があると思います。名前にもかかわらず、MTPはメディアファイルだけでなく、任意のファイルを実際に転送できます。あなたはMTPで行うことができない唯一の操作は、ブロックレベルのアクセス、例えばデフラグ、再フォーマット、パーティションなどを必要とするものである
リー・ライアン

ファイルを転送したくありません。フラッシュドライブのように、携帯電話の場所でファイルを編集します。あなたがmtpでそれができるとは思わない、私は間違っていますか?
マット

回答:


28

短い答え:

現在、プロトコル仕様により、デバイス(MTPに依存するデバイス)を使用してMSCとして機能させることはできません!

精巧な

明確にするために、Galaxy Nexusはデバイス全体に1つの巨大なパーティションを使用します。システム、データ、SDカードはすべて一緒になっていると言っているようなものです。

Galaxy NexusにMTPが選択されたのは、システムの観点から、ファイルとのより良い通信を保証し、より安全なファイルシステムを提供し、メンテナンスの手間を軽減する、この大きなストレージエリアの使用を可能にするためです。

なぜあなたが望むようにできないのか:

Galaxy Nexusには個別のパーティションはなく、1つの大きなストレージエリアしかありません。fat32ファイルシステムをエミュレートする場合でも、fat32とext4を低レベルで変換できる必要があります。これは事実上不可能です。

Galaxy Nexusにパーティションがある場合、ブロックレベルのアクセスが可能になるため、大容量ストレージにアクセスできます。


退屈なバージョン:


短い背景

マスストレージクラス(MSC)、一般的に、我々はすべて私たちのデバイス上で使用するために使用されていることを、USBマスストレージ(UMS)として知っては、ユニバーサルシリアルバス(USB)デバイスがホストコンピューティングデバイスからアクセス可能になるようにするプロトコルであります、2つの間のファイル転送を有効にします。黄金の日には、電話を差し込んで「USBモード」を押し、ファイルの移動、ファイルの編集などを開始する必要がありました...


メディア転送プロトコル(MTP)

お使いのデバイスで使用されている新しい転送方法であるMedia Transfer Protocol(MTP)について話すと、状況は大きく変わりました。

1はじめに 15ページ以下のzipを参照

メディア転送プロトコル(MTP)は、一時ストレージデバイスとのコンテンツ交換およびコマンドと制御のために設計されたプロトコルです。PTP(Picture Transfer Protocol)の拡張機能として開発され、主にデジタルスチルカメラ、ポータブルメディアプレーヤー、携帯電話を対象としています。

導入にはまだ疑問の余地がありますが、このプロトコルは、デバイス間のメディアファイルと関連するメタデータの転送を促進するという非常に具体的な目的で開発および実装されています。

1.1目的 以下の15ページのzipを参照

このプロトコルの主な目的は、一時的な接続と大きなストレージ容量を持つメディアデバイス間の通信を容易にすることです。これには、バイナリオブジェクトの交換と、その接続されたデバイスのコンテンツの列挙が含まれます。


サポートされているファイルの種類は?

この時点で、これがメディアファイルおよびメディアベースのデバイス用であることは既にわかっていますが、コメントで見た質問が1つ残っています。メディアファイル(オーディオ/ビデオ)以外のファイルをコピーできますか?はい、できます:

1.3 MTPオブジェクトモデル は、以下の15ページのzipを参照してください

「メディア転送プロトコル」の「メディア」という用語は、バイナリデータを識別するために使用され、一般に適用されるオーディオ/ビデオ形式に限定されません。非オーディオ/ビデオオブジェクトの例には、連絡先、プログラム、スケジュールされたイベント、およびテキストファイルが含まれます。


「ライブ編集」はどうですか?

あなたの質問は、特に外部USBストレージドライブとしてのデバイス(Galaxy Nexus)の使用に関するものです。なぜできないのですか?MTPプロトコルは、データを単方向操作に制限します。また、後者はデバイスストレージがコンピューターによってローカルファイルとして使用されることを説明しました。

4.2単方向データフロー 29ページのzipを参照

MTPのデータフローは常に単方向です。操作を開始すると、データはイニシエーターからレスポンダーにのみ流れます。要求された操作に応答する場合、データはレスポンダーからイニシエーターにのみ流れます。バイナリデータ交換フェーズでは、データがレスポンダーからイニシエーターに、またはイニシエーターからレスポンダーに流れることがありますが、両方が流れることはありません。双方向のバイナリデータ交換は、複数の操作で実行する必要があります。


利点と欠点

長所

MTPには、主にユーザーデータのセキュリティと整合性に関するいくつかの利点があります。

Microsoft MTP実装の概要

USBホストコンピューターは、MSCパーティションをマウントすると、ストレージの絶対制御を想定し、たとえば、ファイルシステムが破損したり、サポートされていないタイプに再フォーマットしたりすることができます。

一方、MTPは、管理対象ストレージのユニットを書き込みまたは読み取り可能なローカルファイルにすることで、これを克服しています。

欠点

MTPは従来のリムーバブルドライブとして扱われないため、復旧ツールを使用して1日を節約することはできません。

サポートはまだ進行中です。一部のオペレーティングシステムにはサードパーティソフトウェアが必要です。

MTP標準(前述)は、オブジェクトの直接変更を許可していません。代わりに、変更されたオブジェクト全体を再アップロードする必要があります。


参照:

これにより、MTPが優れている(改善)がOTOHが悪い(ユーザーが習慣を変更する必要がある理由が明らかになることを願っています。

答えを合成するために使用される資料は次のとおりです。

上記の回答は、これらの参照リンクの内容と著者に帰属します。


3
mtpの非常に詳細な説明に感謝しますが、mtpを希望どおりに使用できないという事実をすでに受け入れています。私が興味を持っているのは、制限を回避する方法を見つけることです。たとえば、内部ストレージを再パーティション分割して、マウント可能な別のパーティションを作成します。MTPの制限を回避する方法に関する提案はありますか?
マット

@Mattコメントが大きくなりつつあるため、「短い回答」セクションに説明を追加しました。以前に自分自身を明確にしなかった場合は申し訳ありません。
ズールー

情報を追加してくれてありがとう、しかし、私はすでにこれのほとんどを知っていました。私が知りたいのは、他のソリューションがなければ、UMSをサポートする別のFATパーティションで電話を再パーティション化できるかどうかです。もしそうなら、どのように?
マット

彼のコードはソリューションに最も近いものでしたが、詳細な情報と提供されたヘルプに感謝したため、私は最終的にce4に賞金を授与しました。
マット

7

USB経由でループバックされた画像ファイルをUMS / MSCとしてエクスポートできる場合があります。

あなたは間違いなく必要になります:

  • ルート
  • カーネルのサポート:ループバック(/ dev / block / loop0)およびUMS(/ sys / devices / platform / usb_mass_storage /)
  • これを有効/無効にするカスタムアプリまたは常にイメージファイルをエクスポートするカスタムinitスクリプト
    ここに簡単なハッキング可能なアプリの示しますが、少し開発が必要です...デフォルトのブロックデバイス(/ dev / block / mmcblk0pXを変更する必要があります)loop0にループし、事前にloop0をlosetupしてからビルドします。さらに、/ sdcard / fatなど、Androidデバイスがエクスポートされていない場合は、Androidデバイスにマウントすることができます。

Galaxy Nexus(リカバリモード)の簡単なテストを次に示します。

#create a 10mb image file and format it with FAT, name it testFat:
me@workstation:~$ 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
me@workstation:~$ mkfs.vfat -n fatTest /tmp/fat.img 
mkfs.vfat 3.0.9 (31 Jan 2010)
me@workstation:~$ 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
me@workstation:~$ adb push /tmp/fat.img /sdcard/fat.img
5215 KB/s (10485760 bytes in 1.963s)
me@workstation:~$ adb shell
root@android # ls /sys/devices/platform/usb_mass_storage/lun0
file    power   ro      uevent
root@android # losetup /dev/block/loop0 /sdcard/fat.img
root@android # losetup
/dev/block/loop0: 0 /sdcard/fat.img
root@android # echo /dev/block/loop0 > /sys/devices/platform/usb_mass_storage/lun0/file 
root@android # exit

#See that it works. Yay!
me@workstation:~$ 
me@workstation:~$ 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)
me@workstation:~$ 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:
me@workstation:~$

現在、手元にテストデバイス(GNexus)はありません。誰かがとても親切で、UMSがCM9に含まれているかどうかを確認しますか?これが利用可能かどうかを確認してください:/ sys / devices / platform / usb_mass_storage / lun0 / file
ce4

1
初期のCM10は表示されないので、CM9も表示されないと思います。
eldarerathis

@eldarerathis:見てくれてありがとう!別のカーネルにコンパイルされるか、それを自分で有効にする必要があります。
ce4

@ ce4これは有望に見えますが、これを達成する方法を説明する詳細を見てみたいです。電話機のストレージを永続的に再パーティション化しますか、これは別の種類のソリューションですか?ファイルシステムの整合性を構成するなど、この方法には欠点がありますか?
マット

携帯電話をフラッシュドライブとして使用しています。職場の共有コンピューターにプラグインし、ドキュメントを編集して保存します。ファイルをコンピューターに転送してから再び戻すことは、実際にはうまくいきません。少し後でチャットに参加します。
マット

3

これはTL; DRバージョンです。

申し訳ありませんが、USB大容量ストレージはGalaxy Nexusでは不可能です。

これは、USB Mass StorageがPCにファイルシステムへのブロックレベルのアクセスを提供し、ファイルシステムの整合性を維持するために、排他的アクセスでなければならないためです。これが、AndroidスマートフォンがSDカードをアンマウントし、スマートフォンがUSB大容量ストレージモードにある間、アプリがSDカード上のデータを使用できない理由です。

ただし、Galaxy NexusにはSDカードありません。アクセスされるのは、電話の膨大な内部ストレージです。

MTP(@Zuulの優れた説明を参照)はこれを回避し、電話をロックアウトすることなく電話とPCの両方がファイルにアクセスできるようにします。欠点は、排他的なブロックレベルのアクセスが得られないことと、MTPのオペレーティングシステムサポートがまだ十分ではないことです。

これが機能せずに生きていくことができない場合、最善の策は別の電話を使用することです。偶然ではありませんが、これがGalaxy Nexusを取り除き、DROID RAZR MAXXを手に入れた理由の1つです。


1
「これがAndroidスマートフォンがSDカードをアンマウントする理由です...」sd(およびそのための内部ストレージ)をコンピューターとAndroid OSに同時にデュアルマウントできるアプリについてはどうですか?Rezoundにそのようなアプリがあり、それは非常にうまく機能しました。
マット

そのようなアプリは聞いたことがありません。その存在の証拠を得ましたか?
マイケルハンプトン

それは本当に耳障りでした!google.hu/…–
RR

1
そして、データを失ったことはありませんか?あなたはとても幸運です。
マイケルハンプトン

3
はい、それがまさにシステムがそれを最初に許可しない理由です。
マイケルハンプトン

1

と思わAOKP JBビルド4があります。

「特定のデバイス用のUSB大容量ストレージエミュレーション(i9 *)」

私はまだ自分で使っていません。


0

このXDA-Developersアプリを試してみてください:

注:このアプリは、アイスクリームサンドイッチポートの初期に開発されました。現時点では、どのポートもネイティブUSB大容量ストレージをサポートしておらず、このアプリはそれでもUMSを使用するための一時的な回避策として意図されていました。したがって、使用するICSまたはJBポートがUMSをネイティブでサポートしていない限り、このアプリはおもしろくありません。その場合、助けが来ます:

アプリは、デバイスの起動後に自動的に起動し、デバイスがUSB経由でコンピューターに接続されたことを自動的に検出します。次に、通知バーに通知がポップアップ表示されます。通知をタップすると、GUIが開き、USB大容量記憶装置を有効/無効にできます。元のUMS機能とほぼ同じです。

これまでのところ非常に良い音です- サポートされている既知のデバイスのリストに、Galaxy Nexusのみが明示的に記載されていません。これは必ずしも機能しないことを意味するものではありませんが、現時点では不明です。試してみる価値があるはずです。


これについてはすでに説明されています。OPコメントを参照してください。悲しいかな、それは行き止まりでもあります。:(
ce4

あなたが参照するコメントが見つかりませんでしたが、それがすでに既知のオプションである場合、私は謝罪します。そして、「行き止まり」はそれがもはや機能しないことを意味しますか?ああ、次の更新をスキップすると思います;)
Izzy

違反なし!:)「FYI」という意味でした。「ここにapkがあります」とは、XDAリンクと同じスレッドを指します。
ce4

メインのAndroidチャットでそれについてかなり長い会話をしました。十分な長さの歴史があるかどうか分からないのですが、あなたはまだそれにアクセスできるかどうかは、いくつかのより多くの情報を持っている
CE4

情報のおかげで、ce4-残念ながら、私は現在、それをより深く掘り下げる時間を逃しています。MTPは、UMSを完全にオフにするための完全なものではないので、解決策がまだあるはずだと確信しました。そして、ICS上でUMSを再度有効にするスレッドを思い出しました。MTPがすべての人の答えではないように思えるので、うまくいけばすぐに何かが起こることを願っています。
イジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.