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

来源:互联网 发布:sql注入绕过安全狗 编辑:程序博客网 时间:2024/05/01 09:57

参考于这篇文章
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 := trueSDCLANG_PATH := prebuilts/clang/linux-x86/host/sdclang-3.8/binSDCLANG_LTO_DEFS := device/qcom/common/sdllvm-lto-defs.mkendif

更新:
在项目根目录执行

    $ repo selfupdate

0 0
原创粉丝点击