後來在這裏看到了個比較進階一點的方法,由於這個方法本來是給Nexus One用的,作者說在Desire上測試ok,我也想說Desire和Nexus One的電池規格是一樣的,所以用我的Desire試了一下並觀察了3天,還真的有的用,分享一下

使用條件 (要是你看不懂就請不要嘗試了)
1. 一台已Root的HTC Desire or Google Nexus One
2. 因為這個方法有點麻煩且耗時間,請先確定你使用Wipe Battery Stats,或是將電池做完整的放電和充滿循環,都很難再正確重整你的電池了
3. AOSP的ROM和支援的Kernel,我是用Oxygen 2.3.1和 _thalamus kernel 2.6.35.14_r3 (我沒試過Sense的ROM,不知Sense的Kernel會不會支援)
3. 下載Market APP Battery Calibrator
4. 將電量使用到你估計大概剩2%左右就會沒電的狀態,比方說你的電池一般在18%會關機,就20%的時候開始做下列的重整
5. 請確定接下來3~4 hr你不會用到這支手機(接電話,上網之類的),就是整個流程大概3~4 hr,流程中無法使用手機,這是for我的情況,每個人的電池壽命不同所以時間長短可能也不太同
使用方法說明 (看似很多其實很簡單,懶得貼圖了XD)
1. 將螢幕自動關閉設為10 min或30 min,反正設長一點就是了
2. 執行 Battery Calibrator
a. 若是General Tab裏的欄位都是空的,表示Kernel不支援,請參考使用條件3
b. 若是General Tab裏的欄位都有值,表示Kernel支援, 請將手機進入飛航模式
3. Battery Calibrator, 按menu鍵 --> settings -->
a. 打勾: GPS polling, ACR adjustment, advanced options
b. 不打勾: Airplane and Wake lock
4. 切換到 LearnPrep 頁籤
a. Age改成: 100% --> save
b. For
i. 原廠電池: mah改成: 1452 --> save
ii. 非原廠電池 ; mah改成電池自己標示的規格(像現在通海的Desire好像是1600) --> save
c. 在Register的欄位輸入: 66
在Value欄位輸入: a4 --> save
d. 在Register的欄位輸入: 65
在Value欄位輸入: 06 --> save
e. 在Register的欄位輸入: 10
在Value欄位輸入: 04 --> save
5. 切換到LearnMode頁籤,此時你會看到手機電量變成3x%,這是正常的,請繼續做下面的
6. 找到畫面最下方,"Detect Learn Mode"設定為ON
7. 此時觀查最上方的紅字 "Real-Time Voltage (µV)"小於3201000,馬上對手機進行充電 (APP會提示叫你插電源線,所以在數字接近3300000的時候,你的眼睛就要盯著螢幕注意看了)
8. 重電源線後,"LEARNF"燈會亮起來,代表已經開啟學習模式了
9. LEARNF亮起來後,請不要對手機做任何事,包含把通知列拉下來也不行,會導致學習模式失敗 (燈會熄掉),把螢幕關掉是沒關係的,但是你要自己記得快充滿的時候要把螢幕開起來
10. 當充滿時,"CHGTF"燈會亮, Battery Status Register會顯示0x81,這樣就完成了
11. 拔電源線,重開機,你的Desire就會正確的在100%充滿,0~1%關機了.
這個重整的原理請參考下面網址
https://github.com/dvgrhl/BatteryCalibrator
http://forum.oxygen.im/viewtopic.php?id=723
http://forum.xda-developers.com/showthread.php?t=765609