У меня есть приложение Xamarin для Android, которое я пытаюсь подписать с помощью того же алгоритма подписи, который использует Visual Studio.
При развертывании из Visual Studio, я вижу, что он вызывает jarsigner с "-digestalg SHA1 -sigalg md5withRSA". Если я проверяю полученный APK (используя keytool), он говорит, что алгоритм подписи на самом деле SHA256 с RSA
Я пытаюсь получить тот же результат, когда я вручную подписываю APK, но независимо от того, что я делаю, я всегда получаю SHA1withRSA. Вот что я попробовал:
-digestalg SHA1 -sigalg md5 с RSA (аналогично VS), результат: SHA1 с RSA
-digestalg SHA1 -sigalg SHA256 с RSA, результат: SHA1 с RSA
-digestalg SHA-256 -sigalg SHA256 с RSA, результат: SHA1 с RSA
-digestalg SHA-256 -sigalg md5 с RSA, результат: SHA1 с RSA
Я проверял это:
- Я использую ту же версию JDK, что и VS (1.8.0_131)
- Параметры идентичны VS (я фактически скопировал параметры из вывода сборки VS, чтобы убедиться, что они идентичны.)
- Я использую то же хранилище ключей, что и VS (мое)
Кажется, что независимо от того, что я делаю, когда я запускаю jarsigner вручную, я всегда получаю SHA1withRSA. Чего мне не хватает?