2012年02月25日

androidでproguardを使えるようになるまで

人気ブログランキングへ

Android Security  安全なアプリケーションを作成するために

新品価格
¥3,360から
(2012/2/25 11:10時点)



マスタカです。
今までandroidは作ってアップロードしていましたが、
所詮Javaなので逆コンパイルされる。
以前Java Appletを作ったら
友人に逆コンパイルされてソース全部見られた苦い過去を持つ。

でも対策のしようないんじゃないかと勝手に思っていたので
何も対策しなかったが実はproguardというものがあることを知った。
これは難読化ツールということでソースを逆コンパイルされても
読みにくくするらしい。

結局読まれちゃうんじゃないんかなという意見はあるけれど
やらないよりはマシだと思ったので使ってみた。
これがなかなかうまく動かなくて1週間ドハマリしました。

以下proguardの使い方

1.最新の開発環境の構築が前提
最新の状態だと簡単にproguardが使えるので
http://masterka.seesaa.net/article/235942765.html


2.project.propertiesに記述の追加
project.propertiesに以下の記述を追加
proguard.config=proguard.cfg


そう通常ならこれで動くのだが
動かねえよ・・・
以下のエラーがでる。
error conversion to Dalvik format failed with error 1』
上記に対する対策が結構行われているが
人によってまちまちな様子。マスタカは以下を行った。


3.proguardのアップデート
以下からダウンロードし、
android SDKのtools\proguardの下のbinとlibを更新する。
現時点の最新版は4.7
http://proguard.sourceforge.net/#downloads.html


これで完璧化と思いきや動かない
java.io.IOException: Can't read [proguard.ClassPathEntry
おいおい・・・・


4.外部jarの設定をproguardに追加する。
マスタカはadMakerを使っていたのでこの外部jarファイルがエラーの原因と判明。
うまく読み込めるようにproguard.cfgに記述を追加する。
(jarファイルはlibsフォルダにおいてる前提)
-libraryjars \libs\libAdMaker.jar
これでjarファイルが読めるようになる。

さらに以下の記述を追加し、外部jarは難読化しないようにする
-keepclasseswithmembers class jp.co.nobot.libAdMAker.** { *; }


5.これでだめならwarnとnotice消しましょう
proguard.cfgに以下を記述
-dontwarn
-dontnote



これで何とか動きました。。。
すごい大変ですが、やっておくべきだと思うので
ぜひ参考にしてみてください。

・参考
http://wada811.blog.fc2.com/blog-entry-88.html
タグ:android
posted by マスタカ at 11:13 | Comment(0) | TrackBack(0) | PC・携帯 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/253948576
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック