• Android系统源码编译全过程——下载Android源文件并编译


     编译Android系统源码需要以下工具:git工具,repo工具,java sdk,主机编译工具等
    我的实验环境是ubuntu 10.10,步骤如下
    1.打开终端输入
    alex@alex-Linux:~$ sudo -i
    root@alex-Linux:~$ apt-get install git-core flex bison gperf libesd0-dev zip
    root@alex-Linux:~$ apt-get install libwxgtk2.6-dev zlib1g-dev build-essential libstdc++5
    root@alex-Linux:~$ apt-get install tofrodos x-dev libx11-dev libncurses5-dev
    root@alex-Linux:~$ apt-get install sun-java5-jdk
    如果在上述过程中提示无法找到源,请参阅在源配置中添加ubuntu9.04源
    2.编译Android系统源码官方推荐使用Java5.如果本机安装了Java6,应将其配置成java5.需要卸载java6
    alex@alex-Linux:~$ apt-get remove sun-java6-jdk
    3.配置java环境
    root@alex-Linux:/etc/apt# update-alternatives --config java
      选择       路径                                    优先级  状态
    ------------------------------------------------------------
    * 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      自动模式
      1            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        手动模式
      2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      手动模式
      3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        手动模式
    选择1
    4.Android系统源码在编译过程中需要编译主机工具,所以还需要主机打gcc工具链,而对于编译目标机文件,ANdroid在prebuilt目录中集成了gcc交叉编译工具链。repo是对调用git打封装打工具,安装repo
    alex@alex-Linux:~$ sudo -i
    root@alex-Linux:~# cd /bin
    root@alex-Linux:/bin# curl http://android.git.kernel.org/repo > ~/bin/repo
    如果提示curl未安装,请输入sudo apt-get install curl
    设置bin/repo的可执行权限alex@alex-Linux:~/bin$ chmod a+x ~/bin/repo
    5.下载Android源码 代码库打路径为android.git.kernel.org 可以通过网页浏览代码库的内容。在用户主目录新建androidsource进入该目录
    alex@alex-Linux:~/androidsource$ repo init-u git://android.git.kernel.org/platform/manifast.git
    当出现Your Name [xxx]:
    Your Email[xxx@xnadevelop.com]:时输入相应用户名和Email,经过repo init后,执行repo sync 下载Android系统源文件
    时间很长,请耐心等待。
    下载完毕后进入源码所在目录输入make
    进行编译。时间很长,同样请耐心等待。
    最后输出一下文字
    target SharedLib: sensors.mahimahi (out/target/product/generic/obj/SHARED_LIBRARIES/sensors.mahimahi_intermediates/LINKED/sensors.mahimahi.so)
    target Non-prelinked: sensors.mahimahi (out/target/product/generic/symbols/system/lib/hw/sensors.mahimahi.so)
    target Strip: sensors.mahimahi (out/target/product/generic/obj/lib/sensors.mahimahi.so)
    Generated: (out/target/product/generic/android-info.txt)
    Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
    Install system fs image: out/target/product/generic/system.img
    Target ram disk: out/target/product/generic/ramdisk.img
    Target userdata fs image: out/target/product/generic/userdata.img
    Installed file list: out/target/product/generic/installed-files.txt





  • 相关阅读:
    golang删除数组某个元素
    golang用通道实现信号量,控制并发个数
    什么是ScaleIO中的forwards rebuild和backwards rebuild?
    SQL Server中的database checkpoint
    如何将thick provision lazy zeroed的VMDK文件转换为thick provision eager zeroed?
    LoadTestAgentResultsLateException in VS2010
    SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?
    VMware vCenter中, 如何辩认虚机上Raw Device Mapping过了的一块物理磁盘?
    SQL Server AlwaysOn Setup Step-By-Step Guide
    TPC-E在populate测试Database时需要注意的一些事项
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2120064.html
Copyright © 2020-2023  润新知