很多公司开源的安卓内核都是一个压缩包,不带任何 commit,请教下怎么将 commit 给补回来

2017-06-30 00:23:35 +08:00
 tempdban
我遇到的问题是:
我找到一个适合安卓 6.0 的高通内核,但是是个压缩包不带任何 commit。
现在想通过高通的 git 仓库将 commit 尽最大可能补回来。
能长期指导的话,我可以适当的交学费
9058 次点击
所在节点    Android
18 条回复
kmahyyg
2017-06-30 00:49:14 +08:00
战略性 mark
geelaw
2017-06-30 01:00:29 +08:00
已经删掉的东西弄不回来,答案是:

1. clone 高通的仓库
2. 删除内容
3. 解压缩
4. git add .
5. git commit -m '变成最终版本'
cxbig
2017-06-30 01:01:20 +08:00
这个压缩包如果不带.git 目录的话,是找不回来的。
你倒不如 clone 那个 repo,再把这个压缩包覆盖进去看看有什么不同。如果差别不大,就在基础上接着走。
killeder
2017-06-30 08:14:21 +08:00
https://www.codeaurora.org 这上面高通的内核都有
tempdban
2017-06-30 08:29:19 +08:00
@geelaw
@cxbig
@killeder
关键的问题是我还不知道原厂是基于高通哪个 TAG 搞得,我曾一度想写个脚本暴力 diff 看哪个差异最小。
tempdban
2017-06-30 08:30:57 +08:00
@geelaw 这样操作的话,我在后续合并其他 commit 的时候,还会有冲突。比如说合并 7.12 的相关 commit
Ariver
2017-06-30 09:19:12 +08:00
为啥要暴力 diff? beyond compare 值得拥有。
tempdban
2017-06-30 09:21:41 +08:00
@Ariver 因为 TAG 很多,我要写到脚本里。并且我只是要统计差异的数量 git diff 足够好用了
yinheli
2017-06-30 10:07:45 +08:00
clone 原始仓库,依次 checkout 版本,和没有 commit 的代码对比,如果每个文件都一样(比如 hash 都是一样的)说明应该就是那个 commit 导出的。

以上,最好写点脚本检测。
tempdban
2017-06-30 10:31:16 +08:00
@yinheli 果然只能这样了么
coolypf
2017-06-30 12:35:23 +08:00
这样已经很好了。
coolypf
2017-06-30 12:36:21 +08:00
小米开源的 Linux 内核就是这样的:
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/mido-m-oss
zqcolor
2017-06-30 13:31:26 +08:00
要看.repo 文件夹里面的 manifest.xml, 然后可以找到 https://www.codeaurora.org 上的源码
tempdban
2017-06-30 14:17:10 +08:00
@coolypf 不,你再看 zte。
tempdban
2017-06-30 14:17:47 +08:00
@zqcolor 只有内核,没有安卓工程
liufish
2017-07-01 11:02:31 +08:00
拿到了高通内核代码,感觉挺厉害的。
tempdban
2017-07-01 13:34:28 +08:00
@liufish 高通的 kernel 部分是全开源的
kneep
2017-07-01 16:32:16 +08:00
git 的数据库没给你,说明这些公司开源可能是迫于合规的要求,并不是真的想当作一个开源项目来运营

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372051

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX