3 पॉइंट द्वारा GN⁺ 2024-03-18 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Universal Android Debloater GUI, मौजूदा UAD project को Rust में पूरी तरह दोबारा लिखा गया एक टूल है, जिसका उद्देश्य अनावश्यक या कम-ज्ञात Android system apps को हटाकर privacy और battery performance को बेहतर बनाना है
  • root के बिना system packages को हटाया/disable किया जा सकता है और उन्हें restore/enable भी किया जा सकता है; यह multi-user, multi-device, selection export/import, और operation logs को support करता है
  • packages को जहाँ तक संभव हो दस्तावेज़ित किया गया है ताकि यह तय करने में मदद मिले कि क्या हटाया जा सकता है, लेकिन boot के लिए ज़रूरी essential system packages हटाने पर bootloop हो सकता है
  • बिना root वाले डिवाइस पर system apps को वास्तव में पूरी तरह हटाया नहीं जा सकता, और OEM update के बाद कुछ “हटाए गए” system apps फिर से install हो सकते हैं, इसलिए टूल को दोबारा चलाना पड़ सकता है
  • support list में Google/Facebook/Amazon/Microsoft, AOSP, OEM, carriers, Qualcomm/Mediatek आदि शामिल हैं, और manufacturer व carrier के अनुसार अलग-अलग debloat list भी दी गई हैं

Universal Android Debloater GUI का उद्देश्य

  • Universal Android Debloater GUI, UAD project को Rust में पूरी तरह दोबारा लिखा गया प्रोजेक्ट है
  • इसका लक्ष्य अनावश्यक और कम-ज्ञात system apps को हटाकर privacy और battery performance को बेहतर बनाना है
  • system apps हटाने से attack surface कम होता है, जिससे security में भी सुधार हो सकता है
  • प्रोजेक्ट अभी शुरुआती development stage में है, और issues देखने व contribution करने की सिफारिश की जाती है

सुरक्षा और मुख्य चेतावनियाँ

  • इसका उपयोग आपकी अपनी ज़िम्मेदारी पर है, और फ़ोन में क्या हो सकता है उसके लिए प्रोजेक्ट ज़िम्मेदार नहीं है
  • packages को जहाँ तक संभव हो दस्तावेज़ित किया गया है ताकि यह बेहतर समझा जा सके कि क्या हटाया जा सकता है
  • सबसे खराब स्थिति तब हो सकती है जब boot के लिए ज़रूरी essential system packages हटाने से bootloop हो जाए
    • लगभग 5 बार boot fail होने के बाद फ़ोन अपने-आप recovery mode में reboot हो जाता है
    • इस स्थिति में factory reset करना पड़ता है
    • पहले backup ज़रूर लेना चाहिए
  • स्पष्ट रूप से कहा गया है कि इस software से डिवाइस को brick नहीं किया जा सकता
  • बिना root के system apps को वास्तव में पूरी तरह हटाया नहीं जा सकता; अधिक जानकारी के लिए FAQ देखें

समर्थित सुविधाएँ

  • system packages के Uninstall/Disable और Restore/Enable का समर्थन
  • work profile apps जैसे मामलों के लिए multi-user support
  • selections को uad_exported_selection.txt के रूप में export/import किया जा सकता है
  • एक साथ कई फ़ोन कनेक्ट करने के लिए multi-device support
  • सभी actions log में दर्ज होते हैं ताकि उपयोगकर्ता किए गए काम भूल न जाए

Debloat सूची का दायरा

  • Universal Debloat Lists में ये categories शामिल हैं
    • GFAM: Google, Facebook, Amazon, Microsoft
    • AOSP
    • manufacturer (OEM)
    • carriers
    • Qualcomm, Mediatek, अन्य
  • manufacturer debloat list में Asus, LG, Google, Fairphone, Huawei, Motorola, Nokia, OnePlus, Oppo, Realme, Samsung, Sony, Tecno, Unihertz, Vivo/iQOO, Xiaomi, ZTE आदि supported हैं
  • Archos, Blackberry, Gionee, iQOO, HTC, TCL, Wiko अभी manufacturer list में checked नहीं हैं
  • carrier debloat list में ये देश और carriers शामिल हैं
    • France: Orange, SFR, Free, Bouygues
    • USA: T-Mobile, Verizon, Sprint, AT&T
    • Germany: Telekom
    • UK: EE

उपयोग प्रक्रिया और सीमाएँ

  • सबसे पहले FAQ पढ़ें और data का backup लें
  • smartphone में Developer Options चालू करें, और developer panel में USB Debugging enable करें
  • settings में OEM account linking को disconnect करना होगा
    • अगर OEM account package हटा दिया गया, तो फ़ोन आपकी पहचान से लिंक नहीं कर पाएगा और lock screen पर रुक सकता है
  • ADB install होना ज़रूरी है
    • Linux में distribution के package manager से android-sdk-platform-tools या android-tools install करें
    • macOS में Homebrew से android-platform-tools install करें
    • Windows में android platform tools डाउनलोड करके unzip करें और PATH में जोड़ें, या UAD को उसी directory से चलाएँ
    • Windows में डिवाइस के लिए USB drivers install करें और adb devices से detection की पुष्टि करें
  • अपने operating system के लिए नवीनतम UAD GUI release, releases से प्राप्त की जा सकती है
    • opengl version का उपयोग केवल तब करें जब default Vulkan backend version न चले
  • Chinese phones के उपयोगकर्ताओं को कुछ default apps हटाने के लिए AOSP list की ज़रूरत पड़ सकती है
    • खासकर इसलिए कि Xiaomi और Huawei जैसे Chinese manufacturers अपनी modified, closed-source apps के लिए AOSP package names का उपयोग करते रहे हैं
  • जब OEM फ़ोन पर update जारी करता है, तो कुछ “हटाए गए” system apps फिर से install हो सकते हैं, इसलिए इस software को दोबारा चलाना पड़ सकता है

योगदान

  • यह प्रोजेक्ट एक community project है, और योगदान करने का तरीका How to contribute में दिया गया है

1 टिप्पणियां

 
GN⁺ 2024-03-18
Hacker News की राय
  • हाल ही में मैंने एक रिश्तेदार के लिए मिड-रेंज Samsung फ़ोन पूरी कीमत पर खरीदा, और उसमें पहले से इंस्टॉल ऐप्स की संख्या यक़ीन से बाहर थी
    कई social network और shopping apps पहले से इंस्टॉल थे, और Google apps bundle की ढीली-ढाली नकल करने वाले Samsung apps भी ढेर सारे थे
    पूरा initial setup process ऐसे dark patterns से भरा था जिन्हें ज़्यादा से ज़्यादा data निकालने के लिए डिज़ाइन किया गया लगता था, इसलिए आम यूज़र के लिए बिना कुछ छूटे इसे पार करना मुश्किल दिखा

    • जब मैंने पहली बार Samsung फ़ोन इस्तेमाल किया, तो लगभग 2 हफ्ते बाद पता चला कि मैं किसी भी ऐप में जो हर शब्द टाइप करता था, वह किसी third party को collect और transmit किया जा रहा था
      उस कंपनी की privacy policy में लिखा था कि इसका उपयोग रुचियों, social life, intelligence level और education level का अनुमान लगाने के लिए किया जाता है, और “market research” आदि के लिए data बेचा भी जाता है
      यूज़र के लिए यह शक करना आसान नहीं है कि फ़ोन में पहले से मौजूद keyboard उसके text messages और emails किसी third party से पढ़वा देगा
      यह बात मुझे तभी पता चली जब संयोग से मैंने key को long-press करके “about samsung keyboard” विंडो खोली, वहाँ से privacy policy तक गया, और फिर देखा कि keystrokes किस कंपनी को भेजे जा रहे हैं
      मैंने तुरंत open source keyboard पर switch किया, और शायद सभी यूज़रों का input इकट्ठा करने की वजह से ही Samsung keyboard की spell check और predictive input वाकई बहुत अच्छी थी
    • यह शायद सिर्फ़ अमेरिका तक सीमित बात हो सकती है
      हाल के तीनों फ़ोन EU में बेचे गए Samsung S series थे, और जिन्हें “third-party preinstalled apps” कहा जा सकता था वे बस Facebook और MS Office थे, और दोनों को आसानी से हटाया जा सकता था
      Samsung के alternative apps पसंद का मामला हैं, और मुझे वे Google के “original” apps से ज़्यादा उपयोगी लगे
      दूसरे brands के फ़ोन भी हल्के तौर पर इस्तेमाल करने के आधार पर कहूँ तो software और user experience के मामले में Samsung, Android विकल्पों में काफ़ी अच्छा है
    • यह जानकर ग़ुस्सा आया कि default keyboard में Grammarly built-in है और वह बिना consent के सभी keystrokes भेज रहा था
      1200 डॉलर के flagship device में यह शर्मनाक है
    • Sony फ़ोन में Microsoft SwiftKey keyboard पहले से इंस्टॉल था
      इसमें लिखा है, “अगर आपने Android device पर Microsoft SwiftKey Account इस्तेमाल करना नहीं चुना है, तो Microsoft SwiftKey द्वारा बनाई गई सभी personal और language data डिवाइस पर locally store होती है और transmit नहीं की जाती”
      यह enabled languages के बीच सहज रूप से switch कर देता है, इसलिए मैं इसे इस्तेमाल करता हूँ, और “meet me at Østerport Station” जैसे वाक्य भी आसानी से टाइप किए जा सकते हैं
    • Samsung flagship का hardware सबसे अच्छा है, और OneUI भी TouchWiz के दौर की तुलना में बहुत बेहतर हो गया है
      लेकिन preinstalled apps समस्या हैं, इसलिए Samsung फ़ोन खरीदते ही मैं सबसे पहले pm uninstall –k ––user 0 चलाता हूँ
      linked tool भी यही काम ज़्यादा आसान तरीके से करता है, लेकिन Samsung account या Knox से जुड़ी चीज़ों जैसी कुछ वस्तुएँ अब भी ऐसी हैं जिन्हें custom ROM डाले बिना हटाया नहीं जा सकता
  • इस project का 1 साल से maintenance नहीं हुआ है
    सबसे नया maintained fork https://github.com/Universal-Debloater-Alliance/universal-an... पर देखा जा सकता है

  • इस project में इस्तेमाल होने वाले Android commands लगभग ऐसे हैं
    dpkg --get-selections: adb shell pm list packages | sort
    dpkg -r : adb shell pm uninstall -k --user 0
    status bar icons छिपाने के लिए version के हिसाब से adb shell dumpsys activity service SystemUIService चलाएँ, “icon slots: ” खोजें, नाम पहचानें, फिर adb shell settings put secure icon_blacklist battery,wifi,clock, ... की तरह सेट किया जा सकता है
    यह command मौजूदा blocklist को नई list से overwrite कर देती है

    • ऐसी commands से किए जा सकने वाले undocumented settings बहुत हैं, और developers ने उन्हें अपनी ज़रूरत के लिए जोड़ा हुआ है
      उदाहरण के लिए Google के Android और Pixel core teams में ज़्यादातर लोग Wi‑Fi और data toggles को अलग-अलग इस्तेमाल करते हैं, लेकिन असली product में उन्होंने दोनों को मिलाकर सिर्फ़ एक quick settings tile दिया
      फिर भी hidden setting से two-tile mode वापस लाया जा सकता है, लेकिन Google में ऐसा बार-बार क्यों होता है, समझ नहीं आता
  • कुछ हफ्तों से मैं सोच रहा था कि मोबाइल डिवाइसों के लिए open source free software operating system का विकास आखिर हुआ क्या।
    मुझे यह समझ नहीं आता कि GrapheneOS और CalyxOS जैसे operating system सिर्फ Alphabet Inc के बनाए फोन पर ही क्यों चलते हैं और दूसरे डिवाइसों पर क्यों नहीं, और Linux के पुराने विकास मॉडल की तरह अलग-अलग hardware variants को इकट्ठा करके लगभग हर डिवाइस के लिए drivers और support देने वाले operating system आखिर कहाँ गायब हो गए।
    मैं यह भी सोचता हूँ कि क्या mobile computing hardware industry इतनी डरी हुई और बंद हो चुकी है कि उपयोगकर्ता अपने डिवाइस का मालिक ही नहीं रह गया, बल्कि किसी और के स्वामित्व वाले डिवाइस का सिर्फ उपयोगकर्ता बनकर रह गया है।
    या फिर कई डिवाइसों को support करने वाले operating system के न होने की कोई और वजह है, या मैं ही कुछ मिस कर रहा हूँ।

    • मोबाइल पर वास्तव में कोई open source operating system नहीं है।
      GrapheneOS और CalyxOS भी जरूरी drivers तक पहुँच नहीं पा सकते, इसलिए वे मूल image से binary blobs निकालकर साथ में distribute करते हैं।
      इस वजह से ऐसे projects बंद-स्रोत kernel drivers से भरे होते हैं, और उन binary drivers का उपयोग करने के लिए खास kernel versions से बंधे रहते हैं।
      आखिरकार open source versions की अधिकतम क्षमता बस अलग-अलग “system apps” के bundle चुनने तक सीमित रह जाती है, और असल में यह theme बदलने से थोड़ा ही बेहतर है — ऐसा तर्क दिया जा रहा है।
      किसी खास डिवाइस X को support करने के लिए root vulnerability का उपयोग करके binary blobs हासिल किए जा सकते हैं, और उसके बाद उस डिवाइस के लिए distribution किया जा सकता है।
    • उदाहरण के लिए https://androidauthority.com/grapheneos-3287030/ में “Pixel-विशेष आवश्यकताओं को स्वीकार करने पर भी” कहा गया है, लेकिन मैं उसे बिल्कुल स्वीकार करने को तैयार नहीं हूँ।
      https://grapheneos.org/faq#supported-devices भी मुझे स्वीकार्य नहीं है।
      अगर मुझे सही याद है, तो Alphabet/Google को Android operating system वितरित करने के लिए funding मिली थी, उसने कभी hardware phones भी बनाए, फिर गायब हो गया और दूसरी कंपनियों को आगे बढ़ने दिया, और बाद में फिर लौटकर दूसरे manufacturers की मेहनत का उपयोग करके आगे निकल गया — ऐसा लगता है।
      लेकिन अगर operating system सिर्फ Google phones पर ही मौजूद है और दूसरे डिवाइसों पर नहीं, तो मुझे नहीं पता कि इसे सामान्य कैसे माना जाए; यह दूसरों की मेहनत का कायरतापूर्ण तरीके से फायदा उठाने जैसा लगता है।
      https://calyxos.org/#Devices की device list पुराने http://web.archive.org/web/20230605161332/https://calyxos.or... की तुलना में थोड़ी बढ़ी है, लेकिन OpenWRT, HyperWRT, DD-WRT, Tomato जैसी चीज़ों से इसकी कोई तुलना नहीं।
      इसलिए मैं GrapheneOS या CalyxOS पर भरोसा नहीं करता, और चाहता हूँ कि फोन में भी वैसा ही रुझान दिखे जैसा Wi‑Fi routers में कई open source firmware अलग-अलग डिवाइसों को support करते थे।
  • मैंने factory reset किए हुए Xiaomi पर ऐसी किसी सूची को लागू करने की कोशिश की थी, और reboot के तुरंत बाद ही सब खराब हो गया।
    login के तुरंत बाद crash होने लगा और डिवाइस उपयोग लायक नहीं रहा, हालांकि आखिर में मैंने उसे ठीक कर लिया और यह सीख मिली कि सावधान रहना चाहिए।
    जो चीज़ एक model में जरूरी होती है, वही किसी दूसरे model में preinstalled app हो सकती है।

    • यह जानने में दिलचस्पी है कि कौन-सा package हटाने पर ऐसी समस्या हुई; क्या आप log साझा कर सकते हैं?
  • मुझे समझ नहीं आता कि इसकी ज़रूरत क्यों है।
    फोन settings में ही apps को disable किया जा सकता है, तो यह tool उससे अलग क्या अतिरिक्त देता है, यह स्पष्ट नहीं है।
    FAQ में कहा गया है कि user profile में अतिरिक्त रूप से “remove” किया जाता है और cache·data भी delete की जाती है, लेकिन इसका ठीक-ठीक मतलब मुझे समझ नहीं आता।

    • कुछ manufacturer के preinstalled apps को Android user interface में disable नहीं किया जा सकता, लेकिन ADB से किया जा सकता है।
    • Android TV में ADB के बिना ads से भरे default launcher को disable या remove नहीं किया जा सकता।
    • यह ज्यादा तेज़ है, initial setup से पहले चलाया जा सकता है, और ऐसी चीज़ें भी हटा सकता है जिन्हें standard package interface से remove नहीं किया जा सकता।
  • non-rooted Amazon Fire tablet को ADB से साफ़ करने और customize करने के लिए ऐसा ही एक GUI tool है।
    https://xdaforums.com/t/windows-linux-tool-fire-toolbox-v33-...

  • मैं जानना चाहता हूँ कि source से पूरी तरह साफ़ Android compile करके सीधे फोन पर install क्यों नहीं किया जा सकता।
    ऐसा करने से रोक क्या रहा है?

    • सामान्य तौर पर यह संभव है।
      बस फोन ऐसा होना चाहिए जिसमें bootloader unlock किया जा सके, और क्योंकि manufacturer source के कई हिस्से उपलब्ध नहीं कराते, इसलिए manufacturer की बिल्कुल वही image बनाना संभव नहीं होता।
      अगर hardware supported हो, तो LineageOS जैसे community-maintained operating system install किए जा सकते हैं।
      कमी यह है कि Google Pay जैसे apps फिर काम न करें, क्योंकि उन्हें Google के SafetyNet attestation system को pass करना होता है।
      इसके workaround भी हैं, लेकिन वे हमेशा अस्थिर hacks जैसे लगे हैं।
    • इसकी वजह closed-source device drivers हैं।
      phone market 90 के दशक के desktop market जैसा है।
    • x86 PC platform में boot process और hardware discovery अच्छी तरह standardize हैं, और operating system चल रहा हो तब भी kernel को overwrite किया जा सकता है, इसलिए यह संभव है।
      non-PC computers में ऐसी बातों की कोई गारंटी नहीं होती।
    • मेरी जानकारी में Google Pixel phones पर यह किया जा सकता है।
      इसका मतलब यह नहीं कि यह आसान है, लेकिन source code मौजूद है।
    • वजह hardware support है।
  • Android डिवाइस पर preinstalled apps हटाने के लिए सीधे या परोक्ष रूप से ADB ही एकमात्र विकल्प है।
    मेरे पुराने सस्ते 10-इंच Mediacom tablet में भी किसी tool से root नहीं मिला, लेकिन बेकार services और items हटाना ADB से आसान हो गया था।
    हालांकि यह काफी जोखिम भरा है, और अब मैं Google services नहीं चला पाता, लेकिन 7–8 ऐसे लोगों से संपर्क रखने के लिए Whatsapp चल जाता है जिन्हें मैं email इस्तेमाल करने के लिए मना नहीं पाया, और F-Droid से डाउनलोड भी कर सकता हूँ, इसलिए मेरे लिए इतना काफी है।

  • Android डिवाइस के समझने में कठिन पैकेजों के बारे में, यह जानना है कि हर एक वास्तव में क्या करता है और उसे disable या remove करने पर क्या असर पड़ता है, इसकी up-to-date सूची कहाँ मिल सकती है
    खासकर package dependency के बारे में जानना है, जहाँ ऊपर से असंबंधित दिखने वाले एक पैकेज को हटाने पर कोई दूसरी चीज़ टूट जाती है