ליצור קובץ update.zip ב-5 שלבים

אני מניח שהדוגמה הנפוצה והקלילה ביותר היא מוד הסוללה. באנדרואיד משום מה (תהרגו אותי, אני לא יודע למה) הסוללה הינה ללא אחוזים, אלא רק ציור שנותן לנו הערכה (דיי גסה) באיזה מצב הסוללה שלנו (למרות שהמערכת יודעת בידיוק כמה אחוזים, הם פשוט לא מוצגים בבר העליון). לכן הקובץ הפופולרי ביותר שאנשים צורבים הינו מוד “סוללה בעלת אחוזים” (ולפעמים גם ציור סוללה שונה).

יש לציין כי ניתן לראות בפוסט Analyze an Apk file קצת יותר מידע לגבי פתיחה ושינוי של אפליקציות (קבצי Apk). ובנוסף, אציין כי המדריך הינו כללי, ניתן להכניס בתוך קובץ ה zip אנימציית הפעלה, apk ששינינו, מוד לשינוי תצוגת הסוללה ובקיצור כל דבר. במקרה הזה אדגים עם קובץ BootAnimation שייצרתי לעצמי.

 

איך בונים קובץ zip הניתן לצריבה בריקברי?

שלב ראשון, הכנות:

  • הדבר הראשון שאנחנו צריכים זה את הקובץ / קבצים שאנחנו רוצים להוסיף ל Rom (במקרה שלי זה הקובץ שהכנתי לעצמי: BootAnimation.zip).
  • עכשיו אנחנו צריכים להוריד את הקובץ Testsign.jar שיעזור לנו לחתום את הzip, ואותו ניתן להוריד מכאן.
  • ואחרון, אנחנו צריכים להחליט לאן (לאיזה נתיב) הקבצים שאנחנו רוצים להוסיף ילכו (במקרה שלי לנתיב system/media/).

 

לעבודה (3 שלבים):

  1. יש לפתוח תיקייה בשם שאליה היא הולכת. בדוגמה הזאת יש להכין תקייה בשם media, ובתוכה להכניס את הקובץ BootAnimation.zip. יש לציין שלא משנה היכן אנו מכינים את התיקייה, ניתן לפתוח תיקייה חדשה בכל מקום שתרצו, אפילו סתם בשולחן העבודה.
  2. כעת אנחנו צריכים להכין עוד כמה תיקיות, לפי הנתיב META-INF/com/google/android, ובתוכו לפתוח קובץ טקסט חדש ב Sublime ולקרוא לו update-script. לנתיב הזה הריקברי הולך כדי לחפש את קובץ ה update-script, והוא יקרא את הקובץ הזה בשביל ההוראות או “מה לעשות”.
  3. יש לפתוח את הקובץ ולהעתיק לתוכו: 
ui_print("Applying New Bootanimation");
run_program("/sbin/busybox", "mount", "/system");
delete("/system/media/bootanimation.zip");
package_extract_dir("media", "/system/media");
run_program("/sbin/busybox", "umount", "/system");
ui_print("New Bootanimation Installed");

והשלב החמישי הוא להבין מה כתבנו, בשביל זה נפרק את הקוד לשורות ונסביר מה הולך כאן:

  • השורה ראשונה: ;("ui_print("Applying New Bootanimation מדפיסה את מה שבתוך הגרשיים (שנמצאים בתוך הסוגריים). השורה לא הכרחית, הקובץ יעבוד גם בלעדיה, אך זה יותר אלגנטי, נקי, ונותן למי שמתקין את הסקריפט להבין מה קורה כעת.
  • השורה השניה: ;("run_program("/sbin/busybox", "mount", "/system מפעילה את ה busybox שהופך את התיקייה system/ להיות כתיבה (שנוכל לכתוב אליה).
  • השורה השלישית: ;("delete("/system/media/bootanimation.zip מוחקת את הקובץ bootAnimation.zip שנמצא בנתיב system/media/ (כדי שנוכל לכתוב את הקובץ החדש).
  • בשורה הרביעית: ;("package_extract_dir("media", "/system/media אנחנו אומרים למכשיר למצוא בתוך הקובץ שלנו (החבילה – Package) את התיקייה media (בתוך התיקייה שמתי את הקובץ bootAnimation.zip) ואת התוכן שלה להעביר לנתיב system/media/.
  • בשורה החמשית: ;("run_program("/sbin/busybox", "umount", "/system אנחנו מפעילים שוב את ה busybox ונותונים לו את הפקודה umount על התיקייה system/.
  • השורה השישית: ;("ui_print("New Bootanimation Installed כמו השורה הראשונה, מדפיסה הודעה למשתמש.

 

טיפ: בחור ב XDA כתב תוכנה קטנה שיכולה לבצע את כל התהליך בשבילכם. תמיד עדיף לדעת כיצד הכל מתבצע ואת שורות הקוד אבל מדובר על פעולה די טכנית, והתוכנה בהחלט עוזרת לחסוך זמן ולפשט את התהליך (במיוחד לאנשים שמבצעים את זה כל יום). בנוסף, בתוכנה יש עוד כמה אפשרויות שיכולות לעזור. להלן הקישור לפוסט ב XDA.

 

לסיכום

ב-5 שלבים הכנתם קובץ שניתן לצריבה דרך ה Recovery ובו אתם יכולים לשים כל דבר שתרצו (קבצי Apk חדשים לצריבה, החלפה של קבצי Apk קיימים, מודים שונים, תוספות, רום חדש וכד’).

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