馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊  
 
x
 
 本帖最後由 sharonliu 於 2015-2-10 00:14 編輯  
 
2015/02/09 
修正更新內容 
 
............................................................................................................................................................................... 
【XPT】如何建立cm11的開發編譯環境(ㄧ) 
延續上一篇同步完原碼後 
接下來的工作就是開始編譯新的cm11/cm12 
後續的動作會因為不同的機型步驟方式會有所不同 
接下來的內容會分為兩個不同的方法 
 
方法1: 
cm官方沒有支援的裝置型號採用其他高手提供的源碼 
其原理主要是利用其他高手已經整理改寫過的原碼(請自行上網蒐集你的機型其他高手寫好的原碼) 
來建立編譯cm時所需要的相關檔案 
通常主要修改的部份是Device tree,vendor tree,hardware tree,內核(kernel)內核架構等 
 
方法1教學開始(此步驟為cm官方沒有支援的裝置型號) 
1. 
首先在cm的工作目錄下找到repo這個資料夾 
 
2. 
在repo資料夾內新增一個名為local_manifests的資料夾 
 
3. 
在新增的local_manifests資料夾內新增加一個檔案 
將檔名命名為roomservice.xml 
4. 
用自己習慣使用的文字編輯器打開此檔案 
增加自己蒐集其他高手公開的相關源碼 
以下範例為xperia p,u,sola,go的相關內容 
-   <remove-project name="CyanogenMod/android_hardware_libhardware" />
 
 -   <remove-project name="CyanogenMod/android_hardware_libhardware_legacy" />
 
 -   <remove-project name="CyanogenMod/android_packages_apps_CMUpdater" />
 
 -   <remove-project name="CyanogenMod/android_packages_apps_Bluetooth" />
 
 -   <remove-project name="CyanogenMod/android_packages_apps_BluetoothExt" />
 
 -   <remove-project name="CyanogenMod/android_packages_apps_Settings" />
 
 -   <remove-project name="CyanogenMod/android_system_core" />
 
 -   
 
 -   <project path="bionic" name="XperiaSTE/android_bionic" />
 
 -   <project path="build" name="XperiaSTE/android_build" > <copyfile src="core/root.mk" dest="Makefile" /> </project>
 
 -   <project path="bootable/recovery" name="XperiaSTE/android_bootable_recovery" />
 
 -   <project path="device/Sony/kumquat" name="XperiaSTE/android_device_sony_kumquat" />
 
 -   <project path="device/sony/lotus" name="XperiaSTE/android_device_sony_lotus" />
 
 -   <project path="device/sony/nypon" name="XperiaSTE/android_device_sony_nypon" />
 
 -   <project path="device/sony/pepper" name="XperiaSTE/android_device_sony_pepper" />
 
 -   <project path="device/sony/montblanc-common" name="XperiaSTE/android_device_sony_montblanc-common" />
 
 -   <project path="external/bluetooth/bluez" name="XperiaSTE/android_external_bluetooth_bluez" revision="5.28" />
 
 -   <project path="external/icu" name="XperiaSTE/android_external_icu" />
 
 -   <project path="external/wpa_supplicant_8" name="XperiaSTE/android_external_wpa_supplicant_8" revision="android-5.0" />
 
 -   <project path="external/bluetooth/glib" name="aosp-bluez.glib" remote="googlecode" revision="master" groups="pdk" />
 
 -   <project path="external/bluetooth/sbc" name="bluetooth/sbc" remote="kernel"     revision="master" groups="pdk" />
 
 -   <project path="frameworks/av" name="XperiaSTE/android_frameworks_av" />
 
 -   <project path="frameworks/base" name="XperiaSTE/android_frameworks_base" />
 
 -   <project path="frameworks/native" name="XperiaSTE/android_frameworks_native" />
 
 -   <project path="hardware/libhardware" name="XperiaSTE/android_hardware_libhardware" />
 
 -   <project path="hardware/libhardware_legacy" name="XperiaSTE/android_hardware_libhardware_legacy" />
 
 -   <project path="hardware/ste-sony" name="XperiaSTE/android_hardware_ste-sony" />
 
 -   <project path="kernel/sony/u8500" name="XperiaSTE/android_kernel_sony_u8500" />
 
 -   <project path="packages/apps/OpenDelta" name="XperiaSTE/android_packages_apps_OpenDelta" />
 
 -   <project path="packages/apps/Settings" name="XperiaSTE/android_packages_apps_Settings" />
 
 -   <project path="packages/apps/Bluetooth" name="XperiaSTE/android_packages_apps_Bluetooth" />
 
 -   <project path="system/core" name="XperiaSTE/android_system_core" />
 
 -   <project path="vendor/sony" name="XperiaSTE/android_vendor_sony" />
 
 - </manifest>
 
  複製代碼 備註: 
remove-project name= 
上面程式碼代表的意義為cm源碼哪些架構是你不採用的 
<project path= 
上面程式碼代表的意義為cm源碼你要採用蒐集至其他高手公開的相關源碼其中device,vendor,hardware,kernel這幾個資料夾通常是移植成不成功的關鍵 
如何修改源碼不在此篇文章的討論範圍內 
xda上有很多高手將源碼公開在github上 多花時間慢慢找相關資源在參考別人的程式碼 
相信有朝一日你也能成為高手記得也要秉持開源的精神 
將經驗傳承給更多人 
 
5. 
依據剛剛增減的源碼來源同步最新的源碼來源 
回到源碼的工作目錄下開啟終端機 
 
6. 
下載初始化編譯cm11所需的檔案架構設定 
- cd vendor/cm
 
 - ./get-prebuilts
 
 - cd ../..
 
  複製代碼 備註:cm12不需要此步驟可直接跳過 
 
7. 
初始化編譯cm11/cm12的相關設定 
 
8. 
初始化你要編譯的裝置相關設定 
- lunch cm_kumquat-userdebug
 
  複製代碼 其中kumquat是我的手機xperia u開發代號 
你可以自行替換為你要編譯的裝置代號 
 
9. 
開始編譯 
cpu規格比較好超過4核心的 
可考慮將-j4改為-j8 
利用更多執行緒去編譯可縮短編譯的時間 
我的筆電規格為Intel Core i5-3230M 
8G DDR3 
總共編譯的時間約為2個半小時 
 
方法2教學開始(此步驟為cm官方有支援的裝置型號) 
cm官方有支援的裝置型號大多數源碼都不需要修改同步時會自動下載相關的源碼 
但vendor下你的裝置相關檔案和相關的blobs因為版權關係在cm下無法開源必須用手動方式提取 
 
1.. 
初始同步化編譯cm所需的架構檔案以及編譯時你的裝置所需相關的 
Device tree,hardware tree,內核(kernel)內核架構等 
- source build/envsetup.sh
 
 - breakfast amami
 
  複製代碼 amami是xperia z1 compact的開發代號 
請依需要換成你要編譯裝置的開發代號 
 
2. 
請將你的裝置刷上最新且未被更動最原始乾淨的cm11/cm12 
 
3. 
接下來要開始提取裝置的blobs和vendor下你的裝置相關檔案 
請到device資料夾內找到你的裝置型號所有的device tree 
例如sony資料夾內xperia z1 compact的device tree有 
amami,common,msm8974-common,qcom-common,rhine-common這幾個資料夾 
 
4. 
將你的裝置透過傳輸線連接電腦,並開啟USB偵錯模 
 
4. 
找一下這幾個資料夾內是不是有extract-files.sh這個腳本檔案 
若有的話請點擊執行腳本檔案程式會自動執行提取裝置的blobs和vendor下你的裝置相關檔案 
 
5. 
初始化編譯cm11/cm12的相關設定 
 
6. 
初始化你要編譯的裝置相關設定 
接著請在清單內選擇你的裝置代號 
 
7.開始編譯 
cpu規格比較好超過4核心的 
可考慮將-j4改為-j8 
利用更多執行緒去編譯可縮短編譯的時間 
 
下面的指令為你編譯新的cm11/cm12時需要執行的指令(例如同步最新的cm11/cm12原碼) 
步驟1: 
首先清除之前編譯時所產生的所有檔案 
 
步驟2: 
開始編譯新的cm11/cm12 
- . build/envsetup.sh
 
 - lunch cm_kumquat-userdebug
 
 - make -j4 otapackage
 
  複製代碼 
教學結束 
之後會陸續介紹如何移植TWRP 
如果我有解釋不清楚或錯誤的地方 
還請各位高手不令指教 
 
 |   
        
 
評分
- 
查看全部評分
 
 
 
  
 
     
    
     
     
        
       |