Реализация AndroidKeyStore не найдена при запуске через cli

У меня есть 1 java-программа, использующая API-интерфейсы Android Keystore. Мы запускаем эту программу (как программу Java, но не приложение Android), чтобы использовать криптографические операции на плате на базе Android.

Запуск этой программы через студию Android работает нормально, т.е. создает образец приложения (которое внутренне использует API-интерфейсы хранилища ключей через поставщика безопасности AndroidKeystore) и устанавливает этот apk. Но нам нужно запустить эту программу через командную строку, так как реальная программа не будет в формате apk.

Похоже, что Security Provider AndroidKeyStore работает только во время работы с приложением, но не через командную строку.

Пробовал следующие способы:

1) Скомпилил прогу через javac, создал jar и потом конвертировал в dex для запуска через cli

2) создал банку из студии Android, а затем преобразовал в dex для запуска через cli

3) Android-приложение работает как на эмуляторе, так и на плате,

126|u0_a82@msm8916_64:/data/data/berserker.android.apps.sshdroid/home $ dalvikvm -cp apiclient.dex com.example.test_jar.ApiClientAndr>
in api client main
java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore AndroidKeyStore implementation not found
    at java.security.KeyStore.getInstance(KeyStore.java:119)
    at com.example.test_jar.ApiClientAndroidKeyStore.main(ApiClientAndroidKeyStore.java:279)
Caused by: java.security.NoSuchAlgorithmException: KeyStore AndroidKeyStore implementation not found
    at org.apache.harmony.security.fortress.Engine.notFound(Engine.java:190)
    at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:139)
    at java.security.KeyStore.getInstance(KeyStore.java:116)
    ... 1 more

Ниже приведен список поставщиков безопасности.

1) При работе в эмуляторе/плате

Name: AndroidKeyStoreBCWorkaround, Information:Android KeyStore security provider to work around Bouncy Castle
Name: AndroidOpenSSL, Information: Android's OpenSSL-backed security provider
Name: BC, Information: BouncyCastle Security Provider v1.52
Name: Crypto, Information: HARMONY (SHA1 digest; SecureRandom; SHA1withDSA signature)
Name: HarmonyJSSE, Information: Harmony JSSE Provider
Name: AndroidKeyStore, Information:Android KeyStore security provider

2) При запуске через cli

Name: AndroidOpenSSL, Information: Android's OpenSSL-backed security provider
Name: BC, Information: BouncyCastle Security Provider v1.52
Name: Crypto, Information: HARMONY (SHA1 digest; SecureRandom; SHA1withDSA signature)
Name: HarmonyJSSE, Information: Harmony JSSE Provider

person a.m.    schedule 22.11.2017    source источник