2013年10月19日土曜日

転ばぬ先の杖 「Factory Cable」なる物を作った

以下内容は冗談抜きでリスクを伴う。ご利用は自己責任で。

何に使うもの?
(「Kindle Fire HD」のレンガ回復に使用)

実は結構そんなのどうでもよくて、作る工程自体が楽しめたりする。



用意するもの
100均(ダイソー)でmicroB USBケーブルを買ってきた。
bbbb01.png

その他必要とおもわれる物
半田コテ、鉄ヤスリ、ハサミ、ニッパー等

やることは1PIN(赤)と使われてない4PINを繋げればOK。
皮むきさえうまくいけば半田付けはそんなに難しくない。
コネクタ外側の黒いカバーはハサミで切込を入れながらニッパーで丁寧に剥がしていく。
半透明なプラスチック部分が見えたら、ヤスリとニッパーで半田付けしたい箇所が見えるように慎重に削っていく。

ホントに慎重にいかないとケーブルごとごそっと逝ってしまう。

半田つけ箇所が露出したら表裏で接続しておわり。

bbbb02.png

Factoryケーブルの使い方は、本体電源を落とした状態で接続すると強制的にfastbootに入る。
この方法自体が対策されない限りは本体レンガになってもfastbootまでは行ける・・・。

faasdf01.png

ケーブルを抜いてリブートすれば通常起動した。

ドライバも問題ないみたいだ。
c:\kindle>fastboot -i 0x1949 reboot
rebooting...

finished. total time: -0.000s


はてさて、はんだこてを握ったのは何年ぶりだろうか。

下手すると本体ぶっ壊れのリスクを伴いながらも、ちまちま作業するのが実に楽しい。

【Kindle Fire HD】カスタムROM(CM10.1)を入れてみる

Kindle Fire HDにカスタムROMのCyanogenMod10.1(CM10.1)を導入しようと思い、

まずはブートローダの書き換えと、リカバリーツールであるTWRPの導入を行いました。

CM10.1はAndroid 4.2ベースのカスタムROMになります。

導入はXDAのフォーラムに記載されている流れ通りです。

最新の導入方法を必ずXDAのフォーラムで確認してください。

この作業にはKindle Fire HDのルート化とAndroidSDK環境が構築されていることが前提です。

 ⇒【Kindle Fire HD】(ルート化 #1) ドライバーをインストールしてパソコンとKindleを認識させる

 ⇒【Kindle Fire HD】(ルート化 #3) ルート化作業の本番

現在使用しているKindleのOSは、Amazonのストックロムで、2013/5/3時点で最新のバージョン7.3.1です。

導入するTWRPのバージョンは2.4.4.0です。

作業は自己責任でお願いします。

adbコマンドを使用するので、

Kindle Fire HDの設定を開き"その他"⇒"セキュリテ"ィから"ADBを有効にする"を"ON"に変更します。

kindle-root-21

KindleとパソコンをUSBケーブルで接続し、コマンドプロンプトを起動します。

最初に現在のブート、リカバリー、システム領域のバックアップを行います。

ddコマンドで、対象の領域をKindleの"/sdcard"フォルダにコピーします。

実際のコマンドは以下のようになります。

2013/05/18追記

新しく"boot0″ブロックのバックアップが追加されています。
同じようにバックアップすることをおススメします。

"boot0″ブロックには端末固有の重要な情報が含まれているようです。
詳細は以下で確認してください。

<ATTN: Backup your boot0 block today>
http://forum.xda-developers.com/showthread.php?t=2274338

1  2  3  
adb shell su -c "dd if=/dev/block/platform/omap/omap_hsmmc.1/by-name/boot of=/sdcard/stock-boot.img"  adb shell su -c "dd if=/dev/block/platform/omap/omap_hsmmc.1/by-name/recovery of=/sdcard/stock-recovery.img"  adb shell su -c "dd if=/dev/block/platform/omap/omap_hsmmc.1/by-name/system of=/sdcard/stock-system.img"

cm10-1-01

pullコマンドで、上の3ファイルをKindleからパソコン側コピーします。

実際のコマンドは以下のようになります。※パソコン側のフォルダは環境にあわせて変更してください。

1  2  3  
adb pull /sdcard/stock-boot.img C:\android-sdk-windows\Rom\CM10.1\Backup\stock-boot.img  adb pull /sdcard/stock-recovery.img C:\android-sdk-windows\Rom\CM10.1\Backup\stock-recovery.img  adb pull /sdcard/stock-system.img C:\android-sdk-windows\Rom\CM10.1\Backup\stock-system.img

cm10-1-02

cm10-1-03

XDAのフォーラムから必要なファイルをダウンロードします。

  1. stack
  2. kfhd7-freedom-boot-7.3.0.img
  3. kfhd7-twrp-2.4.4.0-recovery.img
  4. kfhd7-u-boot-prod-7.2.3.bin

cm10-1-20

pushコマンドで、ダウンロードしたstackファイルをKindleの"/data/local/tmp/"フォルダにコピーします。

実際のコマンドは以下のようになります。※パソコン側のフォルダは環境にあわせて変更してください。

1  
adb push C:\android-sdk-windows\Rom\CM10.1\stack /data/local/tmp/

cm10-1-05

ddコマンドで、stackファイルをsystem領域にブロックサイズ指定でコピーします。

実際のコマンドは以下のようになります。

1  
adb shell su -c "dd if=/data/local/tmp/stack of=/dev/block/platform/omap/omap_hsmmc.1/by-name/system bs=6519488 seek=1"

cm10-1-06

Kindleに存在する"install-recovery.sh"のファイル名を"install-recovery.sh.bak"に書き換えます。

実際のコマンドは以下のようになります。

1  2  3  
adb shell su -c "mount -o remount,rw ext4 /system"  adb shell su -c "mv /system/etc/install-recovery.sh /system/etc/install-recovery.sh.bak"  adb shell su -c "mount -o remount,ro ext4 /system"

cm10-1-07

==

ここから先はfastbootコマンドで行います。

Factory Cableがある場合はシャットダウン後、Factory Cableを接続して"fastboot"で起動、

Factory Cableがない場合は、以下のコマンドを入力して"fastboot"で起動させます。

この方法はXDAフォーラムとは異なります。

 

私は"fastboot"コマンドが正しく動作するか確認したかったので、まず"fastboot"で起動させました。

フォーラムに載っている方法は、Kindleの電源を落として、パソコンと接続していない状態から

最初の"fastboot"コマンドをコマンドプロンプトから発行します。

コマンドプロンプトには<waitng for device>が表示され待機状態になります。

この状態でKindleとパソコンと接続すると、

Kindleが"Fastboot"状態で起動し、待機中の発行したコマンドが実行されます。

"Fastboot"状態は維持されますので、次の"fastboot"コマンドを順次発行と記載されています。

1  
adb shell su -c "reboot bootloader"

cm10-1-08

再起動後、画面に"Fastboot"の文字が表示されます。

cm10-1-13

fastbootコマンドが正常に動作するかを確認するには、以下のコマンドを入力します。

1  
fastboot -i 0x1949 getvar product

"product: Tate-PVT-08″のような返答があると正常に動作しています。

コマンドを発行しているにもかかわらず、<waitng for device>から表示が変わらない場合、

ドライバーが正常にインストールされていません。

cm10-1-04

現在のAndroidOSのバージョンが7.3.0以上の場合、

ダウンロードした"kfhd7-u-boot-prod-7.2.3.bin"でブートローダ領域を書き換えます。

実際のコマンドは以下のようになります。※パソコン側のフォルダは環境にあわせて変更してください。

1  
fastboot -i 0x1949 flash bootloader C:\android-sdk-windows\Rom\CM10.1\kfhd7-u-boot-prod-7.2.3.bin

cm10-1-09

ダウンロードした"kfhd7-freedom-boot-7.3.0.img"でブート領域を書き換えます。

実際のコマンドは以下のようになります。※パソコン側のフォルダは環境にあわせて変更してください。

1  
fastboot -i 0x1949 flash boot C:\android-sdk-windows\Rom\CM10.1\kfhd7-freedom-boot-7.3.0.img

cm10-1-10

ダウンロードした"kfhd7-twrp-2.4.4.0-recovery.img"でリカバリー領域をTWRPに書き換えます。

実際のコマンドは以下のようになります。※パソコン側のフォルダは環境にあわせて変更してください。

1  
fastboot -i 0x1949 flash recovery C:\android-sdk-windows\Rom\CM10.1\kfhd7-twrp-2.4.4.0-recovery.img

cm10-1-11

再起動します。

実際のコマンドは以下のようになります。

1  
fastboot -i 0x1949 reboot

cm10-1-12

再起動中、[Kindle Fire]の"Fire"の色が最初はオレンジに光り、

cm10-1-14

次にブルーに光ります。

cm10-1-15

このまま何も操作をしないと再度オレンジ色になり、通常起動します。

cm10-1-16

cm10-1-17

"Fire"の色がブルーに光っている時、ボリュームアップのボタンが押されていると、

リカバリーツールのTWRPが起動します。

cm10-1-18

cm10-1-19

このTWRPを利用してカスタムROMをインストールします。

XDAのフォーラムから対象ファイルのダウンロードを行います。

今回ダウンロードしたのは

2013/04/22リリース[ALPHA CM10.1 + 3.0.50+ KERNEL]版の

"cm-10.1-20130422a-UNOFFICIAL-tate.zip"ファイルと

Google Apps(2013/03/01版)の"gapps-jb-20130301-signed.zip"ファイルです。

このROMはCyanogenModオフィシャル版ではありません。

現時点ではKindle Fire HD用でオフィシャル版のCM10.1はリリースされていません。

cm10-1-inst-18

ダウンロードしたファイルはKindleの"Internal Storage"内にある適当なフォルダへコピーします。

今回は"Download"フォルダにコピーしました。

TWRPを起動します。

現在使用しているKindle Fire HDのOSが、Amazonのストックロム(バージョン7.3.1)なのでクリアーします。

"Wipe"をタップします。

cm10-1-inst-01

"Cache"、"Dalvik Cache"、"Factory Reset"、"System"をWipeします。

"Cache"をタップします。

cm10-1-inst-02

"Swipe To Wipe"の矢印を右にスワイプします。

cm10-1-inst-03

"Cache"の"Wipe"が実行されます。"

Back"をタップし、他の"Dalvik Cache"、"Factory Reset"、"System"を"同じ手順でWipeします。

cm10-1-inst-04

インストールを行います。

"Install"をタップします。

cm10-1-inst-05

ダウンロードファイルをコピーしたKindleのフォルダに移動します。

コピーしたファイルが確認できます。

まず、"cm-10.1-20130422a-UNOFFICIAL-tate.zip"を指定します。

cm10-1-inst-06

"Swipe To Confirm Flash"の矢印を右にスワイプして、インストールを実行します。

cm10-1-inst-07

インストール完了後、"戻る"をタップします。

"Add More Zips"をタップして複数ファイルを一回の作業でインストールできますが、

今回は個別にインストールを行っています。

cm10-1-inst-09

次に、"gapps-jb-20130301-signed.zip"を指定します。

cm10-1-inst-10

"Swipe To Confirm Flash"の矢印を右にスワイプして、インストールを実行します。

cm10-1-inst-11

インストール完了後、"Reboot System"をタップします。

cm10-1-inst-12

CyanogenModが起動します。

cm10-1-inst-13

起動後、画面に従い初期設定を行います。

これは通常のAndroidの初期設定と同じです。

cm10-1-inst-14

"Nexus 7″と同じアカウントを指定して復元を行いました。

設定やアプリなどが同期されます。

cm10-1-inst-15

設定メニュー

cm10-1-inst-16

端末情報

Androidのバージョンは4.2.2です。