ขณะนี้ Google Pixel และ Pixel มีรูทแล้ว โดยได้รับความอนุเคราะห์จาก XDA Senior Developer Chainfire! ตรงไปเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการรูทพิกเซลของคุณ!
วิธีการนี้ล้าสมัยและอาจใช้ไม่ได้ โปรดเยี่ยมชมฟอรัม Google Pixel และ Pixel XL ของเราเพื่อดูวิธีการรูทล่าสุด
ตามที่สัญญาไว้ รูทแบบไม่มีระบบสำหรับ กูเกิลพิกเซล และ พิกเซล เอ็กซ์แอล เป็น ตอนนี้ใช้ได้แล้ว. นักพัฒนาอาวุโสที่ได้รับการยอมรับของ XDA เชนไฟร์กำลังดำเนินการรูทสำหรับ Google Pixel โทรศัพท์ที่ใช้ Android 7.1 Nougat ในช่วงไม่กี่วันที่ผ่านมา และเขาได้มาถึงขั้นในการพัฒนาซึ่งตอนนี้เขาสบายใจพอที่จะแบ่งปันงานของเขากับชุมชนแล้ว
การเข้าถึงรูทสำหรับ Google Pixel และ Google Pixel XL สามารถทำได้โดยการติดตั้ง SuperSU 2.78 เอสอาร์2, ซึ่งช่วยให้ ซู เข้าถึงโดยไม่ต้องแตะสิ่งใดในพาร์ติชันระบบและอนุญาตให้สลับ dm-verity ก่อนที่คุณจะสามารถรูทอุปกรณ์ของคุณได้ คุณจะต้องปลดล็อคโปรแกรมโหลดบูตก่อน ขั้นตอนแรกในการปลดล็อค bootloader ของคุณคือการดาวน์โหลดไบนารี adb และ fastboot (เราแนะนำให้คว้า ADB และ Fastboot ขั้นต่ำ จากฟอรั่มของเรา) จากนั้นทำการติดตั้งที่เหมาะสม ไดรเวอร์ USB ของ Google สำหรับเครื่องของคุณ
หากคุณซื้ออุปกรณ์ Pixel โดยตรงจาก Google คุณเพียงต้องออกก fastboot กระพริบปลดล็อค คำสั่งตามมาด้วย ปลดล็อค fastboot oem ในกรณีที่คุณซื้อ Pixel จาก Verizon หรือ EE คุณจะต้องซื้อ ปลดล็อค bootloader ของคุณผ่านเครื่องมือ dePixel8. แต่ต้องรีบหน่อย เพราะผู้พัฒนา SunShine ได้กล่าวไว้ว่าการหาประโยชน์จากการปลดล็อค bootloader ของพวกเขาอาจได้รับการแก้ไขในการอัปเดตความปลอดภัยเดือนพฤศจิกายนที่กำลังจะมาถึง!
วิธีติดตั้ง SuperSU บน Pixel ของคุณ
ตามที่ Chainfire กล่าวถึงในโพสต์ Google+ คุณจะต้องดาวน์โหลดก่อน บูตถึงรูท รูปภาพสำหรับ Pixel หรือ Pixel XL ออกจากเว็บไซต์ของเขา คุณสามารถ คลิกที่นี่ เพื่อดาวน์โหลดไฟล์ zip สำหรับ Google Pixel หรือ คลิกที่นี่ เพื่อดาวน์โหลดไฟล์ zip สำหรับ Google Pixel XL หลังจากดาวน์โหลดไฟล์ zip คุณจะต้อง บูตเร็ว ที่ บูตถึงรูท ภาพ, อย่าfastboot แฟลชภาพ! กล่าวอีกนัยหนึ่ง คำสั่งเดียวที่คุณต้องการสำหรับอุปกรณ์ทั้งสองมีดังต่อไปนี้:
fastbootbootboot-to-root.img
รอสักครู่ และหลังจากรีบูตไม่กี่ครั้ง คุณจะบูตเครื่องโดยมีสิทธิ์การเข้าถึงรูทแบบเต็ม เย้!
การใช้งานการเข้าถึงรูททันที
อย่างไรก็ตาม นอกเหนือจากฟังก์ชันปกติที่การเข้าถึงรูทควรนำมาด้วยแล้ว เราได้ดำเนินการทดสอบบางสิ่งที่เรารู้ว่าคุณทุกคนจะสนใจ ก่อนอื่น คุณสามารถนำ Google Now กลับมาบน Tap ได้ไหม คำตอบคือ ใช่! สิ่งที่คุณต้องทำคือแก้ไข build.prop ด้วยการเปลี่ยนแปลง รีบูต และล้างข้อมูลแอป Google ต่อไปนี้ และคุณจะไม่ได้รับการต้อนรับด้วย Google Assistant อีกต่อไป
เปลี่ยน
ro.opa.eligible_device=true
ถึง
ro.opa.eligible_device=<strong>falsestrong>
แล้วคุณสมบัติอื่นที่ซ่อนอยู่โดยทั่วไปล่ะ: แตะสองครั้งเพื่อปลุก? เราได้มองหาปุ่มสลับที่ซ่อนอยู่ และได้ค้นพบสิ่งที่ดูเหมือนจะเป็นเช่นนั้น
sailfish:/sys/devices # echo 1 > ./soc/7577000.i2c/i2c-3/3-0020/input/input3/wake_gesture
น่าเสียดายที่เมื่อเราเปลี่ยนค่ามันก็ดูเหมือนจะไม่ติด ในตอนนี้ ดูเหมือนว่าคุณจะต้องแฟลชเคอร์เนลแบบกำหนดเอง เช่น ElementalX เพื่อให้ d2tw ทำงาน
สิ่งอื่นๆ ที่เราทดสอบได้แก่ Titanium Backup ใช้งานได้หรือไม่ (มันทำ) สถิติแบตเตอรี่ที่ดีขึ้น (ทำงาน), ธีมชั้นล่าง/เลเยอร์ (ดูเหมือนว่าจะมีปัญหาบางอย่าง) และการบล็อกโฆษณา (ล้มเหลว). Ad-away ไม่สามารถทำงานได้ในขณะนี้เนื่องจาก /system ไม่สามารถเมานต์การอ่าน-เขียนตามค่าเริ่มต้นได้ ดังนั้นเราจะต้องรอจนกว่า TWRP จะพร้อมใช้งานก่อนจึงจะสามารถแฟลชไฟล์ได้ วิธีแก้ปัญหาแบบไร้ระบบ สำหรับ Ad-Away ใช่แล้ว เราได้ลองใช้แล้ว แฟลชไฟร์ เพื่อแฟลชตัวเปิดใช้งาน Ad-Away สำหรับรูทที่ไม่มีระบบ แต่ดูเหมือนว่าจะไม่ทำงานในขณะนี้
sailfish:/sys/devices # mount -o rw, remount /system
mount: '/system' not in /proc/mounts
อัปเดต: Chainfire ยืนยันว่า FlashFire และแอปอื่นๆ จะต้องได้รับการอัปเดตก่อนจึงจะสามารถใช้งานได้ ดูด้านล่างสำหรับรายละเอียดเพิ่มเติม
อัปเดต 2: Chainfire ส่งข้อความถึงเราพร้อมวิธีแก้ปัญหาเพื่อให้ AdAway ทำงานจนกว่าแอปจะได้รับการอัปเดต ดูภาคผนวกท้ายบทความ
นี่คือภาพหน้าจอบางส่วนที่แสดงว่า Titanium Backup ใช้งานได้ ดังนั้นหากคุณมาจากอุปกรณ์อื่นและต้องการกู้คืนแอปที่สำรองไว้ทั้งหมด คุณสามารถมั่นใจได้ว่าข้อมูลแอปทั้งหมดของคุณจะถูกกู้คืนทันที
เราจะเจาะลึกอุปกรณ์ Pixel ของเราต่อไปเพื่อดูว่าเราสามารถสลับอะไรได้บ้าง ฟีเจอร์ "Pixel Exclusive" ใดที่จะอยู่ในฤดูใบไม้ร่วงถัดไป
"การต่อสู้" เพื่อให้ได้มาซึ่งราก
Chainfire ค่อนข้างพิถีพิถันเมื่อพูดถึงบันทึกประจำรุ่น เมื่อคุณเป็นนักพัฒนาซอฟต์แวร์ที่ให้วิธีการเข้าถึงรูทแก่ผู้ใช้นับหมื่นคน รู้สึกโปร่งใสที่สุดเท่าที่จะเป็นไปได้เพื่อมิให้คุณต้องเผชิญกับผู้ใช้ที่สับสนจำนวนมากที่สงสัยว่าทำไมจึงมีบางอย่าง แตกหัก. ในขณะที่ของเขา บัญชีทวิตเตอร์ (@ChainfireXDA) สงวนไว้สำหรับการประกาศสั้นๆ มากกว่า Chainfire มีแนวโน้มที่จะโพสต์คำอธิบายที่ยาวและยินดีเป็นอย่างยิ่งเกี่ยวกับเขา Google+ บัญชี. ครั้งนี้ก็ไม่ต่างกัน.
ก่อนอื่น Chainfire อธิบายว่ามีการเปลี่ยนแปลงอะไรบ้างกับโทรศัพท์ Pixel ทั้งสองเครื่องที่เขาจำเป็นต้องแก้ไขเพื่อให้สามารถเข้าถึงรูทได้ โดยเฉพาะอย่างยิ่ง Chainfire จะอธิบายเค้าโครงพาร์ติชันใหม่บนอุปกรณ์ Pixel ก่อน
รูปแบบพาร์ติชั่นใหม่ (Pixel และอุปกรณ์ในอนาคตหลายตัว):
- มีพาร์ติชั่น Android สองพาร์ติชั่น, บูต, ระบบ, ผู้จำหน่าย
- พาร์ติชั่นการกู้คืนและแคชหายไป
- ตอนนี้รูท / ไดเร็กทอรีสำหรับ Android เป็นส่วนหนึ่งของพาร์ติชันระบบแทนที่จะเป็นพาร์ติชันสำหรับบูต (initramfs)
- ขณะนี้การกู้คืนอยู่ในอิมเมจสำหรับบูตปกติ และใช้ initramfs (ซึ่งเคยใช้โดย Android)
ตามที่เราได้กล่าวถึงก่อนหน้านี้สิ่งเหล่านี้ การเปลี่ยนแปลงพาร์ติชัน บนโทรศัพท์ Pixel สองเครื่อง ต้องการการแก้ไขวิธีการรูทปัจจุบัน. Chainfire ได้ยืนยันว่าการแก้ไขพาร์ติชัน /system เหล่านี้จำเป็นต้องใช้แนวทางที่แตกต่างออกไป ซึ่งอาจเกี่ยวข้องกับการแก้ไขเคอร์เนล
ด้วยรูปแบบพาร์ติชั่นใหม่ของ Pixel ไฟล์เหล่านั้นที่เราเปลี่ยนได้ย้ายไปยังพาร์ติชั่นระบบแล้ว (สิ่งที่เราคิดว่าเดิมคือ /system ตอนนี้เป็นโฟลเดอร์ย่อยภายในระบบไฟล์ของพาร์ติชั่นนั้น) ดังนั้น เราสามารถแก้ไขพาร์ติชันระบบที่มีไฟล์เหล่านี้ทั้งหมด และปล่อยอิมเมจสำหรับบูตไว้เพียงอย่างเดียวได้หรือไม่ แม้ว่าโดยส่วนตัวแล้วฉันชอบที่จะแก้ไขอิมเมจสำหรับบูตและปล่อยให้ระบบอยู่คนเดียว แต่การย้อนกลับอาจเป็นวิธีแก้ปัญหา และฉันรู้ว่าผู้ใช้เทคโนโลยีบางคนอาจจะชอบมันด้วยซ้ำ
อย่างไรก็ตาม ฉันไม่สามารถทำงานนี้ได้ bootloader ส่งข้อมูลไปยังเคอร์เนล (ซึ่งอยู่ในอิมเมจสำหรับบูต) จริง ๆ dm-verity ที่บังคับใช้ (ซึ่งบังคับใช้ความสมบูรณ์ของพาร์ติชันระบบ) ซึ่งเราไม่สามารถสกัดกั้นหรือ เปลี่ยนโดยไม่มี (กลองม้วน) การแก้ไขอิมเมจสำหรับบูต รูท Pixel ที่ประสบความสำเร็จครั้งแรกของฉันทำได้แบบนั้น - โดยการแก้ไขทั้งสองอย่าง (รูปภาพที่โพสต์ก่อนหน้านี้มาจากความพยายามนี้)
กล่าวอีกนัยหนึ่ง ไม่มีวิธีปิดการใช้งาน dm-verity โดยไม่ต้องแก้ไขเคอร์เนลตามที่เราสงสัย เนื่องจากเคอร์เนลบังคับให้เปิดใช้งาน dm-verity Chainfire จึงจำเป็นต้องแก้ไขเคอร์เนลเล็กน้อยเพื่อหยุด dm-verity ไม่ให้ป้องกันการเปลี่ยนแปลงพาร์ติชันระบบ โชคดีที่ Chainfire ค้นพบว่าการดัดแปลงของเขาต้องใช้เคอร์เนลไบนารีแพตช์ขนาดเล็กเท่านั้น แต่ต้องไม่คอมไพล์เคอร์เนลแบบเต็ม ดังนั้นโซลูชันของเขาจึงควรยังคงเป็นโซลูชันทั่วไปสำหรับอุปกรณ์ Android 7.1 ที่มีรูปแบบพาร์ติชัน A/B
เพื่ออธิบายวิธีการรูทใหม่นี้โดยละเอียดยิ่งขึ้น Chainfire บรรลุการรูทแบบไร้ระบบด้วยการสร้าง เคอร์เนลใช้ initramfs ของอิมเมจสำหรับบูตเป็นไดเร็กทอรีราก แทนที่จะใช้สิ่งใดจากระบบ พาร์ติชัน ในการทำเช่นนั้น เนื้อหาไดเร็กทอรีรากในพาร์ติชันระบบจะถูกนำเข้าไปยังอิมเมจสำหรับบูต ซึ่งช่วยให้สามารถแก้ไขไฟล์เหล่านี้ได้โดยไม่ต้องแก้ไขไฟล์ระบบใดๆ พาร์ติชันระบบถูกเมาท์ไปที่ /system_root และ /system เองที่เชื่อมโยงกับซิม /system_root/system และในที่สุดเคอร์เนลแพตช์ของเขาก็แก้ไขเคอร์เนลโดยไม่สนใจคำสั่งที่ส่งจาก bootloader ซึ่งโดยปกติแล้วจะบังคับใช้ dm-verity
อย่างไรก็ตาม มีประเด็นเล็กๆ น้อยๆ บางประการที่นำมาใช้กับวิธีการใหม่นี้ แอปบางตัว เช่น FlashFire หรือ AdAway (ทั้งสองแอปแสดงให้เห็นว่าใช้งานไม่ได้) คาดว่าพาร์ติชันระบบจะติดตั้งเป็น /system ไม่ใช่ /system_root และจะต้องได้รับการอัปเดตตามนั้น แม้ว่าคุณสามารถลองติดตั้งระบบใหม่ได้
mount -o rw, remount /system_root
ซึ่งควรอนุญาตให้คุณเขียนไปที่ /system เรายังไม่ได้ทดสอบว่าแอปรูทตัวใดที่แก้ไขได้ แต่คุณสามารถทดสอบได้ด้วยตัวเอง ในที่สุด Chainfire ก็ไม่แน่ใจว่า ซูฮิเดะ จะทำงานร่วมกับแผนการรูตใหม่นี้ แต่เขาระบุว่าเขาจะมองหาวิธีแก้ปัญหาต่อไป
หากต้องการดาวน์โหลด SuperSU สำหรับโทรศัพท์ Google Pixel ให้ไปที่ กระทู้ฟอรั่ม XDA. ขอขอบคุณ Chainfire อย่างยิ่งที่นำการรูทมาสู่อุปกรณ์! เริ่มเกม Tweaking ได้เลย!
เยี่ยมชมฟอรัมย่อย SuperSU XDA!
เรื่องราวนี้อยู่ระหว่างการพัฒนาและจะได้รับการอัปเดตเมื่อเราได้รับข้อมูลใหม่ Google Pixel หนึ่งเครื่องถูกเสียสละในการสร้างบทความนี้ RIP ข้อมูลของเจฟฟ์
ภาคผนวก #1: การแก้ไขชั่วคราวสำหรับ AdAway
ดาวน์โหลด AdAway v3.1.2 จากเรา ฟอรั่มจากนั้นใช้ a เทอร์มินัลอีมูเลเตอร์ หรือเชลล์ ADB เพื่อป้อนคำสั่งต่อไปนี้:
mkdir /su/etc; cp /system/etc/hosts /su/etc/hosts; echo "#!/su/bin/sush\nmount -o bind /su/etc/hosts /system/etc/hosts" > /su/su.d/50adaway; chmod 0700 /su/su.d/50adaway
รีบูตและคุณควรมีการบล็อกโฆษณาทั่วทั้งระบบ