文档章节

为nexus5编译ubuntu14.04TLSx64(android4.4.4 r1+kernel)

stormm
 stormm
发布于 2015/08/05 18:21
字数 770
阅读 925
收藏 4

vmware经过3天的编译终于编译完安卓4.4的源码,整个过程并不顺利,因此记录下编译过程。

编译环境搭建:

vmware 10.01

一、Ubuntu 14.04 TLS 64位

硬盘:80G 
    如果编译过程中遇到硬盘空间不够可以执行以下步骤:
    1、$ vmware安装目录/vmware-vdiskmanager -x 80Gb "D:\VMware\WinXP\myUbuntu.vmdk"
    2、vmware启动gparted-live-0.22.0-2-i586.iso进行分区扩容,详细请百度
内存:8G
依赖库:
    1、添加ia32依赖库 
        $ sudo apt-get update
        $ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
    2、添加google建议依赖包
        $ apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-d            ev:i386 zip
安装jdk,官方建议openjdk7但是编译时提示错误后来卸载后装的oracle jdk6
python建议2.3-2.7,查看版本
        $ python -version
添加ubuntu交换区,否则在编译libwebviewchrominum.so时会失败
        $ mkdir /swap
        $ cd /swap
        $ dd if=/dev/zero of=swapfile bs=1024 count=1029000
        $ mkswap swapfile
        $ swapon swapfile
        $ swapoff swapfile
        $ free -m

2、下载设备驱动

接下来需要在Android官网下载 Nexus5所需要的驱动,下载完成后,解压出来是三个.sh文件,放到Android源码目录下面,然后执行,会将相关驱动放到vender目录下面。

PS:github上更新下来的/vendor/qcom/hammerhead/device-partial.mk为空,需要从其它资源拷贝一份回来,编译完成后才会正常加载libegl.so

3、编译内核

   3.1从官网查看使用的内核版本如下:

Device Binary location Source location Build configuration

hammerhead device/lge/hammerhead-kernel kernel/msm hammerhead_defconfig

 

$ git clone https://android.googlesource.com/device/lge/hammerhead-kernel $ cd hammerhead-kernel 

   3.2 配置gcc环境变量

$ export PATH=$(pwd)/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH

注:最新的内核编译要使用4.8的platform
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8

  3.3 开始编译

$ export ARCH=arm $ export SUBARCH=arm $ export CROSS_COMPILE=arm-eabi-
 $ make panda_defconfig $ make

    编译完成后bin文件在 arch/arm/boot/zimage-dtd目录下  

3.4 重新生成boot.img

$ export TARGET_PREBUILT_KERNEL=$your_kernel_path/arch/arm/boot/zImage-dtb
$ make bootimage

4、编译安卓

在安卓源码根目录下输入make即可编译,剩下就是漫长的等待....

切换到AOSP系统目录下
$source build/envsetup.sh
$lunch
select one type

$make -j8

5、烧录到真机

$ adb reboot bootloader
$ fastboot -w flashall

6、模拟器运行

#普通模拟器
$ ./usr/local/android/android-4.4.4_r1/out/host/linux-x86/bin/emulator -kernel /usr/local/android/android-4.4.4_r1/prebuilts/qemu-kernel/arm/kernel-qemu -sysdir /usr/local/android/android-4.4.4_r1/out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img

#QEMU模拟器
./usr/local/android/aosp4.4.4_r1/out/host/linux-x86/bin/emulator -verbose -show-kernel -kernel /usr/local/android/kernel/arch/arm/boot/zImage -sysdir /usr/local/android/aosp4.4.4_r1/out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img -memory 1024 -qemu -s -S

#精简
.emulator -kernel xx/zimage -verbose -debug init -show-kernel -no-boot-anim -no-skin -no-audio -no-window -qemu -s -S

   如果报qemu: could not load initrd 'ramdisk.img'是权限的问题,cd到out/target/product/generic目录下,执行

$ chmod -R 777 *

没有问题的话,就看到了熟悉的画面,嘎嘎。。。

单独编译image 

make systemimage

 

全编译image

make snod

刷img

adb reboot bootloader

fastboot flash boot newboot.img

fastboot reboot

刷所有IMG

fastboot flashall

补充nexus5刷机所需要的驱动和操作步骤:

http://blog.csdn.net/luoshengyang/article/details/6564592

ps:

编译的ROM执行命令的方式

adb shell "su 0,0 ls -al"

© 著作权归作者所有

stormm
粉丝 32
博文 22
码字总数 14557
作品 0
昌平
运维
私信 提问
加载中

评论(1)

iptvphone
iptvphone
沙发~。~
【菜鸟嵌入式学习分享】4412开发板Android4.4.4环境的搭建和编译

刚刚到手的板子,按手册步骤成功烧写了系统,o( ̄▽ ̄)d,分享一下。 Android4.4.4 的编译环境,是在迅为的网盘或者 github中下载 Android4.4 的源码压缩包。解压后可以得到Android4.4.4 和 ...

歌之王子殿下
2015/10/14
1K
0
itop4412开发板Android4.4旧源码编译

注意:本小节,介绍的旧源码指的是“20170803”之前的源码。 在网盘目录中“iTOP4412 开发板资料汇总(不含光盘内容)iTOP-4412 开发板系统源 码及镜像(其他)android_4.4.4 源码以及对应 ...

书白
06/24
8
0
iTOP4412开发板Android4.4源码编译分享

注意:本小节,介绍的源码指的是“20170803”以及后续新增的源码。 5.4.1.1 uboot 的编译 Android4.4.4 对应 uboot 的源码,编译器,参数配置,编译脚本以及编译参数和 Android4.0.3 的 uboo...

书白
06/20
19
0
Android6.0源码下载编译刷入真机

编译环境是Ubuntu12.04。手机nexus 5,编译安卓6.0.1源码并烧录到真机。 源码用的是科大的镜像:http://mirrors.ustc.edu.cn/aosp-monthly/,下载完之后会有一个aosp-latest.tar文件,然后新...

纯水小胖子
2018/08/15
0
0
firefox os 移植问题

编译firefox os,移植 到nexus5(屏幕分辨率1920x1080,屏幕尺寸4.95英寸)后,图标字体正常显示,现在把firefox os 移植到一个android手机上(屏幕分辨率1920x1080,屏幕尺寸5.5英寸)后,图标显...

超少
2016/06/15
205
0

没有更多内容

加载失败,请刷新页面

加载更多

[mycat]PartitionByString分片报错

java.lang.RuntimeException: error,check your partitionScope definition.at io.mycat.route.util.PartitionUtil.<init>(PartitionUtil.java:69) PartitionUtil.java 注意:其中count,l......

Danni3
29分钟前
8
0
OSChina 周三乱弹 —— 魂淡!不是这种粪发涂墙

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @小小编辑推荐歌曲《10/10》- Rex Orange County 《10/10》- Rex Orange County 手机党少年们想听歌,请使劲儿戳(这里) @奋斗的小牛 :上午...

小小编辑
41分钟前
740
10
Arduino教程:认识Arduino控制板

@toc 1.1 课程说明 认识Arduino控制板的各个部分, 1.2 器材 名称 数量 规格 Arduino uno控制板 1 R3 1.3 UNO电路: UNO参数 名称 参数说明 工作电压: 5V 输入电压: 接上USB时无须外部供电...

acktomas
47分钟前
6
0
WeUI框架

WeUI框架 WeUI是一套小程序的UI框架,所谓UI框架就是一套界面设计方案,有了组件,我们可以用它来拼接出一个内容丰富的小程序,而有了UI框架,我们就可以让我们的小程序变得更加美观。 体验W...

达达前端小酒馆
50分钟前
5
0
Rainbond 5.1.8发布,应用网关支持多IP网络接入

2019年10月23日,Rainbond发布5.1.8版本,本次版本更新带来了应用网关对多IP的支持, 第三方组件对域名实例的支持 等新功能和修复若干BUG。 Rainbond:支撑企业应用的开发、架构、交付和运维的...

好雨云帮
52分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部