tgoop.com/qianqianzhuang/20
Create:
Last Update:
Last Update:
Android 版本升级带来的某些行为改变不会体现在更新日志中,但会大幅度影响使用体验。例如 Android 14 在强行停止应用前冻结其 cgroup,有效解决了应用通过不断 fork 进程互相保活的问题[1]。
在权限控制方面也有类似的变化。从 Android 14 开始,普通应用将无法读取 ro.debuggable 和 ro.secure 两个系统属性[2][3]。这对使用第三方 ROM 的隐藏魔人来说,无疑是个好消息:许多应用通过这两个属性来判断系统是否为 userdebug 或 eng 构建。
看起来很美好,对吧?我第一时间在手上的一加 Ace 2 Pro(运行 ColorOS 14)进行了实验。却发现仍可以通过在终端运行 getprop 获得这两个属性的值。使用 magiskpolicy dump 出系统 sepolicy 后,借高人慧眼,发现这样一条:
allow domain userdebug_or_eng_prop file { read getattr map open }
表示所有 selinux domain 都可以读取这两个属性的值。这在 AOSP 中是一个 neverallow 条目。这说明,ColorOS 在构建时修改了 neverallow 规则或者直接允许了 neverallow,并且没有运行 CTS 测试。
由于时间原因,我没有继续研究,但恐怕类似的情况不只这一例,也不知是否会导致更严重的隐私泄露与安全问题。只能对 ColorOS 质量一声叹息。
[1] https://www.tgoop.com/vvb2060Channel/810
[2] https://android.googlesource.com/platform/system/sepolicy/+/d0e108fbbef339063893f3eca0aaabdd3dbe00a6
[3] https://android.googlesource.com/platform/system/sepolicy/+/8a7dcb5e1e2bd172de4191286f130823de02958c
BY 钱庄
Share with your friend now:
tgoop.com/qianqianzhuang/20