本帖最后由 侃遍天下无二人 于 2024-5-28 13:44 编辑
前段时间从闲鱼入手了一个M411A型号的电视盒子,刷机资源和教程网上已经比较丰富,这里补充一点他们没有提及的:若想刷安卓9系统,需要先刷【下载改-麒麟网仿当贝OS未Root-确认待机-灯亮红-主页键正常(打双勾√救砖包)】,替换recovery并擦除flash,然后再刷【晶晨S905L3安卓9当贝-设置江苏有无线已Root-一键待机-灯正常-主页键正常(自用版)】,记得不要打勾,否则大概率无法刷入或者卡开机。若想刷回安卓4同样需要先刷对应的救砖包。
刷入之后发现系统只有运营商定制的设置,如图:
幸好我们有root权限,在盒子上装个MT管理器就能直接替换系统应用。于是我想去网上找个原生设置放进去,结果有的不能用,有的替换完干脆直接进不去系统了,又得重刷...
后来寻思我明明会逆向,为啥不自己动手,丰衣足食呢?
注意到我们的雷电模拟器里就有个原生设置,系统恰好也是安卓9,提取并检查这个设置的apk文件,发现里面没有lib库,因此推断apk是全平台通用的,只要能装上:
这个设置和电视盒子里已有的设置包名冲突了,只能先进行替换,替换后重启,发现设置图标消失,原生设置和定制设置都没了,于是对比两个设置的签名描述,如下:
[Lua] 纯文本查看 复制代码 雷电模拟器设置:
EMAILADDRESS=android@android.com, CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
电视盒子设置:
EMAILADDRESS=sumavision@sumavision.com, CN=Sumavision, OU=Sumavision, O=Sumavision, L=Shenzhen, ST=Guangdong, C=CN
可见电视盒子的系统级签名与模拟器的系统级签名不同,在Android中这些申请了特殊权限的应用需要系统级签名才能正常安装运行,其中一个特殊权限如下:
[XML] 纯文本查看 复制代码 <permission-group
android:label="@string/superuser"
android:icon="@drawable/ic_action_permission"
android:name="android.permission-group.SUPERUSER"
android:priority="10000"
android:description="@string/superuser_description_more" />
幸好,安卓对/system/app下的应用只判断签名是否存在,不判断是否有效,我们可以来一出借尸还魂。
首先将定制设置备份,然后在MT管理器两侧同时打开原生设置和定制设置,接下来将定制设置中除META-INF外的文件全部删除,然后将原生设置中除META-INF外的文件全部添加到定制设置中,全程不要进行签名(同时建议保留v2签名数据),这样我们就得到了披着系统级签名的原生设置:
现在我们把这个设置再移到系统app目录下,重启发现原生设置出现了,功能基本正常,也可以查看应用信息并清缓存了:
接下来要解决两个设置共存的问题,原生设置虽好,但调整屏幕分辨率比较困难,因此定制设置还是需要保留的,我们直接用MT的apk共存功能,修改定制设置的包名(因为原生设置会被第三方调用),同样不签名,然后一并放到系统app目录下,重启电视盒子,发现两个设置都出现了,目前使用起来一切正常。
留一个思考题:目前发现无法在原生设置中通过多次点击版本号启用开发者模式,屏幕无任何提示,问如何解决?
|