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

Commit 6a01faea authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Give installers and apps with "full" access the pass_through view.

This enables the /Android bind-mount to use the sdcardfs "default"
view. Installers can't use that view because they require write access
to the OBB directory.

Bug: 146189163
Test: atest AdoptableHostTest
Change-Id: I9a40f68af10189bfb03a86a1e814638d623c8a2e
parent fc9c3b6d
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -714,8 +714,16 @@ static void MountEmulatedStorage(uid_t uid, jint mount_mode,
  CreateDir(user_source, 0751, AID_ROOT, AID_ROOT, fail_fn);

  if (isFuse) {
    BindMount(mount_mode == MOUNT_EXTERNAL_PASS_THROUGH ? pass_through_source : user_source,
              "/storage", fail_fn);
    if (mount_mode == MOUNT_EXTERNAL_PASS_THROUGH || mount_mode ==
        MOUNT_EXTERNAL_INSTALLER || mount_mode == MOUNT_EXTERNAL_FULL) {
      // For now, MediaProvider, installers and "full" get the pass_through mount
      // view, which is currently identical to the sdcardfs write view.
      //
      // TODO(b/146189163): scope down MOUNT_EXTERNAL_INSTALLER
      BindMount(pass_through_source, "/storage", fail_fn);
    } else {
      BindMount(user_source, "/storage", fail_fn);
    }
  } else {
    const std::string& storage_source = ExternalStorageViews[mount_mode];
    BindMount(storage_source, "/storage", fail_fn);