精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-25
Android源代码由两部分组成,其一是Android系统应用部分的代码,其次是Android所使用的内核代码, 准备阶段:安装JDK Java 5: for Froyo and older $ sudo apt-get install sun-java5-jdk 1、安装一些必备的软件。 Git是Linux Torvalds为了帮助管理Linux内核而开发的一个开放源码的分布式版本控制系统 软件,它不同于SVN,CVS这样集中式的版本控制系统。在集中式版本控制系统中只有一个仓库(repository), 因为Android是由kernel,Dalvik,Bionic,prebuild,build等多个Git项目组成, 所以Android项目编写了一个名为repo的python的脚本来统一管理这些项目的仓库,使得Git的使用更加简单。 2、创建源代码目录 3、用curl下载repo脚本,并保存在~/bin/repo文件中 4、初始化版本库 选择你所下载的版本号,Nexus S对应的是crespo android-2.3.4_r1 由于之前下载的是android2.3.3版本的,所用的参数是android-2.3.3_r1,但是用android-2.3.4_r1测试后不能下载, 5、执行repo sync命令 将fetch=” git://android.git.kernel.org/”修改为fetch=”http//android.git.kernel.org”[[br]] 通过用http的方式穿透,然后执行repo sync 6、编译Android系统应用的源代码 (注意,是在root用户下) 这里的这个bin目录其实就是你下载后源代码所在的位置,查看该文件夹下的东西类似如下 这时,如果直接执行make命令的话,会出现错误,这是因为在make(编译)之前,需要安装一些依赖包才能够正常编译, 7、编译Gingerbread系统源代码 (2)用envsetup.sh脚本初始化环境变量 或者 (3)选择版本号,执行lunch操作 (4)开始编译源代码 完成编译大约1个小时左右 8、以下是各种错误对应的解决办法: build/core/main.mk:73: You are attempting to build on a 32-bit system. 注释掉,或者将“64”换成“32” 然后,将./build/core/main.mk 中的 这样,32位的计算机也可以正常编译了 编译成功后,会在~/bin/目录下得到~/bin/out/target/product/crespo。编译好的源代码会在out目录下生成两个img镜像文件,可以先执行 9、配置环境变量 保存退出后,更新一下.bashrc 10、在模拟器上运行编译好的镜像文件 11、下载Nexus s 的kernel source (你的项目创建的源代码,就是大多人用的~/mydroid这个目录) 说明:上面四条语句要正确,尤其是路径要正确,否则后面执行make的时候会出现各种各样的错误 差不多一个小时左右,你会发现,在samsung目录下有 12、将你的手机取得root权限 13、在手机上运行编译好的samsung内核 进入你的SDK/tools目录下,执行adb shell 将boot.img下载到本地,你可以用adb命令,也可以用终端程序 这样,就在该目录下生成了一个newtestboot.img镜像文件 进入到SDK/tools文件夹下,关闭你的手机。然后长按电源键和音量上键进入bootloader界面 (必须是root权限) 如果boot成功,说明你的内核是对的,点击“设置”--“关于手机”--“内核版本“ 内核版本好都是一样的,说明下载的内核源代码跟手机用的是一样的 参考资料: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-03
太好了,正在到处找如何编译自己的版本,刷我的NEXUS S呢。。。先去试试看,有问题在来请教。
![]() |
|
返回顶楼 | |
发表时间:2011-08-03
Q1: git clone git://android.git.kernel.org/kernel/samsung.git
返回 fatal:Unable to look up android.git.kernel.org (port 9418)(Name or service not known) 有没有其他替代的地址可以下的啊?呵呵 |
|
返回顶楼 | |
发表时间:2011-08-03
haogui0 写道 Q1: git clone git://android.git.kernel.org/kernel/samsung.git
返回 fatal:Unable to look up android.git.kernel.org (port 9418)(Name or service not known) 有没有其他替代的地址可以下的啊?呵呵 那你讲git clone git://android.git.kernel.org/kernel/samsung.git 修改为 git clone http://android.git.kernel.org/kernel/samsung.git 试试呢 正常情况下都应该可以使用 |
|
返回顶楼 | |
发表时间:2011-08-03
好的,已经可以下载源码了。谢谢。
另外 #export PATH=$PATH:/root/bin/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ #make ARCH=arm clean #make ARCH=arm herring _defconfig #make -j4 ARCH=arm CROSS_COMPILE=arm-eabi- 这个第一条 export 是加到 .bashrc里么? 后面几个MAKE又加哪里呢? 不好意,刚接触这方面的知识,麻烦你指点。 |
|
返回顶楼 | |
发表时间:2011-08-03
haogui0 写道 好的,已经可以下载源码了。谢谢。
另外 #export PATH=$PATH:/root/bin/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ #make ARCH=arm clean #make ARCH=arm herring _defconfig #make -j4 ARCH=arm CROSS_COMPILE=arm-eabi- 这个第一条 export 是加到 .bashrc里么? 后面几个MAKE又加哪里呢? 不好意,刚接触这方面的知识,麻烦你指点。 不用的,前面我写了#的,表示是在终端中执行的命令,这4条都是在终端中直接执行的 这个不用放在.bashrc中,因为只设置一次就可以了,仅仅是为了下面的那三步 |
|
返回顶楼 | |
发表时间:2011-08-03
好的。非常感谢,等下完SAMSUNG的代码编译完刷机试试。刚ROOT完。第一次刷有点小怕。呵呵。
|
|
返回顶楼 | |
发表时间:2011-08-03
haogui0 写道 好的。非常感谢,等下完SAMSUNG的代码编译完刷机试试。刚ROOT完。第一次刷有点小怕。呵呵。
刷机之前,先下载官方ROM到SD卡里,以防万一 |
|
返回顶楼 | |
发表时间:2011-08-04
网上找个遍,到处都找不到I9023刷机包了。哥们能不能发一个给我呢?呵呵。
|
|
返回顶楼 | |
发表时间:2011-08-06
现在的工作是将编译好的内核在Nexus S上测试,下载下面的附件,解压后将fastboot文件存放到你的SDK/tools目录下,
将unpack-booting.pl脚本文件和mkbootimg 二进制文件放入到你的roo目录下的NS-bootwork文件夹下,另外, 将你编译好的zImage镜像文件也好拷贝到此文件夹下(如果没有该文件夹,自己创建) 进入你的SDK/tools目录下,执行adb shell $adb shell 此时,你的手机上显示“授权请求”,默认是10秒以后就过时了,所以需要在10秒之内,点击允许。点击允许以后, $符号将会变成#,表示已经取得了root权限。(注意:手机必须root以后才能够使用) 将boot.img下载到本地,你可以用adb命令,也可以用终端程序 ------------------------------------------------------------------------------------- Q1: 哪里能下载你帖子里提到的附件? Q2: 解压后将fastboot文件存放到你的SDK/tools目录下。 这个SDK/tools目录是指的我的VMware+Ubuntu上的android 源码目录下的SDK目录么?该目录下并没有tools目录。 Q3: 将unpack-booting.pl脚本文件和mkbootimg 二进制文件放入到你的roo目录下的NS-bootwork文件夹下,另外, 将你编译好的zImage镜像文件也好拷贝到此文件夹下。 这里提到的root目录是指的我的VMware+Ubuntu上的root目录呢,还是我的NEXUS S上的ROOT目录呢? 麻烦你指点一下,刚接触这一块,不明白的地方太多。谢谢! |
|
返回顶楼 | |