Xposed Framework อย่างเป็นทางการสำหรับ Android Nougat อยู่ที่นี่ - ดาวน์โหลดโมดูลที่คุณชื่นชอบตอนนี้!

ในฐานะที่เป็นระบบนิเวศ Android ได้ครบกำหนดในช่วงหลายปีที่ผ่านมาผู้ใช้น้อยลงและน้อยลงพบเหตุผลว่าทำไมพวกเขาควรรูทอุปกรณ์ของพวกเขา มีแนวโน้มเพิ่มขึ้นของผู้ใช้ที่เลือกที่จะอยู่ในเฟิร์มแวร์หุ้นเพราะพวกเขาพบว่าประสบการณ์ที่น่าพอใจหรือไม่ต้องการเล่นเกม cat-and-mouse ด้วย Google SafetyNet API แต่ถ้าคุณถามผู้ใช้ถึงต้นปี 2559 ทำไมพวกเขาถึงรูทโทรศัพท์บางทีเหตุผลอันดับหนึ่งที่ได้รับคือพวกเขาสามารถติดตั้ง Xposed Framework ได้ เป็นเวลามากกว่าหนึ่งปีแล้วที่ Android 7.0 Nougat เปิดตัวครั้งแรก แต่การรอคอยที่ยาวนานก็จบลงในที่สุด: Xposed Framework อย่างเป็นทางการสำหรับ Android Nougat มีวางจำหน่ายแล้ว

ตลอดปีที่ผ่านมานักพัฒนาอาวุโสที่ได้รับการยอมรับ rovo89 ผู้พัฒนาชั้นนำของ Xposed Framework ได้ให้การปรับปรุงหลายอย่างเกี่ยวกับความคืบหน้าของ Xposed Framework สำหรับ Android Nougat สำหรับบางคนการรอคอยนั้นสามารถทนได้ส่วนใหญ่เนื่องจากจำนวนหน้าที่การใช้งานเพิ่มเติมที่ Xposed Framework มอบให้ใน Android Marshmallow แต่คนอื่น ๆ อีกหลายคนได้ก้าวเข้าสู่ชีวิตโดยปราศจาก Xposed บนอุปกรณ์ของพวกเขา

เราเห็นแววของความตื่นเต้นที่ได้รับการปรับปรุงใหม่ในโครงการเมื่อผู้พัฒนาไม่สามารถเผยแพร่ ART submodule สำหรับ AOSP 7.1.2 ได้ แต่เนื่องจาก GermainZ ของเราเองชี้ให้เห็นว่าคุณดีกว่าที่จะรอการเปิดตัว Xposed Framework อย่างเป็นทางการ รวมเข้ากับ ROM ที่กำหนดเอง นอกจากนี้การใช้งานอย่างไม่เป็นทางการนี้ไม่สมบูรณ์นำไปสู่พฤติกรรมที่ไม่สอดคล้องกันหรือบั๊กกี้กับโมดูล Xposed บางอย่าง

ในขณะที่ abforce ทำงานได้อย่างยอดเยี่ยมในการทำให้ Xposed ที่ไม่เป็นทางการของเขาทำงานบน Android 7.1 Nougat การใช้งานของเขาขัดต่อวิสัยทัศน์ของ rovo89 สำหรับ Xposed ว่ามันควรจะเป็นโซลูชั่นที่มีเสถียรภาพให้สัญญาที่เชื่อถือได้และใช้งานง่ายสำหรับผู้ใช้และนักพัฒนา สิ่งที่เราหมายถึงคือไม่เพียง แต่โมดูลควรทำงานโดยไม่มีปัญหาสำหรับผู้ใช้ แต่วิธีการตั้งค่าโมดูลควรสอดคล้องกันในหมู่ผู้ใช้ดังนั้นนักพัฒนาจะรู้ว่าโมดูล Xposed จะโทษว่าเกิดความผิดพลาดหรือไม่

เราไม่ต้องกังวลเกี่ยวกับปัญหาดังกล่าวอีกต่อไปเช่น rovo89 (หลังจากความช่วยเหลือจากนักพัฒนาที่ได้รับการยอมรับ wanam) ตอนนี้พร้อมที่จะปล่อยการอัปเดตอย่างเป็นทางการไปยัง Xposed Framework และตัวติดตั้งซึ่งนำ ความเข้ากันได้กับ Android 7.0 / 7.1 Nougat นั่นหมายความว่าคุณจะไม่ต้องติดตั้ง ROM แบบกำหนดเองหรือต้องยุ่งกับเวอร์ชั่นที่ไม่เสถียรที่กระพริบเพื่อเพลิดเพลินกับ Xposed เพียงแค่รูทโทรศัพท์ของคุณและติดตั้งแอปพลิเคชั่น Xposed Installer ล่าสุด (ลิงก์ด้านล่าง) และ Xposed Installer จะทำการติดตั้ง Xposed สำหรับคุณ

Xposed Installer เรียกดู Module Repository

บางครั้งมันอาจจะสายในใจบางอย่างโดยเฉพาะอย่างยิ่งตั้งแต่รุ่นนี้มามากกว่าเดือนหลังจาก Android 8.0 โอรีโอได้รับการปล่อยตัว โปรดทราบว่าอุปกรณ์น้อยมากที่จะสามารถเข้าถึง Android Oreo รุ่นที่เสถียรได้ในอีกหลายเดือนข้างหน้า Android Oreo นั้นมี เพียง 0.2% ของอุปกรณ์ Android ทั้งหมด (เมื่อเทียบกับ ~ 18% สำหรับ Nougat) ตามสถิติล่าสุดจาก Google แต่ผู้ใช้ของเราจำนวนมากเป็นคนที่ชอบติดตั้ง ROM แบบกำหนดเองเพื่ออยู่บนขอบเลือดออก

การกระจายเวอร์ชัน Android เมื่อเดือนตุลาคม 2560 ที่มา: Google

แม้ว่าคุณจะติดตั้งพอร์ตที่ไม่เป็นทางการของ Android 8.0 ที่มีอยู่ในอุปกรณ์จำนวนมากในฟอรัมของเรา แต่พอร์ตเหล่านี้จำนวนมากไม่ได้มีสถานะไดรเวอร์ทุกวัน ดังนั้นหากคุณไม่ต้องการจ่ายเงินหลายร้อยดอลลาร์สำหรับ Google Pixel 2/2 XL ใหม่ Sony Xperia XZ1 / XZ1 Compact หรืออุปกรณ์ที่กำลังจะมาถึงเช่น Huawei Mate 10 คุณอาจบีบได้ การใช้งาน Xposed Framework เป็นเวลาหลายเดือนบน Android Nougat

หากฟังดูเหมือนคุณให้ไปที่หัวข้อฟอรัมอย่างเป็นทางการสำหรับ Xposed Installer และรหัสไปรษณีย์เฟรมเวิร์กเพื่อติดตั้งและใช้งานบนอุปกรณ์ Android Nougat ของคุณ

ดาวน์โหลด Xposed Installer v3.1.2 (ไฟล์แนบ)

Xposed Installer สำหรับดาวน์โหลด Nougat 7.0 (SDK24)

Xposed Installer สำหรับดาวน์โหลด Nougat 7.1 (SDK25)

สำหรับผู้ใช้ใหม่ที่ไม่คุ้นเคยกับสิ่งที่ Xposed Framework ใช้หรือวิธีการทำงานเราจะอธิบายสั้น ๆ เกี่ยวกับ Xposed Framework ด้านล่างทำไมคุณควรตื่นเต้นและทำไมการพัฒนาในเรื่องนี้ใช้เวลานานเท่าที่มันทำ .


ทำไมต้องติดตั้ง Xposed Framework?

ต้องการรับคุณสมบัติ ROM ที่กำหนดเองโดยไม่ต้องกะพริบ ROM ที่กำหนดเองหรือไม่ คุณเป็นแม่ของโมดูล Xposed ทั้งหมดสำหรับการปรับแต่ง ROM ของคุณหรือที่รู้จักกันในชื่อ GravityBox ต้องการปรับแต่งการตั้งค่าการแสดงผลแบบต่อแอพใช่ไหม ลองใช้การตั้งค่าแอพ วิธีการกำหนดแอปพลิเคชันบางอย่างเช่นแฮงเอาท์เอง หรือแก้ไข Instagram เพื่อให้คุณสามารถดาวน์โหลดโพสต์อะไรก็ได้ที่คุณชอบ?

ควบคุมการแจ้งเตือน GravityBox

การตั้งค่าแอพ

Xposed ช่วยให้นักพัฒนาสามารถ ปรับเปลี่ยนได้ทุกอย่างที่ต้องการ - มุ่งเน้นไปที่แอปพลิเคชั่นส่วนบุคคล แต่แม้กระทั่งคุณสมบัติของระบบสามารถปรับเปลี่ยนได้ ตัวอย่างที่เราระบุไว้นั้นเป็นเพียงส่วนเล็ก ๆ จำนวนฟีเจอร์เพิ่มเติมที่คุณสามารถเพิ่มหรือแอพที่คุณสามารถปรับเปลี่ยนนั้นเหลือเชื่อมากเพียงค้นหาที่เก็บ Xposed Module อย่างเป็นทางการเพื่อดูตัวคุณเอง โปรดทราบว่าบางโมดูลอาจต้องได้รับการอัปเดตสำหรับรุ่นใหม่นี้และสำหรับรองรับ Nougat ดังนั้นโปรดตรวจสอบก่อนติดตั้งใน Nougat ROM ของคุณ!

โมดูล Xposed ทำงานอย่างไร

ส่วนสำคัญของมันคือ Xposed Framework อนุญาตให้โมดูล “ hook” เข้าสู่วิธีการของ Java ของแอปพลิเคชันใด ๆ - ไม่ว่าจะติดตั้งโดยผู้ใช้หรือแอปพลิเคชันระบบ Xposed อนุญาตให้โมดูลรันวิธีการของตนเอง ก่อนระหว่างหรือแทนที่ วิธีดั้งเดิมของแอปพลิเคชันเป้าหมาย

ตัวอย่างเช่นลองนึกภาพวิธีที่ใช้ในแอปพลิเคชัน Gmail ที่โพสต์การแจ้งเตือนสำหรับอีเมลใหม่ โดยค่าเริ่มต้นวิธีการสร้างการแจ้งเตือนใหม่ที่มีปุ่มเพื่อเก็บ / ลบหรือตอบกลับอีเมล โมดูล Xposed สามารถทำเพื่อขอเข้าสู่วิธีการนี้และเพิ่มปุ่มใหม่เช่น "ทำเครื่องหมายว่าอ่านแล้ว" (ใช่มีโมดูลสำหรับหลักสูตรนั้นอยู่แล้ว)

ข้างต้นคือการทำให้เข้าใจง่ายกว่าผลลัพธ์สุดท้ายของสิ่งที่ Xposed Framework อนุญาตให้โมดูลทำได้ Framework นั้นมีความซับซ้อนอย่างไม่น่าเชื่อและทำให้การทำงานเกือบจะเป็นสากลบนอุปกรณ์ที่มีรูท - โดยไม่ต้องใช้ ROM ที่กำหนดเอง - เป็นเหตุผลที่ Xposed สำหรับ Android Nougat ใช้เวลานานกว่าจะเสร็จสมบูรณ์

ทำไมการพัฒนา Xposed ใช้เวลานานมาก

ความมหัศจรรย์ของ Xposed สิ่งที่ทำให้โมดูลสามารถเชื่อมต่อกับวิธีการของแอพอื่น ๆ ได้นั้นต้องใช้ความรู้อย่างลึกซึ้งว่า Zygote และ Android Runtime (ART) ทำงานอย่างไร ความต้องการเหล่านี้ทำให้ผู้คนจำนวนมากไม่ได้มีส่วนร่วมในโครงการ แต่ปัญหาก็ยิ่งทวีความรุนแรงขึ้นเนื่องจาก rovo89 เป็นผู้สนับสนุนหลักของ Xposed ในช่วง 5 ปีที่ผ่านมา

นั่นเป็นเหตุผลที่เรียกร้องให้เปิดแหล่งที่มาการแก้ไขของเขาที่ทำกับ Xposed ตั้งแต่การเปิดตัว Xposed สาธารณะครั้งล่าสุดถูกปฏิเสธ มันเป็นความคิดของเขาและเขาเป็นคนที่เข้าใจและแก้ไขได้ดีที่สุดดังนั้นการเพิ่มกำลังคนมากขึ้นในโครงการในช่วงเวลาดังกล่าวอาจทำให้โครงการล่าช้าออกไปอีก

นอกจากนี้หาก rovo89 อัปเดตแหล่งข้อมูลของเขาอย่างต่อเนื่องเขาก็กังวลว่าใครบางคนจะใช้รหัสที่ยังไม่เสร็จเพื่อสร้าง Xposed Framework แบบกึ่งทำงานโดยไม่ต้องติดตั้ง Xposed สากล (สิ่งนี้เกิดขึ้นได้ตลอดเวลาด้วยการใช้งานแบบบังคับและความยุ่งเหยิงที่เกิดขึ้นจากวิธีการติดตั้งแบบต่าง ๆ นั้นแสดงให้เห็นถึงความลังเลของ rovo89)

ดังนั้นสิ่งที่ดีที่สุดที่เราทำได้คือให้เวลา rovo89 ในการทำงานโครงการสัตว์เลี้ยงของเขา Xposed ไม่ใช่งานเต็มเวลาหรืองานนอกเวลา มันเป็นเพียงงานอดิเรกที่เขาทำเพื่อประโยชน์ของชุมชนเป็นเวลา 5 ปี โครงการที่ซับซ้อนอย่าง Xposed ต้องใช้เวลาในการทำงานและจากนั้นทดสอบ - เวลาที่เขาไม่ได้มีบ่อยครั้งเนื่องจากภาระหน้าที่อื่น ๆ ของเขา ความคืบหน้าเกิดขึ้นในช่วงปีที่ผ่านมาเช่นเดียวกับ rovo89 ที่บันทึกไว้ในการอัปเดตสาธารณะของเขาเกี่ยวกับปัญหาจนกระทั่งในที่สุดทั้ง Xposed Framework เองและ Xposed Installer พร้อมที่จะเปิดตัว

rovo89 ทำอะไรเพื่อให้ Xposed ทำงานใน Nougat

Android รุ่นใหม่บางครั้งมีการเปลี่ยนแปลงวิธีการทำงานของ ART ซึ่งอาจต้องใช้ Xposed บางส่วนในการทำใหม่ Android 7.0 Nougat ได้แนะนำ Just-in-Time compiler สำหรับ ART เพื่อช่วยปรับปรุงประสิทธิภาพรันไทม์ของแอพพลิเคชั่น แต่ Xposed Framework ที่ไม่เป็นทางการโดยเพียงแค่ปิดการใช้งานการเพิ่มประสิทธิภาพ ART จำนวนมากเพื่อให้วิธีการเชื่อมต่อสามารถทำงานได้อย่างถูกต้อง

การเพิ่มประสิทธิภาพ ART ใน Android Nougat ที่มา: Google

ในทางตรงกันข้ามการใช้งานของ rovo89 ทำให้การเพิ่มประสิทธิภาพ ART ทั้งหมดใน Android Nougat โดยการคอมไพล์ผู้โทรของวิธีการใหม่โดยใช้ JIT และยังคงมีวิธีการติดอยู่ นั่นหมายความว่าคุณสามารถเพลิดเพลินกับประโยชน์ของโมดูล Xposed โดยไม่ลดทอนประสิทธิภาพโดยปิดการใช้งานการเพิ่มประสิทธิภาพ ART อย่างจริงจัง

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ rovo89 ทำเพื่อให้ได้วิธีการเชื่อมต่อที่เชื่อถือได้ใน Xposed สำหรับ Android Nougat เราขอแนะนำให้คุณอ่านข้อความด้านล่างที่เขาให้ไว้กับเรา

ข้อความเต็มจาก rovo89

หลักของ Xposed เห็นได้ชัดว่ามีความสามารถในการขอวิธีการ Java เช่นให้โมดูลรันรหัสก่อนหลังหรือแทนวิธีการเหล่านี้ ฟังก์ชั่นอื่น ๆ นั้นมีพื้นฐานมาจากสิ่งนี้ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องใช้งานได้ตามปกติ แนวคิดทั่วไปเหมือนกันตั้งแต่ฉันคิดค้น Xposed เมื่อห้าปีที่แล้วมันต้องเปลี่ยนจุดเริ่มต้นของวิธีการ สิ่งนี้เริ่มต้นล้มเหลวเมื่อไม่ได้ตรวจสอบจุดเข้าใช้งานในระหว่างการดำเนินการซึ่งจริง ๆ แล้วเป็นกรณีของการปรับแต่งบางอย่างใน ART

ตัวอย่างหนึ่งคือเมื่อทราบว่าจุดเข้าใช้งานในเวลารวบรวมแล้วผู้โทรสามารถข้ามไปยังที่อยู่นี้ได้โดยตรงโดยไม่ต้องค้นหา อีกตัวอย่างคืออินไลน์ ลองพิจารณาตัวอย่างนี้:

ART ฉลาดพอที่จะสังเกตเห็นว่าวิธีสองครั้ง () นั้นง่ายมากและฝังตรรกะลงในเมธอด doSomething () ดังนี้:

คุณยังสามารถขอสองวิธี () แต่จะไม่ถูกเรียกจาก doSomething () อีกต่อไปขณะใช้งานจริงและจะไม่โทรกลับ ART มีความชาญฉลาดมากขึ้น: มันตระหนักดีว่าเวทมนต์นั้นมีอยู่ตลอด 42 และดังนั้นจึงไม่สามารถบรรลุเงื่อนไขได้ ดังนั้นเมธอด doSomething () ทั้งหมดจึงไม่มีทางเลือก:

ในเวอร์ชันก่อนหน้า Xposed ใช้เพื่อปิดการใช้งานการเพิ่มประสิทธิภาพเหล่านี้อย่างสมบูรณ์และบังคับให้คอมไพล์ใหม่ของทุกสิ่ง ที่มาพร้อมกับข้อเสียหลายประการ ก่อนอื่นผู้พัฒนา ART กำลังทำผลงานได้อย่างยอดเยี่ยมในการเพิ่มประสิทธิภาพด้วยการปรับให้เหมาะสมและการปิดใช้งานส่วนหนึ่งอาจนำไปสู่ประสิทธิภาพที่ลดลง จากนั้นการคอมไพล์ใหม่นั้นไม่ใช่เรื่องง่ายเสมอไปและทำให้ฉันปวดหัวมากโดยเฉพาะในตอนแรก สุดท้ายไฟล์ที่คอมไพล์ใหม่ใช้พื้นที่เพิ่มขึ้นนอกเหนือจากไฟล์ที่คอมไพล์แล้วในระบบ

เวอร์ชันที่ไม่เป็นทางการสำหรับ Nougat ยังปิดใช้งานการปรับให้เหมาะสมเหล่านี้ แต่จะไม่บังคับให้คอมไพล์ใหม่ (เนื่องจากพอร์ตถูกสร้างเพื่อรวมเข้ากับ ROM) ดังนั้น hooks อาจไม่ถูกเรียกใช้งานในบางครั้ง

ด้วยเวอร์ชันอย่างเป็นทางการคุณจะได้รับรหัสที่ดีที่สุดและยังคงมี hooks ที่เชื่อถือได้ มันทำงานอย่างไร Xposed บันทึกการโทรทั้งหมดที่เกิดขึ้น สิ่งนี้เกิดขึ้นขณะที่กำลังรวบรวม APK หรือในการส่งรหัสล่วงหน้าแยกต่างหาก ข้อมูลเพิ่มเติมนี้ใช้พื้นที่ไม่มากนัก แต่มันทำให้ Xposed สามารถค้นหาได้ว่ามีวิธีการใดที่ถูกฝังไว้ ดังนั้นเมื่อเมธอดนั้นถูกแฮ็กผู้เรียกทั้งหมดจะถูก deoptimized นั่นคือโค้ดจะไม่ถูกใช้อีกต่อไป สิ่งนี้ทำให้มั่นใจได้ว่าการเรียกกลับเบ็ดจะถูกเรียกอย่างแน่นอน และหากผู้โทรถูกใช้งานอย่างหนักมันก็จะถูกคอมไพล์ใหม่ด้วย JIT คราวนี้มีความรู้ว่าวิธีการนั้นได้รับการเชื่อมโยงและดังนั้นการเพิ่มประสิทธิภาพบางอย่างจึงไม่สามารถนำมาใช้ได้ ซึ่งหมายความว่าผลกระทบของวิธีการเกี่ยวจะลดลงเหลือน้อยที่สุด เย้!

ตอนนี้ไปข้างหน้าและลอง ตรวจสอบให้แน่ใจว่าใช้ Xposed Installer 3.1.2 เนื่องจากต้องเปลี่ยนเส้นทางการกำหนดค่าเพื่อรองรับการเข้ารหัสไฟล์

ข้อสรุป

เราหวังว่าคุณจะถูกสะกดจิตอย่างที่เราเป็นเกี่ยวกับการเปิดตัว Xposed สำหรับ Android 7.X Nougat การรอนาน แต่ไม่สามารถหลีกเลี่ยงได้เนื่องจากความซับซ้อนที่แท้จริงของ Xposed หากคุณยังสับสนว่า Xposed คืออะไรหรือทำงานอย่างไรไม่ต้องกังวล มีคนเพียงไม่กี่คนที่เข้าใจว่ามันทำงานอย่างไร นักพัฒนาอย่าง rovo89 ทำหน้าที่ของพวกเขาอย่างดีที่สุดในการบรรจุงานของพวกเขาดังนั้นคุณไม่จำเป็นต้องเข้าใจสิ่งที่เกิดขึ้นภายใต้ประทุน

คุณชอบ Xposed Framework หรือไม่ พิจารณาบริจาคให้ rovo89 สำหรับงานที่ยอดเยี่ยมที่เขาทำ หากคุณคิดว่าคุณมีสิ่งที่จะมีส่วนร่วมในโครงการให้ตรวจสอบหน้า GitHub ของ rovo89 ด้านล่าง

บริจาคให้ rovo89

มีส่วนร่วมใน Xposed

กำลังมองหาโมดูล Xposed อยู่หรือ? ดู Xposed Framework Module subforum ของเราหรือดาวน์โหลดแอปพลิเคชั่น Labs และเรียกดูโมดูล Xposed ของเรา

ฟอรัมโมดูล Xposed

ดาวน์โหลด Labs

Android Oreo Progress

ในกรณีที่คุณสงสัยนี่คือความคืบหน้าในการรับ Xposed สำหรับ Android Oreo:

ฉันได้เริ่มทำงานกับ Android 8.0 แล้ว มีคุณสมบัติภาษาใหม่ไม่กี่อย่างที่ฉันจะต้องดู แต่แนวคิดทั่วไปยังคงใช้ได้ ซึ่งรวมถึงการทำงานทั้งหมดเกี่ยวกับการคอมไพล์รหัสที่ไม่ถูกต้องของผู้โทรใด ๆ เมื่อวิธีการถูกติดซึ่งใช้เวลามากที่สุดเมื่อฉันทำงานกับ Nougat ดังนั้นฉันมั่นใจจริงๆว่าคราวนี้ฉันจะเร็วขึ้นมาก Android 8.1 ไม่ควรแตกต่างกันมากนักดังนั้นฉันคาดหวังว่าจะไม่ได้ผลเพิ่มเติมมากนัก