- 기사 작성자는 본인의 Tozo T6 블루투스 이어버드 볼륨이 너무 크다는 문제에 직면했다.
- 작성자는 기기의 펌웨어를 직접 수정하여 문제를 해결하기로 결정했다.
- 작성자의 초기 계획은 자신의 기기를 위한 이진 파일을 찾고, 이진 구조를 이해하고, 이진 내의 오디오 파일을 찾아 오디오를 더 조용하게 만든 후 수정된 펌웨어를 기기에 플래시하는 것이었다.
- 작성자는 일부 가정이 잘못되었으며, 처음 생각했던 것보다 더 많은 역공학이 필요하다는 것을 발견했다.
- 작성자는 자신의 기기에 대한 칩셋이 Tensilica Xtensa ISA를 기반으로 하며 "Cadence HiFi DSP coprocessor"를 포함하는 Airoha AB1562임을 발견했다.
- 작성자는 Airoha 기기에 대한 진단 정보를 제공하고 새 펌웨어를 플래시할 수 있게 해주는 "AirReps156X"라는 안드로이드 애플리케이션을 찾았다.
- 작성자는 Tozo 애플리케이션이 펌웨어 버전과 현재 상태를 표시하며, 이는 업데이트를 확인하기 위해 서버와 통신한다는 것을 나타냈다.
- 작성자는 애플리케이션의 네트워크 트래픽을 모니터링하기 위해 인터셉팅 프록시를 사용하고, /api/v1/getOtaVersionV3에 대한 요청의 응답에 그가 찾고 있던 펌웨어 bins 링크가 포함되어 있다는 것을 발견했다.
- 작성자는 펌웨어 파일이 암호화되거나 압축되었으며, 왼쪽과 오른쪽의 FotaPackage 이진 파일에는 약간의 차이가 있다는 것을 발견했다.
- 작성자는 온라인에서 칩셋의 SDK 복사본을 찾아 SDK 내의 mp3 파일이 파일 시스템 이미지에 그대로 포함되어 있다는 것을 확인했다.
- 작성자는 펌웨어 이미지 내의 사운드 파일 볼륨을 재인코딩하거나 길이를 변경하지 않고 수정할 수 있었다.
- 작성자는 수정된 펌웨어를 기기에 성공적으로 플래시하여 훨씬 조용한 사운드를 얻었다.
- 작성자는 시스템 사운드의 볼륨 조절이 오디오를 재생하는 기기에서 일류 기능이어야 한다는 결론을 내렸다.