Date: 2016/4/12 Cate: Android, C++, cocos2d-x Tags:  

2016年3月のおわりだか4月あたまくらいから、Google Playでセキュリティアラートが表示されているアプリが幾つかありました。
確認してみると、「OpenSSLのバージョンにセキュリティの脆弱性があります」とのこと。詳しくはこちらに載っています。
cocos2d-xを使ったAndroidアプリのみに出てるので、調べてみたところcocos2d-x内部で使っているlibcurlのバージョンが低いっぽいです。
こちらで議論されています。

libcurlのバージョンをあげる

まずは今のapkに含まれているOpenSSLのバージョンを確認します。Googleの記事にもありますが、$ unzip -p YourApp.apk | strings | grep "OpenSSL"でチェックできます。
渡しの場合、cocos2d-xのver3.3を使っているのですが、バージョンを上げる前は1.0.1jでした。
Githubのリポジトリでは、この脆弱性に対応した新しいバージョンのlibcurlがあがっているので、こちらをDLしてきて、プロジェクトのcocos2d/external/curlを置き換えます。
そしてビルドしなおしたら、無事1.0.2gに更新されました。
NDKのビルドツールのバージョンによってはうまくいかない、みたいなことも書いてあるっぽいですが、ひとまずうまくいったのでメモ。

【2016年4月15日 追記】

↑の方法でデバッグのビルドはうまくいったのですが、リリースビルドをしようとすると
error: relocation overflow in R_ARM_THM_CALL
というエラーがでました。
NDKをandroid-ndk-r10dからandroid-ndk-r10eに変更するとビルドが通るようになりました。

Leave a Reply