当我们说「适配」的时候,我们做了什么

当我们说「适配」的时候,我们做了什么
0

#22

谢谢每一位开发者的努力。


#23

你的通知栏有没有 屏蔽按键的按钮 2122 的更新居然没有了


#24

喵喵喵……恰好我这天……刷了别的ROM玩去了……要不大佬问问别人 :sweat_smile:


#25

我刷了以下最新的版本,是有的。


#26

找到问题了 重新刷21号的 包可以解决 魔趣ota的问题


#27

嗯,好的


#28

哈哈哈,您说出真相了(手动滑稽)


#29

莫非不是?比如一些32位的老设备,且不说能不能找个大点的分区改成vendor来用,就算真的能搞出“土制PT”,那谷歌也早就不提供这些老东西的Android更新了啊哈哈 :joy:


另外,其实我年龄未必比你大,而且广东话里是没有“您”这个发音的,没必要“您”了啦哈哈,听着怪怪的 :rofl:


#30

支持,牛逼666


#31

dalao:kissing_heart:


#32

很深奥,很复杂,很辛苦感谢有你们


#33

厉害厉害,感觉好麻烦 好牛逼


#34

很感谢像XiNGRZ以及和您一样的开发者们,是你们的辛勤工作让我们用上了如此优秀的第三方ROM :slight_smile:
在读完这篇文章后,结合我之前的探索,我想提几个问题:

  1. 请问,适配的难点是在device-tree的编写以及hal的适配上吗?那么能不能用一种叫“shim”的东西来解决hal的适配问题呢?(这里是有关shim的一篇文章:https://toby.moe/android-shim/ )

  2. 请问,对旧机型(厂家不再提供升级包)的更高版本的安卓适配工作如何开展?

请各路大神不吝赐教!谢谢!!


#35

我所说适配 HAL 的难点主要就是写 shim。

shim 的意思是,先猜测分析出原厂 HAL 的工作方式(在开源 HAL 的基础上魔改了什么东西),然后想办法通过一些补充代码让我的开源 HAL 也可以像它原本一样正常工作。这个过程就是俗称的 shim。

  1. 先把 Linux 内核升上去(或者打补丁让它满足运行新的安卓系统的最低要求,比如上 8.0 需要增加 hwbinder 和 vndbinder 的支持)
  2. 绝大部分闭源库可以使用同 SoC 的其它机型提取(比如坚果 Pro 2 的 8.1 大部分闭源库提取自红米 Note 5)
  3. 小部分和这个机型密切相关的闭源库继续用旧版(比如相机部分),然后通过 shim 让它兼容新的 Android 调用方式。

参考(以坚果 Pro 2 的魔趣 8.1 为例,这个机型原厂只有 7.1.1):


#36

谢谢您的耐心解答!烦请您再回答一个问题:

假如要做到对ROM适配驾轻就熟,您觉得需要掌握的技能有哪些?


#37

新人来报道,学习移植ROM.


#38

适配和移植是两回事 :wink: