Android 5.1.1谷歌源生编译为Android Lollipop编译固件Nexus5 Nexus6 Nexus7
来源:互联网 发布:mac qq 五笔输入法 编辑:程序博客网 时间:2024/06/10 07:42
Android 5.1.1谷歌源生编译为Android Lollipop编译固件Nexus5 Nexus6 Nexus7
接触Android大概三个月的时间,之前一直都在研究高通平台的代码,这次写一下我自己编译谷歌源生代码遇到的问题。
系统Linux下的
Ubuntu 14.04 64位
你需要知道AOSP,AOSP即Android Open Source Project 汉语意思是:谷歌开放源代码项目.我们通过Google官方下载的源代码,就是AOSP的代码, 其中是不包含Google开发的那些个应用的,各个厂商拿到的也是这个版本,在这个版本的基础上进行修改. 而Google发布的工厂固件则是包含全套Google服务的. 厂商如果想安装Google服务,就需要过Google的那一套认证,比较麻烦,而且价格不菲,鉴于Google在国内的尴尬地位,国内很多厂商都没有过这个认证.
在源生文档里面说明 首先需要安装JDK AOSP编译需要JAVA 7.0的版本 在Ubuntu下使用OpenJDK
本文均以Ubuntu操作为例,下面安装Ubuntu的OpenJDK,具体命令如下:
复制代码然后设置默认JAVA版本
复制代码
Ubuntu 14.04编译需求的支持包
复制代码
接下来安装Repo:
引用原文说明,看不懂略过看中文说明
下载Android源代码
首先安装Repo,确认在你目录下是否有/bin路径
然后终端如下操作:
复制代码
然后下载repo ,这里需要翻墙,要不不能正常下载
复制代码
通过Repo获取具体分支,以下用 5.1.1的 LMY48M android-5.1.1_r14版本为例
复制代码
获取之后,开始下载 -j16 我开启了16线程 ,这个根据个人电脑的好像酌情安排。
复制代码
repo下载源码这步骤我大概下载了2天2夜,翻墙之后的网速在50KB左右
如果下载没有完成之前,Repo的目录为空,当全部下载完成之后所有文件才会显示。
开始编译
1. 初始化编译环境
进入目录之后
复制代码
2. 加载机型复制代码
3. 选择要编译的机器复制代码
3.1 机型对照表[td]DeviceCode nameBuild configurationNexus 6shamuaosp_shamu-userdebugNexus Playerfuguaosp_fugu-userdebugNexus 9volantis (flounder)aosp_flounder-userdebugNexus 5 (GSM/LTE)hammerheadaosp_hammerhead-userdebugNexus 7 (Wi-Fi)razor (flo)aosp_flo-userdebugNexus 7 (Mobile)razorg (deb)aosp_deb-userdebugNexus 10mantaray (manta)full_manta-userdebugNexus 4occam (mako)full_mako-userdebugNexus 7 (Wi-Fi)nakasi (grouper)full_grouper-userdebugNexus 7 (Mobile)nakasig (tilapia)full_tilapia-userdebugGalaxy Nexus (GSM/HSPA+)yakju (maguro)full_maguro-userdebugGalaxy Nexus (Verizon)mysid (toro)aosp_toro-userdebugGalaxy Nexus (Experimental)mysidspr (toroplus)aosp_toroplus-userdebugPandaBoard (Archived)pandaaosp_panda-userdebugMotorola Xoom (U.S. Wi-Fi)wingrayfull_wingray-userdebugNexus Ssoju (crespo)full_crespo-userdebugNexus S 4Gsojus (crespo4g)full_crespo4g-userdebug3.2 三个版本说明版本[td]BuildtypeUseuserlimited access; suited for productionuserdebuglike “user” but with root access and debuggability; preferred for debuggingengdevelopment configuration with additional debugging tools
选择aosp_hammerhead-userdebug之后,会有下面的确认信息:
复制代码
4.生成驱动目录
接下来需要在Android官网下载 Nexus5/6/7所需要的驱动:
Android官网驱动下载地址
下载完成后,解压出来是三个.sh文件,放到Android源码目录下面,然后执行.会将相关驱动放到vender目录下面.
5. 执行编译命令
复制代码如果没有出错的话,在经过漫长的时间之后,编译成功
6. 刷机命令
关机状态下,长按音量下+电源,即可进入recovery模式, 然后在源码根目录下执行下面命令:
复制代码刷机成功后会自动重启,自此编译完成。文章来源:Android 5.1.1
接触Android大概三个月的时间,之前一直都在研究高通平台的代码,这次写一下我自己编译谷歌源生代码遇到的问题。
系统Linux下的
Ubuntu 14.04 64位
你需要知道AOSP,AOSP即Android Open Source Project 汉语意思是:谷歌开放源代码项目.我们通过Google官方下载的源代码,就是AOSP的代码, 其中是不包含Google开发的那些个应用的,各个厂商拿到的也是这个版本,在这个版本的基础上进行修改. 而Google发布的工厂固件则是包含全套Google服务的. 厂商如果想安装Google服务,就需要过Google的那一套认证,比较麻烦,而且价格不菲,鉴于Google在国内的尴尬地位,国内很多厂商都没有过这个认证.
Installing the JDK
The master branch of Android in the Android Open Source Project (AOSP) requires Java 7. On Ubuntu, use OpenJDK.
Java 7: For the latest version of Android
在源生文档里面说明 首先需要安装JDK AOSP编译需要JAVA 7.0的版本 在Ubuntu下使用OpenJDK
本文均以Ubuntu操作为例,下面安装Ubuntu的OpenJDK,具体命令如下:
- $ sudo apt-get update
- $ sudo apt-get install openjdk-7-jdk
- $ sudo update-alternatives --config java
- $ sudo update-alternatives --config javac
Ubuntu 14.04编译需求的支持包
- $ sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
接下来安装Repo:
引用原文说明,看不懂略过看中文说明
To install Repo:
Make sure you have a bin/ directory in your home directory and that it is included in your path:
$ mkdir ~/bin
$ PATH=~/binPATH
Download the Repo tool and ensure that it is executable:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
下载Android源代码
首先安装Repo,确认在你目录下是否有/bin路径
然后终端如下操作:
- $ mkdir ~/bin
- $ PATH=~/bin:$PATH
然后下载repo ,这里需要翻墙,要不不能正常下载
- $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- $ chmod a+x ~/bin/repo
通过Repo获取具体分支,以下用 5.1.1的 LMY48M android-5.1.1_r14版本为例
- $ repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.1_r14
获取之后,开始下载 -j16 我开启了16线程 ,这个根据个人电脑的好像酌情安排。
- $ repo sync -j16
repo下载源码这步骤我大概下载了2天2夜,翻墙之后的网速在50KB左右
如果下载没有完成之前,Repo的目录为空,当全部下载完成之后所有文件才会显示。
开始编译
1. 初始化编译环境
进入目录之后
- . build/envsetup.sh
2. 加载机型
- lunch
3. 选择要编译的机器
- You're building on Linux
-
- Lunch menu... pick a combo:
- 1. aosp_arm-eng
- 2. aosp_arm64-eng
- 3. aosp_mips-eng
- 4. aosp_mips64-eng
- 5. aosp_x86-eng
- 6. aosp_x86_64-eng
- 7. aosp_shamu-userdebug
- 8. aosp_manta-userdebug
- 9. full_fugu-userdebug
- 10. aosp_fugu-userdebug
- 11. aosp_grouper-userdebug
- 12. aosp_tilapia-userdebug
- 13. aosp_deb-userdebug
- 14. aosp_flo-userdebug
- 15. aosp_mako-userdebug
- 16. aosp_hammerhead-userdebug
- 17. aosp_flounder-userdebug
- 18. mini_emulator_x86_64-userdebug
- 19. mini_emulator_arm-userdebug
- 20. mini_emulator_x86-userdebug
- 21. mini_emulator_mips-userdebug
- 22. mini_emulator_arm64-userdebug
3.1 机型对照表[td]DeviceCode nameBuild configurationNexus 6shamuaosp_shamu-userdebugNexus Playerfuguaosp_fugu-userdebugNexus 9volantis (flounder)aosp_flounder-userdebugNexus 5 (GSM/LTE)hammerheadaosp_hammerhead-userdebugNexus 7 (Wi-Fi)razor (flo)aosp_flo-userdebugNexus 7 (Mobile)razorg (deb)aosp_deb-userdebugNexus 10mantaray (manta)full_manta-userdebugNexus 4occam (mako)full_mako-userdebugNexus 7 (Wi-Fi)nakasi (grouper)full_grouper-userdebugNexus 7 (Mobile)nakasig (tilapia)full_tilapia-userdebugGalaxy Nexus (GSM/HSPA+)yakju (maguro)full_maguro-userdebugGalaxy Nexus (Verizon)mysid (toro)aosp_toro-userdebugGalaxy Nexus (Experimental)mysidspr (toroplus)aosp_toroplus-userdebugPandaBoard (Archived)pandaaosp_panda-userdebugMotorola Xoom (U.S. Wi-Fi)wingrayfull_wingray-userdebugNexus Ssoju (crespo)full_crespo-userdebugNexus S 4Gsojus (crespo4g)full_crespo4g-userdebug3.2 三个版本说明版本[td]BuildtypeUseuserlimited access; suited for productionuserdebuglike “user” but with root access and debuggability; preferred for debuggingengdevelopment configuration with additional debugging tools
选择aosp_hammerhead-userdebug之后,会有下面的确认信息:
- ============================================
- PLATFORM_VERSION_CODENAME=REL
- PLATFORM_VERSION=5.0.50.50.50.50
- TARGET_PRODUCT=aosp_hammerhead
- TARGET_BUILD_VARIANT=userdebug
- TARGET_BUILD_TYPE=release
- TARGET_BUILD_APPS=
- TARGET_ARCH=arm
- TARGET_ARCH_VARIANT=armv7-a-neon
- TARGET_CPU_VARIANT=krait
- TARGET_2ND_ARCH=
- TARGET_2ND_ARCH_VARIANT=
- TARGET_2ND_CPU_VARIANT=
- HOST_ARCH=x86_64
- HOST_OS=linux
- HOST_OS_EXTRA=Linux-3.13.0-37-generic-x86_64-with-Ubuntu-14.10-utopic
- HOST_BUILD_TYPE=release
- BUILD_ID=AOSP
- OUT_DIR=out
4.生成驱动目录
接下来需要在Android官网下载 Nexus5/6/7所需要的驱动:
Android官网驱动下载地址
下载完成后,解压出来是三个.sh文件,放到Android源码目录下面,然后执行.会将相关驱动放到vender目录下面.
5. 执行编译命令
- make -j16
6. 刷机命令
关机状态下,长按音量下+电源,即可进入recovery模式, 然后在源码根目录下执行下面命令:
- fastboot -w flashall
0 0
- Android 5.1.1谷歌源生编译为Android Lollipop编译固件Nexus5 Nexus6 Nexus7
- 为Nexus5编译Android L固件
- 为Nexus5编译AndroidL固件
- android编译源码5.1.1刷真机nexus5系统
- android 4.4 源码编译--for--nexus5
- 如何在MacOS10.12.6中为Nexus5编译M固件
- Android系统源码下载与编译、刷机--Nexus6实测
- Android源码编译之Nexus5真机编译
- Android源码编译之Nexus5真机编译
- 为nexus 5x编译android n固件
- Android 5.0.1(Lollipop)源码的下载、编译(eng版本)并烧录到Nexus 4
- Android 5.0.1(Lollipop)源码的下载、编译(eng版本)并烧录
- 编译cm for nexus5
- Google Nexus5关于Android 6.0源码的同步,编译和烧写
- Android Lollipop
- 编译AOSP刷入nexus5
- Ubuntu14.10 x64配置Android 4.4(kitkat)/5.0(lollipop) 编译环境的方法(更新)
- 树莓派3(全志A20)Android固件编译
- Codeforces R321 div2
- C++容器操作
- mongodb 服务安装和删除
- TCP-socket发送结构体类型数据
- 【读书笔记】iOS-AppKit简介
- Android 5.1.1谷歌源生编译为Android Lollipop编译固件Nexus5 Nexus6 Nexus7
- LeetCode Add Digits
- 基于xml的springMVC请求与数据返回
- LeetCode 7 Reverse Integer(翻转整数)
- 第15章 进程间通信
- c3p0数据库连接池死锁问题
- 学习NotesList(Robotium自带的例子)
- hdu5452 离线最近公共祖先
- MySQL添加用户、删除用户与授权