Xposed For Lollipop วางจำหน่ายอย่างเป็นทางการแล้ว

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

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

rovo89 ใจดีพอที่จะให้คำถามและคำตอบสำหรับโปรเจ็กต์ล่าสุดแก่เรา คุณจะพบคำตอบสำหรับคำถามทั้งหมดของคุณเกี่ยวกับโครงการด้านล่างนี้

ทำไมมันใช้เวลานานมาก? ART ได้รับการเผยแพร่มากกว่าหนึ่งปีที่ผ่านมา!

ก่อนอื่น หลายๆ คนมักขอการสนับสนุนจาก ART Lollipop มีการเปลี่ยนแปลงมากกว่านั้นมาก เช่น นโยบาย SELinux ที่เข้มงวดยิ่งขึ้น ROM 64 บิต และการเปลี่ยนแปลงสถาปัตยกรรมที่คุณคาดหวังจากการเปิดตัวครั้งใหญ่ และแน่นอนว่า ART เองก็ได้รับการปรับปรุงอย่างต่อเนื่อง มีความแตกต่างอย่างมากระหว่าง ART สำหรับ KitKat และ ART สำหรับ Lollipop

เหตุผลหนึ่งก็คือความซับซ้อนอย่างมาก ซึ่งต้องใช้เวลาทำงานหลายชั่วโมงในการวิจัย การพัฒนา และการทดสอบ

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

เราจำเป็นต้องเขียนโมดูลทั้งหมดใหม่หรือไม่?

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

มันใช้งานได้จริงเหรอ?

ใช่! อย่างน้อยสำหรับฉัน มันทำงานได้ดีบนอุปกรณ์รายวันของฉัน (Nexus 5 บน CM12) และบน Nexus 9 ของฉันด้วย (ชำระเงินโดย XDA – ขอบคุณ!) โทรศัพท์มีความเสถียรตามปกติและแอปทำงานได้ดี และเห็นได้ชัดว่าโมดูลและการเปลี่ยน hooks/ทรัพยากรก็ทำงานได้ดีเช่นกัน ไม่เช่นนั้นก็ไม่มีประโยชน์ที่จะปล่อยบางสิ่งบางอย่างออกไป

แต่ทำไมถึงเป็นรุ่นอัลฟ่าล่ะ?

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

นอกจากนี้ยังมี Edge-case บางส่วนที่ยังไม่ได้ทดสอบ เช่น วิธีการ hooking JNI (เนทิฟ) และวิธีการที่กำลังดำเนินการในขณะที่ทำการ hook วิธีเหล่านั้น

ฉันต้องการที่จะติดตั้งมัน ตอนนี้! ฉันต้องทำอะไร?

ตรวจสอบให้แน่ใจว่าคุณได้อ่านคำพูดของฉันด้านบนและคุ้นเคยกับระบบภายในของโทรศัพท์ของคุณ แน่นอนว่าคุณต้องอยู่ใน Lollipop ROM และสำรองข้อมูลของคุณไว้อย่างดี สำหรับตอนนี้ผมจะเผยแพร่เฉพาะเวอร์ชัน ARMv7 เท่านั้น 64 บิตนั้นซับซ้อนกว่า ดังนั้นเรามาลองใช้เวอร์ชัน "ง่าย" ก่อน

ในตอนนี้ การติดตั้งจะต้องดำเนินการด้วยตนเองในการกู้คืนแบบกำหนดเอง การกระพริบไฟล์ zip จะติดตั้ง:

  • app_process32_xposed และบาง symlink
  • libexposed_art.so
  • libart.so และไบนารี + ไลบรารีที่เกี่ยวข้องบางส่วน (อิงจาก 5.0.2 ปรับปรุงด้วยการรองรับ hooking ฯลฯ )
  • XposedBridge.jar (ขณะนี้เก็บไว้ใน /system/framework)

การสำรองไฟล์ที่มีอยู่จะถูกสร้างขึ้นโดยอัตโนมัติและสามารถกู้คืนได้ในภายหลัง

มันใช้งานไม่ได้/ฉันไม่ชอบมัน! ฉันจะถอนการติดตั้งได้อย่างไร?

วิธีที่ง่ายที่สุดคือการกู้คืนข้อมูลสำรองหรือแฟลชพาร์ติชันระบบ ยังไม่ได้สร้างไฟล์ zip สำหรับการถอนการติดตั้ง

เหตุใดคุณจึงแทนที่ไฟล์ ART บนอุปกรณ์ของฉัน นั่นเป็นการรุกรานมากกว่า Dalvik จะทำให้เกิดปัญหาด้านประสิทธิภาพที่สำคัญและจะไม่เสถียร!

ฉันได้เขียนเหตุผลบางประการเกี่ยวกับ GitHub. ใช่ มันรุกรานมากกว่า ดังนั้นฉันจึงพยายามหลีกเลี่ยงมันมาเป็นเวลานาน แต่จากมุมมองด้านเทคนิคและการสนับสนุน ฉันคิดว่ามันเป็นตัวเลือกที่ดีกว่า

ประสิทธิภาพน้อยกว่า ART ดั้งเดิมใช่ไหม อาจเป็นเพราะฉันต้องปิดการใช้งานการเพิ่มประสิทธิภาพบางอย่างเพื่อให้ hook บางประเภทเป็นไปได้ อย่างไรก็ตาม สิ่งนี้ส่งผลกระทบเพียงเศษเสี้ยวของวิธีการทั้งหมด และแม้แต่วิธีเหล่านั้น การสูญเสียประสิทธิภาพก็ไม่มีนัยสำคัญหรือสังเกตเห็นได้ชัดเจน แม้ว่าจะวัดได้ก็ตาม ยังมีการปรับปรุงอื่นๆ อีกนับพันที่ดำเนินการโดย ART และฉันพยายามปิดการใช้งานให้น้อยที่สุดเท่าที่จะเป็นไปได้โดยให้ความยืดหยุ่นมากที่สุด

ความเสถียรก็ดีตามที่กล่าวไว้ข้างต้น เปรียบเทียบกับวิธีที่ฉันใช้กับ Dalvik (แก้ไขโครงสร้างข้อมูลภายในของรันไทม์จาก app_process) ฉันค่อนข้างแน่ใจว่าการแทนที่ไลบรารีทั้งหมดนั้นมีความน่าเชื่อถือมากกว่ามาก ทาง. ฉันสามารถรวมการเปลี่ยนแปลงของฉันเข้ากับโค้ดที่มีอยู่ได้อย่างหมดจดและนำฟังก์ชันที่เกี่ยวข้องกลับมาใช้ใหม่ ในขณะที่การแฮ็กและการสันนิษฐานหลายอย่างอาจจำเป็นสำหรับวิธีอื่น

ในที่สุดคุณจะทำให้ซอร์สโค้ดเป็นแบบสาธารณะหรือไม่?

แน่นอนว่าคุณจะพบมันบน GitHub เร็วๆ นี้หลังจากการเปิดตัวเวอร์ชันอัลฟ่า ในสาขาที่แยกต่างหากในตอนนี้

นี่หมายความว่าตอนนี้ Android เวอร์ชันเก่าไม่รองรับอีกต่อไปแล้วใช่หรือไม่

เลขที่! โค้ดใหม่นี้คอมไพล์บน Android เวอร์ชัน 4.x ทั้งหมด และเพียงแค่ต้องได้รับการทดสอบก่อนการเปิดตัวแบบรวมศูนย์ แต่ก่อนอื่น ฉันต้องแน่ใจว่ามันทำงานได้ดีสำหรับ Lollipop อาจเป็นไปได้ว่าการสนับสนุน ART สามารถย้อนกลับไปที่ KitKat ได้ แต่มีลำดับความสำคัญน้อยกว่า

ฉันจะขอบคุณสำหรับงานของคุณได้อย่างไร?

หลายๆคนถามหาช่องทางบริจาคเงินไม่กี่เหรียญ ฉันก็เลยตั้ง ก การบริจาค หน้าตอนนี้

ฉันต้องบริจาคเท่าไหร่เพื่อให้คุณเพิ่มฟีเจอร์ X หรือโมดูลที่ทำ Y?

นั่นไม่ใช่การบริจาค นั่นคือการจ่ายเงินให้ใครบางคนโดยคาดหวังถึงงานในอนาคต ฉันไม่สนใจงานอิสระ