diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08bf646c823841104f1f63835a035690e3a325fb..0869c3a8c3068ffe702701e309d759636a1a0299 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -167,6 +167,7 @@ if("${gRPC_PROTOBUF_PROVIDER}" STREQUAL "module")
   if(NOT PROTOBUF_ROOT_DIR)
     set(PROTOBUF_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/protobuf)
   endif()
+  set(PROTOBUF_WELLKNOWN_IMPORT_DIR ${PROTOBUF_ROOT_DIR}/src)
   if(EXISTS "${PROTOBUF_ROOT_DIR}/cmake/CMakeLists.txt")
     set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "Link static runtime libraries")
     add_subdirectory(${PROTOBUF_ROOT_DIR}/cmake third_party/protobuf)
@@ -199,6 +200,7 @@ elseif("${gRPC_PROTOBUF_PROVIDER}" STREQUAL "package")
     find_package(Protobuf MODULE)
     set(_gRPC_FIND_PROTOBUF "if(NOT Protobuf_FOUND)\n  find_package(Protobuf)\nendif()")
   endif()
+  set(PROTOBUF_WELLKNOWN_IMPORT_DIR /usr/local/include)
 endif()
 
 if("${gRPC_SSL_PROVIDER}" STREQUAL "module")
@@ -301,7 +303,7 @@ function(protobuf_generate_grpc_cpp)
     return()
   endif()
 
-  set(_protobuf_include_path -I .)
+  set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR})
   foreach(FIL ${ARGN})
     get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
     get_filename_component(FIL_WE ${FIL} NAME_WE)
diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template
index cf69f0cc06f0c729cf9632dbba62d4af3542ef53..c647ea57072111d72d12166130d47ace88048bee 100644
--- a/templates/CMakeLists.txt.template
+++ b/templates/CMakeLists.txt.template
@@ -212,6 +212,7 @@
     if(NOT PROTOBUF_ROOT_DIR)
       set(PROTOBUF_ROOT_DIR <%text>${CMAKE_CURRENT_SOURCE_DIR}</%text>/third_party/protobuf)
     endif()
+    set(PROTOBUF_WELLKNOWN_IMPORT_DIR <%text>${PROTOBUF_ROOT_DIR}</%text>/src)
     if(EXISTS "<%text>${PROTOBUF_ROOT_DIR}</%text>/cmake/CMakeLists.txt")
       set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "Link static runtime libraries")
       add_subdirectory(<%text>${PROTOBUF_ROOT_DIR}</%text>/cmake third_party/protobuf)
@@ -244,6 +245,7 @@
       find_package(Protobuf MODULE)
       set(_gRPC_FIND_PROTOBUF "if(NOT Protobuf_FOUND)\n  find_package(Protobuf)\nendif()")
     endif()
+    set(PROTOBUF_WELLKNOWN_IMPORT_DIR /usr/local/include)
   endif()
 
   if("<%text>${gRPC_SSL_PROVIDER}</%text>" STREQUAL "module")
@@ -346,7 +348,7 @@
       return()
     endif()
 
-    set(_protobuf_include_path -I .)
+    set(_protobuf_include_path -I . -I <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>)
     foreach(FIL <%text>${ARGN}</%text>)
       get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
       get_filename_component(FIL_WE <%text>${FIL}</%text> NAME_WE)
diff --git a/test/cpp/util/BUILD b/test/cpp/util/BUILD
index 7471ce75dd39a50a1a0bee4ee424ba585dfdb9dc..38f804ffd401fe8205a6ac1c2ffb675b1efeffa8 100644
--- a/test/cpp/util/BUILD
+++ b/test/cpp/util/BUILD
@@ -89,8 +89,9 @@ cc_test(
         "error_details_test.cc",
     ],
     deps = [
-        "//external:gtest",
         "//:grpc++_error_details",
+        "//external:gtest",
+        "//src/proto/grpc/testing:echo_messages_proto",
     ],
 )
 
diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py
index 42005e3bd3a9f171439153fa5808274352901ae0..0a58adf2f0aa542737acaf2a81c8d22ab6e2db90 100755
--- a/tools/distrib/check_copyright.py
+++ b/tools/distrib/check_copyright.py
@@ -113,6 +113,8 @@ _EXEMPT = frozenset((
   'src/php/tests/bootstrap.php',
   # census.proto copied from github
   'tools/grpcz/census.proto',
+  # status.proto copied from googleapis
+  'src/proto/grpc/status/status.proto',
 ))