ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 67027|回复: 22
上一主题 下一主题
[原创]

◆串口大法就是好-酷开电视没得跑◆(三)系统分析

[复制链接]
跳转到指定楼层
楼主
发表于 2024-10-18 11:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 | 来自陕西
本帖最后由 罗波波 于 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里添加下面两行:   
  1. echo 1 > /sys/class/remount/need_remount
  2. 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下执行下面两条命令使新的开机图片生效:   
  1. setenv db_table 0
  2. 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:   
  1. sleep 10       #延迟10秒再执行后续的指令,否则后面的指令无法执行
  2. 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之后添加:   
  1. 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里的签名验证。


◆下期预告:(四)自制强刷包◆



上一篇:3000元左右创维电视Max75/75A4E/75A23S/75K3 Pro 2025款/75K3怎么选
下一篇:◆串口大法就是好-酷开电视没得跑 ◆(四)自制强刷包
推荐
发表于 2024-10-18 18:05 | 只看该作者 | 来自广西
不错不错 ,有点很恩山的味,教程很详细
回复 支持 1 反对 0

使用道具 举报

板凳
发表于 2024-10-18 14:34 | 只看该作者 | 来自甘肃
太强辣大佬!!
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2024-10-18 16:01 | 只看该作者 | 来自陕西
不可删除:
#com.skyworth.tv
coocaaTV,信号源(电视、hdmi、视频),删后无法-上上下下左右左右-进入工厂菜单/system/vendor/app/SkyTVUI
#com.tianci.setting
系统设置/system/vendor/app/SkySetting
#com.skyworth.tv.provider
/system/vendor/app/SkyTVProvider/
#tom.tianci.ipc   
系统通讯框架,无法关机开机/system/vendor/app/SkyIPCService
#com.coocaa.skyoscts
自动化测试(功能测试)在工厂菜单有入口/system/vendor/app/SkyAutoTest/
#com.tianci.ad
广告/system/vendor/app/SkyADService禁用后重启自动被启用
#com.coocaa.factory
工厂菜单/system/vendor/app/SkyCommonFactory/
#com.skyworth.tianciime
输入法/system/vendor/app/SkyIME
#com.android.packageinstaller
软件包安装器/system/vendor/app/SkyPackageInstaller
#com.android.defcontainer
软件包权限帮助程序,安装应用时用到/system/priv-app/DefaultContainerService
#com.tianci.system
系统服务,遥控-关机、静音、音量、菜单-按键失效,机器背面按键也失效/system/vendor/app/SkySystemService/
#com.skyworthdigital.stb.dataprovider
用于搜索电视频道        /system/app/StbDataProvider/
#com.android.providers.tv
/system/priv-app/TvProvider/

回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2024-10-18 16:02 | 只看该作者 | 来自陕西
不确定:
#com.coocaa.remotectrlservice
卸载后【似乎】无问题/system/vendor/app/SkyTVAgent
#com.mstar.android.providers.tv
默认被禁用-无法启用,升级到1912版也不行/system/app/MTvProvider

回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2024-10-18 16:03 | 只看该作者 | 来自陕西
不能删除:
#com.skyworth.tv
coocaaTV,信号源(电视、hdmi、视频),/system/vendor/app/SkyTVUI
#com.tianci.setting
系统设置/system/vendor/app/SkySetting
#com.skyworth.tv.provider
/system/vendor/app/SkyTVProvider/
#tom.tianci.ipc   
系统通讯框架,无法关机开机/system/vendor/app/SkyIPCService
#com.coocaa.skyoscts
自动化测试(功能测试)在工厂菜单有入口/system/vendor/app/SkyAutoTest/
#com.tianci.ad
广告/system/vendor/app/SkyADService禁用后重启自动被启用
#com.coocaa.factory
工厂菜单/system/vendor/app/SkyCommonFactory/
#com.skyworth.tianciime
输入法/system/vendor/app/SkyIME
#com.android.packageinstaller
软件包安装器/system/vendor/app/SkyPackageInstaller
#com.android.defcontainer
软件包权限帮助程序,安装应用时用到/system/priv-app/DefaultContainerService
#com.tianci.system
系统服务,/system/vendor/app/SkySystemService/
#com.skyworthdigital.stb.dataprovider
用于搜索电视频道        /system/app/StbDataProvider/
#com.android.providers.tv
/system/priv-app/TvProvider/

回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2024-10-18 16:11 | 只看该作者 | 来自陕西
可删除内置应用列表:(文本发布总提示有不良内容)
可删除内置应用列表.7z (3.33 KB, 下载次数: 6)




回复 支持 反对

使用道具 举报

8#
发表于 2024-10-19 09:09 | 只看该作者 | 来自广西
期待下一篇反编译 恢复sdcard
回复 支持 反对

使用道具 举报

9#
发表于 2024-10-19 20:29 来自ZNDS手机版 | 只看该作者 | 来自广东
谢谢分享。
回复 支持 反对

使用道具 举报

10#
发表于 2024-10-26 15:09 | 只看该作者 | 来自湖北
这个教程要点赞啊   等我root了 来试,mark一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-4-25 20:11 , Processed in 0.090899 second(s), 14 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表