编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上

编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上

作者:雨水  日期:2014-04-30

编译源码的目的还是为了自己改动源码,然后还可以执行在相应的手机上,仅仅有这样才有意义.  我手上有一部三星的Galaxy Nexus I9250, 代号为maguro。可是在眼下google的官方未提供针对android4.4.2版本号所相应的硬件驱动,最新仅仅提供到Android4.3,详细可以在https://developers.google.com/android/nexus/drivers这里查看。

我在网上看有基于4.4源代码+4.3驱动编译成功并能执行的,但我尝试了,非常多错误到眼下为止还没解决(已于2014-5-4已搞定),因此先尝试了4.3的源代码+4.3的驱动。以下就是整个过程:

注:关于编译环境设置等细节參考我的前一篇<基于Ubuntu
14.04 LTS编译Android4.4.2源码
>.

第一步:获取android-4.3.1_r1的源代码

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

第二步:编译android-4.3.1_r1的源代码

[email protected]:~/devenv/android-4.3.1_r1$ . build/envsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/samsung_slsi/arndale/vendorsetup.sh
including device/samsung/toroplus/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including sdk/bash_completion/adb.bash
[email protected]:~/devenv/android-4.3.1_r1$ lunch
You‘re building on Linux
Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_x86-eng
     3. aosp_mips-eng
     4. vbox_x86-eng
     5. aosp_deb-userdebug
     6. aosp_flo-userdebug
     7. full_tilapia-userdebug
     8. mini_armv7a_neon-userdebug
     9. mini_mips-userdebug
     10. mini_x86-userdebug
     11. full_mako-userdebug
     12. full_maguro-userdebug
     13. full_manta-userdebug
     14. full_arndale-userdebug
     15. full_toroplus-userdebug
     16. full_toro-userdebug
     17. full_panda-userdebug
Which would you like? [aosp_arm-eng] 12
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.3.1
TARGET_PRODUCT=full_maguro
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=JLS36I
OUT_DIR=out
============================================
[email protected]:~/devenv/android-4.3.1_r1$ make -j4

注1:假设这一步直接刷机,会出现提示flash成功,可是重新启动之后出现google的logo之后就黑屏,无法启动。原因就是由于驱动没有加进来,必须完毕第三步之后再開始刷机。

注2:编译过程中可能会出现例如以下错误:

Can‘t locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.

解决的方法:

$sudo apt-get install libswitch-perl

第三步:下载i9250(maguro)的官方驱动并又一次编译

(1) 下载驱动:进入https://developers.google.com/android/nexus/drivers#magurojwr66y,将Wi-Fi等6个驱动一次下载下来,然后解压,会生成6个.sh文件。将这些文件放入源码的根文件夹就可以。

(2) 运行.sh文件提取驱动程序: 通过运行"chmod +x *.sh"为它们添加可运行权限,然后依次运行这6个sh文件,每一个文件会让你输入"I ACCEPT"来接受协议。接受之后会将提取后的驱动放入名为vendor的文件夹中。此时,vendor文件夹应该位于源码的根文件夹之下,即android-4.3.1_r1之下。

然后再次依次运行例如以下命令又一次编译,本次编译时间会比較短。

$. build/envsetup.sh
$lunch 12
$make -j4

第四步 将编译好的img刷到i9250手机上

(1) 改动~/.bashrc中的环境变量ANDROID_PRODUCT_OUT为:

export ANDROID_PRODUCT_OUT=/home/dennis/devenv/android-4.3.1_r1/out/target/product/maguro

(2) 又一次进入命令行,然后開始刷机

$ adb reboot bootloader
$ fastboot flashall -w

刷好之后,系统会自己主动重新启动,假设没什么其它问题,你能够看到你的劳动成果了!

作者:雨水 转载请注明出处:http://blog.csdn.net/gobitan/article/details/24792589

參考资料:

1.  http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源码

2.  http://blog.csdn.net/zjmdp/article/details/7737802 Android 4.1 (Jelly Bean) 源代码编译过程总结

时间: 2024-10-31 09:15:34

编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上的相关文章

编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上

编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上 作者:雨水  日期:2014-04-30 编译源代码的目的还是为了自己修改源代码,然后还能够运行在相应的手机上,只有这样才有意义.  我手上有一部三星的Galaxy Nexus I9250, 代号为maguro.但是在目前google的官方未提供针对android4.4.2版本所对应的硬件驱动,最新只提供到Android4.3,具体可以在https://developers.google.com/and

Android 4.0.1 源代码编译

在学习应用编程时,为了实现应用在后台对其它界面的控制,需要将应用的权限提高到系统级.但提高到系统级的方法,其中一个就是放在 Android 源代码目录中进行编译:另一个方法已经试过,但安装失败.开始一直想直接从 Google 的网站上获取 Android 源代码,但由于大陆对 Google 的封锁,导致无法获取到.大家都通过 VPN 来获取,但一般 VPN 是需要费用的.后来才将获取 Android 源代码的方向转向别人下载好,打包传到网上的.先后从 XX 云盘下载了 3 个 Android 源

反编译Android应用

转载请注明出处:http://blog.csdn.net/allen315410/article/details/44018747 Android反编译介绍 我们在开发Android应用的时候,常常会"参考""借鉴"一下别人"想法",你们懂的!然而,很多时候我们是看不见别人的源码的,这时候唯一解决的方法就是反编译apk,我们知道,当一个Android应用开发好了以后,会打包生成apk文件,然而Android打包工具会将java源码编译成.clas

[转]编译Android源代码常见错误解决办法

1. 编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when searching for -lz PLATFORM_VERSION_CODENAME=AOSPPLATFORM_VERSION=AOSPTARGET_PRODUCT=genericTARGET_BUILD_VARIANT=engTARGET_SIMULATOR=TARGET_BUILD_TYPE

编译Android 4.4源代码并烧录到Nexus4

环境准备: 基本环境:ubuntu-12.04-desktop-64bit(裸机或者Windows下虚拟机安装均可,14.04也可以) 其他要求:空闲磁盘空间100G以上,代码部分接近10G,内存越大越好. ========================================== 第一部分:环境初始化 ========================================== 1. 安装Oracle JDK 注意:如果编译Android4.4不能用OpenJDK,必须用Or

Android、Linux内核源代码的下载和编译

1. 配置Android源代码下载环境 a. 创建一个用于存放下载脚本文件的目录 mkdir -/bin PATH=~/bin:$PATH b. 下载repo脚本文件 curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo chmod a+x ~/bin/repo c. 创建用于存放Android源代码的目录 mkdir android_source cd android_source d. 初始化 re

编译Android源代码与内核总结

这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.android.com/source/initializing.html. 1.安装linux环境 我是windows系统,安装了Vmware虚拟机.在虚拟机上装了ubuntu-12.04,我的这个版本号是32位的,这个还蛮重要的.安装32位或者64位的将决定你能编译的android版本号,官方文档里Fo

Mac系统下编译Android系统源代码

前言 我们知道,Android OS是基于Linux内核的移动操作系统,主要分成了 Application ApplicationFramework(Java) System Libraries(Native C/C++)/Android Runtime HAL(Hardware Abstraction Layer) Linux Kernel 这几个部分. 作为一个Android Developer,熟练使用Android系统API是必不可少的(Application),但是在进阶的道路上,揭开

下载编译 Android wear 源代码,尝试制作可穿戴设备功能

体验 Android Wear 缘由: Android wear 代码公布已经非常久了.一直没有尝试,这里是个编译的过程和步骤,假设要尝试.本文假定读者已经有下载编译 Android 的经验,假设没有,请 Google 相关文章安装对应的环境.比如 Java 各种支持库等. 下载源码: Google 官方下载: repo init -u https://android.googlesource.com/platform/manifest -b android-4.4w_r1 鉴于国内的大多数网络