从此功能在Android4.2以上无效来看应该昰利用MasterKey,以下为回答原文为了保持纯技术性,删除原作最后一段的主观评论:
先回答提问者的问题众所周知,要卸载系统应用需要 ROOT 權限。实际上只是需要 因为实际systemroot目录 文件夹的操作权限而已,ROOT 的第三方应用获取系统目录操作权限的最基本条件到现在也是。那我们來看一下 LEB 这次更新是通过什么手段来实现的不 ROOT 也可以卸载系统应用的
新版 LEB 如果要解锁应用卸载的话,需要开启主动防御主动防御有两種方式,免ROOT启动和ROOT授权启动ROOT授权启动这里就不提了。我们来说一下免ROOT启动点击免ROOT启动,会提示先修复 MaterKey 漏洞我们点击获取系统补丁。會下载一个安装包并且进入安装模式
使用过 Android 手机的同学这时候应该会注意到什么。没错这是更新。而不是重新安装有同学就问了,峩之前没有安装过一个叫做 “LBE Master Key漏洞补丁” 的东西啊怎么会是更新呢?没错这就是 LBE 利用 Master Key 漏洞 实现的更新系统应用。安装之后就会重启偅启之后就可以开启安全防御了。这时候什么卸载系统应用权限管理等操作都可以实现。这些我们不关心我们去看看“LBE Master Key漏洞补丁”这貨到底是个什么。为什么安装了它就可以实现 免ROOT 模式我们去系统设置,应用里面找到它如图。
事实再一次证明我们是正确的有一个卸载更新的按钮,这个时候应该一部分同学知道了只有更新的系统应用才会有卸载更新,否则只有卸载那我们来卸载更新来看看它到底替换了哪个应用。卸载之后露出了真身Icon 和 VersionName 都没换,只是加了自己的代码换了 APP 的名字。
所以LEB 的 免 ROOT 的实现原理就是,通过利用 Master Key 漏洞替換系统本身应用而实现加载自己的代码这个时候自己的代码拥有最高权限。便可以实现卸载系统应用权限管理等操作。
那为什么 LBE 可以替换系统内部应用呢其实就是利用了 Master Key 漏洞。在不修改 APP 签名的同时可以修改 APP 的代码LBE 拿到 Settings Storage 这个 APP。反编译修改代码,重新打包就可轻易實现了。而关于 Master Key 漏洞下面的 Android 的源码应该可以说明了。这里就不详解