一、操作系统

准备一个ubuntu安装镜像,我用的是12.10

安装系统时请安装到30g以上的盘,最好就50g以上啦

安装教程不多说,网上很多教程,这里我推荐用自带的wubi工具安装,比较方便

用虚拟机也可以,但是配置低的就不要用虚拟机了

系统安装完毕后,打开控制台,输入以下命令安装所需组件

(1)sudo apt-get install git-core gnupg flex bison gperf build-essential

(2)sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev

(3)sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386

(4)sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos

(5)sudo apt-get install python-markdown libxml2-utils schedtool pngcrush xsltproc zlib1g-dev:i386

(6)sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so   (若提示 ln: 无法创建符号链接"/usr/lib/i386-linux-gnu/libGL.so": 文件已存在   忽略之)

二、安装JDK,配置java环境

安装JDK前我们需要获得JDK的安装包,登陆Oracle官网:ttp://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html来下载JDK安装包。这里我们选择最新的1.7.0_51版的tar.gz安装包进行下载,(注意版本问题!!现在最新是jdk1.7.0_51,这里仅供参考,如发现不是jdk1.7.0_51 自己替换,下面全部设置都要换成你下载的版本,一定要注意!!!)

如下图

首先点击上面的Accept License Agreement   前面的圆圈才可下载

将下载好的JDK安装包解包,得到一个“jdk1.7.0_51”的文件夹,将其移动到主文件夹

打开终端cd到jdk1.7.0_51目录

(cd /home/zhjm/jdk1.7.0_51)注:zhjm是我的用户名请按照实际情况替换,仅供参考

在终端输入sudo gedit /etc/environment

JAVA_HOME="/home/zhjm/jdk1.7.0_51"

CLASSPATH=".:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"

在PATH中添加:/home/zhjm/jdk1.7.0_51/bin注意与PATH原有的值之间用英文冒号:分隔,切勿把原来的值删除。

然后保存关闭,在终端中使用命令source /etc/envrionment更新。

如图

Ubuntu系统默认安装并使用OpenJDK(usr/lib/jvm/),因此需要手动修改系统默认的JDK,

sudo update-alternatives --install /usr/bin/javac javac /home/zhjm/jdk1.7.0_51/bin/javac 300

sudo update-alternatives --install /usr/bin/java java /home/zhjm/jdk1.7.0_51/bin/java 300

sudo update-alternatives --config javac,再选择相应的Priority 300

sudo update-alternatives --config java,再选择相应的Priority 300

如图

选择1,按后按回车,注意sudo update-alternatives --config javac

sudo update-alternatives --config java两个都要选择自己刚设置的如图框选的,即1(我这里是选1,请根据具体情况自己选择)

再到/etc/bin/下修改java与javac可执行权限.

至此配置完成,输入java -version、javac检查是否配置成功。

如图:

安装android SDK,设置adb

安装SDK、adb

从以下地址下载Android SDK包http://dl.google.com/android/android-sdHYPERLINK "http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz"kHYPERLINK "http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz"_r21.0.1-linux.tgz

将加载的SDK包解压到/home/sdk目录下(sdk目录自己新建一个,sdk目录的名字可以自己起,但是下面的环境变量配置需要修改成你自己修改的名字)

接下来打开终端,输入gedit .bashrc打开环境变量文件,添加如下代码到文本最末尾:

export PATH=~/sdk/android-sdk-linux/platform-tools:~/sdk/android-sdk-linux/tools:~/bin:$PATH

效果如图:(./bin:变量是后面repo文件需要用到的变量,这里一次性添加好,省事)

环境变量添加好后保存关闭,然后到~/sdk/android-sdk-linux/tools/下修改android可执行权限

之后重启终端输入android打开android SDK,如图:

等待将Packages列表加载好后,勾选Tools下的Android SDK Tools和Android SDK Platform-tools,点击install packages进行下载,下载好后关闭SDK即可,如图:(一些朋友的电脑打开SDK后发现无法更新Packages列表,那就需要FQ后下载了,或者一些可用的海外代理IP进行下载,代理IP设置方法:点击Tools,选择Options打开设置界面,在Proxy Settings中填入可用的代理地址)

注:在http://developer.android.com/sdk/installing.html网页中,大家会看到需要安装Eclipse,其实不需要安装Eclipse,这个是开发Android程序所需要的。

设置adb(是用中兴设备的同学可以直接试试第二个方法,且针对N880E使用(V880也可以),我也是找了很久才找到这个方法,似乎第一种连不上)

第一种方法(所有手机基本通用):将手机打开调试模式连接到电脑

打开终端,输入adb devices,如果显示出当前设备,就证明adb是正常的,如图

如果显示adb devices :???????????? no permissions或者没有显示的话,那就需要手动添加了

手动添加adb支持的方法

打开终端,输入lsusb,找到你的设备(Goodle Inc即设备名称,下图仅供参考如果是N880E会出现ZTE字样),记下ID后面的八位数字

接着输入sudo gedit /etc/udev/rules.d/70-android.rules,加入如下内容:如图

SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d002",MODE="0666"

添加好后保存并关闭,重启计算机,之后在终端输入adb devices就会发现adb已经恢复正常

注)其中的idvendor,idProduct指的是USB的ID可以使用lsusb查询得到。

比如我的是:

Bus 001 Device 003: ID 18d1:d002 High Tech Computer Corp

18d1 就是idVendor ,d002就是 idProduct

第二种方法是进入拨号,输入*983*87274#,然后点击一下最上面的All functions,如果弹出授权就授权吧,然后adb devices就能正常使用啦(这种方法只适用于中兴设备,其他的就不用试了

安装repo

在/home文件夹下新建一个bin文件夹(用于存放repo,环境变量之前已经添加好了,所以现在就不用添加了)

打开终端,输入

sudo curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

失败的话多试几次,那个神秘阻力你懂的

继续:

sudo chmod 0755 ~/bin/repo  赋予其权限

(或者:

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 来下载repo(如果长时间无反应或者出错,请到https://code.google.com/p/git-repo/downloads/list下载repo,下载好之后修改repo-1.19文件名为repo,复制到主文件夹bin目录)

以防万一我也在我的百度网盘上传了一份http://pan.baidu.com/s/1gdmQVr9

也可以在终端中输入chmod a+x ~/bin/repo来给repo添加运行权限)

到此为止,环境已经搭建完成,搭建完请再粗略浏览一遍是否有缺漏步骤

三、同步源码

1、在终端目录输入

mkdir ~/ydm   创建一个用来装源码的文件夹(ydm为我设置的名字,可根据自己喜好设置以下请自行更换为你设置的名字)

然后输入cd ydm回车

然后输入repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1回车

这句是指向cm10.1的源码所以地址是同步cm10.1的源码

当然可以自行替换为你想下载的安卓源码的地址

到https://github.com/CyanogenMod/android这里(这个网站经常不正常,有时候加载很慢很慢,如果你发现页面排版不正常就多少刷新几次)

然后在这里选择你想要的版本,

(比如我想要cm11,就选择cm11    吧)

然后拉下去找到这里

再找到这句

复制输入回车就行啦,这样同步的就是cm11的源码咯

然后就repo sync -j4 (j4表示4线程,不建议调太大)

也可以直接repo sync

如果中途断了或者出错什么的没关系,若没有关闭刚刚的终端就直接repo sync

如果终端关闭了,就要再cd到你的源码目录如cd ydm

然后再repo cync就可以继续下载了

这一步要很久很久,网速好的一晚上应该可以

同步完成就是显示这个啦

转载请注明,有错误希望指出qq:690615467

android sdk安装部分及adb设置等部分内容引用自imobile手机之家——Zero_初号
谢谢该作者

By zhjm

20140206

CM源码同步编译教程的更多相关文章

  1. CM12同步源码及编译教程

    同时提供基于安卓5.0的MKL魔趣猪扒饭编译教程~[玩机组出品]魔趣猪扒饭MKL50.1编译教程http://www.oneplusbbs.com/forum.php?mod=viewthread&a ...

  2. Android 11 源码下载+编译教程

    下载AOSP源码 这里我使用的是外国语大学的镜像执行的下载,Mac系统的话,一定要在区分大小姐的磁盘下执行 repo init -u https://mirrors.bfsu.edu.cn/git/A ...

  3. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

  4. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  5. 通过清华大学镜像下载Android源码并编译源码

    之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...

  6. 鸿蒙内核源码分析(编译脚本篇) | 如何防编译环境中的牛皮癣 | 百篇博客分析OpenHarmony源码 | v58.01

    百篇博客系列篇.本篇为: v58.xx 鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单 | 51.c.h.o 本篇用两个脚本完成鸿蒙(L1)的编译环境安装/源码下载/编译过程,让编译,调试鸿 ...

  7. 鸿蒙内核源码分析(编译过程篇) | 简单案例窥视GCC编译全过程 | 百篇博客分析OpenHarmony源码| v57.01

    百篇博客系列篇.本篇为: v57.xx 鸿蒙内核源码分析(编译过程篇) | 简单案例窥视编译全过程 | 51.c.h.o 编译构建相关篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙 ...

  8. 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙看这篇或许真的够了 | 百篇博客分析OpenHarmony源码 | v50.06

    百篇博客系列篇.本篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙防掉坑指南 | 51.c.h.o 编译构建相关篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙防掉 ...

  9. net-snmp源码VS2013编译添加加密支持(OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

随机推荐

  1. 8.2.1.8 IS NULL Optimization NULL 优化:

    8.2.1.8 IS NULL Optimization NULL 优化: Oracle 对待null值: SQL> create table t100(id int,name char(10) ...

  2. 8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句

    8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句 本节讨论优化用于处理WHERE子句, 例子是使用SELECT 语句,但是相同的优化 ...

  3. hdu 2583 permutation 动态规划

    Problem Description Permutation plays a very important role in Combinatorics. For example ,1 2 3 4  ...

  4. ios9邮箱添加163邮箱

    电脑登陆163邮箱➡️设置➡️开启pop3/smtp/imap功能➡️保存.开启后系统会给你个"客户端授权密码",同时会发短信到你手机里. 打开手机,设置➡️邮件,通讯录,日历➡️ ...

  5. 小结OC中Retain cycle(循环引用)

    retain cycle 的产生 说到retain cycle,首先要提一下Objective-C的内存管理机制. 作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于 ...

  6. i&1、负数二进制

    if(i&1==1) 表示 如果是 奇数 则...i&1 -- 按位与运算,取 2进制整数 i 的最低位,如果最低位是1 则得1,如果最低位是0 则得0. 奇数 i 的最低位 是1,偶 ...

  7. solr安装

    Windows solr(tomcat) 1.1. 安装步骤 1.1.1准备工作 1. 服务器:apache-tomcat-7.0.40压缩版,http://localhost:8080/安装是否成功 ...

  8. fetch策略

    @OneToMany(mappedBy="image",cascade=CascadeType.ALL,fetch=FetchType.EAGER) @Fetch(value=Fe ...

  9. 复合命令A等效于$a

    时间:2014.06.28 地点:基地 ------------------------------------------------------------------------------- ...

  10. [Polymer] Introduction

    install Polymer and explore creating our first custom element: bower install polymer index.html: < ...