นักพัฒนา Magisk ได้สร้างความก้าวหน้าครั้งใหญ่สองครั้ง: รองรับ system-as-root และโลจิคัลพาร์ติชันสำหรับ Google Pixel 3 และ Pixel 3a บน Android Q
Google เปิดตัว Android Q เบต้าตัวแรกในเดือนมีนาคมและเข้าถึงรูทผ่าน Magisk ได้อย่างรวดเร็ว มีจำหน่ายแล้ว สำหรับ Google Pixel และ Google Pixel 2 อย่างไรก็ตาม Google Pixel 3 ไม่สามารถรูทบน Android Q ได้เนื่องจากผู้พัฒนา Magisk ซึ่งเป็นผู้พัฒนาที่ได้รับการยอมรับจาก XDA ท็อปจอห์นวูจำเป็นต้องทราบวิธีการทำงานกับโครงร่างโลจิคัลพาร์ติชันใหม่ ด้วยการฝึกงานครั้งใหม่ที่ Apple ทำให้ topjohnwu มีเวลาน้อยลงในการทำงานกับ Magisk แต่นั่นไม่ได้หยุดเขาจากการมีความก้าวหน้าครั้งใหญ่ในการพัฒนาสองครั้ง ใน Canary รุ่นล่าสุด Magisk รองรับระบบในฐานะรูท ทำให้แอปตรวจจับรูทได้ยากขึ้น เข้าถึงได้ และยังรองรับอุปกรณ์ที่มีโลจิคัลพาร์ติชัน เช่น Pixel 3 และ Pixel 3a XL series อีกด้วย แอนดรอยด์ คิว
ฟอรัม Google Pixel 3ฟอรัม Google Pixel 3 XL
ฟอรัม Google Pixel 3aฟอรัม Google Pixel 3a XL
รองรับพาร์ติชั่นแบบลอจิคัลของ Google Pixel 3 และ Pixel 3a บน Android Q
เพื่อช่วยนักพัฒนาทดสอบ Android เวอร์ชัน AOSP บนอุปกรณ์ที่มีอยู่ Google จึงเผยแพร่ Generic System Images (GSI) ที่สามารถบูตได้บนอุปกรณ์ที่รองรับ Project Treble (อุปกรณ์ใดก็ตามที่ เปิดตัวพร้อมกับ Android 9 Pie หรือใหม่กว่า) การติดตั้ง GSI จำเป็นต้องปลดล็อค bootloader ซึ่งอาจเป็นไปไม่ได้ในทุกอุปกรณ์ และทำการแฟลชอิมเมจระบบบน fastboot หลังจากล้างข้อมูลผู้ใช้ ข้อมูล. ใน Android Q Google กำลังเปิดตัวฟีเจอร์ใหม่ที่เรียกว่า
การอัปเดตระบบแบบไดนามิก ซึ่งช่วยให้นักพัฒนาบูต GSI ได้โดยไม่ต้องปลดล็อกโปรแกรมโหลดบูตหรือล้างข้อมูล เพื่อรองรับ Dynamic System Updates อุปกรณ์จำเป็นต้องมีโลจิคัลพาร์ติชันที่สามารถปรับขนาดแบบไดนามิกเพื่อให้มีพื้นที่สำหรับการติดตั้ง GSI Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a และ Google Pixel 3a XL มีโลจิคัลพาร์ติชันบน Android Q เบต้า แม้ว่าเฉพาะ Pixel 3 และ Pixel 3 XL เท่านั้นที่รองรับ DSU อย่างไรก็ตาม เป็นเพราะการเปลี่ยนแปลงครั้งใหญ่ในโครงสร้างพาร์ติชั่นที่ทำให้ Magisk ใช้งานไม่ได้เมื่อกำหนด topjohnwu แล้ว ไม่มีอะไรหยุดเขาจากการเข้าถึงรูทได้ เมื่อวันก่อน เขาประกาศว่าเขาได้รูทเครื่อง Pixel 3 XL บน Android Q beta 4 สำเร็จแล้ว คำอธิบายความมุ่งมั่นของเขา ที่นี่ อธิบายรายละเอียดทางเทคนิคว่าเขาได้รับการรองรับโลจิคัลพาร์ติชันได้อย่างไร แต่สิ่งสำคัญคือตอนนี้ Magisk สามารถติดตั้งบนอุปกรณ์ที่มีหรือไม่มีโลจิคัลพาร์ติชันได้แล้ว
การสนับสนุนระบบเป็นรูท
สำหรับอุปกรณ์ที่มี A/B พาร์ติชั่นคู่พาร์ติชันระบบจะถูกเมาท์เป็นไดเร็กทอรีราก (/) แต่อุปกรณ์ที่ไม่มีพาร์ติชันคู่ A/B จะมีพาร์ติชันระบบติดตั้งอยู่ที่ /system สิ่งนี้ทำให้ OTA เฉพาะระบบเป็นไปไม่ได้บนอุปกรณ์ที่ไม่ใช่ A/B เนื่องจากไฟล์ใน ramdisk ซึ่งจำเป็นต้องอัปเดตอยู่ในพาร์ติชันสำหรับเริ่มระบบ นั่นเป็นเหตุผลว่าทำไม เพื่อให้ OTA เฉพาะระบบเป็นไปได้ใน Android Pie ขึ้นไป Google จึงกำหนดให้อุปกรณ์ทั้งหมดที่เปิดตัวด้วย Android Pie รองรับเค้าโครงพาร์ติชันของระบบในฐานะรูท ในโครงร่างระบบในฐานะรูท อิมเมจ ramdisk จะถูกรวมเข้ากับอิมเมจระบบ ซึ่งเมานท์เป็น rootfs
เนื่องจาก Google เปิดตัว system-as-root สารละลาย ไปยังอุปกรณ์รูทคือการคืนค่าระบบในฐานะรูทกลับไปเป็นโครงร่าง "initramfs rootfs" ของพาร์ติชันเก่า ที่ ทำงาน ใช้ได้สำหรับ Android 7.1 ถึง Android 9 Pie เนื่องจาก Android มีการสนับสนุนแบบดั้งเดิมสำหรับเค้าโครงเก่านี้ แต่เป็น Android Q อย่างสมบูรณ์ ลบ การสนับสนุนในฐานะ system-as-root เป็นสิ่งจำเป็นสำหรับอุปกรณ์ทั้งหมด แม้แต่อุปกรณ์ที่กำลังอัปเดตเป็น Android Q ก็ตาม Magisk เวอร์ชันก่อนๆ ยังคงใช้งานได้ด้วย "การแฮ็กที่น่ารังเกียจจริงๆ" บางอย่าง แต่ topjohnwu ไม่พอใจกับโซลูชันนั้น เพื่อที่จะสนับสนุนระบบในฐานะรูทที่เขามีอย่างเหมาะสม แนะนำ "มาจิสก์อินิท"
ผลข้างเคียงที่ดีของการสนับสนุนเค้าโครงพาร์ติชันระบบเหมือนรูทอย่างเหมาะสมก็คือ ช่องทางหนึ่งที่เป็นไปได้ ของการตรวจจับรูทถูกแบน ดังที่ topjohnwu อธิบายให้ฉันฟังอย่างสง่างาม วิธีการ "เปลี่ยนกลับเป็น initramfs rootfs" แบบเก่านั้นง่ายสำหรับแอปที่จะตรวจพบเพราะ Magisk จะเมานต์ system เป็น '/system_root' และผูก mount '/system_root/system' กับ '/system' แอพทั้งหมดที่ต้องทำเพื่อตรวจจับการมีอยู่ของรูท ตรวจสอบว่า '/system_root' มีอยู่หรือ '/' คือ 'rootfs' อย่างไรก็ตาม ยังไม่ชัดเจนว่าแอปใดๆ ใช้ประโยชน์จากสิ่งนี้เพื่อตรวจจับจริงๆ ราก. ถึงกระนั้นก็ยังดีกว่าปลอดภัยกว่าขออภัย
การเปลี่ยนแปลงเบ็ดเตล็ด
Android Q แนะนำการสนับสนุนสำหรับสิ่งที่เรียกว่า "สระบลาสตูลา"กับวงจรการใช้งานแอปพลิเคชัน Android MagiskHide เคยเป็น ไม่สามารถ เพื่อตรวจจับแอปที่จะซ่อนการเข้าถึงรูทหากเปิดใช้งานคุณสมบัติ "พูลกระบวนการ" ใหม่ Canary รุ่นล่าสุดรองรับฟีเจอร์นี้แล้ว ตามข้อมูลของ topjohnwu: "เพื่อรองรับการเพิ่มประสิทธิภาพบลาสตูลาพูลใหม่ที่นำมาใช้ใน Q อย่างเหมาะสม ฉันได้เขียนตรรกะการติดตามกระบวนการที่ดีสำหรับการตรวจสอบกระบวนการ"
หากคุณมี Pixel 3, Pixel 3 XL, Pixel 3a หรือ Pixel 3a XL บน Android Q เบต้า ให้ลองใช้ Magisk Canary รุ่นล่าสุด และแจ้งให้เราทราบหากคุณสามารถรูทอุปกรณ์ของคุณได้
ช่อง Magisk Canary