我需要在Android上使用CyaSSL來處理我正在處理的項目。我一直在努力,沒有太多成功遵循CyassL的指令將其構建到內核中。主要問題是構建結構似乎已經從指令所寫的Android版本到當前版本發生了顯着變化。將CyaSSL與當前Android內核(KitKat)集成
我將列出步驟和相關的問題。
1)將「cyassl」目錄從提供程序的「src/external/cyassl」複製到Android平臺的「/ external」目錄下。此文件夾應位於:/ external/cyassl
這一步很好。
2)打開/build/core/prelink-linux-map.map並在標題爲「#庫for specific apps or temporary libraries」標題下添加一個新的libcyassl.so條目。它應該看起來類似於以下內容:ibcyassl.so
由於預鏈接已被刪除,所以對於最新版本的Android,此步驟似乎沒有必要。
3)打開文件/dalvik/libnativehelper/Android.mk並將libcyassl.so添加到shared_libraries列表中。
該文件看起來已經移動了,我發現我認爲是WORKING_DIRECTORY/libnativehelper/Android.mk下的正確文件並進行了相應編輯。
4)將「yassl」目錄從提供程序源的「src/libcore/yassl」複製到Android平臺的「/ libcore」目錄。這個文件夾現在應該位於:/ libcore/yassl
這裏沒問題。
5)SSL提供程序啓動方法必須在Android平臺上註冊。打開文件/dalvik/libnativehelper/Register.c。在現有提供商的條目下添加「register_com_yassl_xnet_provider_jsse_NativeCrypto」方法。添加時,它看起來應該如下:
if (register_org_apache_harmony_xnet_provider_jsse_NativeCrypto(env) != 0)
goto bail;
if (register_com_yassl_xnet_provider_jsse_NativeCrypto(env) != 0)
goto bail;
此文件,Register.c不存在,我不知道該怎麼辦步驟5
6)提供的初始化方法必須也可以添加到/dalvik/libnativehelper/include/nativehelper/AndroidSystemNatives.h的頭文件中。在現有SSL提供程序的聲明下向此文件添加以下方法聲明。添加時,它看起來應該如下:
int register_org_apache_harmony_xnet_provider_jsse_NativeCrypto(JNIEnv *env);
int register_com_yassl_xnet_provider_jsee_NativeCrypto(JNIEnv *env);
這個文件,AndroidSystemNatives.h也似乎不存在,如此反覆,不知道在這裏做什麼。
7)打開「security.properties」文件(位於/libcore/securit/src/main/java/java/security/security.properties)。進行以下更改以配置CyaSSL提供程序:
a)將以下行添加到提供程序列表中。此行需要位於默認的「org.apache.harmony.xnet.provider.jsse.JSSEProvider」提供程序之上。請注意每個提供商旁邊的數字。插入新提供商後,可能需要重新編號列表。
"security.provider.3=com.yassl.xnet.provider.jsse.JSSEProvider"
b)將「ssl.SocketFactory.provider」條目更改爲新的Cyassl Provider。修改完畢後,應該如下:
"ssl.SocketFactory.provider=com.yassl.xnet.provider.jsse.SocketFactoryImpl"
這個文件現在似乎是在/ libcore /盧尼/ src目錄/主/ JAVA/JAVA /安全性,我因此編輯。但是,由於缺少我不知道如何處理的步驟,因此無法構建它。我做了很多搜索,並沒有提供任何有用的東西。我的選擇似乎在這一點 -
1)獲得上述工作。
2)恢復到構建Android的舊版本(和所有相關的麻煩,與去,降級的Java,GCC,pyhton等)
3)找到一個方法來使用CyaSSL的Android庫沒有烘烤進入內核(我不確定這是否可能)
任何意見或方向將不勝感激。