2010-03-11

HTC Magic 與電腦正確連線

不管是改機或做金卡,或是之後要對手機系統做一些進階的操作,都要先確認手機已經和電腦連線,這裡的連線不只是插上 USB 線,還要能確認電腦能夠透過接線相互溝通。其實 Magic 透過 USB 接上電腦,不用裝什麼驅動程式、預設就會被當作一台 USB「讀卡機」使用,只要在手機上選擇「掛載 SD 卡」,電腦就能像存取一般隨身碟一樣直接存取手機的記憶卡。但這種狀態下,並不能保證更新程式或其他工具能直接透過指令和手機的作業系統溝通,這時候必須安裝 HTC Driver,才能確保外部工具和手機系統能夠完整連線。這個驅動程式現在是包在 HTC Sync 裡面(舊版才有獨立版本)、在 HTC Support 官網就有提供,最新版本是 2.0.33,安裝程式會幫你裝進「HTC Driver」和「HTC Sync」,後者是一個開機會執行啟動的服務、主要是幫你 Sync Exchange/Outlook 資料用的,如果不需要的話可以獨立移除。一旦驅動程式裝好,只要你的手機接上電腦,除了原來當「讀卡機」的機制一樣會在你電腦跑出一個「卸除式磁碟」外,在裝置管理員裡,會多出一個 Android USB Devices 類別,裡面會有個 My HTC 的裝置,這樣才能確保手機裝置有正確連線,後面有一些透過電腦和手機連動的動作才能正確執行。(包含手機的「行動網路共用」,就是把能 3G 上網的手機當作數據機讓電腦能共用 3G 上網,這個 HTC driver 一定要裝..)

當 HTC driver 裝好,每當手機有接上電腦,便會多出這個手機裝置

要檢查手機連線是否正常,可以透過 ADB (Android Debug Bridge) 工具來做一些測試。ADB 工具其實是包在 Google 提供的 Android SDK 裡面(解壓縮後 tools 目錄下的那些執行檔),提供程式開發者拿來與手機或模擬器溝通的 Debug 公用程式,所以可以透過下載 SDK 解壓縮後取得。打開 DOS 視窗、切換到公用程式的目錄下,直接下執行檔命令 adb,就會列出所有 adb 參數和使用說明,如果要確認手機和電腦有正確連線,可以用命令:

adb devices

如果有正確連線,這個命令會出現所有連線裝置的列表 (List of devices attached),格式像是 HT0000000000 device,表示發現有一台「裝置」、序號 HT0000000000 正連接上,如此,不管要透過命令到手機的作業系統裡面操作,還是要進行韌體更新,才能確保連線無誤。其實 adb 是相當強大的公用程式,透過它可以直接「登入」手機裡的 Android 作業系統,由於 Android 本身是從 Linux 改來的,所以很多 Linux 的系統架構和操作命令大同小異,連線後「登入」手機的命令是:

adb shell

這時候會出現終端機模式最熟悉的提示符號「$」,然後就能執行 Linux 命令啦!在這個提示符號下其實有限定權限、只能在特定目錄做一些操作,這也是 Google 設計 Android 時希望保護作業系統穩定所做的限制,習慣 Linux 的人可能會想切換到最大使用者 root 去執行 (su),不幸的是未改機的情況下這樣是不被允許的。不過如果改過機、系統內也被放入 su 這隻程式,當你切換到 root 身份、提示符號變成「#」(有的工程版或特殊韌體一執行終端機模式提示符號就是 #),就代表已經取得作業系統的最大權限,原先 Android 的封印也被解開,這樣就能為所欲為啦!

不熟悉終端機操作也沒關係,adb 可以透過批次的方式直接下命令給手機,假設我想知道系統預設安裝的程式有哪些(就是那些不能移除的),可以直接在 DOS 視窗透過 adb 下命令:

adb shell ls /system/app

這樣會列出所有目前被安裝在系統應用程式目錄下 (/system/app) 的軟體 (*.apk)。如果要對手機做一些進階操作 (ex. 改機),不少命令都要在這樣的環境下執行,以上連線的環境檢查就不再複述了。

關於詳細 ADB 的用法,可以參照官方的使用文件:Android Debug Bridge

註:有一個狀況下是例外,如果手機開機不是開在正常模式(像 H-Boot, recovery or fastboot),就有可能發現「裝置管理員看不到裝置、但其實手機是連線的」,這種模式下如果連線失敗比較難判斷是哪邊的問題,所以最好在正常模式先確認能正確連線,之後在改機時其他狀態下比較能確保操作的正常。

回應: 12

Rex Chang 提到...

abin大你好,這是之前的作法沒錯,但是HTC sync的最新版本是2.0.18喔~已經有支援windows 7了!

http://www.htc.com/tw/SupportDownload.aspx?p_id=267&cat=3&dl_id=852

Abin 提到...

To 嘎抓:
感謝你的提醒和分享,趕緊來更正~

匿名 提到...

"打開 DOS 視窗、切換到公用程式的目錄下,直接下執行檔命令 adb,就會列出所有 adb 參數和使用說明"請問一下這句話要怎麼操作啊,不太能理解耶...研究了好久,麻煩大大再詳細一點解說囉!!謝謝!!

Abin 提到...

To 樓上:
請問你下載 SDK、解壓縮後有看到 tools 目錄了嗎?目錄裡有 adb.exe 等公用程式,只能在 DOS 模式,也就是「附屬應用程式」、「命令提示字元」所開啟的命令列模式下執行。執行後會開一個命令列的黑底視窗,用指令切換到你解壓縮的目錄下(看你自己解壓縮到哪裡),才能夠執行 adb.exe。

Alderis 提到...

Abin大您好,我手機可以連上sync,也可以用adb devices並找到手機,但RUU還是不WORK,依然是說無法連線,還有其他可能嗎? 謝謝。

匿名 提到...

Abin大大 你好 請問一下你在回應4裡說開啟命令列的黑底視窗後 要用指令去切換到SDK解壓縮目錄下的tools 要如何切換 可以再詳細解說嗎

Mr.RED 提到...

TO 樓上 你先把SDK解壓縮目錄複製到桌面上,進去該tools資料夾複製路徑,比方說我的路徑是
C:\Documents and Settings\Sean\桌面\android-sdk_r07-windows\android-sdk-windows\tools
複製好後,開始→開啟→打cmd 出現dos 視窗 下指令 cd C:\Documents and Settings\Sean\桌面\android-sdk_r07-windows\android-sdk-windows\tools
便會切換到該目錄底下

CLPeng 提到...

請問,小弟參考您的文章刷機成功了,目前是1.5刷2.1第三方韌體,但是成功後,連接到電腦(我確定與電腦連接正常,裝置管理員也有出現MyHTC的裝置),不過adb工具就再也找不到手機,這樣子是正常的嗎?謝謝!

Unknown 提到...

Marno! 您好! 小弟的手機目前為"磚頭"的狀態 (HTC EVO 4G).. 無意間發現到版主的訊息! 請問一下!我目前的手機在win7裝置管理員上可以看見[ MY HTC ]的字樣!
但是在adb devices這個指令下! 抓不到我的手機..請問有其他辦法可以解救嗎?
或是參考我在Mobile01上的發文! http://www.mobile01.com/topicdetail.php?f=566&t=2149271&p=1#27816126 感激不盡

匿名 提到...

請問大大我在製作金卡時,打這個指令adb devices,在DOS下出現
adb server is out of date. killing.
* daemon started successfully *
List of devices attached
MB030KF00532 device

是否連線到呢?

序號不是HT
請大大交依下吧~!

Abin 提到...

機器序號都列出來了,當然是有偵測、有連到啊~

Morgan 提到...

有問題想請各位前輩幫忙.我的手機因為改機,所以無法將相機內的照片上傳至電腦,插傳輸線到電腦後,電腦沒有顯示詢問"充電","HTC Sync"...,但"設定"內已經設為"HTC Syc",所以是不是電腦沒有驅動程式與手機連線?是否須先下載驅動程式到電腦? 請各位前輩幫忙回覆了

張貼留言

歡迎留言或發表意見,不過要理性不做人身攻擊。匿名的朋友得到回應的速度會比較慢喔~
發問相關的禮貌和規矩請先參考這篇文章,不當留言、和本文無關的回應可能會被直接刪除無視喔!