本帖最后由 罗波波 于 2024-10-18 15:45 编辑
●型号:裤开5S58_K5C ●系统版本:180524版(191223版删除默认主页后,无法长按菜单键呼出快捷菜单,所以选该版搞机)
●安卓版本:6.0
●上市年份:2018
●本心得也适用裤开的爸爸SkyWorth ■MBOOT和MPOOL 这两个分区是Mstar芯片厂家提供的。MBOOT由电视厂家修改进行适配编辑,设备上是只读的,它是uboot运行的载体。所以一般不要打该分区的主意,一旦损坏,uboot无法进入!安卓系统通常也无法启动! 除了这两个分区外的所有分区,从mmc的角度来说,正规的叫法都是-User Partions-用户分区。而从安卓系统的角度来说,userdata分区叫做用户(数据)分区,包括挂载后的/data和/sdcard。 ■自动挂载/system读写 为了方便在线编辑测试,在/system/bin/install-recovery.sh里添加下面两行: - echo 1 > /sys/class/remount/need_remount
- mount -o rw,remount /system
复制代码 这样每次启动可自动挂载system分区为读写,方便。 ■内置应用分析 相关列表见跟帖(发布时总提示有不良内容) 删除默认主页后,系统设置里的定时关机功能失效。且系统设置、coocaaTV等的UI变丑: 解决方法1:替换191223版的相应应用。省事,但版本越高越油腻。 解决方法2:反编译修改这些应用。稍麻烦,完美主义者适用。 删除com.tianci.system后,待机键、音量键、静音键、菜单键失效,仅几个导航键含ok键有效。 禁止com.tianci.system联网之后,系统无法获取互联网时间。 删除广告服务com.tianci.ad后:系统设置里的屏保功能失效(该功能会播放广告)。 ■系统配置分析 电视机/盒子这类批量生产的产品,为了方便工程师维护方便,通常将一些基本的功能配置写成xml文件,由系统级app读取这些文件从而形成各种功能,这样对于不同的机型就只需统一的apk,例如:A机型有蓝牙,而B机型无蓝牙,A、B两个机型的系统设置apk是同一个,但B机型的xml文件会隐藏蓝牙入口。 这同时又给了搞机方便之门~ 主要的系统配置xml文件位置在/system/pcfg/机型/config,例如这里机型为5S58_K5C(其它机型的文件夹可删)。 例如,可以配置主页、广告开关...的general_config.xml: 再如setting_gerenal.xml控制着系统设置,ssc_item.xml控制着快捷菜单(长按菜单键)的内容。 都有原厂注释,比较简单,不赘述。 反编译看了一下,这些xml都是通过com.tianci.system(系统服务)来读取实现的。 里面的bootQueue.xml没搞清楚作用,试改了下,貌似没设么变化。 ■工厂菜单 工厂菜单里的STR待机功能实测无效,而191223版的工厂菜单没有这个选项,即便反编译添加该选项也无效,说明该机型不支持STR待机功能。 ■开机画面&动画 tvconfig分区有开机图片boot0.jpg,替换该图片,重启,竟然没有换过来,恢复出厂,还不行!又发现/system/etc/logo_coocaa.jpg和boot0.jpg完全相同(md5值一样),将该图片替换,重启&恢复出厂,依旧无效!难道没找到位置?可搜了个遍,所有的分区只有上述两处有开机图片文件。 通过WinHex发现MPOOL分区里有原厂boot0.jpg文件,推测开机图片被缓存到了这里,uboot下清除该分区数据:mmc erase.p MPOOL,重启,成功替换为tvconfig新的开机图片,再查看MPOOL分区,果然新的开机图片又被缓存了。 除了上述清除MPOOL分区的办法外,还可以在uboot下执行下面两条命令使新的开机图片生效: - setenv db_table 0
- saveenv
复制代码 (另一个安卓9的Mstar机顶盒,清除cache分区或恢复出厂就可以使新的开机图片生效) 开机动画是/system/media/bootanimation_Coocaa.zip,(若是SkyWorth应该是bootanimation_Skyworth.zip),修改后,重启直接生效。 ■无需修改系统-替换默认主页的方法 反编译主页com.tianci.movieplatform,查看AndroidManifest.xml文件发现其入口activity有一条category: 细看红框。将第三方桌面的categoray改成这个,adb安装,重启,惊喜来了-系统自动跳出对话框让你选择桌面: 再pm uninstall --user 0 [packagename]卸载一些系统应用无需费事修改系统。(小技巧:若需重新启用被卸载的系统应用,先pm list packages -u -f [packagename]查询路径,再pm install -r --user 0 [apk路径]来重新安装该应用) 该方法适合怕麻烦的用户,免去了修改系统的麻烦! ■dtmb-dra解码 180524版无法解析数字电视dra音频码,一些使用dra音频的频道没有声音。 191223版dra解码正常,解决过程如下: 将191223版的/system/vendor/app/SkyTVUI/SkyTVUI.apk(coocaaTV=com.skyworth.tv)替换过来,不行! 将191223版里包名里带tv字样的包替换-com.skyworth.tv.provider、com.mstar.android.providers.tv、com.android.providers.tv,不行! 将191223版里tv开头的分区挨个替换。 替换到tvservice分区,成功解决! 注意:tvservice分区无法在线刷入,需uboot下刷入才有效。经确认,只需替换tvservice分区即可。 看到这里:桌面也替换了、广告也去除了、系统也精简了、dra也有声了,不要以为就万事大吉了,往下看↓ ■问题突现 1、将系统应用删除后,一切运行正常,但是: 恢复出厂后:电视机无操作100秒后,屏幕自动黑屏(无背光),led灯仍为绿灯,通过串口系统shell确定安卓系统仍在运行,此时按任何按键可使屏幕有显示,但是无背光。不仔细查看还以为是完全黑屏呢。如果没有替换默认主页的情况下,任意按键可以点亮屏幕。 经逐一排查(太熬人!)确定是删除了广告com.tianci.ad惹得祸。 难道就让广告服务com.tianci.ad以高达26%的 CPU占用率大模大样的在后台运行? 绝对不能忍受!方法奉上,将如下命令添加进install-recovery.sh: - sleep 10 #延迟10秒再执行后续的指令,否则后面的指令无法执行
- pm hide com.tianci.ad #隐藏应用包
复制代码 通过反编译发现com.tianci.system里有几处指向com.tianci.ad的操作,应该可以反编译修改,从而可彻底删除广告服务,这个有空了再研究。 2、修改general_config.xml替换桌面后: 删除系统应用,替换桌面并使用一段时间之后,通过top命令发现com.tianci.system日常运行有着高达35%的CPU占用率,解决方法-在install-recovery.sh里sleep 10之后添加: - pm clear com.tianci.system #清除该包数据
复制代码 反编译com.tianci.system发现多处指向原厂主页com.tianci.movieplatform的操作,发现framework里也有类似的操作,估计就是高CPU占用率的原因。有空再修改com.tianci.system和framework,彻底根治。 建议各位已经刷了精简强刷包的,不限机型,用top命令自查一下吧。 3、前面两种替换桌面的方法会导致主页键失效。 貌似与com.tianci.system&framework有关,有待进一步研究。不过相信很多人和我一样:主页键极少用到!不如把主页键改为常用应用的快捷键! ■系统广播android.intent.action.BOOT_COMPLETED 该广播会在桌面启动15秒之后发送,而安卓正常情况下会立即发送,看来是被是该饿死的SkyWorth魔改了。 很多app包括一些桌面应用会建立一个Receiver,当收到该广播时就启动自己,这就是开机自启动的原理。如果你替换的桌面有这样的Receiver,就会出现状况:过15秒后又加载一次桌面,从而影响到当前的操作。 所以需要反编译自己桌面应用,将该Receiver删掉,例如某贝。 另外的办法就是修改系统,使得该广播立即发送或者从根本上yan割,这个还需深入研究。 ■ro.secure=1 该字段在/default.prop里,修改它=0应该就可以使得连上adb就直接是root,这样的话用「甲壳虫adb助手」GUI的方式在线替换系统文件,比起在系统shell下命令行的方式编辑文件方便的多。 可惜修改无效,该值重启依旧=1,应该是由boot分区生成决定的。 而boot分区用bootimg、rom助手两个工具均无法解包,CSDN上有号称可解包Mstar的boot分区的工具(收费),应该是国内作者自编的(国际上没搜到),可是:仅有的几条留言都说无法解包。 不知道能否在ubuntu下解包,还没去尝试。 ■/sdcard被yan割 这个酷开系统已yan割内置存储/sdcard,这样做的好处是压根不存在/sdcard文件换乱的问题,不用担心各种应用在此自建乱七八糟的垃圾文件。坏处就是一些依赖/sdcard的应用受到影响,例如Tvbox就无法在本地建立接口文件了。 不清楚是否只有该型号的酷开系统是这样。没看到有人抱怨酷开系统没有内置存储的问题,这个比较纳闷。 若要恢复/sdcard,貌似要修改boot,具体还没研究。 ■系统app签名 看了一下是厂家自有签名,自行修改系统应用是无法运行的,需去除framework里的签名验证。
◆下期预告:(四)自制强刷包◆
|