【牛人分享】Android 4.0.1 源码下载,编译和运行

转自 http://blog.csdn.net/rambo2188/article/details/6943382

—————————————————————-
[1] Android ICS 下载
—————————————————————-

http://source.android.com/source/downloading.html 上有最新的ICS 源代码同步的地址。如果环境已经设置好了的话,同步最新的代码非常的简单:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
$ repo sync

转注:

主干:$ repo init -u https://android.googlesource.com/platform/manifest.git
4.03:$ repo init -u https://android.googlesource.com/platform/manifest.git -b android-4.0.3_r1

下载完成后主要包含以下目录:

abi  bionic  bootable  build  cts  dalvik  development  device  docs  external  frameworks  hardware  libcore  Makefile  ndk  out  packages  prebuilt  sdk  system

Android4.01配套内核kernel3.0下载
$ git clone http://android.git.kernel.org/kernel/common.git
$ git branch -a
$ git checkout remotes/origin/android-3.0

—————————————————————-
[2] Android ICS 的编译
—————————————————————-
source ./build/envsetup.sh
lunch sdk-eng
make

编译完成后工作目录($TOP)里增加了一个log文件 v8.log

转注:

(1) 编译过程中,可能会由于stdio2.h导致编译错误。正确的stdio2.h是./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/bits/stdio2.h文件,请重新设置PATH环境变量,将./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr放在PATH的最前。

(2) 编译时可能会提示需要Java 1.6 SE,实际上编译时只需要有Java 1.6 JDK就成

(3) 带参数make时,toolchain说明最好使用绝对路径,如:make -j2 ARCH=arm CROSS_COMPILE=/home/hyla/ics/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
—————————————————————-
[3] Android 4.0.1 模拟器内核最新下载地址及编译步骤
—————————————————————-
url: http://www.linuxidc.com/Linux/2011-11/47809.htm

由于Android kernel的部分封闭策略,kernel org已经将android kernel踢出主线。原有的同步地址已经被重定向,再加上android kernel本身结构的调整,很多原来的同步方法已经不能使用。下面是最新的方法,适用于编译android 4.0.1 模拟器的内核(qemu kernel, goldfish branch)。

原有的方法大多使用以下地址同步
$ git clone git://Android.git.kernel.org/kernel/common.git
$ cd common
$ git branch -a
$git checkout remotes/origin/archive/Android-gldfish-2.6.29

但是我们可以在浏览器里输入
Android.git.kernel.org/kernel/common.git
它实际上已经被重定向到
Android.googlesource.com/kernel/common.git

但是这个repo 里已经不包含 goldfish的分支了。如果同步下来后我们用 git branch -a 将看到只有最新的 3.0 和2.6.39的分支:
$git branch -a
* (no branch)
master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/master

其实 goldfish分支已经被独立为一个单独的repo:http://android.googlesource.com/kernel/goldfish.git
以下是最新的正确的 同步步骤:

$git clone http://android.googlesource.com/kernel/goldfish.git
$cd goldfish
$git branch -a
* (no branch)
master
remotes/origin/HEAD -> origin/master
remotes/origin/android-goldfish-2.6.29
remotes/origin/master
$git checkout remotes/origin/android-goldfish-2.6.29

编译步骤基本没有变,但需要使用新的config:
$ make ARCH=arm goldfish_armv7_defconfig
$ make ARCH-arm CROSS_COMPILE=arm-eabi-


OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready

然后就可以用着新的kernel img 来启动模拟器了:

—————————————————————-
[4] Android ICS 模拟器的启动
—————————————————————-
命令:列出AVD平台
$ cd out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools
$ android list targets
Available Android targets:
———-
id: 1 or “Android-14″
Name: Android 4.0
Type: Platform
API level: 14
Revision: 2
Skins: QVGA, WSVGA, HVGA, WVGA854, WXGA720, WQVGA432, WVGA800 (default), WQVGA400, WXGA800
ABIs : armeabi-v7a

命令:自定义AVD
$ android create avd -t 1 -n ics
Auto-selecting single ABI armeabi-v7a
Android 4.0 is a basic Android platform.
Do you wish to create a custom hardware profile [no]
Created AVD ‘ics’ based on Android 4.0, ARM (armeabi-v7a) processor,
with the following hardware config:
hw.lcd.density=240
vm.heapSize=24
hw.ramSize=512

命令:启动模拟器,加载自定义的AVD
$ emulator -avd ics

命令:使用自己编译的内核启动模拟器

$emulator -kernel …../kernel/goldfish/arch/arm/boot/zImage &

启动模拟器,到 Setting => About 去看,kernel现在的确是我们自己编译的版本了。

命令:使用自己编译的内核及images启动模拟器

export DROIDROOT=~/android-sdk-v14-x86
export AVDROOT=~/android-sdk-v14-x86/tools

cd `pwd`/out/target/product/generic
$AVDROOT/emulator -kernel ../../../../kernel/arch/arm/boot/zImage -show-kernel -partition-size 256 -memory 256 -skindir $DROIDROOT/platforms/android-14/skins -skin WVGA800 -shell -sysdir ./ -data userdata.img -ramdisk ramdisk.img -system system.img -sdcard /~/.android/avd/wvga800v14/sdcard.img

转自 http://blog.csdn.net/rambo2188/article/details/6943382

Android 4.0.1 源码下载,编译和运行相关推荐

  1. Android FrameWork学习(一)Android 7 0系统源码下载 编译

    最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...

  2. Android FrameWork学习(一)Android 7.0系统源码下载\编译

    重点内容 转载. http://blog.csdn.net/cjpx00008/article/details/60474883 硬件环境要求 1. 编译环境 按照官方的说法,编译Android 2. ...

  3. Android AOSP和Android-X86源码下载编译终极普法

        Android AOSP和Android-X86源码下载编译终极普法 引言   最近有朋友在询问怎么下载Android AOSP源码和Android-X86源码,编译学习!其实这个说简单也简单 ...

  4. android 4.0模拟器启动不了,Android 4.0 framework源码修改编译,模拟器运行不起来,求助...

    当前位置:编程学习 > wap >> Android 4.0 framework源码修改编译,模拟器运行不起来,求助 我下载编译了android 4.0 ICS的源码,然后能利用编译 ...

  5. Ubuntu20.4 Android-9.0.0_r46源码下载编译

    Ubuntu20.4 Android-9.0.0_r46源码下载编译调试 安装Ubuntu虚拟机 ubuntu镜像下载地址: https://ubuntu.com/download 官网下载地址较慢可 ...

  6. android 4.0(ICS)源码下载方法

    本方法是基于ubuntu 10.04从android官网下载ICE源码,确保电脑可以正常连接网络,通过apt-get install curl git-core工具,在普通用户权限下,执行以下的命令可 ...

  7. Android 8.0系统源码分析--开篇

    个人分类: Android框架总结Android源码解析android framework 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sinat ...

  8. 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码

    http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...

  9. android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?

    点击上方"刘望舒",选择"星标" 多点在看,就是真爱! 作者 :  刘望舒  |  来源 :刘望舒的博客地址:http://liuwangshu.cn/fram ...

最新文章

  1. oracle 00980,ORA-00980如何解决
  2. 数据库修改后Hibernate的配置更新
  3. 为什么乱码:meta http-equiv=content-type前的非ANSI字符
  4. 30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?
  5. pythonfor循环列表排序_Python使用for循环对列表内元素进行排序方法
  6. 余宏德:Sun所有的核心技术都是开放的
  7. 什么是Vue?为什么要学习Vue?如何使用Vue?
  8. Python使用傅里叶变换调整音频文件音量
  9. Qt总结之十七:QByteArray类型里含中文的数据解析出现乱码
  10. 上海往事之参加安永公司项目面试
  11. SilverLight中的基本图形(转)
  12. [WebApi] 捣鼓一个资源管理器--服务器端分割压缩图片
  13. 云服务器ASF挂卡(1)——steamcommunity社区本地反代
  14. 网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
  15. 微信商户批量转账到零钱
  16. 解析几何 直线与平面 直线与平面(1.2)
  17. Premiere常用快捷键+网站推荐
  18. Android WebView调用摄像头录像拍照处理
  19. Windows系统的正版与盗版
  20. .net android 推送消息,android – FCM(Firebase云消息传递)推送通知与Asp.Net

热门文章

  1. 对*p++与*++p;(*p)++ 与 ++(*p)的理解
  2. 添加超声波障碍图层并用rbx1仿真
  3. 【虚幻】纯蓝图项目打包成功运行时提示缺失插件
  4. 设计模式 - 六大设计原则之LoD(迪米特法则原则)
  5. React之antd按需加载
  6. VMware虚拟机安装Windows2008详细过程
  7. 华东师大计算机专硕学费,2021年华东师范大学硕士研究生学费标准公示
  8. 修理牛棚 贪心 USACO
  9. Docker镜像和容器相关命令
  10. 【Linux操作系统】Linux进程状态和两个特殊进程