diff --git a/bundle.json b/bundle.json index dbf37010436d05a9fb0fa3a8048b1a292aa0d541..4b7315b04617880cf3bc8eaf1b782f8d8c21ff6a 100644 --- a/bundle.json +++ b/bundle.json @@ -37,7 +37,8 @@ "napi", "samgr", "app_file_service", - "build_framework" + "build_framework", + "init" ], "third_party": [ "bounds_checking_function", diff --git a/interfaces/kits/js/BUILD.gn b/interfaces/kits/js/BUILD.gn index dabc9346d47f96e6f53246b5f35ed5fda3e68379..61de8e5bd888a9ecb83eb115bd87e501b4209caf 100644 --- a/interfaces/kits/js/BUILD.gn +++ b/interfaces/kits/js/BUILD.gn @@ -98,6 +98,7 @@ ohos_shared_library("fileio") { external_deps = [ "hilog:libhilog", "napi:ace_napi", + "init:libbegetutil", ] defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] } @@ -155,6 +156,7 @@ ohos_shared_library("fs") { external_deps = [ "hilog:libhilog", "napi:ace_napi", + "init:libbegetutil", ] if (!use_mingw_win && !use_mac) { diff --git a/interfaces/kits/js/src/mod_fs/properties/open.cpp b/interfaces/kits/js/src/mod_fs/properties/open.cpp index d13c83b408a512f5379c8bda3e7370e4be0c2af6..78343ed36465483171eac1950671156ae860c9cd 100644 --- a/interfaces/kits/js/src/mod_fs/properties/open.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/open.cpp @@ -36,6 +36,7 @@ #include "status_receiver_host.h" #include "system_ability_definition.h" #include "file_uri.h" +#include "parameter.h" #endif namespace OHOS { @@ -58,12 +59,29 @@ const std::string MEDIA = "media"; const std::string DOCS = "docs"; const std::string DATASHARE = "datashare"; const std::string SCHEME_BROKER = "content"; +const int32_t FULL_MOUT_ENABLE_SIZE = 6; +const char* g_filemanagerFullMoutEnableParameter = "const.filemanager.full_mount.enable"; #if !defined(WIN_PLATFORM) && !defined(IOS_PLATFORM) constexpr uint32_t MAX_WANT_FLAG = 4; #endif +namespace { + bool CheckFilemanagerFullMoutEnable() + { + char value[FULL_MOUT_ENABLE_SIZE] = "false"; + int retSysParam = GetParameter(g_filemanagerFullMoutEnableParameter, "false", value, FULL_MOUT_ENABLE_SIZE); + if (retSysParam > 0 && !std::strcmp(value, "true")) { + return true; + } + return false; + } +} + static tuple GetJsFlags(napi_env env, const NFuncArg &funcArg) { + if (!CheckFilemanagerFullMoutEnable()) { + return { false, 1 }; + } unsigned int flags = O_RDONLY; if (funcArg.GetArgc() >= NARG_CNT::TWO) { auto [succ, mode] = NVal(env, funcArg[NARG_POS::SECOND]).ToInt32(O_RDONLY);