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 "";
   }
