【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

07-17 1515阅读

0. 环境准备

  • Ubuntu 16.04 LTS(预留至少95GB磁盘空间,实测占94.2GB)

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

  • Pixel 2 XL

    要买欧版的,不要美版的。

    欧版能解锁BootLoader、能刷机。

    美版IMEI里一般带“v”或者"version",这样不能解锁BootLoader、也不能刷机。

  • 想刷入Android-8.1.0_r1

    1. 下载源码

    参考:https://blog.csdn.net/aichu6610/article/details/116071003

    注意改用 python3 ~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1

    1.1 安装并配置git和repo

    安装git

    sudo apt install git
    git config --global user.name “your name”
    git config --global user.email “XXX@XXX.com”
    

    安装并配置repo

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

    安装JDK 8

    sudo apt update
    sudo apt install openjdk-8-jdk
    

    创建文件目录

    mkdir  /home/tom/Android-8.1.0_r1
    cd /home/tom/Android-8.1.0_r1
    

    修改配置

    找到~/bin/repo文件,修改如下配置

    REPO_URL = ‘https://mirrors.tuna.tsinghua.edu.cn/git/git-repo’
    

    在终端下运行

    git config --global url.https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/.insteadof https://android.googlesource.com
    

    执行gedit ~/.bashrc然后在末尾添加:

    export PATH=~/bin:$PATH
    export REPO_URL=‘https://mirrors.tuna.tsinghua.edu.cn/git/git-repo’
    

    运行 source ~/.bashrc 使环境变量生效

    1.2 使用repo同步代码

    Repo是谷歌提供的一套python脚本,封装了一系列git命令,用来管理多个git库

    初始化repo仓库

    python3 ~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1
    

    如果想用其他版本,在这里查询:

    https://source.android.com/source/build-numbers?hl=zh-cn

    同步代码

    repo sync -j8
    

    这个过程会持续数个小时

    -j8貌似是并行的意思,如果报错可以去掉-j8试试

    中间有报错,但不知道是否有影响

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    某些时刻输出过长,所以最后就多出来一截 应该无大碍

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    以防万一,又 repo sync 了几遍

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    2. 准备驱动脚本

    地址:https://developers.google.com/android/drivers

    要找 android-8.1.0_r1 的 pixel 2xl的驱动

    android-8.1.0_r1就是OPM1.171019.011

    参考:https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds

    所以锁定:

    https://developers.google.com/android/drivers#taimenopm1.171019.011

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    将上面两个link的内容下载下来,得到两个sh:

    extract-google_devices-taimen.sh 
    extract-qcom-taimen.sh
    

    3. 编译

    3.1 编译

    source build/envsetup.sh
    

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    将下载的两个驱动脚本 放入源码根目录下 并执行

    ./extract-google_devices-taimen.sh 
    ./extract-qcom-taimen.sh
    

    一顿敲回车(注意不要敲过油了)

    最后敲入I ACCEPT

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    执行lunch

    lunch
    

    我的是Pixel 2 XL,也就是 taimen,所以选27

    (各机型的对照参考:https://blog.csdn.net/guyongqiangx/article/details/123971895)

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    执行 time make

    (这里不并行了,并行容易出bug,如果想并行可以time make -j4 )

    time make
    

    3.2 报错:Assertion `cnt

    【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0

    [  4% 5148/105788] Lex: applypatch 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]