编译aosp源码,刷user-debug开发机之nexus 6p

最近想研究下竞品app的页面,为了在真机上使用用hierarchyviewer工具,dump下数据库,就想起以前开发机的好处了。手上正好有个nexus 6p,完全可以自己编译aosp源码,刷个user-debug的开发机。毕竟系统都可以debug了,装在上面app就好更好揉捏了。

准备

Ubuntu 18.04.1 LTS
笔记本 cpu 4核i5 内存8G 256G ssd
nexus 6p (angler)
预留空余磁盘160G以上,源码加编译结果占用了148G
open-jdk8环境
访问google的能力
https://source.android.com/setup/build/requirements

步骤

repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r47
repo sync -j4

查看repo当前检出分支 git --git-dir .repo/manifests/.git/ branch -a
失败了不要紧,重新sync就好,之前下载的有缓存不会重头开始的

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
export JRE_HOME=$JAVA_HOME/jre 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib 
export PATH=$JAVA_HOME/bin:$PATH 
export LC_ALL=C
  • 编译源码
build/envsetup.sh 
lunch aosp_angler-userdebug 
make -j4
  • 刷机
export ANDROID_PRODUCT_OUT=your-aosp-path/out/target/product/angler 
fastboot flashall -w

问题

LC_ALL=C is to remove all localized settings, make the correct execution.

  • 2、/bin/bash: xmllint: command not found
    解决:安装xmllint

sudo apt-get install libxml2-utils

  • 3、Build with Jack .... Out of memory error GC overhead limit exceeded. Try increasing heap size with java option '-Xmx'.
    解决:修改jack-server的配置文件ref:http://www.2net.co.uk/blog/jack-server.html

vim ~/.jack-settings
添加一行:
JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
重启下jack-server:
prebuilts/sdk/tools/jack-admin kill-server
prebuilts/sdk/tools/jack-admin start-server

  • 4、flash完后不断重启
    可能原因:
    1>、binary文件只下了一个
    2>、没有下载对应build numer的binary文件
    3>、编译因为错误中断过,继续编译引起的。
    解决:可能某些中间文件不完全或受损,把out文件夹删掉后再整编一次
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。