Πώς να τροποποιήσετε τις στήλες Bluetooth στο Android για εξαιρετικά βελτιωμένη ποιότητα ήχου Bluetooth

Προειδοποίηση: Αυτός είναι ένας εξαιρετικά προηγμένος οδηγός που περιλαμβάνει την τροποποίηση των στοίχων Bluetooth σας στο Android - διαβάστε αυτόν τον οδηγό στο σύνολό του και ακολουθήστε όλες τις οδηγίες ακριβώς όπως δίνονται.

Παρά το γεγονός ότι τα ακουστικά Bluetooth και ο ήχος Bluetooth έχουν γίνει αρκετά δημοφιλής, είναι ένα πρόβλημα για τους ακροαφειράδες, επειδή το Bluetooth έχει αποδειχθεί ότι μειώνει την ποιότητα του ήχου, καθώς τα κομμάτια των πληροφοριών ήχου και των συχνοτήτων χάνονται στον αέρα μέσω της ροής Bluetooth.

Αυτός είναι ο λόγος για τον οποίο ορισμένοι κατασκευαστές βγάζουν κωδικοποιητές aptX και LDAC, για να βελτιώσουν την ποιότητα του ήχου σε σχέση με τον τυπικό κωδικοποιητή SBC Bluetooth που υποστηρίζεται από όλα τα ακουστικά και τις περισσότερες συσκευές Bluetooth. Ωστόσο, συσκευές με κωδικοποιητές aptX και LDAC είναι πολύ πιο ακριβές, επειδή αυτοί οι κωδικοποιητές απαιτούν αμοιβές αδειοδότησης, τις οποίες ο καταναλωτής πληρώνει μακροπρόθεσμα.

Η χαμηλή ποιότητα ήχου του κωδικοποιητή SBC Bluetooth προκαλείται από τεχνητούς περιορισμούς όλων των τωρινών ρυθμίσεων της στοίβας Bluetooth και των ακουστικών και ο περιορισμός αυτός μπορεί να καταστραφεί σε οποιαδήποτε υπάρχουσα συσκευή.

Εάν ενδιαφέρεστε για ήχο Bluetooth, θα σας δείξουμε στο τέλος αυτού του οδηγού πώς να τραβήξετε ένα αρχείο καταγραφής ήχου Bluetooth και να το επιθεωρήσετε για να δείτε τι είδους ποιότητα ήχου και συχνότητα παίρνετε από το δέκτη Bluetooth του Android σας.

Η πλειοψηφία αυτού του οδηγού θα επικεντρωθεί σε μερικά απλά τσιμπήματα και τρόπους για να διαβάσετε την έξοδο ήχου Bluetooth για να βελτιώσετε σημαντικά την ποιότητα εξόδου των τυπικών κωδικοποιητών SBC Bluetooth - διαβάστε προσεκτικά ολόκληρο τον οδηγό, καθώς είναι αρκετά εκπαιδευτικό και υπάρχουν πολλά διαφορετικά στοιχεία για αναβοσβήνει ή τσίμπημα, ανάλογα με το μοντέλο της συσκευής σας.

Σε αυτό το τέλος αυτού του οδηγού βρίσκεται ένας κατάλογος προκατασκευασμένων συστοιχιών Bluetooth για πολλές δημοφιλείς συσκευές Android - αυτές μπορεί να αναβοσβήνουν στην ανάκτηση όπως θα κάνατε με οποιοδήποτε άλλο flash .zip - αν καμία από τις συσκευές δεν σας ανήκει, θα έχετε για να ακολουθήσετε τον οδηγό για την τροποποίηση των στοίβων Bluetooth στο Android.

Σύντομες τεχνικές πληροφορίες σχετικά με τον κωδικοποιητή SBC

Το SBC έχει πολλές διαφορετικές παραμέτρους που αποτελούν αντικείμενο διαπραγμάτευσης κατά τη διάρκεια της φάσης εγκατάστασης σύνδεσης:

  • Τύπος και αριθμός καναλιού: Κοινό στερεοφωνικό, Στερεοφωνικό, Διπλό κανάλι, Μονο;
  • Αριθμός ζωνών συχνότητας: 4 ή 8;
  • Αριθμός μπλοκ ήχου σε ένα πακέτο: 4, 8, 12, 16;
  • Αλγόριθμος κατανομής δυαδικών ψηφίων: Loudness, SNR;
  • Μέγιστη και ελάχιστη συγκέντρωση δυαδικών ψηφίων που χρησιμοποιείται στη διαδικασία ποσοτικοποίησης: συνήθως 2-53.

Ο αποκωδικοποιητής απαιτείται για να υποστηρίζει οποιονδήποτε συνδυασμό αυτών των παραμέτρων. Ο κωδικοποιητής μπορεί να εφαρμόσει μόνο ένα μέρος από αυτά.

Οι υπάρχουσες στοίβες Bluetooth διαπραγματεύονται συνήθως το ακόλουθο προφίλ: Joint Stereo, 8 μπάντες, 16 μπλοκ, Loudness, bitpool 2..53. Αυτό το προφίλ κωδικοποιεί ήχο 44, 1 kHz με bitrate 328 kbps.

Η παράμετρος Bitpool επηρεάζει άμεσα το bitrate στο ίδιο προφίλ: όσο υψηλότερο είναι, τόσο υψηλότερο είναι το bitrate και, συνεπώς, η ποιότητα.

Ωστόσο, η παράμετρος bitpool δεν είναι συνδεδεμένη με ένα συγκεκριμένο προφίλ. Το bitrate επηρεάζεται επίσης σημαντικά από άλλες παραμέτρους: τύπος καναλιού ήχου, αριθμός ζωνών συχνοτήτων, αριθμός μπλοκ ήχου. Μπορείτε να αυξήσετε το bitrate έμμεσα με τη διαπραγμάτευση μη τυποποιημένων προφίλ, χωρίς να αλλάξετε το bitpool.

Για παράδειγμα, το Dual Channel κωδικοποιεί τα κανάλια ξεχωριστά, χρησιμοποιώντας ολόκληρο το bitpool για κάθε κανάλι. Αναγκάζοντας τη συσκευή να χρησιμοποιήσει το Dual Channel αντί για το Joint Stereo θα μας κάνει σχεδόν διπλασιαστεί το bitrate στο ίδιο μέγιστο bitpool, 617 kbps.

Για μένα θεωρεί ότι το bitpool πρέπει να είναι μια εσωτερική μεταβλητή. Είναι ένα σφάλμα σχεδιασμού προδιαγραφών A2DP ότι η τιμή bitpool δεν είναι συνδεδεμένη με άλλες παραμέτρους του κωδικοποιητή και ορίζεται μόνο ως συνολική τιμή.

Αυτές οι σταθερές τιμές Bitpool και Bitrate προέρχονται από τις συνιστώμενες τιμές για ήχο υψηλής ποιότητας. Ωστόσο, η σύσταση δεν αποτελεί δικαιολογία για τον περιορισμό του προφίλ σε αυτές τις τιμές.

Η προδιαγραφή A2DP v1.2, η οποία ήταν ενεργή από το 2007 έως το 2015, απαιτεί όλα τα αποκωδικοποιητές να λειτουργούν σωστά με bitrate έως και 512 kbps:

Ο αποκωδικοποιητής του SNK πρέπει να υποστηρίζει όλες τις πιθανές τιμές bitpool που δεν έχουν ως αποτέλεσμα την υπέρβαση του μέγιστου ρυθμού δυαδικών ψηφίων. Αυτό το προφίλ περιορίζει τον διαθέσιμο μέγιστο ρυθμό δυαδικών ψηφίων σε 320kb / s για mono και 512kb / s για λειτουργίες δύο καναλιών.

Στη νέα έκδοση των προδιαγραφών δεν υπάρχει περιορισμός του bitrate. Θεωρείται ότι τα μοντέρνα ακουστικά που κυκλοφορούν μετά το 2015 μπορούν να υποστηρίξουν bitrates μέχρι 1000 kbps .

Για κάποιο λόγο, όλες οι δοκιμασμένες στοίβες Bluetooth (Linux (PulseAudio), Android, Blackberry και macOS) έχουν τεχνητούς περιορισμούς της μέγιστης παραμέτρου bitpool, η οποία επηρεάζει άμεσα το μέγιστο bitrate. Αλλά αυτό δεν είναι το μεγαλύτερο πρόβλημα, σχεδόν όλα τα ακουστικά περιορίζουν επίσης τη μέγιστη τιμή bitpool στο 53.

Οι περισσότερες συσκευές λειτουργούν καλά σε μια τροποποιημένη στοίβα Bluetooth με bitrate 507 kbps, χωρίς διακοπές και σχισμές. Αλλά ένα τέτοιο bitrate δεν θα διαπραγματευτεί ποτέ υπό κανονικές συνθήκες, με αποθέματα Bluetooth.

*** Απαιτείται για δοκιμή χρησιμοποιώντας τους οδηγούς Παρακάτω: bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso.torrent

Πώς να δοκιμάσετε σε έναν υπολογιστή

Ο δοκιμαστικός έλεγχος συμβατότητας ακουστικών υψηλής ταχύτητας SBC είναι ο ευκολότερος τρόπος εκτέλεσης στον υπολογιστή με προσαρμογέα Bluetooth. Έχω προετοιμάσει την εικόνα του Ubuntu με μια τροποποιημένη στοίβα Bluetooth, η οποία μπορεί να λειτουργήσει όπως σε μια εικονική μηχανή (συνδέοντας τον προσαρμογέα Bluetooth ως συσκευή USB μέσα στην εικονική μηχανή, λειτουργεί επίσης με τους προσαρμογείς που είναι ενσωματωμένοι στα φορητούς υπολογιστές) ή εκκινώντας από τη μονάδα flash USB. Αυτή η εικόνα χρησιμοποιεί το ακόλουθο προφίλ: Διπλό κανάλι, 8 ζώνες, 16 μπλοκ, Loudness, bitpool 2..41, 44, 1 kHz, το οποίο παρέχει bitrate 485 kbps.

Τρέξιμο σε VM

  • Κατεβάστε το Virtualbox και το πακέτο επέκτασης Virtualbox: //www.virtualbox.org/wiki/Downloads;
  • Εγκαταστήστε το Virtualbox, ξεκινήστε το.
  • Εγκαταστήστε το πακέτο επέκτασης χρησιμοποιώντας το αρχείο → Προτιμήσεις → Επεκτάσεις.
  • Δημιουργήστε νέα εικονική μηχανή: Linux, Ubuntu (64-bit), 1024 μνήμη RAM. Μην δημιουργείτε σκληρό δίσκο.
  • Μεταβείτε στις ρυθμίσεις εικονικού μηχάνημα, στην επιλογή Αποθήκευση επιλέξτε Ελεγκτής: IDE, Αδειάστε, πατήστε το εικονίδιο CD → Επιλέξτε εικονικό αρχείο οπτικού δίσκου.
  • Επιλέξτε λήψη bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso;
  • Αποθήκευση και κλείσιμο του παραθύρου ρυθμίσεων, έναρξη εικονικής μηχανής?
  • Κάντε δεξί κλικ στο εικονίδιο καλωδίου USB στην κάτω δεξιά πλευρά, επιλέξτε τον προσαρμογέα Bluetooth.

Λειτουργεί σε υπολογιστή

Η εικόνα υποστηρίζει την εκκίνηση BIOS / CSM και UEFI.

  • Κατεβάστε την εικόνα σε μια μονάδα flash USB χρησιμοποιώντας το Etcher: //etcher.io/. Αυτή η ενέργεια θα διαγράψει όλα τα υπάρχοντα αρχεία σε μια μονάδα USB.
  • Απενεργοποιήστε τον υπολογιστή.
  • Τοποθετήστε τη μονάδα flash USB, ανοίξτε τον υπολογιστή και πατήστε το κουμπί εντολής εκκίνησης (συνήθως Esc ή F12).
  • Επιλέξτε τη μονάδα flash USB.

Εκτελέστε τη δοκιμή

  • (προαιρετικό αλλά συνιστάται) Κάντε διπλό κλικ στο "Btsnoop Dump" script στην επιφάνεια εργασίας. Θα ξεκινήσει η λήψη δεδομένων Bluetooth για μελλοντική ανάλυση. Μην κλείνετε το παράθυρο του τερματικού.
  • Αλλάξτε τα ακουστικά στη λειτουργία αντιστοίχισης.
  • Κάντε κλικ στο βέλος στην επάνω δεξιά γωνία, επιλέξτε το εικονίδιο Bluetooth → Ρυθμίσεις Bluetooth.
  • Επιλέξτε τα ακουστικά σας, περιμένετε έως ότου ολοκληρωθεί η αντιστοίχιση και κλείστε το παράθυρο.
  • Ορίστε τον όγκο του Ubuntu σε περίπου 2/3. Επίσης, μειώστε την ένταση χρησιμοποιώντας τα κουμπιά των ακουστικών, καθώς θα μπορούσε να είναι πολύ δυνατά μετά την αντιστοίχιση.
  • Ανοίξτε το φάκελο "μουσική", πατήστε "testrecord1.flac";
  • (προαιρετικό αλλά συνιστάται) Κλείστε τη συσκευή αναπαραγωγής, κλείστε το παράθυρο του τερματικού Αυτό θα σταματήσει τη συλλογή δεδομένων.
  • (προαιρετικό, αλλά συνιστάται) Ανοίξτε το πρόγραμμα περιήγησης Firefox, μεταφορτώστε τη βάση δεδομένων (btsnoop_hci.btsnoop στην επιφάνεια εργασίας) στο //btcodecs.valdikss.org.ru/

Μπορείτε να ακούσετε άλλη μουσική στο φάκελο μουσικής ή να ανεβάσετε τη δική σας.

Δεν πρέπει να υπάρχουν ρωγμές, διακοπή ήχου ή άλλη παραμόρφωση ήχου στα ακουστικά. Αν ακούτε καλό ήχο υψηλής ποιότητας, αυτό σημαίνει ότι τα ακουστικά σας υποστηρίζουν ήχο με ρυθμό μετάδοσης δεδομένων 485 kbps.

Πώς να δοκιμάσετε τη συσκευή Android

Για να δοκιμάσετε από το smartphone ή το tablet Android, πρέπει να χρησιμοποιήσετε τροποποιημένη στοίβα Bluetooth, η οποία απαιτεί δικαιώματα root.

Πώς να καταγράψετε την απόρριψη δεδομένων Bluetooth στο Android

  1. Απενεργοποιήστε το Bluetooth.
  2. Στις Ρυθμίσεις προγραμματιστή, ενεργοποιήστε το διακόπτη "Ενεργοποίηση σύνδεσης HCI Bluetooth HCI".
  3. Ενεργοποιήστε το Bluetooth, συνδεθείτε στο ακουστικό σας χρησιμοποιώντας το μενού Bluetooth (αυτό είναι σημαντικό! Μην επιτρέπετε την αυτόματη σύνδεση!).
  4. Αναπαραγωγή σύντομου δείγματος ήχου.
  5. Ανοίξτε τις ρυθμίσεις προγραμματιστών, απενεργοποιήστε το διακόπτη "Ενεργοποίηση του Bluetooth HCI log snoop"
  6. Θα πρέπει να δημιουργηθούν /storage/emulated/0/btsnoop_hci.log ή /data/misc/bluetooth/logs/btsnoop_hci.log. Αν λείπει, ανοίξτε το /etc/bluetooth/bt_stack.conf με ένα πρόγραμμα επεξεργασίας κειμένου και δείτε τη διαδρομή στην επιλογή BtSnoopFileName.

Δεν πρέπει να υπάρχουν ρωγμές, διακοπή ήχου ή άλλη παραμόρφωση ήχου στα ακουστικά. Εάν ακούτε έναν καλό ήχο υψηλής ποιότητας με την patched βιβλιοθήκη, αυτό σημαίνει ότι τα ακουστικά σας υποστηρίζουν ήχο με ρυθμό δυαδικών ψηφίων 512 kbps.

Παρακαλούμε ακολουθήστε προσεκτικά τον παραπάνω αλγόριθμο. Ειδικά, εάν απενεργοποιείτε τα ακουστικά ή αποσυνδέετε μετά από την αντιστοίχιση, είναι σημαντικό να συνδέσετε χειροκίνητα τα ακουστικά από τις ρυθμίσεις Bluetooth, μην επιτρέψετε την αυτόματη σύνδεση!

Συσκευές που υποστηρίζουν SBC τουλάχιστον 512 kbit / s

  • 1MORE 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. Απαντήστε να μην υποστηρίξετε το Dual Channel, αλλά λειτουργήστε αν είναι υποχρεωτική, 462 kbit / s. Δεν συμμορφώνεται με τις προδιαγραφές A2DP.)
  • Bluedio T5 (Απαντήστε να μην υποστηρίξετε το Dual Channel, αλλά εργάζεται αν είναι υποχρεωμένο. Δεν συμμορφώνεται με τις προδιαγραφές A2DP.)
  • Bluedio T6 (Απαντήστε να μην υποστηρίξετε το Dual Channel, αλλά λειτουργήστε αν είναι υποχρεωτικό. Δεν συμμορφώνεται με τις προδιαγραφές A2DP.
  • Marshall Major II Bluetooth
  • Overdrive RealForce D1
  • Edifier W830BT
  • DEXP BT-250
  • Προσαρμογέας BT της Logitech
  • Μονάδα κύριας μονάδας αυτοκινήτων Noname (τσιπ CSR8645)
  • Sony επικεφαλής μονάδα αυτοκινήτου DSX-A400BT

Συσκευές που υποστηρίζουν SBC υψηλότερη από 512 kbit / s

  • 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, διπλό κανάλι, 4 υποζώνες)

Συσκευές που δεν λειτουργούν με υψηλότερα bitrates ή Dual Channel

  1. Harper HB-202 (κροτίδες · τσιπ Beken BK3256)
  2. Sony Ericsson MW600 (παραμόρφωση υψηλής συχνότητας, ραγίσματα, συσκευή από το 2009)

Γιατί αυτό είναι σημαντικό: SBC 328k και 485k vs aptX

Σε αντίθεση με τη δημοφιλή πεποίθηση της ποιότητας του ήχου aptX, σε ορισμένες περιπτώσεις μπορεί να παράγει χειρότερη ποιότητα ήχου από το SBC με ένα τυποποιημένο bitrate 328k.

Το SBC εκχωρεί δυναμικά δυαδικά ψηφία κβαντισμού για ζώνες συχνοτήτων, με βάση τη βάση από κάτω προς τα πάνω. Αν το σύνολο bitrate χρησιμοποιήθηκε για τις κατώτερες και τις μεσαίες συχνότητες, οι ανώτερες συχνότητες "αποκόπτονται" (σιγή).

Το aptX κβαντοποιεί τις ζώνες συχνοτήτων με τον ίδιο αριθμό bits συνεχώς, γεγονός που το καθιστά σταθερό κωδικοποιητή bitrate: 352 kbps για 44, 1 kHz, 384 kbps για 48 kHz. Δεν μπορεί να "μεταφέρει τα bits" σε συχνότητες που απαιτούνται ως επί το πλείστον σε αυτές. Σε αντίθεση με το SBC, το aptX δεν θα "μειώσει" τις συχνότητες, αλλά θα προσθέσει θόρυβο κβαντισμού σε αυτά, μειώνοντας το δυναμικό εύρος του ήχου και μερικές φορές εισάγοντας σκασίματα. Το SBC, αντίθετα, "τρώει τις λεπτομέρειες" - απορρίπτει τις πιο ήσυχες περιοχές.

Κατά μέσο όρο, σε σύγκριση με το SBC 328k, το aptX κάνει λιγότερη παραμόρφωση στη μουσική με ευρεία περιοχή συχνοτήτων, αλλά σε μουσική με στενό εύρος συχνοτήτων και ευρεία δυναμική εμβέλεια, το SBC 328k κερδίζει μερικές φορές.

Ας σκεφτούμε μια ειδική περίπτωση, μια εγγραφή πιάνου. Εδώ είναι ένα φασματογράφημα:

Η περισσότερη ενέργεια βρίσκεται στις συχνότητες 0-4 kHz και διαρκεί μέχρι 10 kHz.

Το φασματογράφημα του αρχείου aptX του αρχείου μοιάζει με αυτό:

Εδώ είναι το SBC 328k:

Μπορεί να φανεί ότι το SBC 328k περιορίζει τελείως την περιοχή πάνω από 16 kHz και χρησιμοποίησε όλα τα διαθέσιμα bitrates για περιοχές κάτω από αυτή την τιμή. Ωστόσο, το aptX εισήγαγε περισσότερες στρεβλώσεις στο φάσμα συχνοτήτων που ακούγεται από το ανθρώπινο αυτί, το οποίο μπορεί να φανεί στο αφαιρεθέν αρχικό φασματογράφημα από το φαστρόγραμμα aptX (η φωτεινότερη, η περισσότερη παραμόρφωση):

Ενώ το SBC 328k έχει εισαγάγει λιγότερη παραμόρφωση το σήμα στην περιοχή από 0 έως 10 kHz, και το υπόλοιπο έχει σut:

Το Bitrate 485k για το SBC ήταν αρκετό για να σώσει ολόκληρο το εύρος συχνοτήτων, χωρίς να κόψει τις ζώνες.

Το SBC 485k σε αυτό το ηχητικό δείγμα είναι πολύ καλύτερο από το aptX στην περιοχή των 0-15 kHz και με μια μικρότερη αλλά διακριτή διαφορά - στα 15-22 kHz (η πιο σκούρα, η λιγότερη παραμόρφωση):

Εάν μεταβείτε σε ένα SBC υψηλής ταχύτητας, θα έχετε έναν ήχο ανώτερο από το aptX τις περισσότερες φορές, σε οποιοδήποτε ακουστικό.

  • original_and_aptx.zip
  • sbc.zip

Πώς να τροποποιήσετε τις στοίβες Bluetooth στο Android 5 - 7

Αυτές οι τροποποιήσεις θα πρέπει να εφαρμοστούν σε αποθέματα Android bluetooth stacks Bluedroid (Android 5) και Fluoride (Android 6-7). Η στοίβα τροποποιημένη με Qualcomm δεν υποστηρίζεται.

Αντικαταστήστε το στερεό στερεό με το διπλό κανάλι στην τυπική διαμόρφωση SBC

Android / πλατφόρμα / εξωτερικό / bluetooth / 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.

Αύξηση προτεραιότητας διπλού καναλιού

Android / πλατφόρμα / εξωτερικό / bluetooth / bluedroid / btif / co / bta_av_co.c: 4

Κώδικας:

 αν (src_cap.ch_mode & A2D_SBC_IE_CH_MD_JOINT) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_JOINT. else if (src_cap.ch_mode & A2D_SBC_IE_CH_MD_STEREO) pref_cap.ch_mode = A2D_SBC_IE_CH_MD_STEREO; else αν (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. Απενεργοποίηση ή αύξηση του περιορισμού bitrate

Η στοίβα Bluetooth bluetooth δεν έχει μόνο όριο bitpool, αλλά και όριο bitrate, 328 kbit / s. Εάν τα ακουστικά υποστηρίζουν, για παράδειγμα, το bitpool 53 για 48 kHz, το Android θα μειώσει το bitpool προς τα κάτω για να χωρέσει σε όριο 328 kbit / s. Αυτό θα συμβεί μετά τη διαπραγμάτευση του κωδικοποιητή, στο στάδιο κωδικοποίησης, δεν λαμβάνουν υπόψη την τιμή bitpool στο πακέτο Bluetooth SetCapabilities.

Android / πλατφόρμα / εξωτερικό / bluetooth / bluedroid / btif / src / btif_media_task.c: 172

Κώδικας:

 #define DEFAULT_SBC_BITRATE 328 

Αντικαταστήστε με 512.

  1. (μόνο για πειράματα) Απενεργοποιήστε το όριο MTU.

Αυτό απαιτείται για bitrates υψηλότερα από ~ 580 kbit / s.

btif / src / btif_media_task.c: 174

Κώδικας:

 / * 2DH5 μέγεθος ωφέλιμου φορτίου 679 bytes - (4 bytes L2CAP Κεφαλίδα + 12 byte AVDTP κεφαλίδα) * / #define MAX_2MBPS_AVDTP_MTU 663 

Πώς να τροποποιήσετε τις στοίβες Bluetooth στο Android 8 - 9

Αυτές οι τροποποιήσεις δεν έχουν δοκιμαστεί, αλλά θα πρέπει να λειτουργούν.

Προσθέστε υποστήριξη διπλού καναλιού στην πηγή A2DP SBC

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

Κώδικας:

 / * SBC SRC δυνατότητες κωδικοποιητή * / static const tA2DP_SBC_CIE a2dp_sbc_caps = A2DP_SBC_IE_SAMP_FREQ_44, / * samp_freq * / (A2DP_SBC_IE_CH_MD_MONO; 

προσθέστε A2DP_SBC_IE_CH_MD_DUAL σε ch_mode.

Αντικαταστήστε το στερεό στερεό με το διπλό κανάλι στο προεπιλεγμένο config

/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_SBC_IE_CH_MD_JOINT; p_codec_config-> channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO; επιστροφή true; } αν (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; } αν (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; } αν (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; } επιστροφή ψευδούς. }} 

Μετακίνηση με A2DP_SBC_IE_CH_MD_DUAL στην κορυφή.

Αυξήστε το όριο bitrate

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

Κώδικας:

 #define A2DP_SBC_DEFAULT_BITRATE 328 

Αντικαταστήστε με 512.

  1. (μόνο για πειράματα) Απενεργοποιήστε το όριο MTU

Αυτό απαιτείται για bitrates υψηλότερα από ~ 580 kbit / 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 Cool Changer S1 EUI_5.8.19S.zip
  • Leeco LE2 (EUI 5.9.26s, Android 6) .zip
  • Xiaomi Mi Σημείωση (Miui 9 Miui.su usnkreal v8.4.12, Android 6.0.1).
  • Xiaomi mi σημείωση 3 (MIUI 9, Android 7) .zip
  • Xiaomi Mi4c (Android 7.0 NRD90M, MIUI-9.5 9.5.1.0 (NXKCNFA)).
  • Xiaomi MI5s (MIUI Global 9.6.1.0, Android 7) .zip
  • Xiaomi Redmi 3s (ανδροειδές 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 Σημείωση 3 (Ανάσταση Ανάστασης Android 7.1.2_r36) .zip
  • Redmi Σημείωση 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
  • φερμουάρ
  • Le Max 2 Oreo Patched.zip

Ενδιαφέροντα Άρθρα