diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/AndroidSignPackage.cs b/src/Xamarin.Android.Build.Tasks/Tasks/AndroidSignPackage.cs
index 0ba322cc509..3490173077c 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/AndroidSignPackage.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/AndroidSignPackage.cs
@@ -32,6 +32,8 @@ public class AndroidSignPackage : AndroidToolTask
public string TimestampAuthorityCertificateAlias { get; set; }
+ public string SigningAlgorithm { get; set; }
+
protected override string GenerateCommandLineCommands ()
{
var cmd = new CommandLineBuilder ();
@@ -42,7 +44,7 @@ protected override string GenerateCommandLineCommands ()
cmd.AppendSwitchIfNotNull ("-storepass ", StorePass);
cmd.AppendSwitchIfNotNull ("-keypass ", KeyPass);
cmd.AppendSwitchIfNotNull ("-digestalg ", "SHA1");
- cmd.AppendSwitchIfNotNull ("-sigalg ", "md5withRSA");
+ cmd.AppendSwitchIfNotNull ("-sigalg ", string.IsNullOrWhiteSpace(SigningAlgorithm) ? "md5withRSA" :SigningAlgorithm);
cmd.AppendSwitchIfNotNull ("-signedjar ", String.Format ("{0}{1}{2}-Signed-Unaligned.apk", SignedApkDirectory, Path.DirectorySeparatorChar, Path.GetFileNameWithoutExtension (UnsignedApk)));
cmd.AppendFileNameIfNotNull (UnsignedApk);
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
index fb60b3fe313..e692a167c4d 100755
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
@@ -2439,6 +2439,7 @@ because xbuild doesn't support framework reference assemblies.
ToolExe="$(JarsignerToolExe)"
TimestampAuthorityUrl="$(JarsignerTimestampAuthorityUrl)"
TimestampAuthorityCertificateAlias="$(JarsignerTimestampAuthorityCertificateAlias)"
+ SigningAlgorithm="$(ApkSigningAlgorithm)"
/>