[color=red][b]此文 并不算是菜鸟教程,可以配合提供的链接一起看,希望谅解.[/b][/color] 一直以来,都想自己编译一个系统。只是没有去实践,今天实践成功了,并不难,难的都被cm团队做完了。剩下的就是下载,编译就可以了。 编译这个系统,失败过一次,网上都没 人提到,编译所需要的环境。 首先是硬盘空间,装个linux,8g现在ubuntu少于这个值不让装。 home空间直接分配为单独的区,70g+ 据官方文档说明,如果单个系统(我只编译i9000),缓存要25g,如果是多个,可以提高到50-70g。 目录大小65g,包含下载的源码,2014-8-2号是12g*2会耗去24g左右,编译会耗去35-40g 还需要安装jdk1.6/1.7,如果你安装了1.8,不好意思,不支持。 还需要安装sdk,弄个最新的apilevel20,耗去1g左右空间。 i9000安装包完成后是190m,目测gs5安装包1g, 总耗去home空间是接近65g了。所以准备个70g硬盘是必须的。第一次就是40g空间,结果编译不成功。然后源码下载 了两天。 下载,需要一个repo文件,这个需要过墙,附件会上传。 下载是分两步的,一部分是源码,完了以后,运行一些命令,如breakfast,最后brunch galaxysmtd运行后会下载驱动,我的是560m左右,如果是gs5,可能要很多。 完成之后还得连接手机,拉一些文件出来,我不知道没有root的手机是否可以获取这些文件。反正我的是可以。装过n个系统,刷了无数次的机了。 9300 系列建议不要刷了,容易爆。 官方文档: http://wiki.cyanogenmod.org/w/Build_for_galaxysmtd 同时有一些参考: http://blog.csdn.net/libelosophy/article/details/22997805 http://3w.angeeks.com/thread-2970803-1-1.html 下载: repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0 同步repo sync -j4,依网速,大概时间少不了吧。 没有在下载前研究下manifest文件,而我是在下载完成之后才按上面的文章修改的。果然快不少。 源码已经下载了, 然后我进行修改,自定义manifest文件,为cm11.xml,(这个可以在repo初始化后就可以修改了.像上面文章提到的下载优化什么的.) 然后repo init -m cm11.xml repo sync -j4同时我把cm11.xml里面的一些包去除了,这些用不上, 同步最后会把去除的那些包删除的。(如果不删除,估计硬盘空间占用会多一些。) 日志: Deleting obsolete path /home/angus/cm11/packages/apps/Browser Deleting obsolete path /home/angus/cm11/packages/apps/CMAccount Deleting obsolete path /home/angus/cm11/packages/apps/CMFileManager Deleting obsolete path /home/angus/cm11/packages/apps/CMHome Deleting obsolete path /home/angus/cm11/packages/apps/CMUpdater ........ 最后:brunch galaxysmtd编译, 机器配置i5 3470, amd7470,8g内存,500g7200转硬盘,编译大概3小时,不算长。笔记本吃不消。 话说ubuntu的xorg-xf86-video-ati驱动只能用一个字来形容"差",也可能是其它原因吧.换成fglrx就明显好多了.否则编译起来,机器都动不了.像死机了一样.当然我的笔记本烂卡,什么驱动都启动不了x.只有切换到intel卡. 最后在imgdiff停下来了,我以为一会就行,没想到好久,发现目录不可写,于是在/tmp/中查看日志中的目录,修改了,权限,目录的属主chown,chmod两个命令。后面似乎也没有用到这目录,然后ctrl +c停止了,再重来。 几分钟就生成了zip文件, 有一点需要注意,在/out/..../system/app下面的apk如果编译后不手动删除,只是在前面的cm11.xml中删除了,编译后,会直接打包的,你可以把你需要的apk放到这个目录,暂没有去研究放在其它哪个目录,会在编译时复制过来。预装软件一般是放这里的 也没有研究private-app下哪个可以配置删除的。 附件上传了repo文件,就不用下载了。 里面包含前面的三个文章网页。 经过第一次编译后,写了个脚本,后来直接运行一个命令就可以了.脚本放到cm11目录中:名为:build_galaxysmtd.sh 因为本人装的jdk是1.8,但编译最高为1.7,所以重新定义了. #!/bin/bash export JAVA_HOME=/home/angus/jdk1.7.0_65 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$ANDROID_SDK_ROOT:$ANDROID_SDK_ROOT/platform-tools/:$ANDROID_SDK_ROOT/tools/:$ANDROID_NDK_ROOT:/home/angus/bin echo "JAVA_HOME:" echo "$JAVA_HOME" echo "repo sync" repo sync -j4 echo "source build/envsetup.sh" source build/envsetup.sh echo "breakfast galaxysmtd" breakfast galaxysmtd export USE_CCACHE=1 echo "prebuilts/misc/linux-x86/ccache/ccache -M 25G" prebuilts/misc/linux-x86/ccache/ccache -M 25G echo "croot" croot echo "brunch galaxysmtd" brunch galaxysmtd 运行./build_galaxysmtd.sh,如果权限不对,修改下chmod u+x build_galaxysmtd.sh,只是修改为用户可执行的.(当前用户建立的默认是这个,不需要修改) 或者chmod 777 build_galaxysmtd.sh 打开所有权限
编译 i9000的cm系统
猜你喜欢
转载自phenom.iteye.com/blog/2100031
今日推荐
周排行