首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 54321|回復(fù): 21
上一主題 下一主題
[原創(chuàng)]

◆串口大法就是好-酷開電視沒(méi)得跑◆(三)系統(tǒng)分析

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-10-18 11:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式 | 來(lái)自陜西
本帖最后由 羅波波 于 2024-10-18 15:45 編輯

#@版主,配圖丟失,重新編輯#
●型號(hào):褲開5S58_K5C
●系統(tǒng)版本:180524版(191223版刪除默認(rèn)主頁(yè)后,無(wú)法長(zhǎng)按菜單鍵呼出快捷菜單,所以選該版搞機(jī))
●安卓版本:6.0
●上市年份:2018
●本心得也適用褲開的爸爸SkyWorth
■MBOOT和MPOOL
    這兩個(gè)分區(qū)是Mstar芯片廠家提供的。MBOOT由電視廠家修改進(jìn)行適配編輯,設(shè)備上是只讀的,它是uboot運(yùn)行的載體。所以一般不要打該分區(qū)的主意,一旦損壞,uboot無(wú)法進(jìn)入!安卓系統(tǒng)通常也無(wú)法啟動(dòng)!
    除了這兩個(gè)分區(qū)外的所有分區(qū),從mmc的角度來(lái)說(shuō),正規(guī)的叫法都是-User Partions-用戶分區(qū)。而從安卓系統(tǒng)的角度來(lái)說(shuō),userdata分區(qū)叫做用戶(數(shù)據(jù))分區(qū),包括掛載后的/data和/sdcard。
■自動(dòng)掛載/system讀寫
    為了方便在線編輯測(cè)試,在/system/bin/install-recovery.sh里添加下面兩行:   
  1. echo 1 > /sys/class/remount/need_remount
  2. mount -o rw,remount /system
復(fù)制代碼
    這樣每次啟動(dòng)可自動(dòng)掛載system分區(qū)為讀寫,方便。
■內(nèi)置應(yīng)用分析
     相關(guān)列表見跟帖(發(fā)布時(shí)總提示有不良內(nèi)容)
     刪除默認(rèn)主頁(yè)后,系統(tǒng)設(shè)置里的定時(shí)關(guān)機(jī)功能失效。且系統(tǒng)設(shè)置、coocaaTV等的UI變丑:
◆串口大法就是好-酷開電視沒(méi)得跑◆(三)系統(tǒng)分析
    解決方法1:替換191223版的相應(yīng)應(yīng)用。省事,但版本越高越油膩。
    解決方法2:反編譯修改這些應(yīng)用。稍麻煩,完美主義者適用。
    刪除com.tianci.system后,待機(jī)鍵、音量鍵、靜音鍵、菜單鍵失效,僅幾個(gè)導(dǎo)航鍵含ok鍵有效。
    禁止com.tianci.system聯(lián)網(wǎng)之后,系統(tǒng)無(wú)法獲取互聯(lián)網(wǎng)時(shí)間。
    刪除廣告服務(wù)com.tianci.ad后:系統(tǒng)設(shè)置里的屏保功能失效(該功能會(huì)播放廣告)。
■系統(tǒng)配置分析
    電視機(jī)/盒子這類批量生產(chǎn)的產(chǎn)品,為了方便工程師維護(hù)方便,通常將一些基本的功能配置寫成xml文件,由系統(tǒng)級(jí)app讀取這些文件從而形成各種功能,這樣對(duì)于不同的機(jī)型就只需統(tǒng)一的apk,例如:A機(jī)型有藍(lán)牙,而B機(jī)型無(wú)藍(lán)牙,A、B兩個(gè)機(jī)型的系統(tǒng)設(shè)置apk是同一個(gè),但B機(jī)型的xml文件會(huì)隱藏藍(lán)牙入口。
    這同時(shí)又給了搞機(jī)方便之門~
    主要的系統(tǒng)配置xml文件位置在/system/pcfg/機(jī)型/config,例如這里機(jī)型為5S58_K5C(其它機(jī)型的文件夾可刪)。
    例如,可以配置主頁(yè)、廣告開關(guān)...的general_config.xml:
◆串口大法就是好-酷開電視沒(méi)得跑◆(三)系統(tǒng)分析
    再如setting_gerenal.xml控制著系統(tǒng)設(shè)置,ssc_item.xml控制著快捷菜單(長(zhǎng)按菜單鍵)的內(nèi)容。
    都有原廠注釋,比較簡(jiǎn)單,不贅述。
    反編譯看了一下,這些xml都是通過(guò)com.tianci.system(系統(tǒng)服務(wù))來(lái)讀取實(shí)現(xiàn)的。
    里面的bootQueue.xml沒(méi)搞清楚作用,試改了下,貌似沒(méi)設(shè)么變化。
■工廠菜單
    工廠菜單里的STR待機(jī)功能實(shí)測(cè)無(wú)效,而191223版的工廠菜單沒(méi)有這個(gè)選項(xiàng),即便反編譯添加該選項(xiàng)也無(wú)效,說(shuō)明該機(jī)型不支持STR待機(jī)功能。
■開機(jī)畫面&動(dòng)畫
    tvconfig分區(qū)有開機(jī)圖片boot0.jpg,替換該圖片,重啟,竟然沒(méi)有換過(guò)來(lái),恢復(fù)出廠,還不行!又發(fā)現(xiàn)/system/etc/logo_coocaa.jpg和boot0.jpg完全相同(md5值一樣),將該圖片替換,重啟&恢復(fù)出廠,依舊無(wú)效!難道沒(méi)找到位置?可搜了個(gè)遍,所有的分區(qū)只有上述兩處有開機(jī)圖片文件。
    通過(guò)WinHex發(fā)現(xiàn)MPOOL分區(qū)里有原廠boot0.jpg文件,推測(cè)開機(jī)圖片被緩存到了這里,uboot下清除該分區(qū)數(shù)據(jù):mmc erase.p MPOOL,重啟,成功替換為tvconfig新的開機(jī)圖片,再查看MPOOL分區(qū),果然新的開機(jī)圖片又被緩存了。
除了上述清除MPOOL分區(qū)的辦法外,還可以在uboot下執(zhí)行下面兩條命令使新的開機(jī)圖片生效:   
  1. setenv db_table 0
  2. saveenv
復(fù)制代碼
    (另一個(gè)安卓9的Mstar機(jī)頂盒,清除cache分區(qū)或恢復(fù)出廠就可以使新的開機(jī)圖片生效)
    開機(jī)動(dòng)畫是/system/media/bootanimation_Coocaa.zip,(若是SkyWorth應(yīng)該是bootanimation_Skyworth.zip),修改后,重啟直接生效。
■無(wú)需修改系統(tǒng)-替換默認(rèn)主頁(yè)的方法
    反編譯主頁(yè)com.tianci.movieplatform,查看AndroidManifest.xml文件發(fā)現(xiàn)其入口activity有一條category:
◆串口大法就是好-酷開電視沒(méi)得跑◆(三)系統(tǒng)分析
    細(xì)看紅框。將第三方桌面的categoray改成這個(gè),adb安裝,重啟,驚喜來(lái)了-系統(tǒng)自動(dòng)跳出對(duì)話框讓你選擇桌面:
◆串口大法就是好-酷開電視沒(méi)得跑◆(三)系統(tǒng)分析
    再pm uninstall --user 0 [packagename]卸載一些系統(tǒng)應(yīng)用無(wú)需費(fèi)事修改系統(tǒng)。(小技巧:若需重新啟用被卸載的系統(tǒng)應(yīng)用,先pm list packages -u -f [packagename]查詢路徑,再pm install -r --user 0 [apk路徑]來(lái)重新安裝該應(yīng)用)
    該方法適合怕麻煩的用戶,免去了修改系統(tǒng)的麻煩!
■dtmb-dra解碼
    180524版無(wú)法解析數(shù)字電視dra音頻碼,一些使用dra音頻的頻道沒(méi)有聲音。
    191223版dra解碼正常,解決過(guò)程如下:
    將191223版的/system/vendor/app/SkyTVUI/SkyTVUI.apk(coocaaTV=com.skyworth.tv)替換過(guò)來(lái),不行!
    將191223版里包名里帶tv字樣的包替換-com.skyworth.tv.provider、com.mstar.android.providers.tv、com.android.providers.tv,不行!
    將191223版里tv開頭的分區(qū)挨個(gè)替換。
    替換到tvservice分區(qū),成功解決!
    注意:tvservice分區(qū)無(wú)法在線刷入,需uboot下刷入才有效。經(jīng)確認(rèn),只需替換tvservice分區(qū)即可。
    看到這里:桌面也替換了、廣告也去除了、系統(tǒng)也精簡(jiǎn)了、dra也有聲了,不要以為就萬(wàn)事大吉了,往下看↓
■問(wèn)題突現(xiàn)
1、將系統(tǒng)應(yīng)用刪除后,一切運(yùn)行正常,但是:
    恢復(fù)出廠后:電視機(jī)無(wú)操作100秒后,屏幕自動(dòng)黑屏(無(wú)背光),led燈仍為綠燈,通過(guò)串口系統(tǒng)shell確定安卓系統(tǒng)仍在運(yùn)行,此時(shí)按任何按鍵可使屏幕有顯示,但是無(wú)背光。不仔細(xì)查看還以為是完全黑屏呢。如果沒(méi)有替換默認(rèn)主頁(yè)的情況下,任意按鍵可以點(diǎn)亮屏幕。
    經(jīng)逐一排查(太熬人?。┐_定是刪除了廣告com.tianci.ad惹得禍。
    難道就讓廣告服務(wù)com.tianci.ad以高達(dá)26%的 CPU占用率大模大樣的在后臺(tái)運(yùn)行?
◆串口大法就是好-酷開電視沒(méi)得跑◆(三)系統(tǒng)分析
    絕對(duì)不能忍受!方法奉上,將如下命令添加進(jìn)install-recovery.sh:   
  1. sleep 10       #延遲10秒再執(zhí)行后續(xù)的指令,否則后面的指令無(wú)法執(zhí)行
  2. pm hide com.tianci.ad    #隱藏應(yīng)用包
復(fù)制代碼
    通過(guò)反編譯發(fā)現(xiàn)com.tianci.system里有幾處指向com.tianci.ad的操作,應(yīng)該可以反編譯修改,從而可徹底刪除廣告服務(wù),這個(gè)有空了再研究。
2、修改general_config.xml替換桌面后:
    刪除系統(tǒng)應(yīng)用,替換桌面并使用一段時(shí)間之后,通過(guò)top命令發(fā)現(xiàn)com.tianci.system日常運(yùn)行有著高達(dá)35%的CPU占用率,解決方法-在install-recovery.sh里sleep 10之后添加:   
  1. pm clear com.tianci.system     #清除該包數(shù)據(jù)
復(fù)制代碼
    反編譯com.tianci.system發(fā)現(xiàn)多處指向原廠主頁(yè)com.tianci.movieplatform的操作,發(fā)現(xiàn)framework里也有類似的操作,估計(jì)就是高CPU占用率的原因。有空再修改com.tianci.system和framework,徹底根治。
    建議各位已經(jīng)刷了精簡(jiǎn)強(qiáng)刷包的,不限機(jī)型,用top命令自查一下吧。
3、前面兩種替換桌面的方法會(huì)導(dǎo)致主頁(yè)鍵失效。
    貌似與com.tianci.system&framework有關(guān),有待進(jìn)一步研究。不過(guò)相信很多人和我一樣:主頁(yè)鍵極少用到!不如把主頁(yè)鍵改為常用應(yīng)用的快捷鍵!
■系統(tǒng)廣播android.intent.action.BOOT_COMPLETED
    該廣播會(huì)在桌面啟動(dòng)15秒之后發(fā)送,而安卓正常情況下會(huì)立即發(fā)送,看來(lái)是被是該餓死的SkyWorth魔改了。
    很多app包括一些桌面應(yīng)用會(huì)建立一個(gè)Receiver,當(dāng)收到該廣播時(shí)就啟動(dòng)自己,這就是開機(jī)自啟動(dòng)的原理。如果你替換的桌面有這樣的Receiver,就會(huì)出現(xiàn)狀況:過(guò)15秒后又加載一次桌面,從而影響到當(dāng)前的操作。
    所以需要反編譯自己桌面應(yīng)用,將該Receiver刪掉,例如某貝。
    另外的辦法就是修改系統(tǒng),使得該廣播立即發(fā)送或者從根本上yan割,這個(gè)還需深入研究。
■ro.secure=1
    該字段在/default.prop里,修改它=0應(yīng)該就可以使得連上adb就直接是root,這樣的話用「甲殼蟲adb助手」GUI的方式在線替換系統(tǒng)文件,比起在系統(tǒng)shell下命令行的方式編輯文件方便的多。
    可惜修改無(wú)效,該值重啟依舊=1,應(yīng)該是由boot分區(qū)生成決定的。
    而boot分區(qū)用bootimg、rom助手兩個(gè)工具均無(wú)法解包,CSDN上有號(hào)稱可解包Mstar的boot分區(qū)的工具(收費(fèi)),應(yīng)該是國(guó)內(nèi)作者自編的(國(guó)際上沒(méi)搜到),可是:僅有的幾條留言都說(shuō)無(wú)法解包。
    不知道能否在ubuntu下解包,還沒(méi)去嘗試。
■/sdcard被yan割
    這個(gè)酷開系統(tǒng)已yan割內(nèi)置存儲(chǔ)/sdcard,這樣做的好處是壓根不存在/sdcard文件換亂的問(wèn)題,不用擔(dān)心各種應(yīng)用在此自建亂七八糟的垃圾文件。壞處就是一些依賴/sdcard的應(yīng)用受到影響,例如Tvbox就無(wú)法在本地建立接口文件了。
    不清楚是否只有該型號(hào)的酷開系統(tǒng)是這樣。沒(méi)看到有人抱怨酷開系統(tǒng)沒(méi)有內(nèi)置存儲(chǔ)的問(wèn)題,這個(gè)比較納悶。
    若要恢復(fù)/sdcard,貌似要修改boot,具體還沒(méi)研究。
■系統(tǒng)app簽名
    看了一下是廠家自有簽名,自行修改系統(tǒng)應(yīng)用是無(wú)法運(yùn)行的,需去除framework里的簽名驗(yàn)證。


◆下期預(yù)告:(四)自制強(qiáng)刷包◆



上一篇:3000元左右創(chuàng)維電視Max75/75A4E/75A23S/75K3 Pro 2025款/75K3怎么選
下一篇:◆串口大法就是好-酷開電視沒(méi)得跑 ◆(四)自制強(qiáng)刷包
推薦
發(fā)表于 2024-10-18 18:05 | 只看該作者 | 來(lái)自廣西
不錯(cuò)不錯(cuò) ,有點(diǎn)很恩山的味,教程很詳細(xì)
22#
 樓主| 發(fā)表于 2024-12-28 09:25 | 只看該作者 | 來(lái)自陜西
這個(gè)開襠褲電視機(jī)遙控器和一般的不一樣,點(diǎn)按和長(zhǎng)按是不同的紅外鍵值,而一般的遙控器都是相同的紅外鍵值,只是長(zhǎng)按會(huì)增加ReapeatFlag標(biāo)識(shí),所以有些app的長(zhǎng)按功能無(wú)法在開襠褲電視上實(shí)現(xiàn),例如tvbox歷史記錄里,本可以長(zhǎng)按ok鍵刪除歷史項(xiàng)目,開襠褲遙控器就不行了。
21#
 樓主| 發(fā)表于 2024-12-28 09:21 | 只看該作者 | 來(lái)自陜西
狗曰的餓死,還造車呢,但凡用過(guò)餓死電視機(jī)的人有幾人會(huì)去買餓死車子?。窟B基礎(chǔ)的CEC功能都沒(méi)有,這我可以忍,dtmb音畫異步長(zhǎng)達(dá)0.3秒,工廠菜單里怎么調(diào)都無(wú)效,果然是開襠褲電視,你可真夠露臉的!
20#
 樓主| 發(fā)表于 2024-12-4 17:01 | 只看該作者 | 來(lái)自陜西
      將191223版的tvservice分區(qū)刷入180524版固件,雖然解決了數(shù)字電視dra音頻解碼的問(wèn)題,可問(wèn)題來(lái)了,播放數(shù)字電視時(shí)的聲音時(shí)而正常,時(shí)而異常:音量變小、些許破音。
      仔細(xì)對(duì)比兩個(gè)版本的tvservice分區(qū),發(fā)現(xiàn)更新了幾個(gè)庫(kù)文件、更新了1個(gè)可執(zhí)行文件-applications/bin/MiSysSrv,單獨(dú)將該可執(zhí)行文件替換到180524版tvservice分區(qū),完美解決聲音異常的問(wèn)題。
      另外,個(gè)人在搞機(jī)過(guò)程中出現(xiàn)了開機(jī)圖片無(wú)法顯示的問(wèn)題,查看uboot環(huán)境變量FactoryDB_Copy值由默認(rèn)的1變?yōu)榱?,恢復(fù)為1就可以顯示開機(jī)圖片了。
19#
 樓主| 發(fā)表于 2024-12-4 16:50 | 只看該作者 | 來(lái)自陜西
羅波波 發(fā)表于 2024-10-31 11:43
#瓶頸 求高人指點(diǎn)!#
目前遇到了一個(gè)瓶頸:
      想要修改快捷菜單(長(zhǎng)按菜單鍵)里某個(gè)快捷入口,例如把 ...

該問(wèn)題已解決:長(zhǎng)按呼出快捷菜單的目標(biāo)apk是CoocaaTVUI.apk-com.skyworth.tv,而不是SkySystemService.apk-com.tianci.system,二者都有相關(guān)代碼,應(yīng)該是原廠軟件工程師將該功能從后者遷移到了前者,僅簡(jiǎn)單屏蔽了后者的相關(guān)代碼而未刪除。個(gè)人思維定勢(shì)把目光唯一盯到了后者上,壓根沒(méi)想到是前者,經(jīng)驗(yàn)教訓(xùn)值得吸取。
18#
發(fā)表于 2024-11-26 16:52 來(lái)自ZNDS手機(jī)版 | 只看該作者 | 來(lái)自江蘇
我墻都不扶,只服你!
17#
 樓主| 發(fā)表于 2024-11-1 10:37 | 只看該作者 | 來(lái)自陜西
      從幾個(gè)系統(tǒng)應(yīng)用里找到的服務(wù)器地址,包括廠家服務(wù)器、廣告服務(wù)器、第三方統(tǒng)計(jì)服務(wù)器等等。內(nèi)有3個(gè)文件,地址可能有重復(fù),保留了地址api.tvinfo.skysrt.com(用于在線展示本機(jī)信息的)。將host文件添加到/system/etc/host即可,或者加入到路由器的屏蔽列表里。      對(duì)于不會(huì)反編譯去除這些地址的人,如此可徹底屏蔽和這些服務(wù)器的聯(lián)系。


HOSTS.zip

1.84 KB, 下載次數(shù): 1, 下載積分: 金幣 -1

16#
 樓主| 發(fā)表于 2024-11-1 10:24 | 只看該作者 | 來(lái)自陜西
確定可刪除:com.coocaa.remotectrlservice-/system/vendor/app/SkyTVAgent代碼上來(lái)看,這個(gè)應(yīng)該是廠家遠(yuǎn)程控制你電視機(jī)的。com.tianci.system里面也預(yù)留了后門,關(guān)鍵詞[backdoor],可去除。
15#
 樓主| 發(fā)表于 2024-10-31 11:43 | 只看該作者 | 來(lái)自陜西
#瓶頸 求高人指點(diǎn)!#

目前遇到了一個(gè)瓶頸:
      想要修改快捷菜單(長(zhǎng)按菜單鍵)里某個(gè)快捷入口,例如把「本地媒體」改為自有app的快捷入口,從代碼上來(lái)看,可以確定是com.tianci.system(系統(tǒng)服務(wù))實(shí)現(xiàn)的,有多個(gè)線索:讀取了/system/pcfg/xxxx/config/ssc_item.xml、有相關(guān)UI的定義;有startLocalMedia()V的method、有指向com.tianci.localmedia的多個(gè)操作、有長(zhǎng)按菜單鍵的代碼···········。
      即便將這些線索都刪掉,快捷菜單里的「本地媒體」依舊打開的是本地媒體。
      將com.tianci.ipc、com.tianci.setting臨時(shí)卸載掉,也無(wú)效。
      最為詭異的是:將com.tianci.system干掉,并恢復(fù)出廠,依舊可以長(zhǎng)按菜單鍵呼出快捷菜單,「本地媒體」依舊打開的是本地媒體。另外的現(xiàn)象是:干掉com.tianci.system之前可以長(zhǎng)按電源鍵關(guān)機(jī),之后長(zhǎng)按電源鍵沒(méi)反應(yīng),com.tianci.system里確實(shí)看到有長(zhǎng)按電源鍵關(guān)閉系統(tǒng)的代碼??墒沁€有長(zhǎng)按菜單鍵的代碼呢!
      從上段推測(cè),可能快捷菜單的入口是由framework決定的,可是找遍了framework里am.jar、com.mstar.android.jar、content.jar、ext.jar、pm.jar、services.jar、settings.jar、Sky-tv.jar、sm.jar、framework.jar,沒(méi)有任何指向localmedia的線索!也沒(méi)找到長(zhǎng)按菜單鍵呼出快捷菜單的任何線索!
#求高人指點(diǎn)!#

14#
發(fā)表于 2024-10-29 12:04 | 只看該作者 | 來(lái)自廣西
送上我的膝蓋,大概牛逼

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2025-3-11 14:51 , Processed in 0.081954 second(s), 17 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2025 ZNDS.Com

快速回復(fù) 返回頂部 返回列表