2022年12月15日木曜日

Fire7(第5世代)を文鎮化してしまった件

家に、AmazonのFire7(第5世代)が1台余っていた。

せっかくなのでマンガアプリなどを入れて読書用として活用しようと思ったが、Google PlayはインストールできるもののAndroidのバージョンが低くていつも使っているアプリが全然入れられない。

調べて見るとカスタムROMを入れている事例がちらほら見当たるので、ではそうしようと考え、結局文鎮化してしまった。

原因は、読みの甘さだ。
Fire7のroot化やカスタムROMインストールの事例は、そのほとんどが2015~2017年代のもので、当日FireOS5.0.*~5.3.*位を対象にしたもの。対して、手元のFire7は5.7.0。
PCと違い、タブレットやスマートフォンは、ほとんどの場合メーカーによってシステムがロックされていて、勝手にroot化やカスタムROMのインストールは出来ないようにされている。それを回避する技術の多くは、OSなどのセキュリティホールを利用するものであるため、バージョンが上がってセキュリティホールが埋められてしまうと、root化などの作業は出来なくなってしまうものらしい。
実際、Fireタブレットでも最近のバージョンのOSを積んだものではroot化などが出来なくなってしまっている。当然、私のものも出来ない可能性が高い。

しかし、この手の作業はやってみないとわからない部分がある。ネット上の文献も全ての状況の即した手順や説明が書かれているわけではない。書いてる人たちにとって語るまでも無いことや、語りたくないことは語られることがない。その隙間を類推と想像とで埋めていくことになるのだが、私は元々「やってみたい」に偏りがちだ。

今は昔、私が初めてLinuxに触れた時、インストールに失敗してHDDのMBRをおかしくしてしまい、デュアルブートにしていたWindowsが立ち上がらない状態にしてしまったことがある。当時、PCは家に1台しかなく、妻が友人からWindowsの起動ディスクを借りてきて、それを使ってMBRを修復し事なきを得たことがある。
それによって飛躍的にPCのブートの仕組みへの理解が進んだのだが、周り(PCを共有していた妻)から見たらただの迷惑行為でしかなかった。やらなくていい苦労に突き進んでしまいがちなのは、脳の欠陥だろうと思う。

ともあれ、曖昧な部分が多いから、とりあえず一個一個やってみようと思った。

試してみたのはROOTJunkyというサイトで配布されているツールを使った方法だ。

https://rootjunkysdl.com/?dir=Amazon%20Fire%205th%20gen/SuperTool

ここで配布されているツールは実際は「Kingroot」というツールを使ってroot化するものだった。使う前に、PCにADBツールを入れ、タブレット側でADBデバッグ可能な状態(設定>端末オプション>シリアルのところを連打して開発者オプションを出し、ADBデバックを許可)にし、野良アプリのインストールを許可(セキュリティとプライベート>不明ソースからのアプリを許可)しデータ通信ケーブルでつなぐ。
が、何度試してもroot化出来ない。どうもやはり、今のFireOSのバージョンではセキュリティホールが埋まってしまっていてroot化は出来ないらしい。
その方法をより確実に行う方法としてOSをダウングレードさせる方法が紹介されていた。
5.0.1とか5.1.1、5.1.2とかに落とすことで、セキュリティホールがある状態に戻すわけだが、一方で「ダウングレードで文鎮化」の事例もちらほら見当たる。

とりあえず、ROOTJunkyで配布しているツールが対応している最新の5.3.1にダウングレードさせてみよう。駄目だったら駄目でまた考えよう。

Fire7(第5世代)用のFireOS5.3.1のリカバリーイメージをダウンロードし、Fire7を一旦シャットダウンしたあと、音量下げ+電源ボタンを同時に長押してリカバリーモードで立ち上げ、sideloadを指定し、PCからadb sideloadでダウンロードしたイメージを指定して焼く。時間にして十分くらい。焼き終えて再起動がかかった。

が、何も点かない。

電源を何度も入れてみる。

全く画面に反応がない。

ああ、文鎮化してしまった。

仕方なく、文鎮化した時の直し方を調べてみた。ちなみに文鎮化は英語で「brick」という。文鎮化を解除することは「Unbrick」で調べると良い。

はじめに試したのはFireTv2の文鎮化を治すツールを使う方法。

文鎮化しているFire7をPCのつなぐ。一見何も反応していないデバイスだが、実はPCに「不明のデバイス」として一瞬認識され、解除され、また「不明のデバイス」として認識されを繰り返しているという、そこで、認識された瞬間にpreloaderのドライバーを噛ませてPCから使える状態にする。

この状態でパーティション情報などが生きていれば、downloadモードと言って、ちょうどPCをBIOSで立ち上げたような状態で、OSを書き込むことができるモードになるらしいのだが、文鎮化している場合、パーティション情報が壊れてしまっている場合が多い。
だから、まずはパーティション情報を直してやる必要がある。

で、件のFireTV2用のツール。これを使うとパーティションの情報を調べたり、それを書き込んだりすることができるらしい。
だが、これを使ってもうまくいかなかった。デバイスは見つかるが最初のHandshakeのところで止まる。対象としているのがFireOS5.1.1当たりまでだったからだ。

それ以降のバージョンでも使えるツールを探したら、amonetというツールが見つかった。これを試そう…と思ったのだが、残念ながらPythonとシェルスクリプトで構成されている。
私のPCはWindows10でシェルスクリプトを使える環境を整えていない。Linuxなどのほうがやりやすいらしい。

で、Ubuntuをダウンロードして、必要な設定をして、amonetの中にあるbootrom.shをsudoを付けて実行。今回もデバイスは見つかる。しかし今回もHandshakeで止まる。

どうやら、かなりギタギタにパーティションテーブルを壊してしまっているらしい。ブートローダーが壊れてしまっているのでどうにもならない感じ。

だが、デバイスが認識されているなら、強制的にデータを入れ込むことはできないのだろうか?PCでパーティションイメージを強制的にHDDに書き込むみたいに。

調べてみると、MediaTekのデバイスにデータをダウンロードするツールがあるようだ。

SP-Flash Tool https://spflashtool.com/

最後の期待をかけて調べてみたが、書き込んだりするために必要なパーティションの地図にあたるscatterファイルというのが必要なのだが、Fire7(第5世代)用のそのファイルが見当たらない。他の会社のデバイスだと公式ROMと一緒に配布されているらしいのだが、無い。そのファイルがなければ、ブートローダにせよリカバリーイメージにせよインストールできない。

仕方なく、ネット上で手に入るscatterファイルを使って試してみたが、うんともすんとも言わない。万策尽きた。

今回は、とりあえず諦めることにしようと思う。残念。

0 件のコメント:

コメントを投稿