• android——CyanogenMod rom编译尝试(简记)


    http://aswang.iteye.com/blog/1089841

    编译参考:http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Bravo

     

    编译环境:

    Vmware workstation 7  + ubuntu 10.04 32位

     

     

    1、安装android sdk

     

    2、32和64位均需要安装的软件包:

    git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool

     

    3、64位需要安装的软件包:

    g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib

     

    4、在当前用户home目录下创建目录

    mkdir -p ~/bin

    mkdir -p ~/android/system

     

    5、安装repo,并初始化

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

    chmod a+x ~/bin/repo

     

    cd ~/android/system/

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

    repo sync -j16

     

    6、复制手机对应的文件

    cd ~/android/system/device/htc/bravo/

    ./extract-files.sh

     

    7、下载RomManager

    ~/android/system/vendor/cyanogen/get-rommanager

     

    8、检查更新

    cd ~/android/system/

    repo sync

     

    9、开始编译

    . build/envsetup.sh && brunch bravo

    命令简单解释:. build/envsetup.sh 是将该文件中定义的一些函数添加到当前的shell环境中,这些函数是在编译过程中会使用到的函数,比如获取相对路径、绝对路径等。

    而上述命令行后面的 brunch 就是其中的一个函数,是用来编译一个分支设备的rom,在这里为bravo(HTC Desire)。

    上述命令行中间的 && 符号意思为当前面的命令执行成功之后,才会执行后面的brunch bravo命令。

     

    因此,我们也可以先执行 . build/envsetup.sh 将函数添加到shell变量中,然后再执行brunch bravo来编译Desire ROM。

     

     

    最终文件:   ~/android/system/out/target/product/bravo/update.cm-XXXXX-signed.zip

     

    记录了下编译时间:如果之前编译过ROM,那么再同步源代码之后,再次编译的时间会短很多,编译不会超过10分钟。

    当然如果是第一次编译,那么时间会很长,根据自己的机器配置,一般都需要半个小时以上。


    我的机器配置:I3 M380 2.53GHZ
    内存:4G

    第一次编译:37分钟
    第二次编译:6 分钟


    补充:

    1、修改默认语言为中文

     

    修改build argetproductfull_base.mk内容:

    PRODUCT_LOCALES := zh_CN

     

    2、修改需要编译的语言

    修改build argetproductlanguages_full.mk内容:

    PRODUCT_LOCALES := en_US

     zh_CN 

    即只编译英文和简体中文。

     

     

    3、repo撤销本地修改

    repo forall -c git reset --hard HEAD

    有的时候修改本地代码了,再次同步的时候会报错,需要清理代码的时候,可以执行这个命令。

    4、编译相关配置文件:
    verdorcyanogenproductscyanogen_bravo.mk
    该文件定义了编译的内核以及编译最终生成的文件名

    补充
    5、可以删除多余项目,减少同步时间和数据,具体操作为找到android/system/.repo目录下的project.list和 manifest.xml文件,可以删除device/htc 等类似这样的条目(device下面主要是针对不同手机而需要的文件,如果我们只需要编译某一个手机rom,那么就可以把其它的都删掉,为了避免出错,可 以一个一个地删除),在删除之后,重新到android/system目录下执行repo sync进行同步,如果不报错,那这样就修改成功,以后同步时,就不会同步那些已经删除的项目。

    6、关于初始化git库报错:android.git.kernel.org[0: 149.20.4.77]: errno=Connection refused到解决办法:
    找到repo文件,修改REPO_URL='https://github.com/android/tools_repo.git'即可。

    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
    阅读(65) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    内部共享上网
    Harbor部署
    一、Gitlab安装
    Dockerfile
    DockerCompose
    二、Git
    nginx域名代理
    三、jenkins持续集成工具安装
    chrome对于“submit”关键字的保留
    insightface 提取人脸特征(超简洁)
  • 原文地址:https://www.cnblogs.com/ztguang/p/12649243.html
Copyright © 2020-2023  润新知