本帖最后由 網(wǎng)癮少年鄭某某 于 2019-3-29 15:29 編輯
圖片1.jpg (115.36 KB, 下載次數(shù): 10)
下載附件
保存到相冊
2019-3-29 13:18 上傳
首先,請將 華為悅盒刷機(jī)ROOT,但注意要用保留IPTV功能的方案進(jìn)行,然后把光貓與另兩個 路由設(shè)置在三個不同的網(wǎng)段,并把鋪路由IPTV拔號的這個MAC地址手工改為華為悅盒的MAC。
第二步,將網(wǎng)絡(luò)按上圖所示連接好設(shè)備,確保兩個路由各自拔號都能成功!PS: 若不記得拔號密碼請到網(wǎng)上營業(yè)廳在線重置取回密碼。 此時,你可以在電視盒中測試一下外網(wǎng)連接,將盒子IP設(shè)為靜態(tài)192.168.0.100,網(wǎng)關(guān)取值 192.168.0.1 其它項(xiàng)基本默認(rèn)值即可,打開第三方APP,就可以看視頻,網(wǎng)絡(luò)功能正常再來測試一下IPTV網(wǎng)絡(luò),將盒子IP設(shè)為靜態(tài)192.168.2.100,網(wǎng)關(guān)取值 192.168.2.1 其它項(xiàng)基本默認(rèn)值即可,打開IPTV,就可以看直播,功能也正常。
提示一下,上面兩個小測試中,你可以觀察一下在測試用第三方APP時,光貓的千兆口燈在狂閃;而在測試IPTV時,則光貓的IPTV燈在狂閃,符合預(yù)期。
到現(xiàn)在為止,你已可以進(jìn)行兩個網(wǎng)絡(luò)的切換了,但卻要人工操作,還是不方便,所以我們需要寫個腳本,讓這切換自動完成。(若對代碼編程沒接觸過且沒頭緒的,不建議往下折騰了)
第三步,測試IPTV運(yùn)行時appid的變化規(guī)律 你需要準(zhǔn)備一臺PC,保證這電腦與華為悅盒在同一局域網(wǎng),在這臺電腦中運(yùn)行CMD,在命令窗口中用telnet 192.168.0.100對盒子進(jìn)行連接,再準(zhǔn)備一個USB鍵盤與USB鼠標(biāo)插好到華為悅盒中,等會寫腳本要用;在華為悅盒中安裝一個文本編輯器以便接下來編寫腳本,我是直接用root explorer完成的,在/system/bin目錄中新建一個測試腳本 test.sh 注意要將此文件的權(quán)限設(shè)定為可讀寫可執(zhí)行屬性,以編輯方式打開test.sh文件,用剛才接好的鍵盤輸入以下腳本內(nèi)容并保存好文件:
#!/system/bin/sh while [ 1 ] do appid=$check_app check_app=$( dumpsys window w | grep -E com.huawei.iptv | grep / | busybox wc -l ) if [ "$check_app" != "$appid" ] ; then echo "appid: $check_app" fi done
編寫Shell腳本時一定要細(xì)心,因?yàn)閟hell語法非常變態(tài),對空格與標(biāo)點(diǎn)很敏感,若發(fā)現(xiàn)腳本運(yùn)行出錯,請檢查語法,有關(guān)shell學(xué)習(xí)請自行百度!
在電腦的cmd窗口運(yùn)行剛才的測試腳本/system/bin/test.sh 細(xì)心觀察IPTV運(yùn)行時appid的值是變化著的,網(wǎng)上有人說就直接取大于0的最小appid值作為判斷依據(jù),這是不完美的,在斷電開機(jī)后,首次運(yùn)行IPTV時,你會發(fā)現(xiàn)appid值的從小到大一直在變化著比如 3,5,8,15,26,33……,而關(guān)閉IPTV后,再運(yùn)行IPTV,你會發(fā)現(xiàn)此時的appid的值并不會太小,既然運(yùn)行IPTV時appid值的變化沒太大規(guī)律,那可以換個思路,觀察一下IPTV在退出時,這appid的值幾乎是固定的2-3個值22,23,24,這是我自己的盒子測試的結(jié)果,雖然不保證其他人的盒子也如此變化,但思路是正確的,你就觀察IPTV在退出時appid的變化規(guī)律,一旦發(fā)現(xiàn)了這規(guī)律,你就可以判斷IPTV何時退出了,就可以寫另一個腳本,在判斷IPTV退出時,自動切換外網(wǎng)IP,以下為本人自己的自動切換網(wǎng)絡(luò)的腳本:
#!/system/bin/sh #分配地址 ipA=“192.168.0.100 “ ipB=“192.168.2.100 “ routeA=“192.168.0.1” routeB=“192.168.2.1” networkline=““ appid=0 time_count=0 while [ 1 ] do time_count=`expr $time_count + 1` check_app=$( dumpsys window w | grep -E com.huawei.iptv | grep / | busybox wc -l ) case “$check_app” in 0 | 1 | 22 | 23 | 24) if [ “$networkline” != “DCHP-APP” ] ; then networkline=“DCHP-APP” echo “app mode...” ifconfig eth0 $ipA netmask $routemask sleep 0.5 ip route add default via $routeA dev eth0 echo “app mode done” fi ;; *) if [ “$networkline” != “PPPOE-IPTV” ] ; then networkline=“PPPOE-IPTV” echo “iptv mode...” ifconfig eth0 $ipB netmask $routemask sleep 0.5 ip route add default via $routeB dev eth0 echo “iptv mode done” fi ;; esac sleep 1 if [ $time_count -gt 362 ] ; then exit 0 fi done
將上面切換的腳本保存為 /system/bin/autonetwork.sh 并設(shè)置讀寫執(zhí)行的權(quán)限,腳本中使用到了expr命令,你可能需要從其它版本的sh中找到這expr文件復(fù)制到/system/bin中,同樣也要設(shè)置讀寫執(zhí)行的權(quán)限,強(qiáng)烈建議上面的腳本要自己在盒子中用鍵盤慢慢輸入,注意shell腳本變態(tài)的語法格式要求;若你是在windows中編輯好,再復(fù)制到盒子中,會無法運(yùn)行,因?yàn)椴煌到y(tǒng)對換行的處理編碼是不同的,但你可以通過第三方程序?qū)@種格式進(jìn)行轉(zhuǎn)換,相關(guān)方法,請百度。 在電腦cmd窗口中,測試一下剛才的腳本 /system/bin/autonetwork.sh 若出現(xiàn)錯誤提示,則自己再檢查輸入是否有誤,最后直到?jīng)]有錯誤,腳本就完成了。
接下來,就想辦法讓盒子開機(jī)啟動時自動運(yùn)行我們這個腳本,若按傳統(tǒng)的方案修改init的話,我們就要重新編譯并刷入修改后的rom非常麻煩,這里給出個更為簡單的方法:經(jīng)過對init一步步的分析,追蹤到系統(tǒng)會在 init.bigfish.rc 中啟動一項(xiàng)bigfish-setup的服務(wù),這項(xiàng)服務(wù)的腳本文本為/system/etc/init.bigfish.sh,這下好辦了,我們可以直接在這個init.bigfish.sh的最后面掛上我們的腳本即可,具體操作,就是修改/system/etc/init.bigfish.sh腳本文件,在最后面加上一行 /system/bin/autonetwork.sh & 保存修改并退出。 此時,已完成了全部工作了,你可以斷開盒子電源,重新啟動盒子,啟動后會出現(xiàn)一個提示框,大概是提醒系統(tǒng)已補(bǔ)破壞,不必理會,因?yàn)榫褪俏覀冏约盒薷哪莻€腳本文件的。
打開IPTV,看看直播,觀察光貓IPTV口的燈在狂閃,證明走的是iptv電信內(nèi)網(wǎng)通道。關(guān)閉iptv后,運(yùn)行一下第三方app,此時再觀察光貓的燈,iptv的燈已不再狂閃,改為千兆口的燈在狂閃,這就對了。 至此,不用wifi,只靠一條網(wǎng)線,就完美實(shí)現(xiàn)了有線雙網(wǎng),然后就能去當(dāng)貝市場里隨意下載安裝應(yīng)用打開使用,再也不需要拔插網(wǎng)線或者斷開網(wǎng)絡(luò)了!
timg.jpg (18.34 KB, 下載次數(shù): 8)
下載附件
保存到相冊
2019-3-29 15:28 上傳
|