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

Commit 5c0a79dd authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

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

Merge "Merge "Allow sandboxed apps to access only package specific dirs." into qt-dev am: d6d09d95 am: bf591cf9"
parents c9c7e398 eb385636
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -869,8 +869,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;
@@ -886,7 +890,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