Superuser בסיוע ליבה (KernelSU)

שלא כמו Magisk, KernelSU מטמיע את היכולת להשיג שורש בתוך הליבה עצמה. זה מרמה את הקליפה לחשוב ש-/system/bin/su קיים במכשיר.

שורש מאוד מיוחד לנו ב-XDA. זה מאפשר למשתמשים להשתלט על המכשירים שלהם ולהוסיף תכונות שלא תמיד זמינות, כמו הקלטת שיחות, ערכות נושא וניטור סוללה מתקדם. היו כמה יישומי שורש במהלך השנים, כשהפופולרי ביותר כנראה הוא SuperSU. עם זאת, לאחרונה, עם הצגת SafetyNet והגבלות הולכות וגדלות למכשירים מושרשים, Magisk הייתה יישום השורש לבחירה, שכן תכונת Magisk Hide שלה מאפשרת למשתמשים להסתיר ביעילות את העובדה שיש להם שורש מאפליקציות כמו נטפליקס וגוגל לְשַׁלֵם. עם זאת, היישום והפונקציונליות של Magisk Hide הם מאוד משחק של חתול ועכבר של גוגל מתקנת אותו ומגיסק עובד סביב התיקון הזה.

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

מתכנן למקרה זה, מפתח מוכר XDA zx2c4 (ג'ייסון דוננפלד), ידוע כאן ב-XDA עבור העבודה שלו על WireGuard וגילויו של א פגיעות של טוען האתחול של OnePlus, יצר Superuser בסיוע ליבה (KernelSU).

שלא כמו Magisk, KernelSU מטמיע את היכולת להשיג שורש בתוך הליבה עצמה. כאן, הוא חוטף קריאות מערכת כדי להערים על הקליפה לחשוב /system/bin/su קיים במכשיר, כאשר הוא למעשה לא קיים. לאחר מכן הוא מבצע פקודות שפועלות איתן su כאילו היו פקודות רגילות, אבל עם הרשאות שורש. תהליך זה לא יכול להיות מונע על ידי SELinux - הקרנל יכול אפילו להשבית את SELinux אם הוא רוצה - והיכולת להסתיר את סטטוס השורש ממרחב המשתמש, ולכן SafetyNet, היא כמעט בלתי מוגבלת.

עם זאת, KernelSU רחוק מלהיות שלם. כרגע, אין מנגנון בקרת גישה במקום (חשבו על Magisk Manager). בגלל זה, KernelSU כרגע מועיל ביותר למפתחי ליבה ולא למשתמשים. תהליך בניית ליבה דורש מהמפתחים לבנות מחדש ולטעון כל הזמן תמונות אתחול כדי לבדוק ולתקן באגים ותכונות, והשורש מקל על זה הרבה יותר. עם זאת, עם אפשרויות שורש כגון Magisk או SuperSU, יש לתקן את תמונת האתחול לאחר כל בנייה כדי שה-root יפעל, מה שיכול להשפיע באופן משמעותי על תהליך הפיתוח. KernelSU, לעומת זאת, נועד להיות משולב בזמן הבנייה, ללא צורך בתיקון לאחר הבנייה. על מנת להקל על שילוב KernelSU למפתחים, זמינה פקודה פשוטה בשורה אחת:

curl -LsS "https://git.zx2c4.com/kernel-assisted-superuser/plain/fetch-and-patch.sh" | bash -

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

למרות ש-KernelSU נמצא בתחילת דרכו, ויש צורך בעבודות נוספות כדי להפוך אותו למוצג במלואו, זה פרויקט מעניין. דיברנו עם מאגיסק-יוצר, מפתח מוכר XDA topjohnwu, על KernelSU, וגם הוא מצא את זה מעניין, ואמר שמכיוון ש-KernelSU פועל ברמת הליבה, הפונקציונליות של Magisk Hide תהיה הרבה יותר אמינה אם תתווסף, ושזה יהיה "דבר מהנה ליישם."

אם אתה מפתח ליבה או ROM המתעניין ב-KernelSU, בדוק את שרשור XDA וה דף הבית של הפרויקט ללמוד 'יותר.