【Android】万が一ソースが消えてしまってもAPKファイルがあると復活可能です!

【Android】万が一ソースが消えてしまってもAPKファイルがあると復活可能です!

Androidの開発をしていて、「そういや過去やった時ってどうしたっけ!?」と過去のソースを探したら。。。ない!
なんでないの!?と少々パニックになっていましたが、思い出しました。
MacのOSをバージョンアップした時、インストールに失敗しクリーンインストールせざるを得なくなってしまいました。その時消えてしまったんですね。。。

ソースはサーバーに退避しているのでそちらに残ってはいるのですが、「そういやJavaのjarファイルは解凍するとソース出てくるよね?じゃあAndroidのapkファイルはどうなの!?」と思い調べてみました。

apkファイルからもソースコードを見ることが出来るんです!

いつもならがGoogle先生にお世話になりました。同じ事を考えている先人はいらっしゃいますね。今回はこちらのサイトを参考にさせていただきました。

☆参考先のサイトに記載されていますが、大切なことなのでこちらでも記載します。

これはいわゆる「リバースエンジニアリング」と言われる手順です。
他者及び他社の作成したapkをリバースエンジニアリングすることは、法律に触れる場合が多いですので、あくまでも、ご自分のapkや社内製の成果物に対してのみ行って下さい。自己責任でお願いします。

参考先のサイトにステップごとに解説頂いていますが、「ステップ2 smali → dex」まで実施しなくていいです。

apkファイルをZIPで解凍するとソースコードが仕込まれたdexファイルが出てきます。

※apkファイルの解凍ですが、apkファイルの拡張子をzipに変更し解凍しようとしたのですが、Macだと失敗するようです。Windowsだと正常に解凍出来ました。

ステップ3以降実施するとJavaのClassファイルが見れるようになります。

 

いざという時助かりますね!

 

ソースファイルのバックアップは適宜取るようにしましょう。
開発PCを同じ場所にリネームして退避していても、開発PCがクラッシュしてしまうと目も当てられません。できれば別のサーバーに、費用的に可能なら社外のバックアップシステムを利用するのも良いのではないかと思います。

使えるクラウドバックアップちょっと気になるサービスです。