编译AOSP刷入nexus5

21 篇文章 0 订阅
6 篇文章 0 订阅

转自:http://www.jianshu.com/p/ff97a4e0d651

ubuntu14.04编译Android4.4源码讲述了用于模拟器的AOSP编译过程,在完整编译了源码以后,会自动将编译结果目录加入到path中,此时运行 emulator 即可在模拟器中运行自己的编译结果。

但是要在真机上运行,还需要一些其他的工作。

  1. 真机运行需要厂商的驱动,厂商的驱动是不包含在AOSP中的,你需要根据你选择的Branch:
    https://source.android.com/source/build-numbers.html
    去驱动页面:
    https://developers.google.com/android/nexus/drivers#shamulrx21o
    下载合适的驱动。

比如,我编译的是Branch是android-5.1.0_r1,对应的Build是LMY47D,在驱动页面找到对应的驱动是:

Nexus 5 (GSM/LTE) binaries for Android 5.1.0 (LMY47D)
... //下面有几个驱动链接
  1. 将驱动文件下载后,解压到AOSP根目录,得到几个.sh文件,执行后,会在AOSP下创建vendor目录,里面包含了驱动。
    执行 make clobber 清除一下产生的无关文件。

  2. 再次 make -j4,此次编译的结果就包含了驱动,编译完成后,执行make fastboot adb 单独编译fastboot和adb。

  3. 将nexus5 调至 fastboot模式
    方法一: 能够adb链接的时候执行 adb reboot bootloader
    方法二: 关机状态下,同时按音量上下键。

  4. 在fastboot模式下,执行 fastboot oem unlock解锁bootloader,如果已经解锁,启动界面的google图标下有一把打开的锁。

  5. 执行which fastboot找到fastboot的目录,我的在AOSP/out/host/linux-x86/bin

  6. 电脑先切换到su用户下,这一步很重要,否则后面会有no devices, no permissions等错误。

  7. 在su下,切换至AOSP/out/host/linux-x86/bin,运行./fastboot devices,将看到有一台连接的设备。

  8. 执行./fastboot -w flashall,提示错误:error: neither -p product specified nor ANDROID_PRODUCT_OUT set,原因是ANDROID_PRODUCT_OUT没有设置,找不到编译的.img文件,执行:
    export ANDROID_PRODUCT_OUT=/your/path/to/img

  9. 再次执行./fastboot -w flashall将开始刷机,刷完会自动重启,over!

 

错误总结:

1、执行fastboot devices出现错误:

no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]    fastboot

解决方法:

fastboot需要使用root权限执行,使用sudo执行fastboot

sudo fastboot devices

 

2、adb no permission

https://blog.csdn.net/mldxs/article/details/38323101

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值