diff --git a/services/bundlemgr_lite/src/bundle_util.cpp b/services/bundlemgr_lite/src/bundle_util.cpp index 745816180b3f29306e264befbd96437a8059a4a2..00afe2434f53f5f4905e1dc26ad877add965e44b 100755 --- a/services/bundlemgr_lite/src/bundle_util.cpp +++ b/services/bundlemgr_lite/src/bundle_util.cpp @@ -494,6 +494,18 @@ cJSON *BundleUtil::ConvertInstallRecordToJson(const InstallRecord &installRecord return root; } +int CreateRand(void) +{ + int fd; + int r = 0; + fd = open("/dev/random", O_RDONLY); + if (fd > 0) { + read(fd, &r, sizeof(int)); + } + close(fd); + return r; +} + void BundleUtil::CreateRandStr(char *str, uint32_t len) { if (str == nullptr) { @@ -504,11 +516,12 @@ void BundleUtil::CreateRandStr(char *str, uint32_t len) #else srand(LOS_TickCountGet()); #endif + uint32_t i; for (i = 0; i < len - 1; ++i) { switch ((rand() % NUM_OF_TYPE)) { case 0: - str[i] = 'A' + rand() % MAX_CHARACTER_VALUE; + str[i] = 'A' + CreateRand() % MAX_CHARACTER_VALUE; break; case 1: str[i] = 'a' + rand() % MAX_CHARACTER_VALUE;