Expose getUnsignedApk and getKeystore from ApkInfo and
apkSigningMethodV1/apkSigningMethodV2 from AndroidConfiguration to Starlark.

PiperOrigin-RevId: 233483614
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 67481a6..cf6b244 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -1229,6 +1229,16 @@
   }
 
   @Override
+  public boolean apkSigningMethodV1() {
+    return apkSigningMethod.signV1();
+  }
+
+  @Override
+  public boolean apkSigningMethodV2() {
+    return apkSigningMethod.signV2();
+  }
+
+  @Override
   public boolean useSingleJarApkBuilder() {
     return useSingleJarApkBuilder;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApkInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApkInfo.java
index 18b07e8..41bb240 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ApkInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApkInfo.java
@@ -61,6 +61,7 @@
   }
 
   /** Returns the unsigned APK file built in the transitive closure. */
+  @Override
   public Artifact getUnsignedApk() {
     return unsignedApk;
   }
@@ -77,6 +78,7 @@
   }
 
   /* The keystore that was used to sign the apk returned from {@see getApk() */
+  @Override
   public Artifact getKeystore() {
     return keystore;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java
index 3454396..0c3e591 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java
@@ -64,6 +64,12 @@
       documented = false)
   boolean incrementalDexingAfterProguardByDefault();
 
+  @SkylarkCallable(name = "apk_signing_method_v1", structField = true, doc = "", documented = false)
+  boolean apkSigningMethodV1();
+
+  @SkylarkCallable(name = "apk_signing_method_v2", structField = true, doc = "", documented = false)
+  boolean apkSigningMethodV2();;
+
   @SkylarkCallable(
       name = "assume_min_sdk_version",
       structField = true,
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java
index 47e4a03..91305f5 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java
@@ -48,6 +48,22 @@
       structField = true)
   FileT getApk();
 
+  /** Returns the unsigned APK file built in the transitive closure. */
+  @SkylarkCallable(
+      name = "unsigned_apk",
+      doc = "Returns a unsigned APK built from the target.",
+      documented = false,
+      structField = true)
+  FileT getUnsignedApk();
+
+  /** Returns keystore that was used to sign the APK */
+  @SkylarkCallable(
+      name = "keystore",
+      doc = "Returns a keystore that was used to sign the APK.",
+      documented = false,
+      structField = true)
+  FileT getKeystore();
+
   /** Provider for {@link ApkInfoApi}. */
   @SkylarkModule(
       name = "ApkInfoApiProvider",
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeApkInfo.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeApkInfo.java
index 3acecce..8a8b4cf 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeApkInfo.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeApkInfo.java
@@ -32,6 +32,16 @@
   }
 
   @Override
+  public FileApi getUnsignedApk() {
+    return null;
+  }
+
+  @Override
+  public FileApi getKeystore() {
+    return null;
+  }
+
+  @Override
   public String toProto(Location loc) throws EvalException {
     return "";
   }