按月份归档:二月 2012

自己做android系统

自己做android系统
1. 开发环境的准备
a) Ububtu 10.10,一个pc,网线,越快越好
b) Ubuntu不要用最高版本的,我认为10.10最好,因为我开始用的11.10.因为python的版本,gcc版本太高,很多工具无法安装。
2. 没有ubuntu pc没有关系,可以自己装一个。很简单,先在window下载一个,最好是32位,可能64位也有问题。安装ubuntu方法,先在Windows删除一个分区。然后可以用一些工具做一个u盘装系统的工具。例如我用的UltraISO。好像也可以解压,有一个exe的文件直接装,我没试过。注意,所装ubuntu的分区一定要大,100g+最好。我的是180g。至于分区,我只分了boot,交换分区,和/。注意不用wubi安装。因为在编译android内核时会出错误。冒失是因为Windows 下的ntfs文件系统的原因。知识所限,我不能理解。
3. 在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。让环境变量生效。
4. 然后看官方文档
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=”
# fastboot protocol on passion (Nexus One)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0bb4″, ATTR{idProduct}==”0fff”, MODE=”0600″, OWNER=”
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e22″, MODE=”0600″, OWNER=”
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e20″, MODE=”0600″, OWNER=”
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM==”usb”, ATTR{idVendor}==”22b8″, ATTR{idProduct}==”70a9″, MODE=”0600″, OWNER=”
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”708c”, MODE=”0600″, OWNER=”
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8″, ATTR{idProduct}==”6860″, MODE=”0600″, OWNER=”
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e30″, MODE=”0600″, OWNER=”
# adb protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d101″, MODE=”0600″, OWNER=”
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d022″, MODE=”0600″, OWNER=”
5. 下面下载代码,或者在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打个电话吧,让我面试一下。