移植 AOSP 的必要条件都有哪些?

2017-03-27 05:30:15 +08:00
 phantastar
最近被华为 mate8 系统上的各种不便搞得头大,遂决定直接移植 aosp 到手机上。
看了 aosp 官网和 XDA university 的介绍,似乎都没有给出 Nexus 设备以外的详细移植介绍。
所以小弟在这里想麻烦各位 V 友给予一些提示,小弟初次接触 Android 移植,还请各位大大给予一条明路:
1.aosp 移植方面有没有详细教程,应该去哪里寻找?(这个有的话小弟就可以自己去琢磨了)
2.aosp 移植的必要前提有哪些?(官网的 preparation 步骤已经完成)
3.只有 Android6.0 的 kernel 源码,可以移植 Android7.1 吗?(华为官方只开放了 mate8 Android6.0 的 kernel 源代码,目前 mate8 最高可以升级至官方 Android7.0)
4.华为官方的 kernel 源码应该怎样利用以结合 aosp ?
5.如果 mate8 因 kernel 限制而只能移植 Android6.0 aosp ,那么 HTC one M7 这类官方停更机型为什么可以打破限制,出现第三方的最新版本系统 ROM ?
28088 次点击
所在节点    Android
109 条回复
kmahyyg
2017-03-27 22:35:00 +08:00
@Flygoat 能帮忙看下#58 吗?
kmahyyg
2017-03-27 22:35:42 +08:00
@phantastar repo sync 一般默认就行,偶尔需要--no-clone-bundle
phantastar
2017-03-28 06:29:12 +08:00
@Flygoat 嗯嗯十分感谢,我心里有点踏实了,后面如果遇到一些零碎问题麻烦还请您多指教😊
phantastar
2017-03-28 06:32:07 +08:00
@kmahyyg 嗯嗯谢谢, clone bundle 是做什么的我不知道,我最近一次 repo 加入了这个命令。另外大家可能还在睡觉,上面还有一位叫 besto 的先生也很专业,你可以看看他是否在线
besto
2017-03-28 10:29:54 +08:00
@phantastar Android 标准 hal 层必须是 C/C++,广义 hal 层可以用任何可以跑的语言,前提是搞的定权限问题。
besto
2017-03-28 10:33:22 +08:00
@phantastar AOSP 是开源的。我们的一切假定前提是,没有任何 vendor 的支持(有 datasheet 也没啥意义),那么只要保证 vendor 没有过度修改 AOSP 内和 HAL 对接的相关 code 。
fashioncj
2017-03-28 10:38:24 +08:00
@phantastar 脚本是自带的。。
脚本是 extract-files.sh ,应该在最开始的目录下。。
besto
2017-03-28 11:08:49 +08:00
@kmahyyg 关于#58 ,我没有做过 OTA 相关的东西,抱歉无法帮到你,试试用全镜像?
phantastar
2017-03-28 11:44:11 +08:00
@besto #85 嗯嗯感谢,权限问题如果解决起来比较难的话,我还是去熟悉一下 C/C++比较明智。
phantastar
2017-03-28 11:48:10 +08:00
@besto #86 怨我之前 AOSP 官网看得一知半解,请问您的意思是不是 AOSP 交给 vendor 后他们可以修改和 HAL 对接的相关 code 以适配自己的硬件?
kmahyyg
2017-03-28 11:49:17 +08:00
@besto 就是全镜像,只是是卡刷包。。。。。。。
phantastar
2017-03-28 11:53:41 +08:00
@fashioncj 十分感谢,我去找一找这个文件
phantastar
2017-03-28 11:58:49 +08:00
刚刚下单了 intel 540s M.2 SSD ,到货后即刻重装 Ubuntu !(我是英特尔 SSD 的死忠粉丝,之前买到一块服务器拆下来的 Intel S3500 480G ,一查居然还有 3 年质保😂)
besto
2017-03-28 11:59:44 +08:00
@kmahyyg 我这边 vendor 还是可以产生普通的 system.img(Android 7.0) 并没有在 AOSP 里做什么修改,只增加了一些编译脚本和 mk 。这块我不是非常了解,帮你问一下吧。
besto
2017-03-28 12:06:10 +08:00
@phantastar Android 的 code 相对混乱。 Android 其实分为 2 部分, AOSP/GMS 还有 partner 可以拿到的 developer branch 。不和 Google 签订协议,也可以拿到 AOSP 的 code ,你想改啥就该啥。如果和 Google 签订 AOSP 的协议,需要过 CTS 认证(理论上不通过 CTS 认证,并且是 Goolgle 认为你过了,不可以称自己为 Android 设备),严格意义上,不可以改任何 google 的 code ,即使是 BUG ,但厂家仍旧可以通过在编译前打 patch 。再进一步可以签订 GMS 的协议,附加在 AOSP 的协议之上,这个包主要会有 Google Play 等那一堆东西,同时需要过 GTS 的测试。
besto
2017-03-28 12:14:41 +08:00
@kmahyyg 做 OTA 的同事告诉我,默认就有 system.img 那个 system.new.dat 是 block ota 的东西,要么你再看看?
phantastar
2017-03-28 14:50:10 +08:00
@besto #95 嗯嗯感谢。我有一问题不解,根据上面诸多内容的汇总,我现在知道移植 AOSP 需要做至少两个工作: 1.提取 vendor 目录中的驱动库。 2.重写 HAL 层。那问题来了,重写 HAL 层所需的软件工具是什么?麒麟官方的 SDK 吗?
phantastar
2017-03-28 15:03:23 +08:00
@besto 另外: 1.华为官方开源的安卓 6.0kernel 是不是需要改写(需要什么样的工具😨)?因为我想适配安卓 7.1 。
2.移植驱动的话,又该用什么工具呢?
besto
2017-03-28 15:17:58 +08:00
@phantastar 说句不太好听的啊,但凡需要重写 HAL 的,绝对搞不定。所以,官方支持到哪个版本,就扒哪个版本的库,可以碰碰运气能不能用。
kmahyyg
2017-03-28 16:29:49 +08:00
@besto 感谢,我自己试试。

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

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

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

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

© 2021 V2EX