记录一下编译红米1s CW (armani)Lineage OS的过程

    xiaoxiao2021-03-25  108

    参考于这篇文章 https://www.isthnew.com/build-lineageos

    编译必备软件都已装好

    1.设置repo

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

    2.建立LineageOS目录并同步源码和依赖

    $ mkdir ~/LineageOS $ cd ~/LineageOS

    2(1.安装LineageOS的repo

    $ repo init -u git://github.com/LineageOS/android.git -b cm-14.1

    2(2.同步代码

    $ repo sync

    2(3.同步完成后执行(”device name”为你的机器型号)

    $ cd ~/LineageOS $ . build/envsetup.sh $ breakfast armani

    这步是同步你的手机相关代码,不过完成后需要加入你机器的厂商vendor文件,可以从手机上获取,也可以在这里找到https://github.com/TheMupp

    从手机导入专有文件:

    ./extract-files.sh

    如我是编译LG D802的ROM,就在上面的地址找到lge的vendor按照下面格式(name=”github路径” path=”本地路径”)把他加入 ~/LineageOS/.repo/local_manifests/roomservice.xml中

    <project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-14.1" />

    之后在repo sync就会把这些文件同步到vendor/lge文件夹中

    开始编译

    设定缓存加快编译

    $ export USE_CCACHE=1 $ ~/LineageOS/prebuilts/misc/linux-x86/ccache/ccache -M 50G

    开始编译

    $ . build/envsetup.sh $ brunch "device name"

    如果编译成功,Zip包可以在~/LineageOS/out/target/product/中找到;如果不成功,善用Google。

    1月26日更新(不可用):LineageOS默认取消了ROOT,如果希望编译的ROM自带ROOT,需要加入环境变量

    $ export WITH_SU=true

    2月15日更新:高通有一个叫 Snapdragon LLVM 的编译器,听说有些优化(反正高通就是喜欢发布点黄油玩),具体效果自己试,编译速度会变慢一些。 编译器在这里取得Snapdragon LLVM Compiler for Android,不支持MacOS。 解压其中的Extract Snapdragon-llvm-3.8.*-toolchain.tar.gz 将./toolchains/llvm-Snapdragon_LLVM_for_Android_3.8/prebuilt/linux-x86_64/中的文件复制到~/LineageOS/prebuilts/clang/linux-x86/host/sdclang-3.8/中。 在~/LineageOS/Device/<Your Device>/BoardConfig.mk中添加这几行

    ifneq ($(HOST_OS),darwin) SDCLANG := true SDCLANG_PATH := prebuilts/clang/linux-x86/host/sdclang-3.8/bin SDCLANG_LTO_DEFS := device/qcom/common/sdllvm-lto-defs.mk endif

    更新: 在项目根目录执行

    $ repo selfupdate
    转载请注明原文地址: https://ju.6miu.com/read-16086.html

    最新回复(0)