AndroidアプリをProGuardで難読化する


Android Marketでアプリを公開するにあたって、逆コンパイルなどによるプログラムの解読を防ぎたい場合があります。その目的としては、ライセンス認証やセキュリティに関わる処理の内容を第三者に知られにくくしたいといった場合や、一部ジャンルのゲームなどのようにプログラムの解析によって著しくコンテンツの価値が下がってしまう場合の対応策として利用することなどが考えられます。

Androidアプリを難読化するためのツールとしてはProGuardが利用できます。これは最新のAndroid SDKには含まれていますので、現時点でアプリを公開している方は簡単に導入することができます。

ProGuardに関するAndroid Developers公式サイトのドキュメントはhttp://developer.android.com/guide/developing/tools/proguard.htmlです。

手順を要約すると以下のようになります。

ProGuardを有効にする

プロジェクトルートにProGuardの挙動を設定するためのproguard.cfgを作成します。最新のSDKで新規プロジェクトを作成すると自動的に作成されます。

デフォルトの proguard.cfg の内容:

そしてプロジェクトのルートディレクトリに、ant.propertiesを以下の内容で作成します。(以前はdefault.propertiesでしたがAndroid SDK r14から変更となりました)

準備ができたら、ant releaseまたは、eclipseによるエクスポートウィザードでリリースを行うと自動的に難読化が適用されます。デバッグビルドの場合は難読化は行われず、通常のビルドが行われます。

antビルドの場合はout.dirのディレクトリの下のproguard、そしてeclipseの場合はプロジェクトルート直下のproguardディレクトリに難読化処理の結果が保存されます。保存された内容は、アプリの強制終了などのときにユーザーからレポートされるスタックトレースの解析に利用しますので、リリースの都度保管しておく必要があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">