Oneplus5 Lineage os 编译

环境:

ubtuntu 16.04   内存:4G  SWAP:9G

因为我的内存太小,所以设置了swap,不然编译不通过。会报:inja: fatal: fork: Cannot allocate memory

 

 

下载依赖工具:

sudo apt-get update

sudo apt-get install bc bison build-essential curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32z1-dev libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev openjdk-8-jdk lib32readline6-dev

 

设置git信息

git config --global user.name "hlzds"

git config --global user.email nideyouxiao@163.com

 

配置repo环境:

mkdir ~/bin

PATH=~/bin:$PATH

cd bin

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo

chmod +x repo

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

 

配置Android 源码 repo 环境

cd ~/bin

mkdir LineageOS

cd LineageOS

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git -b cm-14.1

 

修改  manifest.xml 为清华镜像信息

注:下面 cm-14.1  与上面设置 repo init 要一样

gedit ~/bin/ LineageOS/.repo/manifest.xml


<remote name="github"

fetch=".."

review="review.lineageos.org" />

替换为

<remote name="github"

fetch="https://github.com/" />

<remote name="lineage"

 

fetch="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/"

review="review.lineageos.org" />


<remote name="aosp"

fetch="https://android.googlesource.com"

改成

<remote name="aosp"

fetch="https://aosp.tuna.tsinghua.edu.cn"


<default revision="refs/heads/cm-14.1"

remote="github"

改成

<default revision="refs/heads/cm-14.1"

remote="lineage"


开始下载源码

repo sync --no-clone-bundle

 

获取内核和驱动

oneplus 5

内核驱动: CPU:高通 骁龙835(MSM8998)

手机代号: cheeseburger


设备驱动相关代码

https://github.com/TheMuppets

在GitHub找到自己手机对应的项目,并找到 14.1 的分支,我们编译的是 14.1 版本

我的手机就是这个

https://github.com/TheMuppets/proprietary_vendor_oneplus/tree/cm-14.1

 

源代码相关

https://github.com/LineageOS

oneplus 对应 :

https://github.com/LineageOS/android_device_oneplus_cheeseburger

https://github.com/LineageOS/android_kernel_oneplus_msm8994

GitHub下载单独文件夹 https://minhaskamal.github.io/DownGit/#/home

 

下载好了,分别是下面3个文件

文件 proprietary_vendor_oneplus-cm-14.1.zip 放在 ~bin/LineageOS/vendor/oneplus/cheeseburger 并解压

文件 android_kernel_oneplus_msm8998-cm-14.1.zip 放在 ~/bin/LineageOS/kernel/oneplus/msm8998 并解压

文件 android_device_oneplus_cheeseburger-cm-14.1.zip 放在 ~/bin/LineageOS/device/oneplus/cheeseburger并解压

 

开始编译

cd ~/bin/LineageOS

. build/envsetup.sh

export WITH_SU=true    #自带root

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8G"    #设置编译内存

breakfast cheeseburger #选择设备内核

export USE_CCACHE=1 #使用缓存

export CCACHE_DIR=/media/anemone/anemone_ssk/ccache #缓存地址

./prebuilts/misc/linux-x86/ccache/ccache  -M 100G    #使用100G作为缓存空间

./prebuilts/sdk/tools/jack-admin start-server #这句不执行的话可能会报下面的错误

brunch cheeseburger #启动编译


下次编译可以清空,再编译

make clobber #清理


 

出错解决

IBRARIES/libprotobuf-java-nano_intermediates/jack-rsc.java-source-list )"

Communication error with Jack server (56). Try 'jack-diagnose'

ninja: build stopped: subcommand failed.

build/core/ninja.mk:151: recipe for target 'ninja_wrapper' failed

make: *** [ninja_wrapper] Error 1

make: Leaving directory '/home/hlzds/bin/LineageOS'

 

#### make failed to build some targets (51:51 (mm:ss)) ####

 

========================================================================

1. 切换到工程根目录,检查 jack-server 是否开启 -------------   

./prebuilts/sdk/tools/jack-admin list-server

 

2. 检查宿主目录下的 .jack-server 文件夹以及文件jack-setting  ------------  

ls  -al

如果两文件的所属组与所有者不是编译工程的用户,直接rm 删除

到prebuilts/sdk/tools 目录下执行一下这个命令:

./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar

jack-launcher.jar,jack-server-4.8.ALPHA.jar 这两个文件的名字视 prebuilts/sdk/tools 目录下的文件名而定。

 

3. 执行完毕后开启服务  prebuilts/sdk/tools/jack-admin start-server,执行成功就ok

Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/xxx(用户名)/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值