一、下载源码

  高通芯片代码下载地址:https://chipcode.qti.qualcomm.com/

  1. . *_amss_standard_oem : 高通私有源码(*为sdm845-la--0缩略,分支版本:CS2.16 0.0.137.1a
    2. *_cam_core : 所含camx部分代码
    . *_test_device : 高通编译 amss_standard_oem 的二进制文件
    . CAF : 高通对应的谷歌源码

二、编译源码:
 1.将高通私有部分源码拷贝到谷歌源码(caf)对应目录下:

  1. cp -rf amss_standard_oem/LINUX/android/vendor/qcom/proprietary caf/vendor/qcom/

2.拷贝camx部分代码到对应目录下:

  1. cp -rf cam_core/LINUX/android/vendor/qcom/proprietary/camx caf/vendor/qcom/proprietary/

3.进入caf目录,配置编译:

  1. source build/envsetup.sh
  2. lunch sdm845-userdebug
  3. make -j32

编译成功后会在caf/out/target/product/sdm845目录下生成相关img和其他文件,如图:
   

三、meta_build & QFIL刷机:
    1.参考test_device的contents.xml内容拷贝caf部分文件到test_device\LINUX\android目录下(如果嫌麻烦就整个out目录cp过来或者mv过来更快),

在contents.xml里搜索"LINUX"和"ignore"关键字,从搜索结果中获知需要将哪些文件从caf拷贝到test_device对应目录下,
       注意:<ignore="true"> 代表可忽略,不用拷贝:
     

  如下:

  
    2.拷贝caf的vendor到test_device\LINUX\android对应目录下;

  

3.进入sdm845-la-2-0_test_device/common/build目录下执行python build.py脚本,生成meta_build刷机文件:
        

4.将845mtp设备上的 S4-1 键拨到 on,重新上电进入EDL mode;

  或者通过指令进入9008(edl)模式:

  1. ()ADB模式:
  2. $ adb reboot edl
  3.  
  4. ()FASTBOOT模式:
  5. $ fastboot oem edl
  6. or
  7. $ fastboot reboot emergency

5.QFIL配置如下:
        
        线刷前,最好双清一下设备,adb reboot bootloader后,选择进入到recovery mode,再选择wipe data/factory reset,
        也可以线刷时选择Erase all Before Download

6.上电,并接数据线到电脑,QFIL工作可以检测到端口:

  

  如果无法自动检测到端口,点击 Select Port .

  主界面 选择Meta build,然后选择content xml,选择sdm845-la-2-0_test_device目录下的contents.xml即可,随即自动加载 Programmer Path、 RawProgram 和 Patch。

  选择所需 Product Flavors,也可通过点击 Browse 选择不同程序。

  

  Ps: 如果Download没有跳出rawprogram.xml、patch0.xml,可以试试点Tools->flat meta build, Flat Build Path选一个空文件夹。 OK之后,也是可以改成Flat build。

     在部分 META 编译版本中,系统要求用户更新 CDT 二进制文件,此时 CDT config 不明确,需要选择 CDT config,之后将 CDT 与此 META 编译版本一同下载。也可以将其留空, CDT 二进制文件不会更新

 7.选择Download Content,等待下载成功后, Status 字段显示 Download Succeed 和 Finish Download 消息:
  
 
 8.最后将S4-1键拨回,上电重启机台。
 

四、flat_build & QFIL刷机:

  1.flat build 需要将加载版本所需的全部文件导入同一文件夹,具体操作:Tools -> Flat Meta Build -> 选择Content XML(contents.xml) 和 Flat Build Path(自定义输出路径) -> 选择ufs或emmc -> OK 。

  2.参考之前方法连接好设备,在 Select Programmer 字段中,点击 Browse 并指向 flat build 路径,然后选择 FireHose
   Programmer.mbn 或 .elf 文件,例如 prog_<type>_firehose_<msm>.mbn。注:<type> – 可为 emmc 或 ufs <msm> – 对应于平台名称,例如

  3.点击 Load XML 加载配置文件

    a. 选择原始程序的 XML 文件: rawprogram_unsprase0.xml 并点击对话框中的 Open。
    b. 选择 patch0.xml 文件并点击 Open

   4. 点击 Download 开始下载。

 

五、UFS Provision 配置:

(1)Configuration -》FireHose Configuration:

   

(2)选择对应.elf 和.xml -》点击Provision ,成功则如Status框所示:

  

 -end-   

高通sdm845_la2.0源码编译及使用QFIL刷机的更多相关文章

  1. hadoop-1.2.0源码编译

    以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...

  2. hadoop-2.6.0源码编译问题汇总

    在上一篇文章中,介绍了hadoop-2.6.0源码编译的一般流程,因个人计算机环境的不同, 编译过程中难免会出现一些错误,下面是我编译过程中遇到的错误. 列举出来并附上我解决此错误的方法,希望对大家有 ...

  3. Spark1.0.0 源码编译和部署包生成

    问题导读:1.如何对Spark1.0.0源码编译?2.如何生成Spark1.0的部署包?3.如何获取包资源? Spark1.0.0的源码编译和部署包生成,其本质只有两种:Maven和SBT,只不过针对 ...

  4. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  5. Tomcat8.0源码编译

    最近打算开始研究一下Tomcat的工作原理,拜读一下源码.所以先从编译源码开始了.尽管网上有那么多的资料,但是总是觉得,自己研究一遍,写一遍,在动手做一遍能够让我们更加深入的了解.现在整个社会都流行着 ...

  6. 使用Maven将Hadoop2.2.0源码编译成Eclipse项目

    编译环境: OS:RHEL 6.3 x64 Maven:3.2.1 Eclipse:Juno SR2 Linux x64 libprotoc:2.5.0 JDK:1.7.0_51 x64 步骤: 1. ...

  7. hadoop-2.0.0-mr1-cdh4.2.0源码编译总结

    准备编译hadoop-2.0.0-mr1-cdh4.2.0的同学们要谨慎了.首先看一下这篇文章: Hadoop作业提交多种方案 http://www.blogjava.net/dragonHadoop ...

  8. Ubantu16.04进行Android 8.0源码编译

    参考这篇博客 经过测试,8.0源码下载及编译之后,占用100多G的硬盘空间,尽量给ubantu系统多留一些硬盘空间,如果后续需要在编译好的源码上进行开发,需要预留更多的控件,为了防止后续出现文件权限问 ...

  9. jmeter4.0 源码编译 二次开发

    准备: 1.jmeter4.0源码 - apache-jmeter-4.0_src.zip 2.IDE Eclipse - Oxygen.3 Release (4.7.3) 3.JDK - 1.8.0 ...

随机推荐

  1. 实现点击页面其他地方,隐藏div(原生和VUE)

    1原生方法 // html <div id="box" style="width:110px;height:110px;background-color:red&q ...

  2. dt转换List CovertListHelper

    public class CovertListHelper { //传递过来的类型必须与数据库类型保持一致问题 public List<T> convertToList<T>( ...

  3. HTTP之gRPC

    gRPC 官方文档 gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计. gRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多 ...

  4. memcached、cookie、session

    Memcached(一个高性能的分布式的内存对象缓存系统) 可用来分担数据库的压力.通过在内存里维护一个统一的巨大的hash表,memcached能存储各种各样的数据,包括图像.视频.文件.以及数据库 ...

  5. oracle数据库查看和解除死锁

    查看死锁: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_ ...

  6. react+es6+webpack环境搭建以及项目入门

    前言:拖了这么久,小菜鸟终于开始正式应用react,和es6来开发项目了.之前超喜欢同学的一个博客风格,这里贴一下地址:https://iwenku.net/,PC端是他很久之前做的,最近他重新做了一 ...

  7. 从Scratch到Python——Python生成二维码

    # Python利用pyqrcode模块生成二维码 import pyqrcode import sys number = pyqrcode.create('从Scratch到Python--Pyth ...

  8. python 数据分类赋值

    问题描述:在数据预处理时,往往需要对描述性数据进行分类赋值或对数据进行分级赋值. 首先,会想到用for循环,依次判断赋值: for n in range(len(data1)): print(n) i ...

  9. pip安装软件或模块时提示cannot import name 'main'

    旧的pip文件内容如下: from pip import main if __name__ == '__main__': sys.exit(main()) 修改后的文件内容: from pip imp ...

  10. 在html后面拼接字符串后页面的跳转

    我就举一个简单的栗子,主要目的是实现页面跳转时后面获取的参数 <div class="active"> 点击我可以跳转 </div> 样式就随便写一下 之后 ...