From aebb65cb687216b9912cf98d24858ffcb3e6f50b Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 24 Nov 2014 15:00:13 -0800 Subject: [PATCH] package_info GID shouldn't have write. Fix permissions on packages.list and package-usage.list to only allow read access from the package_info GID. Bug: 18473765 Change-Id: I9b9ef13f4a00a8355619bbcdacc836f9abfa0376 --- .../java/com/android/server/pm/PackageManagerService.java | 2 +- services/core/java/com/android/server/pm/Settings.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index fa76a4d691a63..ad720dc474c14 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -648,7 +648,7 @@ public class PackageManagerService extends IPackageManager.Stub { try { f = file.startWrite(); BufferedOutputStream out = new BufferedOutputStream(f); - FileUtils.setPermissions(file.getBaseFile().getPath(), 0660, SYSTEM_UID, PACKAGE_INFO_GID); + FileUtils.setPermissions(file.getBaseFile().getPath(), 0640, SYSTEM_UID, PACKAGE_INFO_GID); StringBuilder sb = new StringBuilder(); for (PackageParser.Package pkg : mPackages.values()) { if (pkg.mLastPackageUsageTimeInMills == 0) { diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 393ebd6916b75..4fd9fa7907782 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -271,7 +271,7 @@ final class Settings { mSettingsFilename = new File(mSystemDir, "packages.xml"); mBackupSettingsFilename = new File(mSystemDir, "packages-backup.xml"); mPackageListFilename = new File(mSystemDir, "packages.list"); - FileUtils.setPermissions(mPackageListFilename, 0660, SYSTEM_UID, PACKAGE_INFO_GID); + FileUtils.setPermissions(mPackageListFilename, 0640, SYSTEM_UID, PACKAGE_INFO_GID); // Deprecated: Needed for migration mStoppedPackagesFilename = new File(mSystemDir, "packages-stopped.xml"); @@ -1651,7 +1651,7 @@ final class Settings { fstr = new FileOutputStream(writeTarget); str = new BufferedOutputStream(fstr); try { - FileUtils.setPermissions(fstr.getFD(), 0660, SYSTEM_UID, PACKAGE_INFO_GID); + FileUtils.setPermissions(fstr.getFD(), 0640, SYSTEM_UID, PACKAGE_INFO_GID); StringBuilder sb = new StringBuilder(); for (final PackageSetting pkg : mPackages.values()) {