Xposed Framework לא רשמית עבור אנדרואיד 7.1 נוגט

זמין כעת zip הניתן לפלאש שמביא את ה-Xposed Framework ל-ROM של Android 7.1 Nougat. הרוכסן עובד על ה-OnePlus 3T כמו גם בטלפונים רבים אחרים!

אחרי חודשים על גבי חודשים של המתנה, סוף סוף קיבלנו תמיכה ב-Xposed Framework עבור ROM Nougat (אם כי באופן לא רשמי). הודות לכמה מפתחים מוכשרים בפורומי ה-XDA שלנו, כעת תוכלו להתקין את ה-Xposed Framework על ROM של אנדרואיד נוגט באמצעות רכיב zip הניתן להבהב.

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

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

ישנן כרגע שלוש גרסאות זמינות לפלטפורמות שונות, כולל Xposed SDK25 ARM64

, Xposed SDK25 זְרוֹעַ, ו-Xposed SDK25 איקס86. צוות PurifyOS בדק את הגרסה החדשה הזו של Xposed עם OnePlus 3T המריץ OxygenOS מבוסס על אנדרואיד 7.1, אבל זה אמור לעבוד על טלפונים אחרים המריצים אנדרואיד נוגט ומשתמשים כבר מדווחים שהם הצליחו להתקין אותו בהצלחה על ROM שונים ו מכשירים. לדוגמה, כמה משתמשים ב-OnePlus 5 דיווחו שהוא עובד (לא מפתיע, בהתחשב בכך שהוא פועל על ה-OnePlus 3T בסדר גמור), אבל משתמש המריץ ROM מבוסס AOSP עבור ה-Samsung Galaxy S6 גם דיווח שזה עובד עבורם.

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

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


עדכון: תגובת Rovo89

המקור פותח מאחורי ה-Xposed Framework, מפתח מוכר בכיר ב-XDA rovo89, הגיב ב-Github עם מחשבותיו על ההתפתחויות האחרונות הללו.

מהניסיון שלי, אני יכול להגיד לך שאכן זה לא כל כך קשה לעשות את היסודות, אבל זה לוקח הרבה זמן לפרטים. זה כמו כלל 80-20, חוץ מזה שזה יותר כמו 95-5 בערך.

גישת ה-hooking שתכננתי עבור המהדורות הקודמות היא יציבה למדי וניתן ליישם אותה גם עבור מהדורות חדשות יותר. אני מניח שהיית צריך רוב הזמן לבדוק את כל המקומות שבהם IsProxyMethod() ו IsDirect() נקרא ולהחליט אם עליהם לשקול את משנה השיטה החדשה או לא (כלומר להשתמש בפרמטר true או שלא). אם לא עשית זאת, ייתכן שהחמצת כמה מקומות שבהם הם הציגו לאחרונה שיחות כאלה. כנ"ל לגבי שיטות כמו InstallStubsForMethod(), שצריכים לפעול בשיטה המקורית גם כשהם נקראים לשיטת הוקדה. תצטרך לחפש מקומות נוספים שבהם זה יכול להיות רלוונטי. זה עדיין בטווח של ימים, אבל אם אתה מתגעגע לעשות את זה, אתה עלול לראות קריסות לא ברורות או התנהגות שגויה שקשה מאוד לנפות באגים.

חוץ מזה, נקטת בגישה שבה הוקס יעבדו כראוי רק עבור ROMs אשר מורכבים לחלוטין מאפס. ב-ROMs במלאי ואפילו ברוב ה-ROMs המותאמים אישית (שלא כללו את היציאה שלך בזמן הבנייה), כמו גם עבור כל אפליקציות שהמכשיר עשוי להרכיב קודם לכן. אז תצטרך להתחיל הכל מחדש עם מכשיר מחולק שמריץ ROM מיוחד. אם לא, אז אופטימיזציות (לדוגמה, inlining) עשויות למנוע קריאה לשיטה כלל, ומכאן שה-hooks לא יעבוד. הדבר הגרוע ביותר בזה הוא שההתנהגות המדויקת תהיה תלויה ב-ROM, או אפילו איך המשתמש משתמש במכשיר (כעת, כשהאפליקציות מורכבות על סמך פרופילים). מודולים ייכשלו באופן אקראי ומפתחי המודול יתהו מה הם עשו לא בסדר (תשובה: כלום). אם לא כל התנאים המוקדמים מתקיימים, זה ממשק API די לא אמין. תארו לעצמכם שגוגל פרסמה עדכון שבו OnClickListener של כפתור לא נקרא לפעמים, אלא אם הידור של ה-ROM שלך מאפס... עבורי באופן אישי, זו מגבלה גדולה.

הוא ממשיך:

זה לא הגיוני בכלל לפרסם עם זה ZIP הניתנים להבהב, מכיוון שהיציאה מיועדת רק להידור מחדש של ROM מאפס.

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

בדיוק בדקתי את יומן ה-Git שלי והיה לי את החיבור הבסיסי (כמו בנמל זה) מוכן באוקטובר. מאז, עבדתי על הסרת המגבלות. כדי להפוך אותו לאמין יותר ב-ROM שהידור מראש, יכולתי להעביר גם את חלק ההידור מחדש, אולם זה עדיין לא אידיאלי. כפי שהוסבר איפשהו למעלה, יש לנו JIT כעת, שמאפשר לנו לשמור על כל האופטימיזציות, רק מבטל (ואולי מרכיב מחדש) את השיטות המושפעות ישירות מה-hoking. זה די מאתגר, מכיוון שזה יותר מסתם העתקה והדבקה. ועד שזה לא נעשה, אני לא אפרסם כלום. 9 חודשים בשביל זה (עד עכשיו) זה באמת הרבה זמן, אני יודע, אבל היי, זה הזמן הפנוי שלי ולמשל. עקב מעבר ל דירה חדשה, לא יכולתי לעבוד על Xposed במשך כמה חודשים (!) בכלל, והיה לי זמן מוגבל מאוד אחרת.

עלינו להבהיר שההתפתחויות האחרונות הללו אינן ה-"Xposed" האמיתי שכולכם מכירים ו אוהב, אבל מבחינה פונקציונלית הם מאפשרים לך להשתמש בכמה מודולי Xposed Framework עכשיו באנדרואיד נוגט. לא נקבע בך שלא חיכית לגרסה הרשמית, היציבה והתואמת יותר של ה-Xposed Framework עבור אנדרואיד נוגט, אבל אנחנו רוצים להבהיר שהאיטרציה הזו היא רק אמצעי עצירה שנועדה לספק את הצרכים של חלק מהמשתמשים נכון עַכשָׁיו. סביר להניח שזו לא הדרך שבה יטופל Xposed בעתיד.


הורד Xposed Framework לא רשמית עבור נוגט בפורומים של XDA