Merge "[incfs] Skip empty folders for app updates" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-21 01:42:39 +00:00
committed by Android (Google) Code Review

View File

@@ -150,7 +150,6 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
@@ -2099,11 +2098,13 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
continue; continue;
} }
mResolvedInstructionSets.add(archSubDir.getName()); File[] files = archSubDir.listFiles();
List<File> oatFiles = Arrays.asList(archSubDir.listFiles()); if (files == null || files.length == 0) {
if (!oatFiles.isEmpty()) { continue;
mResolvedInheritedFiles.addAll(oatFiles);
} }
mResolvedInstructionSets.add(archSubDir.getName());
mResolvedInheritedFiles.addAll(Arrays.asList(files));
} }
} }
} }
@@ -2117,7 +2118,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
if (!libDir.exists() || !libDir.isDirectory()) { if (!libDir.exists() || !libDir.isDirectory()) {
continue; continue;
} }
final List<File> libDirsToInherit = new LinkedList<>(); final List<String> libDirsToInherit = new ArrayList<>();
final List<File> libFilesToInherit = new ArrayList<>();
for (File archSubDir : libDir.listFiles()) { for (File archSubDir : libDir.listFiles()) {
if (!archSubDir.isDirectory()) { if (!archSubDir.isDirectory()) {
continue; continue;
@@ -2129,14 +2131,24 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
Slog.e(TAG, "Skipping linking of native library directory!", e); Slog.e(TAG, "Skipping linking of native library directory!", e);
// shouldn't be possible, but let's avoid inheriting these to be safe // shouldn't be possible, but let's avoid inheriting these to be safe
libDirsToInherit.clear(); libDirsToInherit.clear();
libFilesToInherit.clear();
break; break;
} }
if (!mResolvedNativeLibPaths.contains(relLibPath)) {
mResolvedNativeLibPaths.add(relLibPath); File[] files = archSubDir.listFiles();
if (files == null || files.length == 0) {
continue;
} }
libDirsToInherit.addAll(Arrays.asList(archSubDir.listFiles()));
libDirsToInherit.add(relLibPath);
libFilesToInherit.addAll(Arrays.asList(files));
} }
mResolvedInheritedFiles.addAll(libDirsToInherit); for (String subDir : libDirsToInherit) {
if (!mResolvedNativeLibPaths.contains(subDir)) {
mResolvedNativeLibPaths.add(subDir);
}
}
mResolvedInheritedFiles.addAll(libFilesToInherit);
} }
} }
} }