ニュース

【追記あり】アプリを最低Androidバージョンより古いAndroidで起動する方法(AdvancedApkTool編)

アプリを最低Androidバージョンより古いAndroidで起動する方法です。無料ツールの「Advanced ApkTool」を使ってapkファイルを編集し、古いAndroidにもインストールできるようにします。
例として、「Pokémon GO」をAndroid 4.0/4.1/4.2/4.2でもインストールできるようにしてみました。

2016/8/24…コンパイルが失敗してしまう場合に、「apktool.jar」を最新版にすると解決できることを追記

アプリの最低Androidバージョンとは

アプリには最低Androidバージョンが設定されており、それ未満の古いAndroidでは動作することができません。

しかし、アプリによっては古いAndroidでも動いてしまうことがあります。

詳しくは以下の記事の「アプリの最低Androidバージョンとは」を参照して下さい。

「Advanced ApkTool」で書き換えて古いAndroidに強制インストール

こちらの記事の通り、アプリによっては指定より低いバージョンでも動く場合があります。

しかしながら、指定のAndroidバージョンより低いバージョンのAndroidにはそもそもインストールすることができないため、動作するかどうかを検証しようがありません。

そこで、そのアプリ指定のAndroidバージョンを書き換えて、強制的に古いAndroidにインストールしてしまおうというわけです。

アプリの最低Androidバージョンを書き換える方法はいくつかありますが、今回は「Advanced ApkTool」というツールを使う方法を紹介します。
PCでの操作が必要で手順が若干手間がかかるのですが、無料で使えるツールなので手軽に試したい場合にオススメです。

この「Advanced ApkTool」を使って、例として「Pokémon GO」をAndroid 4.0でもインストールできるように書き換えてみます。

全体の流れとしては以下の通りです。
  1. Advanced ApkToolでアプリ(apkファイル)をデコンパイル
    ※1つのファイル(apk)を複数のファイルに分解する
  2. 最低Androidバージョンを書き換え
  3. Advanced ApkToolでアプリ(apkファイル)にコンパイル
    ※複数のファイルを1つのファイル(apk)に組み立てる

端末上で完結する簡単な方法も

ちなみに、以前説明した方法は有料アプリ(600円)を使用していましたが、端末上で完結するので非常に簡単です。
サクッと終わらせたい方はこちらのほうが良いかもしれません。

実際に書き換えてみる

今回の作業環境は以下の通りです。
これ以外の環境では手順が異なる場合があります。その際は、自分の環境に合わせて適時読み替えて下さい。
  • Windows 10 Pro 64bit
  • Java Version 8 Update 101

事前準備①:Javaのインストール

Advanced ApkToolが動作するには、PCにJavaをインストールしておく必要があります。

こちらからインストールしておいて下さい。

事前準備②:Advanced ApkToolのダウンロード&解凍

Advanced ApkToolをダウンロードし、PC上のわかりやすい場所において下さい。
今回は、Dドライブ直下に置いたとして説明します。
Dドライブ直下に配置した

【2016/8/24追記】事前準備③:apktool.jarを最新版に更新する

ツールに同梱されている「apktool.jar」というファイルが古いため、一部のアプリを処理できない場合があります。
そのため、まずは「apktool.jar」を最新版に更新します。

下記のサイトの右上の「Current Version:」と書かれた部分をクリックし、ダウンロードしてください。
ダウンロードしたら、ファイル名を「apktool.jar」に変更します。
その後、「AdvancedApkTool」フォルダ内の「1-BDFreak」というフォルダに上書きして下さい。
「apktool.jar」を最新版で上書き更新する

事前準備④:最低Androidバージョンを書き換えたいアプリ(apkファイル)の用意

最低Androidバージョンを書き換えたいアプリ(apkファイル)を用意します。

apkファイルについてやapkファイルのダウンロード方法についてはこちらの記事を参照して下さい。
※Pokémon GOの場合、「APKMirrorからダウンロード」が一番手っ取り早いと思います。

ファイルを用意したら、「AdvancedApkTool」フォルダ内の「2-In」というフォルダに置いて下さい。
「2-in」フォルダにapkを配置
また、ファイル名が長すぎると処理できないので、適度な長さに変更して下さい。
※今回は「com.nianticlabs.pokemongo_0.29.3.apk」に変更しました
適度な長さにファイル名を変更しておく

Advanced ApkToolでアプリ(apkファイル)をデコンパイル

ファイルの配置が終わったら、まずは、書き換えるためにアプリを分解(デコンパイル)します。

※アプリ(apkファイル)は1つのファイルに見えますが、実は内部には複数のファイル・フォルダが含まれています。それらを1つ1つバラバラに分解することをデコンパイル(decompile)と言います。
  1. 「Advanced ApkTool.exe」をダブルクリックし、Advanced ApkToolを起動する
  2. Advanced ApkToolのメニューが表示されるので、「2」と入力し、「Enter」キーを押す
    ※「2 - Decompile Files」を実行します
    メニュー画面で「2」を選択
  3. 「2-In」フォルダに入れたアプリ(apkファイル)を選択する画面が表示されるので、書き換えたいアプリの番号を入力し、「Enter」キーを押す
    ※今回は1つしかないので、「1」と入力
  4. Are You Sure?」と確認されるので、「y」と入力し、「Enter」キーを押す
    ※「3-Out」フォルダが全て上書きされるので、このように確認されます
  5. 「続行するには何かキーを押してください...」と表示され、新しいウィンドウが開かれるので、処理が終わるまでそのまま待つ※数分程度時間がかかります
  6. 処理が終わると新しいウィンドウが自動的に閉じるので、「Enter」キーを押す
  7. 自動的に最初のメニュー画面に戻るので、右上の「×」ボタンをクリックして終了する
これでアプリの分解(デコンパイル)ができました。

分解された内容は、「3-Out」フォルダ内に出力されています。

最低Androidバージョンを書き換え

続いて、アプリの最低Androidバージョンを書き換えます。
  1. 「AdvancedApkTool」フォルダ内の「3-Out」フォルダを開く
  2. アプリのファイル名が書かれたフォルダを開く
    ※今回は「com.nianticlabs.pokemongo_0.29.3.apk」フォルダ
  3. 分解されたファイルが表示される
  4. キーボードの「Windows」キーと「R」キーを同時押しし、「ファイル名を指定して実行」ウィンドウを開く
  5. 「wordpad」と入力し、「OK」をクリックする
  6. ワードパッドが開くので、メニューリボンの上に「apktool.yml」をドラッグアンドドロップする
  7. 「apktool.yml」の内容が表示されるので、「minSDKVersion」と書かれた行を探す
  8. インストールしたい端末のAndroidバージョンに合わせて、「minSDKVersion」に書かれたAPIバージョンの数値を書き換える※AndroidバージョンごとのAPIバージョンはこちらを参照(リンク先のAPI levelが相当)
    今回は19(Android 4.4)から14(Android 4.0)に書き換えた
  9. 書き換えたら、右上の保存アイコンをクリックして上書き保存する
  10. ワードパッドを閉じる
これでアプリの最低Androidバージョンの書き換えができました。

Advanced ApkToolでアプリ(apkファイル)にコンパイル

最後に、書き換えたファイルをアプリ(apkファイル)に組み立てます(コンパイル)

※アプリ(apkファイル)は1つのファイルに見えますが、実は内部には複数のファイル・フォルダが含まれています。バラバラになっているファイル1つ1つを組み立ててアプリにすることをコンパイル(compile)と言います。
  1. Advanced ApkToolを起動する
  2. Advanced ApkToolのメニューが表示されるので、「3」と入力し、「Enter」キーを押す
    ※「3 - Recompile Files」を実行します
  3. 「3-Out」にあるバラバラになったアプリファイルが入ったフォルダを選択する画面が表示されるので、書き換えたいアプリが入ったフォルダの番号を入力し、「Enter」キーを押す
    ※今回は1つしかないので、「1」と入力
  4. どの作業まで行うかという選択肢が表示されるので、「4」と入力し、「Enter」キーを押す
    ※コンパイルから署名までの全作業を実行します
  5. Are You Sure?」と確認されるので、「y」と入力し、「Enter」キーを押す
    ※「4-Done」フォルダが全て上書きされるので、このように確認されます
  6. 「続行するには何かキーを押してください...」と表示され、新しいウィンドウが開かれるので、処理が終わるまでそのまま待つ※数分程度時間がかかります
  7. 処理が終わると新しいウィンドウが自動的に閉じるので、「Enter」キーを押す
  8. 自動的に最初のメニュー画面に戻るので、右上の「×」ボタンをクリックして終了する
  9. 「AdvancedApkTool」フォルダ内の「4-Done」フォルダを開き、コンパイルしたアプリ(apkファイル)が出力されていることを確認する
これで、書き換えたファイルをコンパイルしてアプリ(apkファイル)に組み立てることができました。


参考までに、今回書き換えたPokémon GOのapkファイルを置いておきます。インストール方法は下記の「インストール」の項目を参照して下さい。

※インストール後、端末を再起動して下さい。
※Googleアカウントで動作しない場合は、ポケモントレーナークラブでログインして下さい。

補足:不要なファイルの削除

「2-In」フォルダ内には自分で入れた書き換えたいアプリ(apkファイル)が、「3-Out」フォルダにはapkファイルを分解したものが入っています。

これらは数百MBほど容量があるはずなので(特に3-Outフォルダ)、今後使用しない場合は削除してこれらのフォルダ内を空にしておきましょう。

アプリのインストール

出力したapkファイルが実際に端末にインストール出来るようになったかどうかを確認してみてください。

アプリのインストールはこちらの記事の「インストール」の項目を参照して下さい。

※本来の内容を書き換えているため、ウイルス対策ソフト等から「疑わしいアプリ」として警告されることがあります。その際は、「無視する」等の選択肢を選び、アプリが削除されないようにして下さい。

強制インストールしても動かない場合も、使用は自己責任で

今回の方法では、本来指定されている最低Androidバージョンを書き換えて強制的にインストールしています。
これはアプリが指定より低いAPIバージョンを使用していると仮定し、より古いAndroidでも動くことを期待して行っています。

アプリによっては当然、指定されているバージョンのAPIをきっちり使っているものもあります。(というか、それが普通です)
そのため、動作がおかしい、インストールできても起動しないということや、今までは動作していたのに、更新したら動かなくなった(途中で、指定バージョンのAPIを使い始めたなど)ということが十分起こりえます。
これらは当然ながら開発者のサポート外なので、動作不良により損害が生じても全て自己責任になります。

「どうしても動作を確認したいアプリがある」という時などの暫定的な処置として捉えて下さい。

また、古いAndroidには放置されたセキュリティ脆弱性が多々あるので、アプリを変えるのではなくく、最新の端末に機種変更することをオススメします。

関連記事

Powered by Blogger.