美文网首页
编译aosp源码,刷user-debug开发机之nexus 6p

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

作者: gnehz972 | 来源:发表于2019-01-01 15:39 被阅读0次

最近想研究下竞品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文件夹删掉后再整编一次

相关文章

网友评论

      本文标题:编译aosp源码,刷user-debug开发机之nexus 6p

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