顯示具有 lion 標籤的文章。 顯示所有文章
顯示具有 lion 標籤的文章。 顯示所有文章

2011年12月29日 星期四

如何編譯Android Ice Cream Sandwich

此篇文章主要記錄在Macbook Pro(mbp), OSX Lion上編譯ICS的Android source code的步驟, 不過應該Linux系統上也相同, 而且簡單許多, OSX上需要多做一些修改.

基本步驟
  1. 按照官網下載source code並設定環境
  2. 設定ccache, 原因是能夠加速c/c++的compiler速度(官網)
    $ export USE_CCACHE=1
    $ export CCACHE_DIR=/<path_of_your_choice>/.ccache
    $ prebuilt/linux-x86/ccache/ccache -M 20G
  3. 下載廠商提供的binary檔案, 我的手機是Nexus S, 所以Google提供
  4. 準備編譯
    1. 先將環境清乾淨
      make clobber
      
    2. 設定環境變數
      source build/envsetup.sh
    3. 設定編譯選項
      lunch
  5. 編譯
    make -j 4
    

2011年7月21日 星期四

在Lion下開啟Trim

看了網路幾篇文章, 原本在snow leopard常用的trim enabler會置換掉kernel extension的檔案
而且是相依性很高的, 換成舊版extension
雖然可以成功, 但是會有海灘球出現,
感覺超可怕的XD 應該是不能沿用了


digitaldj提供了一個比較簡單的手動patch方式
http://digitaldj.net/2011/07/21/trim-enabler-for-lion/

1. 備份要patch的檔案
cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.origin
2. patch 開啟Trim
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00).{9}(\x00\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
3. 清除kernel的extension cache
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches
4. 重開機, 完成

簡單吧, 該網站還有還原方式, 先試用看看, 有問題再來研究