如何在MacOS10.12.6中为Nexus5编译M固件

前言

  Marshmallow,也就是Android6现在对于我们来说也是古老的东西了,所以在编译就会遇到各种版本问题。于是就想写篇文章,把遇到的坑记录下来。

初始编译环境

环境 版本号
MacOS 10.12.6
JDK 1.8
MacOSX-SDK 12
手机 Nexus5(GSM/LTE)

  其他的make等版本号,基本不用怎么管,就新版的。MacOSX-SDK下面出问题的时候再稍微详细地说一下。

初始工作

  按照官网的教程,搭建编译环境下载源代码,一步一步来。
  这里需要注意的是:因为我们的都是是Nexus5,所以版本最高只能到Android 6.0.1。所以我在配置远程仓库路径的时候用的是

repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r1

  当然这时候需要翻墙,推荐用kcptun加速,它能让搬瓦工最便宜的那种小水管都能达到近2M/s的下载速率。这样能保证repo sync的成功率,要知道这玩意失败后会留下一堆临时文件,还不能断点续传。网上流传的加-f参数只不过是让它不要让失败终止,而是继续下载。下面是我改写的下载脚本。功能就是失败后继续下载,然后统计一下次数,给个交代

 #!/bin/bash
 count=1;
 repo sync;
 while [ $? == 1 ]; do
     echo "$count Sync failed, repeat again:";
     find . -iname tmp_pack_* | xargs rm
     sleep 3
     let count++;
     repo sync;
 done
 echo "finish $count sync";

  因为我已经在git上设置了代理,于是这里就不用proxychains4了。

git config --global http.proxy 'socks5://127.0.0.1:1080'

  有些博客会让人加个https.proxy。

git config --global https.proxy 'socks5://127.0.0.1:1080'

  可我看文档好像是没有这个东西的

http.proxy
Override the HTTP proxy, normally configured using the http_proxyhttps_proxy, and all_proxy*environment variables (see curl(1)). In addition to the syntax understood by curl, it is possible to specify a proxy string with a user name but no password, in which case git will attempt to acquire one in the same way it does for other credentials. See gitcredentials[7] for more information. The syntax thus is[protocol://][user[:password]@]proxyhost[:port]*. This can be overridden on a per-remote basis; see remote..proxy

  按照这个文档来说,http.proxy既管http也管https,所以就没有https.proxy了。不过加上https.proxy也不会报错。当然如果只写了https.proxy肯定不会有效果就是了。

构建

下载驱动

  这个在官网上叫做硬件支持的二进制文件。这时候我们要根据在初始工作中选择的分支看它对应的细分版本号是多少,然后再通过这个版本号找到相应的驱动。所以至少需要了两个表
  第一个表是源代码标记和细分版本。这个表很长,下面就节选我们所需要部分的附近几行

细分版本 分支 版本 支持的设备
MXB48J android-6.0.1_r4 Marshmallow Pixel C
MMB29M android-6.0.1_r3 Marshmallow Nexus 6P、Nexus Player
MMB29K android-6.0.1_r1 Marshmallow Nexus 5、Nexus 5X、Nexus 6、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg)
MMB29N android-6.0.0_r41 Marshmallow Nexus 6P
MDB08M android-6.0.0_r26 Marshmallow Nexus 5X、Nexus 6P
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值