如何编译lineage不支持的机型

如题所述

首先整理相应的机型MK文件

device文件,android_device_$your-device-name
kernel文件,android_kernel_$your-device-name
vendor文件,android_vendor_$your-device-name

收集或者制作或者修改,完成,你的机型文件后


同步下载lineage的源码:

清华镜像源,打开看教程(同步出错有问题就百度,一般都有答案,系统最好在Linux和他的各种分支中选择>经常用Windows-觉得Mac很反人类-不过开发商好像很喜欢-可能是苹果给出的条件太好-没人能拒绝我觉得Ubuntu不错,也很喜欢Deepin-适合新手-国内维护挺不错的



然后整理MK文件:

也可以点这里,去官网找一下相关机型或品牌文件作为参考

比如我的手机是ZUK EDGE

## ZUK EDGE
# 我的机型代号-z2x,这个是开发用的代号;
# 我的内部机型-z2151,这个是从官方下载开源部分需要的型号;
# ZUK特殊部分其他机型不一定会有一般就是三个:device、kernel、vendor(非必有)
# < 类型 name="仓库名" path="文件路径" />
< android
    name="lineage"
    path="~/bin/lineage" />
< device 
    name="android_device_zuk_z2"
    path="$android/device/zuk/z2x" />
< device 
    name="android_device_zuk_msm8996-common"
    path="$android/device/zuk/msm8996-common" /> #ZUK特殊部分
< kernel
    name="android_kernel_zuk_msm8996"
    path="$android/kernel/zuk/msm8996" /> #这个命名比较特别,打包开发的

<!-- 附加部分,vendor一般有生成脚本或者需要额外编写 -->
< vendor
    name="android_vendor_z2x"
    path="$android/vendor/zuk/z2x" />
< vendor
    name="android_vendor_msm8996-common"
    path="$android/vendor/zuk/msm8996-common" /> #ZUK特殊部分

#end


######错误部分,可以查阅,帮助理解,最好跳过,跳过

把上面的文件解包放置到相应文件夹下

device文件,android_device_$your-device-name
kernel文件,android_kernel_$your-device-name
vendor文件,android_vendor_$your-device-name

"_"对应是一个文件夹分层,比如device就是在“android源码“文件夹下(看你怎么起名字,就是清华网站中提示你的“WORKING_DIRECTORY”文件夹,可以是‘android’、‘lineage’等等)的device文件夹下,你的机子品牌文件夹下,你的机型里(比如我的手机是ZUK EDGE-我是穷逼,没钱换机,我的相应机型代号就是z2x-根据代号搞开发,内部机型z2151-根据内部型号找官方开源代码,以下示例)

示例:

device:android_device_zuk_z2x
    仓库文件就在:~/bin/lineageOS/device/zuk/z2x
kernel:android_kernel_zuk_msm8996    #为什么这个忽然变成msm8996了呢,哈哈|
    仓库文件就在:~/bin/lineageOS/kernel/zuk/msm8996    #因为机型特别
vendor:android_vendor_zuk_z2x    #一般是不提供这个仓库部分的,
                                 #会有比如“extract-files.sh”等脚本
                                 #需要连接你的手机,生成这些文件

以上引号部分是由百度自动保存编写错误部分

最后是编译:

source build/envsetup.sh
lunch lineage_z2x-userdebug    #这条命令去查看机型文件夹下的 lineage_*.mk文件,把z2x换成你的
cd device/zuk/z2x #这条应该是你的机型文件夹,和下一条命令看情况找找你的vendor扩展脚本
./extract-files.sh #这个看情况,找找你的脚本
croot #返回lineage根目录
make -j8 #开始编译ROM,后面的 -j* 是线程,看你的CPU而定
    #看输出log,编译完成ROM在out文件夹下

这样就完成了:
看似简单,实则简单,但是肯定会出错,因为你是在学习,好好学,好好问问,学会用百度,别跟个愣头B一样,张嘴就是:我是小白,这个怎么弄,我不会啊,你教教我呗,这个什么意思;崽种不会自己学

# 好了,结束,加油

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-14
一、准备
  需要用到的东西我已经帮大家全部准备好了,有我自己亲手制作的第三方库 ,在源码的根目录下建立个3rdparty文件夹,把文件解压进去就可以了。
  解压好之后,要将3rdparty/bin文件夹添加到系统目录,这样才能让程序找到这些第三方库的dll。
  然后是Visual Studio 2012,因为我的第三方库都是VS2012环境下编译的,所以用其他版本VS的请自行编译。
  最后是CUDA和MKL了,MKL是可选的,大家可以去Intel官方申请,如果不用cpu模式的话其实也无所谓,在第三方库包中我还提供了openblas的库文件。
二、编译
  编译非常简单,分为以下几步:
  1、双击两个c++文件,和caffe_pb2.py这个python使用的文件。
  2、打开./build/MSVC/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,可能你的CUDA版本和我的不一致,我的是CUDA 6.5版,这时就要用记事本打开./build/MSVC/MainBuilder.vcxproj,搜索CUDA 6.5,把这个6.5换成你自己的CUDA版本,就可以正常打开了。
  3、右键点击左边的MainCaller项目,选择属性,在C/C++选项卡中,把附加包含目录中的cuda include目录改成你自己的;在链接器选项卡中,,把附加库目录中的cuda library目录也改成你自己的。
  4、点上边工具栏中的绿色三角编译吧。
  
  如果要用matlab wrapper来提取特征、观察训练好的权重的话呢,只需要把matcaffe项目里面的cuda、matlab目录修改成你自己的,然后编译,你就能从matlab/caffe文件夹里面找到一个叫caffe.mexw64的文件啦。
  python的wrapper类似,把pycaffe项目里的目录改成你自己的,就能在python/caffe文件夹中生成_caffe.pyd的python dll文件。
相似回答