המהדורה האחרונה של אנדרואיד Oreo של גוגל כבר כוללת תמיכה מובנית בנושא עיצוב, ובזכות מנוע הנושא Substratum היא תגיע בעוד שבוע.
עדכון 09/13/17: התוסף Andromeda עבור Substratum המאפשר ערכות נושא מותאמות אישית במכשירי אנדרואיד אוראו ללא שורש שוחרר כעת. ראה מאמר זה לפרטים נוספים. המאמר המקורי יישאר למטה.
עם כל הוצאה חדשה ממערכת ההפעלה אנדרואיד של גוגל, יש פחות סיבות עבור רוב המשתמשים לעשות זאת שורש המכשירים שלהם. עם זאת, בין המשתמשים הנותרים שעדיין בוחרים לבצע רוטציה של המכשירים שלהם, אחת הסיבות הנפוצות ביותר היא לאפשר תמיכה בערכת נושא כלל מערכת. בדרך כלל, זה מנוהל באמצעות התשתית מסגרת נושא מאז ה פטירתו המצערת של מנוע הנושא CyanogenMod. עם הזמן, ה צוות מאחורי Substratum עבד קשה כדי לכלול תמיכה במכשירים נוספים על ידי שילוב תמיכת Substratum ברמת ROM כך שהוא יכול לפעול ללא גישת שורש. ועכשיו, הצוות לקח את הפרויקט מעבר למה שכל אחד מאיתנו יכול היה לדמיין על ידי הבאתו תמיכה מלאה בערכת נושא כלל המערכת ללא שורש עבור כל מכשיר אנדרואיד אוראו.
צילומי מסך מציגים ערכת הנושא השחור של אנדרואיד אוראו של סאי פועל על Google Pixel לא מושרש באנדרואיד אוראו 8.0.0
לתת לך מושג איך בדיוק התפתחות מדהימה זו, קחו בחשבון שהדברים הבאים יהיו אפשריים כעת ללא שורש:
- נושאים של ה Android Framework וממשק מערכת אנדרואיד, כמו גם כל יישומי מערכת אחרים. (הרבה מכם הולכים לעשות זאת אהבה סוף סוף יש נושא אפל זמין!)
- נושאים של כל יישום של צד שלישי
- גופנים מותאמים אישית עבור יישומי צד שלישי
- שינויים רבים אחרים כגון מוד מרכז שעון בשורת המצב
הרשימה עוד ארוכה! לתשתית יש רשימה נרחבת של נושאים זמינים שתומכים במסגרת (כולם נתמכים בגרסה החדשה הקרובה של Substratum עבור אנדרואיד 8.0), קהילה פעילה על Google+ ושלנו פורומים, ובהתחשב בהתפתחות זו התמיכה רק תגדל!
אנדרואיד אוראו ושירות מנהל השכבות
מאז שגוגל התאגדה תמיכה מקורית ב-Runtime Resource Overlay של Sony מנוע נושא (RRO) באנדרואיד 6.0 מרשמלו, חיכינו כדי ש-Google תספק ממשק מובנה וכן ממשקי API ציבוריים שבהם מפתחים יכולים להשתמש לעיצוב הן ליישום מסגרת המערכת והן ליישומי צד שלישי. אבוי, מהדורת אנדרואיד נוגט הביאה מעט חדש לטבלה מאז שה-RRO של סוני נוספה לפרויקט הקוד הפתוח של אנדרואיד (AOSP).
אבל הודות לעבודה החרוצה של המהנדסים בסוני מובייל, מנוע הנושא RRO התפתח בסופו של דבר למה שמכונה Overlay Manager Service (OMS), שעליו מבוססת Substratum. סוני הייתה החלוצה בכל הנוגע לפתרון עיצוב נושאים בקוד פתוח, אך מאז שמנוע הנושא OMS שלהם התקבל ל-AOSP סביב בזמן המהדורה האחרונה של אנדרואיד 7.1, הדרך היחידה למשתמשים במכשירים שאינם של סוני לנצל את מנוע הנושא היא באמצעות התאמה אישית ROM.
זה השתנה באנדרואיד 8.0. כאשר Substratum שוחרר בתחילה עבור כמה תצוגות מקדימות למפתחים של Android O, המפתחים של Substratum הבינו את זה תמיכה מלאה עבור של סוני OMS היה זמין. משמעות הדבר היא שמשתמש יוכל להתקין ערכת נושא קיימת הנתמכת ב-Substratum והוא יפעל במלואו במכשירי אנדרואיד אוראו מבלי לדרוש תיקוני ROM. עם זאת הייתה רק בעיה אחת: תהליך הפעלת ערכת נושא של Substratum מותקן דרש גישה לשורש, או כך לפחות חשבו.
תמיכת ערכות נושא תשתית חסרת שורשים ורחבת מערכת עבור אנדרואיד אוראו
בעוד שהמפתחים שמים את עבודתם בשקט על הנושא של קבלת משתמשי אנדרואיד אוראו פתרון נושא חסר שורש לחלוטין מאחור צורב, חפרנו באופן עצמאי בכל תצוגה מקדימה של מפתחי Android O ומצאנו עדויות למנוע הנושא שמשחק, אמנם זיהינו אותו בטעות כמבוסס על ה-RRO הישן יותר ולא על ה-OMS החדש של סוני. גוגל אפילו הקניטה את הקהילה לגבי תמיכה בנושאים ב-a AMA ממוקד מפתחים ב-Reddit, והצהיר שעדיין יש כמה מכשולים שצריך להתגבר לפני שניתן יהיה לבנות פתרון עיצוב מלא באנדרואיד.
לא מרוצים מהתשובה הזו, רצינו לראות עד כמה הלכה גוגל בקבלת תמיכת ערכות נושא עבור אנדרואיד אוראו. כדי לעשות את זה, התעמקתי קוד המקור של אנדרואיד 8.0 ברגע שהמהדורה הסופית ירדה, וגילתה את קיומן של פקודות מעטפת ADB שיכולות להפעיל או להשבית שכבות-על, שסופר XDA אדם קונווי סיקר אתמול.
בתחילה, לא התרשמתי יותר מדי מהממצא, שכן למיטב ידיעתי אז זה היה חסר תועלת מבחינה פונקציונלית שכן אני ועמיתיי התרשמנו שהתקנה ערכת נושא עדיין דרשה גישת שורש מכיוון שקובצי ערכת הנושא יצטרכו לעבור לתיקיה שאינה נגישה למרחב המשתמש (ב-/system/vendor/overlay, כך RRO תפקד). ניקולס צ'ום עצמו, אחד המפתחים המובילים מאחורי Substratum, הגיב על הפוסט שלנו שהוא היה מודע לקיומן של הפקודות הללו במשך זמן רב. כבר משתמש בו עבור בניית Android O.
עם זאת, אדם אחד ראה הזדמנות מתעוררת לאחר שפרסמנו את המאמר שלנו אתמול. XDA משלו מאוד ג'ף קורקורן, היזם מאחורי הבית שלנו אפליקציית XDA Labs, הבינו שיש פיתרון פוטנציאלי לגרום לממשק שורת הפקודה המקורי של אנדרואיד אוראו ל-OMS לעבוד ללא שורש. זה היה כרוך בשיטה שנוצלה על ידי הֶלִיוּם, פתרון הגיבוי הפופולרי ללא שורש, ולאחרונה על ידי חלופת הקוד הפתוח Greenify הידועה בשם ברבנט.
הרשאות מוגברות באמצעות תסריט
בדרך כלל, ה"שכבת-על cmdניתן להפעיל פקודות שגוגל הוסיפה לגרסת Oreo רק דרך מכשיר עם הרשאות בסיס או דרך מכשיר קשור למחשב המפעיל את מעטפת Android Debug Bridge (ADB). קומץ מפתחים חכמים, כמו מפתחי Helium ו-Brevent, הבינו במהלך השנים כיצד למעשה להעלות את ההרשאות של אפליקציה הפועלת בטלפון כך שתתאים לזו של ADB צדף. בכך, האפליקציה יכולה לשלוח פקודות שבדרך כלל לא יכלה בגלל הרשאות מוגבלות. במקרה של Substratum, זה אומר היישום יכול להתקין ואז להפעיל או להשבית ערכות נושא של Substratum ללא שורש.
ההבנה הזו הייתה א גדול פריצת דרך שהתגלתה רק אתמול בערב. במהלך כמה שעות, ניקולס (בעזרת ג'ף) הצליח ליצור גרסת אלפא מהירה של מנהל ערכות נושא Substratum חסר שורש עבור מכשירי אנדרואיד אוראו. וזה עובד - אבל עם כמה סייגים.
אזהרות של תמיכה בתשתית חסרת שורשים
התהליך הנדרש על מנת להעניק הרשאות מוגברות ל- Substratum ADB shell ידרוש שימוש ב- a מאוד פשוט וקל משקל יישום שולחן העבודה (או רק פקודת מעטפת ADB אם אתה יודע מה אתה עושה). לאחר ההענקה, Substratum יתפקד כפי שהיית מצפה כשהיא מסוגלת להתמודד עם ניהול כל ערכות הנושא של Substratum המותקנות. כל ערכת הנושא שתתקין תישאר מותקנת עד שתבחר להסיר אותו שוב דרך Substratum.
עם זאת, הפריבילגיות שמוענקת לתשתית הן חולפות, שכן הן אובדים כאשר המשתמש מבצע אתחול מלא (למרבה המזל, אתחולים רכים של ממשק המשתמש של המערכת אינם מאבדים את ההרשאה). משמעות הדבר היא שתצטרך להפעיל את תוכנית שולחן העבודה שוב אם הפעלת מחדש את הטלפון שלך וברצונך להשתמש ב-Substratum כדי להוסיף, להסיר או לשנות ערכת נושא. אני רוצה לחזור על זה שוב כל ערכת הנושא שתתקין תישאר מותקנת גם אם תבצע אתחול מחדש, אז זה אומר שאם תרצה רק לשנות כמה ערכות נושא רק מדי פעם, זה אמור להיות מושלם עבורך. אתה אמור להיות מסוגל גם להחליף ערכות נושא מתפריט ההגדרות, כמו ה אפשרות "נושא" של תצוגה מקדימה של מפתחים תחת הגדרות תצוגה מזהה אז ערכות נושא מותקנות, ומאפשר לך לעבור ביניהם
לבסוף, הדבר האחרון שאני צריך להזכיר הוא משהו שנראה מובן מאליו ברגע שאתה חושב על זה, אבל בהתרגשות שלך לשמוע חדשות אולי שכחת. המכשיר שלך עדיין לא מושרש. זה אומר שאתה לא יכול לגעת או לשנות קבצים שדורשים לחלוטין גישת שורש כדי לערוך, גם אם ערכת הנושא של Substratum שהתקנת הבטיחה לשנות משהו. מצטערים, אבל למרבה הצער זה אומר שאתה לא יכול להחיל שינוי גופן בכל המערכת להחזיר את האימוג'ים של הכתם, אם כי כפי שהוזכר בהתחלה, זה הוא אפשרי עבור ערכת נושא של Substratum כדי לשנות את הגופנים של יישומים בודדים.
נחיצות התשתית
בוא נוציא פרט חשוב מהדרך עכשיו. מתי זה מגיע? כפי שהכותרת מציינת, הזמינות הציבורית הראשונה של התשתית חסרת השורש עבור מכשירי אנדרואיד 8.0 כגון Google Nexus 5X, Google Nexus 6P, Google Pixel ו-Google Pixel XL צריכה להיות תוך שבוע אחד. זה לא ערובה בכל אמצעי, שכן דברים יכולים להשתנות בתהליך הפיתוח שעשויים לדרוש השקעת זמן נוספת, אבל מאז OMS כבר תמיכה מלאה ב-AOSP, כל מה שצוות Substratum עובד עליו כעת הוא ההתממשקות בין אפליקציית Substratum לבלתי שורשית מכשירים.
הבא: האם זה יהיה בחינם? לא. תשתית עבור מכשירי אנדרואיד אוראו ללא שורש תהיה א אפליקציה בתשלום. אני לא יכול להגיד לך כמה זה יעלה מכיוון שניקולס עדיין לא החליט על מחיר, אבל תהיו בטוחים שהמחיר יהיה הוגן בהתחשב בשווי של מה שתקבלו. עד לנקודה זו, Substratum היה זמין בחינם עבור מכשירים רבים, אז שקול לתמוך בסוג זה של פיתוח על ידי תמיכה תחילה ב- Team Substratum. אתה יכול לחכות שגוגל תשחרר בסופו של דבר את הנושא האפל שתמיד רצית (הא, טוב אחד), או שאתה יכול לזרוק כמה גרושים כדי לתמוך בפיתוח עצמאי שאנשים רבים לוקחים עבורו מוענק.
עדיין לא משוכנעים בערכו? אתה יכול לְנַסוֹת התקנת ערכות נושא של Substratum במכשיר 8.0 לא מושרש משלך. למעשה, זה בדיוק מה שעשינו למעלה. כמובן, נעזרנו במעט מניקולס כדי לעשות זאת. אם ברצונך להתקין ערכת נושא קיימת של Substratum מחנות Google Play, הנה השלבים הכלליים:
- הורד והתקן את קובץ ה-APK במכשיר שלך.
- חלץ את התוכן והרכב כל שכבת-על לקובץ APK נפרד עבור כל אפליקציה שאתה רוצה שתהיה לנושא
- התקן כל קובץ APK של שכבת-על בודדת שהידור ידנית בשלב מס' 2
- עבור כל APK ו-APK שתתקין, הפעל את הפקודה הבאה כדי להפעיל אותה:
cmd overlay enable
- אם ברצונך לשנות את העדיפות של שכבות-על, השתמש ב:
cmd overlay set-priority
PARENT|lowest|highest - רשום את כל שכבות העל המותקנות שלך עם:
cmd overlay list
- הסר שכבות-על שאינך רוצה בהן:
cmd overlay disable
אם אתה באמת רוצה להשתמש בשורת הפקודה כדי לנהל ערכות נושא, היה אורח שלנו! באופן אישי, נתקעתי לעבור את שלב מס' 2. התשתית לא משתמשת באיזו שיטה נסתרת שלא תוכל להמציא לבד, אבל היא עושה את זה רָחוֹק יותר קל לך לנהל. כשאפשר לעשות משהו ידנית אבל אפליקציה יכולה לעשות את זה בשבילי הרבה יותר בקלות, אני נוטה פשוט לתת לאפליקציה לעשות את העבודה שלה. אבל זה תלוי בך.
באופן אישי, אני ממש ממש מתרגש לראות לאן זה הולך. עבור כל המכשירים שעדיין אינם תומכים במערכת ניהול ערכות נושא מובנית (כגון מכשירי מוטורולה או OnePlus), כעת יש לך סיבה נוספת לצפות לה בעדכון אנדרואיד 8.0. לאלו מכם ברי המזל שכבר לטעום את האוראו המתוק הזה, יש לכם למה לצפות בעוד שבוע.
נ.ב. משתמשי סמסונג, האם הכרתם את המכשירים שלכם כבר תומכים בנושאי Substratum בלי צורך בשורש?
P.P.S האם אתה מפתח המעוניין ללמוד עוד על Substratum? בדוק את זה של ניקולס מצגת מצגת מדהימה כאן!