jjpprrrr 最近的时间轴更新
jjpprrrr
ONLINE

jjpprrrr

V2EX 第 346487 号会员,加入于 2018-09-02 16:28:07 +08:00
今日活跃度排名 975
jjpprrrr 最近回复了
这个标题其实不太准确,GKI 说实话只是强制 vendor 把所有改动都模块化,使用谷歌弄出来的统一的 KMI (Kernel Module Interface) 接口挂载。

KMI 的一个问题就是,为了保证 vendor 的内核模块能正常挂载,KMI 必须保持稳定。这就导致了一个问题,linux 主线内核是没有维持 KMI 不变这个要求的,所以在谷歌的 GKI 内核里,一些情况下主线和上游的补丁如果不小心造成了 KMI 的改变,反而不能直接合并,必须用别的方式移植或者魔改,这个问题谷歌在去年的 LPC 会议上也提到了。从这个层面来说,GKI 反而离上游更远了,因为 vendor 是面对 KMI 开发,而不是想办法把自己的改动直接合并进上游主线。

对于 vendor 来说,一切开发的目的都是为了发布和更新产品,所以只要谷歌不强制 vendor 去把改动合并入上游 linux 内核,vendor 自己是没有动力去做这件事的。的确,GKI 从某种意义上,至少避免了很多 vendor 魔改通用的内核部分代码,让大家都用同一套 GKI 的东西。但是,我个人觉得这种事情意义有限。GKI 其实是 Treble 的一种延申,Treble 把 system 和 vendor 分离,搞出了 GSI (Generic System Image),并且通过 VTS/CTS 之类的让 vendor 的东西“理论上”能启动 GSI 。但是从 Oreo 到现在三四年过去了,也没有哪个 vendor 会真正在发布的产品内用 GSI,我记得之前小米的工程师也抱怨过,升级大版本,说好的 Treble 的一些接口不变,该重新写代码还是要重写写。只要谷歌还在对 vendor 做类似的妥协,GKI 内核几年后也会是这个样子。
@acess #7 小米 2018 年的 Mix2s 就在用超声波的距离传感器了,我之前看过一眼 Mix 和 Mix2,也是超声波的,而且实现的更简单。不清楚新设备上超声是什么情况,我维护的 PE 在 Mix2s 上防误触是可以用的呀,亮屏前同时检查超声距离传感器和光线传感器,如果光线暗(在包里或者兜里)并且距离近就阻止触控。
85 天前
回复了 liang00 创建的主题 Android 安卓 11 应用卡死问题
Skia vulkan 的问题,去 build.prop 里把 debug.hwui.renderer 那一条删掉
进 Magisk Manager 开启 MagiskHide
122 天前
回复了 tediorelee 创建的主题 问与答 好哥哥们推荐一个自建音乐库的方案?
Navidrome + 任何 Subsonic 客户端
大多数 linux 发行版都是用 logrotate 解决这个问题的吧,而且对常见的应用也设置了一些默认配置,可以参考着写一个配置
132 天前
回复了 zictos 创建的主题 Android Android 如何限制指定 app 的 cpu 使用率或频率?
@YumeMichi #11 😆
132 天前
回复了 ottawa8821 创建的主题 Apple iPhone 为什么不能直接投屏到 MacBook 上?
Airplay to Mac,还真发布了哈哈
138 天前
回复了 zictos 创建的主题 Android Android 如何限制指定 app 的 cpu 使用率或频率?
@zictos #8 你说的这些,本质上就是 cpuset 实现的,android 的用户态会把进程分为几个类型,top-app, foreground, background, system-background, restricted 等等,可以设置每种类型的进程应该跑在哪几个核心上。一般来说,手机出厂都应该在 init.xxx.rc 里面配置好了默认的 cpuset,因为高通 /MTK 针对每个 soc 都写好了配置。不是说后台进程用的核心越少越好,你还需要考虑一个情况,就是核心越少,执行同样的任务需要的时间越长,也意味着对应的核心需要更长时间的维持更高的频率( EAS 中,核心频率的调度是跟负载相关的)。少核心,长时间高频率,可能比多俩核心但是快速执行完马上去休眠或者 hotplug,可能更费电。
@Hansee #6 如果 fingerprint HAL 该有的东西不缺的话,试试 SELinux permissive 。不清楚你的指纹具体是什么,但是日志里有 qsee 读 persist 文件的 denial,有可能会导致指纹失败。有 root 的话,直接 adb shell 里 setenforce 0 就是 permissive 了,可以用 getenforce 来确认以下当前 SELinux 状态。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2366 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 9ms · UTC 14:59 · PVG 22:59 · LAX 07:59 · JFK 10:59
♥ Do have faith in what you're doing.