前段时间看了老罗的Android硬件抽象层(HAL)概要介绍和学习计划后热血沸腾,不得不说老罗的逻辑很清晰。在此也推荐想入门Android系统的朋友阅读一下老罗的《Android 系统源代情景分析》一书。
但是也有一个问题。老罗的示例代码中在Android13中大概率是跑不起来的,因为我试着把老罗的驱动示例代码放到kernel中编译,都是编译不过的,毕竟老罗分析的Android版本还是很古老的。因此就有了模仿老罗的思路,在从kernel、hal、framework、app层在RK3588 Android13上面重新实现一遍的想法。因为Android13 Selinux、谷歌GKI和EDLA的限制,我相信是会遇到不少问题的,所以我也会在这里记录实现的过程中遇到的问题。
大概计划如下:
1、实现kernel 驱动层,并编写一个可验证的C应用来验证
2、学习并开发硬件抽象层模块
3、关闭Selinux后,自定义硬件访问服务
4、编写Android App验证结果
5、打开Selinux,解决遇到的问题
相信这个是一个大工程,在这个过程中也会很痛苦,需要学习大量的Android系统新知识。但是结果也一定是美好的,相信完成之后,对于Android系统会有一个新的认识。加油啦,少年~