自己做android系統
- 開發環境的准備
a) Ububtu 10.10,一個pc,網線,越快越好
b) Ubuntu不要用最高版本的,我認為10.10最好,因為我開始用的11.10.因為python的版本,gcc版本太高,很多工具無法安裝。
- 沒有ubuntu pc沒有關系,可以自己裝一個。很簡單,先在window下載一個,最好是32位,可能64位也有問題。安裝ubuntu方法,先在Windows刪除一個分區。然后可以用一些工具做一個u盤裝系統的工具。例如我用的UltraISO。好像也可以解壓,有一個exe的文件直接裝,我沒試過。注意,所裝ubuntu的分區一定要大,100g+最好。我的是180g。至於分區,我只分了boot,交換分區,和/。注意不用wubi安裝。因為在編譯android內核時會出錯誤。冒失是因為Windows 下的ntfs文件系統的原因。知識所限,我不能理解。
- 在ubuntu下配置開發環境,這個可以參照官方文檔,應該可以看明白。我4級沒過都能看明白。最好進入root賬戶,我是這么做的。
不過,那個jdk怎么也沒弄下來,后來我自己安裝了個。到http://www.oracle.com/technetwork/java/javase/downloads/index.html下載jdk6.然后進入目錄。chmod 777 jdk.bin(賦予運行權限,或者chmod a+x jdk.bin)
然后把解壓出來的目錄放在/usr/jdk。
配置環境變量。因為是自己的pc,我就這樣配置的 sudo gedit /etc/profile
然后在結尾寫上
export JAVA_HOME=/usr /jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存退出。
然后source /etc/profile。讓環境變量生效。
- 然后看官方文檔
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils xsltproc
新建 文件/etc/udev/rules.d/51-android.rules
文件寫如下內容,username改成root就可以了
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
- 下面下載代碼,或者在Windows下下載別人的包。不要在Windows下解壓,因為出現重名文件。原因是,Linux系統內核中有類似於a.c A.c的文件。Windows不區分大小寫,Linux區分。
下載方法
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest
好像這里要郵箱,如果打算上傳代碼,必須是gmail
$ repo sync –j10 注釋:開10個進程下載,這樣快。
一天估計可以下完。下載過程中,可以陪女朋友去看看電影,幫老媽做做家務什么的。中途出現錯誤就從新打開終端,
PATH=~/bin:$PATH
cd WORKING_DIRECTORY
repo sync –j10
下完之后 導入簽名$ gpg --import
然后按ctrl +d ,粘貼下面那段多的文字。去官網看吧
6.編譯,source build/envsetup.sh或者. build/envsetup.sh
然后lunch full-eng
選擇編譯版本
然后運行 make –j4 如果是4核就寫4.這句話是開啟多少線程編譯。然后cpu就100%跑2個多小時。還可以做一會家務。。。
后面的事情我沒做。因為我舍不得我的手機,怕成板磚。這可是我借錢買的。。。
刷機要謹慎。
進入手機的 fastboot
模式
然后運行
adb reboot bootloader
出現fastboot
模式模式
運行
fastboot flashall -w
查看更多,看這里吧http://source.android.com/source/building-devices.html
有時間我也看看。
我在模擬器上運行的
增加環境變量
#vim /root/.bashrc
在.bashrc中增加環境變量,如下
export ANDROID_PRODUCT_OUT=/root/myandroid/out/target/product/generic
ANDROID_PRODUCT_OUT_BIN=/root/myandroid/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT}
保存退出后,更新一下.bashrc
#source .bashrc
在模擬器上運行編譯好的鏡像文件
最后,同步這些變化:(注意,我的~是/root,我是以root用戶登錄的)
# source ~/.bashrc
# cd ~/android/out/target/product/crespo
# emulator -system system.img -data userdata.img -ramdisk ramdisk.img
有時間,我在找一下做rom的方法。然后爭取改框架,更寫驅動,更改內核等。希望有人能帶我。
到實習的時候了,現在還沒找到工作。有的同學找到了,也有的去培訓機構培訓了,有些願意在宿舍頹廢下去,我投了很多簡歷,也沒人理我。希望有人推薦,願意帶我這新人。Java或者android。希望hr打個電話吧,讓我面試一下。