我有這個問題,因爲這是使用依賴性的整個列表的應用程序。經過多次搜索答案,這是什麼對我有用:
我創建了腳本叫做findopenssl.sh(我發現這在另一個SO回答某處,但沒有參考信貸作者 - 也是,將myhomedirectory更改爲無論您想要工作的目錄是什麼,我都使用了我的主文件夾,因爲它在終端中讓生活更輕鬆)。這個腳本會識別你的apk引用OpenSSL的文件,以及那些實現被認爲是安全風險的心跳功能):
#!/bin/bash
sslworkdir=「myhomedirectory」
if [ ! -d $sslworkdir ]; then
mkdir $sslworkdir
fi
unzip -q "$1" -d $sslworkdir
#Set delimiter to ignore spaces
IFS=$'\r\n'
#Create an array of OpenSSL version strings
opensslarr=($(egrep --binary-files=text -o -R -e "OpenSSL\s\d+\.\d+\.\d+\w+\s\d+\s\w+\s\d+" $sslworkdir/*))
#Stackoverflow syntax highlight fix closing 'block comment' */
if [ ${#opensslarr[@]} -gt 0 ]; then
echo "Found OpenSSL versions"
printf "%s\n" "${opensslarr[@]}"
heartbeatarr=($(grep -R -E "(tls1_process_heartbeat|dtls1_process_heartbeat|dtls1_heartbeat|tls1_hearbeat)" $sslworkdir/*))
#Stackoverflow syntax highlight fix closing 'block comment' */
if [ ${#heartbeatarr[@]} -gt 0 ]; then
echo "Files that contains heartbeat methods:"
printf "%s\n" "${heartbeatarr[@]}"
else
echo "No libraries contain heartbeat methods"
fi
else
echo "Did not find OpenSSL"
fi
rm -rf $sslworkdir
我複製我的apk到我的主目錄,並在終端窗口運行腳本搭配:
sh findopenssl.sh myappname.apk
在我而言,這個標識被稱爲libportsip_core.so具有舊版本的OpenSSL引用一個庫文件。
我發現了libportsip_core.so(armv7和x86)的兩個版本並刪除了它們。然後,我再次清理,重建並構建了我的apk並再次運行腳本。這很好,我成功地提交到Play商店。
你有沒有嘗試繞過SSL認證 –
你是什麼意思?我如何做到這一點? – Sandak
您也可以禁用SSLCertificateChecking與此,你不需要任何類型的認證,同時擊中網址到服務器 –