进入https://www.codeaurora.org/xwiki/bin/QAEP/release
并把此表格复制粘贴到excel中,并进行必要的排序和筛选
数据页面,按排序功能,主关键字Chipset,次关键字Android Version
为方便查看,可打开筛选功能
把上面的表格进行归纳终结,对常用或比较新的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
记得连接国内站点(用国内dns或改hosts都行),不然同步一天都同步不下来
git clone git://codeaurora.org/kernel/msm
进入刚同步好的文件夹(kernel_msm),打开终端
git branch -a > ../msm_branch_all.txt
把所有分支号都列出来,新建并存到上一级目录的msm_branch_all.txt
打开msm_branch_all.txt,可以找到remotes/origin/LNX.LA.3.5.1_RB1.1
git checkout -t remotes/origin/LNX.LA.3.5.1_RB1.1
在终端中执行gitk
往下找到任意黄色标签
从这里可以知道,这个分支对应的tag命名规律是LNX.LA.3.5.1-xxxxx-8x74.0
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项了。
先把上面13项的高通内核代码checkout出来
每checkout一次,就新建一个文件夹,并把内核代码复制进去
git checkout LNX.LA.3.5.1-02010-8x74.0
……
git checkout LNX.LA.3.5.1-05910-8x74.0
官方内核当然要先解压并放好,然后打开Beyond Compare
逐次把上面checkout出来的13个高通内核与官方内核代码进行对比,记得对比规则勾选 基于规则比较
每次对比完成后,打开Beyond Compare菜单的Session->Folder Compare Info
如上图所示,记下有多少个文件相同
然后建立一个表格,每个tag有多少相似文件,找到相似文件最多者,即是精确的tag版本
在本例里,精确的tag即为LNX.LA.3.5.1-02410-8x74.0
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.还可能存在更加方便快捷的办法,请读者自行总结吧。