cm源码下载和源码结构介绍,recovery的编译。
来源:互联网 发布:用友t3软件下载 编辑:程序博客网 时间:2024/04/30 10:47
一,下载源码前准备工作:
java 环境搭建【请参照博文http://blog.csdn.net/azsx02/article/details/68952492】
编译环境Ubuntu 12.04:
在用户目录下创建一个~/bin目录,并添加到环境变量中(要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中)
下载repo脚本并修改权限为可执行
创建一个保存android源码的目录,修改为最大权限,并进入到该目录下'
二,下载源码:
初始化repo,并选择要下载的分支(版本)
在这过程中需要输入你的姓名、邮箱等信息
下载【同步】源码
repo sync是一个相当长并且痛苦的过程,下载完后包括.repo缓存文件夹一共18G,也就是折算下来需要下载9G左右。
网速快者4-5小时可以完成,一般者一个夜晚,小水管者就无法预测了。
代码下载过程中,经常提示以下错误:
error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
解决方法:编辑/etc/hosts文件
三,源码结构简介:
四,recovery编译流程
同步源码到最新,我同步的源码目录为~/android/cm10.2/,要改为自己的源码目录,下面每一步也一样!
更新完成后,执行下面命令,完成环境的安装
下一步,make我们后面要用到的工具
会生成out目录,在/out/host/linux-x86/bin中有后面要用到的工具。
将/out/host/linux-x86/bin加入环境变量,变量具体位置要改成你的
在文本最后添加:
export PATH=$PATH:~/android/cm10.2/out/host/linux-x86/bin
保存退出,执行下面命令,让刚加的环境变量生效:
从官方包中,别人的ROM包也可以,拿出boot.img。我放到了~/android/目录
开始建立我们机型的device目录:
出现版本提示后按Ctrl+z 强制停止,然后进行后面的步骤。
命令参考:
./build/tools/device/mkvendor.sh device_manufacturer_name device_name /your/path/to/the/boot.img
此时在/device/huawei/中就会有你的机型了,里面有你的配置文件:AndroidBoard.mk,AndroidProducts.mk, BoardConfig.mk, device_.mk, kernel, system.prop,recovery.fstab, and vendorsetup.sh.
修改配置文件:
在这里很重要的一个文件就是recovery.fstab,是你手机里各个设备分区对应的挂载点,可以理解为手机的分区表。如果这个文件有错误,那么进入recovery后,会提醒分区挂载失败。
这个文件我们可以从官方的recovery.img提取出来。也可以直接解包别人编译好的recovery,得到recovery.fstab
开始编译,执行命令
如果提示lunch未安装,只可以执行
source build/envsetup.sh
编译开始:
复制代码输出的目录为:out/target/product/n8880e/recovery.img文件,就是我们要的
java 环境搭建【请参照博文http://blog.csdn.net/azsx02/article/details/68952492】
编译环境Ubuntu 12.04:
- $sudo apt-get install git gnupg flex bison gperf build-essential
- zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
- libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
- libgl1-mesa-dev g++-multilib mingw32 tofrodos
- python-markdown libxml2-utils xsltproc zlib1g-dev:i386
- $sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
- $mkdir ~/bin
- $PATH=~/bin:$PATH [今后如果在repo sync的时候提示未找到repo 就要执行该命令]
- $curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
- $chmod a+x ~/bin/repo
- $mkdir ~/android
- $chmod -R 777 ~/android
- $cd ~/android"
- $mkdir cm10.2
- $cd cm10.2
二,下载源码:
初始化repo,并选择要下载的分支(版本)
- $repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
- Your Name 【写入你的用户名】
- Your Email 【写入你的邮箱地址】
- 接下来要写入 Y 确定。
- $repo sync
网速快者4-5小时可以完成,一般者一个夜晚,小水管者就无法预测了。
代码下载过程中,经常提示以下错误:
error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
解决方法:编辑/etc/hosts文件
- $ gedit /etc/hosts
- 增加下面内容,保存(提前保存好):
- 74.125.31.82 www.googlesource.com5
- 74.125.31.82 android.googlesource.com
- 203.208.46.172 cache.pack.google.com
- 59.24.3.173cache.pack.google.com9
- 然后重新输入
- $ repo sync
- 第一级目录如下:
- |-- abi
- |-- android
- |-- bionic (Bionic C库)
- |-- bootable (引导相关代码)
- |-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
- |-- cts (Android兼容性测试套件标准)
- |-- dalvik (JAVA虚拟机)
- |-- developers
- |-- development (程序开发所需要的模板和工具)
- |-- device (设备)
- |-- docs (文档)
- |-- external (目标机器使用的一些库,android使用的一些开源的模组)
- |-- frameworks (应用程序的框架层 核心框架)
- |-- hardware (部分厂家开源的硬解适配层HAL代码)
- |-- libcore (核心库)
- |-- libnativehelper
- |-- ndk (本地开发工具包)
- |-- out (编译完成后的代码输出与此目录)
- |-- packages (Android的各种应用程序)
- |-- pdk8
- |-- prebuilt (Android在各种平台下编译的预置脚本)
- |--prebuilts
- |-- sdk (sdk及模拟器)
- |-- system (底层文件系统库、应用及组件——C语言)
- |-- tools
- |--vendor
- Package目录展开:
- |-- apps (应用程序库)
- |-- experimental
- |-- inputmethods (输入法)
- |-- providers (提供器,提供应用程序、界面所需的数据)
- |-- screensavers
- |-- wallpapers (墙纸)
- Apps目录展开
- 自行查阅
同步源码到最新,我同步的源码目录为~/android/cm10.2/,要改为自己的源码目录,下面每一步也一样!
- $cd ~/android/cm10.2
- $repo sync
更新完成后,执行下面命令,完成环境的安装
- $./build/envsetup.sh
- $make -j4 otatools
将/out/host/linux-x86/bin加入环境变量,变量具体位置要改成你的
- $gedit ~/.bashrc
export PATH=$PATH:~/android/cm10.2/out/host/linux-x86/bin
保存退出,执行下面命令,让刚加的环境变量生效:
- $source ~/.bashrc
开始建立我们机型的device目录:
- $./build/tools/device/mkvendor.sh huawei c8812 ~/android/boot.img
命令参考:
./build/tools/device/mkvendor.sh device_manufacturer_name device_name /your/path/to/the/boot.img
此时在/device/huawei/中就会有你的机型了,里面有你的配置文件:AndroidBoard.mk,AndroidProducts.mk, BoardConfig.mk, device_.mk, kernel, system.prop,recovery.fstab, and vendorsetup.sh.
修改配置文件:
在这里很重要的一个文件就是recovery.fstab,是你手机里各个设备分区对应的挂载点,可以理解为手机的分区表。如果这个文件有错误,那么进入recovery后,会提醒分区挂载失败。
这个文件我们可以从官方的recovery.img提取出来。也可以直接解包别人编译好的recovery,得到recovery.fstab
开始编译,执行命令
- $./build/envsetup.sh
source build/envsetup.sh
编译开始:
- $make -j4 recoveryimage
0 0
- cm源码下载和源码结构介绍,recovery的编译。
- 下载和编译cm源码及制作cm刷机包
- 下载最新的CM源码
- android 源码和CM源码下载地址
- 下载 cm 源码
- CM源码(CyanogenMod)源码编译
- 最新CyanogenMod CM-11.0 源码下载和编译,自己定制ROM
- 下载CyanogenMod 7.2 for Motorola Defy (Android 2.3.7 AOSP)的CM源码并编译
- 源码编译CWM Recovery
- 编译 cyanogenmod (cm) android 源码遇到的坑(自用)
- Chromium的源码下载和编译
- Android源码的下载和编译
- Android源码的下载和编译
- Andoird源码的下载和编译
- CEF3 源码的下载和编译
- android 源码的下载和编译
- Spark源码的下载和编译
- PX4源码分析1_PX4源码的下载和编译
- django中的perform_destroy
- hibernate框架时遇到的错误ognl.MethodFailedException: Method "execute" f
- (十二)优先级队列
- 两个数的和
- 安卓属性动画
- cm源码下载和源码结构介绍,recovery的编译。
- Add Two Numbers
- 剑指offer第五题
- struts2 中的 addActionError 、addFieldError、addActionMessage的方法【转】
- JDBC(Java Data Base Connectivity)
- 局部加权平均-线性回归
- 第一个返回数字
- 深入理解Java的接口和抽象类
- 从这里出发