เรียนรู้เกี่ยวกับภาวะแทรกซ้อนใหม่ๆ ที่ความจริงและ Marshmallow นำมาสู่การรูทอุปกรณ์ที่ล็อคไว้
ในขณะที่ฝุ่นเกาะอยู่บน การเปิดตัว Android 6.0ผู้ใช้ Nexus มากมายหันมาสนใจ OTA และ ภาพโรงงานและเตรียมพร้อมรับระบบปฏิบัติการ Android เวอร์ชั่นใหม่ล่าสุด
แม้ว่าจากภายนอก Android 6.0 จะปรากฏขึ้น (อย่างน้อยก็มองเห็นได้) คล้ายกับ Android 5.0 และ 5.1 (รุ่น Lollipop) อย่างน่าทึ่ง แต่มีการเปลี่ยนแปลงที่สำคัญหลายประการใน ข้างใน. หนึ่งในนั้นอาจมี การขยายสาขาสำหรับ ROM แบบกำหนดเองและชุมชนรูท. ขั้นแรกให้พื้นหลังเล็กน้อย หากคุณไม่สนใจสิ่งนี้ เพียงข้ามลงไปที่ "เหตุใดสิ่งนี้จึงสำคัญ"
คุณลักษณะที่เรียกว่าความจริง
ปัญหา (เป็นปัญหาถ้าคุณชอบการรูทและการแก้ไขอุปกรณ์) เกิดจากสิ่งที่ฉันชี้ให้เห็นเมื่อนานมาแล้วเมื่อมันกระทบ AOSP ครั้งแรก - การแนะนำของ dm-verity สู่ Android. Verity เป็นคุณลักษณะด้านความปลอดภัยที่เดิมพบใน ChromeOS ซึ่งออกแบบมาเพื่อมอบอุปกรณ์คอมพิวเตอร์ที่มั่นใจและเชื่อถือได้ โดยป้องกันไม่ให้ซอฟต์แวร์ที่เป็นอันตรายแก้ไขอุปกรณ์ได้ ย้อนกลับไปใน Android 4.4 Google ได้ประกาศความจริงสำหรับ Android แล้วทุกอย่างก็เงียบลง ในขณะที่ยังมีอยู่บ้าง
การวิจัยเกี่ยวกับการใช้ความจริงสิ่งต่างๆ ส่วนใหญ่ก็เงียบสงบ จนถึงตอนนี้ก็คือด้วย Android 6.0 Google ได้เริ่มเพิ่มเกมด้านความปลอดภัยของอุปกรณ์ หนึ่งในข้อกำหนดพื้นฐานสำหรับสิ่งนี้คือการป้องกันไม่ให้ซอฟต์แวร์บนอุปกรณ์ถูกแก้ไขโดยที่ผู้ใช้ไม่รู้ - ในขณะที่มีหลายอย่างที่นี่ ที่ XDA ให้สิทธิ์ในการรูท ลองจินตนาการว่าอุปกรณ์ของผู้ใช้ถูกรูทโดยที่พวกเขาไม่รู้หรือไม่ยินยอม และการเข้าถึงรูทถูกใช้เพื่อขโมย ข้อมูล. ด้วยเหตุนี้ Google จึงเริ่มใช้การตรวจสอบพาร์ติชันระบบในอุปกรณ์บางชนิด พวกเขายังเพิ่งอัปเดตของพวกเขาด้วย หน้าสนับสนุน เพื่อครอบคลุมสิ่งนี้
สิ่งนี้หมายความว่าอย่างไรสำหรับผู้ใช้ที่รูท?
ด้วยความแท้จริงแล้ว การเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นกับพาร์ติชันระบบจะถูกตรวจพบเมื่อบูตหรือเข้าถึง. จากนั้นคุณจะพบกับข้อผิดพลาดอย่างใดอย่างหนึ่งดังที่เห็นข้างต้น บางส่วนอนุญาตให้คุณดำเนินการต่อ และบางส่วนต้องการปกป้องคุณด้วยการหยุดอุปกรณ์ไม่ให้บู๊ต มีสามรัฐที่มีอยู่ รายการหนึ่งจะปรากฏขึ้นเมื่อปลดล็อค bootloader ซึ่งบ่งชี้ว่าคุณอาจมีความเสี่ยงจนกว่าคุณจะล็อค bootloader อีกครั้ง เป็นกรณีนี้เนื่องจากอิมเมจเคอร์เนลที่ถูกแก้ไขสามารถข้ามความถูกต้องได้ เนื่องจากเคอร์เนล ramdisk มีคีย์ที่ใช้ในการตรวจสอบสถานะของระบบ
สิ่งต่าง ๆ ดูค่อนข้างไม่สนุกสำหรับผู้ใช้ที่ต้องการรูทอุปกรณ์ที่ถูกล็อค
สถานะถัดไปจะปรากฏขึ้น (สมมุติ) เมื่อ verity ถูกปิดใช้งานหรือปิด หรือไม่สามารถตรวจสอบได้เนื่องจากมีการแก้ไข ramdisk ฉันไม่แน่ใจ เนื่องจากฉันไม่มี Nexus 5X หรือ 6P ในการตรวจสอบ แต่ข้อสงสัยของฉัน (ตามข้อความ) ว่าถ้าคุณโหลด ROM อื่น ซึ่งจะวางเคอร์เนลของตัวเองลงในอุปกรณ์ หน้า "ระบบปฏิบัติการอื่น" จะทำงาน ปรากฏ.
สถานะสุดท้ายคือคำเตือนสีแดงที่ระบุว่าอุปกรณ์เสียหาย ฉันสงสัยว่านี่หมายความว่ารูปภาพนั้นมีความจริง แต่การตรวจสอบล้มเหลวเนื่องจากอิมเมจระบบถูกแก้ไข ขอย้ำอีกครั้งว่าเราไม่สามารถแน่ใจได้หากไม่มีฮาร์ดแวร์อยู่ในมือ แต่ข้อผิดพลาดนั้นดูเหมือนว่าจะเป็นข้อผิดพลาดที่คุณจะเห็นว่าอุปกรณ์ในสต็อกได้รับการแก้ไขโดยซอฟต์แวร์ที่เป็นอันตรายหรือไม่
เหตุใดสิ่งนี้จึงสำคัญ?
บน Android M (6.0) ปัจจุบันรูทจำเป็นต้องมีการแก้ไขอิมเมจเคอร์เนล นอกเหนือจากระบบไฟล์ ซึ่งหมายความว่า แม้ว่าเราจะเพิกเฉยต่อความจริง (เช่น บนอุปกรณ์ Nexus รุ่นเก่า เช่น a เน็กซัส 7 2013) จำเป็นต้องมีอิมเมจเคอร์เนลใหม่เพื่อหลีกเลี่ยงการป้องกัน SELinux ซึ่งทำให้การเข้าถึงรูทไม่ทำงาน
หากคุณต้องการรูทวันนี้ บน Android Marshmallow คุณจะต้องใช้อิมเมจสำหรับบูตที่แก้ไขแล้ว
จนถึงขณะนี้ก็มี เมล็ดดัดแปลง เพื่อตั้งค่า SELinux ให้เป็นโหมดอนุญาต แต่นี่เป็นการแก้ไขที่ไม่เหมาะ เนื่องจากหมายความว่าคุณจะไม่ได้รับประโยชน์ด้านความปลอดภัยจากการป้องกัน SELinux และหลังจากที่ สเตจเฟรตนักปรัชญาฉันถือว่าคุณคงเห็นประโยชน์ของ SELinux และการป้องกันอื่นๆ จากช่องโหว่ด้านความปลอดภัย
XDA นักพัฒนาอาวุโสที่ได้รับการยอมรับ เชนไฟร์, ต้นแบบของรูททุกสิ่งได้เปิดตัวแล้ว SuperSU เวอร์ชันอัปเดต ซึ่งยังคง SELinux อยู่ในโหมดบังคับใช้ แต่จำเป็นต้องมีการแก้ไขการกำหนดค่า SELinux ของอิมเมจสำหรับบูตอีกครั้ง ซึ่งหมายความว่าคุณต้องติดตั้ง SuperSU รวมถึงอิมเมจสำหรับบูตที่แก้ไข
และนั่นคือทั้งหมดที่ดีและดี จนกว่าผู้ให้บริการของสหรัฐฯ จะเข้ามาผสม. ป้อมปราการแห่งการต่อต้านผู้บริโภค เป็นที่รู้กันว่าผู้แข็งแกร่งเช่น AT&T และ Verizon สนุกกับการล็อคอุปกรณ์ ป้องกันไม่ให้ผู้ใช้ติดตั้งเฟิร์มแวร์ที่กำหนดเองผ่านการล็อค bootloader แท้จริงแล้ว Verizon นั้นแย่มากโดยเฉพาะอย่างยิ่งที่ไม่ส่งการอัปเดตเฟิร์มแวร์ไปยังผู้ใช้ด้วยซ้ำกับ Sony Xperia Z3v ไม่ได้ตั้งค่าให้รับ Marshmallow ในขณะที่ส่วนที่เหลือของกลุ่ม Z3 (และกลุ่ม Z2) จะทำ เฮ้พวกเขายังไม่ได้เปิดตัว Lollipop ไปยังอุปกรณ์ด้วยซ้ำแม้ว่าจะมีให้ใช้งานก็ตาม ค่อนข้างนาน (พฤศจิกายน 2014) บน Z3 ปกติ
แทนที่จะปลดล็อค bootloader อย่างไม่เป็นทางการ (ซึ่งค่อนข้างหายากในทุกวันนี้ ขาดการปลดล็อค bootloader ทางวิศวกรรมสำหรับอุปกรณ์ Samsung บางรุ่น) ดูเหมือนว่าจะไม่น่าเป็นไปได้สูง ว่าคุณจะได้รับรูทบน Android 6.0 โดยไม่มีการแทรกแซงจากสวรรค์ - การรวมกันของ dm-verity (เพื่อหยุดโทรศัพท์ของคุณจากการบูทด้วยการปรับเปลี่ยนใด ๆ ใน พาร์ติชันระบบ) และข้อกำหนดสำหรับการเปลี่ยนแปลง SELinux ใน ramdisk (เพื่อให้รูททำงาน) มองว่าจะทำให้สิ่งต่าง ๆ ค่อนข้างไม่สนุกสำหรับผู้ใช้ที่ต้องการรูทสิ่งเหล่านี้ อุปกรณ์ที่ถูกล็อค
แอนดรอยด์เพย์?
ในที่สุด Android Pay อาจฟังดูไม่เกี่ยวข้องกับส่วนที่เหลือของบทความนี้เลย แต่จริงๆ แล้วมีความเกี่ยวข้องค่อนข้างมาก Android Pay อาศัยสิ่งใหม่ SafetyNet API ภายในกรอบงานบริการที่เป็นกรรมสิทธิ์ของ Google ซึ่งออกแบบมาเพื่อให้การรับรองสถานะอุปกรณ์ว่าอุปกรณ์ได้รับการรูทหรือแก้ไขหรือทำงานในสถานะที่ไม่ได้รับอนุมัติหรือไม่
ในขณะที่มี โครงการ เมื่อดูการตอบสนองการปลอมแปลงต่อ SafetyNet ปัจจุบันต้องใช้ปลั๊กอิน Xposed และดูเหมือนว่าจะไม่มีการเปลี่ยนแปลงเมื่อพิจารณาถึงวิธีการทำงาน Xposed ต้องการรูท และทำการแก้ไขพาร์ติชันระบบ ทำให้การดำเนินการนี้ยากบนอุปกรณ์ที่ล็อคบูตโหลดเดอร์ ถึงกระนั้น สิ่งต่างๆ เช่นนี้เป็นเพียงการเข้าสู่เกมแมวจับหนูกับ Google เท่านั้น ด้วย SafetyNet อุปกรณ์ที่รูท (หรืออุปกรณ์ที่มีการดัดแปลงเลย) จะถูกมองว่า "ไม่เป็นไปตามข้อกำหนดของ CTS" ซึ่งเป็นคำสละสลวยสำหรับอุปกรณ์ที่ถูกดัดแปลง
มีการเขียนเกี่ยวกับ SafetyNet อีกมาก ในโพสต์บล็อกการฉีกขาดนี้แต่ดูเหมือนว่าเราสามารถระบุบางพื้นที่ที่ Google ต้องการควบคุมได้อย่างแน่นอน ประการแรก พวกเขาไม่ชอบรูท Xposed และอะไรก็ตามที่แก้ไขพาร์ติชั่นระบบ ประการที่สอง ดูเหมือนว่า Google กำลังพิจารณาที่จะตรวจจับผู้ใช้ที่เปิดใช้งานการบล็อกโฆษณา - การตรวจสอบ SSL handshake pubads.g.doubleclick.net
แนะนำฉันอย่างแน่นอนว่า Google ต้องการทราบว่าคุณกำลังบล็อกโฆษณาบนอุปกรณ์ของคุณหรือไม่ การพิจารณาว่ารูทนั้นมักจะเป็นข้อกำหนดเบื้องต้นที่นั่น แต่อาจใช้ VPN API ได้ สิ่งนี้โดยไม่ต้องรูท ดูเหมือนว่า Google อย่างน้อยก็ต้องการทราบว่าใคร (หรือกี่คน) กำลังบล็อกอยู่ โฆษณา การบล็อกโฆษณาเป็นปัญหาเฉพาะที่ได้รับการผลักดันจาก Apple ให้สนับสนุนในเว็บเบราว์เซอร์ (เนื้อหาเพื่อสนับสนุน ผู้คนใช้แอปมากขึ้น โดยที่พวกเขาควบคุมประสบการณ์และสามารถเสนอโฆษณาที่ไม่สามารถบล็อกได้) และการเคลื่อนไหวเหล่านี้ก็เป็นเช่นนั้น น่าสนใจ.
บทสรุป
หากคุณต้องการรูทวันนี้ บน Android Marshmallow (6.0) คุณจะต้องใช้อิมเมจสำหรับบูตที่ได้รับการแก้ไข แม้ว่าจะยังคงเห็นได้ชัดเจนว่าสิ่งนี้ยังคงเป็นจริงอย่างไม่มีกำหนดหรือไม่ แต่ก็ดูเหมือนว่าจะเป็นเช่นนั้นในบางครั้ง - การเปลี่ยนแปลงของ SELinux ทำให้การเข้าถึงรูททำได้ยากขึ้นมากโดยไม่ต้องแก้ไขอิมเมจสำหรับบูต และเนื่องจากการแก้ไขอิมเมจสำหรับบูตต้องใช้โปรแกรมโหลดบูตที่ปลดล็อค สิ่งนี้อาจทำให้การรูทสิ้นสุดลง (และ Xposed และคุณสมบัติรูทอื่นๆ) บนอุปกรณ์ที่มาพร้อมกับโปรแกรมโหลดบูตที่ผู้ใช้ปลายทางไม่สามารถปลดล็อคได้ Dm-verity ก็ปรากฏตัวขึ้นเช่นกัน และดูเหมือนว่าจะเปิดใช้งานในโหมดบังคับใช้บนอุปกรณ์ใหม่ นั่นจะทำให้แก้ไข /system ได้ยาก แม้ว่าคุณจะต้องเข้าถึงรูทโดยไม่ต้องปลดล็อค bootloader อีกครั้งก็ตาม
สิ่งนี้เปลี่ยนมุมมองของคุณเกี่ยวกับอุปกรณ์ที่ล็อค Bootloader หรือไม่ Android มาถึงขั้นที่คุณยังคงซื้ออุปกรณ์ที่ล็อค bootloader หรือไม่หากผู้ให้บริการของคุณให้ข้อเสนอที่ดีแก่คุณ, หรือคุณสนใจเฉพาะอุปกรณ์ที่ปลดล็อคเท่านั้น? แอพหรือฟีเจอร์รูทใดที่คุณพลาดใน bootloader ที่ล็อคไว้
อย่าลังเลที่จะแบ่งปันความคิดของคุณในความคิดเห็นด้านล่าง