SmartThings 会检测设备是否 Root!而且检测方法特别草台班子——就是检查有没有安装 Root 相关的应用程序。
之前更新 SmartThings 到 1.8.37.23 突然打不开了,家里智能家居不多加上还有 Home Assistant,想到应该是 bug,所以也不是那么急。没想到现在更新到 1.8.41.23 也打不开,就让我重视起来了。
一查 logcat,发现竟然会 checkRootApps,赫然写着 Magisk 的包名!我不就是 root 装 Magisk 咋滴了,尝试了反编译,结果并没有找到这个黑名单列表的字符串,索引 getInstalledPackages(),发现是格式化成 json 通过 WebView 发送到某处去检测,返回 true/false,目前并不知道是什么在检测,可能逻辑在 so 里面,反编译 so 有点困难,就不了了之了。
这个问题在前年就有人碰到了,当时检测的 Toybox/Busybox,然后可能是几个月前工程师突然想到 Magisk 也是个 root 相关应用程序,就加进了黑名单,结果就是更新后突然打不开了。
