From 4cec92d994d5ca8477937c65ae66071eedde80c8 Mon Sep 17 00:00:00 2001 From: cuiruibin Date: Wed, 24 Jan 2024 16:12:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9tdd=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=20Signed-off-by:=20cuiruibin=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/file_permission_test.cpp | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/test/unittest/file_permission_native/src/file_permission_test.cpp b/test/unittest/file_permission_native/src/file_permission_test.cpp index dab24d494..8cd957c69 100644 --- a/test/unittest/file_permission_native/src/file_permission_test.cpp +++ b/test/unittest/file_permission_native/src/file_permission_test.cpp @@ -42,7 +42,7 @@ namespace AppFileService { const char *g_fileManagerFullMountEnableParameter = "const.filemanager.full_mount.enable"; const std::string SET_POLICY_PERMISSION = "ohos.permission.SET_SANDBOX_POLICY"; const std::string ACCESS_PERSIST_PERMISSION = "ohos.permission.FILE_ACCESS_PERSIST"; -const std::string BundleName = "com.example.filesharea"; +const std::string BUNDLE_A = "com.example.filesharea"; uint64_t g_mockToken; OHOS::Security::AccessToken::PermissionStateFull g_testState1 = { .permissionName = SET_POLICY_PERMISSION, @@ -130,7 +130,7 @@ static bool CheckFileManagerFullMountEnable() HWTEST_F(FilePermissionTest, PersistPermission_test_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin PersistPermission_test_0000"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -150,9 +150,9 @@ HWTEST_F(FilePermissionTest, PersistPermission_test_0000, testing::ext::TestSize HWTEST_F(FilePermissionTest, PersistPermission_test_0001, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin PersistPermission_test_0001"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; - UriPolicyInfo infoB = {.uri = "file://" + BundleName + "/storage", .mode = -1}; + UriPolicyInfo infoB = {.uri = "file://" + BUNDLE_A + "/storage", .mode = -1}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); uriPolicies.emplace_back(infoB); @@ -177,7 +177,7 @@ HWTEST_F(FilePermissionTest, PersistPermission_test_0001, testing::ext::TestSize HWTEST_F(FilePermissionTest, PersistPermission_test_0002, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin PersistPermission_test_0002"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage/test01.test", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage/test01.test", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -203,7 +203,7 @@ HWTEST_F(FilePermissionTest, PersistPermission_test_0002, testing::ext::TestSize HWTEST_F(FilePermissionTest, ActivatePermission_test_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin ActivatePermission_test_0000"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -223,9 +223,9 @@ HWTEST_F(FilePermissionTest, ActivatePermission_test_0000, testing::ext::TestSiz HWTEST_F(FilePermissionTest, ActivatePermission_test_0001, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin ActivatePermission_test_0001"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; - UriPolicyInfo infoB = {.uri = "file://" + BundleName + "/storage", .mode = -1}; + UriPolicyInfo infoB = {.uri = "file://" + BUNDLE_A + "/storage", .mode = -1}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); uriPolicies.emplace_back(infoB); @@ -250,7 +250,7 @@ HWTEST_F(FilePermissionTest, ActivatePermission_test_0001, testing::ext::TestSiz HWTEST_F(FilePermissionTest, ActivatePermission_test_0002, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin ActivatePermission_test_0002"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage/test01.test", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage/test01.test", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -276,7 +276,7 @@ HWTEST_F(FilePermissionTest, ActivatePermission_test_0002, testing::ext::TestSiz HWTEST_F(FilePermissionTest, DeactivatePermission_test_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin DeactivatePermission_test_0000"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -296,9 +296,9 @@ HWTEST_F(FilePermissionTest, DeactivatePermission_test_0000, testing::ext::TestS HWTEST_F(FilePermissionTest, DeactivatePermission_test_0001, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin DeactivatePermission_test_0001"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; - UriPolicyInfo infoB = {.uri = "file://" + BundleName + "/storage", .mode = -1}; + UriPolicyInfo infoB = {.uri = "file://" + BUNDLE_A + "/storage", .mode = -1}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); uriPolicies.emplace_back(infoB); @@ -323,7 +323,7 @@ HWTEST_F(FilePermissionTest, DeactivatePermission_test_0001, testing::ext::TestS HWTEST_F(FilePermissionTest, DeactivatePermission_test_0002, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin DeactivatePermission_test_0002"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage/test01.test", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage/test01.test", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -349,7 +349,7 @@ HWTEST_F(FilePermissionTest, DeactivatePermission_test_0002, testing::ext::TestS HWTEST_F(FilePermissionTest, RevokePermission_test_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin RevokePermission_test_0000"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); @@ -369,9 +369,9 @@ HWTEST_F(FilePermissionTest, RevokePermission_test_0000, testing::ext::TestSize. HWTEST_F(FilePermissionTest, RevokePermission_test_0001, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin RevokePermission_test_0001"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; - UriPolicyInfo infoB = {.uri = "file://" + BundleName + "/storage", .mode = -1}; + UriPolicyInfo infoB = {.uri = "file://" + BUNDLE_A + "/storage", .mode = -1}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); uriPolicies.emplace_back(infoB); @@ -396,7 +396,7 @@ HWTEST_F(FilePermissionTest, RevokePermission_test_0001, testing::ext::TestSize. HWTEST_F(FilePermissionTest, RevokePermission_test_0002, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileShareTest-begin RevokePermission_test_0002"; - UriPolicyInfo infoA = {.uri = "file://" + BundleName + "/storage/test01.test", + UriPolicyInfo infoA = {.uri = "file://" + BUNDLE_A + "/storage/test01.test", .mode = OperationMode::READ_MODE | OperationMode::WRITE_MODE}; std::vector uriPolicies; uriPolicies.emplace_back(infoA); -- Gitee From 4578a7f4ee81845a2be6dfb7e57bc042c03a43e4 Mon Sep 17 00:00:00 2001 From: cuiruibin Date: Tue, 30 Jan 2024 21:19:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9EFileUri.NDK=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=20Signed-off-by:=20cuiruibin=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interfaces/ndk/BUILD.gn | 32 +++++++++ interfaces/ndk/include/file_uri.h | 81 +++++++++++++++++++++++ interfaces/ndk/libnative_fileuir.ndk.json | 11 +++ interfaces/ndk/src/file_uri.cpp | 0 interfaces/ndk/src/file_uri.h | 0 5 files changed, 124 insertions(+) create mode 100644 interfaces/ndk/BUILD.gn create mode 100644 interfaces/ndk/include/file_uri.h create mode 100644 interfaces/ndk/libnative_fileuir.ndk.json create mode 100644 interfaces/ndk/src/file_uri.cpp create mode 100644 interfaces/ndk/src/file_uri.h diff --git a/interfaces/ndk/BUILD.gn b/interfaces/ndk/BUILD.gn new file mode 100644 index 000000000..dd3338c91 --- /dev/null +++ b/interfaces/ndk/BUILD.gn @@ -0,0 +1,32 @@ +# Copyright (c) 2024 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/ohos/ndk/ndk.gni") +import("//foundation/filemanagement/app_file_service/app_file_service.gni") + +ohos_ndk_headers("fileuri_ndk_header") { + dest_dir = "$ndk_headers_out_dir/app_file_service/fileuri/" + sources = [ "./include/file_uri.h" ] +} + +ohos_ndk_library("libnative_fileuri_ndk") { + output_name = "native_fileuri_ndk" + system_capability = + "SystemCapability.FileManagement.AppFileService" + ndk_description_file = "./libnative_fileuri.ndk.json" + min_compact_version = "11" + system_capability_headers = [ + "$ndk_headers_out_dir/filemanagement/app_file_service/fileuri.h", + ] +} diff --git a/interfaces/ndk/include/file_uri.h b/interfaces/ndk/include/file_uri.h new file mode 100644 index 000000000..37cd36248 --- /dev/null +++ b/interfaces/ndk/include/file_uri.h @@ -0,0 +1,81 @@ + /* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FILE_URI_H +#define FILE_URI_H + +/** + * @file file_uri.h + * + * @brief Handle operations related to URIs. + * @library libnative_fileuri_ndk.z.so + * @syscap SystemCapability.FileManagement.AppFileService + * @since 12 + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Get Uri From Path. + * + * @param asset Pass in the URI to get the path. + * @param asset The result after processing. + * @return Returns the execution result. + * @see fileuri + * @since 12 + */ +int OH_FileUri_GetUriFromPath(const char *path, char *result); + +/** + * @brief Get path From uri. + * + * @param asset Pass in the path to get the uri. + * @param asset The result after processing. + * @return Returns the execution result. + * @return Returns . + * @see fileuri + * @since 12 + */ +int OH_FileUri_GetPathFromUri(const char *uri, char *result); + +/** + * @brief Obtain the path where the URI is located. + * + * @param asset Pass in the URI to get the path. + * @param asset The result after processing. + * @return Returns the execution result. + * @return Returns a uri. + * @see fileuri + * @since 12 + */ +int OH_FileUri_GetFullDirectoryUri(const char *uri, char *result); + +/** + * @brief Check the correctness of the Uri. + * + * @param asset Pass in the URI to be checked. + * @param asset The result after processing. + * @return Returns the execution result. + * @return Returns true or false. + * @see fileuri + * @since 12 + */ +int OH_FileUri_CheckUriFormate(const char *uri, bool *result); +#ifdef __cplusplus +}; +#endif +#endif //FILE_URI_H diff --git a/interfaces/ndk/libnative_fileuir.ndk.json b/interfaces/ndk/libnative_fileuir.ndk.json new file mode 100644 index 000000000..774616f3d --- /dev/null +++ b/interfaces/ndk/libnative_fileuir.ndk.json @@ -0,0 +1,11 @@ +[ + {"name":"OH_FileUri_GetUriFromPath" }, + {"name":"OH_FileUri_GetPathFromUri" }, + {"name":"OH_FileUri_GetFullDirectoryUri" }, + {"name":"OH_FileUri_IsFileUri" }, + {"name":"OH_PersistPermission" }, + {"name":"OH_RevokePermission" }, + {"name":"OH_ActivatePermission" }, + {"name":"OH_DeactivatePermission" }, + {"name":"OH_CheckPermission" } +] \ No newline at end of file diff --git a/interfaces/ndk/src/file_uri.cpp b/interfaces/ndk/src/file_uri.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/interfaces/ndk/src/file_uri.h b/interfaces/ndk/src/file_uri.h new file mode 100644 index 000000000..e69de29bb -- Gitee