• 编译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的源代码
    dennis@dubuntu1404:~/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
    dennis@dubuntu1404:~/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
    ============================================
    dennis@dubuntu1404:~/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) 源代码编译过程总结

  • 相关阅读:
    SharePoint 2010“.NET研究” BI:Chart WebPart 狼人:
    .NET分布“.NET研究”式架构开发实战之一 故事起源 狼人:
    C#中的loc“.NET研究”k关键字 狼人:
    .NET 分布式架构开发“.NET研究”实战之三 数据访问深入一点的思考 狼人:
    舍WebServic“.NET研究”e 用.NET4中jQuery调用WCF 狼人:
    Visual Studio 2010构建Web浏“.NET研究”览器应用程序 狼人:
    强类型ASP.NET数据绑定改进“.NET研究”版 狼人:
    Visual Studio 2008单元测试_数据“.NET研究”库测试 狼人:
    主题执行过程改进建设中的常见奖励措施
    分类栏目Thinkphp实现无限极分类
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4286021.html
Copyright © 2020-2023  润新知