• Android ROM开发ubuntu下编译CyanogenMod生成SDK


    由于CM2.3.7存在某些问题,所以如果需要使用稳定版本的CyanogenMod 2.3.4编译并且相应的vendor文件的话,可以到我的网盘中下载。

    vendor下载地址:http://115.com/file/dpi59mxv

    在开发定制ROM的时候经常会在源码中添加自定义的SDK,比如小米的MIUI里很多添加进来的功能在编码的时候都是使用自定义的方法,这些都是需要编译进SDK中的,开发者在开发的时候也会通过自己生成的SDK开发软件,调用新添加的方法。比如:android sdk中没有hello()这个方法,如果开发软件的时候要让这个方法有效,我们可以将这个方法加入到源码中编译生成SDK即可。

    本篇先不讲如何添加模块,后继会加上。本篇只是如何通过编译CyanogenMod生成SDK,因为这一步看似只有一个命令,其实面临这很多的风险。

    首先你确保你已经能够成功编译生成cm刷机包了,如果没有,经参考:http://www.cnblogs.com/loulijun/archive/2012/02/22/2361533.html

    当然,不同机型brunch的时候版本也不同,要知道你的开发机的代号。我的开发机是HTC Desire Z,代号:vision

    一、替换vendor目录下相应的文件夹,如vision

    这一步主要用来编译源码,具体编译过程参考前一篇,只不过需要说明一点。

    可能因为版本修改等原因,直接通过. /extract-files.sh可能会缺少某些包,或者库文件。在执行 . get-rommanager的时候因为获取的是最新的信息,所以也可能会在编译时出错。

    所以,为了避免这些,将网盘中的相应文件夹(如vision)替换掉你的vendor/htc目录下的vision即可。因为那些文件都是已经测试过的,相应的cm源码

    二、备份userdata.img文件

    为什么?因为如果不提前拷贝出来的话如果遇到如下的错误那你就悲剧啦。

    development/build/sdk.atree:71:couldn't locate source file:userdata.img

    make:***[out/host/linux-x86/sdk/android-sdk_eng.loulijun_linux-x86.zip]错误 44

    在成功编译生成刷机包后,会在cyanogenmod/out/target/product/vision下生成包括刷机包(类似cyanogen_vision-ota-eng.loulijun的zip包就是),system.img,userdata.img,ramdisk.img等镜像文件、kernel内核等相关信息;如下图

    注意:你在这一步需要做的是备份userdata.img或者整个vision(或其他名字),一会会用到

    简单介绍下这几个镜像文件

    system.img:包括了主要的包和库文件

    userdata.img:包括了用户数据,主要用户初始化系统

    recovery.img:recovery烧录模式需要的文件,另一中烧录模式是fastboot(比如我们刷机时需要刷recovery)

    ramdisk.img:模拟器的文件系统

    boot.img:编译内核源代码生成的内核镜像

    三、编译SDK

    再一次,前提是你编译好了cyanogenmod(如果直接编译可能会出问题),而且还没有make clean(清楚编译数据)

    $cd cyanogenmod

    $make sdk  

    (上面的命令如果是make -j4 sdk会卡死电脑,很慢)

    然后打开out/target/product/vision目录,观察一会后会发现里面的 数据突然消失了很多,其他的文件最后也生成了,包括刷机包,然而,就是这个userdata.img迟迟不生成。没关系,将拷贝好userdata.img文件粘贴进vision中(发现里面的userdata.img消失的时候就粘贴过去)。这个问题折磨了我很久很久。

    好了,等一会就会发现我们的SDK生成了,它在out/host/linux-x86/sdk下面,这就是你生成的SDK,把它配置到环境变量中就可以使用了

    生成后的目录如下

    四、使用SDK

    替换原有sdk,配置环境变量

    $vim .bashrc

    在最后加入或者修改为,保存退出

    export PATH=$PATH:/home/loulijun/cyanogenmod/out/host/linux-x86/sdk/android-sdk_eng.loulijun_linux-x86

    $source .bashrc

    使其生效

    然后到eclipse中打开Window--Preferences--Android--SDK Location,找到SDK目录,apply即可

  • 相关阅读:
    加载页面(Loading)
    js判断手机连接网络类型
    combotree的加载方法
    jquery.util.easyui.dialog
    datagrid后台分页js.js
    安卓使用Canvas绘制工作日程表
    【Oracle】OGG数据初始化之RMAN
    怎样优雅的管理ActionBar
    openwrt undefined reference to ‘getpwent_r’
    通过文件对照工具Merge数据库
  • 原文地址:https://www.cnblogs.com/loulijun/p/2381842.html
Copyright © 2020-2023  润新知