Xposed For Lollipop זמין כעת באופן רשמי

Xposed Framework לא צריך היכרות עם קוראי XDA. כשנשאל על הדברים שהקהילה שלנו שונא הכי הרבה על Lollipop, ההערה היחידה עם ההצבעה הגבוהה ביותר בדיון הייתה שהיא שברה את התמיכה ב-Xposed. למעשה, חברי פורום רבים אפילו סירבו לעדכן ל-Lollipop במיוחד מסיבה זו. אבל כל זה משתנה כעת, כאשר ה-Xposed Framework המצופה הגיע סוף סוף עבור Android Lollipop.

אם אתה עדיין לא מכיר את Xposed, במילים פשוטות, זה מתנה משמים לקהילת המודינג. Xposed אינו דורש הבהוב של ROMs, אך מביא טונות של התאמה אישית ושינויים שמשתמשים יכולים להתקין כמו אפליקציות במכשירים שורשיים. זה פשוט להפליא לשימוש ועם סיכון מוגבל. ועכשיו, כל חובבי האנדרואיד ב-Lollipop יכולים ליהנות מהיתרונות של הפרויקט הפנטסטי הזה במכשירים שלהם. קח את ההורדה שלך והגיע למודדינג!

rovo89 גם היה אדיב מספיק כדי לספק לנו שאלות ותשובות עבור הפרויקט האחרון. תוכל למצוא תשובות לכל השאלות שלך לגבי הפרויקט למטה.

למה זה לקח כל כך הרבה זמן? ART פורסם לפני יותר משנה!

קודם כל - אנשים רבים ממשיכים לבקש תמיכת ART. ל-Lollipop יש הרבה יותר שינויים מזה, כמו מדיניות SELinux מחמירה עוד יותר, ROM של 64 סיביות ושינויי ארכיטקטורה שהייתם מצפים מהגרסה הגדולה. וכמובן ש-ART עצמו משתפר כל הזמן; יש הבדלים גדולים בין ART עבור KitKat ל-ART עבור Lollipop.

אז אחת הסיבות היא המורכבות הגדולה, שדרשה הרבה מאוד שעות עבודה למחקר, פיתוח ובדיקות.

סיבה נוספת היא שיש דברים אחרים בחיים שלי מאשר Xposed, אז היו שבועות או אפילו חודשים שבהם כמעט ולא הסתכלתי על הקוד בכלל.

האם עלינו לשכתב את כל המודולים?

לא, ה-API של Xposed כמעט ללא שינוי. Xposed ממציא את כל הפרטים, כך שלמודולים לא צריך להיות אכפת אם הם פועלים על Dalvik או ART. מודולים רבים יפעלו למעשה ללא כל שינויים, במיוחד אלה שמשנים את ההתנהגות של אפליקציות משתמש. ייתכן שיהיה צורך להתאים מודולים המכוונים להתנהגות המערכת לקוד המסגרת החדש של Android, אשר לא נגרמת על ידי ART, אלא פשוט על ידי שינויי ארכיטקטורה וקוד שמתרחשים בין כל שני אנדרואיד משחרר. המשמעותי ביותר הוא שהקוד עבור שירותי המערכת הועבר לקובץ נפרד. עבור רוב המודולים המושפעים, זה יכול להיפתר על ידי מעט refactoring (העברת קוד למקום אחר).

האם זה באמת עובד?

כן! לפחות עבורי, זה עובד מצוין במכשיר היומי שלי (Nexus 5 ב-CM12) וגם ב-Nexus 9 שלי (בתשלום על ידי XDA - תודה!). הטלפון יציב כרגיל והאפליקציות פועלות היטב. וברור שגם המודולים וחילופי הווים/משאבים שלהם עובדים מצוין, אחרת לא יהיה טעם לשחרר משהו.

אבל אז למה זו גרסת אלפא?

כי חלו שינויים עצומים מאז המהדורה היציבה האחרונה שצריכים להיבדק על ידי אנשים שיודעים להשתמש בשחזור, לברוח מלולאות אתחול ולדווח על באגים כמו שצריך. אני ממליץ בחום למתחילים לחכות עד ש-Xposed נבדק על ידי מספיק אנשים מנוסים.

ישנם גם כמה מקרי קצה שעדיין לא נבדקו, כגון חיבור לשיטות JNI (מקוריות) ושיטות שמתבצעות בזמן חיבורן.

אני רוצה להתקין אותו. עַכשָׁיו! מה אני צריך לעשות?

ודא שקראת את דברי למעלה ושאתה מכיר את החלקים הפנימיים של הטלפון שלך. ברור שאתה צריך להיות על Lollipop ROM ויש לך גיבוי טוב של הנתונים שלך. לעת עתה, אפרסם רק את גרסת ARMv7. 64 סיביות מורכבות יותר, אז בואו ננסה תחילה את הגרסה ה"קלה".

לעת עתה, ההתקנה צריכה להתבצע באופן ידני בשחזור מותאם אישית. מהבהב של קובץ ה-zip יתקין:

  • app_process32_xposed וכמה קישורי סימולציה
  • libexposed_art.so
  • libart.so וכמה ספריות בינאריות + ספריות קשורות (מבוסס על 5.0.2, משופר עם תמיכה ב-hoking וכו')
  • XposedBridge.jar (מאוחסן כעת ב- /system/framework)

גיבויים של קבצים קיימים ייווצרו באופן אוטומטי וניתן יהיה לשחזר אותם מאוחר יותר.

זה לא עובד / אני לא אוהב את זה! איך אני יכול להסיר את ההתקנה?

הדרך הקלה ביותר היא לשחזר גיבוי או להבהב את מחיצת המערכת. עדיין לא נוצר קובץ zip להסרה.

למה אתה מחליף קבצי ART במכשיר שלי? זה יותר פולשני מאשר ב-Dalvik, יגרום לבעיות ביצועים משמעותיות ויהיה לא יציב!

רשמתי כמה סיבות בנושא GitHub. כן, זה יותר פולשני, אז ניסיתי להימנע מזה במשך זמן רב, אבל מנקודת מבט טכנית ותמיכה, אני חושב שזו האפשרות הטובה יותר.

פחות ביצועים מ-ART מקורי? כנראה, מכיוון שהייתי צריך להשבית כמה אופטימיזציות כדי לאפשר סוגים מסוימים של ווים. עם זאת, זה משפיע רק על חלק קטן מכל השיטות ואפילו עבור אלו, אובדן הביצועים בהחלט אינו משמעותי או מורגש, אם אפילו ניתן למדידה. יש עדיין אלפי אופטימיזציות אחרות שבוצעו על ידי ART, וניסיתי להשבית כמה שפחות תוך מתן גמישות רבה ככל האפשר.

היציבות בסדר כמו שהוזכר לעיל. בהשוואה לגישה שבה השתמשתי עבור Dalvik (שינוי מבני הנתונים הפנימיים של זמן הריצה מ app_process), אני אפילו די בטוח שהחלפה מלאה של הספריות היא הרבה יותר אמינה דֶרֶך. יכולתי לשלב את השינויים שלי בקוד הקיים בצורה נקייה ולהשתמש מחדש בפונקציות קשורות, בעוד שהרבה פריצות והנחות יידרשו לדרכים אחרות.

האם סוף סוף תהפוך את קוד המקור לציבורי?

בטח, תוכלו למצוא אותו ב-GitHub זמן קצר מאוד לאחר יציאת גרסת האלפא, בענף נפרד לעת עתה.

האם זה אומר שגרסת אנדרואיד ישנה יותר אינה נתמכת יותר כעת?

לא! הקוד החדש מתחבר לכל גרסאות 4.x של אנדרואיד, ורק צריך להיבדק לפני גרסה מאוחדת. אבל קודם כל, אני צריך להיות בטוח שזה עובד בסדר עבור Lollipop. אולי, תמיכת ART יכולה להיות מועברת לאחור ל-KitKat, אבל זה פחות בעדיפות.

איך אוכל להודות לך על עבודתך?

אנשים רבים ביקשו דרכים לתרום כמה דולרים, אז הקמתי א תרומה עמוד עכשיו.

כמה אני צריך לתרום כדי שתוכל להוסיף תכונה X או מודול שעושה Y?

זה לא תרומה, זה לשלם למישהו בציפייה לעבודה עתידית. אני לא מעוניין במשרות פרילנסר.