FireにFlashFireを使ってカスタムROMをインストールする手順

Amazon Fire (5th gen)をFireOSのまま使っていると、自動でOTAアップデートが適用されバグの修正やセキュリティ・アップデートが行われ、常に最新のシステムを使うことができます。普通に使う分には便利な仕組みです。

ただ、2015/12初旬のバージョン5.1.1のアップデートでbootloaderもアップデートされ、fastbootを使ってカスタム・リカバリーが起動できなくなりました。カスタム・リカバリーは本体のバックアップを取ったり、カスタムROMを焼いたりするために大変便利なプログラムです。

カスタムROMを焼くにはカスタム・リカバリーを使うのが一番簡単なのですが、他にもFlashFireを使って行う方法があります。私のFireのbootloaderは5.0.1のままでカスタム・リカバリーが使えるので、FlashFireの使い方を説明するつもりはありませんでしたが、一応説明しておきます。

前提としてroot化されている必要があります。今回は試しにCM12.1を焼いてみましょう。

必要なファイルはCM12.1のROM(2015/12/22のビルドからFlashFire互換になりました)、SuperSU-v2.52(v2.60以降はMarshmallow用なのでこのファイルを使いましょう)、Open Gapps(ARM、5.1のお好みのVariant。お勧めは最新のものではなく20151219版です。最新版よりも安定して動作も速いです。)です。CM12.1はsuが必須なのでSuperSUをインストールしないと起動しません(通常他のデバイスのCMはsuがROMの一部として入っていますが、FireのCM12.1のDevは何故かsuを故意に入れていません)。これらのファイルを内部ストレージないしSDカードに保存しておきます。

Open Gappsはサイズの違うVariantが複数ありますが、中に入っているGoogleご謹製アプリの数が違います。大きすぎるVariantを選ぶとカスタムROMを焼いた後の/systemの空き容量に収まりません(サイズチェック時のエラーでインストールが強制終了します)が、小さすぎるVariantを選ぶと後から特定のGoogleアプリをPlay Storeからインストールできない・アプリ起動時にエラーが起きる場合があります(アプリにも依存関係があります)。XDAではpicoやminiを推奨していますが、私の場合はsuperを自分で編集して/systemにフィットするようにしたものを使っています。編集の仕方は英語ですがこちらに説明があります。

FlashFireはSuperSUを開発しているChainfireのアプリで、Play Storeからダウンロードできます。他のサイトにもミラーされていますが、本物かどうかは保証しかねます。サイドロードするなりしてFireにインストールしましょう。初回起動時にroot権限を許可しておきましょう。

Screenshot_2015-12-24-10-26-10

起動するとメイン画面の右下にアクションを追加するための赤い丸に+のアイコンが表示されるので、それをタップすると次のようなメニューが出てきます。

Screenshot_2015-12-24-10-32-30

ここで使うのは「Wipe」と「Flash Zip or OTA」です。前者はパーティションをフォーマットし、後者はROMを焼きます。

「Wipe」をタップすると次の画面が表示されます。

Screenshot_2015-12-24-11-07-10

FireOSからカスタムROMを焼く場合は、System data、3rd party apps、Dalvik cache、Cache partitionにチェックをしておきましょう。カスタムROMを既に使っていて同じROMのアップデートをしたい場合のみ、3rd party appsのチェックは外しておきましょう。右上のチェックマークをタップすると、FlashFireのメイン画面にWipeを行うタスクが追加されます。全てのアクションはタスクとして登録されるだけで、最終的に「FLASH」をタップするまで何も実行しません。

Screenshot_2015-12-24-11-17-46

続けて赤い丸+アイコンをタップし、「Flash Zip or OTA」をタップします。

Screenshot_2015-12-24-11-20-10

画面上部の赤い帯のところにある白い▽をタップし、予めCM12.1/SuperSU/Gappsを保存しておいた場所を選びます。上の場合はSDカードを選択した後の画面です。

まずはCM12.1のZIPファイルをタップして選択します。次のような画面が表示されます。

Screenshot_2015-12-24-11-24-11

右上のチェックマークをタップし、メイン画面に戻ります。同様に赤い丸+アイコンをタップし、「Flash Zip or OTA」をタップし、SuperSUとGappsを追加します。必ずカスタムROM、SuperSU、Gappsの順で追加しましょう!

最終的には次のような画面になるはずです。

Screenshot_2015-12-24-11-27-56

この状態では何も行われていません。単にタスクを登録しただけです。最終的に「FLASH」というボタンを押して、実行します。Flashを押すと、

Screenshot_2015-12-24-11-32-04

「FlashFireを実行するのに1、2分かかります。画面が最大30秒ほど真っ暗になることが二度起きることがあります。」と英語で警告が出るので、OKをタップします。

ターミナル画面が表示され、タスクが実行されている様子が見えると思います。この状態はスクリーンショットが取れないのでご自分で確認してみてください。タスクを実行中はカスタム・リカバリーで同様のことを行った場合と同じ画面が表示されます。

約4分後、すべてのタスクが終了し、自動的に再起動しました。初回起動時は起動に時間がかかりますので、根気よく待ちましょう。CM12.1のロゴが表示され、2分くらいでロゴが消え「Android is starting…」と表示されたらうまくいったということです。CM12.1のロゴがずっと表示されるようなら(10分くらい表示されていたら多分失敗です)、何か手順を間違えたか、ダウンロードしたファイルが壊れていた可能性があります。残念ながらこの状態になった場合は、Amazonのサイトからファームウェアをダウンロードして、リカバリー画面の「apply update from ADB」から工場出荷時の状態に戻して、初めからやり直してください。

うまくいった場合は最終的にCM12.1の初期設定画面が表示されます。

Screenshot_2015-12-24-02-47-12

日本語を選択して、通常のAndroid端末のように設定を進めていきましょう。初期設定中CMのアカウントを設定・ログインする画面も出てきますがスキップして問題ありません。

Screenshot_2015-12-24-12-16-30

以上の手順でうまくいきました。

Screenshot_2015-12-24-12-10-28

流石Chainfireのアプリだけあって、完璧に動作しました。正直、Android上でAndroid自体を書き換えてしまうというという発想もすごいですが、それができてしまうことも驚きです。FlashFireはbootloaderがアンロックできないAmazonのFireタブレットのような端末向けに作られたアプリですが、Galaxyのような他社のbootloaderがアンロックできないデバイスでも(rootさえ取れれば)使えるようです。勿論Nexusでも動作するらしいです。すごすぎる…

【おまけ】うまくいかない可能性は以下の通りです。

  • ZIPファイルが壊れてる→ダウンロードし直し
  • 一番初めにFlashFireにroot権限を与えるのを忘れた→SuperSUでFlashFireの権限を確認
  • Wipeのオプションを正しく選んでいない→System data、3rd party apps、Dalvik cache、Cache partitionを必ずすべて選択。3rd party appsのチェックを外していいのは同じROMのアップデート時のみ。FireOSからカスタムROMにする場合は必ず3rd party appsのチェックを付ける。
  • ZIPを選択するときに、意味も分からず「Auto-mount」にチェックを入れた→「Auto-mount」にチェックを付ける必要は全くない
  • ZIPを選択するときに、SuperSUを加えていない(FireのCM12.1では必須)
  • 大きすぎるGappsを選択している→まずはMiniでやってみましょう

等でしょうか。

【追記 2016/02/10】Flashfireを使ってROMを焼いている最中に途中で止まり、強制終了した後bootloaderには入れるがリカバリーに入れなくなってしまい、ファームウェアを再インストールできなくなってしまったという現象が一部で起こっていましたが、bootloaderからリカバリーを起動する方法がありました。’fastboot.exe oem reboot-recovery’です。ご報告いただいたyananobさん、情報ありがとうございます。

ただ、’fastboot.exe oem reboot-recovery’でもAmazonのロゴで止まって、リカバリーメニューが表示されないケースもあるようです。この場合は本当にリカバリー領域が破壊されてしまっているのだと思います。

他にもfastboot.exe oemには隠しコマンドがあるのかも… そのうちbootloaderのアンロックもできるような予感がしてきた。

bootloaderがロックされた端末をFlashFireを使って文鎮化するのはかなり難しいです。最悪単にAndroidが起動しないだけです。FlashFireはAndroid上でAndroidを書き換えるアプリなので、当たり前ですが、Androidが起動していないと使えません。失敗してAndroidが起動しなくなった場合でも、ファームウェアを使ってFireOSを入れなおせば、元に戻ります。まずはPCでファームウェアを入れなおせる環境を作って、ファームウェアを入れなおせることを確認してから挑戦しましょう。

ネットでSlimLPからCM12.1にFlashFireを使ってdirty flashで乗り換えようとして、FlashFireの最中にスタックして、強制的に電源をオフにしたところ正常に起動せずリカバリーモードにも入れなくなったという報告を数件見かけました。3rd party apps(FlashFireの場合)やDataパーティション(カスタムリカバリーの場合)をwipeしないでROMを上書きすることをdirty flashと呼びますが、どの端末でも違うROMを dirty flashでインストールする場合正常に動作しないか起動しない場合があります。dirty flashは通常同じROMのバージョンアップの場合に行いますが、同じROMでも動作が正常に動作しない場合もあります。

FireのCM12.1のROMのインストールスクリプトはFlashFireと相性があまり良くなく、Open Gappsのminiかnanoがインストールしてある場合でないとインストールを中断したりします。FlashFireも未だにβ版という位置付けです。

FlashFireを使う場合の注意点としては、SlimLPから移行する場合はOpen Gapps nanoを入れておく。リカバリーモードでwipe data/factory resetとwipe cache partitionを実行しておく。必ずFlashFireでSystem data、3rd party apps、Dalvik cache、Cache partitionをwipeする。FlashFireはAndroid上からAndroid自身を書き換えるものなので、なるべくシステムが綺麗でゴミがない状態で使うのがベストです。

Fireに限らずFlashFireを使う場合は、この辺のリスクを承知してから、自己責任でお使いください。

21 Responses to “FireにFlashFireを使ってカスタムROMをインストールする手順”

  1. Koji Says:

    お世話になっております。
    以前、FlashFireの件でコメントさせていただいたものです。

    今回、qtotter様のこちらの記事を参考に
    SlimLP→CM12.1
    へFlashFireを用いてアップデートを試みたのですが、3rd party appsのチェックを入れるのを忘れてしまいアップデートしたところ、完全に終了せず10分以上同じ画面で止まってしまっていたため電源を落とし再起動したところCMロゴ画面から進まなくなってしまいました。
    なので、Fireのリカバリーを起動しようとしたのですが電源+Vol Downキーを同時押ししてもリカバリーが起動しません。
    Fastbootは起動するので、fastboot reboot recoveryやfastboot flashall、fastboot update Fire5.1.1のzipファイル などのコマンドを起動しても復元できない状態に陥ってしまいました。

    恐らく、FireのリカバリーファイルがWipeされてしまい、現状fastbootしか起動できないになっているのかと思います。

    もし解決策がありそうでしたら、お教えいただけるとありがたいです。
    何度もすみません。よろしくお願いいたします。

    • qtotter Says:

      CMロゴ画面から進まないというのは、CM12.1にSuperSUが入っていない時の症状です。(普通CMのROMにはSuperSUが入っているのですが、何故かggow氏は入れないんですよね…)

      まず、Fireのbootloaderはロックされているので、どのような方法でも、bootloaderやリカバリー領域を書き換えることはできません。Flashfireでリカバリーがwipeされているようなことはないです。

      電源がオフの状態で(切ってから数分待つ)、電源+Vol Downキー(音量の左側のボタン)を5秒以上押し続けましたでしょうか?冷静にもう一度リカバリーモードを試してみてください。

      上にも書きましたが、「まずはPCでファームウェアを入れなおせる環境を作って、ファームウェアを入れなおせることを確認してから挑戦しましょう。」

    • qtotter Says:

      以下のコマンドで立ち上がるか、試してみてください。su権限が与えられるので、起動するかもしれません。

      fastboot oem append-cmdline "androidboot.unlocked_kernel=true"
      fastboot continue

      • Koji Says:

        お返事ありがとうございます。

        リカバリーの起動は何度も試してみたのですが、Amazonロゴが表示され(電源+Vol Downキーは押し続けている)、10秒ほどするとリカバリーに入らずに電源が落ちてしまいます。

        fastboot oem append-cmdline “androidboot.unlocked_kernel=true”
        fastboot continue
        コマンドでsu権限を取得した状態で起動してもCMロゴから先に進みませんでした。FlashFire使用時にインストール自体が完了していなかったためかと思われます。

        また、現在デバイスマネージャでのFireの認識は「Android Composite ADB Interface」になっております。

        自分としてはリカバリーに入れればFire OSを焼き直せるということが確認できていたため、今回の件は完全に想定外でした…。

        何とかならないものでしょうか。

      • qtotter Says:

        XDAでも同じ症状の人がいますね。ネットでも調べましたが、他にも一件同じ症状を見つけました。どれもSlimLPからcmをインストールしようとして、失敗してます。

        ちなみに、いつのcm12.1のROMを使いました?今試してみたんですが、cm-12.1-20160104-UNOFFICIAL-ford.zipではSuperSUがなくても起動しますね… 以前はロゴで止まっていたのですが。

        FlashFireの経過時間的にROMはインストールされていると思います。ロゴで止まるのはSuperSUがないからなので、コマンドラインでsuを取得して、手動でSuperSUを入れてみては如何ですか?やり方はここに書いてあります。
        https://qtotter.wordpress.com/2015/12/19/amazon-fire-5th-gen%E3%81%AEroot%E5%8C%96%EF%BC%88%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%89/

  2. Koji Says:

    ありがとうございます。

    使用したCM12.1のROMは、
    cm-12.1-20160104-UNOFFICIAL-ford.zip
    なのでFlashFireでの書き込みが完了していないのでしょうか。
    3rd party appsのチェックを入れるのを忘れてしまったことが原因かもしれません。

    fastboot oem append-cmdline “androidboot.unlocked_kernel=true”
    fastboot continue
    の実行後、Fireが再起動するのですがここでCMロゴが永遠に動き続け、adb コマンドが実行できる状態にならない為、
    adb wait-for-device && adb remount
    このコマンドが完了せずSUがインストールできません。

    fastbootからリカバリーがインストールできるようになるまで待つしかありませんかね…。

    • qtotter Says:

      何かAmazonがまたアップデートで変えたみたいですね。http://forum.xda-developers.com/showpost.php?p=64678762&postcount=2
      の記事を読むと、「5.1.1 でもリカバリーは使えるけど、==>Booting Recovery…という表示はなくなった。電源キーとボリュームキーをホールドして、Amazonのロゴが表示されたらキーを放す。そしてsideloadすればいい。」とあります。
      うちのFireは二台とも5.0.1なので、これを検証できませんが、試してみてはいかがでしょうか。

      • Koji Says:

        ありがとうございます。

        5.1.1で以前に何度かsideloadして復元したときも「、==>Booting Recovery…」の表示はありませんでした。が、リカバリーには入れました。
        「電源キーとボリュームキーをホールドして、Amazonのロゴが表示されたらキーを放す。そしてsideload」を試してみたのですが、adb deviceとして認識されていない状態です。

        xdaのフォーラムも読んでみたのですが、現状解決策は無いようですかね。

      • qtotter Says:

        リカバリーに入れないということが稀なので、反応が薄いんですよね… 「本当?」という感じだと思います。何かが邪魔しているんでしょうけど、それが何なのか…

  3. Koji Says:

    fastboot のみ生きている現状だとbootloaderがアンロックされる方法が見つかるまで何も出来なそうですよね…。

    XDAのフォーラムは毎日チェックしているので解決策が見つかるまで気長に待っていようかと思います。
    いっしょに調べていただいてありがとうございました。

  4. yananob Says:

    わたしもKojiさんと同じような症状でしたが、
    http://www.rootjunky.com/amazon-fire-5th-gen-supertool/
    のSuperToolを落として、
    2-Boot-Recovery-To-Restore-Device.bat
    で1.を選んだら、Recoveryから起動して、ADB sideloadから復帰来ました。
    普通にコマンドラインから adb devicesをしても、デバイスが表示されなかったのに・・・。

    • qtotter Says:

      2-Boot-Recovery-To-Restore-Device.batの中身を見てみました。1を選択すると’fastboot.exe oem reboot-recovery’を実行するようになっています。実際にbootloaderから’fastboot.exe oem reboot-recovery’を実行するとリカバリーが立ち上がりました。すごい発見です!

    • qtotter Says:

      人によっては’fastboot oem reboot-recovery’を実行しても、Amazonのロゴで止まってしまい、リカバリーメニューまで進まないようですね… リカバリーに入れなくなっているだけのケースと、リカバリーが本当に壊れてしまっているケースがあるようです。

  5. k0un1x Says:

    いつもサイトを見させていただいています。
    手順通り行っているのですが、PlayStoreが
    インストールされていません。
    別途導入するのでしょうか。
    SuperToolのfileを参考に導入をしてみましたが、
    開発者サービスを終了しますが連発し、
    ログインできません。
    どのようにすればよろしいでしょうか?

  6. k0un1x Says:

    すみません。自己解決いたしました!

  7. TYYT Says:

    このFire タブレットはまだ手元にないのですが予習しておきたいです。
    FireのRecoveryは起動方法は「電源ボタン+音量小ボタン」とわかっているのですが、
    Bootloaderの起動方法がわかりません。
    どのようにBootloaderを起動するのですか?
    もしRecoveryに起動できなくなる前に事前に知っておきたいです。
    宜しくお願いします。

  8. Daiki Kosho Says:

    FireHD7(第四世代、KFASWI、OS5.1.1)に、flashfireを使ってCM12.1を焼こうと思い、こちらのページを参考にチャレンジしてみたのですが、flashをタップしたあとずっと暗い画面のままで、カスタムROMを入れることが出来ませんでした。こちらのページで紹介されている機種(2015年版のFire)の一世代前の機種ですが、OSのバージョンは同じなので同じ方法で可能かと考えたのですが、どうもうまくいかないようです。再起動はできますが、再起動しても内部のデータはそのまま残っていたので、flashfire自体の問題(ver.0.53を使いました。過去のバージョンは日付で制限がかかっているのか強制終了してしまいます。)かと思ったのですが…何かいい方法をご教授願えませんでしょうか?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: