`
willsunforjava
  • 浏览: 167877 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CyanogenMod源码下载及在模拟器上刷机

 
阅读更多

    编译环境搭建

 

1. Ubuntu11.04  32位机器

2. JDK下载及环境变量配置

vim /etc/profile(我将环境变量都配到了/etc/profile里,下同)

在文件中export 。。。。

3. 下载Android SDK

因为编译源码时,会用到adb

下载Android SDK包,解压即可。

export PATH=${PATH}:<你sdk的目录>/tools

4. 安装需要的软件

sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool 

 

CyanogenMod源码下载

 

1. Repo的安装

repo的安装比较方便,之需要下载一个文件,并设置成可执行权限,并添加到系统环境中去即可,具体命令如下:

创建目录:

cd ~

mkdir bin

配置环境变量:

export PATH=$PATH:~/bin

安装Repo

curl http://android.git.kernel.org/repo > ~/bin/repo

chmod a+x ~/bin/repo

2. 下载源码

a) 创建源代码目录:

cd ~

mkdir CyanogenMod

cd CyanogenMod

b) 在cyanogenmod目录执行repo命令,设定需要同步的源码内容:

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

说明:网址即为cyanogenmod的地址,-b表示我们选择需要同步的分支,cyanogenmod有不少分支,比如dount,eclair, froyo,我们目前需要编译的是2.3,即gingerbread,则通过-b gingerbread来选择2.3的分支。

c) 在配置过程中,会让你选择名字和邮箱,这个会显示在你最后编译出来的rom

的基础信息里,可以选择你喜欢的来写

d) 配置完成后,就可以开始同步源码了:

repo sync -j16 

e) 说明:这里说一下repo sync 这个过程那是相当的慢的。使用repo sync -jn,n表示同时打开的网络链接数,开启多个网络连接来下载,这样速度会有所提升的

 

编译环境的设置

 

1. 编译环境的建立

同步完源码后,首先需要建立编译环境,CM的源码把这些命令都写成了脚本,我们只需运行相应的脚本即可,首先,先cd到源码的根目录,然后执行如下命令:

./build/envsetup.sh

lunch cyanogen_generic-eng 

2. 专属文件的提取(针对不同设备,本人只是刷了模拟器)

a) 虽然Android系统是开源的,但有部分Dream的专属文件是不开源的,所以并不包含在源码树中。但如果希望rom能在Dream真机上运行,又需要这些文件,所以需要将这些文件提取出来

b) 首先你要确保安装成功了上述所有软件,然后,将Dream通过usb连接到电脑上。

c) cd到源码的/vendor/htc/dream_sapphire目录,然后执行脚本:

./extract-files.sh

d) 这个操作会调用adb命令,从你的手机里pull所需要的专属文件到vendor目录。

3. 编译文件的修改(本人没进行此操作,直接全部编译)

a) 默认的编译过程包含了所有的语言和程序,但其实我们并不需要这些,可以通过编译文件的修改来定义需要输出的语言和软件

b) 打开/vendor/cyanogen/products 目录下的cyanogen.mk文件,里面定义了要输出的软件和语言,对于不需要的软件,可以直接删除。但不建议在这里修改,可以从最后的输出目录里删除不需要的,直接在这里改容易出错

c) 在文件的最后,有一行”PRODUCT_LOCALES”,这里就包含了rom支持的语言类型,默认有几十种,编译出来后,软件会比较大,一般我们只需要保留其中的常用语言即可,笔者选择保留了en_US,zh_CN和zh_TW这三种语言,编译出来的软件就小了很多。

 

CyanogenMod编译

 

源码的根目录,下执行

mka

重要:在编译前先执行make update-api,在执行mka进行编译,否则会报错,具体原因是CM中添加了新的API 。

编译结束后,在out/target/product目录下回出现三个镜像文件ramdisk.img system.img 和 userdata.img 

若在该目录下执行

emulator -system system.img -data userdata.img -ramdisk ramdisk.img

模拟器启动会出现黑屏

重要:安装上述方法执行后,模拟器黑屏 

解决办法:在CM源码中找到kernel-qemu-armv7,位置在~/prebuilt/android-arm/kernel/kernel-qemu-armv7 

将它拷贝到镜像文件的相应目录,执行如下命令: 

emulator -system system.img -data userdata.img -ramdisk ramdisk.img -kernel  kernel-qemu-armv7


 

分享到:
评论

相关推荐

    CyanogenMod编译环境的搭建和可刷机文件的编译及打包

    CyanogenMod编译环境的搭建和可刷机文件的编译及打包

    cm10源码下载

    ### CyanogenMod10源码下载详解 #### 一、前言 随着移动设备的不断发展,用户对于系统定制化的需求日益增长。CyanogenMod(以下简称CM)作为一款基于Android系统的开源操作系统,因其高度可定制性和强大的功能而受...

    android源码下载

    2. **设置环境**: 在开始下载源码之前,确保你的机器满足最低硬件要求,通常需要足够的内存和磁盘空间。在命令行中配置必要的环境变量,如`export ANDROID_SDK_ROOT`和`export PATH`,确保指向正确的SDK和NDK路径。 ...

    kindle fire hd 8.9刷机工具

    对于Kindle Fire HD 8.9,刷机可能涉及到更换Amazon的原生系统为第三方ROM,如Android的CyanogenMod等。 首先,你需要了解刷机前的准备工作。这包括备份你的数据,因为刷机会清空所有个人资料。同时,确保设备电池...

    android2.2源码下载

    在下载源码前,需要安装以下软件和工具: 1. Git:用于从AOSP仓库克隆源码。 2. JDK:Java开发环境,用于构建过程。 3. Android SDK:提供编译所需的工具和库。 4. Repo:Google开发的辅助工具,管理Android项目中的...

    CyanogenMod launcher2 源码,eclipse可以编译

    CyanogenMod android平台 android 4.0 launcher 2 源码 eclipse可以编译. 经过大量修改: 它支持android 4.0 系统, 它支持android 4.1 系统. 均通过真机测试. 联系我获得技术支持.

    刷机大师.rar

    在提供的文件“shuajidashi.apk”中,我们可以看到这是刷机大师的安装文件,用户下载并安装后,即可在安卓设备上运行此应用,开始体验刷机大师带来的便利服务。在使用过程中,务必保证设备电量充足,连接稳定可靠的...

    摩托罗拉里程碑1 XT702驱动刷机工具刷机包

    摩托罗拉XT702的刷机包可能包含基于不同Android版本的修改版系统,比如CyanogenMod、LineageOS等。刷入这些刷机包,用户可以获得更多的自定义选项,例如去除预装应用、优化电池寿命、增加新功能等。但需要注意的是,...

    android4.4源码下载

    如果你想要模拟器或真机上运行,可以使用`adb`(Android Debug Bridge)进行部署和调试。 5. **学习与研究**: Android 4.4源码中包含了系统服务、框架、库和各种应用程序的实现,比如ActivityManagerService负责...

    联想刷机包

    刷机在IT领域中是指对手机或设备的操作系统进行更换或更新的过程,通常是为了提升设备性能、解决软件问题或是安装自定义ROM。联想作为知名的电子产品制造商,其手机产品也受到许多用户的喜爱。在本话题中,我们将...

    xt681刷机包下载地址

    1. **下载刷机包**:首先需要从上述链接下载对应的XT681刷机包。 2. **进入Recovery模式**:将手机关机后,按特定组合键进入Recovery模式。 3. **擦除数据**:在Recovery模式下,选择“wipe data/factory reset”...

    KDZ刷机工具包

    在LG设备上,使用KDZ刷机工具包可以实现安全有效的刷机过程。 3. **LGE971/972/973/975/f180L**:这些都是LG推出的智能手机型号。每个型号的手机都有其特定的硬件配置和系统版本,因此需要匹配相应的KDZ文件进行...

    安卓2.2刷机包大全,安卓2.2刷机教程,安卓2.2软件下载精选.pdf

    在Android 2.2中,有些热门刷机包如CyanogenMod提供了更多自定义选项、优化性能和界面美化功能。例如,MIUI系统以其独特的用户界面和良好的用户体验受到用户喜爱,但可能在稳定性上稍逊一筹。 此外,刷机后,还可以...

    史上最全vx6800刷机(pdf)

    【标题】"史上最全vx6800刷机(pdf)"所涵盖的知识点主要集中在对HTC XV 6800这款智能手机的系统更新和优化过程,即刷机操作。刷机通常是为了升级手机系统、修复软件问题、增强设备性能或者安装自定义ROM等。以下是...

    亚马逊kindle fire hd 7 刷机固件包cm12

    在这个场景中,“亚马逊Kindle Fire HD 7 刷机固件包CM12”是一个专为这款设备定制的第三方系统,基于知名的CyanogenMod(CM)12,它基于Android Lollipop(5.0或5.1)系统。 CyanogenMod是一个非常流行的开源项目...

    酷派5860刷机包

    4. **下载刷机包**:找到适用于酷派5860的稳定版或测试版Rom,并下载到电脑上。 5. **连接手机**:将手机连接到电脑,进入Recovery模式。 6. **清除数据**:在Recovery中选择“Wipe data/factory reset”以清除...

    KM900刷机软件,刷机必备!

    4. **安装驱动**:在电脑上安装LG KM900的USB驱动,以确保电脑能识别手机并进行数据传输。 5. **连接设备**:使用USB数据线将手机连接到电脑,确保连接稳定。 6. **使用刷机工具**:这里提到的"两个文件"可能包括...

    联想TD10刷机工具

    4. 选择固件:在刷机工具中选择已下载的固件文件。 5. 开始刷机:按照工具的提示,开始刷入新系统,过程中不要断开设备连接。 6. 完成并重启:刷机完成后,工具会提示设备自动重启,进入新系统。 四、风险与注意...

    亚马逊kindle fire hd 7 刷机固件包

    在刷机过程中,它确保新系统能够正确地访问和管理设备上的各种资源。 2. **boot.img**:这是设备启动时加载的内核映像文件,包含了Android系统的引导程序和内核。刷入新的boot.img可以改变设备的启动方式,比如实现...

    关于能够刷天语手机的刷机工具

    1. **ROM下载与管理**:刷机工具通常内置ROM市场,允许用户浏览、下载适合天语手机的各种定制系统,如基于Android的第三方固件(如CyanogenMod)或官方更新。 2. **数据备份**:在刷机前,刷机工具会帮助用户备份...

Global site tag (gtag.js) - Google Analytics