Android ストレージ権限の説明 — Android 10 ~ 14

最終更新 :

Android のストレージ許可モデルは最近のバージョンで大幅に変更されており、更新ごとにファイル マネージャーがアクセスできるものとできないものが変化します。ファイル マネージャーを開いたときに、フォルダーが空だったり、パスにアクセスできなかったり、許可ダイアログが繰り返し表示されたりしたことがある場合は、これらのポリシー変更による影響を実際に経験していることになります。ここでは、各バージョンでの正確な変更点と、ファイルシステムへの完全なアクセスを維持するために AnExplorer を構成する方法を説明します。

簡単な答え

Android 11 以降では、設定 → アプリ → AnExplorer → 権限 → ファイルとメディア → すべてのファイルの管理を許可 に移動します。これにより、完全なブラウジング機能を復元する MANAGE_EXTERNAL_STORAGE 権限が付与されます。これがないと、ファイル マネージャーは他のアプリと同様にサンドボックス化されます。

Android ストレージ許可タイムライン

Android 9 以下 — オープン時代

Android 10 より前は、ストレージはシンプルでした。アプリはインストール時または実行時に READ_EXTERNAL_STORAGE または WRITE_EXTERNAL_STORAGE 権限を要求し、付与されると、共有ストレージ全体 (すべてのフォルダー、すべてのファイル タイプ、すべてのパス) に対する完全な読み取り/書き込みアクセス権を取得します。ファイル マネージャーは、デスクトップ ファイル エクスプローラーが動作すると予想されるのとまったく同じように動作しました。

これは強力ですが、セキュリティ上の懸念が生じました。ストレージ権限を持つアプリは、写真、ドキュメント、ダウンロード、および他のアプリのエクスポートされたファイルを制限なく読み取ることができます。

Android 10 — スコープ指定ストレージの導入 (オプション)

Android 10 ではスコープド ストレージが概念として導入されましたが、開発者がオプトインできるようになりました。API 29 をターゲットとするアプリでは、マニフェストに requestLegacyExternalStorage=true を追加して古い動作を維持できます。ほとんどのファイル マネージャーではこのフラグが使用されていたため、ユーザーには実質的な違いがわかりませんでした。

主な変更点:

  • 「アプリ固有の外部ストレージ」( Android/data/[package]/ ) の概念が正式にサンドボックス化されました
  • MediaStore API がメディア ファイルにアクセスするための推奨方法になりました
  • ドキュメント アクセスにおいてストレージ アクセス フレームワーク (SAF) の重要性が高まっています
  • ファイル パスへの直接アクセスは技術的に非推奨になりましたが、従来のフラグでも引き続き機能しました

AnExplorer ファイルマネージャーを入手

あらゆるデバイスでファイルを管理・転送・アクセス。

アプリを取得

Android 11 — スコープ指定ストレージの強制

Android 11 は限界点でした。requestLegacyExternalStorage フラグは、API 30 以降をターゲットとするアプリでは機能しなくなりました。すべてのアプリがデフォルトでスコープされるようになりました。ただし、Google は、ファイル マネージャー、バックアップ ツール、ウイルス対策アプリには広範なアクセスが本当に必要であることを認識し、新しい権限を作成しました。

MANAGE_EXTERNAL_STORAGE — 「すべてのファイル アクセス」権限。これは次のような特別な権限です。

  • アプリマニフェストで宣言する必要があります
  • 許可するには、ユーザーが手動で設定に移動する必要があります (単純な実行時ダイアログでは許可できません)。
  • Play ストアの審査時に Google に対して正当性を証明する必要があります
  • Android/data/ および Android/obb/ ディレクトリを除くすべての共有ストレージへのアクセスを許可します。

AnExplorer がこの権限を要求すると、すべてのファイルの管理を許可する を切り替えるよう求めるシステム画面が表示されます。これはバグや行き過ぎではありません。これが Android 11 以降でファイル マネージャーが適切に機能する唯一の方法です。

Android 12 — 細かい改良点

Android 12 ではストレージの権限は大幅に変更されませんでしたが、次のことが追加されました。

  • ファイル転送機能に影響を与える近くのデバイスのアクセス許可
  • 写真ピッカーの動作に若干の変更
  • パッケージ可視性ルールの適用の強化 (アプリはクエリを宣言しない限り、他のアプリがインストールされているかどうかを確認できません)

ファイル マネージャー機能に関しては、Android 12 は Android 11 と同様に動作しました。

Android 13 — きめ細かなメディア権限

Android 13 では、古い READ_EXTERNAL_STORAGE が 3 つの個別の権限に分割されました。

  • READ_MEDIA_IMAGES — 写真や画像にアクセスします
  • READ_MEDIA_VIDEO — ビデオ ファイルにアクセスします
  • READ_MEDIA_AUDIO — 音楽ファイルとオーディオ ファイルにアクセスする

アプリは実際に必要なメディア タイプのみを要求するようになりました。音楽プレーヤーは音声のみを要求します。写真編集者は画像のみを要求します。すべてのファイル アクセスを持つファイル マネージャーは、MANAGE_EXTERNAL_STORAGE がすでにすべてをカバーしているため、これらの詳細なアクセス許可を完全にバイパスします。

Android 13 では、ストレージ アクセス フレームワークを介した Android/data/ へのサードパーティのアクセスも完全にブロックされました。以前は、SAF を使用して Android/data/ にフォルダー アクセスを許可できましたが、その回避策は終了しました。

AnExplorer ファイルマネージャーを入手

あらゆるデバイスでファイルを管理・転送・アクセス。

アプリを取得

Android 14 — 選択した写真へのアクセス

Android 14 では、最もユーザーにとって重要な変更が導入されました。アプリが写真へのアクセスをリクエストしたときに、ユーザーはすべてのメディアへのアクセスを許可するのではなく、「写真とビデオを選択」を選択できるようになりました。これはつまり:

  • アプリはユーザーが選択した特定のファイルのみを表示します
  • ユーザーは後で設定で選択を変更できます
  • アプリは部分的なアクセスを適切に処理する必要があります

すべてのファイル アクセスを持つファイル マネージャーの場合、これは適用されません。MANAGE_EXTERNAL_STORAGE は引き続きメディアの完全な可視性を提供します。ただし、すべてのファイル アクセスを許可していない場合は、AnExplorer は明示的に選択したファイルしか表示できない場合があります。

Android 14 では以下も導入されました。

  • 企業管理ファイルへの資格情報ベースのアクセス
  • クラウドプロバイダーの統合によるフォトピッカーの改善
  • バックグラウンドファイルへのアクセスに対するより厳しい制限

ストレージ アクセス フレームワーク (SAF) の仕組み

ファイル マネージャーにすべてのファイル アクセスがない場合、ストレージ アクセス フレームワークがフォールバック メカニズムになります。SAF は、システム レベルのドキュメント ピッカーを通じて機能します。

  1. アプリは ACTION_OPEN_DOCUMENT_TREE を呼び出してフォルダーへのアクセスを要求します
  2. Android にはシステム ファイル ピッカーが表示され、目的のフォルダーに移動します。
  3. 「このフォルダーを使用する」をタップし、「許可」で確定します。
  4. アプリは、その特定のフォルダーとそのすべてのコンテンツに対する永続的な URI 許可を受け取ります。
  5. この付与はアプリの再起動と電話の再起動後も有効です。

SAF の許可は強力ですが、面倒です。各フォルダーを個別に手動で許可する必要があります。AnExplorer は、すべてのファイル アクセスが利用できない場合、または特定の保護されたパスにアクセスする場合に、フォールバックとして SAF を使用します。

SAF の制限事項

  • Android 13 以降では内部ストレージ ルートへのアクセスを許可できません
  • Android 13 以降では Android/data/ にアクセスできません
  • Android 13 以降では Android/obb/ にアクセスできません
  • パフォーマンスは直接ファイル アクセスよりも大幅に遅くなります (操作はコンテンツ プロバイダーを経由します)。
  • 一部の操作 (再帰的なフォルダー操作など) は、SAF を使用すると非常に遅くなります。

アクセスを最大化するための AnExplorer の構成

すべての Android バージョンで最高のエクスペリエンスを実現するには:

  1. すべてのファイルへのアクセスを許可: 設定アプリ → AnExplorer → アクセス許可ファイルとメディアすべてのファイルの管理を許可
  2. 通知権限の付与 (Android 13 以降): 転送の進行状況を表示するために必要です
  3. バッテリーの最適化を無効にする: 設定アプリ → AnExplorer → バッテリー無制限 (OS がバックグラウンド操作を停止するのを防ぎます)
  4. Android/データへの SAF アクセスを許可 (Android 11-12 のみ): AnExplorer が Android/データへのフォルダー アクセスを要求するプロンプトが表示されたら、このフォルダーを使用する許可 をタップします。

AnExplorer ファイルマネージャーを入手

あらゆるデバイスでファイルを管理・転送・アクセス。

アプリを取得

root なしではアクセスできないもの

すべてのファイル アクセスが許可されていても、特定のパスは Android のセキュリティ モデルによってブロックされたままになります。

パスブロックされた理由代替案
/data/data/アプリサンドボックス (カーネル強制)ADB または root アクセス
/data/user/0/上記と同じ、マルチユーザー形式ADB または root アクセス
Android/data/ (Android 13 以降)OS ポリシー ブロックPC、ADB、または root からの USB MTP
Android/obb/ (Android 13 以降)OS ポリシー ブロックPC、ADB、または root からの USB MTP
/system/読み取り専用パーティション再マウントしてルート

権限の問題のトラブルシューティング

すべてのファイル アクセスが許可されているにもかかわらず、「アクセス許可が拒否されました」

  1. AnExplorer を強制停止して、再度開きます
  2. 許可を取り消し、再度許可します。
  3. 「メディアのみ」だけでなく「すべてのファイル」を許可していることを確認してください (一部のデバイスでは両方のオプションが表示されます)。
  4. 携帯電話を再起動します - 一部の権限付与を有効にするには再起動が必要です

数日後に権限がリセットされ続ける

Android 12 以降では、最近 (通常は 3 か月間) 使用していないアプリの権限が自動的に取り消されます。これを防ぐには:

  • 設定 → アプリ → AnExplorer → 権限 → 「アプリが使用されていない場合は権限を削除」をオフにします
  • または、単に AnExplorer を時々開いて、「アクティブ」とみなされるようにします。

権限があるにもかかわらず、アプリに空のフォルダーが表示される

これは通常、アプリがキャッシュされた/古いディレクトリ リストから読み取りを行っていることを示します。プルダウンして更新するか、フォルダーの外に移動してフォルダーに戻ります。問題が解決しない場合は、 AnExplorer のキャッシュをクリアします (設定アプリ → AnExplorer → ストレージキャッシュのクリア)。

関連ガイド

AnExplorer ファイルマネージャーを入手

あらゆるデバイスでファイルを管理・転送・アクセス。

アプリを取得

よくある質問