Androidのアプリをちょっと改造してみる

Androidマーケットからインストールしたアプリを、ちょこっと使いやすく改造してみました。
今回のネタになってもらうのは、シェルスクリプトを手軽に実行できるアプリ「GScript Lite」です。一部横画面に対応していないので、書き換えて対応させます。
このアプリ、自分でシェルスクリプトを書きさえすればどんな動作でもさせられるので、何気に使い出すと手放せません。以前、root化の手順で紹介した「mount /system (rw / ro)」というアプリがありましたが、これもスクリプトを2行(1行×2)を書いたらGScriptで代用できてしまいました。
まあ、GScriptの使い方はさておき。
機能的には申し分無いのですが、使っててちょっと使いづらいなと思うのが、スクリプトの実行画面が縦画面(portrait)に固定になっていること。今までは我慢して使っていたんですが、Androidアプリを解析して書き換えられるツールを見つけたので、ちょっと直してみようかなと。

  1. 例によってAndroid SDKのツール類が必須なので、インストールしてtoolsフォルダとplatform-toolsフォルダにパスを通しておきます。
  2. Android端末をPCに繋いで、例によってUSBデバッグをONにし、必要であればドライバもインストールしておきます。今回の手順ではAndroid端末側に対象のアプリがインストールされている必要があるので、それも確認しておきます。
  3. xda-developersのページから「Apk Manager」というWindows(またはLinux)PC向けのツールをダウンロードしてきて適当なフォルダに展開し、フォルダの中にあるScript.batを実行します。
  4. 黒地に緑の文字でずらっとメニューが書かれたウインドウが開くので、まず[0 Adb pull]を選び(0とEnterキーを入力し)、apkを取り込む元のAndroid側のパスとして"/data/app/nl.rogro.GScriptLite-1.apk"*1を入力します。ファイルの取り込みが成功するとリネームするファイル名を聞かれますので、そのまま何も入力せず[Enter]、カレントプロジェクトに選択するか?との問いには、とりあえずnで答えておきます。
  5. トップメニューに戻ってくるので、今度は[22 Set current project]を選び、something.apk(取り込んだファイルをリネームしないとこの名前になる)の番号を選択*2します。
  6. またトップメニューに戻ってくるので、[9 Decompile apk]を選び、アプリのパッケージファイルである.apkを展開します。展開が終了すると、ツールのフォルダの中にあるprojectsフォルダに、something.apkという名前でフォルダが掘られ、そこに展開したファイルが置かれます。
  7. 展開されたsomething.apkフォルダの直下にAndroidManifest.xmlというファイルがあるので、テキストエディタでこれを開き、"portrait"という文字列(2ヶ所ある)を"user"に書き換えて上書き保存します。
  8. ツールのメインメニューに戻り、[14 Compile apk / Sign apk / Install apk (Non System Apps Only)]を選び、書き換えを反映したアプリを上書きインストールします。
  9. 書き換え済みのアプリのパッケージファイルがplace-apk-here-for-moddingフォルダの中にsignedsomething.apkとして保存されているので、必要であれば適宜リネームして保存しておきます。ちなみにここで保存した.apkファイルは、PCにAndroid端末を繋いでコマンドプロンプトから"adb install ファイル名"と入力するとインストールすることができます。
  10. メインメニューから[18 Clean Files/Folders]→[7. Clean All Folders/Files]と選んで作業ファイルを削除し、さらにメインメニューから[24 Quit]を選んでツールを終了させ、Android端末をPCから外します。

これで、スクリプトの実行画面(とオマケにInformation / Caution画面も)が横画面対応になったGScript Liteの出来上がりです。
アプリケーションのインストール先のパスさえ調べが付けば、それほど難しい作業ではありません。まあ、書き換える内容を自分で考えようとすると、アプリケーション開発の知識が必要になってくるので楽ではないですが(^^;)。

*1:インストールの状況により拡張子の前の"-1"が変化する場合があります。うまくいかない場合は別途アプリなどでインストール先を調べてください。

*2:ファイルの取り込みの時にもカレントプロジェクトが設定できますが、ここで選択し直さないとパスの情報がおかしくなっていて以降の作業が失敗するので、注意が必要です。