2 पॉइंट द्वारा GN⁺ 2025-02-03 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Waydroid एक ऐसा प्रोजेक्ट है जो Wayland-आधारित GNU/Linux डेस्कटॉप पर पूरे Android सिस्टम को कंटेनर के रूप में बूट करता है, ताकि Android ऐप्स Linux ऐप्स की तरह साथ-साथ चल सकें
  • Linux namespaces और LXC, binder इंटरफेस का उपयोग करके Android कंटेनर आवश्यक हार्डवेयर तक सीधे पहुंचता है और arm, arm64, x86, x86_64 GNU/Linux प्लेटफॉर्म को सपोर्ट करता है
  • Android ऐप्स को Linux application folder में इंटीग्रेट किया जा सकता है, और Multi-Window Mode, Full UI Mode, Fullscreen Mode जैसे उपयोग-परिस्थिति के अनुसार रन मोड उपलब्ध कराता है
  • runtime LineageOS पर आधारित न्यूनतम कस्टमाइज्ड Android system image से बना है, और मौजूदा image Android 13 आधारित है
  • इंस्टॉलेशन के बाद waydroid-container service शुरू करनी होती है और app menu से first-run wizard पूरा करना होता है; Waydroid-Linux beta distribution live mode में नहीं, बल्कि installed environment में काम करता है

Waydroid का Android-on-Linux आर्किटेक्चर

  • Waydroid सामान्य GNU/Linux सिस्टम के Wayland-आधारित desktop environment में पूरे Android सिस्टम को कंटेनर के रूप में बूट करने का तरीका इस्तेमाल करता है
  • कंटेनर के अंदर Android Linux namespaces का उपयोग करता है
    • user
    • pid
    • uts
    • net
    • mount
    • ipc
  • Android सिस्टम LXC और binder interface के जरिए जरूरी हार्डवेयर तक सीधे पहुंचता है
  • समर्थित प्लेटफॉर्म GNU/Linux आधारित arm, arm64, x86, x86_64 हैं
  • यह प्रोजेक्ट मुफ्त open source है और repository GitHub पर है

डेस्कटॉप इंटीग्रेशन और रन मोड

  • Android ऐप्स Linux applications के साथ-साथ डेस्कटॉप पर चलते हैं, और Waydroid Android ऐप्स को Linux application folder में जोड़ता है
  • रन मोड उपयोग के तरीके के अनुसार बंटे हैं
    • Multi-window mode: Android freeform window definition को बढ़ाकर कई सुविधाएं जोड़ता है
    • Full UI Mode: गेम और full-screen entertainment के लिए पूरा Android UI दिखाता है
    • डेस्कटॉप/कियोस्क के लिए Fullscreen Mode इस्तेमाल किया जा सकता है
  • परफॉर्मेंस के मामले में Wayland और AOSP mesa का उपयोग करके जितना संभव हो native-जैसे व्यवहार का लक्ष्य रखा गया है
  • Android runtime environment LineageOS पर आधारित न्यूनतम कस्टमाइज्ड Android system image के साथ आता है, और मौजूदा image Android 13 आधारित है

डॉक्यूमेंटेशन, इंस्टॉलेशन, Waydroid-Linux beta

  • डॉक्यूमेंटेशन और issue management अलग लिंक पर देखे जा सकते हैं
  • systemd distributions में quick install flow के लिए distribution-specific installation docs का पालन करें; इसके बाद, यदि automatic start नहीं हुआ है तो waydroid-container service शुरू करें और application menu से Waydroid चलाकर first-run wizard पूरा करें
  • first run के दौरान मांगने पर OTA links के रूप में System OTA और Vendor OTA दर्ज करें
  • Waydroid-Linux Beta पूरी तरह इंटीग्रेटेड distributions हैं, जिन्हें Waydroid द्वारा संभव integration capabilities दिखाने के लिए बनाया गया है
    • शुरुआती alpha release Ubuntu 20.04(focal) से शुरू हुई
    • फिलहाल Ubuntu 22.04(jammy) और Debian 12(bookworm) भी शामिल हैं
    • संभव कार्यक्षेत्र को बढ़ाने के लिए कई tools और scripts शामिल हैं
  • Waydroid LXC और binder के लिए kernel modules का उपयोग करता है, इसलिए Waydroid-Linux live mode में काम नहीं करता; सही तरीके से काम करने के लिए installation आवश्यक है
  • beta download items README.md देखने की मांग करते हैं, और example releases के तौर पर Ubuntu 22.04 KDE-Plasma, Ubuntu 22.04 Gnome, Debian 12 Beta, Ubuntu 21.10 Beta, पुराने alpha releases उपलब्ध हैं

1 टिप्पणियां

 
GN⁺ 2025-02-03
Hacker News की राय
  • यह front page पर आया, यह थोड़ा हैरान करने वाला है। यह काफ़ी जाना-पहचाना software है, इसलिए
    अफ़सोस की बात यह है कि Waydroid में चलने वाली Google द्वारा दी गई image नहीं है। जैसे कोई general system image। Internet से डाउनलोड किए गए किसी भी random ROM में password डालना असहज लगता है
    https://source.android.com/docs/core/tests/vts/gsi

    • इसे “Internet से डाउनलोड किया गया कोई random ROM” कहना मुश्किल है। LineageOS बहुत लंबे समय से स्थापित project है, और किसी खास device के लिए ज़रूरी firmware को छोड़ दें तो यह पूरी तरह free और open source software है
      Waydroid जैसे project के लिए, जिसे community support और लगातार उपलब्धता चाहिए, यह एक natural choice है। Google ने Android के आधार AOSP से वर्षों में कई मूल free और open source हिस्से हटाते रहे हैं, इसलिए LineageOS जैसे projects को replacement components बनाने पड़े। फिर भी लगता है कि LineageOS, AOSP में Google समेत ज़्यादातर phone manufacturers की तुलना में कम बदलाव करता है
    • क्या इसे random कहा जा सकता है? LineageOS काफ़ी स्थापित project है। उल्टा, Google द्वारा दी गई image में अपनी निजी जानकारी डालना मुझे ज़्यादा खटकता है। क्योंकि मेरा data collect करना और ads दिखाना Google का core business model है
    • सच कहूँ तो मैं Google-provided image से ज़्यादा LineageOS पर भरोसा करता हूँ
    • संदर्भ के लिए, Firefox भी पहले front page पर आ चुका है। यह स्वीकार्य बात है :)
    • Google Docker में चलने वाली image उपलब्ध कराता है
  • Mac पर Docker Desktop या OrbStack जैसी चीज़ों से चला सकने वाला containerized Android हो तो अच्छा होगा
    Docker image modify करके rooted man-in-the-middle proxy पहले से set up करना चाहता हूँ, और Android app डालकर network traffic और API calls को कहीं आसानी से observe करना चाहता हूँ

    • अगर अभी जल्दी से करना हो, तो Waydroid चलाने के बाद Waydroid के लिए बने network namespace के अंदर Wireshark चलाएँ
      sudo ip netns exec wireshark
    • Proxy settings का पता नहीं, लेकिन redroid असल में Docker container के अंदर Android ही है
  • यही वह आधार था जिस पर FuriLabs ने Android app integration अच्छा बनाया। ज़रूर, उन्होंने fork करके [0] काफ़ी modify किया, लेकिन Linux phone पर Android apps इस्तेमाल करने वाला user experience शानदार था
    [0] https://github.com/FuriLabs/waydroid

    • मैं FuriLabs का Jesus हूँ। FOSDEM समेट रहा हूँ, लेकिन अगर questions या feedback हों तो जवाब दे सकता हूँ :)
  • Furiphone FLX1 इसका खूब इस्तेमाल कर रहा है और सच में अच्छा है। असली Android phone से जो ज़्यादातर काम करना चाहेंगे, वे कर सकते हैं
    बेशक मेरी ज़रूरतें बहुत ज़्यादा नहीं हैं, लेकिन मैं ऐसे लोगों को जानता हूँ जो इसे Signal और Spotify के लिए इस्तेमाल करते हैं। शानदार project है और Linux phone के लिए बिल्कुल fit बैठता है

    • इस thread में पहली बार देखा और देखा-परखा, अच्छा लग रहा है। एक खरीदना चाहता हूँ, लेकिन FAQ में लिखा है कि “जिन apps को पूरा Google Play Store और उसकी requirements चाहिए, वे काम नहीं करेंगी, और इनमें कुछ banking apps शामिल हैं”
      आखिरकार लगता है कि दो phones साथ रखने पड़ेंगे। Banking और credit card apps रोज़ की ज़रूरी apps हैं, और कुछ accounts में desktop browser से भी phone app authentication के बिना login तक नहीं हो पाता। अलग-अलग payments के लिए भी अक्सर phone app confirmation चाहिए होता है। ज़्यादा free user experience के लिए bank account बदल पाने की स्थिति भी नहीं है
      Finance के अलावा, main work में Google suite इस्तेमाल करना पड़ता है, और दूसरे काम में Discord भी इस्तेमाल करना पड़ा। यह शायद functionality कम होने पर भी browser से संभव है, लेकिन banking और credit card apps के साथ ऐसा नहीं है
      यह Waydroid या FLX1 की शिकायत नहीं है; उस काम और creativity की मैं सराहना करता हूँ। पूरी तरह free और open source phone रखने और खुद बनाने का सपना लंबे समय से देखा है, और उसके workload को भी जानता हूँ। पहले Nokia N900 भी दो इस्तेमाल किए थे
      बस समय बदल गया है, और उम्मीद है कि आज की everyday life जिन apps या protocols की मांग करती है, उन्हें free और open source based system पर या उसके साथ-साथ चलाने का कोई तरीका मिल जाए
    • यह phone लगभग perfect है। TRRS connector, uSD card, user-replaceable battery, और US में बिक्री तक है
      हालांकि OLED panel न होना निर्णायक कमी हो सकती है
    • Furiphone FLX1 कैसा है, जिज्ञासा है। Online reviews बहुत कम हैं
    • क्या USB-C port पर DP alternate mode support करता है?
    • Flatpak Signal है जो FuriOS पर भी अच्छी तरह काम करता है
  • बहुत पहले खरीदी हुई मेरी तीन apps हैं। Swedish dictionary, German-Swedish dictionary, और English-Swedish dictionary
    अब भी install की जा सकती हैं, लेकिन app store में अब उपलब्ध नहीं हैं। Company Norstedts स्वाभाविक रूप से subscription model पर चली गई है। इन apps को desktop पर इस्तेमाल करने के लिए मैं Waydroid इस्तेमाल कर रहा हूँ और बहुत संतुष्ट हूँ

  • कई apps Google, Samsung जैसी “official” Android distributions पर चलने पर निर्भर करती हैं, और Waydroid की Lineage-based distribution पर काम नहीं करतीं
    https://gitlab.com/android_translation_layer/android_transla... जैसा Wine-style approach apps को यह विश्वास दिलाने में मदद कर सकता है कि वे “official” Android distribution पर चल रही हैं

    • इस तरह apps को धोखा देने के लिए specific APIs के set की नकल करनी होती है। “Real” Android में Magisk modules कुछ हिस्सों को spoof करते हैं, या microG Google services को पूरी तरह reimplement करता है
      ATL का Wine-style approach APIs की नकल करने के लिए निश्चित रूप से ज़्यादा intuitive है, लेकिन फिर भी ATL के लिए अलग reimplementation चाहिए। दूसरी ओर Waydroid पूरा Android environment चलाता है, इसलिए Magisk या microG को reuse करने की संभावना है
  • इसे हर बार देखते समय सोचता/सोचती हूँ, “कमाल है! ऐसे शानदार Android ऐप चला सकूँगा जिनका Linux वाला ऐप नहीं है”, लेकिन हर बार कुछ याद ही नहीं आता। क्या कोई Android ऐप है जो वाकई ज़रूरी हो?

    • Organic Maps और OSMAnd हैं। ये मुझे मिले open source desktop map software से बेहतर हैं
      Organic Maps का desktop Linux version है, लेकिन feature parity अभी काफी दूर है। हालांकि Organic Maps के लिए अच्छा desktop UI बनाने वाली इस grant [1] की वजह से यह बदल भी सकता है
      [1] https://nlnet.nl/project/OrganicMaps-ConvergentUI/
    • मुझे mail client FairEmail पसंद है। अजीब लग सकता है, लेकिन शायद यह मेरे इस्तेमाल किए हुए सभी desktop mail clients से बेहतर है
    • मेरे लिए अहम चीज़ banking apps जैसी हैं, जिनमें app-based authentication चाहिए होता है। बेशक, ऐसे समाधान अफसोस की बात है कि Waydroid जैसी चीज़ों में ठीक से काम नहीं करते। क्योंकि ऐप समझ जाता है कि वह container के अंदर है और functionality रोक देता है
    • मैंने इसे ज़्यादातर उन लोगों को recommend होते देखा है जो Steam Deck पर mobile games खेलना चाहते हैं
    • मेरे पास एक “smart guitar” है जिसके settings बदलने के लिए dedicated app चाहिए। वही मेरा “smart”phone इस्तेमाल करते रहने की इकलौती वजह है
  • क्या यह container hardware USB device तक access कर सकता है? मेरे पास PEQ वाला Moondrop FreeDSP USB-C cable है, जो सिर्फ एक खराब Android app में काम करता है
    मेरे पास जो Android tablet है उसका touchscreen भी खराब है, इसलिए EQ settings बदलने में बहुत समय लग जाता है। मैं यह बस Linux laptop से करना चाहता/चाहती हूँ

    • लगता है हो सकता है। Android पर focus होने के समय USB device plug करने पर यह गलती से उस USB device को पकड़ भी लेता है: https://github.com/waydroid/waydroid/issues/778
      अगर ऐसा न भी हो, तो अंततः यह Linux container ही है, इसलिए कुछ udev rules के साथ किसी तरह इसे काम कराया जा सकता होगा
  • ऐसे projects में कुछ चीज़ें लगातार गायब दिखती हैं। host के hardware 3D acceleration को उस OpenGL ES और Vulkan versions के साथ इस्तेमाल करने का हिस्सा कमज़ोर है जिन्हें ज़्यादातर phones मूल रूप से support करते हैं
    साथ ही कई apps में यह detect करने के built-in तरीके होते हैं कि वे phone पर नहीं चल रहे, और वे cpuinfo देखकर claimed device से मिलाते हैं और फिर बंद हो जाते हैं
    devices में expected ARM support भी बढ़ रहा है, और expected throughput भी साथ में बढ़ रहा है। इसलिए एक साधारण modern mobile ARM SoC को भी emulate करने के लिए ज़रूरी x86 host performance लगातार बढ़ती जा रही है
    आखिर में, supported Android version लगभग हमेशा latest से 3–4 generations पीछे रहता है। apps पुराने Android support को तेजी से बंद कर देते हैं, या पुराने OS versions पर कम features और optimizations के साथ चलते हैं। इस project का Android base version 2020 का है
    अनुभव के तौर पर, इस क्षेत्र में सबसे अच्छी compatibility और optimization वाले emulation stack BlueStacks को भी 7800X3D / RTX 3090 पर चलाने पर ज़्यादातर games पिछले साल के Snapdragon 8 phone पर native चलने की तुलना में धीमे चलते हैं

  • हैरानी की बात है कि किसी ने इसे abstract करके कई Android containers को LXC के नीचे चलाने लायक नहीं बनाया
    Waydroid में सिर्फ एक image है। मुझे लगा कि यह बहुत सारे patches वाले custom Linux kernel का इस्तेमाल करता है, और मैं इसे ठीक से समझ नहीं पाया/पाई, लेकिन LXC interface वाला हिस्सा काफी simple दिखा

    • Waydroid host kernel का इस्तेमाल करता है