diff --git a/interfaces/innerkits/appverify/include/common/random_access_file.h b/interfaces/innerkits/appverify/include/common/random_access_file.h index 3e7c79914b7247c68f1d4d7626ba06ae7e72352b..43f2f15b893d2ffbe1d5e3de9d5fcacf4c5bd1a8 100644 --- a/interfaces/innerkits/appverify/include/common/random_access_file.h +++ b/interfaces/innerkits/appverify/include/common/random_access_file.h @@ -46,6 +46,7 @@ private: long long ReadFileFullyFromOffsetV2(char buf[], long long offset, int32_t bufCapacity); long long ReadFileFullyFromOffsetV2(HapByteBuffer& buffer, long long offset); bool ReadFileFromOffsetAndDigestUpdateV2(const DigestParameter& digestParam, int32_t chunkSize, long long offset); + static bool HapVerifyParallelizationSupported(); static const int32_t FILE_OPEN_FAIL_ERROR_NUM; static int32_t memoryPageSize; int32_t fd = 0; diff --git a/interfaces/innerkits/appverify/src/common/random_access_file.cpp b/interfaces/innerkits/appverify/src/common/random_access_file.cpp index d654f6630b09aaff6db6a69defa38af7ab7a2f5a..fc5a9c36198bf32deab6c99a52581ebe721ae390 100644 --- a/interfaces/innerkits/appverify/src/common/random_access_file.cpp +++ b/interfaces/innerkits/appverify/src/common/random_access_file.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -178,7 +179,7 @@ long long RandomAccessFile::ReadFileFullyFromOffset(HapByteBuffer& buffer, long bool RandomAccessFile::ReadFileFromOffsetAndDigestUpdate(const DigestParameter& digestParam, int32_t chunkSize, long long offset) { - if (readFile_) { + if (readFile_ || HapVerifyParallelizationSupported()) { return ReadFileFromOffsetAndDigestUpdateV2(digestParam, chunkSize, offset); } MmapInfo mmapInfo; @@ -264,6 +265,11 @@ bool RandomAccessFile::ReadFileFromOffsetAndDigestUpdateV2(const DigestParameter delete[] buffer; return res; } + +bool RandomAccessFile::HapVerifyParallelizationSupported() +{ + return OHOS::system::GetBoolParameter("const.appverify.hap_verify_parallel", false); +} } // namespace Verify } // namespace Security } // namespace OHOS