一、下載源碼
高通芯片代碼下載地址: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和其他文件,如圖:
三、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模式: $ adb reboot edl (2)FASTBOOT模式: $ fastboot oem edl or $ 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 二進制文件不會更新 。

四、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:
(2)選擇對應.elf 和.xml -》點擊Provision ,成功則如Status框所示:
-end-