Home>Tips for Cosmo Communicator(改) - 文鎮復活 編 - 【実施する場合は自己責任で、文鎮になっても当方責任外です】

■以後の記事


■文鎮からの復旧手順まとめ

フォーラム(https://www.oesf.org/forum/index.php?topic=36448.0)に掲載して、以下の手順で v23 の文鎮からでも復帰できたらしいので、こちらにも掲載しておきます。
注意)作業結果についての責任は負いません。

必要なもの)
 Cosmo はブートメニューが出る状態である事
 5GB以上の空き容量を持つマイクロSDカード
 ADB接続できるPC
 TWRP
  TWRPはカスタムイメージを使用。プラネットが提供するTWRPでも可能かもしれませんが、私は使っていません。
 https://www.oesf.org/forum/index.php?topic=35988.msg293552#msg293552
 https://github.com/Treeki/unofficial-twrp-cosmo/releases
補足)
 何度か記載していますが、TWRPはv19以下のDataパーティションのみバックアップ、リストアできます。
 他のパーティションをリストアすると文鎮になります。

1.ファイルをダウンロードしてください。
 https://drive.google.com/file/d/1FHukLy_NNEYpGBq79xQhmTNwv1HNO4Jt/view?usp=sharing。
 MD5 ダイジェスト c14905bf510744f42e6194eaeeddf773

 ダウンロードしたファイルを解凍します。
 マイクロSDに「v19」フォルダを作成
 解凍した29個のファイルをv19フォルダに格納、Win10の場合はEFS暗号化しないように注意
 マイクロSDをCosmoにセット

2.TWRPを起動します。
 TWRPメニューから「Mount」を選択
 「storage1」をマウント(チェック)
 PCからadbシェルを実行して、以下を確認
 - プロンプトは # (rooted を意味する)
 - auto0-1/v19の下に29個のファイルがある

3.パーティションをv19のイメージで上書きします。
 adbシェルから1行ずつコマンドを実行

dd if=/auto0-1/v19/boot.img of=/dev/block/mmcblk0p30 bs=4096
dd if=/auto0-1/v19/cam_vpu1.img of=/dev/block/mmcblk0p22 bs=4096
dd if=/auto0-1/v19/cam_vpu2.img of=/dev/block/mmcblk0p23 bs=4096
dd if=/auto0-1/v19/cam_vpu3.img of=/dev/block/mmcblk0p24 bs=4096
dd if=/auto0-1/v19/dtbo.img of=/dev/block/mmcblk0p32 bs=4096
dd if=/auto0-1/v19/expdb.img of=/dev/block/mmcblk0p4 bs=4096
dd if=/auto0-1/v19/frp.img of=/dev/block/mmcblk0p5 bs=4096
dd if=/auto0-1/v19/lk.img of=/dev/block/mmcblk0p28 bs=4096
dd if=/auto0-1/v19/lk2.img of=/dev/block/mmcblk0p29 bs=4096
dd if=/auto0-1/v19/md1dsp.img of=/dev/block/mmcblk0p16 bs=4096
dd if=/auto0-1/v19/md1img.img of=/dev/block/mmcblk0p15 bs=4096
dd if=/auto0-1/v19/metadata.img of=/dev/block/mmcblk0p8 bs=4096
dd if=/auto0-1/v19/nvcfg.img of=/dev/block/mmcblk0p6 bs=4096
dd if=/auto0-1/v19/nvdata.img of=/dev/block/mmcblk0p7 bs=4096
dd if=/auto0-1/v19/para.img of=/dev/block/mmcblk0p3 bs=4096
dd if=/auto0-1/v19/persist.img of=/dev/block/mmcblk0p12 bs=4096
dd if=/auto0-1/v19/protect1.img of=/dev/block/mmcblk0p9 bs=4096
dd if=/auto0-1/v19/protect2.img of=/dev/block/mmcblk0p10 bs=4096
dd if=/auto0-1/v19/recovery.img of=/dev/block/mmcblk0p2 bs=4096
dd if=/auto0-1/v19/scp1.img of=/dev/block/mmcblk0p18 bs=4096
dd if=/auto0-1/v19/scp2.img of=/dev/block/mmcblk0p19 bs=4096
dd if=/auto0-1/v19/seccfg.img of=/dev/block/mmcblk0p11 bs=4096
dd if=/auto0-1/v19/spmfw.img of=/dev/block/mmcblk0p17 bs=4096
dd if=/auto0-1/v19/sspm_1.img of=/dev/block/mmcblk0p20 bs=4096
dd if=/auto0-1/v19/sspm_2.img of=/dev/block/mmcblk0p21 bs=4096
dd if=/auto0-1/v19/system.img of=/dev/block/mmcblk0p36 bs=4096
dd if=/auto0-1/v19/tee1.img of=/dev/block/mmcblk0p33 bs=4096
dd if=/auto0-1/v19/tee2.img of=/dev/block/mmcblk0p34 bs=4096
dd if=/auto0-1/v19/vendor.img of=/dev/block/mmcblk0p35 bs=4096
sync

 念のために、最後にsyncします。

4.Cosmo Communicatorを再起動します。
 通常よりも時間がかかりますが、3分以内には起動するはずです。
 "Decryption unsuccessful"と表示されるので、"RESET PHONE"を選択
 設定していた画面ロックパスワードを聞かれる事あり
 システムは初期化され、正常に起動する筈

5.キャッシュをクリアします(これを行わないとロック後、ログインできない事あり)。
 再起動
 "RECOVERY boot"を選択
 ESC + VOLUP(画面裏)
 "Wipe cashe partition"を選択
 再起動


■これから買おうとする人向け、再レビュー 2022/6 更新

 在庫整理っぽくイオシスで安く売り出されていて、最近でも買う人がいるみたいです。
 Cosmo Communicator って結局どうなの? という問いがあるので、もう一度まとめてみました。
 一般レビュー記事は多分本人が長時間使ってないので当てにならないです。スタバ斎藤さんのレビューが一番妥当かなと思います。

【個人的総論】
 キーボードを使う事に、大きさ、重さ以上のメリットを感じるのが大前提。机に置けば概ね普通にブラインドキー入力できる(こんなスマフォは他に無い)。
 海外機共通のデメリット有り(おサイフ不可、国内修理不可、等)
 OS自体は安定していて、勝手にフリーズ/再起動は無い。
 バグ、設計上の問題は残っている(下記)。それが使い方に影響する人はNG、そうでない人は多分OK。私個人はメイン1台使用で非常に満足しています。
 バグ、設計上の問題は工夫である程度解消できる、そういう手間がイヤな人もNG。
 Rooted、Linux が提供されるのも人によっては大きなメリット。

【残バグ】※ファームで直せそうだけど、修正凍結っぽいので 99%直る事は無い
 @縦画面で殆どのカメラアプリのアスペクトが崩れる。QRコードも読めない。
 Aカバーオープンでも CODIのタッチが反応するので誤操作になりやすい CoDi 1.1.1.14 で直っていました。2022/6 追記
 Bカバークローズで着信、アラームのバイブが継続しない
 C縦画面でキャプチャのアスペクトが崩れる
 D外部スピーカの左右・位相が逆
 ECODIのプレイヤーの表示が曲に自動連動しない
 FCODIのNAVIの文字が日本語設定で文字化けして読めない
 GCODIの位置情報オンのアイコンにスラッシュ
 HTWRP のバックアップ/レストアが使用できない。2022/6 誤記修正

 BCはフリーソフトで解消可能。
 Eは指紋認証すると更新される!?謎仕様
 Hはv19でカスタムTWRPイメージならDataのみバックアップ/レストア可能

【ハードの設計問題】※100%直る見込み無し
 @CODIオンで待受けのバッテリー消費大(+1.5%/時間程度?)
 A背面パネルのファーム更新がなかなか成功しない
 Bサイズ起因でキーが一列足りない?
 C位置情報の端末方向精度悪い
 D明るさセンサーが画面の裏にある(机が黒いと暗くなったりする)
 E画面クローズで音量を変えられない(リモコンからも変えられない)
 FCODIの反応が遅い

 Aは最大半日くらい頑張る必要あり
 B「−」入力にFn+が必要なのはこの為?日本語入力でかなり不便、専用キー入替アプリを作るか拾ってくれば改善可能
 Eはフリーソフト(root権限必要)で操作可能。2022/6 修正

【その他】
・ハード故障が多い気がする。私は3回遭遇。タッチ反応不良(交換)、通話音が出ない(修理)、指紋認識しない(交換)。
 「故障した」と言うコメも良く見る。
 Planet(イギリス)に送れば今までは無料対処してくれた(送料のみ自己負担)、戻って来るまで一か月はかかる。

【Geminiと比べて】
◎良い点
 @キーバックライトが有る
 Aカメラが標準&普通の画質になった
 BCPUが速い
 C指紋認証が使える
 Dキーの文字が黒くならない
 Eカバークローズでも電話が受けられる
 Fイヤフォンにノイズが乗らない
 GNFCが使える

×悪い点
 @CODIオンでバッテリー消費大
 A画面クローズでリモコンからも音量を変えられない
 Bデフォルト起動がrootedにできない 本体 V27 でデフォルトブートを選択可能。2022/6 追記
 CTWRPのバックアップ/レストアができない

 Cはv19でカスタムTWRPイメージならDataのみバックアップ/レストア可能


■カメラ解像度は6Mしかない

 最近、海外のフォーラムで話題になっていますが、Cosmo Communicatorのカメラ解像度は実質6Mしかないようです。
 Googleカメラを Cosmo Communicator専用に改造したapkが、フォーラムで公開されています。
 gcam_for_cosmo_v2(まだ、修正継続中)
 専用カメラは最大 2816×2108 でしか出力されませんが、これが Cosmo Communicator のカメラの実質解像度らしい。

 標準のカメラと専用カメラの画像を比較すると以下(クリックで拡大)。
標準カメラ 5632×3168
専用カメラ 2816×2108

 フォトショ(加工無)で拡大比較してみると以下(クリックで拡大)。
標準カメラ 1.5倍
専用カメラ 3.0倍

 標準カメラの方が解像度は高いですが、専用カメラ以上の情報は含まれていません。
 さらには、標準カメラはコントラストが不自然で、残っている情報量としては専用カメラの方が高いくらい。
 他の画像の比較では標準は色合いが薄く、専用カメラの方が自然でした。
 標準カメラは MediaTek の JPG生成ライブラリを使用していて、不足している改造度をソフトで拡張して出力 & JPG生成処理の出来が悪い、という見解。専用カメラは Googleカメラのライブラリを使用してJPG出力(DNG形式同時出力も可)している様です。
 OpenCamera も試しましたが標準カメラと同等でした。他の一般的なカメラアプリも同様だと思います。
 6Mピクセルは、GemniPDA の背面カメラの公称スペックと同等、Gemini の画質はこれより遥かに低かったけど。
 とりあえず、暫くは専用カメラを使っていこうかと思います。


■背面 LED 制御

 背面ディスプレイは通知が有ったその場は読み取れますが、時間が経って画面OFF になると気付けません。
 この点では Gemini から機能ダウンしています。
 音量ボタン下の LED が メール、ショートメール受信だけは点滅するけど、他の通知用にも制御したい。
 LEDison がプリインストされているけど Cosmo では全く動作せず、、、標準の TWRP もそうですが、動かないモノを配布する Planet の雑な仕事にイラつきます。

 LED 制御アプリを探してみた所  Light Flow Legacy :Led Control で制御できました(「通知へのアクセス」の許可が必要、「電池の最適化」は外した方がよさそう)。
 以下、できる事。
 ・LED を点灯させるアプリの指定
 ・通知に含まれる文字の指定
 ・LED の色(Cosmo の LED は青(B)が点かない、赤(R)と緑(G)の組み合わせのみ)、点滅速度の設定
 ・点灯の優先順位付け

 おかげで Cosmo の欠点が1つ消えて、更に使い易くなりました。


■system 書き換え

 Cosmo は root を取っても system は READONLY でマウントされているので、そのままでは書き換えできません。
 一般的な system をマウントしなおす手順も上手く行かなかったので、カスタムTWRP を使って書き換える手順。

 ・カスタムTWRPで起動
 ・メニューから「mount」を選択
 ・「system」をチェック
 ・PC から adb shell で接続
 ・/system/system 配下にマウントされています、ここからは書き換え自由

 書き換えた結果は何故か rooted 起動でのみ反映。非 rooted 起動では反映されず、この辺の仕組みは良く分からず。


■V22 は様子見

 結局のところ V22 にはしないで V19 のままカスタムboot で使用しています。
 V22 のデメリットは
 ・TWRP が使用できない
 だけですが、これが非常に使いにくい。2〜3分でフルバックアップ、フルレストア出来る機能は他の少々の利便とは代えられません。
 私の使い方で、V22 のメリットは
 ・電池の持ちが良い
 ・閉じた状態で、メディアプレイの曲送り、戻しキーが有効
 の2点のみ。
 曲送り、戻しだけはしたいので、メインで使うメディアプレイヤー Neutron Music Player をいろいろ解析した結果、以下のコマンドで曲送り、戻しが出来る事が分かりました。
 ・曲送り am startservice -n com.neutroncode.mp/.NeutronMPService -a com.neutroncode.mp.ACTION_PLAYER_NEXT
 ・曲戻し am startservice -n com.neutroncode.mp/.NeutronMPService -a com.neutroncode.mp.ACTION_PLAYER_PREV
 この内容で自分用に CosmoCtl を直して使用 CosmoCtl v4.1 に機能追加。
 V19 で困る事は殆ど無くなったので、Cosmo はこの状態で打ち止めになりそうです。


■カスタムboot入れ替え

 V21文鎮から V19 で起動できましたが、V19 の rooted では SIM が使えない。
 V19 から V21 にするのは無理そうなので、V19 用のカスタムbootに入れ替えてみます。

 まずは「OEMロック」を解除。これは普段から解除して置く事にします。
 
 カスタムboot はここ(Boot partition, rooted with Magisk)に有り。
 初期化されるので TWRP で Dataパーティションのバックアップを取っておくと良い。
 以下、入れ替え手順。

 ・PC と Cosmo を USB接続する。
 ・PC から adb reboot download → Cosmo が再起動(普通に再起動で良いのかも)
 ・Cosmo で FASTBOOT boot を選択
 ・PC から fastboot flashing unlock
 ・Cosmo で了解(Volume+ボタンを押下)する(これを行った時点で初期化要になるらしい)
 ・PC のカレントディレクトリをカスタムboot(boot_200118213137_magisk.img)の有る場所へ移動
 ・PC から fastboot flash boot boot_200118213137_magisk.img
 ・PC から fastboot reboot
 ・以下のメッセージが出たら成功。何も出なかったり、他のエラーが出たら失敗なので標準bootに戻してやり直す。
  ちなみに boot の ddコマンド置き換えでは上手く行きませんでした。この辺の違いは良く分からず。
 
 ・初期化される。
 ・Magisk インストール → 追加セットアップ → 再起動 → rooted完了
 ・TWRP の Data の戻しは普通に使えるのでレストアで復元。

 rooted で SIM も使えました。
 既定 boot が rooted になったのは良い点。
 V21 で不具合で再起動がかかって、知らない内に rooted が外れていた事あり。標準 boot が rooted だと、そういう心配が不要。
 これは良いです。

 このままだと V22化はできないらしいので、元に戻す手順。
 標準boot もここ(Boot partition, unmodified)に有り。

 ・PC から fastboot flashing unlock を投入して、Cosmo のボリューム+を押すまで同じ。
 ・PC から fastboot flash boot boot_200118213137_orig.img
 ・PC から fastboot reboot
 ・まだ、Your device has been unlocked and can't be trusted 〜 のメッセージが出ます。
 ・初期化される。
 ・もう一度 FASTBOOT boot で起動する。
 ・PC から fastboot flashing lock
 ・ボリューム+を押す
 ・PC から fastboot reboot

 これで元に戻りました。(Your device has been unlocked and can't be trusted 〜 も出なくなります)

 V22用のカスタムbootは ここ にあります。
 V23用のカスタムbootは ここ にあります。2022/6 追記
 V25用のカスタムbootは ここ にあります。2022/6 追記
 多分同じ手順で入れ替え出来ると思いますが、私は試していません。
 V22 は初期化後に TWRP から復元する事は出来ないのでご注意下さい。


■文鎮からの帰還

 以下、復旧成功した手順。

dd による退避

 まずはddイメージを取り出す正常な Cosmo が必要、、、よろず屋店長から譲り受けられました。感謝。
 rooted の adbシェル が使える必要あり。
 adb が使えるPCが有る前提 & Planet の標準の手順で V19 rooted が使えるようにしておく。
 adbシェルより
$ su
# cd /dev/block/by-name
# ls -l
EMPTY_NORMAL_BOOT_4 -> /dev/block/mmcblk0p42
ROOTED_ANDROID -> /dev/block/mmcblk0p41
TWRP -> /dev/block/mmcblk0p38
boot -> /dev/block/mmcblk0p30
boot_para -> /dev/block/mmcblk0p1

(全44行)

userdata -> /dev/block/mmcblk0p44
vendor -> /dev/block/mmcblk0p35

 こんな感じでパーティションの一覧が取得できます。
 退避の必要がないパーティションは以下(5行分)。
 ・最初の3行分
 ・linux -> /dev/block/mmcblk0p43
 ・userdata -> /dev/block/mmcblk0p44

 必要なパーティションを dd コマンドで退避します。
 全部で4.9GBになるので、そこそこの領域が必要。
 内部ストレージ直下にディレクトリ(/sdcard/xxx)を作って、dd で退避します。全39行。
dd if=/dev/block/mmcblk0p30 of=/sdcard/xxx/boot.img bs=4096
dd if=/dev/block/mmcblk0p1 of=/sdcard/xxx/boot_para.img bs=4096
dd if=/dev/block/mmcblk0p37 of=/sdcard/xxx/cache.img bs=4096
dd if=/dev/block/mmcblk0p22 of=/sdcard/xxx/cam_vpu1.img bs=4096
dd if=/dev/block/mmcblk0p23 of=/sdcard/xxx/cam_vpu2.img bs=4096
dd if=/dev/block/mmcblk0p24 of=/sdcard/xxx/cam_vpu3.img bs=4096
dd if=/dev/block/mmcblk0p32 of=/sdcard/xxx/dtbo.img bs=4096
dd if=/dev/block/mmcblk0p4 of=/sdcard/xxx/expdb.img bs=4096
dd if=/dev/block/mmcblk0p40 of=/sdcard/xxx/flashinfo.img bs=4096
dd if=/dev/block/mmcblk0p5 of=/sdcard/xxx/frp.img bs=4096
dd if=/dev/block/mmcblk0p25 of=/sdcard/xxx/gz1.img bs=4096
dd if=/dev/block/mmcblk0p26 of=/sdcard/xxx/gz2.img bs=4096
dd if=/dev/block/mmcblk0p28 of=/sdcard/xxx/lk.img bs=4096
dd if=/dev/block/mmcblk0p29 of=/sdcard/xxx/lk2.img bs=4096
dd if=/dev/block/mmcblk0p31 of=/sdcard/xxx/logo.img bs=4096
dd if=/dev/block/mmcblk0p16 of=/sdcard/xxx/md1dsp.img bs=4096
dd if=/dev/block/mmcblk0p15 of=/sdcard/xxx/md1img.img bs=4096
dd if=/dev/block/mmcblk0p8 of=/sdcard/xxx/metadata.img bs=4096
dd if=/dev/block/mmcblk0p6 of=/sdcard/xxx/nvcfg.img bs=4096
dd if=/dev/block/mmcblk0p7 of=/sdcard/xxx/nvdata.img bs=4096
dd if=/dev/block/mmcblk0p27 of=/sdcard/xxx/nvram.img bs=4096
dd if=/dev/block/mmcblk0p39 of=/sdcard/xxx/otp.img bs=4096
dd if=/dev/block/mmcblk0p3 of=/sdcard/xxx/para.img bs=4096
dd if=/dev/block/mmcblk0p12 of=/sdcard/xxx/persist.img bs=4096
dd if=/dev/block/mmcblk0p14 of=/sdcard/xxx/proinfo.img bs=4096
dd if=/dev/block/mmcblk0p9 of=/sdcard/xxx/protect1.img bs=4096
dd if=/dev/block/mmcblk0p10 of=/sdcard/xxx/protect2.img bs=4096
dd if=/dev/block/mmcblk0p2 of=/sdcard/xxx/recovery.img bs=4096
dd if=/dev/block/mmcblk0p18 of=/sdcard/xxx/scp1.img bs=4096
dd if=/dev/block/mmcblk0p19 of=/sdcard/xxx/scp2.img bs=4096
dd if=/dev/block/mmcblk0p13 of=/sdcard/xxx/sec1.img bs=4096
dd if=/dev/block/mmcblk0p11 of=/sdcard/xxx/seccfg.img bs=4096
dd if=/dev/block/mmcblk0p17 of=/sdcard/xxx/spmfw.img bs=4096
dd if=/dev/block/mmcblk0p20 of=/sdcard/xxx/sspm_1.img bs=4096
dd if=/dev/block/mmcblk0p21 of=/sdcard/xxx/sspm_2.img bs=4096
dd if=/dev/block/mmcblk0p36 of=/sdcard/xxx/system.img bs=4096
dd if=/dev/block/mmcblk0p33 of=/sdcard/xxx/tee1.img bs=4096
dd if=/dev/block/mmcblk0p34 of=/sdcard/xxx/tee2.img bs=4096
dd if=/dev/block/mmcblk0p35 of=/sdcard/xxx/vendor.img bs=4096
sync

 1行ずつ実行するのが確実。
 こんな感じで動作。system以外は一瞬で完了。
# dd if=/dev/block/mmcblk0p30 of=/sdcard/xxx/boot.img bs=4096
8192+0 records in
8192+0 records out
33554432 bytes transferred in 0.174 secs (192841563 bytes/sec)


 dd の退避が終わったら、PCにコピーします。
 adbシェルを抜けて、PCのカレントディレクトリを退避したい場所へ移動。
 adb pull コマンドを使用。
adb pull /sdcard/xxx

 ディレクトリ単位でまとめてPCにコピーされます。
 これでリカバリ用の元データは準備完了。
 リカバリでイメージを欲しい人は、申請貰えば提供します。

dd による復旧

 この手順で復旧できる前提。
 ・Cosmo が V19〜V21 のいずれかになっていた。
 ・マルチブートからカスタムTWRPが起動できる。
 Cosmo が V19〜V21 になっていれば、ここの手順をベースにマルチブートからカスタムTWRPが起動する様に出来る筈です。
 それすらも出来ない程に壊れている場合は、この手順は使えません。

 文鎮化している Cosmo でカスタムTWRPを起動して、PC に USB で接続します。
 カスタムTWRPで起動している状態は、adbシェルがrootedで使えるのがポイント。

 今回壊れているのは boot と system だけの筈ですが、V21 から V19 に戻す必要有り。
 V21 のイメージファイル等を見ると V19 から V21 で変わっているのは以下。
boot.img
cam_vpu1.img
cam_vpu2.img
cam_vpu3.img
dtbo.img
lk.img
lk2.img
md1dsp.img
md1img.img
scp1.img
scp2.img
spmfw.img
sspm_1.img
sspm_2.img
system.img
tee1.img
tee2.img
vendor.img

 この分だけ(全18)を戻します。
 adb pull を実行した同じディレクトリから adb push を実行。
 退避した V19 の ddイメージが文鎮 Cosmo の /sdcard 配下に転送されます。
adb push xxx /sdcard

 adbシェルで接続し su した後、dd でイメージを書き込みます。
dd if=/sdcard/xxx/boot.img of=/dev/block/mmcblk0p30 bs=4096
dd if=/sdcard/xxx/cam_vpu1.img of=/dev/block/mmcblk0p22 bs=4096
dd if=/sdcard/xxx/cam_vpu2.img of=/dev/block/mmcblk0p23 bs=4096
dd if=/sdcard/xxx/cam_vpu3.img of=/dev/block/mmcblk0p24 bs=4096
dd if=/sdcard/xxx/dtbo.img of=/dev/block/mmcblk0p32 bs=4096
dd if=/sdcard/xxx/lk.img of=/dev/block/mmcblk0p28 bs=4096
dd if=/sdcard/xxx/lk2.img of=/dev/block/mmcblk0p29 bs=4096
dd if=/sdcard/xxx/md1dsp.img of=/dev/block/mmcblk0p16 bs=4096
dd if=/sdcard/xxx/md1img.img of=/dev/block/mmcblk0p15 bs=4096
dd if=/sdcard/xxx/scp1.img of=/dev/block/mmcblk0p18 bs=4096
dd if=/sdcard/xxx/scp2.img of=/dev/block/mmcblk0p19 bs=4096
dd if=/sdcard/xxx/spmfw.img of=/dev/block/mmcblk0p17 bs=4096
dd if=/sdcard/xxx/sspm_1.img of=/dev/block/mmcblk0p20 bs=4096
dd if=/sdcard/xxx/sspm_2.img of=/dev/block/mmcblk0p21 bs=4096
dd if=/sdcard/xxx/system.img of=/dev/block/mmcblk0p36 bs=4096
dd if=/sdcard/xxx/tee1.img of=/dev/block/mmcblk0p33 bs=4096
dd if=/sdcard/xxx/tee2.img of=/dev/block/mmcblk0p34 bs=4096
dd if=/sdcard/xxx/vendor.img of=/dev/block/mmcblk0p35 bs=4096
sync

 後は祈りながら再起動すると、、、
 V19で正常に起動しました! 感動!
 ちなみにここから V22 への更新も問題なく出来ました。


■文鎮から出来なかった事

 いろいろトライして出来なかった事。状況によっては役に立つ事もあると思うのでメモ。

SP Flash Tool
 Planetから提供されているGemini用はCosmoには対応していないらしい。
 このバージョンv5.1924が使える。
 MT65xx用のドライバも必要。同じ場所にあります。
 Cosmo用のscatter.txtらしいモノ Cosmo_MT6771_Android_full_stock_edited_scatter.txt
 V19のリカバリ用イメージはここ(Full images (~1.2GB))にあり。全てでは無く、V19→v20、21で変更されるイメージのみらしい。
 これらを使って V19のイメージに置き換えようとすると、、、エラーで「Format All+Download モードを使え」と返ってきます。
 全イメージが手元にないので「Format All」は出来ない筈。
 このやり方は断念。

fastbootコマンド
 Cosmo のブート選択画面の一番下に FASTBOOT boot が有り。
 これで起動すると fastboot が使えます。
 boot、system を書き換えるには、まず fastboot flashing unlock を通す必要有りですが、、、エラーになって通らず。
 事前に Android の「設定」画面でOEMロックを解除しておかないと通らないとの事。
 Android で起動できない状態なので解除不能。
 機種によっては fastboot から解除できる場合もある様ですが、Cosmoはダメです。
 このやり方も断念。


■文鎮化で知った事まとめ

 6/15 カスタムTWRP で boot、system を退避/復元したら Cosmo Communicator が文鎮になりました。悪銭苦闘して、6/19に復活。
 いろいろとお勉強になったかも。
 この手の作業について、自分は良く分かってない、と言う事が良く分かりました。
 まずは今回知った事をまとめておきます。

1.
 カスタムTWRP で boot、system を退避/復元すると起動できなくなる。
 Data は問題なく退避/復元できるので、その用途で使えば十分役に立ちます。
2.
 パーティションを書き換える手段は SP Flash tool、fastbootコマンド、ddコマンド が有る。
3.
 SP Flash toolは全イメージファイル(41個?)とscatter情報が無いと使えない事がある。
 一部のイメージだけを戻そうとしたが、エラーで「Format All+Download モードを使え」と返ってきた。
 Geminiの時の経験から「Format All」「Firmware Upgrade」すると全パーティションが消える。全イメージファイルを持ってないならばやってはならない筈。
4.
 fastbootコマンドは Android の設定画面で「OEMロック」を解除していないと使えない。
 Android が起動しない状態では解除できないので、fastboot は使えない。
 fastboot oem unlock、fastboot flashing unlock で解除できる機種も有るらしいが、Cosmo では効かなかった。
5.
 ddコマンドは root権限を使える shell が必要。
 カスタムTWRPを起動した状態では adb shell をroot権限で使用できる。

 今回は 5. を使って復活できました。


■以前の記事

inserted by FC2 system inserted by FC2 system