FT701W LiveCD & OTA イメージからのリカバリ

前回公開した FT701W 用バックアップ/リストアスクリプトは、おかげさまでたくさんの動作報告をいただきました。みなさんありがとうございました。

今回はもっと手間を減らせるように FT701W 用の Live CD を作ってしまいました。

2015/5/5追記ここから

トラフィックも少ないと思われるので、ISOファイルをサーバに置きました。

2015/5/5追記ここまで

torrent での配布は初めてなので、問題があったら教えていただけるとありがたいです。

回線が細いものの、このサーバもシーダーになっているので、時間をかければダウンロードできると思います。また、ダウンロード完了後は可能なら、しばらくシーダーとして配布にご協力していただけると助かります。

さて、今回の Live CD では以下の機能追加と、修正が入っています。

  • LiveCD 化によりネットワーク設定が不要に
  • ota_package.zip からのリカバリ
  • device ID の判定見直し
  • 2GB以上4GB以下のバックアップイメージに対応

今回の目玉は、LiveCD 化と、ota_package.zip からのリカバリ機能です。

まず  Live CD の使い方です。

iso を焼いた CD or USB メモリで起動すると、以下のような画面になります。

README.TXT に手順が書かれているので、これをダブルクリックで開いて読みながら操作してください。

コマンドを打たなくてもアイコンをダブルクリックすれば、Backup, Restore, Recovery ができるようになっています。

以下、簡単に各手順を書いておきます。

バックアップ

  1. 2GB以上の空きのある microSD をFT701Wに挿入
  2. LiveCD で PC を起動し、Backup(赤い矢印)のアイコンをダブルクリック
  3. USBで FT701W を PC に接続    (FT701Wは電源ONでもOFFでもよい)
  4. バックアップが開始される。microSD の /bak/emmc-all.bin.gz に書きだされる。
  5. バックアップ後、FT701W は自動で再起動する。
  6. PC に表示されているログを確認し、7632MB まで進んでいれば成功。

リストア

  1. バックアップイメージの入った microSD をFT701Wに挿入
  2. LiveCD で PC を起動し、Restore(青い矢印)のアイコンをダブルクリック
  3. USBで FT701W を PC に接続    (FT701Wは電源ONでもOFFでもよい)
  4. リストアが開始される。
  5. リストア後、FT701W は自動で再起動する。
  6. PC に表示されているログを確認し、7632MB まで進んでいれば成功。

OTAイメージからのリカバリ

  1. 公式サイトで配布されている ota_package.zip を microSD のトップディレクトリにコピー (アップデート時と同じ)
  2. 上記 microSD をFT701Wに挿入
  3. LiveCD で PC を起動し、Recovery from OTA(緑の矢印)のアイコンをダブルクリック
  4. USBで FT701W を PC に接続    (FT701Wは電源ONでもOFFでもよい)
  5. リカバリの下準備が行われ、すぐ再起動がかかる。
  6. FT701W が再起動後、標準のアップデート画面が表示され、アップデート(リカバリ)が実施される。
  7. アップデート後、FT701W は自動で再起動する。

※注意※ リカバリを行うと、ユーザーデータは全て初期化されるのでご注意ください。
LiveCD 内の README.txt には /data は消えないと書いて有りますが、実際は消去します。

 

リカバリについてですが、K牧師さんが調査されたアップデートの方法(FT701W wiki 参照)を使わせていただいてます。

万能ではありませんが、ロゴループなどの大抵の状態からはリカバリできるはずです。

以下のようなケースではリカバリできないのでバックアップからのリストアをしてください。

  • パーテーションテーブルが壊れている or パーテーション構成が変わっている
  • recovery 用のイメージを書き換えている (今後カスタムリカバリが出た場合など)
  •  /system, /cache, /oem パーテーションのいずれかがマウントできないほど破壊されている

おそらく、OS を入れかえるなどの派手ないじり倒しをしていない限りは、リカバリできると思います。

 

関連した記事:


30 comments

  1. まさに至れり尽くせりのLiveCDですね。
    早速ダウンロード登録しました。
    うちの回線は上り100kB/s出れば御の字のぽんこつ回線なので役に立つか
    分かりませんがしばらくシーダーとして協力させていただこうと思います。

    bucchiさんのご尽力に感謝。

    • K牧師さん、こんばんわ
      早速ダウンロードありがとうございます。
      また、シーダーのご協力ありがとうございます。
      上り 100kB/s はうちの回線と同じくらいですね (^^)
      借りてるサーバが安いプランなので月々のダウンロード量の制限があるため、
      ちょっとでもシーダーになっていただけるだけでも、非常に助かります。
      ありがとうございます。

  2. 無事2GB超のバックアップデータからリストア出来ました。
    簡単に出来てこんな素晴らしいものを作っていただきありがとうございました!

    • もっくんさん、こんばんわ。
      リストアできましたか! 問題が直っていることが確認できて安心しました (^^)
      LiveCD も問題なく使えているようですね。

      FAT32 の制限で 4GB 以上のバックアップができない問題は残ってはいるのですが、
      まぁ、4GB は超えないんじゃないかと楽観視しています。

      ご報告ありがとうございました!

  3. 待っておりました
    IDの所で引っかかって復旧出来ずにいましたが。
    簡単に文鎮から復帰出来ました。
    本当にありがとうございました
    更なるご活躍応援してます。

    • ken さん、こんばんわ。
      文鎮からの復活おめでとうございます!!
      リカバリの初動作報告になりますね。
      ひとまず、動いたようで安心しました。

      ご報告ありがとうございました!

  4. LiveCDをUSB起動にして使ってみましたがすごくお手軽ですね
    これならLinuxの知識が全くない人でも迷わず使えそうです
    あとはパーティションの修復機能があれば完璧かな?

    • 返信遅くなってすいません。
      そうなんですよ。今回の LiveCD は USB 起動ができるものにしたので、
      CD焼かなくても使えるのです。
      動作確認も実は USB メモリでやってます。いちいちCDを焼いて確認するのが
      非効率だったので。

      パーテーションの修復機能ですが、たしかに、あれば完璧なんですが、
      需要は少ないかなと思います。
      強制的に電源断をしたりしても、そう簡単には壊れませんので。
      壊れてもバックアップデータからリストアすれば完全復旧しますしね。

  5. ここで聞くことじゃないかもしれませんが、このLiveCDにブラウザを追加することはできますか?

    • ブラウザを追加することは出来るんですが、貧弱なサーバでも配布できるよう、
      できるだけ ISO イメージのサイズを小さくしたかったので、
      不要なアプリは一切消してしまったんですよ。

      一応 apt は入っているので、LiveCD で起動後、ネットワークをつなげて

      sudo apt-get install firefox

      とかでインストールすることはできると思います。

      USB メモリにイメージを書いているなら、再起動してもインストールされた状態は
      保持できると思いますよ。

  6. お疲れ様です。K牧師です。

    ここんとこbucchiさんとは別のアプローチでFT701Wを便利に使うための方法を模索しています。
    root取らずにマーケット入れるとか、adb使わずにroot取るとか、邪魔くさいファイル消すとか…
    インチキ署名のota_package.zipでもリカバリーモードで実行ができるようにしてくれてるFRONTIERさんには感謝したいw

    それはそれとして。

    使用期間が長期間にわたり、アプリのインストール・アンインストールを繰り返しているとどうしても/dataにゴミが残ってしまい、bucchiさんのツールでバックアップしたときにバックアップファイルが肥大してしまいます。
    これは端末の初期化を行ってもどうしようもないのですが、以下の方法で対処できることが分かりました。
    アプリやアプリのデータが3G以上ある場合はダメかもしれません。

    1.bucchiさんのLiveCDでPCを起動し、「FT701 boot with maintenance image」のアイコンをクリックして電源を切ったFT701WをPCとUSBで接続する。

    2.adb shell

    3.userdataパーティションをマウントする。

    4.SDカードをマウントする。

    5.tarコマンドでSDカードにuserdataのバックアップを取る
    4G超える場合はgzipで圧縮

    6.userdataパーティションのファイルを全て削除

    7.userdataパーティションにファイルの中身がオール0の巨大ファイルを作る
    cat /dev/zero > a みたいな感じで、エラーが出て止まるまでファイルに0を出力する

    8.巨大ファイルを削除する

    9.tarコマンドで、バックアップをuserdataパーティションに書き戻す

    あとはFT701Wを再起動した後、bucchiさんのツールでバックアップを取れば
    ゴミデータがなくなる分バックアップファイルが小さくなるはずです。

    この方法は問題が一つあって、tarでuserdataパーティションをバックアップする際、userdataパーティションに存在するスペシャルファイルが2つバックアップできません。(tarコマンドがワーニング吐きます)
    wifiがらみのファイルっぽいんですが、バックアップできないので、バックアップを書き戻した際に欠品になってしまいますが、このファイルは再起動すれば再作成されるようなので、大きな問題にはならないと思います。
    #cpio使えば全部バックアップできるのかな…

    この方法だとファイル管理領域とかジャーナルとかまで消せなくて、一部のゴミデータは残ってしまうので、本当はuserdataパーティションの全領域を/dev/zeroでパディングした後ext4で再フォーマットしたいところなのですが、formatコマンド使えないですしこれが次善の策なのかなーと思います。
    #ota_package.zipのリカバリースクリプトと組み合わせればできる気も…

    同様にoemパーティションとcacheパーティションもキレイキレイしてあげると、更にバックアップファイルが小さく!

    という妄想をしてみました。
    妄想なのでよい子はまねしちゃいけません。

    長文失礼しました。

    • K牧師さん、こんばんわ。
      むむ!? もしかして・・・ K牧師さんて、いま某掲示板で有名な….さんじゃないですか?
      ご活躍拝見してます!

      さて邪推はこれくらいにして、/data の綺麗に仕方としては K牧師さんの方法で問題ないと思います。
      単にバックアップイメージを小さくするのが目的なら、ファイルを tar で退避せずに、ファイルが存在する状態で cat /dev/zero > a をやっても効果あると思いますよ。

      ただ、出来れば 00 で埋めるよりは ff で埋めたほうが、ちょっとだけ eMMC にやさしいかもしれないです。(あまり変わらないかもですが)

      あと、実はこっそり ext4 の作成も可能な mke2fs を入れているので、ext4 のフォーマットも可能なはずです(試してないのです・・)。

      実はバックアップ/リストアの時間やバックアップファイルサイズの問題があるので、バックアップを作成するときに /data パーテーションだけは tar で保存しようかと悩んだんですよ。
      ただ、購入時の eMMC の内容をそっくりそのまま保存・復帰した方が安全だし、いじった痕跡を消せる方がニーズが高いのかなと思って、丸々バックアップにしています。

      tar (cpio?) バージョンもあったほうがいいのかなぁ。
      それとも、ff で埋める機能を追加するか・・・。悩ましい・・。

  7. このツールのおかげで安心していじり倒せます。

    ところで、シャープの姉妹機のHPから、fwがダウンロードできるようになってます。
    FT701Wをシャープ端末化できるかもしれません。
    中身を軽く見てみたところ、gappsが初めから入っているくらいで、メリットはないかもしれませんが。
    差分を取ると、色々面白いことが分かりますよ。

    • LiveCD を使っていただきありがとうございます。

      お。本当ですね。RW-T107 のファームウェアが公開されてますね。
      確かに FT-701W を RW-T107 化することもできるかもしれないですね。
      ちょっと覗いてみましょうかね。

      この勢いで、kernel と u-boot のソースコードも公開してくれるといいんですが・・・。
      情報有り難うございました!

      • できましたー
        機種チェックで引っかかるので、build.prop差し替えたんですけどそれでもだめで、結局ota_package.zipをいじるはめに…

        そして、/data、/oem、/cacheをwipeしないと初回起動時のセットアップで先にすすめない罠が…

        また設定やらアプリのインストールやらのやりなおしです(ノ∀`)

        とりいそぎご報告でした

        • K牧師さん、こんにちわ。

          仕事早いですねー(^^)
          RW-T107 ならはじめからマーケットが使えるので便利かもしれないですね。
          私も中身覗いてみようかな。

          • 1日使ってみたんですけど、どっちもどっちかなーという気はしてます。
            FWの完成度はRW-T107の新FWのほうが高いかなーと感じました。
            rootも取れなくされてますし。

            適用するだけならbucchiさんのツールのOTAリカバリーで出力してる
            build.propの内容を”RW107″に変えれば適用できるんじゃないのかな。

            私はいろいろめんどくさかったので、ota_package.zip書き換えまし
            たけど、機種チェックはFW701と同じやり方でやってましたので、
            いけると思います。

            あとはFW初期起動時のセットアップの罠回避の為に、/oem、/cache、/data
            をwipeしてやればいいと思います。/dataだけではだめでした。
            #もしかしたら/oemだけでいいのかなー?

            ただ、リカバリーの仕組みが変わってしまうので、RW-T107化したあと
            はbucchiさんツールでバックアップをリストアする以外にFT701のFWに
            戻せません。
            こういうときにbucchiさんツールのありがたさが身にしみましたw

          • bucchiさんのツールで試してみましたけど、機種チェックで弾かれた模様。
            assert()が見てる情報がFT701のota_package.zipと違う気がする…

          • K牧師さん、いつもありがとうございます。
            まだ試せていないのですが、Android2.3は変わらないわけですし、
            聞いた感じでは、入れ替えることに手間がかかることを考えると
            FT-701W でもいいんぢゃね? って感じでしょうかね。

            無線LANやGPSのファームがあがって、色々改善されてたりしないですかね?
            特に GPS はちょっとひどすぎるので。

          • こんにちは、bucchiさん。
            ここのコメントを掲示板みたいに使ってしまってすいません。
            不都合あるようなら、このコメ削除するなり非表示にするなりして下さい。

            その後のRW-T107のFWについてご報告します。

            ・無線LANの問題
            スリープから復帰した後、無線LANの再接続に行かない事象が減った。
            スリープから復帰した後、再接続はするもののその後切断されることがある。
            1Mbps問題はもともとうちで事象が確認できないので改善されたかどうか
            は不明。

            ・GPSの問題
            感度が向上したという実感はない。
            が、GPSを使っていると通知領域に測位中を示すアイコンが表示されるが
            FT701のFWだと、表示されている状態でGPSをOFFにしてもアイコンが消え
            なかったが、RW-T107のFWだと消えるようになったので、何らかの修正は
            入ってる模様。

            ・リカバリーの問題
            従来の方法でOTAリカバリー可。
            オンラインで自動的にFWをアップデートする仕組みができたのは確かだが
            従来どおりSDカードからのアップデート(リカバリー)可。
            ただし、アップデートの為のツールが機種判別(SHARPかAEONかそれ以外か)
            をしているので、自動アップデートは無理。
            SystemUpdateアプリを入れてみたが、アイコンが出てこないのでなにか
            小細工がされてるみたい。
            bucchiさんツールによるOTAリカバリーを行うことができた。

            ・音飛び問題
            私的にはこれが一番の問題。
            音切れはなくならないが、何秒か早送りしたような飛び方はしなくなった。
            ブツッと途切れるようなキレ方はする。
            BlueToothのスピーカーなりヘッドセット使えば解決するんだけど…うーん。

            ・その他
            マーケットにradikoやrazikoは出てくるけどADW Launcherが出てこないので
            フルマケ化するにはhandheld_core_hardware.xmlを編集する必要あり。
            普通に使う分には困らないとは思う。
            root化するには、ota_package.zipに最初からsu・busybox・Superuser.apk
            を仕込むか、後でbucchiさんツールで仕込む。

            うーん、FT701のFWに戻すほど明確な不具合もないし、このまま使い続けて
            みますかねー。

          • K牧師さん、こんにちわ。
            情報ありがとうございます。
            コメントの件は全然構いませんよ。
            いつもコメントがなくて寂しいので、どんどん書いてください ^^

            細かく検証していただいてありがとうございます。
            さすが有名メーカー製、細かい所で完成度が高いようですね。

            音飛びは 2ch でも多く書かれていましたね。
            Bluetooth では OK ということは、Sound ドライバの問題なのかな?
            kernel のソースコードが公開されれば誰かが修正してくれる可能性も
            あるんですけどねぇ。

          • じゃあ、遠慮なく。

            >音飛び
            ドライバくさいですねー。
            どうもバッファオーバーランが出てる気配がします。
            飛び方が「途切れる」じゃなくて「数秒後に飛ぶ」なので。
            #止まった続きから再生が再開するようならアンダーランだと思うんですが。

            なにかのハードウェア系のサービスが妙なデバイスポーリングでもしててサ
            ウンドドライバが動けないとかそんな感じなのかなと推測して、片っ端から
            サービス止めてみたんですがNFCのサービス止めたらとりあえず「音が飛ぶ」
            という現象は消えました。今のところ…ですけど。

            具体的にはNfc.apkの削除とandroid.hardware.nfc.xmlの無効化。
            Nfc.apkの削除だけでもサービスは止まるんですが、xmlを無効化しないと
            Playストアが異常終了するようになるので。

            たぶん根本的な解決にはなってないと思うんですが、ちゃんと対処するには
            カーネルのビルドオプションの調整とかが必要になる気がします。

          • 返信遅くなってすいません。

            私もFT-701Wで音楽を聞いてみました。
            確かにちょこちょこ「数秒後に飛ぶ」現象起こりますね。
            音楽聞いてるとかなり気になります。
            私の方では「途切れる」現象は殆ど無かったです。

            なるほど。サウンドドライバではなく、NFC などの他のドライバが
            CPUを占有しているかもしれないですね。
            確かに、cat /proc/interrupts を連続して実行して差分を見ると、
            I2C でかなり大量の割り込みが発生しているようです。
            これが NFC デバイスなのかもしれません。
            私も NFC.apk を消して試してみます。

            K牧師さんのおかげでどんどん実用的になっていきますねー。
            ありがとうございます。

          • >I2C
            http://www.mjmwired.net/kernel/Documentation/nfc/nfc-pn544.txt

            てっきりUSBのデバイスなんだと思ってましたけど、FW701に搭載されて
            るNFCデバイスのIFはI2Cなんですね。

            しかし、サービス停止で音飛びが解消する理屈は分かってませんw
            デバイスドライバを止めたわけじゃないので、割り込み数に変化はない
            と思いますし、特にNFCサービスがCPU食ってるわけでもないですしねえ。

            I2Cといえば、電子コンパスのakm8976もI2Cですね。
            どうせ精度悪くて使えないんだから、使わないデバイス全部止めてしま
            いたい…

    • 匿名24時さん、こんにちは。

      えっと、質問からは目的語が抜けているのですが、
      バックアップか、リカバリのことですよね?

      バックアップも、リストアも、OTAからのリカバリも
      すべて root化してある状態でも行うことができます。

      root化の状態でバックアップすれば、リストアするとroot化された状態に戻せます。

      リカバリも、フルマーケット化などで build.prop を
      いじった状態からでもリカバリできるようにしてあります。

コメントを残す

メールアドレスが公開されることはありません。


*