刷機中遇到的問題解決方案及一些感悟,刷機解決方案感悟
由於項目原因,需要刷手機,手機是Nexus 4,上頭給我發了項目的文檔和刷機系統的鏡像檔案。
之前我基本上沒用過安卓手機,更沒刷過機,又加上我比較粗心的性格,刷了N天才刷好,耽誤了幾天的工作。就在剛才終於刷成功了,興奮之情難以言表。期間遇到了各種問題,走了很多彎路,現在想想,有時候的做法和想法真是可笑,不到期間也感悟到一些道理。這裡總結一下,也許你能用到。
Linux系統下刷機:安裝adb和fastboot
第一步:在linux終端輸入lsusb命令查詢USB匯流排上的裝置,比如我這裡查詢結果如下:
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 15a2:0c02 Freescale Semiconductor, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
15a2即裝置的裝置ID號。
如果不明顯,可以通過插拔資料線,找出手機的裝置號。
第二步:下載最新的android SDK並解壓到某目錄,。
在這裡下載的檔案貌似不全,下載後檢查一下有沒有tools和platform-tools這兩個檔案夾,如果沒有,那再搜尋一下百度網盤,
android sdk各版本獨立版
我當時在百度網盤下載的。另外,32位和64位的版本貌似也會影響刷機,最好下載符合的。
截至目前最新的SDK為android-sdk_r12-linux_x86.tgz
解壓出來的名稱為android-sdk-linux_x86
進入下面目錄:
cd android-sdk-linux_x86/tools/
然後在終端執行:./android update adb
第三步:修改~/.android/adb_usb.ini檔案,注意,這時為root模式下的路徑,在普通許可權下,
是不存在該目錄的。
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x15a2
第四步:建立一個新的udev規則的檔案,在/etc/udev/rules.d路徑下,建立名為imx-android.rules的檔案,編輯內容如下:
SUBSYSTEM=="usb", SYSFS{idVendor}=="15a2", MODE="0666"
第五步:在/etc/bash.bashrc中聲明adb的路徑:
export PATH=........
然後
source /etc/bash.bashrc
如果不是常用的話,可以直接在終端中輸入export PATH=$PATH:/...........
但是下次開啟終端的時候還需要引入目錄。
第六步:重啟ADB
adb kill-server
adb start-server
第七步:使用adb devices命令尋找裝置:
root@lqm:/opt/program/mx53_smd/out/host/linux-x86/bin# adb devices
List of devices attached
0123456789ABCDEF device
至此,adb安裝成功。
在終端中輸入 fastboot devices可以查看fastboot安裝是否成功。
進入fastboot模式下
在終端中輸入adb fastboot bootloader
或者通過手機上按鍵的組合進入fastboot模式,比如Nexus 5可以通過按音量減鍵+鎖屏鍵進入。
有的文章寫的需要在root許可權下進入fastboot模式,否則刷機時會出現waiting for device.
刷鏡像.img檔案
進入儲存鏡像檔案的目錄下,
設定“ANDROID_PRODUCT_OUT”環境變數,該變數指定編譯產生的鏡像檔案在PC機上的存放路徑。
env ANDROID_PRODUCT_OUT=`pwd` fastboot flashall -w
pwd表示目前的目錄
windows下刷機:安裝adb
下載相應sdk,把platform-tools路徑加到環境變數中。
也可以下載刷機精靈,提供了刷機需要的環境。
進入fastboot模式
同上
刷鏡像.img檔案
之前的env ANDROID_PRODUCT_OUT=`pwd`要改為 set ANDROID_PRODUCT_OUT=。。。。。
假設鏡像檔案的儲存路徑為D:/product/,設定ANDROID_PRODUCT_OUT環境變數的命令為:set ANDROID_PRODUCT_OUT= D:/product/
常見問題及參考部落格
waiting for device解決方案:
1.fastboot驅動版本不匹配或沒安裝fastboot驅動
2.刷機需要在root許可權下,在fastboot命令前加sudo或者切換到root許可權
adb版本不同,64電腦上下載的是32位,在ubuntu系統下安裝 ia32-libs 方法
sudo找不到命令:修改sudo的PATH路徑
fastboot模式升級
error: could not load android-info.txt
linux環境變數設定錯誤後的恢複方法
感悟
1、下錯了檔案十分耽誤時間
之前下載的sdk,第一次下載的缺少platform-tools檔案夾,我以為tool目錄就是platform-tools目錄,耽誤了我一天的時間。後來下載的是32位的,也會在刷機時出錯。
2、動手前查清楚相關知識
比如之前的env ANDROID_PRODUCT_OUT=`pwd`,我在windows下set ANDROID_PRODUCT_OUT=`pwd`,出現error: could not load android-info.txt,我上網查了很多方法,後來才發現pwd的意義,改正後就刷機成功了。因為這個問題,我走了很多彎路,如果事先查明白這行命令的目的,就不會耽誤這麼久的時間。
3、不要迷信權威
有時候問一些大牛,也許他們專研的方向不是這方面,即使專研這方面,可能也會出錯。之前就是太迷信大牛的話,走了牛角尖。
刷機遇到的問題 急急急助
嗨!
您手機的問題建議您前往您附近的維修點檢測一下。地址和電話查詢: www.xiaomi.com/c/service/poststation/同時北京,上海,南京,武漢,成都,杭州,西安,深圳和廣州9家小米之家有維修能力。 小米之家工作時間為周二至周日,上午10點到晚上6點。在保修期內,非人為損壞完全免費。如果您附近沒有網點,請您到小米官網www.xiaomi.com,登陸您購買這個商品的帳號,在訂單詳情裡面選擇申請售後,然後請您電話保持暢通,我們會有工作人員聯絡您的。
更詳細的描述問題有助於網友理解你遇到的麻煩,協助你更準確的解決問題。謝謝你支援小米手機!
小米企業平台[官方認證]
我刷機遇到問題,解救
SP FLASH TOOL
【8200 錯誤】:原因是手機系統和刷機包的系統不同一個晶片平台
【解決辦法】:方法一:重新找 ROM,你的 ROM 是不對的!比如機器是 6575,刷機包是 6577 所以就會
報這樣的錯。方法二:更新最新版的刷機軟體