ลบซอฟต์แวร์ที่ไม่จำเป็นออกจากอุปกรณ์ Android ที่ไม่รูต
(github.com/0x192)- Universal Android Debloater GUI เป็นเครื่องมือที่ เขียนใหม่ทั้งหมดด้วย Rust จาก UAD project เดิม โดยมีเป้าหมายเพื่อลบแอประบบ Android ที่ไม่จำเป็นหรือไม่ค่อยเป็นที่รู้จัก เพื่อปรับปรุงความเป็นส่วนตัวและประสิทธิภาพแบตเตอรี่
- สามารถ ลบ/ปิดใช้งาน แพ็กเกจระบบและกู้คืน/เปิดใช้งานได้โดยไม่ต้องรูต พร้อมรองรับหลายผู้ใช้ หลายอุปกรณ์ การส่งออก/นำเข้ารายการที่เลือก และบันทึกการทำงาน
- มีการจัดทำเอกสารของแพ็กเกจไว้มากที่สุดเท่าที่ทำได้เพื่อช่วยตัดสินใจว่าลบได้หรือไม่ แต่หากลบ แพ็กเกจระบบสำคัญ ที่จำเป็นต่อการบูต อาจทำให้เกิด bootloop ได้
- บนอุปกรณ์ที่ไม่รูต จะไม่สามารถลบแอประบบออกได้อย่างสมบูรณ์จริง ๆ และหลังการอัปเดตจาก OEM แอประบบบางตัวที่ “ถูกลบ” อาจถูกติดตั้งกลับมาใหม่ จึงอาจต้องรันเครื่องมือนี้อีกครั้ง
- รายการที่รองรับครอบคลุม Google/Facebook/Amazon/Microsoft, AOSP, OEM, ผู้ให้บริการเครือข่าย, Qualcomm/Mediatek และอื่น ๆ โดยมี debloat list แยกตามผู้ผลิตและผู้ให้บริการเครือข่าย
วัตถุประสงค์ของ Universal Android Debloater GUI
- Universal Android Debloater GUI เป็นโปรเจกต์ที่ เขียนใหม่ทั้งหมดด้วย Rust จาก UAD project
- เป้าหมายคือการลบแอประบบที่ไม่จำเป็นและไม่ค่อยเป็นที่รู้จัก เพื่อปรับปรุง ความเป็นส่วนตัว และประสิทธิภาพแบตเตอรี่
- การลบแอประบบยังอาจช่วยเพิ่มความปลอดภัยได้ด้วยการลด attack surface
- โปรเจกต์ยังอยู่ใน ช่วงพัฒนาเริ่มต้น และแนะนำให้ช่วยตรวจสอบ issues และร่วมพัฒนา
ความปลอดภัยและคำเตือนสำคัญ
- การใช้งานเป็น ความรับผิดชอบของผู้ใช้เอง และโปรเจกต์จะไม่รับผิดชอบต่อสิ่งที่อาจเกิดขึ้นกับโทรศัพท์
- มีการจัดทำเอกสารของแพ็กเกจไว้มากที่สุดเท่าที่ทำได้ เพื่อช่วยให้เข้าใจได้ดีขึ้นว่าลบได้หรือไม่
- ปัญหาที่ร้ายแรงที่สุดคือการลบแพ็กเกจระบบสำคัญที่จำเป็นต่อการบูต จนทำให้เกิด bootloop
- หลังจากบูตไม่สำเร็จประมาณ 5 ครั้ง โทรศัพท์จะรีบูตเข้าสู่โหมดกู้คืนโดยอัตโนมัติ
- ในกรณีนี้จำเป็นต้องทำ รีเซ็ตเป็นค่าจากโรงงาน
- ควรสำรองข้อมูลก่อน
- ระบุไว้อย่างชัดเจนว่า ซอฟต์แวร์นี้ไม่สามารถทำให้อุปกรณ์ brick ได้
- หากไม่มีรูต จะไม่สามารถลบแอประบบได้อย่างสมบูรณ์จริง ๆ และควรดูรายละเอียดเพิ่มเติมใน FAQ
ฟีเจอร์ที่รองรับ
- รองรับการ Uninstall/Disable และ Restore/Enable แพ็กเกจระบบ
- รองรับ หลายผู้ใช้ เช่น แอปใน work profile
- สามารถส่งออก/นำเข้ารายการที่เลือกเป็น
uad_exported_selection.txt - รองรับ หลายอุปกรณ์ โดยเชื่อมต่อโทรศัพท์หลายเครื่องพร้อมกันได้
- ทุกการดำเนินการจะถูกบันทึกเป็นล็อก เพื่อไม่ให้ผู้ใช้ลืมว่าทำอะไรไปบ้าง
ขอบเขตของรายการ Debloat
- Universal Debloat Lists ครอบคลุมหมวดหมู่ต่อไปนี้
- GFAM: Google, Facebook, Amazon, Microsoft
- AOSP
- ผู้ผลิต (OEM)
- ผู้ให้บริการเครือข่าย
- Qualcomm, Mediatek และอื่น ๆ
- รายการ debloat ตามผู้ผลิตรองรับ Asus, LG, Google, Fairphone, Huawei, Motorola, Nokia, OnePlus, Oppo, Realme, Samsung, Sony, Tecno, Unihertz, Vivo/iQOO, Xiaomi, ZTE และอื่น ๆ
- Archos, Blackberry, Gionee, iQOO, HTC, TCL, Wiko ยังไม่ได้ถูกตรวจเช็กในรายการผู้ผลิต
- รายการ debloat ตามผู้ให้บริการเครือข่ายครอบคลุมประเทศและเครือข่ายต่อไปนี้
- France: Orange, SFR, Free, Bouygues
- USA: T-Mobile, Verizon, Sprint, AT&T
- Germany: Telekom
- UK: EE
ขั้นตอนการใช้งานและข้อจำกัด
- ควรอ่าน FAQ ก่อน และ สำรองข้อมูล
- ต้องเปิดใช้งาน Developer Options บนสมาร์ตโฟน และเปิด USB Debugging ในแผงนักพัฒนา
- ต้องยกเลิกการเชื่อมโยงบัญชี OEM ในการตั้งค่า
- หากลบแพ็กเกจบัญชี OEM โทรศัพท์อาจไม่สามารถเชื่อมโยงตัวตนของผู้ใช้ได้อีก ทำให้ติดอยู่ที่หน้าจอล็อก
- จำเป็นต้องติดตั้ง ADB
- Linux ให้ติดตั้ง
android-sdk-platform-toolsหรือandroid-toolsผ่านตัวจัดการแพ็กเกจของแต่ละดิสโทร - macOS ให้ติดตั้ง
android-platform-toolsผ่าน Homebrew - Windows ให้ดาวน์โหลด android platform tools แล้วแตกไฟล์และเพิ่มลง PATH หรือรัน UAD จากไดเรกทอรีเดียวกัน
- บน Windows ให้ติดตั้ง USB drivers สำหรับอุปกรณ์ และตรวจสอบการตรวจจับด้วย
adb devices
- Linux ให้ติดตั้ง
- สามารถดาวน์โหลด UAD GUI รุ่นล่าสุดสำหรับระบบปฏิบัติการของตนได้จาก releases
- ใช้เวอร์ชัน
openglเฉพาะเมื่อเวอร์ชันแบ็กเอนด์ Vulkan เริ่มต้นไม่สามารถทำงานได้
- ใช้เวอร์ชัน
- ผู้ใช้โทรศัพท์จีนอาจต้องใช้ AOSP list เพื่อลบแอปเริ่มต้นบางตัว
- โดยเฉพาะเพราะผู้ผลิตจีนอย่าง Xiaomi และ Huawei เคยใช้ชื่อแพ็กเกจ AOSP กับแอปที่แก้ไขเองและเป็นซอร์สปิด
- เมื่อ OEM ปล่อยอัปเดตให้โทรศัพท์ แอประบบบางตัวที่ “ถูกลบ” อาจถูกติดตั้งกลับมาใหม่ ทำให้ต้องรันซอฟต์แวร์นี้อีกครั้ง
การมีส่วนร่วม
- โปรเจกต์นี้เป็น โปรเจกต์ชุมชน และมีวิธีร่วมพัฒนาอธิบายไว้ใน How to contribute
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เมื่อไม่นานมานี้ ผมซื้อ มือถือ Samsung ระดับกลาง ให้ญาติในราคาเต็ม แล้วพบว่ามีแอปที่ติดตั้งมาล่วงหน้าเยอะจนน่าเหลือเชื่อ
มีทั้งโซเชียลเน็ตเวิร์กและแอปช็อปปิ้งหลายตัวที่ติดตั้งมาให้แล้ว รวมถึงแอปของ Samsung อีกเพียบที่ซ้ำซ้อนแบบครึ่ง ๆ กลาง ๆ กับชุดแอปของ Google
ขั้นตอนตั้งค่าเริ่มต้นทั้งหมดเต็มไปด้วย dark pattern ที่ออกแบบมาเพื่อดูดข้อมูลให้ได้มากที่สุด จนดูเหมือนผู้ใช้ทั่วไปคงผ่านไปได้ยากโดยไม่พลาดอะไรสักอย่าง
ในนโยบายความเป็นส่วนตัวของบริษัทนั้นระบุว่าจะใช้เพื่อประเมินความสนใจ ชีวิตทางสังคม ระดับสติปัญญาและระดับการศึกษา และขายข้อมูลเพื่อ “การวิจัยตลาด” เป็นต้น
ผู้ใช้คงยากที่จะสงสัยว่าแป้นพิมพ์ที่มากับมือถือเป็นค่าเริ่มต้นจะทำให้บุคคลที่สามได้อ่านข้อความและอีเมล
ผมเพิ่งรู้หลังจากบังเอิญกดปุ่มค้างจนหน้าต่าง “about samsung keyboard” เด้งขึ้นมา แล้วตามลิงก์นโยบายความเป็นส่วนตัวไปจนตรวจสอบได้ว่าการกดแป้นถูกส่งไปยังบริษัทใด
ผมเปลี่ยนไปใช้แป้นพิมพ์โอเพนซอร์สทันที และอาจเป็นเพราะได้รวบรวมอินพุตจากผู้ใช้ทั้งหมด ระบบตรวจคำผิดและคาดเดาคำของแป้นพิมพ์ Samsung จึงดีจริง ๆ
เครื่องล่าสุดสามเครื่องเป็น Samsung S series ที่ขายใน EU ซึ่งสิ่งที่พอจะเรียกว่า “แอปบุคคลที่สามที่ติดตั้งมาให้” ก็มีแค่ Facebook กับ MS Office และทั้งคู่ลบออกได้ง่าย
แอปทางเลือกของ Samsung เป็นเรื่องรสนิยม และผมรู้สึกว่าใช้ง่ายกว่า “ต้นฉบับ” ของ Google ด้วยซ้ำ
เท่าที่เคยลองใช้มือถือยี่ห้ออื่นแบบคร่าว ๆ Samsung ถือว่าค่อนข้างดีในบรรดาตัวเลือก Android ทั้งด้านซอฟต์แวร์และประสบการณ์ผู้ใช้
เรื่องแบบนี้บนอุปกรณ์เรือธงราคา 1,200 ดอลลาร์เป็นเรื่องน่าอาย
มีคำอธิบายว่า “หากคุณไม่ได้เลือกใช้ Microsoft SwiftKey Account บนอุปกรณ์ Android ข้อมูลส่วนบุคคลและข้อมูลภาษาทั้งหมดที่ Microsoft SwiftKey สร้างขึ้นจะถูกเก็บไว้ในเครื่องและไม่ถูกส่งออกไป”
ผมใช้อยู่เพราะมันสลับระหว่างภาษาที่เปิดใช้งานได้อย่างเป็นธรรมชาติ และพิมพ์ประโยคอย่าง “meet me at Østerport Station” ได้ลื่นไหล
แต่ปัญหาคือแอปที่ติดตั้งมาล่วงหน้า ดังนั้นเมื่อซื้อมือถือ Samsung สิ่งแรกที่ผมทำคือรัน
pm uninstall –k ––user 0เครื่องมือที่ลิงก์ไว้ก็ทำงานแบบเดียวกันให้ใช้ง่ายขึ้น แต่ยังมีบางอย่างที่ลบไม่ได้อยู่ดีหากไม่ลง custom ROM เช่น รายการที่เกี่ยวกับบัญชี Samsung หรือ Knox
โปรเจกต์นี้ไม่ได้รับการดูแลมา 1 ปีแล้ว
ฟอร์กที่ดูแลล่าสุดดูได้ที่ https://github.com/Universal-Debloater-Alliance/universal-an...
คำสั่งที่เทียบกับ Android ซึ่งโปรเจกต์นี้ใช้มีประมาณนี้
dpkg --get-selections:adb shell pm list packages | sortdpkg -r:adb shell pm uninstall -k --user 0หากต้องการซ่อนไอคอนบนแถบสถานะ ให้รัน
adb shell dumpsys activity service SystemUIServiceแล้วแต่เวอร์ชัน จากนั้นหา “icon slots: ” เพื่อตรวจสอบชื่อ แล้วตั้งค่าได้คล้ายadb shell settings put secure icon_blacklist battery,wifi,clock, ...คำสั่งนี้จะเขียนทับรายการบล็อกเดิมด้วยรายการใหม่
ตัวอย่างเช่น ทีมหลักของ Android และ Pixel ที่ Google ส่วนใหญ่รู้ว่าควรใช้ปุ่มสลับ Wi‑Fi กับข้อมูลมือถือแยกกัน แต่ในผลิตภัณฑ์จริงกลับปล่อยไทล์ Quick Settings เพียงอันเดียวที่รวมทั้งสองอย่างเข้าด้วยกัน
ถึงอย่างนั้นก็ยังสามารถกู้โหมดสองไทล์กลับมาได้ด้วยการตั้งค่าที่ซ่อนอยู่ แต่ไม่เข้าใจว่าทำไมเรื่องแบบนี้ถึงเกิดขึ้นบ่อยที่ Google
หลายสัปดาห์ก่อนเริ่มคิดว่า การพัฒนา ระบบปฏิบัติการซอฟต์แวร์เสรีโอเพนซอร์ส สำหรับอุปกรณ์พกพามันเป็นอย่างไรกันแน่
สงสัยว่าทำไมระบบปฏิบัติการอย่าง GrapheneOS, CalyxOS ถึงใช้ได้เฉพาะกับโทรศัพท์ที่ Alphabet Inc ทำขึ้น และใช้กับอุปกรณ์อื่นไม่ได้ แล้วระบบปฏิบัติการแบบการพัฒนา Linux สมัยก่อนที่รวบรวมฮาร์ดแวร์หลายรูปแบบเข้ามา เพื่อให้ไดรเวอร์และการรองรับกับแทบทุกอุปกรณ์หายไปไหน
สงสัยว่าอุตสาหกรรมฮาร์ดแวร์คอมพิวเตอร์พกพากลัวและถูกปิดล็อกมากเกินไปหรือเปล่า จนผู้ใช้ไม่ได้เป็นเจ้าของอุปกรณ์ของตัวเอง แต่กลายเป็นเหมือนใช้อุปกรณ์ที่หน่วยงานอื่นเป็นเจ้าของ
หรือมีเหตุผลอื่นที่ไม่มีระบบปฏิบัติการซึ่งรองรับอุปกรณ์หลายแบบ หรือผมอาจพลาดอะไรไปก็ได้
GrapheneOS หรือ CalyxOS ก็เข้าถึงไดรเวอร์ที่จำเป็นไม่ได้ จึงต้องเอาก้อน binary จากอิมเมจต้นฉบับมารวมแจกจ่ายด้วย
ดังนั้นโปรเจกต์เหล่านี้จึงเต็มไปด้วยไดรเวอร์เคอร์เนลแบบซอร์สปิด และถูกผูกกับเคอร์เนลเวอร์ชันเฉพาะเพื่อใช้ไดรเวอร์ binary เหล่านั้น
สุดท้ายสิ่งสูงสุดที่เวอร์ชันโอเพนซอร์สทำได้คือเลือกชุด “แอประบบ” แบบอื่นเท่านั้น และในทางปฏิบัติก็ใกล้เคียงกับการเปลี่ยนธีมมากกว่านิดหน่อย นี่คือประเด็นที่เขาโต้แย้ง
หากต้องการรองรับอุปกรณ์ X รุ่นใดรุ่นหนึ่ง ก็หา blob binary ด้วยช่องโหว่ root แล้วจากนั้นก็แจกจ่ายให้กับอุปกรณ์นั้นได้
https://grapheneos.org/faq#supported-devices ก็รับไม่ได้เช่นกัน
ถ้าจำไม่ผิด Alphabet/Google ได้รับเงินทุนเพื่อแจกจ่ายระบบปฏิบัติการ Android และช่วงหนึ่งก็เคยออกโทรศัพท์ฮาร์ดแวร์เองแล้วหายไป จากนั้นให้บริษัทอื่นสานต่อ แล้วต่อมากลับมาอีกครั้ง ดูเหมือนใช้ประโยชน์จากความพยายามของผู้ผลิตรายอื่นเพื่อขึ้นนำ
แต่ถ้าระบบปฏิบัติการมีอยู่เฉพาะในโทรศัพท์ Google และไม่มีในอุปกรณ์อื่น ก็ไม่รู้ว่านี่เป็นเรื่องปกติหรือไม่ และรู้สึกเหมือนแอบฉวยผลงานคนอื่นอย่างขี้ขลาด
รายชื่ออุปกรณ์ใน https://calyxos.org/#Devices เพิ่มขึ้นเล็กน้อยจากของเก่า http://web.archive.org/web/20230605161332/https://calyxos.or... แต่เทียบกับ OpenWRT, HyperWRT, DD-WRT, Tomato ไม่ได้เลย
ดังนั้นจึงไม่เชื่อถือ GrapheneOS หรือ CalyxOS และอยากเห็นแนวทางคล้ายกับที่เฟิร์มแวร์โอเพนซอร์สหลายตัวบนเราเตอร์ Wi‑Fi รองรับอุปกรณ์หลากหลาย เกิดขึ้นกับโทรศัพท์ด้วย
เคยลองใช้หนึ่งในรายการพวกนี้กับ Xiaomi ที่รีเซ็ตเป็นค่าโรงงาน แล้วมันพังทันทีหลังรีบูต
พอล็อกอินก็แครชทันทีจนใช้งานไม่ได้ สุดท้ายซ่อมได้ แต่ได้เรียนรู้ว่าต้องระวัง
รายการที่จำเป็นในรุ่นหนึ่ง อาจเป็น แอปที่ติดตั้งมาจากโรงงาน ในอีกรุ่นหนึ่งก็ได้
ไม่เข้าใจว่าทำไมถึงจำเป็นต้องมีสิ่งนี้
ในการตั้งค่าโทรศัพท์ก็ปิดใช้งานแอปได้โดยตรงอยู่แล้ว ไม่ชัดเจนว่าเครื่องมือนี้ทำอะไรได้มากกว่านั้น
ใน FAQ บอกว่ามีการ “ลบ” เพิ่มเติมจากโปรไฟล์ผู้ใช้ และลบแคช·ข้อมูล แต่ก็ไม่ค่อยเข้าใจแน่ชัดว่าหมายความว่าอะไร
มีเครื่องมือ GUI คล้าย ๆ กันสำหรับจัดระเบียบและปรับแต่ง แท็บเล็ต Amazon Fire ที่ไม่ได้ root ผ่าน ADB
https://xdaforums.com/t/windows-linux-tool-fire-toolbox-v33-...
สงสัยว่าทำไมถึงคอมไพล์ Android ที่สะอาดหมดจดจากซอร์ส แล้วติดตั้งลงโทรศัพท์โดยตรงไม่ได้
อะไรเป็นสิ่งที่ขวางไว้
เพียงแต่ต้องเป็นโทรศัพท์ที่ปลดล็อก bootloader ได้ และเพราะผู้ผลิตไม่ได้ให้ซอร์สของส่วนจำนวนมาก จึงสร้างอิมเมจที่เหมือนกับของผู้ผลิตเป๊ะ ๆ ไม่ได้
ถ้าฮาร์ดแวร์รองรับ ก็สามารถติดตั้งระบบปฏิบัติการที่ชุมชนดูแลอย่าง LineageOS ได้
ข้อเสียคือแอปอย่าง Google Pay อาจใช้งานไม่ได้อีก เพราะต้องผ่านระบบ attestation SafetyNet ของ Google
แม้จะมีวิธีเลี่ยงอยู่บ้าง แต่ดูเหมือนเป็นการแฮ็กที่ไม่เสถียรเสมอ
ตลาดโทรศัพท์คล้ายกับตลาดเดสก์ท็อปยุค 90
บนคอมพิวเตอร์ที่ไม่ใช่ PC สิ่งเหล่านี้ไม่ได้รับการรับประกัน
ไม่ได้หมายความว่าง่าย แต่มีซอร์สโค้ดครบ
หากต้องการลบแอปที่ติดตั้งมาจากโรงงานบนอุปกรณ์ Android ไม่ว่าทางตรงหรือทางอ้อม ADB คือทางเลือกเดียว
แท็บเล็ต Mediacom ขนาด 10 นิ้วราคาถูกที่เคยใช้ก็ root ไม่ได้ไม่ว่าจะใช้เครื่องมืออะไร แต่การลบบริการและรายการไม่จำเป็นทำได้ง่ายขึ้นด้วย ADB
อย่างไรก็ตามค่อนข้างเสี่ยง สุดท้ายบริการ Google ใช้งานไม่ได้อีกแล้ว แต่ยังใช้ Whatsapp ติดต่อกับ 7–8 คนที่ผมโน้มน้าวให้ใช้อีเมลไม่ได้ และดาวน์โหลดจาก F-Droid ได้ สำหรับผมเท่านี้ก็พอ
https://shizuku.rikka.app/
https://github.com/samolego/Canta
อยากทราบว่าจะหารายการที่อัปเดตล่าสุดได้จากที่ไหน ซึ่งบอกได้ว่าแพ็กเกจต่าง ๆ ที่เข้าใจยากบนอุปกรณ์ Android แต่ละตัวทำงานอะไรจริง ๆ และการปิดใช้งานหรือถอนออกจะมีผลกระทบอย่างไร
โดยเฉพาะอยากรู้เรื่อง dependency ของแพ็กเกจ เช่น กรณีที่ถอนแพ็กเกจหนึ่งซึ่งดูเหมือนไม่เกี่ยวข้องกันออกไป แต่กลับทำให้ส่วนอื่นพัง
[1] - https://github.com/Universal-Debloater-Alliance/universal-an...