diff --git a/Android.bp b/Android.bp
index 761f102..1e7ebef 100644
--- a/Android.bp
+++ b/Android.bp
@@ -15,7 +15,7 @@
 // This file is automatically generated by tools/gen_android_bp. Do not edit.
 
 // GN target: //src/ipc:wire_protocol_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ipc_wire_protocol_gen_headers",
   srcs: [
     "src/ipc/wire_protocol.proto",
@@ -33,7 +33,7 @@
 }
 
 // GN target: //src/ftrace_reader:ftrace_reader_test_messages_lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ftrace_reader_ftrace_reader_test_messages_lite_gen",
   srcs: [
     "src/ftrace_reader/test/test_messages.proto",
@@ -48,7 +48,7 @@
 }
 
 // GN target: //src/ipc:test_messages_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ipc_test_messages_gen_headers",
   srcs: [
     "src/ipc/test/client_unittest_messages.proto",
@@ -87,7 +87,7 @@
 }
 
 // GN target: //protos/tracing_service:tracing_service_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_tracing_service_tracing_service_gen_headers",
   srcs: [
     "protos/tracing_service/consumer_port.proto",
@@ -110,7 +110,7 @@
 }
 
 // GN target: //src/ftrace_reader:ftrace_reader_test_messages_zero_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ftrace_reader_ftrace_reader_test_messages_zero_gen",
   srcs: [
     "src/ftrace_reader/test/test_messages.proto",
@@ -126,7 +126,7 @@
 }
 
 // GN target: //protos/tracing_service:tracing_service_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_tracing_service_tracing_service_gen",
   srcs: [
     "protos/tracing_service/consumer_port.proto",
@@ -146,7 +146,7 @@
 }
 
 // GN target: //src/protozero:testing_messages_lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_protozero_testing_messages_lite_gen_headers",
   srcs: [
     "src/protozero/test/example_proto/library.proto",
@@ -170,7 +170,7 @@
 }
 
 // GN target: //src/ipc:test_messages_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ipc_test_messages_gen",
   srcs: [
     "src/ipc/test/client_unittest_messages.proto",
@@ -193,7 +193,7 @@
 }
 
 // GN target: //protos:lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_lite_gen_headers",
   srcs: [
     "protos/trace_packet.proto",
@@ -226,7 +226,7 @@
 }
 
 // GN target: //src/ftrace_reader:ftrace_reader_test_messages_zero_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ftrace_reader_ftrace_reader_test_messages_zero_gen_headers",
   srcs: [
     "src/ftrace_reader/test/test_messages.proto",
@@ -245,7 +245,7 @@
 }
 
 // GN target: //protos:lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_lite_gen",
   srcs: [
     "protos/trace_packet.proto",
@@ -260,7 +260,7 @@
 }
 
 // GN target: //protos/ftrace:zero_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_ftrace_zero_gen",
   srcs: [
     "protos/ftrace/ftrace_event.proto",
@@ -284,7 +284,7 @@
 }
 
 // GN target: //src/ipc:wire_protocol_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ipc_wire_protocol_gen",
   srcs: [
     "src/ipc/wire_protocol.proto",
@@ -299,7 +299,7 @@
 }
 
 // GN target: //src/protozero:testing_messages_lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_protozero_testing_messages_lite_gen",
   srcs: [
     "src/protozero/test/example_proto/library.proto",
@@ -423,7 +423,7 @@
 }
 
 // GN target: //src/protozero:testing_messages_zero_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_protozero_testing_messages_zero_gen_headers",
   srcs: [
     "src/protozero/test/example_proto/library.proto",
@@ -448,7 +448,7 @@
 }
 
 // GN target: //src/ftrace_reader:ftrace_reader_test_messages_lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_ftrace_reader_ftrace_reader_test_messages_lite_gen_headers",
   srcs: [
     "src/ftrace_reader/test/test_messages.proto",
@@ -466,7 +466,7 @@
 }
 
 // GN target: //protos/tracing_service:lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_tracing_service_lite_gen_headers",
   srcs: [
     "protos/tracing_service/data_source_config.proto",
@@ -488,7 +488,7 @@
 }
 
 // GN target: //protos/ftrace:lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_ftrace_lite_gen",
   srcs: [
     "protos/ftrace/ftrace_event.proto",
@@ -511,7 +511,7 @@
 }
 
 // GN target: //protos/ftrace:lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_ftrace_lite_gen_headers",
   srcs: [
     "protos/ftrace/ftrace_event.proto",
@@ -537,7 +537,7 @@
 }
 
 // GN target: //protos/tracing_service:lite_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_tracing_service_lite_gen",
   srcs: [
     "protos/tracing_service/data_source_config.proto",
@@ -556,7 +556,7 @@
 }
 
 // GN target: //protos/ftrace:zero_gen
-cc_genrule {
+genrule {
   name: "perfetto_protos_ftrace_zero_gen_headers",
   srcs: [
     "protos/ftrace/ftrace_event.proto",
@@ -598,7 +598,7 @@
 }
 
 // GN target: //src/protozero:testing_messages_zero_gen
-cc_genrule {
+genrule {
   name: "perfetto_src_protozero_testing_messages_zero_gen",
   srcs: [
     "src/protozero/test/example_proto/library.proto",
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index 4134e5c..87c6a55 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -239,7 +239,7 @@
     """
     # Don't try to inject library/source dependencies into genrules because they
     # are not compiled in the traditional sense.
-    if module.type == 'cc_genrule':
+    if module.type == 'genrule':
         return
 
     # If the dependency refers to a library which we can replace with an Android
@@ -279,7 +279,7 @@
     GN actions are used to dynamically generate files during the build. The
     Soong equivalent is a genrule. This function turns a specific kind of
     genrule which turns .proto files into source and header files into a pair
-    equivalent cc_genrules.
+    equivalent genrules.
 
     Args:
         blueprint: Blueprint instance which is being generated.
@@ -303,11 +303,11 @@
     # generated files needs to declare two different types of dependencies --
     # source files in 'srcs' and headers in 'generated_headers' -- and it's not
     # valid to generate .h files from a source dependency and vice versa.
-    source_module = Module('cc_genrule', label_to_module_name(target_name))
+    source_module = Module('genrule', label_to_module_name(target_name))
     source_module.srcs.extend(label_to_path(src) for src in target['sources'])
     source_module.tools = ['aprotoc']
 
-    header_module = Module('cc_genrule',
+    header_module = Module('genrule',
                            label_to_module_name(target_name) + '_headers')
     header_module.srcs = source_module.srcs[:]
     header_module.tools = source_module.tools[:]
@@ -402,7 +402,7 @@
 
     for module in modules:
         module.comment = 'GN target: %s' % target_name
-        if module.type != 'cc_genrule':
+        if module.type != 'genrule':
             module.defaults = [defaults_module]
 
         apply_module_dependency(blueprint, desc, module, target_name)
