2012年9月14日金曜日

レンガとICSとリカバリSD

久々に記事を書く。
XDAも情報がやや下火。
ICSの更新がとまってるからねー。

ところで、ROM焼いたり、中身いじってたりするとまともに起動しなくなったりする。
特にパーティションテーブルいじったり、カーネルイメージを書き換えてるとロゴループになることはしょっちゅうだ。
で、自分が何をやってるのか理解できていれば、そうなっても解決方法を見出すことができたりする。
でも、とりあえず興味本位でROM焼きしてみたい人がハマると、起動しないただの文鎮と化す。
海外では、文鎮化することをレンガと言うらしい。

で、少し前に、オフィシャルのフォーラムで話題になったのが、ROM焼きで無茶した結果レンガと化したA1を修復する方法。
しかも、これはオフィシャルな方法と認識していい。

元ネタはこれ
A1 and A1107 Unbrick fix/full factory restore
 フォーラムはここ
[GUIDE] A1 and A1107 Unbrick fix/full factory restore

英語だけどがんばって読むべし。
ここに書いてあるのは、レンガ化したA1をSDブートして復旧するために必要なブートイメージとその方法が書いてある。
しかもこの bootable SD のイメージ、CWM付き。
ツールを使ってbootable SD を作れば、オフィシャルで完璧なリカバリSDが完成する代物。こりゃいい。

ここには、2G版、16G版 それぞれの Gingerbread と ICS イメージが転がっている。
で、何がいいって、2G版のICSイメージがあるって、こと。
これまで、2G版については、repartitionパッチを当てる必要があったけど、その必要がまったく無い。
bootable SDでブートして、手順どおりインストールすれば問題なく2G版でもICSが起動する。
こりゃまた楽チン。

早速試したが、手順さえ間違わなければ問題なくインストール&動作する。

ちなみに、バージョンは、

Gingerbread image  A107W0_A234_001_015_2643_ROW
Ice Cream Sandwich image  A107I0_A404_001_013_0116_US

とりあえず、簡易的なインストール手順を書いとく。
もちろん、全データは消えて無くなるのでバックアップは各自取るべし。


●bootable SD を作る

  • ネタ元より、必要なimageファイルをダウンロードする。
    ダウンロードサイズは400MBほど。
  • SD焼きツールWin32DiskImager もダウンロードして使えるようにしておく。
    Win32DiskImager の注意点だが日本語ファイル/フォルダ名には対応して無いので英数字フォルダにimegeファイルを置いておくこと。
  • PCにSDカードを刺し、Win32DiskImagerを起動する。
  • imageファイル名とSDカードドライブを指定する。
  • Writeボタンを押して焼く。

これで、CWM入りbootable SDの出来上がり。



●Androidのインストール
  • できたSDをA1に刺す。
  • Vol- + 電源 でリカバリモード起動。
  • 自動的にSDカード側からブートし、CWMが起動する。
    このSDがあればパッチ当ても好き放題。
  • "install zip from sdcard" -> "choose zip from sdcard" から part1.zip を選択、インストール。
  • 終わったら、戻って一旦"reboot system now"リブートする。
    これをしないと、書き換えたパーティションテーブルを認識できない。
  • リブート時 Vol- キーを押したままリカバリモードに入る。
  • 再び、"install zip from sdcard" -> "choose zip from sdcard" から part2.zip を選択、インストール。
  • そのまま続いて、"choose zip from sdcard" から part3.zip を選択、インストール。
  • 終わったら、メニューを戻って "wipe data/factory reset" する。必須。
  • ワイプが終わったら、SDカードを抜いて"reboot system now"リブートする。

以上でおわり。

最初の起動に失敗するかもしれないので、電源長押しで切って再投入すればおk。


これで、2G版でもICSのインストールが簡単にできるし、2643_ROWに戻すのも簡単。
しかも、リカバリSDまで作れるんだからお得。

そうそう、残念ながら、2G版ICSはSDカードが認識されない病なので期待しないように。

ちなみに、オフィシャルのフォーラムに書いてあったからと言ってメーカーが保障しているわけではないので誤解の無いように。
あくまでもすべて、完全自己責任で実行すること。

2012年7月23日月曜日

ICSとSDカード

オフィシャルなテストアーカイブがちょろちょろ出ているが、基本的にSDカードがマウントされない病になっている。

で、個人的にごそごそしてみた結果、mountはできるようになった。
内部SDは、USBストレージとして認識されている。
外部SDは、REMOVABLE SD CARDとして認識されている。
内部SDをUSBストレージとして扱うのが(ICSの仕様的に)正しいのかどうか分からんが、、、

で、外部SDは /mnt/sdcard/removable_sdcard に mountされる都合、USBストレージの容量計算がおかしくなっている。
合計容量は692Mなのに、内訳のその他が4.15GBて。
この辺りが、内部SDやら外部SDやらの仕様を混乱させている元だと思うのだが。。。。
個人的に、外部SDのマウントポイントは/sdcard とは無関係にするべきだと思う。

んで、ここまではできるんだけど、問題が無いわけではない。
たとえば、SDカードのマウント解除が正しく動かない。
あと、パッチをどう作るか悩んでいる。

う゛ーん。

2012年7月10日火曜日

A107I0_A404_001_011_0116_US

久々にうpされてたICS。
2G版の場合、patch-mbr2GB_HackD5を使って領域拡張すればフルインストールは問題なし。

パッケージの内容は前回のもの(一瞬で消されたけど)とさほど変わっていない。
動作レスポンスも変わらない。もっさりの場面ではもっさり。


# df
Filesystem             Size   Used   Free   Blksize
/dev                   222M    32K   222M   4096
/mnt/asec              222M     0K   222M   4096
/mnt/obb               222M     0K   222M   4096
/system                416M   395M    20M   1024
/cache                 170M     5M   164M   1024
/data                  472M   154M   317M   1024
/.secure                32M     4M    27M   1024


/system は20Mほど余ってるからまだ大丈夫か。

で、/mnt/sdcardは相変らずmountされない。
しかし、「設定」-「ストレージ」メニューは正常に動くようになってるので一歩前進。
「設定」-「開発者向けオプション」が動かないけど、debugオンになってるので母艦から作業はできる。っていうか、VIDとPIDがまた変わってるジャン。VID=04E8, PID=6860

その他、安定度が増しているんだろうけど、詳しくは不明。
ストレージ周りが徐々に動き出してるのでそのうち直りそうな予感。
っていうか、voldは動いてるんだけどなぁ。

もう少し、ログを眺めながら調べてみるかなー。




2012年6月19日火曜日

repartitionパッチ

以下の内容はとても危険です。
最悪、本体から起動できなくなる可能性があります。
実行については完全自己責任で行うこと。
念のため、CWMがブートできるbootable SDくらいは用意しよう。

以上、警告はしたので死んでも知らん

んで、2G版のA1で内部ストレージの領域配分を変更するパッチなのだ。
以下、2G版での話。

2643でのデフォルトの各領域の配分は、こんな感じ。
mmcblk0p1    /system        277M
mmcblk0p2    /cache          92M
mmcblk0p3    /data          337M
mmcblk0p4    /.secure        32M
mmcblk0p5    /mnt/sdcard      1G
個人的な話、/data領域が狭いので自力でrepatitionしたものを使ってたんだけど、ICSをテストするのにさらに再配置が必要になったので、簡単にデフォルトに戻すことも含めてrepatiotionパッチにしてみた。

狭い /data 領域。さらに、ICSを入れるには /system 領域も狭い。あまり利用価値の無い /mnt/sdcard 領域。
それらをリサイズ、再配置しなおすrepatiotionパッチがここにある
patch-mbr2GB_2643Hack.zip
patch-mbr2GB_HackD5.zip
patch-mbr_2643.zip
の3本。

それぞれの領域配分はこんな感じ。

●patch-mbr2GB_2643Hack.zip 
patch-mbr2GB_2643Hack.zip は 2643ベースの領域配分で、/data領域を1G近くまで拡張したもの。
2643向け。ICSはインストールできない。
mmcblk0p1    /system        283M
mmcblk0p2    /cache          94M
mmcblk0p3    /data          961M
mmcblk0p4    /.secure        32M
mmcblk0p5    /mnt/sdcard    419M

●patch-mbr2GB_HackD5.zip
patch-mbr2GB_HackD5.zip はICSインストール向けの再配分。オフィシャルテスト版のICSがそのままインストールできる。
/data領域はあまり広げてない。/mnt/sdcardに余裕があるのでまだやろうと思えば広げられる。
mmcblk0p1    /system        416M
mmcblk0p2    /cache         170M
mmcblk0p3    /data          472M
mmcblk0p4    /.secure        32M
mmcblk0p5    /mnt/sdcard    691M


●patch-mbr_2643.zip
patch-mbr_2643.zip は2643のデフォルト領域配分に戻すパッチ。なんとなく2Gと16Gに対応している。
repatiotionパッチを試したけど、元に戻したいときはこれを使ってインストールしなおす。2643向け。
16GBの人は海外カスタムROM入れて勝手に領域変更されたのを2643デフォルトに戻したいときなんかに使用できる。

で、具体的に何をしているのかと言うと、パーティションテーブルを焼き直しているだけ。
mbr2GB.img が2G版のパーティションデータ。mbr16GB.imgが16G版用。
各配分にあわせて中身を書き直している。
興味のある人はダンプしてみればいい。
ちなみに、このテーブルを書き直すツールも存在している。
A1partition.exeでググれば見つかるはず。
ただし、使用には十分注意すること。やってることの意味が分からないなら使用するべきではない。


●使い方

注意事項。
これを使用すると、領域全てが完全に消去される。
内部SDに保存してあるデータ、インストールしたアプリ、全部消えるので注意。
必要ならバックアップを取るべし。

repatiotionパッチを使用する前提として、本体には2643オフィシャルのリカバリツールがインストールされていること。
CWMではダメ。
もし、CWMを入れているなら2643ROWに書き戻しておく。
(CWMでも適用動作はするが、CWMがcache領域を掴んでしまい結局失敗する)

  • repatiotionパッチをSDカードにコピーしてupdate.zipにリネームする。
  • A1にSDカードを刺し、リカバリメニューを起動させる。
  • 自動的にrepatiotionパッチが実行されるのでしばらく待つ。
  • パッチが終了したら電源が切れる。

ここまでの状態では、パーティションを切りなおしフォーマットしただけ。
OSであるAndroidも入ってないのでブートもしない。
続いて、ROMをインストールする。

  • SDカードに2643_ROWなり、オフィシャルテスト版ICSなりを入れて、リカバリメニューからアップデートする。
  • もしくは、bootable SDからCWMを起動してROMのzipをインストールすればOK。

個人的にはbootable SDからやる方をおすすめ。
何か問題が起きてもリカバリをブートできるってのは安心できる。
あと場合によって、wipe date(ファクトリーリセット)でもしとけばいいかも。
ちなみに、ICSの初回起動はとても遅い。

もし、ロゴループに陥ったら、wipe date(ファクトリーリセット)で復旧するかも。

2012年6月16日土曜日

A107I0_A404_001_008_0108_US

一瞬、アップされてたアーカイブのスクショ。


FTP鯖に今は無い。
xdaフォーラムを探せば入手可能。スリム版もあるみたいだけど試してない。
Wifiが直ってるらしい。あと、ホームとかアプリの整理が行われている。

こうなってくると、ICSのリリースが現実味をおびてくるなぁ。

ICSアップデート時には、パーティション再配置が必要だから全ワイプになることは必須。
2Gの扱いがどうなるかちょっと気になるな。

2012年6月10日日曜日

レスキューSDディスクの作り方


CWMが起動できるbootable SDの作り方。

bootable SDカードは一度作ったら、使いまわせるのが便利。
ただ、作るための敷居が高いので、使用してる人は少ないと思う。

で、ハックネタを探してXDAをウロウロしてたときに、bootable SD から CWMがブートできる内容を見つけて試したことがある。
そのときは、なるほど、と思ったんだけど、改めて考えてみると、コレって本体のリカバリブートが死亡したときの最終手段に使えるってことに気づいた。

いわゆる、レスキューSDディスクって感じか。
っていうか、CWMを本体に入れる必要も無くなるわな。
SDの抜き差しは面倒だけど、保険の意味で人柱な人は1枚作っておいたほうが良いかもしれない。

んで、その比較的簡単な作り方があったので紹介しておく。

元になった
スレッドはこれ
[IdeaPad A1] Recovery not work, bootloop- solved!!!

記事はこれ
http://forum.xda-developers.com/showpost.php?p=25950501&postcount=39


(1)解決A1_07のダウンロード
タッチパネルファームウェア用のツール、通称「解決A1_07」をダウンロードする。
http://115.com/file/clykyncr
からダウンロードして、アーカイブを解凍する。解凍パスワードは bbs.lenovomobile.com
中身はexeが1本、zipが1本、pdfが1本。pdfはドキュメントなので読んどくといい。
ファイル名は字化けしているかもしれないのでリネームする。
ここでは、burnin1.exe, CL1_1.09A_for_5.zip, Document.pdf とした。
さらに、CL1_1.09A_for_5.zip を解凍して、CL1_1.09B_for_5.img を取り出しておく。

使用するのは、burnin1.exe, CL1_1.09B_for_5.img の2本のみ。

このツールは、A1のタッチパネルの調整を行うためのツールをbootable SDに焼くツールだ。これで焼いたSDをA1に入れてブートするとツールが立ち上がる。
が、今回はそのツールは使用しない。bootable SDを作ってくれるところが重要。


(2)cwm-5.0.2.7-rev3-ideapad-a1のダウンロード
ググればすぐ分かるので割愛。
アーカイブを解凍しておく。
必要なのは、recovery.ubファイル。


(3)その他準備
2G以上のSDカードが必要。
今回は手元に転がっていた4Gを使用してみた。
これ1枚作っておくと、お守り代わりになるので保存用にしておこう。


(4)bootable SDを作る
・母艦PCにSDカードを挿す。
・burnin1.exeを実行。
・burnin1.exe上部 Please choose the disk をSDカードのドライブに変更。
・burnin1.exe下左 Img file path に CL1_1.09B_for_5.imgを指定。
・その横の、Burnin ボタンを押す。その他の箇所はいじらない。
・プログレスが進むので焼き上がるのを待つ。
・焼けたら、burnin1.exeを終了して、SDカードを取り外し。

これで、bootable SD が完成した。
このSDをA1に挿してブートすれば、タッチパネルのツールが起動する(が、今回は使用しない)


(5)CWMを入れる
・再度、SDカードを母艦PCに挿す。
・認識されたSDの中身をエクスプローラなどで見ると、MLO, u-boot.bin, uImage が入っているはず。
・CWMのrecovery.ubをコピーする。
・コピーした recovery.ub を recovery.img にリネームする。
・SDカードをPCから取り外す。

以上で レスキューSD の出来上がり。

ブートの仕方は、
レスキューSD を挿して、ふつーにリカバリモードを立ち上げる要領(Vol- + Power)で起動するだけ。
起動に失敗しても、本体側のリカバリが起動するので慌てなくてもよい。

CWMが起動したら、SDを入れ替えて好きなzipを焼くなりすればOK。
例えば、本体リカバリがおかしくなって、update.zipが焼けなくなってしまったとき。
そんなとき、レスキューSDでブート、とりあえず2643ROWに焼き戻すことができるはず。

今更ながら、便利だと気付いた俺。

2012年6月9日土曜日

テスト版 ICS 4.0.4 の中身


とりあえず、画面キャプチャなど。




解析しながら動作を見ているので、すべてについて確認できていないが、分かってる範囲でレビュ。2G版での話なので16G版は若干、動作が違うかもしれない。

●インストール
2G版、16G版ともに、アーカイブのままだと多くの人はインストールできないはず。
原因は、/system領域が足りずにDisk Fullになり、インストールの途中で中断してしまうからだ。
失敗した状態でブートは走るけど、途中でロゴループに入る。
2643ROWを書き戻してやれば元に戻るはず。

結局、パーティションテーブルを書き直して領域の再配置、必要な領域を確保してインストールした。
海外フォーラムなどでもインストール方法が色々試されている。
方法については後ほど記事を書こうかと思う。

●問題点
/mnt/sdcard がmountされない。おかげで、外部SDカードが見えない。
この問題から発して、カメラでSDカードを入れろと叱られたり、設定-ストレージが使用できなかったりする。
USBでPCに接続してストレージとしての使用もできない。
ちなみに、SDカードの挿抜は認識してるので、処理の問題だと思う。
スリープ復帰のWiFiが不安定だったりすることがある。ONし直せば戻る。
フォントが中華。

●体感動作
一番気になるところだろう。
初期ブート時やキャッシュが効いていない状況では固まることがたまにある。
バックグラウンドで処理が走っていると、てき面に遅いと感じる。
しかし、キャッシュやメモリ状態が落ち着けばそれなりに動く。。。が、2.3.4に比べてモッサリ感は否めない。
全く使い物にならないわけではないが、モッサリを許容できない人は止めといたほうがいい。

●アプリなどの動作
Youtubeは特に問題なく動作。動画も見た限り、カクついたりすることはない。
マーケットもOK。
GPSも初期化に時間が必要かもしれないが、動作に問題なし。
adb接続も可能。ただし、VIDとPIDが変更になっているので、android_winusb.infにデバイス情報を追加する必要がある。
;Lenovo A1
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_D002
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D002&MI_01
その他、mount情報などはこちら