שיזוקו • Shizuku
דוד לב
במדריך הבא אנחנו הולכים לדבר על כלי מרתק בשם Shizuku 'שיזוקו', אפליקציית קוד פתוח שמחליפה את שיטת הרשאות הרוט המיושנות בתהליך חדשני, שאף ברוב המקרים מסתפק ב-ADB ואינו דורש את השרשת המכשיר. היתרון העיקרי של האפליקציה הוא למשתמשים שאינם רוצים לבצע רוט במכשיר האנדרואיד שלהם אך מעוניינים להשתמש באפליקציות שדורשות רוט, או להריץ פקודות shell שמחייבות ריצה עם הרשאות גבוהות.
עד היום, אפליקציה שנבנתה עבור משתמשי רוט והיתה מבצעת פעולות כגון השבתת אפליקציות, הסרת אפליקציות מערכת וכן הלאה, היתה משתמשת בשיטת ה su shell. שיטה זו מאפשרת להריץ פקודות shell בתור su מה שמחייב את הכנסת הבינארי su אל מחיצת המערכת (או systemless במקרה של מג'יסק) וכמובן את פתיחת הבוטלואדר ועוד.
לשיטה זו ישנן חסרונות רבים, מדובר בשיטה איטית יחסית; שימוש בטקסט (להרצת הפקודה) מה שהופך את התהליך לבלתי יציב במקרי קצה מסוימים; פקודות shell מוגבלות ביכלתן בסופו של דבר (גם עם busybox) ועוד מספר סיבות שלא המקום להאריך בהן.
מה ששיזוקו בעצם עושה, זה להשתמש בכלים וב-API שאנדרואיד עצמה מספקת ולאפשר להם גישה לאפליקציות אחרות.
🔔 הצטרפו לערוץ אנדרוטיפס למדריכים נוספים!
למשל - נניח ואני בתור מפתח אפליקציה רוצה לקבל את רשימת האפליקציות שמותקנות על המכשיר. אני אצטרך 'לבקש' מאנדרואיד את המידע, ואם אני אכן רשאי לקבל אותו (על ידי כך שהגדרתי במניפסט את ההרשאה הרצויה) אנדרואיד תתן לי את האינפורמציה שביקשתי.
שיזוקו רצה עם הרשאות גבוהות (ADB או רוט) ומשמשת כגשר בין האפליקציות לבין המערכת, מה שאומר שאם לשיזוקו תהיה הרשאה להסרת אפליקציות - אני בתור מפתח שמתממשק מול ה-API של שיזוקו - אוכל להסיר אפליקציות דרכה. (בקישור הזה תוכלו לראות אילו הרשאות יש ל-com.android.shell).
אוקי, אני מקווה שזה לא מידי מסובך, בכל מקרה, הרעיון הוא ששיזוקו מאפשרת לנו לגשת ולבצע פעולות שרק אפליקציות מערכת מסוגלות לבצע, תוך כדי שימוש ב-API של אנדרואיד עצמה ובכך להרוויח מהירות, אמינות ויכולות שליטה גבוהות ביותר.
• אם אתם מעוניינים לקרוא בפירוט יתר על השיטה שבה שיזוקו פועלת - לחצו כאן.
בשורות הבאות אסביר כיצד להתקין את האפליקציה ולתת לה את ההרשאות הרצויות על מנת שאפליקציות אחרות יוכלו להתחיל להשתמש בהרשאות הגבוהות שהיא מספקת.
• קוד האפליקציה בקוד פתוח וניתן להשתמש בה ללא חשש.
התקנת והגדרת האפליקציה
את האפליקציה ניתן להוריד מגוגל פליי, מגיטהאב, או ישירות מטלגרם מערוץ העזר שלנו.
התקינו את האפליקציה ופתחו אותה:
בכניסה לאפליקציה תראו למעלה את ההודעה Shizuku not running שאומרת ששיזוקו לא מופעלת כרגע.
על מנת לאפשר לאפליקציה לרוץ קיימות שלושה דרכים:
• הדרך הראשונה והפשוטה, היא לאפשר לאפליקציה הרשאת רוט:

אתם בטח שואלים, מה הרעיון? אז באמת אין הרבה רווח מלבד העובדה שהאפליקציה מאפשרת הרצה יותר מהירה של פעולות שחייבות להתבצע עם הרשאות גבוהות.
• הדרך השניה היא להריץ פקודה חד פעמית (בכל הפעלה מחדש של המכשיר) דרך ADB ובכך לאפשר לאפליקציה לרוץ עם הרשאות ADB:

בשימוש באפשרות זו אתם נדרשים למחשב (או לכל הפחות לסמארטפון אחר עם כבל שיחבר בין שני המכשירים).
התקינו ADB על המחשב, חברו את המכשיר בכבל והריצו את הפקודה הבאה:
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh
לאחר הרצת הפקודה ניתן לראות כי Shizuku רץ עם הרשאות ADB. (אם קיבלתם שגיאה, בדקו מהי הפקודה המדויקת שמוצגת כשלוחצים על View command. קיימות גרסאות שבהן הפקודה עוברת שינויים קלים).
• האופציה השלישית, והיא זמינה החל מאנדרואיד 11 ומעלה, היא ניפוי באגים אלחוטי. בשיטה זו אין צורך במחשב וכל שעליכם לעשות, הוא לחבר את המכשיר לרשת אלחוטית ולעקוב אחר הפעולות הבאות.
לחצו על Pairing ותועברו לאפשרויות למפתחים:

חפשו Wireless debugging בתפריט, היכנסו והפעילו את הפונקציה (עליכם להיות מחוברים לרשת WIFI בעת ההפעלה):

לחצו על Pair device with pairing code על מנת לקבל את קוד ההתחברות האלחוטי ואז פצלו את המסך לשני חלקים:

בחלק העליון השאירו את מסך הWireless debugging ובחלק התחתון פתחו את שיזוקו. לפניכם תופיע חלונית עם שדה להזנת הקוד:

הזינו את הקוד, אשרו את ההתחברות בחלונית העליונה (מומלץ לסמן V על Allways allow) ופתחו את שיזוקו על מסך מלא. אתם מחוברים!

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

בחלונית השניה ניתן לנהל את ההרשאות עבור אפליקציות שעושות שימוש ב-API של שיזוקו.


אפליקציה שמעוניינת לקבל הרשאה תקפיץ חלון מעין זה:

ועכשיו לסיבה שבשלה (ככל הנראה) התכנסנו: כיצד להריץ פקודות ADB עם Termux או עם כל טרמינל אחר:

לחצו על Use Shizuku in terminal apps ובחרו ב-Export files. אתם תועברו למנהל הקבצים של אנדרואיד שם תתבקשו לבחור תיקייה שבה שיזוקו תיצור שני קבצים: shizuku ו shizuku.dex.
אם אתם משתמשים בטרמוקס, וזו האופציה המועדפת ביותר לדעתי - תוכלו לשמור את הקבצים ישירות לתוך תיקיית הבית של טרמוקס בלחיצה על שלושת הפסים למעלה ובחירה ב-Termux. שמרו את הקבצים ופתחו את טרמוקס.
הריצו את הפקודה ls | grep shizuku על מנת לוודא שהקבצים נמצאים בתיקייה הראשית:

כעת ערכו את הקובץ shizuku באמצעות nano, vim או כל עורך טקסט אחר:
nano shizuku
ערכו ושנו את PKG (מסומן בעיגול אדום) ל-Package-Name של הטרמינל שלכם. אם אתם משתמשים בTermux החליפו ל- com.termux.

שמרו את הקובץ (Ctrl+X ב-Nano, נקודותיים דבליו קיו :wq ב-vi וב-vim) והריצו אותו:
sh shizuku command
במקום command הקלידו את הפקודה שאותה תרצו להריץ בתור פקודת shell, כגון am, pm, או כל פקודת adb shell אחרת.
תוכלו גם לתת לקובץ הרשאת הרצה כך שלא תצטרכו להקליד לפני כן sh, להוסיף את הסקריפט לPATH או ליצור אליאס ולהשתמש בפקודה בכל מיקום.
אילו עוד אפליקציות ניתן להריץ עם Shizuku? אז מכיוון ששיזוקו היא יחסית חדשה, לא קיימות הרבה אפליקציות שניתן לעבוד איתן וניתן לומר שהרווח העיקרי הוא הרצת פקודות ADB דרך טרמינל מקומי ללא צורך במחשב. יש מספר לא מבוטל של אפליקציות המשתמשות בשיזוקו אך הידועות הן:
• אפ-אופס App Ops
אפליקציה המאפשרת שלילת 'הרשאות OPS' מאפליקציות אחרות. הרשאות אופס אלו לא ממש הרשאות שאפשר לאפשר או לשלול בצורה רגילה. אם פעם הסתכלתם על הרשאות של אפליקציה, בוודאי ראיתם כי יש עשרות ומאות הרשאות שבהן לא ניתן לשחק, כגון גישה לרשת, גישה ללוח ועוד.
מה שהאפליקציה עושה, זה להגדיר את ההרשאות הללו (לפי הבחירה שלכם) למצב התעלמות ובכך למנוע מהאפליקציה לקבל שגיאה עקב גישה למידע מסוים אלא לקבל מידע ריק.
הורידו את האפליקציה מגוגל פליי, מגיטהאב (אחסון בלבד, לא קוד פתוח), או מערוץ העזר שלנו בטלגרם.
• אייס-בוקס Ice Box
אפליקציה 'המקפיאה' אפליקציות שאינם בשימוש זמן מוגדר מראש ובכך חוסכת בסוללה.
הורידו את האפליקציה מגוגל פליי או מערוץ העזר שלנו בטלגרם.
• נו-פופינג NoPopping
אפליקציה זו מספקת מצב 'נא לא להפריע' לאפליקציות מסוימות שכשנמצאים בהן, לא יתקבלו התראות קופצות.
הורידו את האפליקציה מגוגל פליי או מערוץ הטלגרם.
• דאר-קיו DarQ
אפליקציה פשוטה המנגישה את מצב דארק-מוד גם לאפליקציות שעוד לא שלבו את הצבע הכהה באופן רשמי. ניתן לקרוא בהרחבה כאן.
הורידו את האפליקציה מגיטהאב או מערוץ העזר בטלגרם.
בנוסף קיימות אפליקציות רבות המשלבות פונקציות חלקיות שמסתייעות בשיזוקו. כגון SAI שמאפשרת התקנה שקטה של APK's, ועוד עוד. חפשו בגוגל Apps for shizuku וספרו לנו בקבוצה האם מצאתם אפליקציה מעניינת :)
כמו כן, אם אתם מפתחים ומעוניינים לקרוא יותר על Shizuku וכיצד לשלב אותה באפליקציה שלכם - היכנסו אל הקישור הבא.
עד כאן המדריך. מקווה שנהניתם, שתפו אותנו!
אם יש לכם שאלות - שאלו בקבוצה.
אם יש לכם הערות או הצעות - פנו בפרטי.
