E5885, 장치상 밴드 설정 메뉴 구현<

추석이네요< 방문자 분들도 모두 좋은 한가위 되세요<

추석이니까 할 일 없고, 게임도 며칠 하다보니 너무 심심하고, 유튜브 구독 목록도 다 봐버려서 장치의 전원 버튼을 여러번 눌러 접근할 수 있는 메뉴에 LTE 밴드를 설정할 수 있는 기능을 구현했어요<

당연하지만 ValdikSS 씨의 커스텀 펌웨어에서 작동해요, 혹은 수동으로 oled 바이너리의 하이재킹이 필요해요<

소스는 이쪽이에요<1)ValdikSS씨의 코드를 포크했어요< 아직 SKT 이외의 통신사 밴드는 어떻게 표시할까 좀 고민이네요..< 이 장치가 지원하는 밴드가 너무 많아서 저 작은 화면에 그 밴드를 다 표시할 순 없고, 그렇다고 저렇게 SKT용만 덜렁 만들어놓기도 좀 애매한 것 같아서요..<

일단은 쓰는 사람이 없으니 저대로 놔두고, SMB 데몬을 컴파일해서 라우터에 한번 올려볼 생각이에요<

Sn   [ + ]

E5885 커스텀 펌웨어

사실 굳이 꼭 커스텀 펌웨어를 올려야 한다는 이유 같은건 아직 없지만, 그래도 쉘이라거나 접근할 수 있는 커스텀 펌웨어가 있어요<

이쪽으로 가면 찾을 수 있어요< ValdikSS씨가 만들었죠< (러시아어)

mod1.2 기준으로 순정 펌웨어 (21.236.05.00.00 기반) 에 비해서 다른 점을 아래에 적자면…

  • OTA 업데이트 시 서명 검증 하지 않음
  • ADB를 통해서 라우터 본체로 파일 전송 가능
  • 텔넷으로 내부 쉘 접속 가능
    • atc 명령어로 쉘에서 at 명령어 실행 가능
    • ttl 명령어로 ttl 변경 가능 (변경시 NAT 하드웨어 가속 꺼짐)
    • imei 명령어로 장치 imei 변경 가능 (주의, 이 기능으로 IMEI를 조작하면 불법이에요<)
    • 그 외 balong-nvtool 등의 외부 프로그램을 가지고 장치 nvram 접근/수정 가능
  • DPI를 최대한 피하려고 노력…하는 anticensorship 기능 (한국에선 잘 안되지만, 해외에선 될 수도 있겠죠..< 적어도 러시아에선 되는 모양이네요<)
  • OLED 화면에 조작 가능한 메뉴 추가
    • LTE/3G/GSM 등 모드 변경 가능
    • TTL 변경 가능
    • IMEI 변경 가능
    • USB 모드 조합 (AT, 네트워크, SD) 변경 가능
    • ADB, 텔넷, 웹 인터페이스 접속 제한 가능
    • 커스텀 스크립트 활성화/비활성화를 OLED 화면으로 가능
  • Busybox가 풀 버전으로 대체됨
  • AT^DATALOCK 비활성화
    • 커스텀 펌웨어에서 어떤 펌웨어라도 올릴 수 있어요<

같이 따라오는 WebUI 인터페이스의 다른 점은

  • 장치 정보란에 잡다한 정보 추가 (지금 잡고 있는 밴드, 주파수 대역폭 등)
  • USSD 코드 사용 가능 (한국에선 필요 없지만, 해외에선 필요할수도 있겠죠<)
  • 여러가지 언어 추가 (한국어 포함, 하지만 좀 버그가 있는지 미노리 기기에선 안되네요..<)

순정 펌웨어에서 커스텀 펌웨어로 업그레이드 하려면 부트 핀을 조작해서 올려야 해요<

E5885, 날아간 NVRAM 복구

시작하기에 앞서,

  • NVRAM 덤프에는 잠재적으로 민감한 정보가 존재합니다. 이 정보가 공개되면 수사기관이나 정부등의 단체에서 개인을 추적할 수 있게 될 가능성이 있습니다. 다른 사람에게 자신의 NVRAM 덤프를 아무런 조치 없이 공유하지 마세요.
    • 공유하게 될 경우 최소한 다음의 정보는 임의의 데이터로 바꾸세요
      • IMEI
      • SN
      • MAC
      • Wi-Fi SSID/PW (만약 기본 SSID/PW를 계속 사용하고 있는 경우)
  • NVRAM 덤프엔 안테나 캘리브레이션(보정) 데이터가 존재합니다. 유감스럽게도 안테나는 동일한 모델이더라도 조금씩 다른 특성을 지니고 있는 경우가 많습니다. 여기 공개된 NVRAM 덤프를 자신의 기기에 덮어씌울 경우 제조 편차등의 경우에 따라서 자신 기기의 원래의 성능을 발휘하지 못하게 될 가능성이 있습니다. (예, 낮은 신호 세기, 느려진 속도 등)
    • 가능하다면 자신 기기의 NVRAM 파티션을 덮어씌우기 전 백업하세요.
  • IMEI를 임의로 수정하는 것은 대한민국에서 불법입니다. 반드시 원래 장치의 IMEI를 사용하세요.

필요한 준비물:

  • 루트 쉘 접속이 가능하게 설정된 E5885
  • NVRAM 파티션 이미지 (Thanks to ValdikSS)
  • 다음 중 적당한 도구
    • balong-nvtool
      • 주의, 이 툴은 아직 E5885에 충분히 테스트 되지 않았습니다. 절대로 필요한 것 외의 데이터를 바꾸지 마세요.
      • 이 툴을 사용해 NVRAM 데이터를 수정할 경우 NV 체크섬 값이 올바르게 계산되지 않는 문제가 보고되었습니다. 이 문제가 해결된 최신 버전1)Git 기준 커밋 babbac22c06c1ec17b7c8d25f0b03caa7f48d462 이후을 사용하세요.
    • imei (21.236.05.00.00 mod 1.1 내장 스크립트)
    • AT^PHYNUM (펌웨어 내장 AT 명령어, AT^DATALOCK=0 필요)
  1. E5885에 SD 카드, adb, netcat 등 적합한 방법을 사용하여 NVRAM 이미지를 복사합니다.
  2.  각각의 이미지를 물리 장치 디렉터리에 씁니다.

    mount -o remount,ro /modem_log
    cat mtdblockx > /dev/block/mtdblockx

  3. 장치를 재부팅 합니다.
  4. 적합한 도구를 사용하여 IMEI, SN, MAC 등을 재기록 합니다.

Sn   [ + ]

E5885 펌웨어, WebUI & OTA 이미지

펌웨어 파일의 저작권은 Huawei에 있습니다. 이것은 제 저작물이 아닙니다.

글로벌 버전


중국어 버전


OTA 이미지

더 보기 “E5885 펌웨어, WebUI & OTA 이미지”

NVRAM 복구 성공<

3G도 잘 되고, 속도도 잘 나오네요<

아직 일부 해결 못한 문제가 있지만, 곧 해결할 수 있을거라고 봐요<

ValdikSS 씨와 같이 협의해서 자료랑 진행상황을 공유하기로 했고, ValdikSS씨는 4PDA 스레드에(러시아어), 미노리는 이 블로그에 관련된 내용을 다시 한번 정리할 예정이에요<

앞으로 이 블로그 보단 4PDA 쪽에서 일이 더 많이 진전될 가능성이 높아요, 관련된 내용이 업데이트 되는걸 발견하게 된다면 이쪽에도 간단하게 번역해서 소개하도록 할게요-

우선은 NVRAM 복구 관련해서 가이드를 작성하고 자료를 준비하고 있어요, 며칠 내로 업데이트가 될 거에요-

수정된 usbloader 이미지, NVRAM 복구 가능성에 대하여

좋은 소식이 몇개 있어요<

갈아먹은 톡스 나사를 풀었다는 점이 첫번째 좋은 점이에요< 드디어 다시 라우터 보드의 등짝을 볼 수 있죠<

두번째는 4pda에 주로 있는, 라우터 리버싱을 즐겨하시는 러시아 친구들이 E5885에 관심을 가지기 시작했다는 거에요< NVRAM 복구 가능성이 많이 올라가는 느낌이네요<

만약 수정된 파일등이 퍼블릭 도메인으로 인터넷에 풀린다면 관련해서 글을 업데이트 하고, 이 블로그에도 파일을 호스팅 하도록 할게요<

E5885, 시리얼 넘버, MAC 주소를 복원하는 방법

…라곤 가이드처럼 제목을 적었는데, 사실은 가이드가 아니에요..< 기존에 있던 가이드에 관련된 정보를 수정할 예정이에요..<

이 글을 적으면서 무언가 좀 미묘한 느낌인게, 좋은 내용도 있고 나쁜 내용도 있거든요…

우선 좋은 점을 말하자면, 시리얼 넘버랑 하드웨어 MAC 주소를 복원할 수 있게 되었어요, 드디어<

더욱 더 좋은 점은 이제 밴드 5에서도 정상적인 속도 (방금 측정해보니 10MHz 밴드에서 50-60Mbps 나오네요… 지금은 밤시간이니 거의 낼 수 있는 최고속도를 내고 있는거겠죠..<) 가 나온다는거죠… 아마도 하드웨어 MAC 주소가 설정된 값이 없어서 failback하는 overhead가 없어진거랑 관련이 있는게 아닌가 싶네요…  (그냥 예상이지만, 애초부터 원인을 잘 모르겠네요..< 20MHz 밴드를 잡고 있을땐 또 20-30Mbps는 나왔었고…)

재부팅 한번 하니 무슨 귀신들린것처럼 다시 또 3-5Mbps네요..! 아이고..<

나쁜 점은…… 플래시 핀을 엑세스하려면 분해해야 하는 그 안테나, 거기에 쓰는 나사 머리를 갈아먹었어요..< 톡스 나사가 갈리는건 진짜 신기하네요… 그만큼 많이 열고 닫긴 했지만, 이렇게 빨리 갈려버릴 줄은 몰랐어요… 그래서 더이상 E5885를 분해해서 핀을 접근할 수 없어요..< 앞으로 이 기기의 분석에 중대한 차질이 생길 것 같네요… (3G를 살리는 거라거나, CA를 살리는 거라거나…)

이 기기를 리버싱하는 건 분명 즐거운 일이지만, 그렇다고 20만원 중반쯤 되는 기기를 취미용으로만 하나 더 살만큼 지금 경제사정이 그렇게 좋진 않아서 이 기기를 하나 더 새로 살때까진 적어도 핀을 엑세스 하는 게 필요한 작업은 못할 것 같아요..<

푸념은 그만 쓰고, 기존의 가이드를 업데이트 할게요<

관련된 글 (그리고 내용이 업데이트 될 글):

E5885 펌웨어 리전 변경

E5885, 앞서 포스팅 한 방법대로 펌웨어 리전 변경 후 생기는 문제점에 대해서

펌웨어 리전을 변경하고 나서 생기는 좀 심각한 문제와 덜 심각한 문제들이 있는데요,

  • 좀 덜 심각한 문제들
    • MAC 주소가 날아감 -> 고칠 수 있음
    • S/N이 날아감 -> 고칠 수 있음
    • IMEI가 날아감 -> 심각한 문제겠지만 고칠 수 있음
  • 좀 심각한 문제들
    • 왠지 모르겠지만 3G가 동작하지 않음
      • 덕분에 SMS 수발신도 먹통…
    • 왠지 모르겠지만 CA가 동작하지 않음
      • 집 근처가 CA가 안되는 지역일 수 있으니 조금 더 테스트 예정
    • 왠지 모르겠지만 성능이 묘하게 안좋아짐 -> 관련된 내용 확인 필요

좀 덜 심각한 문제들 의 경우엔 NVRAM을 덤프해서 분석/수정 후 다시 씌울 수 있으면 바로 고칠 수 있는 문제가 되지만, 좀 심각한 문제들은 왜 저런 문제가 생기는지 도저히 모르겠네요…

일단 밴드마스크는 기본값 그대로 3G 전체 밴드, LTE 되는 전체 밴드 인데 왜 3G가 안 붙는지도 모르겠고… 보이기는 하는데 안 붙는거면 그나마 좀 이해라도 될텐데 아예 기지국이 보이지도 않으니 더 문제에요…

그래서 일단은 이 장치를 좀 더 파야 NVRAM을 건드릴 수 있을 것 같아서 쉘 엑세스를 어떻게 하면 열 수 있는지 찾고 있어요, 그런데 예전 장치들과는 다르게 꼭꼭 잘 잠궈두긴 했네요, 이 모뎀은.. 예전엔 각종 소프트웨어 exploit이 많아서 루트 권한으로 arbitrary command execution 같은건 진짜 5분만 찾으면 할 수 있었는데 이건 겉으로 보이는건 적어도 그런게 없어서… 그래서 아마도 남은 희망은 UART 포트인 것 같은데, 이건 화웨이에 쓰는 UART 커넥터 스트립 + UART-USB 장치 세트가 은근..히 좀 많이 비싸서 일단 당장은 못 살것 같아요..< 저게 싫으면 오실로스코프 들고 패드 하나하나 다 확인해야 하는데 UART 커넥터가 없는데 오실로스코프가 있을리가 없죠…..<<

만약 CA나 그런게 계속 안 돌아오면 에그 11기가짜리 요금제 신청할까 좀 많이 고민중이에요..< KT 장치 하나 사서 비교 좀 해보게..<


아, CA 상태가 어떤지 테스트 해 볼 만한 HiLink API 엔드포인트를 찾았는데요, 적당히 관리자 페이지에서 관리자로 로그인 한 뒤에 /api/device/signal 를 GET으로 불러오면…

<?xml version=”1.0″ encoding=”UTF-8″?>
<response>
<pci>xxx</pci>
<sc></sc>
<cell_id>xxxxxx</cell_id>
<rsrq>-10dB</rsrq>
<rsrp>-61dBm</rsrp>
<rssi>&gt;=-51dBm</rssi>
<sinr>&amp;gt;=30dB</sinr>
<rscp></rscp>
<ecio></ecio>
<mode>7</mode>
<ulbandwidth>10MHz</ulbandwidth>
<dlbandwidth>10MHz</dlbandwidth>
<txpower></txpower>
<tdd></tdd>
<ul_mcs></ul_mcs>
<dl_mcs></dl_mcs>
<earfcn>DL:xxxx UL:xxxxx</earfcn>
<rrc_status>1</rrc_status>
<rac></rac>
<lac></lac>
<tac>xxxx</tac>
<band>5</band>
<nei_cellid>No1:0</nei_cellid>
<plmn>45005</plmn>
<ims></ims>
</response>

대충 이런 느낌으로 이제야 좀 뭔가 쓸만한 정보가 나와요<

LTE가 지금 테스트하면서 좀 지나치게 상태가 안좋은 이유는 여기에서 밴드 5를 쓰고 있어서 그런가보네요..< 잠시 상태가 좋아졌을 때 보니 밴드 7 (20MHz) 를 쓰고 있던데… (신호가 많이 낮았지만)


2017년 8월 29일 추가,

지나치게 속도가 안나오는 문제에 대해서 해결방법을 찾은걸지도 모르겠네요, 좀 테스트 후 다시 업데이트 할게요..


같은 날 추가,

아마도 해결 방법을 찾은 것 같네요.. 관련된 포스트를 하나 쓰고 기존 포스트를 업데이트 했어요-

E5885 펌웨어 리전 변경

시작하기에 앞서,

  • 이 작업을 하면 장치의 워런티가 무효화될 수 있습니다. 이 작업을 하는 도중 발생한 문제에 대해서 제조사가 유/무상 수리를 거부할 수 있습니다.
  • 이 작업을 하는 도중 생긴 문제는 제가 책임을 지지 않습니다. 최대한 도와드리려고 노력은 하겠지만 기본적으론 스스로 해결하셔야 합니다.
  • 장치의 시리얼 번호와 IMEI, 그리고 중요한 정보를 미리 기록해 두십시오. 만약 유실될 시 복구할 때 필요할 수 있습니다.
  • 분해 가이드와 마찬가지로 기계 번역의 편의성을 위해 표준적인 문체로 작성합니다. 양해 부탁드립니다.

이 작업을 시작하기 전 미리 준비하셔야 할 파일들:

이 작업을 시작하기 전 미리 준비하셔야 할 환경들:

  • 적당한 리눅스 배포판1)블로그 주인은 Arch Linux를 사용했습니다, 초보자의 경우 Ubuntu 등의 Debian 기반 배포판을 권장합니다.
    • GCC, Makefile로 기본적인 컴파일이 되는 환경이어야 합니다. 이와 같은 설정에 대해서는 다른 블로그의 게시물을 참조하세요.
    • Git이 필요합니다. 대부분 기본적으로 있겠지만 만약 없다면 패키지 관리자로 설치하세요.
    • 중급의 리눅스 기반 환경 사용 능력이 필요합니다.
  • Balong-usbdload
  • Balongflash
  • Minicom 등과 같은 시리얼 인터페이스 접속이 가능한 프로그램 (ttyUSB 인터페이스 접속용)

 

  1. 장치의 디버그 핀을 쇼트시켜 디버그 모드로 진입시킵니다. (전 가이드 참조)
  2. Git으로 Balong-usbdload, Balongflash를 clone 합니다.
  3. 모든 clone 한 폴더 루트에서 make를 사용하여 컴파일 합니다.
  4. Balong-usbdload 를 사용하여 복구 모드로 다음과 같이 진입합니다.
    • 주의, 이 과정에서부터 장치의 NAND 내용과 NVRAM이 초기화됩니다.
    • dmesg, lsusb 등으로 올바른 tty 인터페이스 포트를 찾은 후 사용하세요.

    sudo ./balong-usbload -p /dev/ttyUSB4 -c e5885_usblsafe.bin

  5. 장치가 재부팅 된 후 사각형 안에 화살표가 있는 모양이 디스플레이에 표시됩니다.
  6. Balongflash 를 사용하여 원하는 펌웨어를 플래싱합니다.
      • dmesg, lsusb 등으로 올바른 tty 인터페이스 포트를 찾은 후 사용하세요.

    sudo ./balongflash -p /dev/ttyUSB4 xxxx.bin

  7. 장치를 사용하시면 됩니다.

Sn   [ + ]

E5885 분해 – 펌웨어 강제 플래싱을 위한 디버그 핀 엑세스

(Huawei E5885 / E5885Ls-93a disassembly)

시작하기에 앞서,

  • 익숙하지 않은 기기를 분해할 땐 항상 조심해야 합니다. 이 가이드를 따라 분해하면서 발생한 기기의 파손등은 스스로가 책임지셔야 합니다. 또한, 분해하면서 생기는 라벨의 파손으로 기기의 보증은 만료될 수 있습니다.
  • 작업을 시작하기 전 적합한 공구를 갖추세요. (여기에선 T5 드라이버)
  • 작업을 시작하기 전 주변 환경을 정리해주세요. 이렇게 하면 나사를 혹시 떨어뜨려서 잃어버려도 쉽게 찾을 수 있습니다.
  • 기기 안에는 작은 부품이 많이 들어있습니다. 반려동물 등 작은 부품을 삼킬 수 있는 대상이 주변에 오지 못하도록 주의하십시오.
  • 기초적인 전자기기에 대한 지식이 없으시다면 스스로 분해를 시도하지 않는 것을 권장합니다. 주변에 전자기기의 분해/조립에 능숙한 사람이 있다면 도움을 요청하세요.
  • 언제나 미노리의 블로그는 편하게 읽을 수 있는 문체를 지향합니다. 하지만 이 글은 기계 번역의 편의성을 위하여 표준 문체로 작성되었습니다. 양해를 부탁드립니다.

  1. 적합한 드라이버를 사용해 후면의 나사를 풉니다.
    1. 중국 내수용 기준으로 정보 라벨 아래에 숨겨진 나사가 하나 존재합니다. 잊지 말고 푸세요.
    2. 중국 내수용 기준으로 우측 상단에 있는 흰색 스티커 아래에 나사가 하나 존재합니다. 잊지 말고 푸세요.
    3. 나사는 총 8개 입니다. 모든 나사의 길이가 같아보이고, 아마도 문제가 없겠지만 그래도 항상 원래 위치에 끼울 수 있도록 정리하는게 좋은 습관입니다.
  2. 아직도 분리하지 않았다면 지금 USIM과 microSD를 장치에서 반드시 분리하세요. 다음 절차 진행 전 분리하지 않으면 장치가 파손될 위험이 있습니다.
  3. 기기의 앞쪽 부분 (디스플레이 쪽) 과 프레임 사이가 벌어질 것입니다. 적당한 도구를 사용하여 무리하지 말고 사이를 벌리다 보면 파손 없이 전면을 열 수 있습니다.
  4. 6400mAh 메인 배터리를 사이에 두고 기기 양쪽에 안테나, 배터리 위로 액정과 메인보드가 보이기 시작합니다. 메인보드 양쪽 사이드 부분에 있는 나사를 풉니다.
  5. 오른쪽 안테나에 나사가 있습니다. 나사를 풉니다.
  6. 이제 오른쪽 안테나를 힘을 들이지 않고 분리할 수 있습니다. 오른쪽 안테나를 분리합니다.
  7. 디스플레이 왼쪽 EMI 쉴드에 케이스와 연결되는 그라운드 접지용 테이프가 붙어있습니다. 접지 테이프를 살살 제거합니다. 테이프가 없어도 동작에 문제는 없지만, 기기 그라운드 문제가 발생할 잠재적인 가능성이 있습니다.
  8. 배터리와 함께 메인보드를 케이스에서 제거합니다. 배터리와 메인보드를 잇고 있는 리본 케이블은 액정 아래에 있습니다. 끊어지지 않게 조심스럽게 분리하세요.
  9. 메인보드에 달려있는 배터리를 유의하면서 조심스럽게 뒤집습니다.
  10. 유심 슬롯 오른쪽 아래(↘)에 황색의 테스트 패드 3개가 있습니다. 테스트 패드 중 가장 아랫쪽 핀이 디버그 핀입니다. 디버그 핀을 그라운드와 쇼트하면 장치를 기동할 때 강제 플래싱 모드에 들어갈 수 있습니다.

펌웨어 복구/설치에 대해선 다음 포스트를 참조하세요:

E5885 펌웨어 리전 변경