美文网首页
Android 6.0 源码编译 on Mac

Android 6.0 源码编译 on Mac

作者: plusend | 来源:发表于2016-08-23 16:49 被阅读448次

    一、设置 Mac 编译环境

    1. 参考Setting up a Mac OS build environment
    2. 建一个大小写敏感的分区
    # hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg
    # 想更改该分区大小时
    # hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
    
    1. 挂载分区
      在 ~/.bash_profile(如果是 zsh,则为 .zshrc) 中添加下列代码。
    # mount the android file image
    function mountAndroid { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
    # unmount the android file image
    function umountAndroid() { hdiutil detach /Volumes/android; }
    

    调用 mount 来挂载分区,unmount 来卸载。

    1. 其他
      在 ~/.bash_profile ( 或者 .zshrc )中添加:
    export PATH=/opt/local/bin:$PATH
    # set the number of open files to be 1024
    ulimit -S -n 1024
    

    二、下载

    从清华大学下载源码:清华大学 TUNA 镜像源

    1. 下载 repo 工具:
    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    
    1. 使用每月更新的初始化包
      由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。
      下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。
    wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
     # 下载初始化包
    tar xf aosp-latest.tar
    cd AOSP
     # 解压得到的 AOSP 工程目录# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
    
    1. 指定特定的 Android 版本(列表),并同步
    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r41
    repo sync
    
    1. 下载对应的驱动
      Binaries for Nexus Devices
      驱动.png
      从版本列表中可以看到对应的驱动编号。
      从这里下载对应的驱动文件到源码目录,下载完成后解压,会发现三个sh文件,依次执行,例如:
    $ ./extract-broadcom-hammerhead.sh
    The license for this software will now be displayed.
    You must agree to this license before using this software.
    Press Enter to view the licenses
    

    回车后查看license,翻到license最后,输入I ACCEPT后回车,这时会将驱动文件释放到vendor目录。

    三、编译

    1. 配置编译环境
    source build/envsetup.sh
    
    1. 选择对应的设备
    You're building on Darwin
    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_deb-userdebug
         8. aosp_flo-userdebug
         9. full_fugu-userdebug
         10. aosp_fugu-userdebug
         11. mini_emulator_arm64-userdebug
         12. m_e_arm-userdebug
         13. mini_emulator_mips-userdebug
         14. mini_emulator_x86-userdebug
         15. mini_emulator_x86_64-userdebug
         16. aosp_flounder-userdebug
         17. aosp_angler-userdebug
         18. aosp_bullhead-userdebug
         19. aosp_hammerhead-userdebug
         20. aosp_hammerhead_fp-userdebug
         21. aosp_shamu-userdebug
    Which would you like? [aosp_arm-eng]
    

    对应关系可以查阅 Selecting a device build
    如果提示“Can not find SDK 10.6”,请修改“build/core/combo/mac_version.mk” 中的

    mac_sdk_versions_supported :=  10.6 10.7 10.8 10.9 10.11
    
    1. 启动编译
    make -j4
    

    四、刷机

    1. 指定刷机包的路径
    export ANDROID_PRODUCT_OUT=/Volumes/android/aosp/out/target/product/hammerhead
    
    1. 进入 bootloader,并刷机
    adb reboot bootloader
    fastboot -w flashall
    

    五、参考链接

    1. Mac OS X下编译Android M源码 ;
    2. Android编译过程中的碎碎念 ;

    相关文章

      网友评论

          本文标题:Android 6.0 源码编译 on Mac

          本文链接:https://www.haomeiwen.com/subject/zlhnsttx.html