trace_processor: enable RPC in Android build

The trace_processor_shell supports acting as an RPC server so that other
tools, such as the Perfetto Python module, can issue queries over a
trace. However, if building from the Android tree, this feature was
disabled.

Test: tested locally; builds for and runs on both host and device.
Change-Id: Id5b5134154f7ce708605cb8778e93a181bb86c4b
diff --git a/Android.bp b/Android.bp
index 6c2a184..99f8345 100644
--- a/Android.bp
+++ b/Android.bp
@@ -8071,6 +8071,14 @@
   ],
 }
 
+// GN: //src/trace_processor/rpc:httpd
+filegroup {
+  name: "perfetto_src_trace_processor_rpc_httpd",
+  srcs: [
+    "src/trace_processor/rpc/httpd.cc",
+  ],
+}
+
 // GN: //src/trace_processor/rpc:rpc
 filegroup {
   name: "perfetto_src_trace_processor_rpc_rpc",
@@ -9586,9 +9594,11 @@
     ":perfetto_protos_perfetto_trace_system_info_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
     ":perfetto_src_profiling_deobfuscator",
     ":perfetto_src_profiling_symbolizer_symbolize_database",
     ":perfetto_src_profiling_symbolizer_symbolizer",
+    ":perfetto_src_protozero_proto_ring_buffer",
     ":perfetto_src_protozero_protozero",
     ":perfetto_src_trace_processor_analysis_analysis",
     ":perfetto_src_trace_processor_containers_containers",
@@ -9600,6 +9610,8 @@
     ":perfetto_src_trace_processor_lib",
     ":perfetto_src_trace_processor_metatrace",
     ":perfetto_src_trace_processor_metrics_lib",
+    ":perfetto_src_trace_processor_rpc_httpd",
+    ":perfetto_src_trace_processor_rpc_rpc",
     ":perfetto_src_trace_processor_sqlite_sqlite",
     ":perfetto_src_trace_processor_storage_full",
     ":perfetto_src_trace_processor_storage_minimal",
diff --git a/gn/perfetto.gni b/gn/perfetto.gni
index d7263e7..ebed8f3 100644
--- a/gn/perfetto.gni
+++ b/gn/perfetto.gni
@@ -262,7 +262,8 @@
   # Enables httpd RPC support in the trace processor.
   # Further per-OS conditionals are applied in gn/BUILD.gn.
   enable_perfetto_trace_processor_httpd =
-      enable_perfetto_trace_processor && perfetto_build_standalone
+      enable_perfetto_trace_processor &&
+      (perfetto_build_standalone || perfetto_build_with_android)
 
   # Enables Zlib support. This is used both by the "perfetto" cmdline client
   # (for compressing traces) and by trace processor (for compressed traces).
diff --git a/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h b/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h
index 649d9ed..a114665 100644
--- a/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h
+++ b/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h
@@ -34,7 +34,7 @@
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_VERSION_GEN() (1)
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_TP_PERCENTILE() (0)
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_TP_LINENOISE() (0)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_TP_HTTPD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_TP_HTTPD() (1)
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_TP_JSON() (0)
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_LOCAL_SYMBOLIZER() (PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() || PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() ||PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN())
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ZLIB() (1)