在 Fedora / Ubuntu 下编译 LineageOS

LineageOS 官方用 Ubuntu 构建 LineageOS
这里整理一下如何用 Fedora 构建 LineageOS

      1. 安装依赖软件包

        Fedora

        网传需要安装这些软件包

        sudo dnf -y install zip curl gcc gcc-c++ flex bison gperf glibc-devel.{x86_64,i686} zlib-devel.{x86_64,i686} ncurses-devel.i686 libX11-devel.i686 libstdc++.i686 readline-devel.i686 libXrender.i686 libXrandr.i686 perl-Digest-MD5-File python-markdown mesa-libGL-devel.i686 git schedtool pngcrush ncurses-compat-libs java-1.8.0-openjdk-devel xz-lzma-compat

        但其实有多余的,精简后只需要这些

        sudo dnf -y install zip curl gcc gcc-c++ flex bison gperf glibc-devel.{x86_64,i686} zlib-devel ncurses-devel libX11-devel libstdc++ readline-devel libXrender.libXrandr perl-Digest-MD5-File python-markdown mesa-libGL-devel git schedtool pngcrush ncurses-compat-libs java-1.8.0-openjdk-devel xz-lzma-compat libstdc++.so.6

        Ubuntu

        sudo apt -y 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-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev
      2. 按照官方文档下载软件源码(以 sagit (mi 6) 为例)

        不区分 Ubuntu 与 Fedora

        1. 安装SDK

        sudo snf -y install adb

        2. 创建目录

        mkdir -p ~/bin
        mkdir -p ~/android/lineage

        3. 安装repo命令

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

        4. 将~/bin目录放在执行路径中

        # set PATH so it includes user's private bin if it exists
        if [ -d "$HOME/bin" ] ; then
            PATH="$HOME/bin:$PATH"
        fi

        5. 初始化LineageOS源代码库

        cd ~/android/lineage
        repo init -u https://github.com/LineageOS/android.git -b lineage-15.1

        6. 下载源代码 (完整源码大约35G)

        网速太慢?shadowsocks 网速优化点这里~

        repo sync

        添加 -c 要求 repo 只引入当前分支,而不是 GitHub 上可用的所有分支,减少同步源码的大小

        7. 准备设备特定的代码

        源代码下载后,确保你在源代码的根目录下(cd ~/android/lineage),然后键入:

        source build/envsetup.sh
        breakfast sagit # saigt 换成你自己编译的手机的代号

        这将下载您的设备的特定配置和内核
        这一步可能会因为没有vender文件报错,不用担心,下一步再拉取 vender 文件

        8.获取手机厂商vendor文件

        https://github.com/TheMuppets 上获取
        以 sagit 为例:

        vim ~/android/lineage/.repo/local_manifests/roomservice.xml

        添加

        <project name="TheMuppets/proprietary_vendor_xiaomi" path="vendor/xiaomi" remote="github"/>

        再次执行

        repo sync
      3. 开始编译

        Fedora

        1. 打开缓存加快构建

        export USE_CCACHE=1 # 并手动加入 ~/.bash_profile

        2. 指定缓存的最大磁盘空间量

        prebuilts/misc/darwin-x86/ccache/ccache -M 50G

        3. 启用ccache压缩(可选)

        export CCACHE_COMPRESS=1 # 并手动加入 ~/.bashrc

        4. 配置 Jack

        export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G" # 并手动加入 ~/.bash_profile

        5. 设置暂时去除所有本地化的设置

        export LC_ALL=C # 不可加入 ~/.bashrc

        Ubuntu

        1. 打开缓存加快构建

        export USE_CCACHE=1 # 并手动加入 ~/.bashrc

        2. 指定缓存的最大磁盘空间量

        ccache -M 50G

        3. 启用ccache压缩(可选)

        export CCACHE_COMPRESS=1 # 并手动加入 ~/.bashrc

        4. 配置 Jack

        export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G" # 并手动加入 ~/.bashrc

        5. 设置暂时去除所有本地化的设置

        export LC_ALL=C # 并手动加入 ~/.bashrc

         

      4. 开始构建

        不区分 Ubuntu 与 Fedora

        croot
        brunch sagit # saigt 换成你自己编译的手机的代号

         

      5. 安装编译

        不区分 Ubuntu 与 Fedora

        cd $OUT # 编译位置

        在那里,你会发现创建的所有文件。有两个文件你应该很感兴趣,分别是:

          1. recovery.img,这是LineageOS恢复图像。
          2. lineage-15.1-20180628-UNOFFICIAL-sagit.zip,这是LineageOS安装程序包。

        然后,把安装包刷进你的手机,建议使用 adb sideload 命令
        刷机老司机温馨提醒:别忘记备份哦

Good Lucky!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据