zoukankan      html  css  js  c++  java
  • 编译Android 8.0系统 并刷入pixel

    前言:

    这学期的项目需要对android系统中art以及framework进行一些简单的修改。万事开头难,先从编译源码并刷入机器开始。

    部分环境:

    手机:Pixel
    系统:Ubuntu 18.04.2 LTS
    处理器:Intel® Core™ i7-7700HQ CPU @ 2.80GHz
    虚拟机:VMware® Workstation 15 Pro
    虚拟机内存: 8GB
    虚拟机硬盘: 300GB

    官方教程:

    https://source.android.com/setup/build/requirements

    下载:

    建bin来存放repo,并配置repo的环境变量

    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    

    配置git的用户信息

    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    

    进行初始化

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

    特定版本的代码:

    repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r2
    

    ps: 直接从谷歌下载可能会遇到问题,推荐使用科大源
    修改repo文件中 REPO_UPRL

    REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
    

    并且init时候采用下面指令

    repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.0.0_r2
    

    最后

    repo sync
    

    即可下载源代码。

    编译

    由于部分硬件驱动是非开源的,因此要刷到pixel上面,首先要下载相应的固件(注意对应号系统型号)
    下载地址:
    https://developers.google.com/android/drivers#sailfishopr6.170623.011
    之后选择对应版本,这里针对pixel选择aosp_sailfish-userdebug

    解压之后放到源代码的根目录下执行这两个文件

    ./extract-google_devices-sailfish.sh
    ./extract-qcom-sailfish.sh
    

    然后就进行编译即可,注意需要lunch的版本根据机器不同有所区别

    . build/envsetup.sh
    lunch aosp_sailfish-userdebug
    make -j8
    

    编译时候遇到的坑及解决方案

    编译时候会遇到很多坑,这里列举几个我碰到的(依赖相关的没有放上来)
    1

    flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
    Aborted (core dumped)
    
    

    解决方案

    export LC_ALL=C
    

    2

    Out of memory error (version 1.3-rc6 'Douarn' (441800 22a11d4b264ae70e366aed3025ef47362d1522bb by android-jack-team@google.com)).
    
    

    解决方案

    export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
    out/host/linux-x86/bin/jack-admin kill-server
    out/host/linux-x86/bin/jack-admin start-server
    

    刷机

    官方教程:
    https://source.android.com/setup/build/running.html#flashing-a-device
    进去fastboot模式(如果不成功可以加sudo试试)

    fastboot devices
    fastboot -w flashall
    

    至此刷机成功,接下来的工作就是对系统进行一些修改并刷入设备了

  • 相关阅读:
    Lesson_strange_words6
    Lesson_strange_words3
    Lesson_strange_words4
    Lesson_strange_words1
    Lesson_strange_words2
    关于我们子页面
    关于我们页面
    走进龙门石窟子页面
    3.用户登陆注册
    2.项目初始化
  • 原文地址:https://www.cnblogs.com/zhangxianlong/p/10672649.html
Copyright © 2011-2022 走看看