Set up build files for apksigner-kms

Create the various dependencies needed by `//tools/apksig` to support
signing apks via GCP.

Bug: 319296492
Test: TH
Change-Id: Ib0af82d4318854f265dc2ff31ee28795b8bde74c
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..3dcf9a6
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,8 @@
+java_defaults {
+    name: "sdk-platform-java-default-visibility",
+    visibility: [
+        "//external/sdk-platform-java:__subpackages__",
+        "//external/google-cloud-java:__subpackages__",
+        "//tools/apksig",
+    ],
+}
diff --git a/api-common-java/Android.bp b/api-common-java/Android.bp
new file mode 100644
index 0000000..eb4a056
--- /dev/null
+++ b/api-common-java/Android.bp
@@ -0,0 +1,22 @@
+java_library_host {
+    name: "google-api-common",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: [
+        "src/main/**/*.java",
+    ],
+    libs: [
+        "libprotobuf-java-util-full",
+        "auto_value_annotations",
+    ],
+    plugins: ["auto_value_plugin"],
+    errorprone: {
+        javacflags: [
+            "-Xep:DoNotCall:WARN",
+        ],
+    },
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
diff --git a/gax-java/gax-grpc/Android.bp b/gax-java/gax-grpc/Android.bp
new file mode 100644
index 0000000..d4ee02d
--- /dev/null
+++ b/gax-java/gax-grpc/Android.bp
@@ -0,0 +1,33 @@
+java_library_host {
+    name: "gax-java-grpc",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: ["src/main/java/**/*.java"],
+    exclude_srcs: [
+        "src/main/java/com/google/api/gax/grpc/nativeimage/**/*.java",
+    ],
+    libs: [
+        "auto_value_annotations",
+        "gax-java",
+        "google-api-common",
+        "google-cloud-core",
+        "google-api-java-client-assembly",
+        "google-auth-library-java-credentials",
+        "google-auth-library-java-oauth2_http",
+        "grpc-java-auth",
+        "grpc-java-alts",
+        "grpc-java-api",
+        "grpc-java-context",
+        "grpc-java-protobuf",
+        "grpc-java-stub",
+        "guava",
+        "libprotobuf-java-util-full",
+        "proto-google-common-protos",
+        "threetenbp",
+    ],
+    plugins: ["auto_value_plugin"],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
diff --git a/gax-java/gax-httpjson/Android.bp b/gax-java/gax-httpjson/Android.bp
new file mode 100644
index 0000000..5602e17
--- /dev/null
+++ b/gax-java/gax-httpjson/Android.bp
@@ -0,0 +1,27 @@
+java_library_host {
+    name: "gax-java-httpjson",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: ["src/main/java/**/*.java"],
+    libs: [
+        "auto_value_annotations",
+        "gax-java",
+        "google-api-common",
+        "google-api-java-client-assembly",
+        "google-auth-library-java-credentials",
+        "google-auth-library-java-oauth2_http",
+        "google-cloud-core",
+        "gson",
+        "guava",
+        "javax_annotation-api_1.3.2",
+        "jsr305",
+        "libprotobuf-java-util-full",
+        "proto-google-common-protos",
+        "threetenbp",
+    ],
+    plugins: ["auto_value_plugin"],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
diff --git a/gax-java/gax/Android.bp b/gax-java/gax/Android.bp
new file mode 100644
index 0000000..c79ef8d
--- /dev/null
+++ b/gax-java/gax/Android.bp
@@ -0,0 +1,29 @@
+java_library_host {
+    name: "gax-java",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: [
+        "src/main/**/*.java",
+    ],
+    exclude_srcs: [
+        "src/main/java/com/google/api/gax/nativeimage/**/*.java",
+    ],
+    libs: [
+        "auto_value_annotations",
+        "libprotobuf-java-util-full",
+        "guava",
+        "jsr305",
+        "google-api-common",
+        "google-api-java-client-assembly",
+        "google-auth-library-java-credentials",
+        "google-auth-library-java-oauth2_http",
+        "opencensus-java-api",
+        "proto-google-common-protos",
+        "threetenbp",
+    ],
+    plugins: ["auto_value_plugin"],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
diff --git a/gax-java/gax/src/main/java/org/graalvm/nativeimage/ImageInfo.java b/gax-java/gax/src/main/java/org/graalvm/nativeimage/ImageInfo.java
new file mode 100644
index 0000000..dfe5ab5
--- /dev/null
+++ b/gax-java/gax/src/main/java/org/graalvm/nativeimage/ImageInfo.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package org.graalvm.nativeimage;
+
+/**
+ * Stub of
+ * https://github.com/oracle/graal/blob/50eaae78d5e19a296b4ad08957bf0ee50733a6e1/sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/ImageInfo.java
+ *
+ * Allows AOSP to compile gax-java without needing to import graalvm, since graalvm is not necessary
+ * for AOSP.
+ */
+public final class ImageInfo {
+
+  private ImageInfo() {
+  }
+
+  public static String PROPERTY_IMAGE_CODE_KEY = "org.graalvm.nativeimage.imagecode";
+  public static String PROPERTY_IMAGE_CODE_VALUE_RUNTIME = "runtime";
+}
diff --git a/java-common-protos/proto-google-common-protos/Android.bp b/java-common-protos/proto-google-common-protos/Android.bp
new file mode 100644
index 0000000..3b4d069
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/Android.bp
@@ -0,0 +1,13 @@
+java_library_host {
+    name: "proto-google-common-protos",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: [
+        "src/main/**/*.java",
+    ],
+    libs: ["libprotobuf-java-util-full"],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
diff --git a/java-core/Android.bp b/java-core/Android.bp
new file mode 100644
index 0000000..201e0e2
--- /dev/null
+++ b/java-core/Android.bp
@@ -0,0 +1,26 @@
+java_library_host {
+    name: "google-cloud-core",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: [
+        "google-cloud-core/src/main/**/*.java",
+    ],
+    libs: [
+        "auto_value_annotations",
+        "gax-java",
+        "google-api-common",
+        "google-api-java-client-assembly",
+        "google-auth-library-java-credentials",
+        "google-auth-library-java-oauth2_http",
+        "guava",
+        "libprotobuf-java-util-full",
+        "proto-google-common-protos",
+        "proto-google-iam-v1",
+        "threetenbp",
+    ],
+    plugins: ["auto_value_plugin"],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
diff --git a/java-iam/proto-google-iam-v1/Android.bp b/java-iam/proto-google-iam-v1/Android.bp
new file mode 100644
index 0000000..882da38
--- /dev/null
+++ b/java-iam/proto-google-iam-v1/Android.bp
@@ -0,0 +1,14 @@
+java_library_host {
+    name: "proto-google-iam-v1",
+    defaults: ["sdk-platform-java-default-visibility"],
+    srcs: ["src/main/java/**/*.java"],
+    libs: [
+        "libprotobuf-java-util-full",
+        "proto-google-common-protos",
+    ],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}