開発とテストの目的で自己署名証明書を使用しています。Androidエミュレーターに自己署名証明書を受け入れさせるためのさまざまなアプローチを調査しました。これまでのところ、次のアプローチのバリエーションを見つけました。
- 任意の証明書を受け入れる独自のセキュリティ クラスを提供します。
- 自己署名公開鍵を含むアプリのキーストアを作成します。
- プロパティ socket.relaxsslcheck を yes に設定します。
最初の 2 つのオプションは非常に複雑で、開発、テスト、本番などの環境への依存関係をコードに導入します。
オプション 3 環境構成が動作を駆動するため、コンテナーで実行されているアプリに構成済みのデータソースを提供する Web コンテナーとは異なり、私が気に入っています。開発環境は、開発データソースなどを指します。残念ながら、私はそれを機能させるのに苦労しています。私は次のことを試しました:
adb を使用してプロパティを設定する
adb shell setprop socket.relaxsslcheck yes
System.setProperty の使用
System.setProperty("socket.relaxsslcheck","yes")
/system/build.prop と default.prop を変更しようとしました
最初のオプションは無視されます。私が読んだことから、プロパティの設定は再起動後に有効になるようです。しかし、このプロパティは揮発性のようで、エミュレーターの再起動後は存続しません。
System.setProperty(...)
Factory は既に作成されているため、このアプローチは遅すぎるようです。上記の懸念 (コード内の開発環境固有のコード) のため、他に方法がない場合を除き、この方法は使用しないことをお勧めします。
最後のオプションは、エミュレーターの再起動に耐えるはずですが、実行した後でもそれらのファイルに書き込むことができませんadb root
。
私は Android 開発に不慣れで、最善のアプローチとは何か、それを機能させる方法についてのガイダンスをいただければ幸いです。