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

Commit d6d09d95 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Allow sandboxed apps to access only package specific dirs." into qt-dev

parents 6805b6ae 783c90e9
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -875,8 +875,12 @@ static void MountEmulatedStorage(uid_t uid, jint mount_mode,
    storage_source = "/mnt/runtime/default";
  } else if (mount_mode == MOUNT_EXTERNAL_READ) {
    storage_source = "/mnt/runtime/read";
  } else if (mount_mode == MOUNT_EXTERNAL_WRITE) {
  } else if (mount_mode == MOUNT_EXTERNAL_WRITE
      || mount_mode == MOUNT_EXTERNAL_LEGACY
      || mount_mode == MOUNT_EXTERNAL_INSTALLER) {
    storage_source = "/mnt/runtime/write";
  } else if (mount_mode == MOUNT_EXTERNAL_FULL) {
    storage_source = "/mnt/runtime/full";
  } else if (mount_mode == MOUNT_EXTERNAL_NONE && !force_mount_namespace) {
    // Sane default of no storage visible
    return;
@@ -892,7 +896,8 @@ static void MountEmulatedStorage(uid_t uid, jint mount_mode,
    return;
  }

  if (GetBoolProperty(kIsolatedStorageSnapshot, GetBoolProperty(kIsolatedStorage, true))) {
  if (/* DISABLES CODE */ (false)
      && GetBoolProperty(kIsolatedStorageSnapshot, GetBoolProperty(kIsolatedStorage, true))) {
    if (mount_mode == MOUNT_EXTERNAL_FULL || mount_mode == MOUNT_EXTERNAL_LEGACY) {
      storage_source = (mount_mode == MOUNT_EXTERNAL_FULL)
          ? "/mnt/runtime/full" : "/mnt/runtime/write";
+3 −2
Original line number Diff line number Diff line
@@ -1683,6 +1683,7 @@ class StorageManagerService extends IStorageManager.Stub
                ServiceManager.getService(Context.APP_OPS_SERVICE));
        try {
            mIAppOpsService.startWatchingMode(OP_REQUEST_INSTALL_PACKAGES, null, mAppOpsCallback);
            mIAppOpsService.startWatchingMode(OP_LEGACY_STORAGE, null, mAppOpsCallback);
        } catch (RemoteException e) {
        }
    }
@@ -3335,7 +3336,7 @@ class StorageManagerService extends IStorageManager.Stub
    }

    private String translateInternal(String path, int pid, int uid, boolean toSystem) {
        if (!ENABLE_ISOLATED_STORAGE) return path;
        if (true) return path;

        if (path.contains("/../")) {
            throw new SecurityException("Shady looking path " + path);
@@ -3761,7 +3762,7 @@ class StorageManagerService extends IStorageManager.Stub
            if (hasLegacy && hasStorage) {
                return Zygote.MOUNT_EXTERNAL_LEGACY;
            } else {
                return Zygote.MOUNT_EXTERNAL_WRITE;
                return Zygote.MOUNT_EXTERNAL_DEFAULT;
            }
        } catch (RemoteException e) {
            // Should not happen