diff options
| author | 2022-02-21 17:53:55 +0000 | |
|---|---|---|
| committer | 2022-03-02 08:08:23 +0000 | |
| commit | f76f5842a410b7f653dd9474d7b9e4dc64880f3c (patch) | |
| tree | 055ce231afa0cea397c622ea0980b8fd49a8d3f3 | |
| parent | 2da74e082054934cab109327ee8bf6b74702290c (diff) | |
Add /metadata info on dumpsys diskstats and StatsPullAtomService
Bug: 208676063
Test: manual tests
Change-Id: Ice3b706222aa1f77beadb1b9f4ae93f0d796a0b0
4 files changed, 19 insertions, 0 deletions
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index 2ed0bad69460..2f2f65bbe9d2 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -101,6 +101,7 @@ public class Environment { private static final File DIR_ANDROID_EXPAND = getDirectory(ENV_ANDROID_EXPAND, "/mnt/expand"); private static final File DIR_ANDROID_STORAGE = getDirectory(ENV_ANDROID_STORAGE, "/storage"); private static final File DIR_DOWNLOAD_CACHE = getDirectory(ENV_DOWNLOAD_CACHE, "/cache"); + private static final File DIR_METADATA = new File("/metadata"); private static final File DIR_OEM_ROOT = getDirectory(ENV_OEM_ROOT, "/oem"); private static final File DIR_ODM_ROOT = getDirectory(ENV_ODM_ROOT, "/odm"); private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor"); @@ -1102,6 +1103,15 @@ public class Environment { } /** + * Return the metadata directory. + * + * @hide + */ + public static @NonNull File getMetadataDirectory() { + return DIR_METADATA; + } + + /** * Unknown storage state, such as when a path isn't backed by known storage * media. * diff --git a/core/proto/android/service/diskstats.proto b/core/proto/android/service/diskstats.proto index f79de394a50f..ad3d67346292 100644 --- a/core/proto/android/service/diskstats.proto +++ b/core/proto/android/service/diskstats.proto @@ -99,6 +99,8 @@ message DiskStatsFreeSpaceProto { FOLDER_CACHE = 1; // System folder FOLDER_SYSTEM = 2; + // Metadata folder + FOLDER_METADATA = 3; } // Which folder? optional Folder folder = 1; diff --git a/services/core/java/com/android/server/DiskStatsService.java b/services/core/java/com/android/server/DiskStatsService.java index 8ea3dd64697e..1095ba31069f 100644 --- a/services/core/java/com/android/server/DiskStatsService.java +++ b/services/core/java/com/android/server/DiskStatsService.java @@ -125,6 +125,8 @@ public class DiskStatsService extends Binder { DiskStatsFreeSpaceProto.FOLDER_CACHE); reportFreeSpace(new File("/system"), "System", pw, proto, DiskStatsFreeSpaceProto.FOLDER_SYSTEM); + reportFreeSpace(Environment.getMetadataDirectory(), "Metadata", pw, proto, + DiskStatsFreeSpaceProto.FOLDER_METADATA); boolean fileBased = StorageManager.isFileEncryptedNativeOnly(); boolean blockBased = fileBased ? false : StorageManager.isBlockEncrypted(); diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java index 1fa948cef216..9cf38e3ca92f 100644 --- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java @@ -2609,6 +2609,7 @@ public class StatsPullAtomService extends SystemService { StatFs statFsData = new StatFs(Environment.getDataDirectory().getAbsolutePath()); StatFs statFsSystem = new StatFs(Environment.getRootDirectory().getAbsolutePath()); StatFs statFsCache = new StatFs(Environment.getDownloadCacheDirectory().getAbsolutePath()); + StatFs metadataFsSystem = new StatFs(Environment.getMetadataDirectory().getAbsolutePath()); pulledData.add(FrameworkStatsLog.buildStatsEvent(atomTag, FrameworkStatsLog.DIRECTORY_USAGE__DIRECTORY__DATA, statFsData.getAvailableBytes(), @@ -2621,6 +2622,10 @@ public class StatsPullAtomService extends SystemService { pulledData.add(FrameworkStatsLog.buildStatsEvent(atomTag, FrameworkStatsLog.DIRECTORY_USAGE__DIRECTORY__SYSTEM, statFsSystem.getAvailableBytes(), statFsSystem.getTotalBytes())); + + pulledData.add(FrameworkStatsLog.buildStatsEvent(atomTag, + FrameworkStatsLog.DIRECTORY_USAGE__DIRECTORY__METADATA, + metadataFsSystem.getAvailableBytes(), metadataFsSystem.getTotalBytes())); return StatsManager.PULL_SUCCESS; } |