下载CyanogenMod c8650源代码

来源:互联网 发布:域名出售网 编辑:程序博客网 时间:2024/06/16 13:25
有1台华为c8650手机,想使用它学习android

CyanogenMod系统的编译。


浏览器中打开https://github.com/open-source网站,搜索c8650,可以搜索到关于他的android项目。


选择ferhung/android_device_huawei_c8650 项目,打开连接


根据README.md 指导

看到是CyanogenMod 7 device configuration for the Huawei c8650


我有centos x64机器,没有Ubuntu 10.10

所以,先只是下载源代码。


创建c8650用户

#useradd c8650

#su - c8650


1)Download and install repo:

$ mkdir ~/bin

$ PATH=~/bin:$PATH


$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

下载不了,没有速度。


在机器上ping commondatastorage.googleapis.com主机返回

PING commondatastorage.googleapis.com (93.46.8.89) 56(84) bytes of data.


通过代理的ssh主机ping 结果是

PING storage.l.googleusercontent.com (172.217.25.112) 56(84) bytes of data.
64 bytes from nrt13s51-in-f16.1e100.net (172.217.25.112): icmp_seq=1 ttl=56 time=3.40 ms
64 bytes from nrt13s51-in-f16.1e100.net (172.217.25.112): icmp_seq=2 ttl=56 time=3.48 ms


修改/etc/hosts文件,加入

172.217.25.112     commondatastorage.googleapis.com


再使用$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

出错 curl: (56) Recv failure: Connection reset by peer

使用https

再使用$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

下载正常了。

$ chmod a+x ~/bin/repo


2)Download the source:

$ mkdir ~/android/system/

$ cd ~/android/system/

$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread

提示fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable

gerrit.googlesource.com地址被墙了

ping 这个地址返回的ip是正确的。ping gerrit.googlesource.com
PING googlecode.l.googleusercontent.com (74.125.23.82) 56(84) bytes of data.

没办法,只能使用代理服务器。

我有外网的ssh服务器,单他只能实现socks5的代理

而repo只能使用http代理,

所以需要一个转换器,他就是privoxy


安装privoxy

yum install privoxy

配置

vi /etc/privoxy/config

找到 783行 listen-address ,去掉前面的注释符号,端口可以随便改

listen-address 127.0.0.1:8118

找到 1336行,去掉前面的注释符号,后面的1080端口要对应ss服务里面的配置,要一致

forward-socks5t / 127.0.0.1:8088


export https_proxy=http://127.0.0.1:8118

export http_proxy=http://127.0.0.1:8118


再次执行$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread

成功。

提示

Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
Get git://github.com/CyanogenMod/android.git
remote: Counting objects: 3921, done.
remote: Total 3921 (delta 0), reused 0 (delta 0), pack-reused 3921
接收对象中: 100% (3921/3921), 1.28 MiB | 165.00 KiB/s, done.
处理 delta 中: 100% (1348/1348), done.

。。。。。。。

error.GitError: manifests var:
*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <c8650@localhost.localdomain>) not allowed


遇到错误:fatal: empty ident  <wyp@ubuntu.(none)> not allowed

是你没有正确设置电子邮箱和用户名

git config --global user.email "st780206@163.com"

git config --global user.name "songtao"

再次执行$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread

提示

Your identity is: songtao <st780206@163.com>
If you want to change this, please re-run 'repo init' with --config-name

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? y

repo has been initialized in /share_space/c8650/system

成功初始化。

repo sync -j16

同步代码


出现

Cannot fetch CyanogenMod/android_hardware_ti_wpan

编辑.repo/manifests/default.xml文件

注释掉CyanogenMod/android_hardware_ti_wpan


查看可切换的分支
cd .repo/manifests
git branch -a | cut -d / -f 3


以 gingerbread-release 分支为例
repo init -b gingerbread-release 
repo sync (not needed if your local copy is up to date)
repo start gingerbread-release --all 
查看当前的分支
repo branches









0 0