刷入之后发现系统只有运营商定制的设置,如图:
image.png (365.33 KB, 下载次数: 1)
下载附件
2024-5-28 11:39 上传
幸好我们有root权限,在盒子上装个MT管理器就能直接替换系统应用。于是我想去网上找个原生设置放进去,结果有的不能用,有的替换完干脆直接进不去系统了,又得重刷...
后来寻思我明明会逆向,为啥不自己动手,丰衣足食呢?
注意到我们的雷电模拟器里就有个原生设置,系统恰好也是安卓9,提取并检查这个设置的apk文件,发现里面没有lib库,因此推断apk是全平台通用的,只要能装上:
image.png (39.52 KB, 下载次数: 1)
下载附件
2024-5-28 11:46 上传
这个设置和电视盒子里已有的设置包名冲突了,只能先进行替换,替换后重启,发现设置图标消失,原生设置和定制设置都没了,于是对比两个设置的签名描述,如下:
[Lua] 纯文本查看 复制代码雷电模拟器设置:
[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
电视盒子设置:
[email protected], CN=Sumavision, OU=Sumavision, O=Sumavision, L=Shenzhen, ST=Guangdong, C=CN
可见电视盒子的系统级签名与模拟器的系统级签名不同,在Android中这些申请了特殊权限的应用需要系统级签名才能正常安装运行,其中一个特殊权限如下:
[XML] 纯文本查看 复制代码
幸好,安卓对/system/app下的应用只判断签名是否存在,不判断是否有效,我们可以来一出借尸还魂。
首先将定制设置备份,然后在MT管理器两侧同时打开原生设置和定制设置,接下来将定制设置中除META-INF外的文件全部删除,然后将原生设置中除META-INF外的文件全部添加到定制设置中,全程不要进行签名(同时建议保留v2签名数据),这样我们就得到了披着系统级签名的原生设置:
image.png (103.39 KB, 下载次数: 1)
下载附件
2024-5-28 11:58 上传
现在我们把这个设置再移到系统app目录下,重启发现原生设置出现了,功能基本正常,也可以查看应用信息并清缓存了:
image.png (102.12 KB, 下载次数: 0)
下载附件
2024-5-28 12:00 上传
image.png (52.67 KB, 下载次数: 2)
下载附件
2024-5-28 12:02 上传
接下来要解决两个设置共存的问题,原生设置虽好,但调整屏幕分辨率比较困难,因此定制设置还是需要保留的,我们直接用MT的apk共存功能,修改定制设置的包名(因为原生设置会被第三方调用),同样不签名,然后一并放到系统app目录下,重启电视盒子,发现两个设置都出现了,目前使用起来一切正常。
image.png (69.72 KB, 下载次数: 1)
下载附件
2024-5-28 12:05 上传
留一个思考题:目前发现无法在原生设置中通过多次点击版本号启用开发者模式,屏幕无任何提示,问如何解决?