にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2020年04月02日

Android 改造に失敗して文鎮化してしまったスマホ、タブレットの復旧方法 その3



今回は文鎮化したAndroidタブレット、スマホの
復旧方法をブログにします。
主に改造に失敗して焼いてしまった場合です。
良くやりますね。
この前、フリックさんから質問があったのでブログに残しておきます。

●文鎮化の復旧
度合いにもよりますが、Android焼きミスした場合に
復旧する方法をブログに残しておきます。
色々な人がブログに書いて公開されていますので
そちらをググって調べてみても良いです。
まず調べるしかありません。

事例として、
・ROMを焼きミスった
・起動しなくなった
・カスタムBootloaderを消してしまった。
・TWRPでストレージを消してしまった。
・焼いている途中で固まった。
などなど
直る場合と直らない場合があります。

直る場合として、Androidの電源を入れる際に
音声小の下側ボタン+電源ボタンを押しながら起動すると
いつものドロイド君の画面のFastbootモードで起動するか否かです。
この画面が起動出来ればなんとか復旧出来ます。
何故ならfastbootコマンドがここから使えるからです。

●USB通信ケーブル
まずは新品のUSB通信ケーブルを複数買って用意します。
だいたい8割位のトラブルがケーブル起因です。
充電は出来るけど通信出来ない、
通信は出来るけど画面に表示されないレベルでプチプチ切れる
ケーブルが沢山あります。
機能的に使えてしまっているので普通に販売されていますが、
Androidを焼く時に失敗しますので危険。
100円均一のUSBケーブルは特に危険です。
各種メーカー純正品を強くお勧めします。
新品を数、買ってキープしておきましょう。

●fastbootコマンドとadbコマンド
予習になりますが、2種類の通信コマンドがあります。

fastboot:Androidで標準的に使われている、ファームウェアの書き込みツール
fastbootブート画面以降で使用可能
adb:Android Debug Bridge 
 デバイスと通信するための多用途コマンドライン ツール
 Unixシェルから様々な操作が可能
 Recoveryモード以降で使用可能

でまずfastbootコマンドが使える様になって、
TWRPの様なカスタムリカバリを起動させてadbコマンドが使える感じ。

●/etc/udev/rules.d/51-android.rulesの設定
USBで認識させる為にはAndroid-toolsのインストールなどと共に
/etc/udev/rules.d/51-android.rulesの設定が必要です。

sudo gedit /etc/udev/rules.d/51-android.rules

で下を一旦貼り付けて保存。

SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev" #Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666", GROUP="plugdev" #ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666", GROUP="plugdev" #Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666", GROUP="plugdev" #Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="04c5", MODE="0666", GROUP="plugdev" #Fujitsu
SUBSYSTEM=="usb", ATTR{idVendor}=="04c5", MODE="0666", GROUP="plugdev" #Fujitsu Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="091e", MODE="0666", GROUP="plugdev" #Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0600", GROUP="plugdev" #Google
SUBSYSTEM=="usb", ATTR{idVendor}=="201E", MODE="0666", GROUP="plugdev" #Haier
SUBSYSTEM=="usb", ATTR{idVendor}=="109b", MODE="0666", GROUP="plugdev" #Hisense
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev" #HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev" #Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666", GROUP="plugdev" #K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666", GROUP="plugdev" #KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666", GROUP="plugdev" #Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="17ef", MODE="0666", GROUP="plugdev" #Lenovo
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev" #LG
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev" #Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0666", GROUP="plugdev" #MTK
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666", GROUP="plugdev" #NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666", GROUP="plugdev" #Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666", GROUP="plugdev" #Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666", GROUP="plugdev" #OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="10a9", MODE="0666", GROUP="plugdev" #Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="1d4d", MODE="0666", GROUP="plugdev" #Pegatron
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666", GROUP="plugdev" #Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666", GROUP="plugdev" #PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev" #Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666", GROUP="plugdev" #SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev" #Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666", GROUP="plugdev" #Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="054c", MODE="0666", GROUP="plugdev" #Sony
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev" #Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="2340", MODE="0666", GROUP="plugdev" #Teleepoch
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666", GROUP="plugdev" #Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev" #ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666", GROUP="plugdev"

で、一旦再起動。
ここで注意なのがATTR{idProduct}=="4e40"の内容は機種毎で
毎回ころころ変わる必要がありますのでlsusbで都度確認します。


●lsusbでベンダーIDとプロダクトID確認
lsusbでベンダーIDとプロダクトIDを確認。
ちゃんとUSBケーブル経由で認識していれば表示されますが、
されていない場合や、時々切れる場合はUSBケーブルを交換しましょう。
多分焼いている途中で落ちます。

[kapper@kapper pmbootstrap]$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 8087:0a2a Intel Corp.
Bus 002 Device 116: ID 2717:ff40 Xiaomi Inc. Mi/Redmi series (MTP)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

この2717が例えばXiaomiのベンダーIDで
ff40が例えばMi/RedmiのプロダクトIDです。
プロダクトIDは焼くとコロコロ変わるので都度確認して51-android.rules
を修正必要。


●fastbootコマンドでTWRPをインストール
まずfastbootコマンドで認識を確認

fastboot devices

lsusbで認識、51-android.rulesに記入、ケーブルもチェック、
fastboot画面まで起動したらたいていfastbootで繋がるはずです。
出来なかったら上の4つを確認し変更。

fastboot devicesで表示されたらfastbootコマンドが使えます。

sudo fastboot flash recovery twrp-3.1.1-0-grouper.img

みたいな感じで本家TWRPのHPからダウンロードした
その機種専用のTWRPのimgをインストールして焼きます。
エラーが出たらやり直ししましょう。
無事入ったら、Recoveryで起動すると
TWRPが起動します。

またこの時点でgoogle純正のリカバリー
flash-all.shが使えるはずです。復旧できます。

●TWRP起動し、adbコマンド
TWRPを起動するのはadbコマンドを使うためです。

adb push aosp_grouper-7.1.2-ota-eng-20170811.ds.zip /sdcard

みたいにROMイメージを/sdcardにコピーして、
ホーム画面から「Wipe」を選択し,Factory Resetの画面になるのでスワイプ
TWRPのInstallからカスタムROMなどを焼く事が出来ます。
これでAndroidが起動するはずです。
起動しない場合はkernelが問題なのでKernelを焼き直しましょう。

なおGoogleデバイス以外は純正ROMが公開されていないので
復旧は当然むずかしくなります。
ご注意を。

●まとめ
こんな感じで一つ一つチェックして復旧させれば
なんとか直るかもしれません。
それ以外の異常が出たらググってください。
posted by kapper at 07:28 | Comment(0) | Android
にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ