Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2438298 authored by Janis Danisevskis's avatar Janis Danisevskis
Browse files

Document restricted app private file permissions

Make the docs reflect changes in private file access permissions.

Starting with API level 24 app private files are exclusively accessible
to the owning app. Files can no longer be shared by name because apps
cannot relax the files system permissions.

Bug: 27636012
Change-Id: Iac80504b06f6e37ce109222092f77788ed388393
parent 2bd66d68
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -178,6 +178,20 @@ android.content.Context#MODE_APPEND}, {@link
android.content.Context#MODE_WORLD_READABLE}, and {@link
android.content.Context#MODE_WORLD_WRITEABLE}.</p>

<p class="note"><strong>Note:</strong> The constants {@link
android.content.Context#MODE_WORLD_READABLE} and {@link
android.content.Context#MODE_WORLD_WRITEABLE} have been deprecated since API level 17.
Starting from Android N their use will result in a {@link java.lang.SecurityException}
to be thrown.
This means that apps targeting Android N and higher
cannot share private files by name, and attempts to share a "file://" URI will result in a
{@link android.os.FileUriExposedException} to be thrown. If your app needs to share private
files with other apps, it may use a {@link android.support.v4.content.FileProvider} with
the {@link android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION}.
See also <a
href="{@docRoot}training/secure-file-sharing/index.html">Sharing Files</a>.
</p>

<p>To read a file from internal storage:</p>

<ol>
+7 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ The following lists summarize the facts about each storage space.</p>
<p><b>Internal storage:</b></p>
<ul>
<li>It's always available.</li>
<li>Files saved here are accessible by only your app by default.</li>
<li>Files saved here are accessible by only your app.</li>
<li>When the user uninstalls your app, the system removes all your app's files from
internal storage.</li>
</ul>
@@ -83,6 +83,12 @@ place for files that don't require access restrictions and for files that you wa
with other apps or allow the user to access with a computer.</p>
</div>

<p class="note">
<strong>Note:</strong> Before Android N, internal files could be made accessible to other
apps by means of relaxing file system permissions. This is no longer the case. If you wish
to make the content of a private file accessible to other apps, your app may use the
{@link android.support.v4.content.FileProvider}. See <a
href="{@docRoot}training/secure-file-sharing/index.html">Sharing Files</a>.</p>

<p class="note" style="clear:both">
<strong>Tip:</strong> Although apps are installed onto the internal storage by