仮想/ sdcard /の多くの場所に混乱


46

一部のデバイス(Nexus 4など)には、SDカード用の外部スロットがありません。代わりに、/sdcard/同じ方法で処理されるルートフォルダーがあります。しかし、私はすべて同じファイルを指す他のパスも見つけます-何らかの種類のリダイレクトが行われている必要があります(これはLinuxではシンボリックリンクと呼ばれます)。

これらすべてのパスには同じファイルが含まれています。

/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/

「実際の」パスはどれですか?他のパスはどうですか?それらは何のために使用されますか、なぜ存在するのですか?

回答:


38

推奨講義:4.2で/ sdcard /が/ sdcard / 0 /になったのはなぜですか?

つまり、Jelly Beanで導入されたマルチユーザー機能に関係しています。

  • /storage/emulated/0/:私の知る限り、これは「エミュレートされたMMC」(「所有者部分」)を指します。通常、これは内部のものです。ここで「0」はユーザーを表し、「0」は最初のユーザー、つまりデバイス所有者です。追加のユーザーを作成すると、この数はそれぞれ増加します。
  • /storage/emulated/legacy/前と同様ですが、現在作業中のユーザーの一部を指します(所有者の場合、これはへのシンボリックリンクになります/storage/emulated/0/)。したがって、このパスは、すべてのユーザーを自分の「パーツ」に導く必要があります。
  • /sdcard/Shywimのコメントによると、これはシンボリックリンクです...
    • /mnt/sdcard (Android <4.0)
    • /storage/sdcard0 (Android 4.0以降)
  • /storage/sdcard0/legacyここにはペンダントがないため(以下のコメントを参照)、この場合の「0」はデバイス(カード)自体を識別します。最終的には、OTGを介してカードリーダーを別のSDCardに接続することができますが、これは/storage/sdcard1(そのための証拠ではなく、推測にすぎませんが、良いものと言えます)

/storage/sdcard/legacy同様にあるべきであるという結論に達するかもしれませんが、ありません(コメントを参照)。 0」は常にデバイスのカードスロットにあるため、ここで「レガシーシンボリックリンク」は必要ありません。


ありがとう!いいえ、/storage/sdcard/legacyパスはありません。
トーベンGundtofte-ブルーン

2
奇妙な。しかし、それは本当のSDカードにほとんどアクセス許可がないという事実と関係があるかもしれません(FATファイルシステムがそれらをサポートしていないため)。違いに注意して(/sdcard0//emulated/0)、ここの「0」は、カードリーダーとUSBホストモードを介して複数のSDCardを接続する場合を想定している可能性があります。単なる推測であり、難しい事実ではありませんが、良いことだと思います。
イジー

それに応じて回答が更新されました:)
イジー

2
/sdcard/単にシンボリックリンク/storage/sdcard0/。4.0.0より古いバージョンでは、それは/mnt/sdcard/です。
マチューハーレ

そして、Android 4.0以降で/mnt/sdcard/は、へのシンボリックリンクだと/storage/sdcard0/思いますか?Nexus 4では両方がナビゲート可能であるため
MrWhite

2

少しわかりにくいですが、これらはメモリレイアウトの代替パスです

/ mnt / sdcard0 /(内部仮想SDカード)

より多くのデバイスが接続されている場合は正しい修正を行いますが、名前はデバイスによって異なる場合があります。

例 / mnt / sdcard1 /(SDスロットの物理SDカード)

しかし、USBフラッシュドライブなどの他のデバイスはアダプターと接続することができます

/ mnt / media_rw / usbdisk(android kitkat 4.4以降?)または/ mnt / usbdisk(jellybean 4.1-4.2)


1
はい、命名はデバイス/メーカー/ ROMに依存する場合があります。ただし、通常、/mnt/*これらすべての場合にのみシンボリックリンクです。「実際のマウント」は以下にあり/storageます。)
Izzy

まあ、私もmntの下にシェルフォルダーがあります。デバイスROMを頻繁に切り替えるので、外部SDカードをデフォルトメモリとして使用するROMの場合、シェルフォルダーは内部メモリとして動作し、SDカードを内部メモリとしてスワップしない他のROMの場合、シェルは表示されません絵に。すべてのデータがそのままの状態でフォルダーに残りますが、ローカルファイルマネージャーからはアクセスできません。知りたい、それが正確に何であるか。
Ali_Waris
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.