Build Android


自己手头上有一台闲置的设备,小米max2 代号是oxygen。系统预装的是android 7.1.2,屏幕大小拿来监控挺合适的,7.1的系统现在显然有些apk是装不上的。既然这样,为何不自己编译呢?
好了,正文开始

有一台高性能的服务器,或者自己的pc,要求

  • RAM至少16GB起步
  • CPU核心建议不低于10核,编译最主要也就是核心数,决定编译时间
  • 300GB以上的SSD

  • 我编译系统选的是Debian 12 (Bookworm),安装编译时必须的组件
    sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev git vim jq python-is-python3

    安装谷歌repo

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

    当存在root账号时,设置变量

    cat >> ~/.bashrc <<EOF
    
    # set PATH so it includes user's private bin if it exists
    if [ -d "\$HOME/bin" ] ; then
        PATH="\$HOME/bin:\$PATH"
    fi
    EOF
    
    source ~/.bashrc

    创建编译文件夹工作目录

    mkdir xxx
    cd xxx
    repo init -u xxx -b xxx  // xxx指的是rom项目名,记得选分支

    repo

    repo sync // 服务器环境直接使用该命令即可,自己电脑你可能需要加force参数

    同步Device Tree/Kernel/vendor,比如我的<https://github.com/halibw/android_device_xiaomi_oxygen
    同步完成即可构建

    . build/envsetup.sh
    lunch xxx-oxygen-userdebug // oxygen是我max2的代号,首次编译建议选eng

    好了,剩下的就是修改编译过程中出现的问题了,服务器编译记得安装终端复用器如tmux、screen


    Author: Halibw
    Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Halibw !
     Previous
    openssl-dev替换guntls openssl-dev替换guntls
    使用openssl-dev替换guntls为什么会有这种需求呢?今天在拉取Android源码时,使用了机场梯子有点抽风,访问网页内容倒是没什么问题。但拉取Github库时一直guntls_handshake()faild:The TLS c
    Next 
    记录校园网自动登录 记录校园网自动登录
    第一次写个人博客,记录下校园网的折腾。为了减少不必要重复学习的时间成本,把内容放在博客,方便下次直接采用。学校采用的是深信服的认证,这网上已经有很多方法教程了,这里不展开详细说明。首先,使用chrome获取认证链接,放到OpenWrt ba
    2021-05-18