Ubuntu13.04环境下载、编译Android源代码

原创 2013年06月13日 21:36:05

网上介绍下载、编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身经历的(笔者是使用的系统是ubuntu 13.04)。


安装git:

$ sudo apt-get install git-core gnupg


安装Java JDK6.0:
    $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"  
    $ sudo apt-get update  
    $ sudo apt-get install sun-java6-jdk  


安装flex,bison,gperf,libsdl-dev,libesd0-dev,libwxgtk2.6-dev(可选),build-essential,zip,curl,指令如下:
$ sudo apt-get install git-core gnupg valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zliblg dev


发现错误:无法找到libwxgtk2.6-dev(注意该选项是可选)。
[sudo] password for banketree: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libsdl1.2-dev' instead of 'libsdl-dev'
E: Unable to locate package libwxgtk2.6-dev
E: Couldn't find any package by regex 'libwxgtk2.6-dev'
E: Unable to locate package zliblg
E: Unable to locate package dev

修改后的语句:
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev

获得Android源码(Repo,repo是一个python脚本,用来更简单的获取Android源码,其核心是使用Git来获取源码的)。
创建 ~/android-bin目录,用于存放repo,并将其加入PATH环境变量中
$ cd ~ //进入用户目录
$ mkdir android-bin  //创建bin文件夹
$ export PATH=$PATH:~/android-bin    //将~/bin路径加入PATH环境变量中,也可将它加在~/.bashrc文件中
$ echo $PATH   //可以检查~/bin是否添加入PATH环境变量中

下载repo脚本,并将它的属性改成可执行
$ curl http://android.git.kernel.org/repo > ~/android-bin/repo

发现服务器不响应
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--       0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--       0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--       0     0    0     0    0     0      0      0 --:--:--  0:00:03 --:--:--       0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0curl: (7) Failed connect to android.git.kernel.org:80; No route to host

更换地址
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/android-bin/repo

提示有输入邮箱号和密码等操作,但未出现为何?这将导致后面帐号错误!
原来需要手动设置:
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

然后修改文件属性
$ chmod +x ~/android-bin/repo

创建一保存android source的目录
$ mkdir myandroid
$ cd myandroid

初始化repo工作环境,获取cupcake分支源码清单
$repo init -u git://android.git.kernel.org/platform/manifest.git –b cupcake

服务器出现问题,需要修改地址如下:
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

不修改的话会出现无法连接等以下错误
Get git://android.git.kernel.org/platform/manifest.git
fatal: unable to connect to android.git.kernel.org:
android.git.kernel.org[0: 149.20.4.77]: errno=No route to host

提示错误:
fatal: unable to auto-detect email address (got 'banketree@banketree-To-be-filled-by-O-E-M.(none)')

设置帐号问题,我的应该为banketree@gmail.com
设置了帐号问题后,就解决了!~

repo sync  代码同步更新

提示错误:
error: Failed to connect to 2404:6800:4008:c00::52: Network is unreachable while accessing https://android.googlesource.com/platform/manifest/info/refs?service=git-upload-pack
fatal: HTTP request failed

下载是一个漫长的过程!~~~~~~~让它慢慢下载吧!我们忙别的去了~~

重启电脑后发现错误,提示:

No command 'repo' found, did you mean:
 Command 'rep' from package 'rep' (universe)
 Command 'repl' from package 'nmh' (universe)
 Command 'repl' from package 'mailutils-mh' (universe)
repo: command not found

只要删除repo 重新设置一下就OK了。


编译源码,指令如下:
$ cd ~/myandroid
$ make

这一步编译出root, system, data三个目录和system.img(系统镜像文件)、userdata.img(用户数据)、ramdisk.img(emulator文件系统)三个镜像,位于out/target/product /generic目录下。这样Android系统就编译完了,可以在Emulator下执行,也可以下载到你的板子上运行!

编译生成的root文件夹内容与android运行时根目录内容相似,ramdisk根文件系统中包含一些对于启动android的很重要的文件,比如内核启动完后加载的第一个进程init、一些重要的配置文件等,总之它控制着整个android的启动。根据init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过 程。init.rc的工作主要是:
1)设置一些环境变量
2)创建system、sdcard、data、cache等目录
3)把 一些文件系统mount到一些目录去,如,mount tmpfs tmpfs /sqlite_stmt_journals
4)设置一些文件的 用户群组、权限
5)设置一些线程参数
6)设置TCP缓存大小


 生成的system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip压缩的,可以通过file命令验 证:file ramdisk.img,

输出: ramdisk.img: gzip compressed data, from Unix, last modified:Wed Mar 18 17:16:10 2009 ,
我们可以学习怎么样把 ramdisk.img解压出来。
将ramdisk.img复制一份到任何其他目录下,将其名称改为 ramdisk.img.gz,并使用命令 gunzip ramdisk.img.gz,然后新建一个文件夹,叫ramdisk吧,进入,输入 命令cpio -i -F ../ramdisk.img,这下,你就能看见并操作ramdisk里面的内容了。然后把Android源码编译后生成的system和 userdata里的文件复制到 ramdisk/system和ramdisk/userdata下。这样就得到一个文件系统了。还会发现,根文件系统下的sys就是一个linux。

在android 1.5 模拟器上加载 android 2.1 的系统:
本 文编译出来的3个img文件是2.1版的。可以用system.img和ramdisk.img 替换1.5的版本:
命令如下:
打 开android 1.5的模拟器 ,同时加载system.img和ramdisk.img
emlator -avd sdk_1_5 -ramdisk [ramdisk.img路径] -system [system.img的路径]
启 动后可以看到设置中的手机版本变成了2.1版。



Linux新手入门:Unable to locate package错误解决办法

原文地址:http://www.cppblog.com/colorful/archive/2012/04/29/173122.html 最近刚开始接触Linux,在虚拟机中装了个Ubuntu...
  • xiaogugood
  • xiaogugood
  • 2014年01月17日 09:56
  • 118031

ubuntu 16.04LTS 下Code::Blocks 16.01 安装

ubuntu 16.04LTS 下Code::Blocks 16.01 安装 Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。...
  • LEFT_COAST
  • LEFT_COAST
  • 2016年08月09日 09:29
  • 9680

Ubuntu下安装wxWidgets2.8

blocks + wxWidgets 2.8 在UUbuntu 10.04下的安装。 安装步骤: 1、安装必要组件 代码: sudo apt-get install build-essenti...
  • ly131420
  • ly131420
  • 2013年04月01日 18:02
  • 831

Unable to locate package错误解决办法

新装了VMWare Player,结果装上Ubuntu12.04后安装软件都提示:Unable to locate package错误,解决方法非常简单,终端输入以下命令即可:sudo apt-get...
  • woaixiaozhe
  • woaixiaozhe
  • 2012年08月30日 15:28
  • 139212

搭建Android 7.0的源码环境

一. 引言 Google已发布Android 7.0源码,想要快人一步,先下载源码一睹为快。“show me the code, change the world”,接下来说一说如何搭建And...
  • vrix
  • vrix
  • 2016年09月12日 09:58
  • 5856

Ubuntu13.04环境下载、编译Android源代码

网上介绍下载、编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身经历的(笔者是使用的系统是ubuntu 13.04)。 安装git: [html] view pl...
  • moubenmao
  • moubenmao
  • 2013年11月23日 22:13
  • 2570

Windows 环境下载 Android 源码

前言Android 官网(该方式不适合 Windows 平台):https://source.android.com/source/downloading.html可是我就想在 Windows 中使用...
  • freekiteyu
  • freekiteyu
  • 2017年04月28日 19:25
  • 2961

Ubuntu13.04环境下载、编译Android源代码

网上介绍下载、编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身经历的(笔者是使用的系统是ubuntu 13.04)。 安装git: [html] v...
  • u012904198
  • u012904198
  • 2014年04月14日 00:47
  • 939

Ubuntu 13.04 编译环境配置及android 2.3 源代码编译时出现了以下错误 setrlimitsFromArray

Ubuntu 13.04 编译环境配置及android 2.3 源代码编译时出现了以下错误 setrlimitsFromArray 配置android在Linux Ubuntu 13.04 32位下的...
  • dongwuming
  • dongwuming
  • 2013年12月03日 18:25
  • 1621

Ubuntu13.04 Android 编译环境搭建

升级是因为升级svn把旧的11.04搞坏了,懒得去折腾,于是干脆升级到13.04了。 不得不提的是,新版本的svn使用体验有质的飞跃,update一套Android代码需要花费的时间可能只是以前的1/...
  • codehat
  • codehat
  • 2013年06月22日 15:39
  • 2241
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu13.04环境下载、编译Android源代码
举报原因:
原因补充:

(最多只允许输入30个字)