1 पॉइंट द्वारा GN⁺ 3 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • LibrePods एक ऐसा प्रोजेक्ट है जो AirPods और Apple डिवाइसों के बीच इस्तेमाल होने वाले proprietary protocol को implement करता है, ताकि Apple डिवाइस-विशेष AirPods features को Linux और Android जैसे non-Apple platforms पर इस्तेमाल किया जा सके
  • सपोर्ट किए गए features platform के अनुसार अलग-अलग हैं, और listening mode बदलना, wear detection, battery status, conversational awareness, तथा auto connect Linux और Android पर implement किए जा चुके हैं और अच्छी तरह काम करते हैं
  • कुछ features के लिए VendorID spoofing की ज़रूरत होती है या वे अभी planning stage में हैं, और Head Gestures सिर्फ Android पर समर्थित है; Linux पर इसे implement करने की योजना नहीं है
  • Find My, spatial audio, heart rate monitoring, और high quality two-way audio अभी अधूरे हैं या उनकी पड़ताल जारी है, और Android पर कुछ features के लिए root की ज़रूरत पड़ सकती है
  • Android app और Linux rewrite के कुछ हिस्सों में AI-generated code शामिल है, और प्रोजेक्ट GPLv3 या उससे ऊपर के तहत वितरित होता है, लेकिन LibrePods नाम, लोगो और branding के उपयोग के अधिकार अलग से सीमित हैं

LibrePods क्या करता है

  • LibrePods AirPods और Apple डिवाइसों के बीच डेटा के आदान-प्रदान में इस्तेमाल होने वाले proprietary protocol को implement करता है
  • इस implementation की मदद से non-Apple platforms पर भी AirPods के निम्न features इस्तेमाल किए जा सकते हैं
    • noise control mode बदलना
    • fast wear detection
    • सटीक battery status
    • Head Gestures
    • Conversational Awareness
    • अन्य AirPods settings features
  • installation documents platform के अनुसार अलग-अलग हैं

प्लेटफ़ॉर्म के अनुसार feature support

  • Linux और Android दोनों पर implement होकर अच्छी तरह काम करने वाले features

    • listening mode बदलना
    • wear detection
    • battery status
    • AirPods का नाम बदलना
      • Android पर नाम बदलने के बाद दोबारा pair करना पड़ सकता है
    • Conversational Awareness
    • AirPods auto connect
  • सिर्फ Android पर समर्थित features

    • Head Gestures
    • अन्य accessibility settings
      • Press speed
      • Press and Hold duration
      • Noise Cancellation with single AirPod
      • Volume control on swipe
      • Volume swipe speed
    • अन्य सामान्य settings
      • Press and Hold से listening mode cycle करना या digital assistant को बुलाना
      • call control settings
      • Personalized volume
      • Microphone side
      • सोते समय media pause करना
      • Off listening mode सक्षम करना
    • वे features जिनके लिए VendorID spoofing की ज़रूरत है
    • Loud Sound Reduction
    • Hearing Aid
    • Transparency Mode customization
    • Multi-device connectivity
    • status notation का मानक इस प्रकार है
    • ✅: implement किया गया है और अच्छी तरह काम करता है
    • ⚪: VendorID spoofing की ज़रूरत, जोखिम उपयोगकर्ता को स्वयं उठाना होगा
    • 🔴: अभी implement नहीं हुआ, योजना में है
    • ⛔: implement नहीं किया जाएगा
    • ❓: अज्ञात

VendorID spoofing और अतिरिक्त features

  • VendorID spoofing वह तरीका है जिसमें DID Profile के VendorID को Apple के मान में बदलकर कई विशेष features तक पहुंच बनाई जाती है
  • Linux पर इसे /etc/bluetooth/main.conf में DeviceID बदलकर इस्तेमाल किया जा सकता है
    • setting line: DeviceID = bluetooth:004C:0000:0000
  • Android पर यदि Xposed उपलब्ध हो और LibrePods module सक्रिय हो, तो app settings में act as Apple device चालू किया जा सकता है
  • Multi-device Connectivity की मदद से अधिकतम 2 डिवाइसों को एक साथ AirPods से जोड़कर audio और control दोनों इस्तेमाल किए जा सकते हैं
    • यदि Android AirPods को अपने पास ले ले, तो Apple डिवाइस पर Apple डिवाइस की तरह "Move to iPhone" notification दिखाई देती है
    • यदि कोई दूसरा डिवाइस उन्हें ले ले, तो Android पर भी popup दिखाई देता है
  • accessibility और hearing aid से जुड़ी settings को भी configure किया जा सकता है
    • Transparency Mode की amplification, balance, tone, conversation boost, ambient noise reduction
    • Loud Sound Reduction
    • Hearing Aid customization और audiogram result settings
    • app hearing test feature नहीं देता क्योंकि उसके लिए अधिक उच्च precision की ज़रूरत होती है

अभी अधूरे features और scope limitations

  • Find My से जुड़े features की योजना है, लेकिन इनके लिए अतिरिक्त reverse engineering की ज़रूरत है और Android पर root की आवश्यकता पड़ सकती है
    • AirPods को Find My network में जोड़ना
    • charging case से sound चलाना
    • पीछे छूट जाने पर notification
    • case charging sound toggle
  • Spatial Audio फिलहाल Android को head tracking information नहीं देता ताकि OS HRTF कर सके
    • इसकी पूरी तरह पड़ताल नहीं हुई है और root की ज़रूरत पड़ सकती है
    • stereo sound को spatialize करने वाला feature प्रोजेक्ट के scope से बाहर है और इसे उपलब्ध नहीं कराया जाएगा
    • कई OEM के पास इसका अपना implementation है
  • Heart Rate Monitoring पर AirPods Pro 3 और उसके बाद के models के लिए काम चल रहा है
    • implement होने पर भी Android पर root की ज़रूरत पड़ने की संभावना अधिक है
  • High quality two-way audio उस feature से जुड़ा है जिसमें iOS/iPadOS पर AirPods microphone audio stream को AACP के जरिए भेजते हुए भी A2DP का उपयोग जारी रख सकते हैं
    • Android पर इसके लिए audio के साथ अधिक गहरे integration की ज़रूरत है, इसलिए root की आवश्यकता पड़ने की संभावना अधिक है

प्रोटोकॉल, reverse engineering, और AI का उपयोग

  • protocol जानकारी के लिए Nojus के Wireshark dissector plugin pabloaul/apple-wireshark को देखा जा सकता है
  • LibrePods implementation के अधिकांश हिस्सों में उस dissector का इस्तेमाल नहीं किया गया, और प्रोजेक्ट लेखक ने dissector बनने से पहले protocol का स्वयं reverse engineering किया
  • हालांकि, high quality two-way audio और spatial audio जैसे भविष्य के features के लिए उस reverse engineering कार्य की ज़रूरत पड़ी थी
  • Android app में पूरी तरह AI-generated हिस्से
    • Head Gestures का पूरा logic और UI
    • r2 और Xposed module का उपयोग करने वाले offset setup के दोनों versions
    • Troubleshooter और LogCollector
  • Android app के बाकी प्रमुख हिस्से manually लिखे गए हैं
    • background service
    • AACP और ATT Bluetooth manager classes
    • पूरा UI और छोटे components
  • Linux rewrite में aacp.rs और att.rs को Kotlin से Rust में AI द्वारा translate किया गया
    • media_controller.rs का कुछ हिस्सा, मुख्य रूप से Pulse integration भी AI-generated है
  • कुछ UI components Apache License 2.0 वाले Kyant0's demo app से लिए गए हैं

वैकल्पिक apps, लाइसेंस, और trademark notice

  • अन्य platforms या परिस्थितियों में इस्तेमाल के लिए वैकल्पिक apps सुझाए गए हैं
    • CAPod: Android के लिए AirPods companion app, Android 16 QPR3 या उससे नीचे और बिना root की स्थिति में उपयोग की सिफारिश
    • MagicPods for Steam Deck: website
    • MagicPods: Windows पर LibrePods के विकल्प के रूप में
  • LibrePods को GPLv3 या उससे ऊपर की शर्तों के तहत free software के रूप में वितरित किया जाता है
  • GPL, LibrePods नाम, लोगो या branding के उपयोग का अधिकार नहीं देता
  • LibrePods नाम और लोगो का बिना अनुमति इस तरह उपयोग नहीं किया जा सकता जिससे आधिकारिक प्रोजेक्ट से संबद्धता, endorsement, या संबंध का संकेत मिले
  • Android app में इस्तेमाल किया गया SF Pro font Apple Inc. की संपत्ति है, और भविष्य के versions में इसे किसी open alternative से बदला जाएगा
  • AirPods, AirPods Pro, AirPods Max, और AirPods लोगो Apple Inc. के trademark हैं, और LibrePods project Apple Inc. से संबद्ध नहीं है और न ही उसे Apple Inc. का endorsement प्राप्त है
  • librepods.org LibrePods project की आधिकारिक website नहीं है, और चेतावनी दी गई है कि यह footer में copyright claim और LibrePods logo के उपयोग के जरिए गलत तरीके से खुद को आधिकारिक website बताता है

1 टिप्पणियां

 
GN⁺ 3 시간 전
Hacker News की रायें
  • भ्रम हो सकता है, इसलिए जोड़ दूं: AirPods पहले से ही दूसरे डिवाइसों पर सामान्य Bluetooth earbuds की तरह काम करते हैं
    यह प्रोजेक्ट Apple products में integrated कुछ अतिरिक्त features और interfaces को implement करता है

    • समझ नहीं आ रहा कि इसमें भ्रम क्या है। README के सबसे ऊपर ही यह समझाया गया है
      उसमें लिखा है, “LibrePods allows you to use AirPods features that are exclusive to Apple devices. It implements the proprietary protocol used to exchange data between AirPods and Apple devices”, और उसके बाद features की table भी है
    • AirPods खरीदने की वजह यह नहीं है। असली बात यह है कि वे iPhone से Apple TV, MBP, Mini तक बहुत natural तरीके से switch/continue होते हैं
      कम कीमत में बेहतर sound देने वाले products भी हैं, लेकिन sound quality इस product की कहानी का शायद सबसे छोटा हिस्सा है
    • अगर मुझे ठीक याद है, तो कम से कम 2021 से AirPods का battery level दिखाने वाले कई Android apps मौजूद थे
      सामान्य Bluetooth audio output/input device के रूप में connect होने के अलावा जरूरी features के लिए भी ऐसा था
  • यह प्रोजेक्ट शानदार है। उम्मीद है किसी दिन AirDrop भी मुक्त हो जाएगा
    https://github.com/seemoo-lab/opendrop promising लग रहा था, लेकिन लगता है रुक गया है; उम्मीद है कभी संभव होगा

  • अगर मुझे पूरा यकीन न होता कि Apple आगे चलकर इसे काम करने देने वाले हर रास्ते को जितना हो सकेगा बंद करने की कोशिश करेगा, तो यह मेरे लिए AirPods खरीदने की वजह बन सकता था

    • AirPods पहले से ही Apple ecosystem के बाहर भी काम करते हैं
      यह ज्यादा ऐसा है कि किसी ने उन अतिरिक्त features के लिए interface implement किया है जो Apple operating systems में पहले से integrated हैं
    • AirPods तब update होते हैं जब वे case में charge हो रहे हों और किसी xOS device से paired हों
      version pinning करनी हो, तो उन्हें कभी भी Apple product से connect नहीं होने देना होगा
    • Apple AirPods को खराब खरीदारी क्यों बनाना चाहेगा? Apple आपको Mac पर कोई भी operating system चलाने देता है, और उस तरफ वह actively hostile नहीं है, लेकिन community की मदद भी नहीं करता
      फिर भी अगर आप पहले से Apple computer या phone user नहीं हैं, तो मैं Sony WF-1000XM6 recommend करूंगा। लोग कहते हैं कि user experience खराब है और थोड़ा buggy है, लेकिन sound बेहतर होने की संभावना ज्यादा है
    • AirPods offline devices हैं, इसलिए अगर आप अभी एक pair खरीदते हैं तो वे अनिश्चित समय तक काम करेंगे
      हालांकि शायद बेहतर होगा कि ऐसे manufacturer को reward किया जाए जो मेरे खरीदे hardware को इस्तेमाल करने के लिए इस तरह के workarounds की मांग न करे
    • मैं तो नहीं खरीदूंगा। किसी भी price range में ये market के सबसे uncomfortable earbuds हैं
  • पिछली चर्चा: https://news.ycombinator.com/item?id=45941596

  • इसमें लगी मेहनत और hacking का सम्मान है
    लेकिन समझ नहीं आता कि इतनी hostile company को AirPods खरीदकर support क्यों करना चाहिए। इसे रोकने वाला patch आ जाए तो मुझे हैरानी नहीं होगी

    • Apple को लेकर मेरी सबसे बड़ी दुविधा यही है। hardware वाकई बेहतरीन है, लेकिन अपने hardware पर user freedom के खिलाफ उसका रवैया मुझे उसे कभी इस्तेमाल नहीं करने देता
      भले ही workaround से hack किया जा सके, लेकिन users को control करने और पालने-पोसने लायक subject की तरह देखने वाली culture खटकती है
    • यह hostile से ज्यादा आलसीपन जैसा है। AirPods उन सभी चीजों के लिए standard Bluetooth इस्तेमाल करते हैं जो Bluetooth provide करता है
      non-Apple platforms पर जो चीजें नहीं चलतीं, वे settings, squeeze gestures बदलना, firmware updates load करना जैसी चीजें हैं
      सिर्फ standard Bluetooth से ऐसा करने का कोई तरीका नहीं है, इसलिए dedicated app चाहिए। Apple ने बस दूसरे platforms के लिए dedicated app नहीं बनाया, और अगर कोई और resources लगाकर app बनाता है तो Apple को परवाह करने की वजह भी नहीं है। आखिर AirPods बिक गए और app बनाने की लागत किसी और ने दी, तो Apple की जीत है
    • समझ नहीं आ रहा कि इसमें इतना hostile क्या है
      क्या सामान्य Bluetooth connection के ऊपर features जोड़ना, लेकिन उन्हें केवल उन platforms पर देना जिन पर आप पूरी तरह control और quality assurance कर सकते हैं, गलत है?
      सिर्फ features को exclusive रखना सच में hostile है? क्या कोई company अपने कई products साथ इस्तेमाल करने पर फायदे नहीं दे सकती?
      या फिर hostile इसलिए कहा जा रहा है क्योंकि assumption है कि Apple इसे patch कर देगा?
      1. मजे के लिए
      2. second-hand buyers, gift पाने वालों, पहले खरीद चुके लोगों आदि को additional freedom देने के लिए
  • मैं कई सालों से AirPods के कई pairs इस्तेमाल कर रहा हूं, लेकिन कुछ features के बारे में मुझे अब पहली बार पता चला
    यहां तक लगा कि Apple support दिखाने वाला एक तीसरा column भी होना चाहिए। बेशक मजाक कर रहा हूं

  • जिसके पास अभी AirPods नहीं हैं और जो Apple side को closely follow नहीं करता, उसके लिए यह समझाना उपयोगी होगा कि AirPods को non-Apple device से pair करने पर कौन से features खो जाते हैं

    • feature compatibility list मौजूद है
  • मुझे उम्मीद थी कि यह Linux पर AirPods को speaker और headset के रूप में simultaneously इस्तेमाल करने देगा

    • उस feature के लिए एक PR है: https://github.com/librepods-org/librepods/pull/655
      खुद इस्तेमाल करके देखा, तो अच्छा काम करता लगता है। उम्मीद है patent की वजह से यह block नहीं होगा
    • Linux पर भी AirPods को speaker (playback) और headset (mic) के रूप में simultaneously इस्तेमाल किया जा सकता है
      बस Bluetooth profile को HFP (Hands-Free Profile) या HSP (Headset Profile) में बदलना होगा
      ध्यान दें कि बेहतर quality के लिए यही default है। यह Linux की वजह से नहीं, Bluetooth specification की वजह से है
  • जिस core useful feature की मुझे तलाश है, वह है दूसरे devices पर भी unlimited multipoint इस्तेमाल करना
    ज्यादातर दूसरे devices में मिलने वाले 2 connections बहुत खराब लगते हैं। कभी-कभी company के VoIP desk phone से जल्दी connect कर पाना अच्छा होगा