ページへ戻る

− Links

 印刷 

cocos2d-x​/ver2系libpng問題の対応方法 :: NJF Wiki

xpwiki:cocos2d-x/ver2系libpng問題の対応方法

ページ内コンテンツ
  • 始めに
  • ライブラリの入れ替え
  • Android.mkの書きかえ
  • 確認

始めに anchor.png[1] Edit [2]

libpngの脆弱性の問題で、ライブラリ入れ替えなどの対応しなければgoogle playからアプリを削除されるという事が2016年頃にありました。

その時にすぐに対応したのですが、最近、coocs2d-xのver2.1を2.6に上げたとき、公開されているcocos2d-xに入っているlibpngが古くて再びgoogle play登録時にリジェクトされたので、その対応を2018年5月に行いました。

二度目の作業にもかかわらず、もう対応することはないだろうと、作業方法などメモしておらず、一から調べ直してちょっと手間がかかりました。今後似たようなことがあったときのためにこちらにやり方を記しておきます。

Page Top

ライブラリの入れ替え anchor.png[3] Edit [4]

まず、以下のサイトでcocos2d-xのサードパーティーのライブラリをダウンロードして解凍します。 https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/pull/233[5]

次に、自分のプロジェクト内の以下のディレクトリをダウンロードしたディレクトリで上書きします。

  • cocos2dx/platform/third_party/android/prebuilt/libpng

また、ダウンロードした以下のディレクトリを自分のプロジェクトに追加します。

  • cocos2dx/platform/third_party/android/prebuilt/zlib
Page Top

Android.mkの書きかえ anchor.png[6] Edit [7]

「cocos2dx/Android.mk」を以下のリンクのように変更します。

https://github.com/cocos2d/cocos2d-x/pull/15938/commits/d5c0b596a5f816274aecd3484abad60eb784d4a5[8]

つまり、フラグから「-lz」を取り除き、ライブラリとしてzlibを追加します。

あとは「build_native.sh」などでビルドして完了です。

Page Top

確認 anchor.png[9] Edit [10]

実際にリンクされたlibpngのバージョンを確認するには、作成されたlibgame.soに対して、以下のようにstringsを実行します。

strings libgame.so |grep 'png version'

結果が以下のようにv1.0.66, v.1.2.56, v.1.4.19,またはv1.5.26より後ならOKです。

libpng version 1.6.16 - December 22, 2014
 libpng version 1.6.16 - December 22, 2014

Last-modified: 2018-05-18 (金) 13:22:39 (JST) (2162d) by njf