资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

CyanogenMod11.0android4.4编译指南-创新互联

从公司断断续续下载了3天,终于把CM-11.0 的代码给下载下来了,分享一下下载编译rom包的过程。

一 前置条件
1 ubuntu 13.04 系统,同时配置好android的编译环境
 配置方法详见  http://source.android.com/source/initializing.html 网页

2 下载源码

 特别注意:

创新互联成都网站建设按需搭建网站,是成都营销推广公司,为酒店设计提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站营销推广热线:18982081108

     由于cm-11.0的代码巨大,下载完成 .repo隐藏文件夹下大概有10G,再一git fetch真正的
     代码文件,大概有将近30G,然后再编译的话,估计又得多出来20G,笔者准备了一个100G的
     分区,进行这次编译。为了以后不必要的麻烦,建议先准备好足够的硬盘空间。

 curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
 需要用 CyanogenMod 提供的 repo工具

 repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
 下载相应的分支

 repo sync
 下载

3 Samsung Google Google Nexus S ("crespo") 手机一部,
我的手机中
关于手机
型号:Nexus S
基带版本: I9020XXKl1

4 刷机工具,比如完美刷机

二 重要网页

1 http://wiki.cyanogenmod.org/w/Devices#vendor=;
这个网页包含了cm 支持的所有机型,以及相应的驱动

2 http://wiki.cyanogenmod.org/w/Crespo_Info
这个网页包含了 crespo 这个设备的编译前需要的各种信息
其中 最重要的是
Device https://github.com/cyanogenmod/android_device_samsung_crespo
Kernel https://github.com/cyanogenmod/android_kernel_samsung_crespo
这两个包都需要下载,

其中驱动包:
下载解压缩以后,放在 cm-11/device/samsung/crespo 其中 crespo 这个文件夹如果没有要新建

内核包
下载解压缩以后,放在 cm-11/kernel/samsung/crespo 其中 crespo 这个文件夹如果没有要新建

另外注意,还有一个硬件包也要下载
Hardware https://github.com/CyanogenMod/android_hardware_samsung
下载解压缩以后,放在 cm-101hardware/samsung  其中samsung 这个文件夹如果没有要新建

3 http://wiki.cyanogenmod.org/w/Build_for_crespo
这个网页告诉了如何编译 crespo cm-10.2 这个版本的代码

三 编译源码
1 编译前的准备工作
cd ~/android/system/vendor/cm
./get-prebuilts

2 ./extract-files.sh

首先连接好samsung nexus S 手机,然后来到 cm-10/device/samsung/crepso 这个目录下,执行上面的指令。

这个脚本的主要作用是将手机中的驱动so库pull出来,然后新建 cm-10/vendor/samsung/crespo 这个目录,然后在里面放相应的库文件。
我的手机在执行这个命令的时候,一个错也没有报,如果缺少什么文件的话,见前面的文章,将so库给补齐即可。

3 真正开始编译
以前lunch 命令再选择编译哪个版本都不需要了,CyanogenMod 已经把这些封装成更简单的命令了

回根目录后
export USE_CCACHE=1
据说这样会加快编译速度
unset  NDK_ROOT
解决android 源码编译本身的一个bug

. build/envsetup.sh
这个重要 执行成功后,后面的命令才能继续执行
croot
brunch crespo
ok  开始编译了

4 刷机,这点需要注意的是可能原来默认的 recovery 程序已经不兼容
 最新的android 4.4的rom包了,所以需要用线刷的方式更新recovery 程序

 更新方法:
 1 先将生成的rom zip包,通过adb push上传到手机的 /sdcard/目录下,建议
  修改成update.zip 名字

 2  同时按下开机键和音量加键,进入fastboot模式,这个时候usb是初始化好的
 然后运行
 fastboot boot /CM11Disk/cm-11/out/target/product/crespo/recovery.img
 这个命令

 3  重启进入recovery 模式,用最新的recovery 程序进行更新update.zip包即可。

四 编译过程中的错误解决

首先编译的时候遇到了下面的错误
make: *** No rule to make target `/CM11Disk/cm-11/out/target/product/crespo/obj/SHARED_LIBRARIES/libs3cjpeg_intermediates/export_includes', needed by `/CM11Disk/cm-11/out/target/product/crespo/obj/SHARED_LIBRARIES/camera.herring_intermediates/import_includes'.  Stop.

当时对这个错误的产生的原因感觉是少了 libs3cjpeg 这个库文件

在github搜索了一下,发现这个下载地址
https://github.com/android-ia/platform_external_libs3cjpeg

下载添加在 external/libs3cjpeg 目录下以后,重新编译依然发现出现了下面的错误

make: *** No rule to make target `/CM11Disk/cm-11/out/target/product/crespo/obj/lib/libs3cjpeg.so', needed by `/CM11Disk/cm-11/out/target/product/crespo/obj/SHARED_LIBRARIES/camera.herring_intermediates/LINKED/camera.herring.so'.  Stop.

没办法用 adb pull 从手机里面拉出来一个 libs3cjpeg.so 硬放在product/crespo/obj/lib/libs3cjpeg.so 这个目录下,但是依然会出现
device/samsung/crespo/libcamera/SecCamera.h:38:31: fatal error: videodev2_samsung.h: No such file or directory
compilation terminated.
In file included from device/samsung/crespo/libcamera/SecCameraHWInterface.h:22:0,
        from device/samsung/crespo/libcamera/SecCameraHWInterface.cpp:23:
device/samsung/crespo/libcamera/SecCamera.h:38:31: fatal error: videodev2_samsung.h: No such file or directory
compilation terminated.
make: *** [/CM11Disk/cm-11/out/target/product/crespo/obj/SHARED_LIBRARIES/camera.herring_intermediates/SecCamera.o] Error 1

这样的错误,这个时候开始怀疑前面的解决思路是错误的,看了
device/samsung/crespo/libcamera/Android.mk 这个文件后明白了错误了真正原因

LOCAL_C_INCLUDES += hardware/samsung/exynos3/s5pc110/include
LOCAL_C_INCLUDES += hardware/samsung/exynos3/s5pc110/libs3cjpeg
LOCAL_C_INCLUDES += frameworks/native/include/media/hardware

原来是hardware 少下载了一个工程,而这个工程本身没有在主干上,repo sync 并不能把其下载

在github 上找到这个工程 下载 cm-11.0版本hardware 然后再次进行编译
https://github.com/CyanogenMod/android_hardware_samsung/tree/cm-11.0

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:CyanogenMod11.0android4.4编译指南-创新互联
文章URL:http://www.cdkjz.cn/article/dgpojh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220