Fix external manual calculation bug.
Ignore file extensions anywhere under "Android" since those files
belong to specific apps. Don't depend on GID being set for those
directories.
Bug: 35684969, 35441006, 34945234
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Change-Id: Ifeb8d314cc2b803ac0d3595974daf91f51862061
diff --git a/cmds/installd/InstalldNativeService.cpp b/cmds/installd/InstalldNativeService.cpp
index e486589..754ba4c 100644
--- a/cmds/installd/InstalldNativeService.cpp
+++ b/cmds/installd/InstalldNativeService.cpp
@@ -1504,7 +1504,7 @@
switch (p->fts_info) {
case FTS_F:
// Only categorize files not belonging to apps
- if (p->fts_statp->st_gid < AID_APP_START) {
+ if (p->fts_parent->fts_number == 0) {
ext = strrchr(p->fts_name, '.');
if (ext != nullptr) {
switch (MatchExtension(++ext)) {
@@ -1516,6 +1516,11 @@
}
// Fall through to always count against total
case FTS_D:
+ // Ignore data belonging to specific apps
+ p->fts_number = p->fts_parent->fts_number;
+ if (p->fts_level == 1 && !strcmp(p->fts_name, "Android")) {
+ p->fts_number = 1;
+ }
case FTS_DEFAULT:
case FTS_SL:
case FTS_SLNONE: