一、下载源码

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

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

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

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

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

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

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

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

    编译成功后会在caf/out/target/product/sdm845目录下生成相关img和其他文件,如图:
    高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

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

       在contents.xml里搜索”LINUX”和”ignore”关键字,从搜索结果中获知需要将哪些文件从caf拷贝到test_device对应目录下,
       注意:<ignore=”true”> 代表可忽略,不用拷贝:
      高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

  如下:

  高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园
    2.拷贝caf的vendor到test_deviceLINUXandroid对应目录下;    

  高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

    3.进入sdm845-la-2-0_test_device/common/build目录下执行python build.py脚本,生成meta_build刷机文件:
         高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

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

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

(1)ADB模式:
    $ adb reboot edl

(2)FASTBOOT模式:
    $ fastboot oem edl
    or
    $ fastboot reboot emergency

    5.QFIL配置如下:
        高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园
        线刷前,最好双清一下设备,adb reboot bootloader后,选择进入到recovery mode,再选择wipe data/factory reset,
        也可以线刷时选择Erase all Before Download

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

  高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

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

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

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


  高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

  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 消息:

  高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园
 
 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> – 对应于平台名称,例如 8084

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

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

    4. 点击 Download 开始下载。

 

五、UFS Provision 配置:

 (1)Configuration -》FireHose Configuration:

   高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

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

  高通sdm845_la2.0源码编译及使用QFIL刷机-冯金伟博客园

 -end-