首頁 收藏 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ū)互助

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

查看: 65082|回復(fù): 18
上一主題 下一主題
[心得]

紅外遙控器手動(dòng)修改讓電視盒識(shí)別,改按鍵功能,交流匯總

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2023-11-1 10:02 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來自北京
本帖最后由 quakeskyq 于 2023-11-3 10:01 編輯

網(wǎng)上已經(jīng)有不少操作說明文章,這次整理個(gè)更容易讓大多人看懂的,并且分樓層來從簡單到難,把涉及的不同修改難度都探一下,一樓就是最容易修改的情況

歡迎各位在此樓交流.對(duì)應(yīng)更難的修改部分怎么把說明內(nèi)容簡化
這幾天樓里有什么問題的話,也會(huì)回答



緒論:

機(jī)器剛買來時(shí),遙控器能正常使用,既然機(jī)器沒換,刷機(jī)后遙控器就肯定能正常使用
所有準(zhǔn)備刷機(jī)前的機(jī)器,都提前備份好你的遙控器正常能用時(shí)的遙控器文件,以便刷機(jī)后再改回去,具體請(qǐng)看后文詳解

不同廠商制作者,制作的遙控器配置文件、文件名、文件位置會(huì)不一樣,但都是安卓,修改思路就大同小異.
像海思芯片的遙控碼文件是 key.xml     晶晨的是remont.conf
也有些系統(tǒng)則是寫在remote.cfg里
還有的寫在/system/vendor/bin下的remotecfg這個(gè)文件里
情況很多種,最好找到原機(jī)的刷機(jī)包,直接替換進(jìn)去

下面作為樣例的,是 /vendor/etc/文件夾下有remote.tab1 ~ remote.tab5這些文件的情況(應(yīng)該是晶辰的情況之一)


--------------

一樓

感謝原帖http://m.81jnr2m.cn/tv-1236582-1-3.html

一,修改遙控器識(shí)別碼

解決紅外遙控器不被機(jī)器識(shí)別、與按鍵不對(duì)應(yīng)的最簡便辦法(前提是你的機(jī)器里有remote.tab1 - remote.tab5這些文件)


剛知道有的固件包里,在系統(tǒng)里放上了五個(gè)文件:
remote.tab1 - remote.tab5
(都在vendor/etc/ 文件夾下)

用文本編輯軟件可以看見,這五個(gè)文件的開頭是5個(gè)不同的遙控器類型數(shù)字代碼
好比custom_code = 0xc43b
custom_code = 0xff00
x后面的這四位代碼(遙控器識(shí)別碼)是否對(duì)應(yīng)你的紅外遙控器硬件,決定遙控器發(fā)射的信號(hào)能不能被接收信號(hào)的機(jī)器識(shí)別.
代碼不對(duì)應(yīng)你的遙控器,就會(huì)導(dǎo)致,遙控器按下時(shí)機(jī)器能正常閃燈,但卻沒有任何動(dòng)作

找到你的遙控器識(shí)別碼,替換這四位代碼,保存進(jìn)去,機(jī)器就能對(duì)遙控器按鍵有反應(yīng).



怎么用adb找你的遙控器識(shí)別碼,怎么保存?或者看一樓感謝的原帖網(wǎng)址,或者看二摟,會(huì)簡化總結(jié)一下




二,修改遙控器按鍵碼,讓某些不管用的按鈕變管用

修改遙控器識(shí)別碼,讓按鍵能起作用后,大概率會(huì)發(fā)現(xiàn),遙控器按鍵的作用是亂的,跟原來不一樣,甚至只有某幾個(gè)按鍵有作用

所以三個(gè)辦法,
辦法一是找你的同型號(hào)盒子(很可能是相同遙控器)的用戶,傳你一個(gè)能用的remote.tab1,替換掉現(xiàn)在刷機(jī)之后的遙控器文件
(tab1到tab5里,說不定就能碰上是完全符合你遙控器的文件,只改開頭的遙控器識(shí)別碼,改好就能正常對(duì)應(yīng)按鍵.需要注意tab1到tab5的機(jī)器識(shí)別碼不能重復(fù),否則重復(fù)的話遙控只會(huì)按照序號(hào)在前的文件.)

辦法二是用之前備份的文件,試試直接替換刷機(jī)后的遙控器文件
辦法三是參照備份的文件,手動(dòng)修改刷機(jī)后的遙控器文件

辦法三具體怎么修改,
舉例現(xiàn)在的remote.tab1(或2345)中顯示
        0x9c    113 ;MUTE
        0x82    176 ;SE**NGS
        0x98    102 ;HOME

這種remote.tab1里每行的三部分是:
遙控器按鍵碼 + 安卓功能數(shù)字代碼(推薦修改這個(gè))+數(shù)字代碼對(duì)應(yīng)的說明(這部分應(yīng)該是修改或刪掉也不產(chǎn)生影響效果)

就是說現(xiàn)在用113在對(duì)應(yīng)靜音功能,176在對(duì)應(yīng)系統(tǒng)設(shè)置功能,
對(duì)照你的[遙控器原裝系統(tǒng)]備份的文件,把數(shù)字修改變成相符的對(duì)應(yīng)關(guān)系之后,遙控器按鍵就都能正常用了

[遙控器按鍵碼]對(duì)應(yīng)什么[安卓功能數(shù)字],在每個(gè)原系統(tǒng)對(duì)應(yīng)的都不一樣,沒有統(tǒng)一的可改,

所以若沒有原裝系統(tǒng)的遙控器文件備份,就需要自己對(duì)照,按下了什么遙控器按紐、產(chǎn)生什么遙控器按鍵碼(查看方法見二摟),然后填寫你想設(shè)定的安卓功能數(shù)字

想知道數(shù)字碼是什么安卓功能效果,在remote.tab1里已經(jīng)列出了一些,或者可以查網(wǎng)上更全的說明,或者更復(fù)雜的是參考kl文件(在二樓說),網(wǎng)上說明的不一定符合你的系統(tǒng),kl文件也不一定準(zhǔn)確(除了不帶型號(hào)的通用模板generic.kl,還有針對(duì)遙控器型號(hào)調(diào)整后的類似Vendor_0001_Product_0001.kl這種文件)






刷的新系統(tǒng)中,若是不帶remote.tab1 ~ remote.tab5,也沒有remote.conf,也沒有key.xml,就需要去搜索一下自己盒子品牌的遙控器文件是哪個(gè),還可以改成去找kl文件(好比名為Vendor_0001_Product_0001.kl)
kl文件一般放在/system/usr/keylayout/文件夾下,進(jìn)去之后會(huì)看見已裝上的不同遙控識(shí)別碼,里面有可能沒有一個(gè)符合手中遙控器,但都是從generic.kl作的模板上修改調(diào)整出來的,所以也可以直接復(fù)制出來一份generic.kl自己修改



上一篇:哪位大神解決一下海信IP202H救磚的問題黑磚。
下一篇:廣東電信天邑ty1613線刷問題求助
沙發(fā)
 樓主| 發(fā)表于 2023-11-1 11:51 | 只看該作者 | 來自北京
本帖最后由 quakeskyq 于 2023-11-2 15:53 編輯

二樓,通過adb獲得遙控器識(shí)別碼、遙控器按鍵碼,具體操作

參考原帖
https://blog.csdn.net/yao108yao/article/details/109010811
https://www.jianshu.com/p/5ecf24a08340
(不過都只談了remote.conf與kl文件,沒包括remote.cfg.像1樓原帖所寫的remote.cfg就是設(shè)計(jì)者沒把遙控器識(shí)別碼與按鍵碼寫在remote.cfg里)



首先需要你的電視盒能從另一臺(tái)設(shè)備上(手機(jī)或pc)用adb連接上,可以是wifi連接,也可以是usb線連接(一般是用雙公頭線)

1,
wifi連接電視盒,需要知道電視盒的ip地址,并且電視盒在系統(tǒng)中打開了"允許adb調(diào)試"的選項(xiàng)
好比我的路由器管理ip是192.168.31.1,電視盒是192.168.31.44
連接電視盒的adb命令就是

adb connect 192.168.31.44 
(只有返回英文的成功連接提示,才算有效連接,不然需要檢查adb工具與防火墻等等是否有問題,電視盒是否不許adb連接,以及路由是否不允許局域網(wǎng)內(nèi)互通,等等各種問題.)

2,
adb成功連接后,

輸入adb remount 
(這一步會(huì)臨時(shí)把電視盒內(nèi)所有文件從只讀變成可修改,有些機(jī)器需要root權(quán)限才可以辦到,沒有root權(quán)限,輸入后則會(huì)提示remount的各種錯(cuò)誤.開root權(quán)限的辦法放在后面的樓層里交流.
adb remount 是把機(jī)器上所有部分都臨時(shí)變成可修改,也可以換成adb shell mount -o remount,rw /system 是只改system文件夾下的全部.兩種輸入方式,一種提示錯(cuò)誤,另一種一般也會(huì)提示錯(cuò)誤,而不是換一種寫法就成功)

輸入adb shell
(adb成功連接的電視盒,在這一步輸入后,會(huì)從用其他機(jī)器操控電視盒命令,轉(zhuǎn)入以電視盒本機(jī)的身份來操控命令;若adb沒連接上電視盒就會(huì)提示錯(cuò)誤.
轉(zhuǎn)入電視盒本機(jī)身份后,若新一行結(jié)尾顯示的是#,說明具有某程度的root權(quán)限(即管理員superuser權(quán)限),不一定是完整的root權(quán)限;若新一行結(jié)尾顯示的是$,說明完全沒獲得root權(quán)限(只是普通用戶身份)

輸入su
(這一行的意思是,使用本機(jī)已有的superuser權(quán)限.若你電視盒本來已有root權(quán)限,但是前面提示的是$,在輸入這一行后,提示就會(huì)變成#.若是電視盒還沒開權(quán)限,$的提示就不會(huì)變.)

3,
輸入dmesg -c
(dmesg命令,是獲得電視盒這次開機(jī)后的所有操作日志,-c是最后再顯示一次的同時(shí)把之前的所有日志清除,開始新起頭日志,以免大量無關(guān)的日志不方便翻找需要看的部分.再次輸入dmesg -c就會(huì)發(fā)現(xiàn),返回的提示沒那么多行了.)

把遙控器上的按鍵挨個(gè)按幾個(gè),然后
輸入dmesg | grep framecode=
//這一行等效于輸入dmesg | grep "code is",兩種命令之中一個(gè)管用就用不著另一個(gè)

(輸入這行,會(huì)把之前按下遙控器按鈕發(fā)送的信號(hào)都顯示出來,樣圖見1樓感謝的原帖網(wǎng)址

0x的后八位之中,5-8位是固定的,不換其他遙控器就不會(huì)變,是遙控器識(shí)別碼;3-4位是遙控器按鍵碼,對(duì)應(yīng)你剛才按下的不同按鍵)

最簡單的情況,光是知道5-8位的遙控器識(shí)別碼,照著修改系統(tǒng)里的remote.tab1里的開頭部分就夠了,不用手動(dòng)調(diào)整按鍵碼.需要調(diào)整按鍵碼的話,辦法在后文講.


3附.

網(wǎng)上有很多繞遠(yuǎn)的命令行其實(shí)沒必要,又需要把dmesg輸出的日志轉(zhuǎn)換成文本文件,又需要輸入更復(fù)雜的dmesg命令.好比dmesg | grep "code is 0x" | rev |cut -c 5-6 -c 9-10| rev |uniq >> /sdcard/IRdump.log

不過復(fù)雜命令的好處是,可以把按下遙控器時(shí)發(fā)送的按鍵碼(前面說的5-6位的數(shù)字)單獨(dú)列出來,在按鍵全按了一遍后,看起來不那么亂;而且轉(zhuǎn)換成文本,就可以按照生成的內(nèi)容順序粘貼到遙控器文件內(nèi),讓遙控器文件內(nèi)每行的順序符合自己的遙控器.




4,
怎么修改系統(tǒng)文件的remote.tab1

--------------

辦法一,有root權(quán)限的話,用文本工具直接打開/vendor/etc/remote.tab1來在原地修改


辦法二,用pull / push傳出傳入命令

輸入exit 
(作用是,從在電視盒中以電視盒身份操作命令,推回在電視盒中以連接設(shè)備的身份操作命令)

輸入adb pull /vendor/etc/remote.tab1 1.tab1
(作用是,把電視盒中放在/vendor/etc文件夾的remote.tab1傳輸?shù)竭B接設(shè)備,重命名為1.tab1并保存在adb工具的文件夾下.也可以傳輸?shù)狡渌募A,好比改成adb pull /vendor/etc/remote.tab1 d:/1.tab1 就會(huì)保存到D盤下)

然后在其他設(shè)備上用文本編輯工具修改1.tab1

修改好后的1.tab1傳回電視盒:
輸入adb push 1.tab1 /vendor/etc/remote.tab1


辦法三,用cp復(fù)制粘貼命令

之前不輸入exit,改為
輸入cp /vendor/etc/remote.tab1 /sdcard/1.tab1

存在sd卡中,把sd卡拿出來,放到pc上用文本編輯工具修改1.tab1

修改好后的1.tab1傳回電視盒:
輸入cp /sdcard/1.tab1 /vendor/etc/remote.tab1


辦法四,用安卓帶的vi命令行修改

輸入vi /vendor/etc/remote.tab1
--------------

5,重新啟動(dòng)電視盒,在有些電視盒直接就好了

6,
電視盒上沒有remote.tab1 ~ remote.tab5 就需要去搜索一下自己盒子品牌的遙控器文件是哪個(gè)
具體操作與第4步相近,具體差異,參考二樓感謝的原帖網(wǎng)址



像海思芯片的遙控碼文件是 key.xml     晶晨的是remont.conf
也有些系統(tǒng)則是寫在remote.cfg里
還有的寫在/system/vendor/bin下的remotecfg這個(gè)文件里
情況很多種,最好找到原機(jī)的刷機(jī)包,直接替換進(jìn)去

沒地方去找,還可以改成去找kl文件(好比名為Vendor_0001_Product_0001.kl)

kl文件一般放在/system/usr/keylayout/文件夾下,進(jìn)去之后會(huì)看見已裝上的不同遙控識(shí)別碼,里面有可能沒有一個(gè)符合手中遙控器,但都是從generic.kl作的模板上修改調(diào)整出來的,所以也可以直接復(fù)制出來一份generic.kl自己修改

目前收集到的,不同文件各自所放的位置,在這里列出

/vendor/etc/remote.tab1
/system/etc/remote.conf
/device/hisilicon/bigfish/system/ir_user/key_pars/key.xml
/system/vendor/bin/remotecfg
/system/usr/keylayout/Vendor_0001_Product_0001.kl

似乎有人在海思中修改了key.xml但沒起作用,不知是不是還需要修改其他文件.





開root權(quán)限的辦法放在后面的樓層里交流.

板凳
 樓主| 發(fā)表于 2023-11-1 12:37 | 只看該作者 | 來自北京
本帖最后由 quakeskyq 于 2023-11-1 13:08 編輯

三樓內(nèi)容目前發(fā)不出來,不知為什么提示有"不良信息",正在找站長解決

三樓,更復(fù)雜的情況

一,
有些電視盒,想讓按下遙控器按鈕在dmesg中有反應(yīng),似乎需要先打開/vendor/etc/remote.cfg 文件中的debug功能,把debug_enable 從0改成1
若有改動(dòng),保存后別忘了還原權(quán)限變回改動(dòng)前的644:
輸入chmod 644 /vendor/etc/remote.cfg

二,
有些電視盒,修改remote.cfg之后需要手動(dòng)重新加載:
輸入remotecfg -c /vendor/etc/remote.cfg -d
(我沒查-c -d都是干什么用的)
以及在修改remote.conf之后需要手動(dòng)重新加載
remotecfg /system/etc/remote.conf

三,
有時(shí)不能確定電視盒是不是能對(duì)遙控器有反應(yīng)

就需要先用getevent -l 或者getevent -v 確定是否能收到遙控器信號(hào),若是在getevent中,鼠標(biāo)鍵盤等等其他信號(hào)都能收到,唯獨(dú)遙控器不能,但是在dmesg又能看見檢測(cè)到遙控器信號(hào),這就是目前找不到辦法解決的.很可能是系統(tǒng)制作修改者亂刪改東西把基本功能破壞了,需要修復(fù)的地方太多.

若是能收到信號(hào),但是因?yàn)檫b控器識(shí)別碼或遙控器按鍵碼錯(cuò)誤,而導(dǎo)致的按鍵不管用,簡單修改后就能正常用,這種情況下,按遙控器后,會(huì)看見dmesg中顯示的遙控器代碼結(jié)尾顯示wrong code,是表示能接收但不能正確識(shí)別信號(hào),只是時(shí)別的問題所以容易修改.


地板
 樓主| 發(fā)表于 2023-11-1 12:56 | 只看該作者 | 來自北京
本帖最后由 quakeskyq 于 2023-11-1 13:00 編輯

舉例一個(gè)tab1

custom_name = amlogic-remote-1
custom_code = 0xc43b
release_delay = 80

key_begin
    0xdc 116            ;116 POWER    WAKE
    0xcb 605            ;TV_SOUND_CHANNEL
    0x9c 113            ;MUTE
    0x82 176            ;SE**NGS
    0x98 102            ;HOME
    0xce 97                ; DPAD_CENTER
    0xca 103            ; DPAD_UP
    0xd2 108            ; DPAD_DOWN
    0x99 105            ; DPAD_LEFT
    0xc1 106            ; DPAD_RIGHT
    0x8d 119            ;MEDIA_PLAY_PAUSE
    0xc5 158            ;BACK
    0x85 115            ;VOLUME_UP
    0xdd 607             ;PAGE_UP
    0x80 402            ;CHANNEL_UP
    0x86 114            ;VOLUME_DOWN
    0x8c 608            ;PAGE_DOWN
    0x81 403            ;CHANNEL_DOWN
    0x87 11             ; num 0
    0x92 2                ; num 1
    0x93 3                ; num 2
    0xcc 4                ; num 3
    0x8e 5                ; num 4
    0x8f 6                ; num 5
    0xc8 7                ; num 6
    0x8a 8                ; num 7
    0x8b 9                ; num 8
    0xc4 10                ; num 9
    0x9a 609             ; num *
    0x9b 610            ; num #
    0x95 125            ;MENU
    0x9d 121            ;MEDIA_REWIND
    0x9e 120            ;MEDIA_FAST_FORWARD
    0x84 128            ;MEDIA_STOP
    0xc9 135            ;TV_SUBTITLE
    0xc7 603            ;PROG_BLUE
    0xd8 603            ;PROG_BLUE
    0xda 600            ;PROG_RED
    0x83 602            ;PROG_YELLOW
    0xc6 601            ;PROG_GREEN   
key_end
5#
發(fā)表于 2023-11-1 13:54 | 只看該作者 | 來自湖南
6#
發(fā)表于 2023-11-1 14:22 | 只看該作者 | 來自山東
謝謝,好文章 很難見到了。。。。。。
7#
 樓主| 發(fā)表于 2023-11-1 14:39 | 只看該作者 | 來自北京
本帖最后由 quakeskyq 于 2023-11-1 14:41 編輯

四,
甚至有些時(shí)候需要修改的是 /system/bin/set_display_mode.s(H),因?yàn)橛行┰O(shè)計(jì)者把開機(jī)后是否自動(dòng)加載remote.conf寫在s(H)文件里

居然網(wǎng)站在這種地方設(shè)置成"不良信息"過濾...真是猜不不到



附,
查看所有輸入設(shè)備的命令:cat /proc/bus/input/devices
或者getevent 與 getevent -v
dumpsys input | more查詢目前輸入設(shè)備對(duì)應(yīng)的kl文件:keylayoutflie行,若是使用generic.kl說明是沒有專門kl文件而調(diào)用的默認(rèn)kl文件



感謝原帖
http://m.81jnr2m.cn/tv-505563-1-1.html
https://www.cnblogs.com/milton/p/12355976.html
https://www.codenong.com/cs107103047/
https://blog.csdn.net/yao108yao/article/details/109010811
https://blog.csdn.net/yun382657988/article/details/51517741

原帖中所說的"盒子終端"指找個(gè)"終端軟件程序app"安裝在盒子上,想用終端修改的辦法的話,可以下載"終端模擬器",可以相當(dāng)于直接在pc上用adb連接操控的同樣作用,
在電視盒上安裝好終端軟件,打開就相當(dāng)于在pc上連接好電視盒后,用命令行進(jìn)入了adb shell中的效果

remotecfg.s(H)的內(nèi)容是:幾個(gè)remote*.tab文件合并成remote.cfg

8#
 樓主| 發(fā)表于 2023-11-1 14:41 | 只看該作者 | 來自北京
本帖最后由 quakeskyq 于 2023-11-3 14:23 編輯

四樓

有人推薦程序Button Mapper Pro,連喚醒、休眠、關(guān)機(jī)都能弄弄出來
感謝https://www.right.com.cn/forum/thread-2724956-1-1.html

remote.conf與remote.tab1 對(duì)應(yīng)安卓功能數(shù)字的列表(不一定符合你的系統(tǒng))
參考原帖https://www.cnblogs.com/milton/p/12355976.html

遙控器代碼調(diào)試,有些機(jī)器上可以使用adb的ir_user命令,或者getevent命令,捕捉電視盒接收到的信號(hào)
參考原帖http://m.81jnr2m.cn/forum.php?mod=viewthread&tid=1179117


------------------

總結(jié)

從以上成功修改可以看出,有時(shí)候紅外遙控器不通用,并不是紅外線遙控器的發(fā)射接收頻率不一致,電視盒能好好收到不同遙控器的紅外信號(hào)時(shí),還會(huì)因?yàn)閺S商與系統(tǒng)制作者的改動(dòng),使系統(tǒng)中接收遙控器信號(hào)后的反應(yīng)代碼不一樣,代碼不一樣而導(dǎo)致對(duì)反應(yīng)無法翻譯成有效的遙控信號(hào).
9#
發(fā)表于 2023-11-1 17:01 | 只看該作者 | 來自江蘇
來看看這個(gè)
10#
發(fā)表于 2023-11-1 17:01 | 只看該作者 | 來自江西
很需要這個(gè)內(nèi)容

本版積分規(guī)則

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

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

GMT+8, 2024-11-20 06:36 , Processed in 0.071048 second(s), 13 queries , Redis On.

Powered by Discuz!

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

© 2007-2024 ZNDS.Com

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