תוכן עניינים:
אנחנו אוהבים לקבל את השאלות שלך. זה תמיד דבר טוב כשאנחנו יכולים לעזור אחד לשני, ואנחנו לומדים דברים בעצמנו כשאנחנו מחפשים את התשובות. אמנם איננו יכולים למצוא זמן לענות על כולם, אך לפעמים עולה שאלה מסוימת שמגיעה לה תשובה מפורטת.
"מה המשמעות של שורש?" היא אחת מאותן שאלות. הרעיון עשוי להיות פשוט עבור חלק מאיתנו, אך עבור אנשים רבים שלא בילו זמן להתעסק באנדרואיד או במערכת הפעלה אחרת מבוססת הרשאות, זה משהו לשאול שאלות עליו. אני הולך לנסות לענות לכולם כמיטב יכולתי.
הרשאות
לפני שאנחנו מגדירים שורש, חשוב להבין מדוע הוא קיים ואיך הוא עובד. הסיבה לכך היא שאנדרואיד משתמש בהרשאות (הרשאות מבוססות לינוקס, ליתר דיוק) במבנה הקבצים. לכל קובץ, כל תיקיה וכל מחיצה יש הרשאות. הרשאות אלה מחליטות מי יכול לקרוא קובץ (להסתכל או לגשת לתוכן מבלי לשנות אותו), לכתוב לקובץ (להיות מסוגל לשנות את תוכן הקובץ הזה, או ליצור קובץ חדש בתוך תיקיה או מחיצה) ולהוציא לפועל קובץ. (הרץ את הקובץ אם זה סוג שיכול לפעול, כמו אפליקציה). זה נעשה על סמך משתמשים והרשאות - למשתמשים מסוימים יש גישה, בעוד שמשתמשים שאין להם הרשאות מתאימות חסומים מכניסה.
כשאתה מגדיר את הטלפון לראשונה ומפעיל אותו בפעם הראשונה, מוקצה לך מזהה משתמש. אם משתמש אחר נכנס דרך Google, מוקצים להם מזהה משתמש אחר. כאשר אפליקציה מותקנת בטלפון, מוקצים לה גם מזהה משתמש משל עצמה. המערכת עצמה היא משתמש ותהליכים אחרים שצריכים להפעיל בטלפון עשויים להיות בעלי מזהה משתמש משלהם. כל מה שיכול לעשות הכל לקבצים באנדרואיד שלך הוא משתמש.
מערכת משתמשים והרשאות היא כיצד אנדרואיד עוקבת אחר מי יכול לעשות מה.
נניח שאתה מתקין אפליקציית העברת הודעות. זה מתקבל מזהה משתמש כשאתה מתקין אותו. זה גם מקבל מקום במחיצת הנתונים שלך משל עצמו, שרק יש לה גישה אליו. יש לך הרשאות להפעלת האפליקציה, וכאשר האפליקציה פועלת יש לה הרשאה לגשת לתיקיית הנתונים ולקבצים שלה. האפליקציה עשויה גם לבקש הרשאה לגישה לדברים כמו פנקס הכתובות שלך או כרטיס SD או ספריית תמונות. אם אתה אומר כן לבקשות אלה (או אם אתה מסכים להרשאות בגירסאות ישנות יותר של אנדרואיד) מזהה המשתמש של האפליקציה מקבל הרשאה לקבצי הנתונים של אותם דברים, כלומר הוא יכול להסתכל על תיקיית הנתונים ותכניה ואולי לשנות אותם או להוסיף קבצים חדשים. האפליקציה לא יכולה לגשת לקבצי נתונים שאין לה הרשאה "להסתכל" עליהם. זה אומר (בדוגמה שלנו) זה לא יכול לעשות דברים כמו להסתכל במסד הנתונים של ההגדרות, או לגשת לתיקיית הנתונים של יישום אחר. לרוב משתמשים במונח ארגז חול לשם כך - יישומים הם ארגזי חול ויכולים לשחק רק בארגזי החול שבהם יש להם הרשאה להיות.
לגבי קבצים שהם תוכניות ויכולים להריץ (כמו אפליקציות), אותו מודל הרשאה חל. לזיהוי המשתמש שלך יש הרשאה להריץ את היישומים שהתקנת כשאתה מחובר. למשתמש המערכת יש הרשאה להריץ אותם ומשתמשים אחרים ברמת המערכת עשויים לקבל גישה ליישומים או לתהליכים מסוימים בהם משתמשים האפליקציות. אפליקציות אחרות אינן יכולות להפעיל אפליקציות שאין להם הרשאה להפעיל אותן. אם הוספת משתמש משני, אין לו גישה ליישומים או לקבצים שלך ולהיפך. יש בטלפון קבצים, תיקיות ואפליקציות שלמזהה המשתמש שלך אין הרשאה לראות, לשנות או להריץ. בדרך כלל החלקים האלה באנדרואיד דורשים הרשאות ברמת המערכת (מזהה המשתמש במערכת) כדי לעשות איתם כל דבר, ואתה לא משתמש המערכת או משתמש שיש לו הרשאות ברמת המערכת.
החלפת הרשאות
אמנם טכנית זה אולי לשנות את האופן שבו הטלפון שלך מאתחל ואת הקבצים שבהם הוא משתמש כדי להפעיל את מערכת ההפעלה ולהקצות הרשאות מוגדלות לזיהוי המשתמש שלך, זה לא בטוח וגם לא מעשי. אבל לאנדרואיד (ולרוב מערכות מבוססות יוניקס או לינוקס) יש מה שמכונה משתמש שורש, ותומכים בינארית SubstituteUser (חשוב על בינארי כאפליקציה קטנה) כדי לשנות מזהי משתמש. אלה משמשים לניהול המערכת ברמת הליבה.
מכיוון שהאנשים שיצרו את הטלפון שלך לא רוצים שתהיה לך גישה קלה למזהה המשתמש הבסיסי - ולא כל הסיבות הן אנוכיות מכיוון שהוא גם מגן עליך ועל הנתונים הפרטיים שלך - הבינארי SubstituteUser אינו כלול ברוב הבונים של אנדרואיד. ללא תחליף למשתמש, איננו יכולים לשנות את זיהוי המשתמש שלנו. לרוב הדברים ברמת המערכת באנדרואיד יש שמות קלים דומים, אגב. אבטחת הליבה (קבצים במטען האתחול ו / או בגרעין עצמו) בנויים גם בצורה שתמנע ממך להחליף מזהי משתמש כחלק ממודול הגרעין SELinux (S ecurity- E nanced - אמרו לך שהשמות קלים). בחלק מהטלפונים (נוקס של סמסונג עולה בראש) יש הגנות נוספות, וכמעט כל החברות שמייצרות אנדרואידים דורשות שכדי לבצע שינויים, יהיה צורך לפתוח את טעון האתחול כך שניתן יהיה לשנות את הקבצים האלה ולאפשר לך לשנות מזהי משתמש.. חלק מהטלפונים, כמו BlackBerry Priv אפילו עוברים צעד אחד קדימה ולא מתכוונים לאתחל אם נשנה משהו (אפילו אם נוכל).
כדי להיות שורש, אתה צריך דרך לשנות את זיהוי המשתמש שלך.
ברגע שנעבור על פני כל זה - או על ידי ביטול נעילת טוען האתחול באמצעים מורשים או שימוש במיצוי כלשהו - אנו יכולים למקם את ה- SU בינארי (SubstituteUser) במקום שהוא יכול לרוץ כאשר הוא נקרא לרוץ - זה נקרא PATH. אם אפליקציה כלשהי נמצאת ב- PATH של מזהה המשתמש שלך, היא תפעל מבלי לומר למערכת בדיוק היכן היא נמצאת. עליך גם לוודא שהבינארי של SU נמצא במקום שיש לזיהוי המשתמש שלך הרשאה להפעיל (להפעיל) קבצים. כל אפליקציה אחרת (ל- Google Play יש המון אפליקציות הזקוקות להרשאות שורש) תזדקקו לאותה גישה. כשאתה משתמש בשיטה לשרש את הטלפון שלך, כל זה ממוין על ידי האנשים שבנו את שיטת השורש.
ברגע שכל מה שנמצא במקום, נוכל להריץ את ה- SU בינארי (או שיישום אחר יכול להריץ את ה- SU בינארי).
קבלת גישה לשורש
כאן נכנס השורש. הבינארי של SU משתמש בדגלים כאשר הוא מופעל כדי לומר למערכת לאיזה מזהה משתמש אתה רוצה לעבור. לדוגמה, אם אני מריץ את ה- SU בינארי במחשב אובונטו כמו "su Jim -c nano", אני יפעיל את פקודת הננו כמשתמש ג'ים (לאחר שמספקתי את הסיסמה של ג'ים). אם אתה מפעיל את ה- SU בינארי ללא דגלים או טיעונים, הוא מעביר אותך למשתמש השורש. בדרך כלל תצטרך לספק סיסמה, אך מכיוון ש"שורש "הוא משתמש שאינו בשימוש באנדרואיד אין לו סיסמה. הפעלת הפקודה "su" תעביר אותך לשורש המשתמש, ותקצה לך את מזהה המשתמש של 0, ותכניס אותך לקבוצת השורשים. אתה עכשיו משתמש העל.
כמשתמש העל אתה יכול לעשות הכל לכל קובץ, תיקיה או מחיצה באנדרואיד שלך. בכל דבר, אנו מתכוונים ממש לכל דבר. אתה יכול להסיר אפליקציות למניעת הריון ואתה יכול גם להסיר קבצי מערכת חיוניים המפרקים את הטלפון שלך. אתה יכול גם לעשות דברים לחומרה כמו לשנות את תדר ה- CPU ולהרוס את הטלפון שלך לנצח.
שורש הוא משתמש העל, שיכול לעשות הכל. ואנחנו מתכוונים לכל דבר.
אפליקציות יכולות לעשות את אותו הדבר. SU ממוקם במקום בו הוא נמצא ביישום PATH וכל אפליקציה יכולה להתקשר אליו ולהפעיל אותו. לאחר מכן לאפליקציה הזו יש הרשאות משתמש-על, והיא יכולה לעשות כל קובץ שהיא אוהבת בכל תיק שהוא בכל מקום בטלפון שלכם. זו הסיבה שהאנשים שיצרו את הטלפון שלך באמת לא רוצים שתהיה לך רמת גישה כזו, והחברות שמאפשרות לך לפתוח את נעילת האתחול ולשנות דברים, עדיין לא מציבות את בינארי ה- SU בטלפון שלך כברירת מחדל. קבלת גישה שורשית ללא שום דרך לשלוט במי או במה להשתמש בו מסוכן לתוכנת הטלפון שלך ולנתונים האישיים שלך.
לכן אתה צריך להתקין אפליקציה שמאלצת אותך לאפשר גישה לשורש בכל פעם שאתה או אפליקציה אחרת מנסה להפעיל את הרשאות משתמש העל. ברוב הפעמים בהן אתה משתמש בשיטת שורש לטלפון, תיכלל אחת כזו, יחד עם כמה קבצים בינאריים שימושיים אחרים כמו ערכת הכלים BusyBox. אם עשית דברים ביד, תצטרך להתקין אחד מהם בעצמך. SuperSU מאת Chainfire ב- Google Play הוא טוב להתחיל איתו.
הסיכויים והסיומות
טלפונים רבים וכמה שיטות שורש עושות דברים קצת אחרת (אנדרואיד 4.3 הביאה המון שינויים) ודורשים סקריפטים או דמון (תראו מילים כמו daemonsu או su.d שהוזכרו) במקום פשוט להפיל את בינארי ה- SU במקום. אלה משמשים להתקשר SubstituteUser כך שתוכל לעבור למשתמש השורש בדיוק כמו בשיטה הבינארית הגולמית. האנשים שהבינו כיצד לשרש את הטלפון שלך מינו את כל זה וזה יעבוד אותו דבר בצד הפונה למשתמש.
אפשר גם "להזרים שורש" כמה אנדרואידים. המשמעות היא שתוכלו לקבל הרשאות משתמש-על ולעשות כמה דברים שעליכם לעשות, אך אתחול מחדש מסיר את גישת השורש. באופן דומה, אתה יכול לקבל "מעטפת שורש" בה אתה יכול לגשת רק למשתמש השורש דרך adb מהמחשב שלך.
לבסוף, אני רוצה להדגיש שאם היו לך שאלות אלה, אתה צריך לשקול אם אתה מוכן לקבל אנדרואיד מושרש. לא צחקנו כשאמרנו שקל להרוס את הטלפון שלך עם גישת SuperUser. אין סיבה להתבייש שאתה צריך לקרוא קצת או לשאול עוד כמה שאלות לפני שאתה עושה דברים שיכולים לשבור את הטלפון שלך או לתת לאפליקציה סומק אקראית גישה לכל הנתונים שלך.
בשביל זה אנחנו כאן.