2012年1月16日

iPhone 3G 加速筆記(iOS 4.2.1)

看到標題,我想應該會有不少人講:「iPhone 3G?現在都已經開賣到 4S 了,怎麼還有人寫這種『前前前朝古董』?」

我必需說,以我個人來說,我還是比較喜歡 iPhone 3G 圓圓的造型,再說,我手上的 iPhone 3G 老歸老,但卻活得好好的,觸控正常、電力可以用一天多、上網收信看小說一切正常,唯一的問題就是 Home 鍵難按了點。

做過調整後,開啟程式不用等半天,一隻軟硬體都沒有問題的手機,我還真的連想換都沒什麼很合理的藉口。

!~註~!這篇文章是給我自己做筆記用的,如果有跟我一樣狀況,又想讓 iPhone 3G 重生的話,可以參考看看,不過,最好有點「基礎」再來試(會自己 JB,知道怎麼透過 SSH 連線就差不多了),備份一定要做,還有,風險自負啊 ...

在未做調整前,iPhone 3G 裝上 iOS 4.2.1 真的是慘到一個不行,開什麼都要等一段時間,若不是我需要的很多 APP 都要 iOS4 以上,我老早就把它降回 iOS 3.1.3 快樂使用了。

有用過 iPhone 3G的人都知道,這隻手機什麼都好,就是記憶體太小這點讓人很困擾。把 iPhone 當成台小電腦來看的話,系統調校其實很單純,不外就是減低系統的負擔,跟增進記憶體管理的效能這二項。

減低系統的負擔很單純,把用不到的系統服務拿掉,就可以多出不少記憶體空間出來。

步驟一、拿掉用不到的系統服務
iOS 很單純「/System/Library/LaunchDaemons」下就是開機會載入的東西,把檔案從這裡拿掉,開機就不會載入,我拿掉的服務如下:
  1. com.apple.chud.chum.plist
  2. com.apple.chud.pilotfish.plist
  3. com.apple.CrashHousekeeping.plist
  4. com.apple.datamigrator.plist
  5. com.apple.DumpBasebandCrash.plist
  6. com.apple.DumpPanic.plist
  7. com.apple.MobileInternetSharing.plist
  8. com.apple.ReportCrash.DirectoryService.plist
  9. com.apple.ReportCrash.Jetsam.plist
  10. com.apple.ReportCrash.plist
  11. com.apple.ReportCrash.SafetyNet.plist
  12. com.apple.ReportCrash.SimulateCrash.plist
  13. com.apple.ReportCrash.StackShot.plist
以上 14 項大多是問題回報、網路分享(我沒辦 3G 方案)跟用不到的 SIM 卡通訊錄匯入,對我個人來說,都是用不到的,拿掉當然無所謂。

步驟二、增進記憶體管理效能
記憶體這塊就比較麻煩,畢竟這是 iPhone 3G 的先天問題,只能透過虛擬記憶體的做法來補強,許多高手做過了不少方案,不過,網友 Mowd 的分享文「iPhone 上最好用的虛擬記憶體管理程式」裡,是我目前找到的最好方案,透過「com.apple.dynamic_pager.plist」這隻程式呼叫 iOS 內建的功能來做開啟虛擬記憶體增進效能。

方法很簡單,大概的步驟如下:
  1. 複製「com.apple.dynamic_pager.plist」到「/System/Library/LaunchDaemons」
  2. 執行身份為 root,檔案權限為 644
  3. 重新開機
「com.apple.dynamic_pager.plist」原始碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
     <dict>
          <key>Label</key>
          <string>com.apple.dynamic_pager</string>
          <key>OnDemand</key>
          <false/>
          <key>ProgramArguments</key>
          <array>
               <string>/sbin/dynamic_pager</string>
               <string>-F</string>
               <string>/private/var/vm/iphone_swap</string>
           </array>
           <key>RunAtLoad</key>
           <true/>
     </dict>
</plist>

步驟三、透過 Cydia 裡的工具停用某些功能
  1. NoSpot,取消 SpotLight 的搜尋功能
    SpotLight 其實是個很好用的搜尋功能,不過對 iPhone 3G 實在是個很大的負擔。再加上 Simon 本來就喜歡把資料整理得清清楚楚,所以使用到的機會真的是低到一個不行,直接取消它,換來 iPhone 3G 的速度,對我來說是個很划算的選擇。
  2. BackGrounder,取消 iOS 偽多工背景功能
    我想,iPhone 玩家應該都知道這隻赫赫有名的程式,這可是以前讓 iPhone 可以多工執行的要件之一。
    這裡裝 BackGrounder 主要是停用 iOS 本身內建的偽背景多工,只充許平時需要的程式,像:iPod、Mail、Safari ...
全部完成後,我家的 iPhone 3G 真的恢復到以前走 iOS 3.1.3 時的速度,可以使用的記憶體也都在 30MB 以上,不再會有接個電話,程式就回不去了的狀況 ...