基于Ubuntu 14.04 LTS编译Android4.4.2源代码

ubuntu20.04搭建QGC4.2编译环境 QGC 4.2ubuntu18.04也可以编译QGC4.2,但是由于GLBC版本较低,无法使用最新版的QTCreator,Ubuntu20.04可以使用最新版QTCreator。 阅读详情
<span style="font-family: Tahoma; background-color: rgb(255, 255, 255);">基于Ubuntu 14.04 LTS编译Android4.4.2源代码</span>
        Dennis Hu 2014-4-21
环境准备:
基本环境:ubuntu-14.04-desktop-64bit LTS(裸机或者Windows下虚拟机安装均可,12.04也可以,但10.04目前不支持了)
其他要求:空闲磁盘空间100G以上,代码部分接近10G,其他为git和编译中间和目标文件准备

==========================================
第一部分:环境初始化
==========================================
1. 安装Oracle JDK
注意:如果编译Android4.4不能用OpenJDK,必须用Oracle JDK1.6,1.7目前是不支持的。
具体如何安装Oracle JDK,请参见我的另一篇单独的文章,[Ubuntu Linux下安装Oracle JDK]  http://blog.youkuaiyun.com/gobitan/article/details/24322561.
2. 安装必备工具软件
注意:这里与官方的有个包不同,官方的包会报错.
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev  
  2. $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so  
3. 配置USB访问权限
将如下内容加入到/etc/udev/rules.d/51-android.rules文件中
  
[plain] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # adb protocol on passion (Nexus One)  
  2. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"  
  3. # fastboot protocol on passion (Nexus One)  
  4. SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"  
  5. # adb protocol on crespo/crespo4g (Nexus S)  
  6. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"  
  7. # fastboot protocol on crespo/crespo4g (Nexus S)  
  8. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"  
  9. # adb protocol on stingray/wingray (Xoom)  
  10. SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"  
  11. # fastboot protocol on stingray/wingray (Xoom)  
  12. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"  
  13. # adb protocol on maguro/toro (Galaxy Nexus)  
  14. SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"  
  15. # fastboot protocol on maguro/toro (Galaxy Nexus)  
  16. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"  
  17. # adb protocol on panda (PandaBoard)  
  18. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"  
  19. # adb protocol on panda (PandaBoard ES)  
  20. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"  
  21. # fastboot protocol on panda (PandaBoard)  
  22. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"  
  23. # usbboot protocol on panda (PandaBoard)  
  24. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"  
  25. # usbboot protocol on panda (PandaBoard ES)  
  26. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"  
  27. # adb protocol on grouper/tilapia (Nexus 7)  
  28. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"  
  29. # fastboot protocol on grouper/tilapia (Nexus 7)  
  30. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"  
  31. # adb protocol on manta (Nexus 10)  
  32. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"  
  33. # fastboot protocol on manta (Nexus 10)  
  34. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"  
然后执行如下命令,将上述文件中的username替换为你的用户名。
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $sudo sed -i 's/username/dennis/g' /etc/udev/rules.d/51-android.rules  
4. 配置ccache
安装ccache并将export USE_CCACHE=1加入到~/.bashrc中。
[plain]  view plain copy
  1. $sudo apt-get install ccache  
  2. $source ~/.bashrc  

==========================================
第二部分:源代码下载
========================================== 
1. 安装repo
(1) 创建目录
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $ mkdir ~/bin  
  2. $ PATH=~/bin:$PATH  
(2) 下载repo工具
注:由于防火墙的原因,官方提供的链接无法使用,需替换为如下:
官方的为curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
可用的:
[plain]  view plain copy
  1. curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo  
(3) 增加可执行权限
[plain]  view plain copy
  1. $ chmod a+x ~/bin/repo  
2. 初始化Repo客户端
(1)创建目录
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $mkdir aosp  
  2. $cd aosp  

(2) 初始化repo
注:后面可能出现网络错误,请先将如下内容加入到/etc/hosts中然后做后面的步骤。 (也可以上网去买一个VPN( http://astrill-china.com/ ),除了网速不是很快之外,上美帝的各种网站都没问题的。)
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 74.125.71.82 www.googlesource.com  
  2. 74.125.31.82 android.googlesource.com  
  3. 203.208.46.172 cache.pack.google.com  
  4. 59.24.3.173 cache.pack.google.com  
至于为什么要出现网络错误,你懂的!
[plain]  view plain copy
  1. $repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2  
注意:如果是在虚拟机中执行,需要采用email验证的方式,详细参见参考资料[2].
设置git的用户名和邮件地址,将您的真实email地址和name替换了:
[plain]  view plain copy
  1. git config --global user.email "you@example.com"  
  2. git config --global user.name "Your Name"  
修改aosp/.resp/manifest.xml,将fetch=".."改为:
fetch="https://android.googlesource.com/"

3. 下载源代码
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $repo sync  
注意:系统可能会提示你升级repo,最好不要升级,除非你有十足信息解决升级后的一系列问题。

好了,慢慢等吧,短则数小时,长则几天几夜!我花了5个小时

==========================================
第三部分:源代码编译 
==========================================
1. 设置ccache
注:aosp为源代码根目录
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $ cd aosp  
  2. $ prebuilts/misc/linux-x86/ccache/ccache -M 50G  
2. 设置输出目录
略:由于我未分区,因此采用默认的out目录
3. 初始化编译环境
[plain]  view plain copy
  1. dennis@dubuntu1404:~/devenv/aosp$ . build/envsetup.sh   
  2. including device/samsung/manta/vendorsetup.sh  
  3. including device/generic/mips/vendorsetup.sh  
  4. including device/generic/armv7-a-neon/vendorsetup.sh  
  5. including device/generic/x86/vendorsetup.sh  
  6. including device/lge/mako/vendorsetup.sh  
  7. including device/lge/hammerhead/vendorsetup.sh  
  8. including device/asus/tilapia/vendorsetup.sh  
  9. including device/asus/deb/vendorsetup.sh  
  10. including device/asus/grouper/vendorsetup.sh  
  11. including device/asus/flo/vendorsetup.sh  
  12. including sdk/bash_completion/adb.bash  
  13. dennis@dubuntu1404:~/devenv/aosp$   
4.安装perl的switch库:
sudo  apt-get install libswitch-perl
5. 选择编译目标包
注:目标包的选择跟你的硬件有关。我这里选择9,mako
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. dennis@dubuntu1404:~/devenv/aosp$ lunch  
  2. You're building on Linux  
  3. Lunch menu... pick a combo:  
  4.      1. aosp_arm-eng  
  5.      2. aosp_x86-eng  
  6.      3. aosp_mips-eng  
  7.      4. vbox_x86-eng  
  8.      5. aosp_manta-userdebug  
  9.      6. mini_mips-userdebug  
  10.      7. mini_armv7a_neon-userdebug  
  11.      8. mini_x86-userdebug  
  12.      9. aosp_mako-userdebug  
  13.      10. aosp_hammerhead-userdebug  
  14.      11. aosp_tilapia-userdebug  
  15.      12. aosp_deb-userdebug  
  16.      13. aosp_grouper-userdebug  
  17.      14. aosp_flo-userdebug  
  18. Which would you like? [aosp_arm-eng] 1  
  19. ============================================  
  20. PLATFORM_VERSION_CODENAME=REL  
  21. PLATFORM_VERSION=4.4.2  
  22. TARGET_PRODUCT=aosp_mako  
  23. TARGET_BUILD_VARIANT=userdebug  
  24. TARGET_BUILD_TYPE=release  
  25. TARGET_BUILD_APPS=  
  26. TARGET_ARCH=arm  
  27. TARGET_ARCH_VARIANT=armv7-a-neon  
  28. TARGET_CPU_VARIANT=krait  
  29. HOST_ARCH=x86  
  30. HOST_OS=linux  
  31. HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty  
  32. HOST_BUILD_TYPE=release  
  33. BUILD_ID=KVT49L  
  34. OUT_DIR=out  
  35. ============================================  
  36. dennis@dubuntu1404:~/devenv/aosp$ make -j4  
注:j4中的数字跟你的CPU个数和核数有关,详细参见参考资料[3].
整个编译过程,大约花了三个小时。编译成功后会在out目录下生成img文件。
6.运行模拟器
    编译完成后,可以运行emulator来启动模拟器运行原版Android系统。
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $ . build / envsetup . sh
    $ lunch 1
    $ make - j4

如果找不到emulator命令,需进行初始化操作:
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $ source build / envsetup . sh
    $ lunch full - eng
    $ emulator
Xilinx SDK调试与FPGA硬件验证全流程解析 本文详细解析了从Vivado导出硬件到Xilinx SDK进行调试与FPGA硬件验证的全流程。重点阐述了正确导出包含bitstream的硬件平台、创建合适的SDK工程、配置Debug会话以编程FPGA,并介绍了串口验证、自定义IP测试以及使用ILA进行软硬件联合调试的高级技巧,帮助开发者高效完成FPGA系统的软硬件协同开发与问题排查。 阅读详情

相关推荐

麒麟OS恢复出厂设置原理与实操:非重装的系统状态回滚

Linux操作系统中的‘恢复出厂设置’并非简单重装或镜像还原,而是一种基于状态快照、包管理与配置模板的可控回滚机制。其核心原理依赖LVM快照技术、RPM包签名验证和预置配置模板,兼顾系统稳定性与用户数据安全。该方案在政务、教育等国产化场景中具有显著技术价值——不格式化硬盘、不丢失/home文档、不重配驱动与授权,大幅降低运维复杂度。典型应用场景包括系统卡顿修复、软件冲突清理、桌面环境异常恢复等。本文深入解析银河麒麟V10的kylin-restore-cli工具链与麒麟管家集成逻辑,聚焦‘恢复出厂设置’这一高

weixin_30879169的博客 773

android4.4.2源码分析,深入浅出 - Android系统移植与平台开发(二) - 准备Android开发...

编译Android源码Ø 初始化编译环境切换到Android源码目录:1. $ cd WORKING_DIRECTORY执行下面命令,加载编译过程中用到的命令、环境变量:1. $ source build/envsetup.shØ 选择编译选项执行下面的命令,从列表中选择一个编译项:1. $ lunch2. You're building on Linux3.4. Lunch ...

weixin_28366475的博客 490

高通9008模式隐藏技巧:不拆机用ADB命令+Diag协议进入EDL

本文深入解析高通EDL模式(紧急下载模式)的技术原理与实战应用,详细介绍了通过ADB命令和Diag协议无需拆机进入EDL的方法。涵盖硬件/软件触发方案、跨平台工具配置、Firehose协议解析及设备救砖流程,为开发者提供从基础到进阶的完整指南。

weixin_29191761的博客 1124

android 4.4 源码编译,Android学习之一 -----4.4.2内核源码编译

1. 学习前言最近换了台电脑,只能重新装虚拟机重新编译android源码以及内核了。源码按照网上的流程(经典的老罗之旅以及其他)基本上可以编译通过。我再网上下载了一个别人压缩好的包,配置一下javap基本上一次编译就通过。但是android内核编译却遇到了不少问题。尽管,这些编译过程看似只要动动手就可以了,但是我发现重复几次以后对其中的一些问题还是有了很多新的感性的认识。很突出的一点就是遇到问题...

weixin_35760923的博客 471

LittleFS+NANDFLASH软硬件配置详情

littleFS文件系统说明及移植过程

weixin_43200844的博客 2368

SAP BOM反查(可追溯值至顶级)

功能介绍:BOM层数在7层以内的(含7层)的物料,执行后都可以查询到顶级的BOM,逻辑很简单,后期如BOM层数增加,可自行增加查询逻辑。 *&---------------------------------------------------------------------* *& Report ZBOM_CHECK *&---------------------...

SAP阿狸 6060

NanoPC-T2 Android对USB Camera (UVC)的支持

内核中把OV5640去掉后,就启动不起来了。

Android/Linux的专栏 1179

windows一键安装部署wvp-GB28181-pro视频监控平台

我们可以看到redis、mysql、zlm和wvp都正常运行了。该ip需要修改为wvp服务安装的 服务器的IP。默认用户名和密码分别为admin和admin。

zengliguang的专栏 5747

02使用常规步骤编译NanoPiM1Plus的Android4.4.2

02使用常规步骤编译NanoPiM1Plus的Android4.4.2 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2017/12/5 17:51 版本:V1.0 开发板:NanoPi M1 Plus/zh SDK:Android4.4.2 按照全志A33平台编译调通的功能: 0、HDMI(只...

weixin_30794499的博客 745

生物分子仿真软件:AMBER_(17).AMBER在核酸研究中的应用

在使用AMBER进行核酸分子动力学模拟之前,需要对核酸系统进行详细的准备。这包括构建初始结构、添加溶剂分子、中和电荷等步骤。以下将详细介绍这些步骤。

kkchenjj的博客 504

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码         Dennis Hu 2014-4-21 环境准备: 基本环境:ubuntu-14.04-desktop-64bit LTS(裸机或者Windows下虚拟机安装均可,12....

weixin_34356555的博客 146

SAP Build Work Zone standard edition 订阅报错 OIDC trust missing 的成因与完整解决路径

摘要:用户订阅SAP Build Work Zone时遇到422错误,提示未配置OpenID Connect信任。该错误表明业务用户需通过SAP Cloud Identity Services的OIDC协议认证,而当前子账户仅配置了SAML信任或未配置信任。解决方法是进入子账户的Trust Configuration页面,使用Establish Trust功能建立与SAP Cloud Identity Services的OIDC信任关系。这是SAP新版服务的强制要求,SAML协议已不被支持。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 197

ubuntu 14.04安装 android 4.4编译环境

基于Ubuntu 14.04 LTS编译Android4.4.2源代码 Dennis Hu 2014-4-21环境准备:基本环境:ubuntu14.04 64bit LTS(裸机或者Windows下虚拟机安装均可,12.04也可以,但10.04目前不支持了)其他要求:空闲磁盘空间100G以上,代码部分接近10G,其他为git和编译中间和目标文件准备 =======================

csuxsh的专栏 824

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

基于Ubuntu 14.04 LTS编译Android4.4.2源码

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/gobitan/article/details/24367439 ...

weixin_30613343的博客 219

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

1 前言经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历。先上图,Ubuntu上编译完后成功运行模拟器,如图:2 编译环境 UbuntuKylin 16.04 LTS Android 6.0_r1 Open JDK 7 3 准备工作(1) 下载Android 6.0源码. Androdi 6.0源

梧桐那时雨 7万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Ubuntu 14.04 LTS编译Android 4.4.2全流程指南

在嵌入式系统开发和历史版本维护中,环境兼容性始终是构建系统的关键挑战。以Android系统为例,其构建工具链与特定版本的GCC、Python等基础工具存在强依赖关系。Ubuntu 14.04 LTS作为长期支持版本,不仅提供稳定的开发环境,更因其工具链版本(如GCC 4.8)与Android 4.4.2源码完美匹配,成为编译经典Android版本的理想选择。通过配置正确的Java环境、处理GLIBC版本冲突等实践技巧,开发者可以高效完成从源码同步到镜像生成的全流程。这种环境精准还原的方法论,同样适用于车载系

weixin_30735745的博客 365

20250625解决在Ubuntu20.04.6LTS下编译RK3588的Android14出现cfg80211.ko的overriding问题

直接拿掉rk3588-android14-FriendlyElec/mkcombinedroot/res/vendor_modules.load 中的项目:cfg80211.ko。Z:\14TB\SDK\20250617友善之臂FriendlyElec-RK3576-175.25GB\07_源代码\rk35xx-android14-20250609.tgz。本文只是编译通过了,是否会对WIFI的功能有影响,还需要进一步的测试验证!本文只是编译通过了,是否会对WIFI的功能有影响,还需要进一步的测试验证!

南岭笑笑生之家 2050
上一篇: 编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上
下一篇: Android 动态注册短信拦截
hookfeng
博客等级 码龄12年 4粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值