대폭 향상된 블루투스 오디오 품질을 위해 Android에서 블루투스 스택을 수정하는 방법



문제를 제거하기 위해 도구를 사용해보십시오

경고 :이 가이드는 Android에서 블루투스 스택 수정을 포함하는 고급 가이드입니다.이 가이드 전체를 읽고 제공된 모든 지침을 정확히 따르세요.



블루투스 헤드셋과 블루투스 오디오가 인기를 얻었음에도 불구하고 블루투스 스트리밍을 통해 오디오 정보와 주파수의 일부가 공중에서 손실되기 때문에 블루투스가 오디오 품질을 저하시키는 것으로 입증 되었기 때문에 오디오 애호가에게는 약간의 문제입니다.



이것이 일부 제조업체가 모든 헤드폰과 대부분의 Bluetooth 장치에서 지원하는 표준 SBC Bluetooth 코덱보다 음질을 향상시키기 위해 aptX 및 LDAC 코덱을 내놓는 이유입니다. 그러나 aptX 및 LDAC 코덱이있는 장치는 이러한 코덱 때문에 훨씬 더 비쌉니다. 소비자가 장기적으로 지불하는 라이선스 비용이 필요합니다.



SBC Bluetooth 코덱의 낮은 오디오 품질은 현재 모든 Bluetooth 스택 및 헤드폰 구성의 인위적인 제한으로 인해 발생하며 이러한 제한은 기존 장치에서 피할 수 있습니다.

블루투스 오디오에 관심이있는 경우이 가이드의 끝 부분에서 블루투스 오디오 로그 덤프를 가져 와서 검사하여 Android의 블루투스 수신기에서 어떤 종류의 오디오 품질과 주파수를 얻는 지 확인하는 방법을 보여 드리겠습니다.

이 안내서의 대부분은 표준 SBC Bluetooth 코덱의 출력 품질을 크게 향상시키기 위해 Bluetooth 오디오 출력을 읽는 몇 가지 간단한 조정 및 방법에 초점을 맞출 것입니다.이 전체 안내서를주의 깊게 읽으십시오. 매우 교육적이며 많은 내용이 있습니다. 장치 모델에 따라 플래시 또는 조정합니다.



이 가이드의 끝 부분에는 널리 사용되는 많은 Android 장치에 대한 사전 패치 된 Bluetooth 스택 목록이 있습니다. 다른 플래시 가능한 .zip과 마찬가지로 복구시 플래시 할 수 있습니다. 자신에게 속한 장치가없는 경우 Android에서 블루투스 스택 수정 가이드를 따르세요.

SBC 코덱에 대한 간략한 기술 정보

SBC에는 연결 설정 단계에서 협상되는 다양한 매개 변수가 있습니다.

  • 오디오 채널 유형 및 번호 : 조인트 스테레오, 스테레오, 듀얼 채널, 모노;
  • 주파수 대역의 수 : 4 또는 8;
  • 한 패킷의 오디오 블록 수 : 4, 8, 12, 16;
  • 양자화 비트 할당 알고리즘 : Loudness, SNR;
  • 양자화 프로세스에 사용되는 최대 및 최소 비트 풀 : 일반적으로 2-53.

디코더는 이러한 매개 변수의 조합을 지원하는 데 필요합니다. 인코더는 그 중 일부만 구현할 수 있습니다.

기존 Bluetooth 스택은 일반적으로 조인트 스테레오, 8 밴드, 16 블록, 라우드니스, 비트 풀 2..53과 같은 프로파일을 협상합니다. 이 프로필은 328kbps의 비트 전송률로 44.1kHz 오디오를 인코딩합니다.

Bitpool 매개 변수는 동일한 프로필 내의 비트 전송률에 직접적인 영향을 미칩니다. 높을수록 비트 전송률이 높아져 품질이 향상됩니다.

그러나 비트 풀 매개 변수는 특정 프로파일에 바인딩되지 않습니다. 비트 전송률은 오디오 채널 유형, 주파수 대역 수, 오디오 블록 수와 같은 다른 매개 변수의 영향도 크게받습니다. 비트 풀을 변경하지 않고 비표준 프로필을 협상하여 비트 전송률을 간접적으로 높일 수 있습니다.

예를 들어, 듀얼 채널은 각 채널에 대해 전체 비트 풀을 사용하여 채널을 개별적으로 인코딩합니다. 장치가 조인트 스테레오 대신 듀얼 채널을 사용하도록 강제하면 동일한 최대 비트 풀 (617kbps)에서 비트 레이트가 거의 두 배가됩니다.

나에게는 비트 풀이 내부 변수가되어야한다고 생각합니다. 비트 풀 값이 다른 코덱 매개 변수에 바인딩되지 않고 전역 값으로 만 정의되는 것은 A2DP 사양 설계 결함입니다.

이러한 고정 Bitpool 및 Bitrate 값은 고품질 오디오에 권장되는 값에서 비롯됩니다. 그러나 권장 사항은 프로필을 이러한 값으로 제한하는 변명이 아닙니다.

2007 년부터 2015 년까지 활성화 된 A2DP 사양 v1.2를 사용하려면 모든 디코더가 최대 512kbps의 비트 전송률로 올바르게 작동해야합니다.

SNK의 디코더는 최대 비트 전송률을 초과하지 않는 가능한 모든 비트 풀 값을 지원해야합니다. 이 프로파일은 사용 가능한 최대 비트 전송률을 모노의 경우 320kb / s, 2 채널 모드의 경우 512kb / s로 제한합니다.

새 버전의 사양에는 비트 전송률 제한이 없습니다. 2015 년 이후에 출시 된 최신 헤드폰은 비트 전송률을 지원할 수 있다고 가정합니다. 최대 1000kbps .

어떤 이유로 현재 테스트 된 모든 Bluetooth 스택 (Linux (PulseAudio), Android, Blackberry 및 macOS)에는 최대 비트 전송률에 직접적인 영향을주는 최대 비트 풀 매개 변수의 인위적인 제한이 있습니다. 그러나 이것이 가장 큰 문제는 아니며 거의 모든 헤드폰도 최대 비트 풀 값을 53으로 제한합니다.

대부분의 장치는 수정 된 Bluetooth 스택에서 507kbps의 비트 전송률로 인터럽트 및 크랙없이 잘 작동합니다. 그러나 이러한 비트 전송률은 재고 Bluetooth 스택과 함께 정상적인 조건에서 협상되지 않습니다.

*** 아래 가이드를 사용한 테스트에 필요 : bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso.torrent

PC에서 테스트하는 방법

높은 비트 전송률 SBC 헤드폰 호환성 테스트는 Bluetooth 어댑터가있는 PC에서 가장 쉽게 수행 할 수 있습니다. 수정 된 Bluetooth 스택이있는 Ubuntu 이미지를 준비했습니다. 가상 컴퓨터에서 실행하거나 (Bluetooth 어댑터를 가상 컴퓨터 내부의 USB 장치로 연결하면 랩톱에 내장 된 어댑터와도 작동합니다.) USB 플래시 드라이브. 이 이미지는 듀얼 채널, 8 개 대역, 16 개 블록, Loudness, 비트 풀 2..41, 44.1kHz (485kbps 비트 전송률 제공) 프로필을 사용합니다.

VM에서 실행

  • Virtualbox 및 Virtualbox Extension Pack 다운로드 : https://www.virtualbox.org/wiki/Downloads;
  • Virtualbox를 설치하고 시작하십시오.
  • 파일 → 환경 설정 → 확장을 사용하여 확장 팩을 설치하십시오.
  • 새 가상 머신 생성 : Linux, Ubuntu (64 비트), 1024 RAM. HDD를 생성하지 마십시오.
  • 가상 머신 설정으로 이동하여 스토리지에서 컨트롤러 : IDE, 비어 있음을 선택하고 CD 아이콘을 누르고 → 가상 광 디스크 파일 선택;
  • 다운로드 한 bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso를 선택합니다.
  • 설정 창을 저장하고 닫고 가상 머신을 시작하십시오.
  • 오른쪽 하단의 USB 케이블 아이콘을 마우스 오른쪽 버튼으로 클릭하고 Bluetooth 어댑터를 선택합니다.

PC에서 실행

이미지는 BIOS / CSM 및 UEFI 부팅을 지원합니다.

  • Etcher : https://etcher.io/를 사용하여 이미지를 USB 플래시 드라이브에 굽습니다. 이 작업은 USB 드라이브에있는 모든 기존 파일을 삭제합니다.
  • PC를 끄십시오.
  • USB 플래시 드라이브를 삽입하고 PC를 켜고 부팅 순서 버튼 (보통 Esc 또는 F12)을 누릅니다.
  • USB 플래시 드라이브를 선택하십시오.

테스트 수행

  • (선택 사항이지만 권장 됨) 바탕 화면에서 'Btsnoop Dump'스크립트를 두 번 클릭합니다. 나중에 분석하기 위해 Bluetooth 데이터 캡처를 시작합니다. 터미널 창을 닫지 마십시오.
  • 헤드폰을 페어링 모드로 전환하십시오.
  • 오른쪽 상단의 화살표를 클릭하고 Bluetooth 아이콘 → Bluetooth 설정을 선택하십시오.
  • 헤드폰을 선택하고 페어링이 완료 될 때까지 기다린 다음 창을 닫습니다.
  • Ubuntu 볼륨을 약 2/3로 설정합니다. 또한 페어링 후 매우 클 수 있으므로 헤드셋 버튼을 사용하여 볼륨을 줄이십시오.
  • 'music'폴더를 열고 'testrecord1.flac'를 재생합니다.
  • (선택 사항이지만 권장 됨) 플레이어를 닫고 터미널 창을 닫습니다. 데이터 캡처가 중지됩니다.
  • (선택 사항이지만 권장 됨) Firefox 브라우저를 열고 데이터 덤프 (데스크톱의 btsnoop_hci.btsnoop)를 https://btcodecs.valdikss.org.ru/에 업로드합니다.

음악 폴더에있는 다른 음악을 듣거나 직접 업로드 할 수 있습니다.

헤드폰에 딱딱 거리는 소리, 오디오 중단 또는 기타 사운드 왜곡이 없어야합니다. 고품질 사운드가 들리면 헤드폰이 485kbps의 비트 전송률로 오디오를 지원한다는 의미입니다.

Android 기기에서 테스트하는 방법

Android 스마트 폰 또는 태블릿에서 테스트하려면 루트 권한이 필요한 수정 된 Bluetooth 스택을 사용해야합니다.

Android에서 Bluetooth 데이터 덤프를 캡처하는 방법

  1. Bluetooth를 끄십시오.
  2. 개발자 설정에서 'Bluetooth HCI 스눕 로그 활성화'스위치를 활성화합니다.
  3. Bluetooth를 켜고 Bluetooth 메뉴를 사용하여 헤드셋에 연결합니다 (중요! 자동 연결을 허용하지 마십시오!).
  4. 짧은 오디오 샘플을 재생합니다.
  5. 개발자 설정을 열고 'Bluetooth HCI 스눕 로그 활성화'스위치를 비활성화합니다.
  6. /storage/emulated/0/btsnoop_hci.log 또는 /data/misc/bluetooth/logs/btsnoop_hci.log가 생성되어야합니다. 누락 된 경우 텍스트 편집기로 /etc/bluetooth/bt_stack.conf를 열고 BtSnoopFileName 옵션의 경로를 확인합니다.

헤드폰에 딱딱 거리는 소리, 오디오 중단 또는 기타 사운드 왜곡이 없어야합니다. 패치 된 라이브러리에서 고품질 사운드가 들리면 헤드폰이 512kbps의 비트 전송률로 오디오를 지원한다는 의미입니다.

위의 알고리즘을주의 깊게 따르십시오. 특히 헤드폰의 전원을 끄거나 페어링 후 연결을 끊는 경우 블루투스 설정에서 헤드폰에 수동으로 연결하는 것이 중요하므로 자동 연결을 허용하지 마세요!

최소 512kbit / s SBC를 지원하는 장치

  • 1 더 많은 iBFree
  • JBL 에베레스트 310
  • JBL 에베레스트 700
  • Skullcandy HESH 3
  • 소니 WI-C400
  • 소니 MDR-1ABT
  • 소니 MDR-ZX770BT
  • 소니 MDR-XB650BT
  • 소니 MDR-XB950B1
  • 소니 SBH50
  • Bluedio T4s (Bitpool max 39. 듀얼 채널을 지원하지 않으면 응답하지만 강제로 작동하면 462 kbit / s. A2DP 사양을 준수하지 않습니다.)
  • Bluedio T5 (듀얼 채널을 지원하지 않으면 응답하지만 강제로 작동합니다. A2DP 사양을 준수하지 않습니다.)
  • Bluedio T6 (듀얼 채널을 지원하지 않을 경우 응답하지만 강제로 작동하면 작동합니다. A2DP 사양을 준수하지 않습니다. Max 97220 칩을 채택하십시오.)
  • Marshall Major II 블루투스
  • RealForce D1 오버 드라이브
  • Edifier W830BT
  • DEXP BT-250
  • Logitech BT 어댑터
  • Noname 자동차 헤드 유닛 (CSR8645 칩)
  • Sony DSX-A400BT 자동차 헤드 유닛

512kbit / s 이상의 SBC를 지원하는 장치

  • JBL Everest 310 (617-660kbit / s)
  • Sony WI-C400 (576kbit / s)
  • Sony MDR-ZX770BT (617-660 kbit / s)
  • Marshall Major II Bluetooth (617-660 kbit / s)
  • Overdrive RealForce D1 (730kbit / s, 듀얼 채널, 4 개 서브 밴드)

더 높은 비트 전송률 또는 듀얼 채널에서 작동하지 않는 기기

  1. Harper HB-202 (딱딱 거리는 소리, Beken BK3256 칩)
  2. Sony Ericsson MW600 (고주파 왜곡, 딱딱 거리는 소리, 2009 년 출시 된 장치)

이것이 중요한 이유 : SBC 328k 및 485k 대 aptX

aptX 음질에 대한 대중적인 믿음과는 달리, 경우에 따라 표준 328k 비트 전송률을 사용하는 SBC보다 오디오 품질이 떨어질 수 있습니다.

SBC는 주파수 대역에 대한 양자화 비트를 동적으로 할당하여 '하단에서 상단으로'작동합니다. 전체 비트 전송률이 낮은 주파수와 중간 주파수에 사용 된 경우 높은 주파수는 '차단'됩니다 (무음).

aptX는 동일한 비트 수의 주파수 대역을 지속적으로 양자화하여 일정한 비트 전송률 코덱 (44.1kHz의 경우 352kbps, 48kHz의 경우 384kbps)을 만듭니다. 대부분 필요한 주파수로 비트를 '전송'할 수 없습니다. SBC와 달리 aptX는 주파수를 '차단'하지 않지만 양자화 노이즈를 추가하여 오디오의 동적 범위를 줄이고 때로는 딱딱 거리는 소리를 발생시킵니다. 반대로 SBC는“세부 사항을 먹는다”– 가장 조용한 영역을 버립니다.

평균적으로 SBC 328k에 비해 aptX는 넓은 주파수 범위의 음악에서 왜곡이 적지 만 주파수 범위가 좁고 동적 범위가 넓은 음악에서는 SBC 328k가 때때로 이깁니다.

특별한 경우, 피아노 녹음을 고려해 보겠습니다. 스펙트로 그램은 다음과 같습니다.


가장 많은 에너지는 0-4kHz 주파수에 있으며 최대 10kHz까지 지속됩니다.
파일 aptX 파일의 스펙트로 그램은 다음과 같습니다.

다음은 SBC 328k입니다.

SBC 328k는 주기적으로 16kHz 이상의 범위를 완전히 차단하고이 값 이하의 범위에 대해 사용 가능한 모든 비트 전송률을 사용했음을 알 수 있습니다. 그러나 aptX는 사람의 귀가들을 수있는 주파수 스펙트럼에 더 많은 왜곡을 도입했습니다. 이는 aptX 스펙트로 그램에서 뺀 원래 스펙트로 그램에서 볼 수 있습니다 (밝을수록 왜곡이 많음).


SBC 328k는 0 ~ 10kHz 범위의 신호 왜곡이 적고 나머지는 다음과 같습니다.

SBC 용 비트 레이트 485k는 대역을 차단하지 않고 전체 주파수 범위를 저장하기에 충분했습니다.

이 오디오 샘플의 SBC 485k는 0 ~ 15kHz 범위에서 aptX보다 훨씬 우수하며 15 ~ 22kHz (어두울수록 왜곡이 적음)에서 더 작지만 여전히 눈에 띄는 차이가 있습니다.

높은 비트 전송률 SBC로 전환하면 대부분의 경우 어떤 헤드폰에서든 aptX보다 우수한 사운드를 얻을 수 있습니다.

  • original_and_aptx.zip
  • sbc.zip

Android 5 – 7에서 Bluetooth 스택을 수정하는 방법

이러한 수정 사항은 재고 Android 블루투스 스택 Bluedroid (Android 5) 및 Fluoride (Android 6-7)에 적용되어야합니다. Qualcomm 수정 스택은 지원되지 않습니다.

표준 SBC 구성에서 조인트 스테레오를 듀얼 채널로 교체

안드로이드 / 플랫폼 / 외부 / 블루투스 / bluedroid / btif / co / bta_av_co.c : 99

암호:

CONST tA2D_SBC_CIE btif_av_sbc_default_config = {BTIF_AV_SBC_DEFAULT_SAMP_FREQ / * samp_freq * / A2D_SBC_IE_CH_MD_JOINT / * ch_mode * / A2D_SBC_IE_BLOCKS_16 / * block_len * / A2D_SBC_IE_SUBBAND_8 / * num_subbands * / A2D_SBC_IE_ALLOC_MD_L / * alloc_mthd * / BTA_AV_CO_SBC_MAX_BITPOOL / * max_bitpool * / A2D_SBC_IE_MIN_BITPOOL / * min_bitpool * /};

A2D_SBC_IE_CH_MD_JOINT를 A2D_SBC_IE_CH_MD_DUAL로 바꿉니다.

듀얼 채널 우선 순위 높이기

안드로이드 / 플랫폼 / 외부 / 블루투스 / bluedroid / btif / co / bta_av_co.c : 41

암호:

if (src_cap.ch_mode & A2D_SBC_IE_CH_MD_JOINT) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_JOINT; 그렇지 않으면 (src_cap.ch_mode & A2D_SBC_IE_CH_MD_STEREO) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_STEREO; else if (src_cap.ch_mode & A2D_SBC_IE_CH_MD_DUAL) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_DUAL; else if (src_cap.ch_mode & A2D_SBC_IE_CH_MD_MONO) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_MONO; A2D_SBC_IE_CH_MD_DUAL을 사용하면 맨 위로 이동합니다.
  1. 비트 전송률 제한 비활성화 또는 증가

Android 블루투스 스택에는 비트 풀 제한뿐만 아니라 비트 전송률 제한 인 328kbit / s도 있습니다. 예를 들어 헤드폰이 48kHz의 비트 풀 53을 지원하는 경우 Android는 328kbit / s 제한에 맞게 비트 풀을 줄입니다. 이는 코덱 협상 후 인코딩 단계에서 발생하며 Bluetooth SetCapabilities 패킷의 비트 풀 값을 고려하지 않습니다.

android / platform / external / bluetooth / bluedroid / btif / src / btif_media_task.c : 172

암호:

#define DEFAULT_SBC_BITRATE 328

512로 대체하십시오.

  1. (실험 전용) MTU 제한을 비활성화합니다.

이는 ~ 580kbit / s보다 높은 비트 전송률에 필요합니다.

btif / src / btif_media_task.c : 174

암호:

/ * 2DH5 페이로드 크기 679 바이트-(4 바이트 L2CAP 헤더 + 12 바이트 AVDTP 헤더) * / #define MAX_2MBPS_AVDTP_MTU 663

Android 8 – 9에서 Bluetooth 스택을 수정하는 방법

이러한 수정 사항은 테스트되지 않았지만 작동합니다.

A2DP SBC 소스에 듀얼 채널 지원 추가

/platform/system/bt/stack/a2dp/a2dp_sbc.cc:55

암호:

/ * SBC SRC 코덱 기능 * / static const tA2DP_SBC_CIE a2dp_sbc_caps = A2DP_SBC_IE_BLOCKS_8;

ch_mode에 A2DP_SBC_IE_CH_MD_DUAL을 추가하십시오.

기본 구성에서 조인트 스테레오를 듀얼 채널로 교체

/platform/system/bt/stack/a2dp/a2dp_sbc.cc:82

암호:

/ * 디폴트 SBC 코덱 설정 * / CONST tA2DP_SBC_CIE a2dp_sbc_default_config = {A2DP_SBC_IE_SAMP_FREQ_44 / * samp_freq * / A2DP_SBC_IE_CH_MD_JOINT / * ch_mode * / A2DP_SBC_IE_BLOCKS_16 / * block_len * / A2DP_SBC_IE_SUBBAND_8 / * num_subbands * / A2DP_SBC_IE_ALLOC_MD_L / * alloc_method * / A2DP_SBC_IE_MIN_BITPOOL, / * min_bitpool * / A2DP_SBC_MAX_BITPOOL, / * max_bitpool * / BTAV_A2DP_CODEC_BITS_PER_SAMPLE_16 / * bits_per_sample * /};

A2DP_SBC_IE_CH_MD_JOINT를 A2DP_SBC_IE_CH_MD_DUAL로 바꿉니다.

듀얼 채널 우선 순위 높이기

/platform/system/bt/stack/a2dp/a2dp_sbc.cc:1155

암호:

static bool select_best_channel_mode (uint8_t ch_mode, tA2DP_SBC_CIE * p_result, btav_a2dp_codec_config_t * p_codec_config) {if (ch_mode & A2DP_SBC_IE_CH_MD_JOINT) {p_result-> ch_mode = A2DP_JOINT; mode = A2DP_SBC p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; true를 반환하십시오. } if (ch_mode & A2DP_SBC_IE_CH_MD_STEREO) {p_result-> ch_mode = A2DP_SBC_IE_CH_MD_STEREO; p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; true를 반환하십시오. } if (ch_mode & A2DP_SBC_IE_CH_MD_DUAL) {p_result-> ch_mode = A2DP_SBC_IE_CH_MD_DUAL; p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; true를 반환하십시오. } if (ch_mode & A2DP_SBC_IE_CH_MD_MONO) {p_result-> ch_mode = A2DP_SBC_IE_CH_MD_MONO; p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_MONO; true를 반환하십시오. } return false; }

A2DP_SBC_IE_CH_MD_DUAL을 사용하면 맨 위로 이동합니다.

전송률 제한 늘리기

/platform/system/bt/stack/a2dp/a2dp_sbc_encoder.cc:42

암호:

#define A2DP_SBC_DEFAULT_BITRATE 328

512로 대체하십시오.

  1. (실험 전용) MTU 제한 비활성화

이는 ~ 580kbit / s보다 높은 비트 전송률에 필요합니다.

/platform/system/bt/stack/a2dp/a2dp_sbc_encoder.cc:47

암호:

#define MAX_2MBPS_AVDTP_MTU 663

패치 된 Bluetooth 스택 (플래시 가능)

  • Le Max 2 Oreo Patched.zip
  • LeEco 쿨 체인저 S1 EUI_5.8.19S.zip
  • Leeco LE2 (EUI 5.9.26s, Android 6) .zip
  • Xiaomi Mi Note (Miui 9 Miui.su usnkreal v8.4.12, Android 6.0.1) .zip
  • Xiaomi Mi Note 3 (MIUI 9, Android 7) .zip
  • Xiaomi Mi4c (Android 7.0 NRD90M, MIUI-9.5 9.5.1.0 (NXKCNFA)). zip
  • Xiaomi MI5s (MIUI Global 9.6.1.0, Android 7) .zip
  • Xiaomi Redmi 3s (android 6.01, mmb29m, miui global 9.6.1.0) .zip
  • Xiaomi Redmi 4 (MiuiPro 10 8.8.2, Android 6.0.1, MMB29M) .zip
  • 샤오 미 Redmi 4 Prime.zip
  • Xiaomi Redmi 4 pro (MIUI 9, miuipro 8.4.26) .zip
  • Xiaomi Redmi Note 3 (Resurrection Remix Android 7.1.2_r36) .zip
  • Redmi Note 4x (Masik Premium, android 7.0) .zip
  • Asus Zoom (Android 5, 2.26.40.108_20160520) .zip
  • Le Max 2 Oreo Patched.zip
  • Huawei P9 (Android 7) .zip
  • 삼성 Galaxy S4 LTE GT-I9505 (Android 7.1.2; LineageOS 14.1-20180615-NIGHTLY-jfltexx) .zip
  • 지퍼
  • Le Max 2 Oreo Patched.zip
10 분 읽기