高通平台Tag精确寻找进阶教程

一、 Release Tag列表

进入https://www.codeaurora.org/xwiki/bin/QAEP/release
并把此表格复制粘贴到excel中,并进行必要的排序和筛选
高通平台Tag精确寻找进阶教程_第1张图片
数据页面,按排序功能,主关键字Chipset,次关键字Android Version
为方便查看,可打开筛选功能

二、对Tag规律进行总结

把上面的表格进行归纳终结,对常用或比较新的cpu的tag规律列出来,剩余没有列出的请读者自行总结。

Chipset Manifest Android Version
msm8994 LNX.LA.0.0-*-8x94.0.xml 4.4.2
msm8994 LA.BF64.0.2-*-8x94.0.xml 4.4.4
msm8994 LNX.LA.0.0-*-8x94.0.xml 4.4.4
msm8994 LA.BF64.1.x-*-8x94.0.xml 5.x
msm8992 LA.BF64.1.x-*-8x92.0.xml 5.x
msm8974 M8974AAAAANLYA*.xml 4.1.1/4.2.2
msm8974 LNX.LA.3.x-*-8x74.0.xml 4.3/4.4
msm8974 LA.BF.1.x-*-8x74.0.xml 5.x
msm8960 M8960AAAAANLYA*.xml 4.0.4/4.1.1/4.1.2/4.2.0/4.2.1/4.2.2/4.3.0
msm8960 LNX.LA.2.7.x-*-8960.0.xml 4.4.0/4.4.1/4.4.2/4.4.3
msm8960 LA.AF.1.x-*-8064.0.xml 5.x
msm8939 LNX.LA.x.x-*-8939.0.xml 4.4.2/4.4.3/4.4.4
msm8930 M8930AAAAANLYA*.xml 4.0.4/4.1.1/4.1.2/4.2/4.2.1/4.2.2/4.3.0
msm8930 LNX.LA.2.7-*-8930.0.xml 4.4/4.4.1/4.4.2/4.4.3/4.4.4
msm8926 LNX.LA.3.x-*-8x26.0.xml 4.3
msm8916 LNX.LA.3.7.x-*-8x16.0.xml 4.4.2/4.4.3
msm8916_32 LNX.LA.3.7.x-*-8x16.0.xml 4.4.2/4.4.3/4.4.4
msm8916_32 LA.BR64.1.x-*-8x16.0.xml 5.x
msm8916_64 LA.BR.1.x-*-8x16.0.xml 5.x
msm8916_64 LA.BR64.x-*-8x16.0.xml 5.x
apq8064 A8064AAAAANLYA*.xml 4.0.4/4.1.1/4.1.2/4.2.0/4.2.1/4.2.24.3.0
apq8064 LNX.LA.2.7.x-*-8064.0.xml 4.4.0/4.4.1/4.4.2/4.4.3/4.4.4
apq8084 A8084AAAAANLYA*.xml 4.3/4.4/4.4.2
apq8084 LNX.LA.3.6.x-*-8084.0.xml 4.4.2
apq8084 LNX.LA.3.6.x-*-8084.0.xml 4.4.3/4.4.4
apq8084 LA.BF.2.1-*-8084.0.xml 5.x

三、搜索关键字

参考上表,在搜索关键字时更有针对性
举例
1.假设手机是msm8974平台,而官方rom为4.2
grep –r “M8974AAAAA”
2.假设手机是msm8974平台,官方rom为4.4.2
grep –r “LNX.LA”
3.前面提到的通用的关键字也可以尝试
grep –r “AU_LINUX_ANDROID”
4.如果都找不到,那么就用这个:
grep –r “Branch”

结果:
1.可以找到精确的tag,当然皆大欢喜
2.只找到分支号信息,例如:kk_2.7_rb1.28或LNX.LA.3.5.1_RB1.1
3.Branch信息是空的,完全找不到任何信息

四、如果已知分支号

就以泛泰A910来举例(msm8974平台),上面的搜索关键字只能找到LNX.LA.3.5.1_RB1.1分支号,并且已知官方rom为4.4.2 KVT49L

1.同步高通代码仓库

记得连接国内站点(用国内dns或改hosts都行),不然同步一天都同步不下来
git clone git://codeaurora.org/kernel/msm
进入刚同步好的文件夹(kernel_msm),打开终端
git branch -a > ../msm_branch_all.txt
把所有分支号都列出来,新建并存到上一级目录的msm_branch_all.txt

2.寻找内核仓库对应的分支号

打开msm_branch_all.txt,可以找到remotes/origin/LNX.LA.3.5.1_RB1.1

3.切换到需要的分支

git checkout -t remotes/origin/LNX.LA.3.5.1_RB1.1

4.查看此分支tag命名规律

在终端中执行gitk
往下找到任意黄色标签
高通平台Tag精确寻找进阶教程_第2张图片
从这里可以知道,这个分支对应的tag命名规律是LNX.LA.3.5.1-xxxxx-8x74.0

5. 同步manifests并列出所有近似名tag

repo init -u git://codeaurora.org/platform/manifest.git -b release –repo-url=git://codeaurora.org/tools/repo.git –repo-branch=caf-stable

进入manifests打开终端
find . -name "LNX.LA.3.5.1-*-8x74.0*"
./LNX.LA.3.5.1-06310-8x74.0.xml
./LNX.LA.3.5.1-00310-8x74.0.xml
./LNX.LA.3.5.1-09210-8x74.0.xml
./LNX.LA.3.5.1-06510-8x74.0.xml
./LNX.LA.3.5.1-01710-8x74.0.xml
./LNX.LA.3.5.1-05210-8x74.0.xml
./LNX.LA.3.5.1-07410-8x74.0.xml
./LNX.LA.3.5.1-07510-8x74.0.xml
./LNX.LA.3.5.1-03910-8x74.0.xml
./LNX.LA.3.5.1-05110-8x74.0.xml
./LNX.LA.3.5.1-05910-8x74.0.xml
./LNX.LA.3.5.1-07910-8x74.0.xml
./LNX.LA.3.5.1-09110-8x74.0.xml
./LNX.LA.3.5.1-06910-8x74.0.xml
./LNX.LA.3.5.1-05510-8x74.0.xml
./LNX.LA.3.5.1-03010-8x74.0.xml
./LNX.LA.3.5.1-02410-8x74.0.xml
./LNX.LA.3.5.1-09310-8x74.0.xml
./LNX.LA.3.5.1-05710-8x74.0.xml
./LNX.LA.3.5.1-02010-8x74.0.xml
./LNX.LA.3.5.1-09010-8x74.0.xml
./LNX.LA.3.5.1-07710-8x74.0.xml
./LNX.LA.3.5.1-08810-8x74.0.xml
./LNX.LA.3.5.1-00910-8x74.0.xml
./LNX.LA.3.5.1-01110-8x74.0.xml
./LNX.LA.3.5.1-04510-8x74.0.xml
./LNX.LA.3.5.1-06810-8x74.0.xml
./LNX.LA.3.5.1-06110-8x74.0.xml
./LNX.LA.3.5.1-06210-8x74.0.xml
./LNX.LA.3.5.1-03310-8x74.0.xml
./LNX.LA.3.5.1-02710-8x74.0.xml
./LNX.LA.3.5.1-04210-8x74.0.xml
./LNX.LA.3.5.1-07010-8x74.0.xml
./LNX.LA.3.5.1-01510-8x74.0.xml
./LNX.LA.3.5.1-08610-8x74.0.xml

再通过review页面来查看对应的版本,并把范围缩小到4.4.2 KVT49L(从官方rom得知的版本号)
https://www.codeaurora.org/cgit/quic/la/platform/build/tag/?id=

tag版本 android版本
LNX.LA.3.5.1-02010-8x74.0 KVT49L
LNX.LA.3.5.1-02410-8x74.0 KVT49L
LNX.LA.3.5.1-02710-8x74.0 KVT49L
LNX.LA.3.5.1-03010-8x74.0 KVT49L
LNX.LA.3.5.1-03310-8x74.0 KVT49L
LNX.LA.3.5.1-03910-8x74.0 KVT49L
LNX.LA.3.5.1-04210-8x74.0 KVT49L
LNX.LA.3.5.1-04510-8x74.0 KVT49L
LNX.LA.3.5.1-05110-8x74.0 KVT49L
LNX.LA.3.5.1-05210-8x74.0 KVT49L
LNX.LA.3.5.1-05510-8x74.0 KVT49L
LNX.LA.3.5.1-05710-8x74.0 KVT49L
LNX.LA.3.5.1-05910-8x74.0 KVT49L

这下就只剩下13项了。

6.checkout高通内核代码

先把上面13项的高通内核代码checkout出来
每checkout一次,就新建一个文件夹,并把内核代码复制进去
git checkout LNX.LA.3.5.1-02010-8x74.0
……
git checkout LNX.LA.3.5.1-05910-8x74.0

7. 对比官方内核代码与高通内核代码

官方内核当然要先解压并放好,然后打开Beyond Compare
逐次把上面checkout出来的13个高通内核与官方内核代码进行对比,记得对比规则勾选 基于规则比较
高通平台Tag精确寻找进阶教程_第3张图片
每次对比完成后,打开Beyond Compare菜单的Session->Folder Compare Info
如上图所示,记下有多少个文件相同

然后建立一个表格,每个tag有多少相似文件,找到相似文件最多者,即是精确的tag版本
高通平台Tag精确寻找进阶教程_第4张图片
在本例里,精确的tag即为LNX.LA.3.5.1-02410-8x74.0

五、官方rom完全无法找到任何信息

1.如果碰巧某些机型只有一个分支
例如apq8064平台,官方rom为4.4.2
从步骤一的表格可以查得LNX.LA.2.7-*-8064.0,就只有这种情况,那么就可以直接开始源代码对比了。

2.如果不幸分支非常多,那么只能把所有分支列出来,按照上面的办法,每个分支都进行对比

3.通过时间信息辅助判断,release tag页面第一列即为发布日期,官方初始内核会比高通tag日期晚,例如官方内核发布日期是2014.6.1,那么对应的高通内核一定是2014.6以前的,那么2014.7或以后的高通内核就可以排除掉了。

4.还可能存在更加方便快捷的办法,请读者自行总结吧。

你可能感兴趣的:(android)