首頁(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幣中心

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

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

查看: 692329|回復(fù): 499
上一主題 下一主題
[教程&攻略]

華為EC1308機(jī)頂盒更改參數(shù)教程

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2016-5-12 16:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來(lái)自浙江
華為EC1308機(jī)頂盒有幾個(gè)版本,本方式只適用于采用海思Hi3560V100芯片,且存在設(shè)備文件/dev/misc/e2prom_24lc16的機(jī)頂盒。


用Telnet登錄機(jī)頂盒,執(zhí)行下面的命令:
ls -l /dev/misc/e2prom_24lc16

修改參數(shù)程序源代碼如下:
#include <fcntl.h>
#include <malloc.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <string.h>

typedef struct {
        unsigned int        e2prom_cmd_sub_addr;
        unsigned int        sub_addr_count;
        unsigned char*        e2prom_cmd_data;
        unsigned int        data_count;
} e2prom_s_cmd;

#define E2PROM_CMD_READ 1
#define E2PROM_CMD_WRITE 2
#define E2PROM_DEVICE "/dev/misc/e2prom_24lc16"

static int readparam(unsigned char *mac, unsigned char *stbid)
{
        int fd, ret;
        e2prom_s_cmd arg;
        unsigned char buf[0x18];

        fd = open(E2PROM_DEVICE, O_RDWR);
        if (fd  < 0) {
                printf("Device %s open error.\n", E2PROM_DEVICE);
                return -1;
        }
        arg.sub_addr_count      = 2;
        arg.data_count          = 0x18;
        arg.e2prom_cmd_sub_addr = 0x290;
        arg.e2prom_cmd_data     = buf;
        ret = ioctl(fd, E2PROM_CMD_READ, &arg);
        if (ret != 0) {
                printf("Device %s read error.\n", E2PROM_DEVICE);
                return -1;
        }
        memcpy(mac, buf, 6);
        memcpy(stbid, &buf[6], 18);
        stbid[18] = '\0';

        return 0;
}

static int writeparam(unsigned char *mac, unsigned char *stbid)
{
        int fd, ret;
        e2prom_s_cmd arg;
        unsigned char buf[0x18];

        memcpy(buf, mac, 6);
        memcpy(&buf[6], stbid, 18);
        fd = open(E2PROM_DEVICE, O_RDWR);
        if (fd  < 0) {
                printf("Device %s open error.\n", E2PROM_DEVICE);
                return -1;
        }
        arg.sub_addr_count      = 2;
        arg.data_count          = 0x18;
        arg.e2prom_cmd_sub_addr = 0x290;
        arg.e2prom_cmd_data     = buf;
        ret = ioctl(fd, E2PROM_CMD_WRITE, &arg);
        if (ret != 0) {
                printf("Device %s write error.\n", E2PROM_DEVICE);
                return -1;
        }

        return 0;
}

int main()
{
        char c;
        int i, macs[6];
        unsigned char mac[6];
        unsigned char stbid[256];

        if (readparam(mac, stbid) < 0)
                return 1;

        printf("Current parameters: \n");
        printf("  MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
        printf("  STBID: %s\n", stbid);
        
        printf("\nPlease input new MAC (1a:2b:3c:4d:5e:6f): ");
        if (scanf("%02x:%02x:%02x:%02x:%02x:%02x", &macs[0], &macs[1], &macs[2], &macs[3], &macs[4], &macs[5]) != 6) {
                 printf("Input MAC error\n");
                 return 1;
        }
        for (i=0; i<6; i++)mac = macs;
        printf("\nPlease input new STBID: ");
        scanf("%s", stbid);
        if (strlen(stbid) != 18) {
                printf("Invalid stbid\n");
                return 1;
        }
        printf("\nNew parameters: \n");
        printf("  MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
        printf("  STBID: %s\n", stbid);

        printf("\nDo you want to change paramemters? (y/N) ");
        for (;;) {
                c = getchar();
                if (c == 'y' || c == 'Y')
                        break;
                if (c == 'n' || c == 'N') {
                        printf("\nAborted.\n");
                        return 1;
                }
        }
        if (writeparam(mac, stbid) == 0)
                printf("Parameters changed.\n");

        return 0;
}

上一篇:華為秘盒M310如何升級(jí)?刷機(jī)教程!
下一篇:華為ec6106v6聯(lián)通定制怎么刷機(jī)
沙發(fā)
發(fā)表于 2016-5-12 17:18 | 只看該作者 | 來(lái)自浙江
雖不明,但覺(jué)厲!這個(gè)厲害哦 漲知識(shí)了    感謝樓主的分享!
板凳
發(fā)表于 2016-5-13 16:47 | 只看該作者 | 來(lái)自山東
感謝分享,ZNDS有你更精彩:)
地板
匿名  發(fā)表于 1970-1-1 08:00 | 未知
post_deleted
5#
發(fā)表于 2016-5-14 10:23 來(lái)自ZNDS手機(jī)版 | 只看該作者 | 來(lái)自安徽
謝謝分享。。。。
6#
發(fā)表于 2016-5-14 10:25 來(lái)自ZNDS手機(jī)版 | 只看該作者 | 來(lái)自安徽
樓主你說(shuō)詳細(xì)點(diǎn)嗎?
7#
發(fā)表于 2016-5-19 10:30 來(lái)自ZNDS手機(jī)版 | 只看該作者 | 來(lái)自安徽
樓主能不能說(shuō)詳細(xì)點(diǎn)
8#
發(fā)表于 2016-5-20 15:20 | 只看該作者 | 來(lái)自廣東
強(qiáng)烈支持樓主ing……
9#
發(fā)表于 2016-5-28 20:26 | 只看該作者 | 來(lái)自河北
好東西呀 樓主好人 一會(huì)去試試
10#
發(fā)表于 2016-5-31 15:01 | 只看該作者 | 來(lái)自山西
強(qiáng)烈支持樓主ing……

本版積分規(guī)則

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

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

GMT+8, 2024-11-12 09:23 , Processed in 0.072037 second(s), 13 queries , Redis On.

Powered by Discuz!

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

© 2007-2024 ZNDS.Com

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