ZipUtils: use FileChannel#size
RandomAccessFile#length returns 0 for block devices while FileChannel#size returns the correct size. ZipUtils should work with block-device zip files when Android is running as a guest OS and APK/APEX files are passed via block devices. Bug: 193592496 Bug: 192366904 Test: FrameworksServicesTests Change-Id: I6472e2a9051b92a5a778b4990b8e681492985d1a
This commit is contained in:
@@ -63,7 +63,8 @@ abstract class ZipUtils {
|
||||
// exactly the remaining bytes in the buffer. The search is bounded because the maximum
|
||||
// size of the comment field is 65535 bytes because the field is an unsigned 16-bit number.
|
||||
|
||||
long fileSize = zip.length();
|
||||
// TODO(b/193592496) RandomAccessFile#length
|
||||
long fileSize = zip.getChannel().size();
|
||||
if (fileSize < ZIP_EOCD_REC_MIN_SIZE) {
|
||||
return null;
|
||||
}
|
||||
@@ -110,7 +111,8 @@ abstract class ZipUtils {
|
||||
throw new IllegalArgumentException("maxCommentSize: " + maxCommentSize);
|
||||
}
|
||||
|
||||
long fileSize = zip.length();
|
||||
// TODO(b/193592496) RandomAccessFile#length
|
||||
long fileSize = zip.getChannel().size();
|
||||
if (fileSize < ZIP_EOCD_REC_MIN_SIZE) {
|
||||
// No space for EoCD record in the file.
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user