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

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

查看: 848157|回復(fù): 649
上一主題 下一主題
[教程]

B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2018-8-27 20:42 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來自江蘇
B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

本系列最后一彈,感謝各位壇友捧場(chǎng)。這一彈才是重頭戲,也許是當(dāng)前全網(wǎng)體驗(yàn)最優(yōu)、兼容最廣雙桌面、雙網(wǎng)切換方案,您試試就知道了。只要盒子有雙網(wǎng)卡,理論全部適用。

電信盒子本來只能看 ITV,我們獲取 ADB 權(quán)限后,就能看第三方軟件了。但 ITV 是內(nèi)網(wǎng)與 Internet 分在不同 Vlan,可以認(rèn)為分為兩個(gè)局域網(wǎng),不可互通。并且電信盒子開啟 Wifi 就拿不到內(nèi)網(wǎng) IP,嘗試了很多方案如設(shè)置路由、自動(dòng)切換 WIFI 與有線等,都不甚滿意。

最終,完成方案是通過兩個(gè)按鍵,分別設(shè)置為 IPTV 桌面、當(dāng)貝桌面??梢砸绘I觸達(dá)任一桌面,同時(shí)進(jìn)入 IPTV 桌面,自動(dòng)將網(wǎng)絡(luò)切為 IPTV 內(nèi)網(wǎng);進(jìn)入當(dāng)貝桌面,網(wǎng)絡(luò)為 Internet 網(wǎng)絡(luò)。

感謝壇友 NadOo,與 Github 用戶 Wyf841015 腳本啟發(fā)。

ZTE B860A 有線(itv) + wifi(互聯(lián)網(wǎng)) 雙線自動(dòng)切換腳本
exitiptv

自己重新寫了一個(gè)腳本,本腳本優(yōu)點(diǎn):
1、繞過 ITV 廣告,清爽啟動(dòng)(快到有時(shí)開機(jī)連進(jìn)度條都看不到)
2、可自定義開機(jī)進(jìn)入 ITV 還是當(dāng)貝桌面(請(qǐng)關(guān)閉當(dāng)貝軟件里自啟,避免干擾)
3、一鍵觸達(dá) ITV 或當(dāng)貝桌面,就像添加了桌面 Home 鍵,再也不用不停按返回鍵了
4、切換網(wǎng)絡(luò)完全可控,避免自動(dòng)腳本不識(shí)別某些內(nèi)置 APP 頻繁切換問題
5、迅速,切桌面、切網(wǎng)進(jìn)程無阻塞




一、確定要使用的按鍵、桌面

1.1 獲取按鍵 ID

用電腦 ADB 連接到機(jī)頂盒,并進(jìn)入 adb shell
  1. adb connect 192.168.50.83 # 連接 IP 為 192.168.50.83 的電視盒子
  2. adb shell # 進(jìn)入盒子 bash 環(huán)境

  3. # 輸入此命令,然后用遙控對(duì)準(zhǔn)電視按想用的按鍵,bash 界面會(huì)出現(xiàn)此按鍵的 ID 識(shí)別碼,記下來。選兩個(gè)按鍵,一個(gè)用作 iptv,一個(gè)用作當(dāng)貝桌面(或其他桌面)
  4. getevent -c 1 /dev/input/event0
復(fù)制代碼
B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

1.2 獲取桌面名稱

把電視遙控到你想開啟的 IPTV 桌面界面,然后執(zhí)行如下命令:
  1. # 輸入命令,獲取當(dāng)前桌面程序
  2. dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
復(fù)制代碼

可以參考下圖,我當(dāng)前運(yùn)行的是電視貓,u0 之后那部分便是我們要用的名稱
mCurrentFocus=Window{41b735d8 u0 com.moretv.android/com.moretv.module.lowmm.SingleActivity}
獲取當(dāng)貝桌面同理。

B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

至此,拿到想用的兩個(gè)桌面名稱記下來。比如腳本中默認(rèn)的,南京電信盒子默認(rèn)桌面為 ihome,第三方為當(dāng)貝桌面:

  1. com.ihome.android.launcher/com.ihome.android.launcher2.activity.MainActivity

  2. com.dangbei.tvlauncher/com.dangbei.tvlauncher.IndexActivity
復(fù)制代碼

二、自定義腳本并上傳

腳本我放在 gist 上(歡迎 Star),同時(shí)提供目前測(cè)試穩(wěn)定版,供下載:

在線地址:https://gist.github.com/boboidream/5ae1ec328e6623774411f80580fdc134
下載地址: dtchange-0.0.2.sh.zip (1.58 KB, 下載次數(shù): 513)

  1. [更新日志]
  2. 2018.08.27 | [!] am start 添加 -n 參數(shù),不再報(bào) / 操作符錯(cuò)誤
  3. 2018.08.27 | [+] 發(fā)布
復(fù)制代碼


下載后,用文本編輯器打開,可以看到開頭定義變量:

  1. boot='iptv' # iptv | dangbei
  2. code_iptv='0001 00fb 00000001'
  3. code_dangbei='0001 00ad 00000001'
  4. id_iptv='com.ihome.android.launcher/com.ihome.android.launcher2.activity.MainActivity'
  5. id_dangbei='com.dangbei.tvlauncher/com.dangbei.tvlauncher.IndexActivity'
復(fù)制代碼

大家一看就明白了,把前文拿到的值填入即可:
boot 值決定開機(jī)進(jìn)入哪個(gè)桌面。
code_iptv 值改為遙控器上想用作 iptv 桌面的鍵位值。
code_dangbei 值改為第三方桌面按鍵 ID 值
id_iptv 值為希望 code[/cur]iptv 這個(gè)按鍵要啟動(dòng)的界面
id_dangbei 值為第三方桌面程序名。

三、上傳腳本

  1. # 掛載機(jī)頂盒
  2. adb remount

  3. # 上傳文件(假設(shè)本地腳本位置在 ~/Desktop/B860AV1.1-T/script/)
  4. adb push ~/Desktop/B860AV1.1-T/script/dtchange.sh /system/bin/

  5. # 設(shè)定可運(yùn)行權(quán)限
  6. adb shell chmod 0755 /system/bin/dtchange.sh
復(fù)制代碼

一定要把 wifi 與有線開關(guān)都勾上。拿不到內(nèi)網(wǎng)地址沒關(guān)系。
B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)
  1. # 執(zhí)行一次,測(cè)試是否成功。
  2. adb shell sh /system/bin/dtchange.sh

  3. # 查看腳本進(jìn)程,如果在運(yùn)行,就可以去電視上測(cè)試了
  4. adb shell busybox pgrep -fl dtchange.sh
復(fù)制代碼


四、添加開機(jī)自啟、后臺(tái)白名單

第三部分測(cè)試沒問題了,就把咱們的 dtchange.sh 加入到開機(jī)自啟腳本就好了
  1. nohup /system/bin/dtchange.sh &> /cache/log/dtchange.log
復(fù)制代碼

假設(shè)機(jī)頂盒開機(jī)文件腳本在 /system/bin/init.zte.post_boot.sh 執(zhí)行以下命令即可
  1. echo "nohup /system/bin/dtchange.sh &> /cache/log/dtchange.log" >> /system/bin/init.zte.post_boot.sh
復(fù)制代碼





無意間看到 /system/etc/BannedKillBackgroundProcessesWhiteList.ini 文件,看名字推測(cè)是系統(tǒng)后臺(tái)白名單,就刪掉沒用的程序,把我們的兩個(gè)桌面名稱加進(jìn)入了。

B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

后臺(tái)常住才切換快么,省下著內(nèi)存空間就得用在刀刃上。

至此,一個(gè)干凈、可控、雙桌面系統(tǒng)的機(jī)頂盒完成了。來張桌面截圖,完結(jié)此系列。

B860AV1.1-T 優(yōu)化第四彈:兩鍵切換 IPTV 與當(dāng)貝桌面、雙網(wǎng)

End

dtchange.sh.zip

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

評(píng)分

參與人數(shù) 4威望 +16 金幣 +30 Z幣 +6 收起 理由
guoyuh78 + 2 + 5 ZNDS論壇有你更精彩,一起愉快的搞機(jī)吧!.
cl312 + 2 + 5 雙網(wǎng)切換 是不是要單線復(fù)用 我的不能連WiFi.
eswgdeh + 6 + 10 + 3 ZNDS有你更精彩:)
hao501802766 + 6 + 10 + 3 ZNDS有你更精彩:)

查看全部評(píng)分


上一篇:B860AV1.1-T 優(yōu)化第三彈:凍結(jié)無用軟件,控制程序自啟
下一篇:山東電信中興B860AV1.1升級(jí)最新系統(tǒng)后狂吃內(nèi)存如何解決??
推薦
發(fā)表于 2020-7-1 23:42 | 只看該作者 | 來自江蘇
nnnnnnnnnn
推薦
發(fā)表于 2018-8-31 10:23 | 只看該作者 | 來自江蘇
我試了一下,界面可以切換,但是網(wǎng)絡(luò)切換不過來。我的也是南京電信,盒子也一樣,但是我的軟件版本可能高一點(diǎn),是2018-1-9的,有線和無線同時(shí)打開時(shí),只有有線能連接,無線顯示未連接,所以也沒辦法調(diào)試。還有個(gè)問題,界面切換時(shí),“信息”鍵原來的界面會(huì)先出來,然后再轉(zhuǎn)到當(dāng)貝桌面的,應(yīng)該怎么禁止“信息”鍵原來的界面出現(xiàn)?
另外,我是純小白,這句是什么意思?nohup /system/bin/dtchange.sh &> /cache/log/dtchange.log
推薦
 樓主| 發(fā)表于 2018-8-29 23:55 | 只看該作者 | 來自江蘇
朋有 發(fā)表于 2018-8-29 23:49
明天試試,謝謝啦,可行的話,樓主就可以寫1.1-T破解優(yōu)化 第五彈了

腳本是一定可以的,這是通用方案,不過覺得還是永久更改好些。

/system/etc/init.zte.post_boot.sh 腳本寫在這個(gè)自啟文件應(yīng)該好些。

不寫了,哈哈,我也是小白一個(gè)。
推薦
 樓主| 發(fā)表于 2018-8-29 12:56 | 只看該作者 | 來自江蘇
本帖最后由 一肩月光 于 2018-8-30 10:11 編輯
hao501802766 發(fā)表于 2018-8-29 10:57
打開 解析錯(cuò)誤,還得翻墻?

這都被墻了?

  1. #!/system/bin/sh

  2. #----------------------------------------
  3. # Author: boboidream
  4. # Email: me@wenboz.com
  5. # Version: 0.0.2
  6. # Date: 2018.08.27
  7. #----------------------------------------

  8. boot='iptv' # iptv | dangbei
  9. code_iptv='0001 00fb 00000001'
  10. code_dangbei='0001 00ad 00000001'
  11. id_iptv='com.ihome.android.launcher/com.ihome.android.launcher2.activity.MainActivity'
  12. id_dangbei='com.dangbei.tvlauncher/com.dangbei.tvlauncher.IndexActivity'

  13. func_test() {
  14.     mount -o remount,rw /system
  15.    
  16.     local PN=`busybox basename $0`
  17.     local Pnum=`busybox pgrep -f $PN|busybox wc -l`
  18.    
  19.     if [ $Pnum -gt 1 ]; then
  20.         echo "dtchange.sh running"
  21.         exit 2
  22.     fi
  23. }

  24. func_init() {
  25.     if [ $boot = 'dangbei' ]; then
  26.         open_dangbei
  27.     else
  28.         local res1=`svc wifi disable`

  29.         while [ "$(getprop net.zte.eth.netstate)" != "CONNECTED" ]
  30.         do
  31.             sleep 0.5
  32.         done
  33.         
  34.         sleep 1 && am start -n $id_iptv
  35.     fi
  36. }

  37. open_iptv() {
  38.     local netstate=$(getprop net.zte.eth.netstate)
  39.    
  40.     am start -n $id_iptv &
  41.    
  42.     if [ "$netstate" != "CONNECTED" ]; then
  43.         local res1=`svc wifi disable`
  44.         #echo "$(date +%X) iptv_wifi_down: $res1"
  45.         local res2=`ifconfig eth0 up`
  46.         #echo "$(date +%X) iptv_eth0_up: $res2"
  47.     fi
  48. }

  49. open_dangbei() {
  50.     local netstate=$(getprop net.zte.wifi.netstate)
  51.    
  52.     am start -n $id_dangbei &
  53.    
  54.     if [ "$netstate" != "CONNECTED" ]; then
  55.         local res1=`ifconfig eth0 down`
  56.         #echo "$(date +%X) init_eth0_down: $res1"
  57.         local res2=`svc wifi enable`
  58.         #echo "$(date +%X) init_wifi_up: $res2"
  59.     fi
  60. }

  61. main() {
  62.     while [ 1 ]; do
  63.         local rm_code=$(getevent -c 1 /dev/input/event0)
  64.         
  65.         if [ "$rm_code" = "$code_iptv" ] ; then
  66.             open_iptv
  67.         fi
  68.         
  69.         if [ "$rm_code" = "$code_dangbei" ] ; then
  70.             open_dangbei
  71.         fi
  72.         
  73.         sleep 1
  74.     done
  75. }

  76. func_test
  77. func_init
  78. main

  79. # advice:  add com.dangbei.tvlauncher & com.ihome.android.launcher to
  80. # /system/etc/BannedKillBackgroundProcessesWhiteList.ini
  81. # keep desktop app run in background.
復(fù)制代碼

推薦
 樓主| 發(fā)表于 2018-8-28 21:29 | 只看該作者 | 來自江蘇
一肩月光 發(fā)表于 2018-8-27 21:03
版主敬業(yè)啊,贊贊贊~~~~~~

強(qiáng)烈建議各位壇友到:https://gist.github.com/boboidream/5ae1ec328e6623774411f80580fdc134 來下載腳本。

因?yàn)槭褂眠^程中,會(huì)不斷的改進(jìn),帖子每次修改提交都要審核,比較繁瑣,帖子里腳本就不再更新了。

現(xiàn)在 0.0.2 版,直接進(jìn)入 iptv 可能由于啟動(dòng)太快,有概率導(dǎo)致連開機(jī)驗(yàn)證都一起跳過。我在 Gist 做了 Sleep 1s 調(diào)整,還在測(cè)試,希望能修復(fù)這問題。
7#
發(fā)表于 2018-8-27 20:48 | 只看該作者 | 來自江西
這個(gè)樓主不錯(cuò)
8#
 樓主| 發(fā)表于 2018-8-27 21:02 | 只看該作者 | 來自江蘇
huanzhu格格 發(fā)表于 2018-8-27 20:48
這個(gè)樓主不錯(cuò)

感謝捧場(chǎng)~~~
9#
 樓主| 發(fā)表于 2018-8-27 21:03 | 只看該作者 | 來自江蘇

版主敬業(yè)啊,贊贊贊~~~~~~
10#
 樓主| 發(fā)表于 2018-8-27 21:03 | 只看該作者 | 來自江蘇

版主敬業(yè)啊,贊贊贊~~~~~~
11#
發(fā)表于 2018-8-27 21:19 | 只看該作者 | 來自江蘇
很詳細(xì)
12#
發(fā)表于 2018-8-27 23:12 | 只看該作者 | 來自廣東
看不懂。。
13#
發(fā)表于 2018-8-28 16:47 | 只看該作者 | 來自四川
牛X,佩服佩服!!
14#
發(fā)表于 2018-8-29 10:55 | 只看該作者 | 來自廣東
前排支持,加精!
15#
發(fā)表于 2018-8-29 10:56 | 只看該作者 | 來自遼寧
這是大佬~
16#
發(fā)表于 2018-8-29 10:57 | 只看該作者 | 來自廣東
一肩月光 發(fā)表于 2018-8-28 21:29
強(qiáng)烈建議各位壇友到:https://gist.github.com/boboidream/5ae1ec328e6623774411f80580fdc134 來下載腳本 ...

打開 解析錯(cuò)誤,還得翻墻?
17#
發(fā)表于 2018-8-29 10:58 | 只看該作者 | 來自河南
看了樓主一系列的教程,受益匪淺
18#
發(fā)表于 2018-8-29 10:58 | 只看該作者 | 來自遼寧
感謝分享教程,這個(gè)雙網(wǎng)切換  桌面切換得學(xué)習(xí)下
19#
發(fā)表于 2018-8-29 10:58 | 只看該作者 | 來自陜西
學(xué)習(xí)~

本版積分規(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, 2024-11-11 11:51 , Processed in 0.077945 second(s), 14 queries , Redis On.

Powered by Discuz!

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

© 2007-2024 ZNDS.Com

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