컴퓨팅/하드웨어

샤오미, 홍미 마이크 감도, 통화 감도 문제 해결 방법

epician 2017. 4. 21. 13:03

1. 샤오미폰의 통화감도 불량원인과 작업배경

처음 사용해본 샤오미폰이 '홍미 노트 3 프로' 였습니다. 얼마 사용하지 못하고 팔아치웠습니다. 카메라도 별로 맘에 안들고, 처음 접해본 MIUI도 별로 맘에 안들었습니다. 결정적으로 통화품질이 너무 안좋더군요. 통화할 때 상대방이 잘 안들린다고 ㅠ.ㅠ

이게 노이즈 감쇄 (Noise Cancellation) 기능이 연관된 버그라는 건 알았는데, 이미 마음이 떠난 상태라 방출~

그 이후 다른 폰을 몇 가지 사용하다 다시 '홍미 노트 4X'를 구입하게 됐습니다. 설마 이 폰도 같은 버그가 있을거라곤 생각도 못했는데, 아뿔사, 개봉 후 확인해보니 역시나 통화품질이 개판입니다. ㅠ.ㅠ 도대체 이런 폰을 어떻게들 쓰시는지.

주로 통화하는 상대방이 호소하는 증상은 음성이 끊겨서 들린다, 통화감도가 너무 멀다, 기계음처럼 노이즈가 낀다 등등입니다. 목소리가 조용한 편이거나 저음이신 분들은 이 문제가 특히 더 심각하실거에요.

MIUI 8 시리즈를 쓰는 폰은 모두 동일한 증상을 갖고 있을겁니다. 노이즈 감쇄(감소) 기능이 오작동 하면서 본인 목소리가 너무 왜곡되어 상대방에게 전달됩니다. 하단의 메인 마이크에서 조금만 떨어져도 목소리가 잘 전달되지 않습니다. 아주 조용한 실내 환경에서도 이 지경이고, 시끄러운 외부에선 때에 따라 통화가 불가능할 정도.

이 문제로 인한 통화불량인지 쉽게 확인하는 방법은 유선 이어셋(이어폰)이나 블루투스 헤드셋을 연결해서 통화해 보시면 됩니다. 이 경우엔 노이즈 감쇄 기능이 작동하지 않으므로 아주 깨끗한 통화상태를 확인할 수 있습니다.

Updated at 2017/06/24

MIUI 8.2.7 (글로벌 베타) 출시 이후 이 문제가 많아 나아졌습니다. 현재 MIUI 8.2.10 (글로벌 정식)까지 출시된 상태인데, 특별한 조작 없이 통화상대방이 불편함을 느끼지 못할 수준은 되는 거 같습니다.

다만, 노이즈 감쇄 기능은 여전히 작동 중인데, 개입강도가 많이 낮아진 느낌입니다. 문제는 이 기능을 아예 꺼버릴 수 있는 옵션이 아직 제공되지 않고 있습니다. 언제 다시 문제가 발생하지 몰라 일단은 관망 중..

2. 임시 해결책 I

정확한 해결책은 이 문제를 샤오미 측에서 해결해줘야 하는건데, 1년이 넘도록 이 버그를 아직도 안고치고 있습니다. 간단하게 노이즈 감쇄기능을 끄고 켤 수 있게 ON / OFF 옵션 하나만 넣어줘도 될텐데, 도대체 이 무슨 패기인지. 이런 게 대륙의 기개? ㅎㅎ

가장 간단하게 해결할 수 있는 해결책은 상단의 보조 마이크를 막는 것입니다. 보조 마이크에 유입되는 음량을 통해 노이즈 감쇄기능의 개입 정도를 계산하는데, 이 마이크를 막아버리면 항상 최소한의 노이즈 감쇄기능이 작동하게 됩니다.

적외선 센서 옆의 보조 마이크를 스폰지 테이프로 막아버린 휴대폰 사진스폰지 테이프로 상단 보조 마이크를 막은 모습

저는 스펀지 테이프를 작게 오려서 보조 마이크를 막았습니다. 떼어냈을 때, 흔적이 남지 않을 만한 테이프는 아무거나 괜찮으니, 작게 오려내서 막으시면 됩니다.

이렇게 막고 시험통화를 해보시면 이전보다 낫다는 느낌이 확실히 드실거에요. 최소한 목소리가 끊겨서 잘 안들린다고 불평하는 경우는 거의 없어집니다. 다만, 노이즈 감쇄 기능이 완전히 꺼진 게 아니므로 다른 폰에 비해서는 통화 품질이 여전히 좋지 않습니다.

이 트릭을 썼을 때, 문제점이 몇 가지 있습니다. 하나는 스피커폰 기능을 쓸 수 없다는 점. 스피커폰으로 통화를 할 때는 상단 보조 마이크가 메인 마이크가 됩니다. 헌데, 이 마이크를 가려놨으니 당연히 통화가 잘 될 수 없겠지요. 그리고, 동영상 촬영을 할 때도 보조 마이크가 막혀 있으니 스테레오 채널 중에 한쪽은 소리가 잘 녹음되지 않습니다.

3. 벽돌에 대비하는 응급복구 대책

상황에 따라 혹은 실수로 부팅이 안되는 벽돌폰이 될 수 있습니다. ㅠ.ㅠ
따라서, 폰이 벽돌이 된다는 최악의 상황을 가정하고 응구복구 방법 하나 정도는 숙지해놓고 작업하시는 걸 권장합니다.

제 경우, 셀러가 글로벌롬을 올린 상태로 배송해줬는데, 뭘로 언락을 한건지 뭔짓을 해도 TWRP가 안올라가더군요. 그래서, 필시 언락이 잘못 됐을거라는 생각에 다시 락을 걸었다가 언락하는 작업을 하려고 했습니다. fastboot oem lock 명령어로 락을 걸고 재부팅한 순간 벽돌 ㅠ.ㅠ

보통 샤오미폰은 EDL 케이블로 해결하던데, 최근 폰은 EDL 케이블을 사용하는 방법이 막혔다고 하네요. ㅠ.ㅠ
"아오~ 신발! 내가 이래서 샤오미폰은 안사려고 했어!!" 라고 머리를 쥐어 뜯다가, 아래 글을 보고 해결했습니다. 도구 없이 뒷판 뜯느라고 손톱이 아흑 ㅠ.ㅠ

벽돌이 되면 어떤 방법으로든 EDL 모드로 접근해서 MiFlash 툴로 펌웨어를 새로 올리시면 됩니다.

4. 임시 해결책 II

스피커폰을 써야겠다면 폰의 내부적인 소프트웨어 설정을 만져야 하는 방법 밖에 없습니다. 이게 굉장히 복잡한데, 먼저 부트로더 언락을 해야하고, 루팅을 하거나 커스텀 리커버리(TWRP)를 설치해야 합니다. 정말 개복잡... 커펌질도 귀찮아서 안하는데, 이 무슨 답답한 시츄에이션인지 ㅠ.ㅠ

저는 커스텀 리커버리 TWRP를 설치하는 방법을 택했습니다.

다만, 이렇게 소프트웨어 설정을 만져서 임시로 해결해 두어도, 새로운 펌웨어가 나와서 업데이트 하고나면 해당 설정 역시 초기화 되버립니다. 그러면, 아래 작업을 한번 더 반복해야 됩니다. 에혀...

4-1. Minimal ADB and Fastboot 설치

아래 사이트에서 Minimal ADB 프로그램을 다운받아서 설치합니다.

https://forum.xda-developers.com/showthread.php?t=2317790

4-2. 부트로더 언락

요즘 샤오미 폰은 부트로더가 잠겨 있어서 커스텀 리커버리를 설치할 수 없습니다. 따라서 부트로더 언락을 먼저 해줘야 하는데, 대략 3~4일 정도 소요됩니다. 샤오미 홈페이지에서 언락을 신청하면 3~4일 후에 언락이 승인되는 구조입니다.

언락 승인을 받은 후에 언락툴을 사용하여 언락을 하면 되는데, 자세한 방법은 아래 사이트를 참고하세요.

주의할 점은 언락 신청 시, 언락 사유를 대충 적으면 반려될 수도 있습니다. 혹시 반려되면 당황하지말고, 사유를 수정해서 재신청하시면 됩니다. 저 같은 경우, "I would like to use the custom recovery." 라고 적어서 신청했더니 며칠 후에 승인이 떨어졌습니다. 그리고, 언락 툴은 현재 2.2 버전으로 업데이트된 상태입니다.

4-3. TWRP 설치

언락 전에 폰의 개발자 옵션에서 USB 디버깅 기능을 켰을텐데, 혹시 모르니 해당 옵션이 켜져 있는지 폰 설정에서 확인하세요.

먼저 각자 폰에 맞는 TWRP 리커버리 이미지 파일 받아서 Minimal ADB 프로그램 폴더에 압축을 풀어서 복사해 넣습니다. 제 경우 아래 사이트에서 TWRP_mido.zip 파일을 받았습니다. 이 파일은 폰 기종별로 모두 다르니 주의하세요.

그리고, lazyflasher-no-verity-opt-encrypt.zip 파일을 받아서 폰 내부 메모리에 저장해둡니다. SD카드에 넣어도 상관 없고, 위의 TWRP 설치 참고 사이트나 아래 MIUI 포럼에서 받으실 수 있습니다.

더럽게 복잡하죠? 이제 반쯤 왔습니다. ㅠ.ㅠ

여기까지 준비가 됐으면, 폰을 fastboot 모드로 켜서 컴퓨터와 USB 케이블로 연결합니다.

fastboot 모드로 켜기

폰이 꺼진 상태에서 볼륨다운(-) 버튼과 전원버튼을 동시에 누르고 있으면, 짧은 진동과 함께 폰이 켜집니다. 이때 양 버튼에서 손을 떼면 화면에 인민토끼가 그려진 fastboot 모드로 진입합니다. 이 후, USB 케이블로 컴퓨터와 연결하면 됩니다.

명령창을 열어서 Minimal ADB 프로그램 폴더를 찾아갑니다. 그리고, 나서 아래 명령어를 차례로 입력합니다.

  1. fastboot devices
    기기가 fastboot 모드로 정확히 연결됐으면 기기 ID 등이 화면 나타납니다.
  2. fastboot flash recovery twrp.img
    리커버리 이미지를 롬에 올리는 과정. 완료 메시지가 나오면 다음 명령어 입력.
  3. fastboot boot twrp.img
    이 명령어를 입력하고 나면 TWRP로 부팅이 이뤄집니다. 부팅이 이뤄질 때까지 잠깐 기다리세요.

TWRP로 부팅이 이뤄지고나면 아까 폰 내부에 복사해둔 lazyfisher-no-verity-opt-encrypt.zip을 설치해야 합니다.
TWRP의 첫번째 메뉴 Install을 선택하고 파일 목록에서 복사해둔 zip 파일을 선택하시면 됩니다.

그런 다음 재부팅 해도 되고 안해도 되는데, 재부팅을 했다면 다시 TWRP로 진입해야 합니다.

리커버리(TWRP) 진입 방법

폰이 꺼진 상태에서 볼륨업(+) 버튼과 전원버튼을 동시에 누르고 있다가, 짧은 진동과 함께 폰이 켜지면 버튼에서 손을 뗍니다. 이후 리커버리로 부팅된 화면을 볼 수 있습니다.

5. TWRP를 통해 audio_platform_info.xml 파일 수정

TWRP 리커버리로 부팅해서 'Mount' 메뉴에 진입합니다. 여러 파티션이 보이는데 첫 번째 'System' 파티션을 선택하고 컴퓨터와 USB 케이블로 연결합니다.

  1. Minimal ADB가 설치된 폴더에서 명령창(Command Prompt)를 엽니다.
  2. 아래 명령어를 입력하여 폰의 audio_platform_info.xml 파일을 컴퓨터로 내려받습니다.
    adb pull /system/etc/audio_platform_info.xml
  3. 받은 xml 파일은 혹시 모를 사태에 대비하여 다른 곳이나, 다른 이름으로 복사하여 백업해두시고, 메모장 같은 텍스트 에디터로 열어서 </acdb_ids> 윗줄에 <device name="SND_DEVICE_IN_VOICE_DMIC" acdb_id="100"/>을 추가하고 저장합니다. 아래 그림 참고.
  4. 수정 후 저장한 파일을 아래 명령어로 다시 폰에 올립니다.
    adb push audio_platform_info.xml /system/etc
  5. 아래 명령어를 차례로 입력하여 방금 올린 파일에 대한 권한을 수정해 줍니다.
    adb shell
    cd /system/etc
    chmod 644 audio_platform_info.xml
    exit
  6. 컴퓨터에서 xml 파일을 수정해서 올리는 작업을 마쳤으면, TWRP의 Reboot -> System 메뉴를 통해 폰 재부팅. USB 케이블 제거.

xml 파일을 편집 중인 편집기audio_platform_info.xml 수정 내용

6. 완료 및 시험통화

위 수정 작업을 마쳤으면 폰을 재부팅하고 시험통화를 해보세요. 예전보다는 통화품질이 훨씬 나을겁니다. 다만, 이건 마이크 감도만 조정한 것이므로 어느 상황에서 노이즈 감쇄기능이 멍청하게 개입할지 알 수 없긴 합니다.

7. 다른 방법

위 xml 파일을 수정하는 방법을 사용하기 전에 build.prop 파일에서 노이즈 감쇄 기능을 아예 꺼버리는 설정을 사용한 적이 있습니다. MIUI 포럼에 올라온 글을 보고 작업했는데, 노이즈 감쇄 기능을 아예 꺼버린 탓에 통화감도는 많이 좋아졌으나 스피커폰으로 통화할 때, 하단 스피커로 전달되는 상대방의 목소리가 너무 작아지는 문제가 생기더군요. 참 희안한 폰입니다. ㅎㅎ

스피커폰 안써도 상관없다 싶으시면 아래 사이트를 참고해서 build.prop 파일을 수정해서 사용하셔도 됩니다. 작업 진행 순서는 앞서 설명한 xml 파일을 수정하는 것과 똑같습니다. 대신 작업할 대상 파일만 /build.prop로 바뀌는 거죠.