`
phenom
  • 浏览: 408861 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

编译 i9000的cm系统

 
阅读更多
[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 打开所有权限




分享到:
评论

相关推荐

    自己动手构造编译系统++编译、汇编与链接_14077184.pdf

    本书以作者实现的一个基于Intelx86指令集的编译系统为例,结合程序代码的主要部分详细阐述了编译系统的实现原理和过程。本书对编译器、汇编器、链接器、编译优化器涉及的关键算法、数据结构和程序实现流程,以及ELF...

    OpenHarmony编译子系统的培训文档

    OpenHarmony编译子系统的培训文档,介绍OpenHarmony的编译子系统,build gn的使用编译原理等

    SAP系统编译,提高系统性能

    SAP系统编译是SAP实施过程中的一个重要环节,它对于优化系统性能、提升用户体验具有显著效果。在安装和配置SAP系统后,通过编译,可以预先处理大量的数据和逻辑,使得用户在后续的实际操作中能更快地访问和执行事务...

    android编译系统分析.pdf

    "Android编译系统分析" Android编译系统分析是Android系统中一个非常重要的组件,它负责将Android应用程序代码编译成能够在Android设备上运行的机器代码。下面是Android编译系统分析的详细知识点: 一、Android...

    MTK系统编译架构,让你理解MTK系统编译脚本结构

    MTK(MediaTek)系统编译架构是针对MediaTek芯片平台进行Android系统定制时的关键环节。这个复杂的流程涉及到了许多技术细节,包括源代码管理、编译工具链、构建脚本以及配置文件等。让我们深入探讨一下这个架构,...

    linux从零开始编译操作系统

    从零开始编译一个操作系统,在本书中详细的介绍了从零开始编译一个操作系统的完整过程和所有的软件包。一起试试吧。

    Android项目编译系统

    Android项目编译系统是Android软件开发中一个至关重要的环节,它涉及到将源代码转换成可在Android设备上运行的应用程序。本文将详细介绍Android项目编译的基本方法,以及make调用的具体操作。 首先,了解Android...

    自己动手构造编译系统++编译、汇编与链接

    《自己动手构造编译系统++编译、汇编与链接》这本书深入浅出地介绍了编译器的基础知识,包括编译、汇编和链接这三个关键步骤。编译系统是计算机科学中的重要组成部分,它将高级语言转换为机器可执行的代码,使程序...

    编译系统透视++图解编译原理

    编译系统透视++图解编译原理_552886编译系统透视++图解编译原理_552886

    银河麒麟V10系统+飞腾CPU交叉编译Qt5.15

    在本文中,我们将深入探讨如何在银河麒麟V10操作系统上,使用飞腾CPU进行Qt 5.15.2的交叉编译。这个过程涉及到多个步骤,包括环境准备、依赖库的安装以及编译与安装Qt框架。首先,我们从准备工作开始。 ### 一、...

    Android编译系统(四)Android编译系统框架分析及main.mk 分析

    Android编译系统不仅仅处理目标系统二进制文件、Java应用程序的编译、链接、打包等工作,还包括生成各种依赖关系、确保模块变更后的重新编译链接、目标文件系统的生成、配置文件的生成等。它支持多架构(如linux-x86...

    AMI编译码系统设计.doc

    AMI编译码系统设计

    国产arm架构操作系统下phantomjs编译后的运行文件

    标题提到的是“国产arm架构操作系统下phantomjs编译后的运行文件”,这涉及到两个主要技术领域:国产麒麟操作系统和基于ARM架构的硬件平台,以及PhantomJS这个无头浏览器的编译与运行。 首先,让我们了解一下“国产...

    android编译系统分析(很详细)

    Android 编译系统分析 Android 编译系统是 Android 操作系统的核心组件之一,它负责将源代码编译成可执行文件。Android 编译系统的分析对于Android 开发者来说非常重要,因为它可以帮助开发者更好地理解 Android 的...

    x11库如何编译到Ubuntu上或者交叉编译到arm linux上

    6. **安装**:`sudo make install`将编译好的库安装到系统中。 对于交叉编译到ARM Linux设备,过程会稍微复杂些: 1. **安装交叉编译工具链**:比如`arm-linux-gnueabihf-gcc`,这取决于你的目标架构。 2. **配置...

    杭电编译原理 操作系统 网络 期末复习

    里面包含杭电编译原理 操作系统 网络的考试资源 包含杭电历年的几套试卷 编译原理的名词解析全部包含 网络试题库 操作系统理念试卷

    OpenCV3.4.1+vtk7.1.1+PCL-1.8.1自动安装编译(ubuntu系统,方法适用于ARM、X86架构)

    OpenCV3.4.1+vtk7.1.1+PCL-1.8.1自动安装编译(ubuntu系统),运行脚本,自动编译安装,方法适用于ARM、X86架构

    基于php的在线编译教育系统论文.docx

    1. 在线编译系统的设计与实现:在线编译系统的设计与实现需要考虑到系统的可扩展性、可维护性、可靠性等方面的技术难题。 2. 在线裁判的相关技术:在线裁判系统的设计与实现需要考虑到裁判算法、评分系统等方面的...

    Ubuntu 12.04 64位编译cm-10.2 总结

    标题“Ubuntu 12.04 64位编译cm-10.2 总结”涉及到的是在Ubuntu 12.04 LTS(长期支持版)64位操作系统上编译CyanogenMod(CM)10.2的过程。CyanogenMod是一个基于Android开源项目的第三方操作系统,CM 10.2是针对...

Global site tag (gtag.js) - Google Analytics