So ändern Sie Bluetooth-Stacks unter Android für eine deutlich verbesserte Bluetooth-Audioqualität



Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen

Warnung: Dies ist eine hochentwickelte Anleitung, bei der Sie Ihre Bluetooth-Stacks unter Android ändern müssen. Lesen Sie diese Anleitung vollständig und befolgen Sie alle Anweisungen genau wie angegeben.



Trotz der Tatsache, dass Bluetooth-Headsets und Bluetooth-Audio sehr beliebt geworden sind, ist dies für Audiophile ein Problem, da Bluetooth nachweislich die Audioqualität verringert, da Teile der Audioinformationen und -frequenzen durch Bluetooth-Streaming in der Luft verloren gehen.



Aus diesem Grund bieten einige Hersteller aptX- und LDAC-Codecs an, um die Klangqualität gegenüber dem Standard-SBC-Bluetooth-Codec zu verbessern, der von allen Kopfhörern und den meisten Bluetooth-Geräten unterstützt wird. Geräte mit aptX- und LDAC-Codecs sind jedoch aufgrund dieser Codecs viel teurer Lizenzgebühren erfordern, die der Verbraucher langfristig zahlt.



Die geringe Audioqualität des SBC-Bluetooth-Codecs wird durch künstliche Einschränkungen aller aktuellen Bluetooth-Stacks und Kopfhörerkonfigurationen verursacht. Diese Einschränkung kann auf allen vorhandenen Geräten umgangen werden.

Wenn Sie an Bluetooth-Audio interessiert sind, zeigen wir Ihnen am Ende dieses Handbuchs, wie Sie einen Bluetooth-Audio-Protokollspeicherauszug erstellen und ihn überprüfen, um festzustellen, welche Audioqualität und Frequenz Sie vom Bluetooth-Empfänger Ihres Android erhalten.

Der Großteil dieses Handbuchs konzentriert sich auf ein paar einfache Änderungen und Möglichkeiten zum Lesen Ihrer Bluetooth-Audioausgabe, um die Ausgabequalität von Standard-SBC-Bluetooth-Codecs erheblich zu verbessern. Bitte lesen Sie dieses gesamte Handbuch sorgfältig durch, da es sehr lehrreich ist und es viele verschiedene Dinge gibt je nach Gerätemodell zu blinken oder zu optimieren.



Am Ende dieses Handbuchs finden Sie eine Liste der vorab gepatchten Bluetooth-Stacks für viele gängige Android-Geräte. Diese können bei der Wiederherstellung wie jedes andere flashbare ZIP-Gerät geflasht werden. Wenn keines der Geräte Ihnen gehört, haben Sie es Befolgen Sie die Anleitung zum Ändern von Bluetooth-Stacks unter Android.

Kurze technische Informationen zum SBC-Codec

SBC verfügt über viele verschiedene Parameter, die während der Verbindungsaufbauphase ausgehandelt werden:

  • Typ und Nummer des Audiokanals: Joint Stereo, Stereo, Dual Channel, Mono;
  • Anzahl der Frequenzbänder: 4 oder 8;
  • Anzahl der Audioblöcke in einem Paket: 4, 8, 12, 16;
  • Quantisierungsbitzuweisungsalgorithmus: Loudness, SNR;
  • Maximaler und minimaler Bitpool, der im Quantisierungsprozess verwendet wird: normalerweise 2-53.

Der Decoder muss eine beliebige Kombination dieser Parameter unterstützen. Der Encoder kann nur einen Teil davon implementieren.

Bestehende Bluetooth-Stacks verhandeln normalerweise das folgende Profil: Joint Stereo, 8 Bänder, 16 Blöcke, Loudness, Bitpool 2..53. Dieses Profil codiert 44,1-kHz-Audio mit einer Bitrate von 328 kbit / s.

Der Bitpool-Parameter wirkt sich direkt auf die Bitrate innerhalb desselben Profils aus: Je höher diese ist, desto höher ist die Bitrate und damit die Qualität.

Der Bitpool-Parameter ist jedoch nicht an ein bestimmtes Profil gebunden. Die Bitrate wird auch erheblich von anderen Parametern beeinflusst: Audiokanaltyp, Anzahl der Frequenzbänder, Anzahl der Audioblöcke. Sie können die Bitrate indirekt erhöhen, indem Sie nicht standardmäßige Profile aushandeln, ohne den Bitpool zu ändern.

Beispielsweise codiert Dual Channel Kanäle separat, wobei der gesamte Bitpool für jeden Kanal verwendet wird. Wenn Sie das Gerät dazu zwingen, Dual Channel anstelle von Joint Stereo zu verwenden, wird die Bitrate bei gleichem maximalen Bitpool von 617 kbit / s fast verdoppelt.

Für mich sollte Bitpool eine interne Variable sein. Es handelt sich um einen Entwurfsfehler der A2DP-Spezifikation, bei dem der Bitpoolwert nicht an andere Codec-Parameter gebunden und nur als globaler Wert definiert ist.

Diese festen Bitpool- und Bitrate-Werte stammen aus empfohlenen Werten für Audio in hoher Qualität. Die Empfehlung ist jedoch keine Entschuldigung, um das Profil auf diese Werte zu beschränken.

Nach der A2DP-Spezifikation v1.2, die von 2007 bis 2015 aktiv war, müssen alle Decoder ordnungsgemäß mit Bitraten von bis zu 512 kbps arbeiten:

Der Decoder des SNK muss alle möglichen Bitpoolwerte unterstützen, die nicht zu einer Überschreitung der maximalen Bitrate führen. Dieses Profil begrenzt die verfügbare maximale Bitrate auf 320 kb / s für Mono und 512 kb / s für Zweikanalmodi.

In der neuen Version der Spezifikation gibt es keine Bitratenbeschränkung. Es wird davon ausgegangen, dass moderne Kopfhörer, die nach 2015 veröffentlicht wurden, Bitraten unterstützen können bis zu 1000 kbps .

Aus irgendeinem Grund unterliegen alle derzeit getesteten Bluetooth-Stacks (Linux (PulseAudio), Android, Blackberry und macOS) künstlichen Einschränkungen des maximalen Bitpool-Parameters, die sich direkt auf die maximale Bitrate auswirken. Dies ist jedoch nicht das größte Problem. Fast alle Kopfhörer begrenzen den maximalen Bitpoolwert auf 53.

Die meisten Geräte funktionieren problemlos auf einem modifizierten Bluetooth-Stack mit einer Bitrate von 507 kbit / s, ohne Unterbrechungen und Knistern. Eine solche Bitrate wird jedoch unter normalen Bedingungen mit Standard-Bluetooth-Stacks niemals ausgehandelt.

*** Erforderlich zum Testen mit den folgenden Anleitungen: bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso.torrent

So testen Sie auf einem PC

Der Kompatibilitätstest für SBC-Kopfhörer mit hoher Bitrate ist mit einem Bluetooth-Adapter am einfachsten auf dem PC durchzuführen. Ich habe ein Ubuntu-Image mit einem modifizierten Bluetooth-Stack vorbereitet, der wie in einer virtuellen Maschine ausgeführt werden kann (durch Anschließen des Bluetooth-Adapters als USB-Gerät in der virtuellen Maschine funktioniert er auch mit den in den Laptops integrierten Adaptern) oder durch Booten von das USB-Flash-Laufwerk. Dieses Bild verwendet das folgende Profil: Zweikanal, 8 Bänder, 16 Blöcke, Lautstärke, Bitpool 2..41, 44,1 kHz, was eine Bitrate von 485 kbps bietet.

Wird in einer VM ausgeführt

  • Laden Sie das Virtualbox- und Virtualbox-Erweiterungspaket herunter: https://www.virtualbox.org/wiki/Downloads;
  • Installieren Sie Virtualbox und starten Sie es.
  • Installieren Sie das Erweiterungspaket über Datei → Einstellungen → Erweiterungen.
  • Erstellen Sie eine neue virtuelle Maschine: Linux, Ubuntu (64-Bit), 1024 RAM. Erstellen Sie keine Festplatte.
  • Navigieren Sie zu den Einstellungen der virtuellen Maschine. Wählen Sie im Speicher Controller: IDE, Leer, drücken Sie das CD-Symbol → Wählen Sie die Datei für die virtuelle optische Festplatte.
  • Wählen Sie heruntergeladene Bluetooth-Dual-Channel-Test-Ubuntu-18.04.1-Desktop-amd64.iso;
  • Einstellungsfenster speichern und schließen, virtuelle Maschine starten;
  • Klicken Sie mit der rechten Maustaste auf das USB-Kabelsymbol unten rechts und wählen Sie Ihren Bluetooth-Adapter aus.

Laufen auf einem PC

Das Image unterstützt das Booten von BIOS / CSM und UEFI.

  • Brennen Sie das Image mit Etcher auf ein USB-Flash-Laufwerk: https://etcher.io/. Dieser Vorgang löscht alle vorhandenen Dateien auf einem USB-Laufwerk.
  • Schalten Sie den PC aus.
  • Schließen Sie das USB-Flash-Laufwerk an, schalten Sie den PC ein und drücken Sie die Startreihenfolge-Taste (normalerweise Esc oder F12).
  • Wählen Sie Ihr USB-Flash-Laufwerk.

Test durchführen

  • (optional, aber empfohlen) Doppelklicken Sie auf dem Desktop auf das Skript 'Btsnoop Dump'. Die Bluetooth-Datenerfassung wird für eine spätere Analyse gestartet. Terminalfenster nicht schließen.
  • Schalten Sie die Kopfhörer in den Pairing-Modus.
  • Klicken Sie auf den Pfeil in der oberen rechten Ecke und wählen Sie das Bluetooth-Symbol → Bluetooth-Einstellungen.
  • Wählen Sie Ihre Kopfhörer aus, warten Sie, bis der Pairing abgeschlossen ist, und schließen Sie das Fenster.
  • Stellen Sie die Ubuntu-Lautstärke auf ungefähr 2/3 ein. Verringern Sie auch die Lautstärke mit den Headset-Tasten, da diese nach dem Pairing sehr laut sein kann.
  • Öffnen Sie den Ordner 'Musik' und spielen Sie 'testrecord1.flac' ab.
  • (optional, aber empfohlen) Player schließen, Terminalfenster schließen. Dadurch wird die Datenerfassung gestoppt.
  • (optional, aber empfohlen) Öffnen Sie den Firefox-Browser und laden Sie den Datendump (btsnoop_hci.btsnoop auf dem Desktop) auf https://btcodecs.valdikss.org.ru/ hoch.

Sie können andere Musik im Musikordner anhören oder Ihre eigene hochladen.

Der Kopfhörer darf keine Knistern, Audio-Unterbrechungen oder andere Klangverzerrungen aufweisen. Wenn Sie eine gute Klangqualität hören, bedeutet dies, dass Ihre Kopfhörer Audio mit einer Bitrate von 485 kbps unterstützen.

So testen Sie auf einem Android-Gerät

Zum Testen von einem Android-Smartphone oder -Tablet müssen Sie einen modifizierten Bluetooth-Stack verwenden, für den Root-Rechte erforderlich sind.

So erfassen Sie den Bluetooth-Datendump unter Android

  1. Schalten Sie Bluetooth aus.
  2. Aktivieren Sie in den Entwicklereinstellungen den Schalter 'Bluetooth HCI-Snoop-Protokoll aktivieren'.
  3. Schalten Sie Bluetooth ein und stellen Sie über das Bluetooth-Menü eine Verbindung zu Ihrem Headset her (dies ist wichtig! Keine automatische Verbindung zulassen!).
  4. Spielen Sie ein kurzes Audio-Sample ab.
  5. Öffnen Sie die Entwicklereinstellungen und deaktivieren Sie den Schalter 'Bluetooth HCI-Snoop-Protokoll aktivieren'.
  6. Es sollte /storage/emulated/0/btsnoop_hci.log oder /data/misc/bluetooth/logs/btsnoop_hci.log erstellt werden. Wenn es fehlt, öffnen Sie /etc/bluetooth/bt_stack.conf mit einem Texteditor und sehen Sie den Pfad in der Option BtSnoopFileName.

Der Kopfhörer darf keine Knistern, Audio-Unterbrechungen oder andere Klangverzerrungen aufweisen. Wenn Sie mit der gepatchten Bibliothek einen guten, hochwertigen Sound hören, bedeutet dies, dass Ihre Kopfhörer Audio mit einer Bitrate von 512 kbps unterstützen.

Bitte befolgen Sie den obigen Algorithmus sorgfältig. Insbesondere wenn Sie die Kopfhörer ausschalten oder nach dem Pairing die Verbindung trennen, ist es wichtig, über die Bluetooth-Einstellungen manuell eine Verbindung zu den Kopfhörern herzustellen. Lassen Sie keine automatische Verbindung zu!

Geräte, die mindestens 512 kbit / s SBC unterstützen

  • 1 MEHR iBFree
  • JBL Everest 310
  • JBL Everest 700
  • Skullcandy HESH 3
  • Sony WI-C400
  • Sony MDR-1ABT
  • Sony MDR-ZX770BT
  • Sony MDR-XB650BT
  • Sony MDR-XB950B1
  • Sony SBH50
  • Bluedio T4s (Bitpool max. 39. Reagieren Sie darauf, Dual Channel nicht zu unterstützen, arbeiten Sie jedoch, wenn erzwungen, 462 kbit / s. Entspricht nicht der A2DP-Spezifikation.)
  • Bluedio T5 (Reagieren Sie darauf, Dual Channel nicht zu unterstützen, arbeiten Sie jedoch, wenn Sie dazu gezwungen werden. Entspricht nicht der A2DP-Spezifikation.)
  • Bluedio T6 (Reagieren Sie darauf, Dual Channel nicht zu unterstützen, arbeiten Sie jedoch, wenn Sie dazu gezwungen werden. Entspricht nicht der A2DP-Spezifikation. Nehmen Sie den Max 97220-Chip an.)
  • Marshall Major II Bluetooth
  • Overdrive RealForce D1
  • Edifier W830BT
  • DEXP BT-250
  • Logitech BT Adapter
  • Noname Automotive Head Unit (CSR8645-Chip)
  • Sony DSX-A400BT Kfz-Headunit

Geräte, die SBC über 512 kbit / s unterstützen

  • JBL Everest 310 (617-660 kbit / s)
  • Sony WI-C400 (576 kbit / s)
  • Sony MDR-ZX770BT (617-660 kbit / s)
  • Marshall Major II Bluetooth (617-660 kbit / s)
  • Overdrive RealForce D1 (730 kbit / s, Zweikanal, 4 Subbänder)

Geräte, die nicht mit höheren Bitraten oder Dual Channel arbeiten

  1. Harper HB-202 (Knistern; Beken BK3256 Chip)
  2. Sony Ericsson MW600 (Hochfrequenzverzerrung, Knistern; Gerät von 2009)

Warum dies wichtig ist: SBC 328k und 485k vs aptX

Entgegen der weit verbreiteten Meinung zur aptX-Klangqualität kann sie in einigen Fällen eine schlechtere Audioqualität als SBC mit einer Standard-Bitrate von 328 KB erzeugen.

SBC weist den Frequenzbändern dynamisch Quantisierungsbits zu, die von unten nach oben wirken. Wenn die gesamte Bitrate für die unteren und mittleren Frequenzen verwendet wurde, werden die oberen Frequenzen 'abgeschnitten' (stummgeschaltet).

aptX quantisiert Frequenzbänder mit der gleichen Anzahl von Bits konstant, was es zu einem Codec mit konstanter Bitrate macht: 352 kbps für 44,1 kHz, 384 kbps für 48 kHz. Es kann keine Bits auf Frequenzen übertragen, die in ihnen am häufigsten benötigt werden. Im Gegensatz zu SBC „schneidet“ aptX keine Frequenzen, sondern fügt ihnen Quantisierungsrauschen hinzu, verringert den Dynamikbereich von Audio und führt manchmal zu Knistern. SBC hingegen 'frisst die Details' - verwirft die ruhigsten Bereiche.

Im Vergleich zu SBC 328k macht aptX im Durchschnitt weniger Verzerrungen bei Musik mit einem breiten Frequenzbereich, aber bei Musik mit einem engen Frequenzbereich und einem großen Dynamikbereich gewinnt SBC 328k manchmal.

Betrachten wir einen Sonderfall, eine Klavieraufnahme. Hier ist ein Spektrogramm:


Die meiste Energie liegt in den Frequenzen von 0 bis 4 kHz und dauert bis zu 10 kHz.
Das Spektrogramm der Datei aptX sieht folgendermaßen aus:

Hier ist SBC 328k:

Es ist ersichtlich, dass der SBC 328k den Bereich über 16 kHz periodisch vollständig abschneidet und alle verfügbaren Bitraten für Bereiche unter diesem Wert verwendet. AptX führte jedoch mehr Verzerrungen in das vom menschlichen Ohr hörbare Frequenzspektrum ein, die auf dem vom aptX-Spektrogramm subtrahierten ursprünglichen Spektrogramm zu sehen sind (je heller, desto stärker verzerrt):


Während der SBC 328k weniger Verzerrungen eingeführt hat, liegt das Signal im Bereich von 0 bis 10 kHz, und der Rest wurde abgeschnitten:

Bitrate 485k für SBC reichte aus, um den gesamten Frequenzbereich zu speichern, ohne die Bänder abzuschneiden.

SBC 485k auf diesem Audio-Sample ist im Bereich von 0-15 kHz viel besser als aptX und weist einen kleineren, aber immer noch spürbaren Unterschied auf - bei 15-22 kHz (je dunkler, desto weniger Verzerrung):

Wenn Sie zu einem SBC mit hoher Bitrate wechseln, erhalten Sie auf jedem Kopfhörer die meiste Zeit einen Klang, der aptX überlegen ist.

  • original_and_aptx.zip
  • sbc.zip

So ändern Sie die Bluetooth-Stacks unter Android 5 - 7

Diese Änderungen sollten auf die Standard-Android-Bluetooth-Stacks Bluedroid (Android 5) und Fluoride (Android 6-7) angewendet werden. Qualcomm-modifizierter Stack wird nicht unterstützt.

Ersetzen Sie Joint Stereo durch Dual Channel in der Standard-SBC-Konfiguration

android / platform / external / bluetooth / bluedroid / btif / co / bta_av_co.c: 99

Code:

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 * /};

Ersetzen Sie A2D_SBC_IE_CH_MD_JOINT durch A2D_SBC_IE_CH_MD_DUAL.

Erhöhen Sie die Zweikanalpriorität

android / platform / external / bluetooth / bluedroid / btif / co / bta_av_co.c: 41

Code:

if (src_cap.ch_mode & A2D_SBC_IE_CH_MD_JOINT) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_JOINT; sonst wenn (src_cap.ch_mode & A2D_SBC_IE_CH_MD_STEREO) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_STEREO; sonst wenn (src_cap.ch_mode & A2D_SBC_IE_CH_MD_DUAL) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_DUAL; sonst wenn (src_cap.ch_mode & A2D_SBC_IE_CH_MD_MONO) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_MONO; Verschieben Sie if mit A2D_SBC_IE_CH_MD_DUAL nach oben.
  1. Deaktivieren oder erhöhen Sie die Bitratenbeschränkung

Der Android-Bluetooth-Stack hat nicht nur ein Bitpool-Limit, sondern auch ein Bitraten-Limit von 328 kbit / s. Wenn die Kopfhörer beispielsweise Bitpool 53 für 48 kHz unterstützen, verringert Android den Bitpool auf 328 kbit / s. Dies geschieht, nachdem die Codec-Aushandlung in der Codierungsphase den Bitpool-Wert im Bluetooth SetCapabilities-Paket nicht berücksichtigt hat.

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

Code:

#define DEFAULT_SBC_BITRATE 328

Durch 512 ersetzen.

  1. (nur für Experimente) Deaktivieren Sie die MTU-Grenze.

Dies ist für Bitraten von mehr als ~ 580 kbit / s erforderlich.

btif / src / btif_media_task.c: 174

Code:

/ * 2DH5-Nutzlastgröße von 679 Byte - (4 Byte L2CAP-Header + 12 Byte AVDTP-Header) * / #define MAX_2MBPS_AVDTP_MTU 663

So ändern Sie Bluetooth-Stacks unter Android 8 - 9

Diese Änderungen wurden noch nicht getestet, sollten aber funktionieren.

Fügen Sie der A2DP-SBC-Quelle Dual-Channel-Unterstützung hinzu

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

Code:

/ * SBC SRC-Codec-Funktionen * / static const tA2DP_SBC_CIE a2dp_sbc_caps = A2DP_SBC_IE_BLOCKS_8;

Fügen Sie A2DP_SBC_IE_CH_MD_DUAL in ch_mode hinzu.

Ersetzen Sie Joint Stereo durch Dual Channel in der Standardkonfiguration

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

Code:

/ * Standard-SBC-Codec-Konfiguration * / konst 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 * /};

Ersetzen Sie A2DP_SBC_IE_CH_MD_JOINT durch A2DP_SBC_IE_CH_MD_DUAL.

Erhöhen Sie die Zweikanalpriorität

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

Code:

statischer 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_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; return 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; return 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; return 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; return true; } falsch zurückgeben; }}

Verschieben Sie if mit A2DP_SBC_IE_CH_MD_DUAL nach oben.

Bitratenbegrenzung erhöhen

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

Code:

#define A2DP_SBC_DEFAULT_BITRATE 328

Durch 512 ersetzen.

  1. (nur für Experimente) Deaktivieren Sie die MTU-Grenze

Dies ist für Bitraten von mehr als ~ 580 kbit / s erforderlich.

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

Code:

#define MAX_2MBPS_AVDTP_MTU 663

Gepatchte Bluetooth-Stacks (Flashable)

  • Le Max 2 Oreo Patched.zip
  • LeEco Cool Changer 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
  • Xiaomi 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
  • Samsung Galaxy S4 LTE GT-I9505 (Android 7.1.2; LineageOS 14.1-20180615-NIGHTLY-jfltexx) .zip
  • Postleitzahl
  • Le Max 2 Oreo Patched.zip
10 Minuten gelesen