亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android筆記之:CM9源碼下載與編譯的應用

2020-04-11 12:26:32
字體:
來源:轉載
供稿:網友

公司最近也開始基于android4.0 ICS修改框架了,公司的手機暫時不適合拿回家測試,也沒有kernel的權限。
從個人的角度看,我手上現在有兩部手機,一部是Htc G9 Aria,一部是Samsung I9100 Galaxys2,Cyanogenmod的開源代碼都提供了對這些手機的驅動支持,并且能方便的編譯打包,并安裝到手機。
上一篇文章是android2.3的編譯,已經過時,而且現在ubuntu已經升級到12.04,等等之類的,使我覺得非常有必要重新寫一篇新的博客來展示最新的android怎么在最新的ubuntu上編譯。
基于以上幾點,下面我將基于galaxys2來演示如何編譯cm9的源碼并打包zip安裝到手機。

1.ubuntu12.04的選擇
我第一次用x64的系統,發現配置環境的時候,會有很多種錯誤,后來我用32位的系統,安裝這些必備的軟件則一點都沒有出錯,所以在這里,如果用12.04系統編譯cyanogenmod ics源碼的話,我以個人經驗推薦使用32位系統。

2.內存和cpu
因為有些朋友在虛擬機上安裝ubuntu,所以內存分配可能會容易偏小,建議盡量偏大,我1G內存的時候,編譯中出現過錯誤,重啟設置2G的內存就沒問題。
cpu太弱的話,編譯的過程中進程也容易被kill掉,我出現過一次,重啟后ok。所以cpu的水平要注意一下。

3.java的選擇
無論是android官方文檔還是上面的那篇文章,java的安裝都會找不到,他們的軟件源有問題。需要手動安裝。
但是android ics的編譯,官方文章中指出支持openjdk-6-jdk,所以可以直接安裝openjdk6即可。
注意:這里我要說明一下,CM9的編譯腳本相對于官方源碼的編譯腳本忽略了或者說處理了一些可能出現的錯誤的地方,比如說這里java版本的檢測,如果是open jdk的話,官方就編譯不過,其實是一樣的,只需要修改一下腳本(build/core/main.mk),找到檢測java版本的地方:

復制代碼 代碼如下:

# Check for the correct version of java
java_version := $(shell java -version 2>&1 | head -n 1 | grep '^java .*[ "]1/.6[/. "$$]')
ifneq ($(shell java -version 2>&1 | grep -i openjdk),)
java_version :=
endif
ifeq ($(strip $(java_version)),)
$(info ************************************************************)
$(info You are attempting to build with the incorrect version)
$(info of java.)
$(info $(space))
$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
$(info The correct version is: Java SE 1.6.)
$(info $(space))
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)http://source.android.com/source/download.html)
$(info ************************************************************)
#$(error stop) //如果確定已經安裝正確的jdk的話,這句去掉,讓編譯繼續
endif

CM9的編譯腳本直接就去掉了這句話,但是還是要注意一下安裝正確的jdk版本。

4.解決下載過程中googlesource訪問不了的問題
你需要一個vpn帳號來翻墻。
這個我使用我之前購買的一個VPN,也有免費的VPN,具體的免費VPN 和VPN的配置,大家參考下面兩個鏈接:
http://173.252.215.172/server/query
http://173.252.215.172/setting/ubuntu.shtml
配置好了VPN,我們的Ubuntu就可以順利的下載所有的CM9源碼。

5.環境配置
參考官方的Ubuntu 12.04(請注意官方文檔,區分Ubutu11.10 x6和之前的系統)的要求,我們需要配置好如下環境:

復制代碼 代碼如下:

sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386
sudo apt-get install g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown
sudo apt-get install libxml2-utils xsltproc zlib1g-dev:i386

應該不會出什么問題。

6.安裝repo

復制代碼 代碼如下:

cd
mkdir bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
alias repo="~/bin/repo"

本來如此即可,但是我們需要隨時都能運行repo的話,最好把repo配置到環境中去:
復制代碼 代碼如下:

vim ~/.bashrc
#打開后,在文件最后面加上alias repo="~/bin/repo",然后保存退出
source ~/.bashrc

下次該用戶環境下無論什么時候什么地方都可以repo了。

7.下載CM9源碼
列表文件是托管在Github上的:https://github.com/CyanogenMod/android

復制代碼 代碼如下:

mkdir cm9
cd cm9
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync

ics分支就是CM9 ICS的分支了。
慢慢的等待吧(如果下載過程中,不停的提示打不開googlesource的話,記得參考前面配置vpn翻墻,本人改host無效)。

8.配置USB
這一步是為了后面要從你的手機拷貝系統屬性文件,用戶編譯源碼的。
ubuntu下不需要裝驅動才能連接的上你的手機,但是需要配置,可參考官方:http://source.android.com/source/initializing.html
我這里也簡單的寫下:

復制代碼 代碼如下:

sudo vim /etc/udev/rules.d/51-android.rules

然后,添加如下內容:
復制代碼 代碼如下:

#Samsung
SUBSYSTEM=="usb", SYSFS{idVendor}==04e8, MODE=0666

這是三星手機的配置,其他手機通過lsusb命令查看相應的id,以上述格式添加到/etc/udev/rules.d/51-android.rules文件里即可。
配置好了后,拔掉手機再插上,基本上就可以了。如果還不可以,先kill-server,再用root用戶連接。如果還不行,進入android-sdk/tools/,給你的adb這個命令文件"chmod +s adb",kill-server,再adb,多試幾次。

9.下載設備專用工程
CM9現在和CM7在下載設備工程不一樣,CM7是下載源碼的時候就自動下載好了,CM9則沒有,但是可以手動智能識別下載。
比如我的手機是galaxys2,則使用如下命令:

復制代碼 代碼如下:

brunch galaxys2

如果拼寫正確的話,它會自動下載galaxys2的相關工程(在目錄~/cm9/device/下多了以下目錄samsung/galaxys2)。

如果下載完成,進入編譯的話,請停止編譯,我們還需要進行下一步。

10.獲取手機系統屬性文件

復制代碼 代碼如下:

cd ~/cm9/device/samsung/galaxys2
./extract-files.sh
cd ~/cm9
vendor/cm/get-prebuilts

這一步只需要執行一次就可以了。

11.編譯CM9源碼
CM9的源碼比編譯Android官方源碼相對出錯情況會少很多。
首先,初始化變量:

復制代碼 代碼如下:

cd cm9
source build/envsetup.sh

直接使用命令:
復制代碼 代碼如下:

brunch galaxys2

然后慢慢的等待吧!
如果是虛擬機的話,內存吃緊和cpu不足的話,隨時都可能出錯。
如果出現錯誤的,注意分析一下錯誤的原因,我這里還比較順利,中斷了一次,重新編譯一下又可以了。
ps:如果是官方源碼編譯的話,我相信總有那么幾個錯誤,CM9要好很多。
編譯完成后,會生成一個zip文件,放到手機里就可以刷機了。

12.編譯工程
到上面為止,我們已經搭建了一個健康的CM9的環境,但是我們的目地不是編譯CM9 ROM,這個CM每天會出nightly版本,所以我們主要是使用這個CM9環境來編譯framework,app等工程。
比如第二天我們重新啟動,如何編譯framework-res.apk,framework.jar,Music.apk?我們需要用到這個環境:

復制代碼 代碼如下:

cd cm9
source build/envsetup.sh
//注意product名稱,chooseproduct的時候,在之前galaxys2要加上cm_,不然找不到產品
chooseproduct cm_galaxys2
//下面進入到framework/base/core/res.編譯framework-res.apk
cd framework/base/core/res
mm
//也可以編譯framework.jar
cd ~/cm9/framework/base/core/java
mm
//還可以編譯Music.apk
cd ~/cm9/packages/apps/Music
mm

如此就可以修改系統ROM,修改系統APP了。

13.小結
搭建Android環境和編譯Android源碼是一個復雜,耗時,熬夜的過程,十分不容易。
但是,釋然回首,其實也很簡單。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产精品自拍| 国产免费一区二区三区在线能观看| 成人久久18免费网站图片| 亚洲一区久久久| 国产精品9999| 色综合久久精品亚洲国产| 8x海外华人永久免费日韩内陆视频| 夜夜嗨av一区二区三区四区| 国产一区二区色| 国产mv久久久| 精品福利在线视频| 国产精品丝袜白浆摸在线| 欧美日韩免费看| 91九色国产社区在线观看| 成人免费看吃奶视频网站| 一区二区欧美在线| 欧美黄网免费在线观看| 久久人91精品久久久久久不卡| 91精品在线观看视频| 亚洲电影免费观看高清完整版| 欧美精品久久久久久久免费观看| 亚洲精品综合精品自拍| 永久免费看mv网站入口亚洲| 久精品免费视频| 欧美成aaa人片在线观看蜜臀| 亚洲成人动漫在线播放| 亚洲国产婷婷香蕉久久久久久| 国产精品视频专区| 欧美午夜影院在线视频| 精品中文字幕视频| 国产精品亚洲一区二区三区| www.日韩av.com| 精品视频www| 精品免费在线观看| 欧美中文字幕视频在线观看| 欧美性jizz18性欧美| 国产精品揄拍500视频| 在线观看中文字幕亚洲| 精品亚洲精品福利线在观看| 国产精品日韩久久久久| 亚洲男人天堂2024| 日韩精品在线视频观看| 国产精品成人一区| 欧美巨乳美女视频| 久久精品福利视频| 国产精品网址在线| 国内免费久久久久久久久久久| 欧美日本精品在线| 午夜精品一区二区三区av| 成人网在线观看| 日韩欧美中文第一页| 亚洲福利在线视频| 久久91亚洲精品中文字幕| 成人免费直播live| 国产精品99蜜臀久久不卡二区| 欧美激情在线狂野欧美精品| 国产精品第一视频| 成人黄色在线播放| 国产成人精品视频在线| 亚洲免费视频在线观看| 欧美极品少妇xxxxx| 日韩成人在线电影网| 成人性生交xxxxx网站| 国产一区二区三区高清在线观看| 日本不卡免费高清视频| 国产亚洲一区二区在线| 亚洲乱码国产乱码精品精| 国产成人精品在线视频| 国产精品吊钟奶在线| 北条麻妃一区二区三区中文字幕| 欧美大片大片在线播放| 国产成人精品在线| 91人人爽人人爽人人精88v| 亚洲天天在线日亚洲洲精| 久久成年人免费电影| 中文字幕九色91在线| 久久精品欧美视频| 亚洲精品第一国产综合精品| 亚洲成av人乱码色午夜| 亚洲成人999| 国产成人精品视频在线| 免费91在线视频| 欧美一级大片在线观看| 中国china体内裑精亚洲片| 国产视频丨精品|在线观看| 色综合久综合久久综合久鬼88| 日韩精品久久久久久久玫瑰园| 亚洲成avwww人| 国产精品扒开腿做爽爽爽视频| 日本久久精品视频| 欧美怡红院视频一区二区三区| 亚洲欧美综合区自拍另类| 欧美一区二区三区免费视| 精品亚洲夜色av98在线观看| 国自产精品手机在线观看视频| 久久久久国产精品一区| 国产精品久久久久久超碰| 国内精品伊人久久| 精品视频在线播放色网色视频| 亚洲欧洲在线观看| 亚洲性av网站| 尤物yw午夜国产精品视频| 欧美午夜激情小视频| 欧美精品久久久久久久久久| 日韩在线欧美在线国产在线| 亚洲视频在线免费观看| 色先锋资源久久综合5566| 午夜精品久久17c| 亚洲色图激情小说| 在线观看亚洲视频| 日本aⅴ大伊香蕉精品视频| 欧美激情小视频| 国产精品精品久久久久久| 91精品国产自产在线老师啪| 中文字幕在线国产精品| 日韩欧美中文第一页| 一本一本久久a久久精品牛牛影视| 91色琪琪电影亚洲精品久久| 国产精品久久久久久久电影| 亚洲一区二区三区四区视频| 日日骚久久av| 久久亚洲精品成人| 久久中文字幕在线视频| 欧美高清无遮挡| 亚洲国产欧美在线成人app| 欧美专区日韩视频| 97av在线视频| 91天堂在线视频| 久久久精品国产| 国内精品久久久久久久| 久久成人在线视频| 国产视频精品免费播放| 影音先锋日韩有码| 国产啪精品视频网站| 91精品国产自产在线| 国产69精品久久久久9| 亚洲天堂成人在线视频| 国产成人精品国内自产拍免费看| 日韩福利视频在线观看| 欧美日本黄视频| 国产97人人超碰caoprom| 欧美一二三视频| 日韩av免费在线观看| 色狠狠久久aa北条麻妃| 欧美在线观看网址综合| 成人免费视频在线观看超级碰| 亚洲女性裸体视频| 九九热这里只有在线精品视| 亚洲欧美日韩国产中文专区| 少妇av一区二区三区| 国产精品观看在线亚洲人成网| 欧美人成在线视频| 亚洲精品日韩激情在线电影| 亚洲国产精品一区二区三区| 91精品国产91久久| 亚洲色图第一页| 不卡中文字幕av| 欧美日产国产成人免费图片| 2019国产精品自在线拍国产不卡| 国产精品三级在线| 亚洲aaa激情| 久久久久久久久久国产| 久久久综合免费视频| 亚洲国产另类久久精品|