diff --git a/Android.bp b/Android.bp
index d585c6c9ca8ca57197d8b9b4ebd8f333271eb60b..2066ba6d4b81efd72bd132dcd3cec6b1983bf942 100644
--- a/Android.bp
+++ b/Android.bp
@@ -70,5 +70,5 @@ cc_defaults {
         "-Werror=reorder-init-list",
     ],
     c_std: "c99",
-    cpp_std: "c++17",
+    cpp_std: "c++20",
 }
diff --git a/system/test/tool/mockcify.pl b/system/test/tool/mockcify.pl
index dd974c0aaeb6f6146a026bbe84e29cf966c52a1d..724f26d03cd31bf5a898bbf6c9bf9c1f405a3ece 100755
--- a/system/test/tool/mockcify.pl
+++ b/system/test/tool/mockcify.pl
@@ -264,7 +264,7 @@ sub compilation_screen {
     my $link="test/mock/$hdr";
     unlink "$INCDIR/$link";
     symlink "$OUTDIR/$hdr", "$INCDIR/$link";
-    system("$CC -c -std=c++17 -o /dev/null -D" . join(" -D", @defs) . " -I" . join(" -I", @incs) . " $OUTDIR/$src");
+    system("$CC -c -std=c++20 -o /dev/null -D" . join(" -D", @defs) . " -I" . join(" -I", @incs) . " $OUTDIR/$src");
     my $rc = $?;
          ($? == 0)
          ? printf(STDERR "SUCCESS Compiled unit \'$src\'\n")
diff --git a/tools/rootcanal/Android.bp b/tools/rootcanal/Android.bp
index 386de787e7abbab317918469f8a3d5e598315dbc..910ca1b22aaf239ece8dd97b6c0360160413ccdf 100644
--- a/tools/rootcanal/Android.bp
+++ b/tools/rootcanal/Android.bp
@@ -38,7 +38,7 @@ cc_defaults {
         misc_undefined: ["bounds"],
     },
     c_std: "c99",
-    cpp_std: "c++17",
+    cpp_std: "c++20",
     cflags: [
         "-DGOOGLE_PROTOBUF_NO_RTTI",
         "-Wall",