לאחר המתנה ארוכה, מפתח ה-Xposed Framework הודיע רשמית שהפרויקט תומך כעת באנדרואיד נוגט. התקן את מודולי Xposed עכשיו!
ככל שהמערכת האקולוגית של אנדרואיד התבגרה עם השנים, פחות ופחות משתמשים מוצאים סיבות מדוע כדאי להם לבצע רוטציה של המכשיר שלהם. יש מגמה הולכת וגוברת של משתמשים שבוחרים להישאר בקושחה של המניות, בין אם בגלל שהם מוצאים את החוויה משביעת רצון או שלא רוצים לשחק משחק חתול ועכבר עם ה-API של SafetyNet של גוגל. אבל אם שאלתם משתמש בתחילת 2016 מדוע הוא שורש את הטלפונים שלו, אולי הסיבה מספר אחת שניתנה הייתה כדי שיוכלו התקן את Xposed Framework. זה היה יותר משנה מאז אנדרואיד 7.0 נוגט שוחרר לראשונה, אבל ההמתנה הארוכה הסתיימה סוף סוף: המסגרת הרשמית של Xposed עבור Android Nougat זמינה סוף סוף.
במהלך השנה האחרונה, XDA מפתח מוכר בכיר rovo89, המפתח הראשי של Xposed Framework, סיפק כַּמָהעדכונים על ההתקדמות של Xposed Framework עבור אנדרואיד נוגט. עבור חלק, ה ההמתנה הייתה נסבלת בעיקר בשל המספר העצום של פונקציונליות נוספת שמציעה ה-Xposed Framework אנדרואיד מרשמלו. אבל רבים אחרים המשיכו לחיים ללא Xposed במכשירים שלהם.
ראינו הצצה של התרגשות מחודשת בפרויקט כאשר היזם abforce פרסם an תת-מודול ART עבור AOSP 7.1.2, אבל כפי ש-GermainZ שלנו מציין עדיף היה לך לחכות למסגרת הרשמית של Xposed שחרור כיישום של abforce חייב את המסגרת לשילוב ב-ROMs מותאמים אישית. יתר על כן, היישום הלא רשמי הזה לא היה שלם, מה שהוביל להתנהגות לא עקבית או באגית עם Xposed מסוימים מודולים.
בעוד ש-abforce עשה עבודה נהדרת כדי לגרום ל-Xposed הלא רשמי שלו לעבוד על אנדרואיד 7.1 נוגט, היישום שלו יצא נגד החזון של rovo89 עבור Xposed - שזה צריך להיות פתרון יציב המספק חוזה אמין וקל לשימוש עבור משתמשים ומפתחים דוֹמֶה. מה שאנו מתכוונים בכך הוא שלא רק שהמודולים צריכים לעבוד ללא בעיה עבור המשתמשים, אלא גם האופן שבו מודולים מוגדרים up צריך להיות עקבי בין המשתמשים כך שמפתחים יידעו אם מודול Xposed אשם באפליקציה או לא לְהִתְרַסֵק.
אנחנו כבר לא צריכים לדאוג לגבי בעיות כמו rovo89 (לאחר קצת עזרה מהמפתח המוכר של XDA וואנם) מוכן כעת לשחרר עדכון רשמי ל-Xposed Framework and Installer-מביא תאימות לאנדרואיד 7.0/7.1 נוגט. זה אומר שלא תצטרך להתקין ROM מותאם אישית או להתעסק עם גרסאות לא יציבות מהבהבות תהנה מ-Xposed - פשוט שורש את הטלפון שלך והתקן את האפליקציה העדכנית ביותר של Xposed Installer (בקישור למטה) ו ה Xposed Installer יעשה עבורך את הקסם של התקנת Xposed.
מתקין Xposed גולש במאגר המודולים
זה עשוי להיראות קצת מאוחר בחלק מהמוחות, במיוחד מכיוון שהמהדורה הזו מגיעה יותר מחודש לאחר השקת Android 8.0 Oreo. זכור שלמעט מאוד מכשירים תהיה גישה לגרסה יציבה של אנדרואיד אוראו במשך חודשים רבים. אנדרואיד אוראו הוא רק ב 0.2% מכל מכשירי האנדרואיד (לעומת ~18% בנוגט) לפי הסטטיסטיקה העדכנית ביותר של גוגל, אבל רבים מהמשתמשים שלנו הם מהסוג שאוהב התקנת ROM מותאמים אישית כדי להישאר בקצה המדמם.
למרות שגם אם תתקין א יציאה לא רשמית של אנדרואיד 8.0 זמין במספר עצום של מכשירים בפורומים שלנו, רבים מהיציאות הללו אינן סטטוס נהג יומי. אז אלא אם כן אתה מוכן להוציא מאות דולרים עבור חדש לגמרי Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, או מכשיר קרוב כמו ה Huawei Mate 10, אז כנראה תוכל לסחוט כמה חודשים של שימוש מתוך Xposed Framework באנדרואיד נוגט.
אם זה נשמע כמוך, המשך לשרשור הרשמי של הפורום עבור מתקין Xposed ו-zips של המסגרת כדי להפעיל אותו במכשיר Android Nougat שלך.
הורד את Xposed Installer v3.1.2 (קובץ מצורף)
Xposed Installer עבור נוגט 7.0 (SDK24) הורדה
Xposed Installer עבור נוגט 7.1 (SDK25) הורדה
עבור המשתמשים החדשים הרבים יותר שאינם מכירים היטב למה ניתן להשתמש ב-Xposed Framework או כיצד היא פועלת, אנו יסביר בקצרה את ה-Xposed Framework להלן, למה אתה צריך להתרגש ומדוע הפיתוח על זה לקח כל זמן עשה.
למה להתקין את Xposed Framework?
רוצה לקבל תכונות ROM מותאמות אישית מבלי להבהב ROM מותאם אישית? האמא של כל מודולי ה-Xposed עבור כוונון ה-ROM שלך, המכונה GravityBox, האם אתה מכוסה. רוצה להתאים אישית את הגדרות התצוגה על בסיס אפליקציה? לְנַסוֹת הגדרות אפליקציה. מה דעתך על התאמה אישית של יישומים מסוימים כמו Hangouts? או לשנות את אינסטגרם כדי שתוכל הורד כל פוסט שאתה אוהב?
Xposed נותן למפתחים את היכולת לשנות פחות או יותר מה שהם רוצים- מכוונים בעיקר ליישומים בודדים, אך ניתן לשנות אפילו תכונות כלל מערכתיות. הדוגמאות שמנינו הן רק קצה הקרחון. מספר התכונות הנוספות שאתה יכול להוסיף או האפליקציות שאתה יכול לשנות הוא מדהים - פשוט חפש דרך מאגר Xposed Module הרשמי לראות בעצמך. זכור כי ייתכן שיהיה צורך לעדכן מודולים מסוימים עבור מהדורה חדשה זו ועבור תמיכת נוגט, אז הקפד לבדוק לפני התקנתם ב-Nougat ROM שלך!
כיצד פועלים מודולי Xposed?
התמצית היא ש-Xposed Framework מאפשר למודולים לעשות זאת "תחבר" לשיטות Java של כל יישום- בין אם זה מותקן על ידי משתמש או יישום מערכת. Xposed מאפשר למודולים לבצע שיטות משלהם לפני, במהלך או במקום השיטות המקוריות של יישום היעד.
לדוגמה, דמיינו שיטה המשמשת באפליקציית Gmail שמפרסמת התראות על הודעות דוא"ל חדשות. כברירת מחדל, השיטה יוצרת הודעה חדשה עם לחצנים לארכיון/מחיקה או להשיב לדוא"ל. ניתן ליצור מודול Xposed להתחבר לשיטה זו ולהוסיף כפתור חדש כגון "סמן כקריאה". (כן, יש כבר מודול בדיוק בשביל זה.)
האמור לעיל הוא פישוט יתר של התוצאה הסופית של מה ש-Xposed Framework מאפשר למודולים שלה לעשות. המסגרת עצמה מורכבת להפליא וגורמת לה לעבוד כמעט אוניברסלית במכשירים שורשיים - ללא צורך ב-ROM מותאם אישית - זו הסיבה שלקח ל-Xposed עבור אנדרואיד נוגט כל כך הרבה זמן להשלים.
למה פיתוח Xposed לוקח כל כך הרבה זמן?
הקסם שמאחורי Xposed - מה שמאפשר למודולים להתחבר לשיטות של אפליקציות אחרות - דורש ידע מעמיק כיצד Zygote וה- זמן ריצה של אנדרואיד (ART) עובד. דרישות אלו כבר מונעות ממספר רב של אנשים לתרום לפרויקט, אך הבעיה מחמירה בשל העובדה rovo89 היה התורם העיקרי ל-Xposed ב-5 השנים האחרונות.
זו הסיבה שהקריאות למקור פתוח השינויים שבוצעו ב-Xposed מאז הפרסום האחרון של Xposed נדחו. זה יוזמתו, והוא הכי טוב בהבנתו ובשינויו, אז הוסיפו עוד כוח אדם לפרויקט בשלב כל כך מאוחר יכול פשוט לעכב את הפרויקט עוד יותר.
בנוסף, אם rovo89 עדכן ברציפות את המקור שלו, הוא היה מודאג שמישהו ייקח את הקוד הלא גמור כדי לבנות מסגרת Xposed מתפקדת למחצה ללא ה-Xposed Installer האוניברסלי שילווה אותו. (הדבר המדויק הזה קרה בכל מקרה עם ההטמעה של abforce, והבלגן שנוצר בשיטות התקנה שונות הצדיק את ההיסוס של rovo89.)
לפיכך, הדבר הטוב ביותר שיכולנו לעשות היה לתת ל-rovo89 זמן לעבוד על פרויקט חיית המחמד שלו. Xposed אינו עבודתו המלאה, או אפילו חלקית. זה פשוט תחביב, כזה שהוא עשה לטובת הקהילה במשך 5 שנים. פרויקט מורכב כמו Xposed דורש זמן לעבוד ולאחר מכן בדיקה - זמן שלא היה לו לעתים קרובות בגלל התחייבויות אחרות שלו. התקדמות היה נעשה במהלך השנה האחרונה, בדיוק כפי ש-rovo89 תיעד בכמה מהעדכונים הציבוריים שלו בנושא עד שלבסוף הן ה-Xposed Framework עצמו והן ה-Xposed Installer מוכנים לשחרור.
מה עשה rovo89 כדי לגרום ל-Xposed לעבוד בנוגט?
מהדורות חדשות של אנדרואיד מביאות לפעמים שינויים באופן שבו ART עובד, מה שעשוי לדרוש עיבוד מחדש של חלקים מ-Xposed. אנדרואיד 7.0 נוגט הציגה מהדר Just-in-Time עבור ART כדי לעזור לשפר את ביצועי זמן הריצה של יישומים, למשל. אבל ה-Xposed Framework הלא-רשמית של abforce פשוט משבית אופטימיזציות רבות של ART כך שחיבור השיטה יכול לעבוד בצורה נכונה.
לעומת זאת, היישום של rovo89 שומר את כל האופטימיזציות של ART באנדרואיד נוגט על ידי קומפילציה מחדש של המתקשר של השיטה באמצעות JIT ועדיין שהשיטה תוקפת במקום. זה אומר שאתה יכול ליהנות מהיתרונות של מודול Xposed מבלי להקריב את הביצועים על ידי השבתה בכוח של אופטימיזציות ART.
לפרטים נוספים על מה ש-rovo89 עשה כדי להשיג סוף סוף שיטת חיבור אמינה ב-Xposed עבור אנדרואיד נוגט, אנו ממליצים לקרוא את ההצהרה שלהלן שהוא סיפק לנו.
הצהרה מלאה מאת rovo89
הליבה של Xposed היא כמובן היכולת שלו להתחבר לשיטות Java, כלומר לתת למודולים לבצע קוד לפני, אחרי או במקום שיטות אלה. כמעט כל פונקציונליות אחרת מבוססת על זה, אז זה קריטי שהיא תמיד תעבוד כמצופה. הקונספט הכללי זהה מאז שהמצאתי את Xposed לפני חמש שנים, זה מצריך שינוי נקודת הכניסה של השיטה. זה מתחיל להיכשל כאשר נקודת הכניסה לא נבדקת במהלך הביצוע - וזה למעשה המקרה של חלק מהאופטימיזציות ב-ART.
דוגמה אחת היא כאשר נקודת הכניסה ידועה כבר בזמן ההידור, אז המתקשרים יכולים לקפוץ ישירות לכתובת זו מבלי לחפש אותה. דוגמה נוספת היא אינליין. שקול את הדוגמה הזו:
ART חכם מספיק כדי לשים לב ששיטת ה-twoce() פשוטה מאוד ולכן מטמיעה את ההיגיון ישירות בשיטת doSomething(), כך:
אתה עדיין יכול להתחבר לשיטת twoce() אבל היא לא תיקרא מ-doSomething() יותר בזמן הריצה, וכך גם לא תהיה לך שיחה חוזרת. ART הוא אפילו יותר חכם: הוא מבין שקסם הוא תמיד 42 ולכן התנאי לעולם לא יכול להתקיים. אז כל שיטת doSomething() היא למעשה No-op:
בגרסאות קודמות, Xposed נהג להשבית את האופטימיזציות הללו לחלוטין ואילץ הידור מחדש של הכל. זה בא עם כמה חסרונות. קודם כל, מפתחי ART עושים עבודה נפלאה במקסום הביצועים שלהם אופטימיזציות, והשבתתן מובילה חלקית בהכרח לביצועים פחותים (אף פעם לא מדדתי כמה אמנם). לאחר מכן, ההידור עצמו לא תמיד קל וגרם לי להרבה כאבי ראש, במיוחד בהתחלה. לבסוף, הקבצים המחודשים תופסים מקום, בנוסף לקבצים המקודמים ב- /system.
גם הגרסאות הלא רשמיות של נוגט משביתות את האופטימיזציות הללו, אך הן אינן מאלצות את ההידור מחדש (מכיוון שהיציאה נוצרה במקור כדי להשתלב ב-ROM). לכן, ייתכן שלא יבוצעו ווים לפעמים.
עם הגרסה הרשמית, תוכל לשמור על הקוד הממוטב ועדיין יהיו לך ווים אמינים. איך זה פועל? ובכן, Xposed מקליט את כל השיחות שמתבצעות. זה קורה בזמן הידור של חבילות APK, או במעבר נפרד לקוד מותאם מראש. הנתונים הנוספים הללו אינם תופסים הרבה מקום, אך הם מאפשרים ל-Xposed לגלות היכן עשויה להיות מוטבעת שיטה מסוימת. אז כאשר מתחברת שיטה, כל המתקשרים שלה לא יהיו אופטימליים, כלומר הקוד שלהם לא ישמש יותר. זה מבטיח שההתקשרות חזרה בהוק תיקרא בהחלט. ואם המתקשר נמצא בשימוש רב, הוא פשוט יקומפילד מחדש עם JIT, הפעם מתוך ידיעה שהשיטה מחוברת ולכן חלק מהאופטימיזציות לא חלות. המשמעות היא שההשפעות של שיטות החיבור מצטמצמות למינימום. יש!
עכשיו קדימה נסה את זה. הקפד להשתמש ב-Xposed Installer 3.1.2, מכיוון שהיה צורך לשנות את נתיב התצורה כדי לתמוך בהצפנה מבוססת קבצים.
קרא עוד
סיכום
אנו מקווים שאתה מתלהב כמונו לגבי השחרור של Xposed עבור אנדרואיד 7.X נוגט. ההמתנה הייתה ארוכה, אך בלתי נמנעת בהתחשב במורכבות העצומה של Xposed. אם אתה עדיין מבולבל לגבי מה זה Xposed או איך זה עובד, אל תדאג. מעט מאוד אנשים (כולל אותנו) באמת מבינים איך זה עובד. מפתחים כמו rovo89 עושים כמיטב יכולתם באריזת העבודה שלהם כך שאתה לא באמת צריך להבין מה קורה מתחת למכסה המנוע.
האם אתה אוהב את ה-Xposed Framework? שקול לתרום ל-rovo89 על העבודה המדהימה שהוא עושה. אם אתה חושב שיש לך את מה שנדרש כדי לתרום לפרויקט, עיין בדף GitHub של rovo89 למטה.
תרום ל-rovo89
תרום ל-Xposed
מחפש מודולי Xposed? בדוק את תת-הפורום Xposed Framework Module שלנו או הורד את היישום XDA Labs ועיין באוסף מודולי Xposed שלנו.
פורום Xposed Modules
הורד את XDA Labs
אנדרואיד אוראו התקדמות
למקרה שאתה תוהה, הנה ההתקדמות בהשגת Xposed עבור Android Oreo:
כבר התחלתי לעבוד על אנדרואיד 8.0. יש כמה תכונות שפה חדשות שאצטרך להסתכל עליו, אבל הרעיון הכללי עדיין צריך לעבוד. זה כולל את כל העבודה על ביטול קוד הידור של כל מתקשר כאשר מתחברת שיטה, מה שלקח את הזמן הרב ביותר כשעבדתי על נוגט. אז אני באמת בטוח שהפעם אהיה הרבה יותר מהיר. אנדרואיד 8.1לא אמור להיות שונה בהרבה, אז אני לא מצפה לעבודה נוספת עבורו.